Explorar el Código

添加公用的列表刷新界面BaseListFragment并添加福利中心界面

zengjiebin hace 7 años
padre
commit
dcb1f36eb5
Se han modificado 24 ficheros con 448 adiciones y 862 borrados
  1. 2 1
      app/src/main/AndroidManifest.xml
  2. 6 4
      app/src/main/java/com/kfzs/duanduan/fragment/FgtAskgetmoney.java
  3. 3 1
      app/src/main/java/com/kfzs/duanduan/fragment/FgtFindChild.java
  4. 31 0
      app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java
  5. 1 1
      app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
  6. 2 1
      app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java
  7. 18 227
      app/src/main/java/com/sheep/gamegroup/view/activity/ActDownloadWelfareList.java
  8. 20 230
      app/src/main/java/com/sheep/gamegroup/view/activity/ActGiftCenter.java
  9. 1 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActMainGame.java
  10. 3 38
      app/src/main/java/com/sheep/gamegroup/view/activity/ActMyWelfare.java
  11. 35 4
      app/src/main/java/com/sheep/gamegroup/view/activity/LoginAct.java
  12. 4 0
      app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java
  13. 169 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/BaseListFragment.java
  14. 0 143
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtDownloadWelfare.java
  15. 38 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtDownloadWelfareList.java
  16. 38 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtGiftCenter.java
  17. 39 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMyDownloadWelfareList.java
  18. 15 97
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMyGift.java
  19. 4 3
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtWelfareCenter.java
  20. 15 97
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtWelfareUseRecord.java
  21. 1 1
      app/src/main/res/layout/activity_main.xml
  22. 0 0
      app/src/main/res/layout/common_container.xml
  23. 0 7
      app/src/main/res/layout/act_main_game.xml
  24. 3 6
      app/src/main/res/layout/login_act_layout.xml

+ 2 - 1
app/src/main/AndroidManifest.xml

@@ -98,7 +98,8 @@
         android:persistent="true"
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
-
+        <meta-data android:name="design_width_in_dp" android:value="375"/>
+        <meta-data android:name="design_height_in_dp" android:value="667"/>
         <activity
             android:name=".wxapi.WXEntryActivity"
             android:exported="true"

+ 6 - 4
app/src/main/java/com/kfzs/duanduan/fragment/FgtAskgetmoney.java

@@ -130,8 +130,10 @@ public class FgtAskgetmoney extends BaseCompatFragment {
         RelativeLayout.LayoutParams layoutParams3 = (RelativeLayout.LayoutParams) ask_top_3.getLayoutParams();
         layoutParams3.topMargin = G.WIDTH * 1442 / 1080;
         ask_top_3.setLayoutParams(layoutParams3);
+        ViewUtil.setDefaultText(tvSize);
+        ViewUtil.setDefaultText(tvMoney);
 
-        showViewpage();
+        showViewPager();
 
         initData();
 
@@ -197,7 +199,7 @@ public class FgtAskgetmoney extends BaseCompatFragment {
                                 }
                             });
                         }else{
-                            onError(baseMessage);
+                            ViewUtil.newInstance().hideProgress(activity);
                         }
 
                     }
@@ -208,7 +210,7 @@ public class FgtAskgetmoney extends BaseCompatFragment {
                 if (result != null) {
                     userEntity = result;
                     String audit_total_audit = String.format(activity.getResources().getString(R.string.my_invitation_str), userEntity.getInvitation_code());
-                    my_invitation_tv.setText(audit_total_audit + "");
+                    my_invitation_tv.setText(audit_total_audit);
                 }
             }
         });
@@ -236,7 +238,7 @@ public class FgtAskgetmoney extends BaseCompatFragment {
     public static final String[] tabNames = {"排行榜", "好友列表"};
     private GiftpackListAdapter mAdapter;
 
-    private void showViewpage() {
+    private void showViewPager() {
         mAdapter = new GiftpackListAdapter(getChildFragmentManager(), activity.getApplicationContext());
         mAdapter.add(new FgtAskGetMoneyRank(), tabNames[0]);
         mAdapter.add(new FgtAskGetMoneyFriend(), tabNames[1]);

+ 3 - 1
app/src/main/java/com/kfzs/duanduan/fragment/FgtFindChild.java

@@ -106,6 +106,7 @@ public class FgtFindChild extends BaseCompatFragment {
     View check_net_ll;
     @BindView(R.id.view_list)
     XRecyclerView view_list;
+    View bottomLine;
     private void initView(){
         title.setVisibility(View.GONE);
 //        refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@@ -131,7 +132,7 @@ public class FgtFindChild extends BaseCompatFragment {
                 }
             }
         });
-        ViewUtil.setBottomLine(view_list);
+        bottomLine = ViewUtil.setBottomLine(view_list);
         view_list.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
         view_list.setAdapter(new AdbCommonRecycler<FindItem>(SheepApp.getInstance(), list){
 
@@ -345,6 +346,7 @@ public class FgtFindChild extends BaseCompatFragment {
 
     private void notifyDataSetChanged(){
         CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty());
+        bottomLine.setVisibility(list.isEmpty() ? View.INVISIBLE : View.VISIBLE);
 //        refresh.setRefreshing(false);
         if(page == 1){
             view_list.refreshComplete();

+ 31 - 0
app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java

@@ -850,4 +850,35 @@ public interface ApiService {
      */
     @POST("app/awaken/detail")
     Observable<BaseMessage> awakenDetail(@Body JSONObject jsonObject);
+
+    /**
+     * 游戏礼包
+     */
+    @GET("app/gift_bag")
+    Observable<BaseMessage> getGiftBagList(@Query("page") int page, @Query("per_page") int per_page);
+    /**
+     * 我的福利——我的礼包
+     */
+    @GET("app/gift_bag/my_gift_bag")
+    Observable<BaseMessage> getMyGiftBagList(@Query("page") int page, @Query("per_page") int per_page);
+    /**
+     * 获取热门福利
+     */
+    @GET("app/release_task/hot_welfare")
+    Observable<BaseMessage> getHotWelfareList(/*@Query("page") int page, @Query("per_page") int per_page*/);
+    /**
+     * 下载福利
+     */
+    @GET("app/release_task/down_welfare")
+    Observable<BaseMessage> getDownWelfareList(@Query("page") int page, @Query("per_page") int per_page);
+    /**
+     * 我的福利——下载福利
+     */
+    @GET("app/game_consumption/my_voucher")
+    Observable<BaseMessage> getMyWelfareList(@Query("page") int page, @Query("per_page") int per_page);
+    /**
+     * 我的福利——使用记录
+     */
+    @GET("app/game_consumption/voucher_use_log")
+    Observable<BaseMessage> getMyWelfareLogList(@Query("page") int page, @Query("per_page") int per_page);
 }

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -1513,7 +1513,7 @@ public class Jump2View {
         GAME_GIFT_CENTER.onEvent();
     }
     /**
-     * 进入礼包中心界面
+     * 进入我的福利界面
      */
     public void goMyWelfare(Activity activity) {
         Intent intent = new Intent(activity, ActMyWelfare.class);

+ 2 - 1
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -477,7 +477,7 @@ public class ViewUtil {
 
     }
 
-    public static void setBottomLine(final XRecyclerView view_list) {
+    public static View setBottomLine(final XRecyclerView view_list) {
         View view = LayoutInflater.from(SheepApp.getInstance()).inflate(R.layout.common_foot_view, null);
         view_list.setFootView(view, new CustomFooterViewCallBack() {
             @Override
@@ -504,6 +504,7 @@ public class ViewUtil {
                 });
             }
         });
+        return view;
     }
 
     /**

+ 18 - 227
app/src/main/java/com/sheep/gamegroup/view/activity/ActDownloadWelfareList.java

@@ -1,48 +1,14 @@
 package com.sheep.gamegroup.view.activity;
 
-import android.app.Activity;
-import android.content.Intent;
-import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.TextView;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentTransaction;
 
-import com.arialyy.annotations.Download;
-import com.arialyy.aria.core.Aria;
-import com.arialyy.aria.core.download.DownloadTask;
-import com.kfzs.duanduan.services.DownloadTaskService;
 import com.sheep.gamegroup.absBase.BaseActivity;
-import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.FindApp;
-import com.sheep.gamegroup.model.entity.Welfare;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.gamegroup.view.adapter.DownloadWelfareAdapter;
+import com.sheep.gamegroup.view.fragment.FgtDownloadWelfareList;
 import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import butterknife.BindView;
-import rx.android.schedulers.AndroidSchedulers;
-import rx.functions.Action1;
-import rx.schedulers.Schedulers;
-
-import static android.content.Intent.ACTION_PACKAGE_ADDED;
-import static android.content.Intent.ACTION_PACKAGE_REMOVED;
-
 /**
  * 福利中心--点击全部福利  进入  下载福利列表
  * Created by realicing on 2018/8/28.
@@ -51,215 +17,40 @@ import static android.content.Intent.ACTION_PACKAGE_REMOVED;
 public class ActDownloadWelfareList extends BaseActivity {
     @Override
     protected int getLayoutId() {
-        return R.layout.net_empty_fresh_list_not_wrap;
+        return R.layout.common_container_act;
     }
 
-    @BindView(R.id.refresh)
-    SwipeRefreshLayout refresh;
-    @BindView(R.id.empty_view)
-    View empty_view;
-    @BindView(R.id.check_net_ll)
-    View check_net_ll;
-    @BindView(R.id.view_list)
-    RecyclerView view_list;
 
     @Override
     public void initView() {
-        activity = this;
         TitleBarUtils.getInstance()
                 .setTitle(this, "下载福利列表")
                 .setTitleFinish(this);
 
-        EventBus.getDefault().register(this);
-        Aria.download(this).register();
-
-        refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                initData();
-                refresh.setRefreshing(false);
-            }
-        });
+        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
+        Bundle bundle = new Bundle();
+        Fragment fragment = getSupportFragmentManager().findFragmentByTag("tag");
+        if(fragment == null){
+            fragment = new FgtDownloadWelfareList();
+            fragment.setArguments(bundle);
+            transaction.add(R.id.frame_container, fragment, "tag");
+            transaction.commitAllowingStateLoss();
+        }else {
+            fragment.setArguments(bundle);
+            transaction.replace(R.id.frame_container, fragment);
+            transaction.commitAllowingStateLoss();
+        }
 
-        view_list.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
-        view_list.setAdapter(new DownloadWelfareAdapter(activity, list));
     }
 
-    private Activity activity;
-    private List<Welfare> list = ListUtil.emptyList();
     @Override
     public void initListener() {
 
     }
 
-
     @Override
     public void initData() {
-        empty_view.setVisibility(View.INVISIBLE);
-        SysAppUtil.checkNet(new Action1<Integer>() {
-            @Override
-            public void call(Integer result) {
-                if (result != 0) {//无网络
-                    if (check_net_ll != null)
-                        check_net_ll.setVisibility(View.VISIBLE);
-                } else {
-                    if (check_net_ll != null)
-                        check_net_ll.setVisibility(View.GONE);
-                }
-            }
-        });
-        SheepApp.getInstance().getNetComponent().getApiService().getFindAppReservationList(1, 100)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        List<Welfare> newList = baseMessage.getDataList(Welfare.class);
-                        list.clear();
-                        ListUtil.addAll(list, newList);
-                        if(!list.isEmpty())
-                            list.add(null);//底部圆角
-                        notifyDataSetChanged();
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        list.clear();
-                        notifyDataSetChanged();
-                    }
-                });
-    }
-
-
-    private void notifyDataSetChanged() {
-        CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty());
-        refresh.setRefreshing(false);
-        view_list.getAdapter().notifyDataSetChanged();
-    }
-
-    private Map<String, FindApp> findAppMap = new HashMap<>();
-    //获取任务对应的findApp
-    private FindApp getFindAppByKey(String key) {
-        if(findAppMap.containsKey(key))
-            return findAppMap.get(key);
-        return null;
-    }
-    private Map<String, TextView> downLoadTextViewMap = new HashMap<>();
-    //获取任务对应的TextView来更新进度
-    private TextView getTextViewByTask(DownloadTask task) {
-        return getTextViewByKey(task.getKey());
-    }
-    private TextView getTextViewByKey(String key) {
-        if(downLoadTextViewMap.containsKey(key))
-            return downLoadTextViewMap.get(key);
-        return null;
-    }
-    //下载状态监听
-
-    @Download.onPre void onPre(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText("准备下载中");
-        }
-    }
-
-    @Download.onTaskStart void taskStart(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText("开始下载中");
-        }
-    }
-    @Download.onTaskResume void taskResume(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText("恢复下载中");
-        }
-    }
-    //在这里处理任务执行中的状态,如进度进度条的刷新
-    @Download.onTaskRunning protected void running(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText(String.format(Locale.CHINA, "%d%%", Math.abs(task.getPercent())));
-        }
-    }
-
-    @Download.onTaskStop void taskStop(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText(CommonUtil.CONTINUE_DOWNLOAD);
-        }
-    }
-
-    @Download.onNoSupportBreakPoint void onNoSupportBreakPoint(DownloadTask task) {
-    }
-
-    @Download.onTaskCancel void taskCancel(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText("已经取消");
-        }
-    }
-
-    @Download.onTaskFail void taskFail(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText(CommonUtil.FAIL_DOWNLOAD);
-        }
-    }
 
-    @Download.onTaskComplete void taskComplete(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText(CommonUtil.START_INSTALL);
-        }
-        FindApp findApp = getFindAppByKey(task.getKey());
-        if(findApp != null) {
-            findApp.updateState(DownloadTaskService.STATUS_FINISH);
-        }
     }
 
-    @Subscribe
-    public void onEventMainThread(Intent intent) {
-        if(intent != null && intent.getAction() != null && intent.getDataString() != null && intent.getDataString().contains("package:")){
-            String packageName = intent.getDataString().replace("package:","");
-
-            TextView textView = getTextViewByKey(packageName);
-            if(textView != null) {
-                switch (intent.getAction()){
-                    case ACTION_PACKAGE_ADDED:
-                        textView.setText(CommonUtil.GAME_OPEN);
-                        break;
-                    case ACTION_PACKAGE_REMOVED:
-                        String path = PackageUtil.isExistsFile(packageName);
-                        if(TextUtils.isEmpty(path)) {
-                            textView.setText(CommonUtil.START_DOWNLOAD);
-                        } else {
-                            textView.setText(CommonUtil.START_INSTALL);
-                        }
-                        break;
-                }
-            }
-            FindApp findApp = getFindAppByKey(packageName);
-            if(findApp != null) {
-                switch (intent.getAction()){
-                    case ACTION_PACKAGE_ADDED:
-                        findApp.updateState(DownloadTaskService.STATUS_INSTALLED);
-                        break;
-                    case ACTION_PACKAGE_REMOVED:
-                        String path = PackageUtil.isExistsFile(packageName);
-                        if(TextUtils.isEmpty(path)) {
-                            findApp.updateState(DownloadTaskService.STATUS_INIT);
-                        } else {
-                            findApp.updateState(DownloadTaskService.STATUS_FINISH);
-                        }
-                        break;
-                }
-            }
-        }
-    }
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        EventBus.getDefault().unregister(this);
-    }
 }

+ 20 - 230
app/src/main/java/com/sheep/gamegroup/view/activity/ActGiftCenter.java

@@ -1,266 +1,56 @@
 package com.sheep.gamegroup.view.activity;
 
-import android.app.Activity;
-import android.content.Intent;
-import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.TextView;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentTransaction;
 
-import com.arialyy.annotations.Download;
-import com.arialyy.aria.core.Aria;
-import com.arialyy.aria.core.download.DownloadTask;
-import com.kfzs.duanduan.services.DownloadTaskService;
 import com.sheep.gamegroup.absBase.BaseActivity;
-import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.FindApp;
-import com.sheep.gamegroup.model.entity.Welfare;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.gamegroup.view.adapter.DownloadWelfareAdapter;
-import com.sheep.gamegroup.view.adapter.GiftCenterAdapter;
+import com.sheep.gamegroup.view.fragment.FgtGiftCenter;
 import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import butterknife.BindView;
-import rx.android.schedulers.AndroidSchedulers;
-import rx.functions.Action1;
-import rx.schedulers.Schedulers;
-
-import static android.content.Intent.ACTION_PACKAGE_ADDED;
-import static android.content.Intent.ACTION_PACKAGE_REMOVED;
-
 /**
  * 福利中心--点击全部礼包  进入  礼包中心
  * Created by realicing on 2018/8/28.
  * realicing@sina.com
  */
 public class ActGiftCenter extends BaseActivity {
+
     @Override
     protected int getLayoutId() {
-        return R.layout.net_empty_fresh_list_not_wrap;
+        return R.layout.common_container_act;
     }
 
-    @BindView(R.id.refresh)
-    SwipeRefreshLayout refresh;
-    @BindView(R.id.empty_view)
-    View empty_view;
-    @BindView(R.id.check_net_ll)
-    View check_net_ll;
-    @BindView(R.id.view_list)
-    RecyclerView view_list;
 
     @Override
     public void initView() {
-        activity = this;
         TitleBarUtils.getInstance()
-                .setTitle(this, "礼包中心")
+                .setTitle(this, "下载福利列表")
                 .setTitleFinish(this);
 
-        EventBus.getDefault().register(this);
-        Aria.download(this).register();
-
-        refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                initData();
-                refresh.setRefreshing(false);
-            }
-        });
+        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
+        Bundle bundle = new Bundle();
+        Fragment fragment = getSupportFragmentManager().findFragmentByTag("tag");
+        if(fragment == null){
+            fragment = new FgtGiftCenter();
+            fragment.setArguments(bundle);
+            transaction.add(R.id.frame_container, fragment, "tag");
+            transaction.commitAllowingStateLoss();
+        }else {
+            fragment.setArguments(bundle);
+            transaction.replace(R.id.frame_container, fragment);
+            transaction.commitAllowingStateLoss();
+        }
 
-        view_list.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
-        view_list.setAdapter(new GiftCenterAdapter(activity, list));
     }
 
-    private Activity activity;
-    private List<Welfare> list = ListUtil.emptyList();
     @Override
     public void initListener() {
 
     }
 
-
     @Override
     public void initData() {
-        empty_view.setVisibility(View.INVISIBLE);
-        SysAppUtil.checkNet(new Action1<Integer>() {
-            @Override
-            public void call(Integer result) {
-                if (result != 0) {//无网络
-                    if (check_net_ll != null)
-                        check_net_ll.setVisibility(View.VISIBLE);
-                } else {
-                    if (check_net_ll != null)
-                        check_net_ll.setVisibility(View.GONE);
-                }
-            }
-        });
-        SheepApp.getInstance().getNetComponent().getApiService().getFindAppReservationList(1, 100)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        List<Welfare> newList = baseMessage.getDataList(Welfare.class);
-                        list.clear();
-                        ListUtil.addAll(list, newList);
-                        if(!list.isEmpty())
-                            list.add(null);//底部圆角
-                        notifyDataSetChanged();
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        list.clear();
-                        notifyDataSetChanged();
-                    }
-                });
-    }
-
-
-    private void notifyDataSetChanged() {
-        CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty());
-        refresh.setRefreshing(false);
-        view_list.getAdapter().notifyDataSetChanged();
-    }
-
-    private Map<String, FindApp> findAppMap = new HashMap<>();
-    //获取任务对应的findApp
-    private FindApp getFindAppByKey(String key) {
-        if(findAppMap.containsKey(key))
-            return findAppMap.get(key);
-        return null;
-    }
-    private Map<String, TextView> downLoadTextViewMap = new HashMap<>();
-    //获取任务对应的TextView来更新进度
-    private TextView getTextViewByTask(DownloadTask task) {
-        return getTextViewByKey(task.getKey());
-    }
-    private TextView getTextViewByKey(String key) {
-        if(downLoadTextViewMap.containsKey(key))
-            return downLoadTextViewMap.get(key);
-        return null;
-    }
-    //下载状态监听
-
-    @Download.onPre void onPre(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText("准备下载中");
-        }
-    }
-
-    @Download.onTaskStart void taskStart(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText("开始下载中");
-        }
-    }
-    @Download.onTaskResume void taskResume(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText("恢复下载中");
-        }
-    }
-    //在这里处理任务执行中的状态,如进度进度条的刷新
-    @Download.onTaskRunning protected void running(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText(String.format(Locale.CHINA, "%d%%", Math.abs(task.getPercent())));
-        }
-    }
-
-    @Download.onTaskStop void taskStop(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText(CommonUtil.CONTINUE_DOWNLOAD);
-        }
-    }
-
-    @Download.onNoSupportBreakPoint void onNoSupportBreakPoint(DownloadTask task) {
-    }
-
-    @Download.onTaskCancel void taskCancel(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText("已经取消");
-        }
-    }
 
-    @Download.onTaskFail void taskFail(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText(CommonUtil.FAIL_DOWNLOAD);
-        }
-    }
-
-    @Download.onTaskComplete void taskComplete(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if(textView != null) {
-            textView.setText(CommonUtil.START_INSTALL);
-        }
-        FindApp findApp = getFindAppByKey(task.getKey());
-        if(findApp != null) {
-            findApp.updateState(DownloadTaskService.STATUS_FINISH);
-        }
-    }
-
-    @Subscribe
-    public void onEventMainThread(Intent intent) {
-        if(intent != null && intent.getAction() != null && intent.getDataString() != null && intent.getDataString().contains("package:")){
-            String packageName = intent.getDataString().replace("package:","");
-
-            TextView textView = getTextViewByKey(packageName);
-            if(textView != null) {
-                switch (intent.getAction()){
-                    case ACTION_PACKAGE_ADDED:
-                        textView.setText(CommonUtil.GAME_OPEN);
-                        break;
-                    case ACTION_PACKAGE_REMOVED:
-                        String path = PackageUtil.isExistsFile(packageName);
-                        if(TextUtils.isEmpty(path)) {
-                            textView.setText(CommonUtil.START_DOWNLOAD);
-                        } else {
-                            textView.setText(CommonUtil.START_INSTALL);
-                        }
-                        break;
-                }
-            }
-            FindApp findApp = getFindAppByKey(packageName);
-            if(findApp != null) {
-                switch (intent.getAction()){
-                    case ACTION_PACKAGE_ADDED:
-                        findApp.updateState(DownloadTaskService.STATUS_INSTALLED);
-                        break;
-                    case ACTION_PACKAGE_REMOVED:
-                        String path = PackageUtil.isExistsFile(packageName);
-                        if(TextUtils.isEmpty(path)) {
-                            findApp.updateState(DownloadTaskService.STATUS_INIT);
-                        } else {
-                            findApp.updateState(DownloadTaskService.STATUS_FINISH);
-                        }
-                        break;
-                }
-            }
-        }
-    }
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        EventBus.getDefault().unregister(this);
     }
 }

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActMainGame.java

@@ -78,7 +78,7 @@ public class ActMainGame extends BaseActivity {
 
     @Override
     protected int getLayoutId() {
-        return R.layout.act_main_game;
+        return R.layout.common_container_act;
     }
 
     @Override

+ 3 - 38
app/src/main/java/com/sheep/gamegroup/view/activity/ActMyWelfare.java

@@ -1,55 +1,20 @@
 package com.sheep.gamegroup.view.activity;
 
 import android.app.Activity;
-import android.content.Intent;
 import android.support.design.widget.TabLayout;
 import android.support.v4.view.ViewPager;
-import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.TextView;
-
-import com.arialyy.annotations.Download;
-import com.arialyy.aria.core.Aria;
-import com.arialyy.aria.core.download.DownloadTask;
-import com.kfzs.duanduan.fragment.FgtFindChild;
+
 import com.kfzs.duanduan.mine.GiftpackListAdapter;
-import com.kfzs.duanduan.services.DownloadTaskService;
 import com.sheep.gamegroup.absBase.BaseActivity;
-import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.FindApp;
-import com.sheep.gamegroup.model.entity.Welfare;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.gamegroup.view.adapter.GiftCenterAdapter;
-import com.sheep.gamegroup.view.fragment.FgtDownloadWelfare;
+import com.sheep.gamegroup.view.fragment.FgtMyDownloadWelfareList;
 import com.sheep.gamegroup.view.fragment.FgtMyGift;
 import com.sheep.gamegroup.view.fragment.FgtWelfareUseRecord;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
 import butterknife.BindView;
-import rx.android.schedulers.AndroidSchedulers;
-import rx.functions.Action1;
-import rx.schedulers.Schedulers;
-
-import static android.content.Intent.ACTION_PACKAGE_ADDED;
-import static android.content.Intent.ACTION_PACKAGE_REMOVED;
-import static com.sheep.gamegroup.util.UMConfigUtils.Event.FIND_TAG;
 
 /**
  * Created by realicing on 2018/8/28.
@@ -82,7 +47,7 @@ public class ActMyWelfare extends BaseActivity {
     @Override
     public void initListener() {
         mAdapter = new GiftpackListAdapter(getSupportFragmentManager(), SheepApp.getInstance());
-        mAdapter.add(new FgtDownloadWelfare(), "下载福利");
+        mAdapter.add(new FgtMyDownloadWelfareList(), "下载福利");
         mAdapter.add(new FgtMyGift(), "我的礼包");
         mAdapter.add(new FgtWelfareUseRecord(), "使用记录");
         pager.setAdapter(mAdapter);

+ 35 - 4
app/src/main/java/com/sheep/gamegroup/view/activity/LoginAct.java

@@ -3,9 +3,11 @@ package com.sheep.gamegroup.view.activity;
 import android.os.Bundle;
 import android.support.v7.widget.AppCompatCheckBox;
 import android.support.v7.widget.AppCompatEditText;
+import android.text.Editable;
 import android.text.InputFilter;
 import android.text.InputType;
 import android.text.TextUtils;
+import android.text.TextWatcher;
 import android.util.Log;
 import android.view.View;
 import android.widget.ImageView;
@@ -29,6 +31,7 @@ import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.PreferenceUtils;
 import com.sheep.gamegroup.util.SelfCountDownTimer;
+import com.sheep.gamegroup.util.StringUtils;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.jiuyan.samllsheep.R;
@@ -103,6 +106,26 @@ public class LoginAct extends BaseUMActivity implements LoginContract.View {
                 .inject(this);
         TestUtil.testChange(this, (TextView) findViewById(R.id.test_change));
         TestUtil.testChangeUser(this, (TextView) findViewById(R.id.test_change_user));
+        if(DataUtil.是官方包吗()){
+            loginEtScope.setVisibility(View.GONE);
+        } else {
+            loginEtAccount.addTextChangedListener(new TextWatcher() {
+                @Override
+                public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+                }
+
+                @Override
+                public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+                }
+
+                @Override
+                public void afterTextChanged(Editable editable) {
+                    checkAccountScope(editable);
+                }
+            });
+        }
 
         if (TestUtil.isTest()) {
             loginEtAccount.setInputType(InputType.TYPE_CLASS_TEXT);
@@ -110,6 +133,17 @@ public class LoginAct extends BaseUMActivity implements LoginContract.View {
         }
     }
 
+    /**
+     * 根据输入的手机号检查账号有没有邀请码
+     */
+    private void checkAccountScope(Editable editable) {
+        String mobile = editable.toString();
+        if(StringUtils.isMobile(mobile)){//是手机号才检查
+            //TODO 调用接口检查账号中的邀请码
+        }
+
+    }
+
 
     @Override
     public void initListener() {
@@ -277,10 +311,7 @@ public class LoginAct extends BaseUMActivity implements LoginContract.View {
         if (!checkCodeInput()) {
             return;
         }
-        String scope = loginEtScope.getText().toString();
-        if(TextUtils.isEmpty(scope)){
-            scope = ChannelContent.getInstance().getChannel_name();
-        }
+        String scope = DataUtil.是官方包吗() ? ChannelContent.getInstance().getChannel_name() : loginEtScope.getText().toString();
         showProgress();
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("account", etPhone);

+ 4 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java

@@ -235,6 +235,10 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                 }
             });
         }
+        ViewUtil.setDefaultText(nameTv);
+        ViewUtil.setDefaultText(priceTv);
+        ViewUtil.setDefaultText(dateTv);
+        ViewUtil.setDefaultText(num_tv);
     }
 
     @Override

+ 169 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/BaseListFragment.java

@@ -0,0 +1,169 @@
+package com.sheep.gamegroup.view.fragment;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.jcodecraeer.xrecyclerview.XRecyclerView;
+import com.sheep.gamegroup.model.api.ApiService;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.SysAppUtil;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.Unbinder;
+import rx.Observable;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.functions.Action1;
+import rx.schedulers.Schedulers;
+
+/**
+ * Created by realicing on 2018/9/3.
+ * realicing@sina.com
+ */
+public abstract class BaseListFragment<T> extends BaseFragment {
+    @Override
+    public int getLayoutId() {
+        return R.layout.net_empty_xrecycler;
+    }
+
+    protected Activity activity;
+    @Override
+    public void onViewCreated() {
+        activity = getActivity();
+        initView();
+        initListener();
+        initData();
+
+    }
+    @BindView(R.id.title)
+    View title;
+    @BindView(R.id.empty_view)
+    View empty_view;
+    @BindView(R.id.check_net_ll)
+    View check_net_ll;
+    @BindView(R.id.view_list)
+    XRecyclerView view_list;
+
+    protected int page = 1;//页数
+    protected int per_page = 10;
+    public void initView() {
+        title.setVisibility(View.GONE);
+    }
+    private View bottomLine;
+    public void initListener() {
+        view_list.setLoadingListener(new XRecyclerView.LoadingListener() {
+            @Override
+            public void onRefresh() {
+                refreshData();
+            }
+
+            @Override
+            public void onLoadMore() {
+                if(ListUtil.size(list) >= per_page*page){
+                    page += 1;
+                    initData();
+                }else {
+                    view_list.setNoMore(true);
+                }
+            }
+        });
+        bottomLine = ViewUtil.setBottomLine(view_list);
+        view_list.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
+        view_list.setAdapter(getAdapter());
+
+    }
+
+
+    protected List<T> list = ListUtil.emptyList();
+    public void initData() {
+        final String urlKey = getKey(page, per_page);
+        //先尝试获取缓存数据
+        List<T> newList = DataUtil.getInstance().getCacheList(urlKey, getTClass());
+        loadList(newList);
+        empty_view.setVisibility(View.INVISIBLE);
+        SysAppUtil.checkNet(new Action1<Integer>() {
+            @Override
+            public void call(Integer result) {
+                if(result != 0){//无网络
+                    if(check_net_ll != null)
+                        check_net_ll.setVisibility(View.VISIBLE);
+                } else {
+                    if(check_net_ll != null)
+                        check_net_ll.setVisibility(View.GONE);
+                }
+            }
+        });
+        getApi(SheepApp.getInstance().getNetComponent().getApiService())
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        boolean isNewData = DataUtil.getInstance().isNewData(urlKey);
+                        if(isNewData) {
+                            List<T> newList = baseMessage.getDatas(getTClass());
+                            loadList(newList);
+                        }
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        notifyDataSetChanged();
+                    }
+                });
+    }
+
+    public void refreshData(){
+        list.clear();
+        view_list.getAdapter().notifyDataSetChanged();
+        page = 1;
+        initData();
+    }
+    private void loadList(List<T> newList){
+        ListUtil.addAll(list, newList);
+        notifyDataSetChanged();
+    }
+    protected void notifyDataSetChanged(){
+        CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty());
+        bottomLine.setVisibility(list.isEmpty() ? View.INVISIBLE : View.VISIBLE);
+        if(page == 1){
+            view_list.refreshComplete();
+        } else {
+            view_list.loadMoreComplete();
+        }
+        view_list.getAdapter().notifyDataSetChanged();
+    }
+    Unbinder unbinder;
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+        // TODO: inflate a fragment view
+        View rootView = super.onCreateView(inflater, container, savedInstanceState);
+        unbinder = ButterKnife.bind(this, rootView);
+        return rootView;
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        unbinder.unbind();
+    }
+    protected abstract RecyclerView.Adapter getAdapter();
+    protected abstract String getKey(int page, int per_page);
+    protected abstract Observable<BaseMessage> getApi(ApiService apiService);
+    protected abstract Class<T> getTClass();
+}

+ 0 - 143
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtDownloadWelfare.java

@@ -1,143 +0,0 @@
-package com.sheep.gamegroup.view.fragment;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.TextView;
-
-import com.arialyy.annotations.Download;
-import com.arialyy.aria.core.Aria;
-import com.arialyy.aria.core.download.DownloadTask;
-import com.kfzs.duanduan.services.DownloadTaskService;
-import com.sheep.gamegroup.absBase.BaseActivity;
-import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.FindApp;
-import com.sheep.gamegroup.model.entity.Welfare;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.gamegroup.view.adapter.GiftCenterAdapter;
-import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.base.BaseFragment;
-import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
-import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
-
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import butterknife.BindView;
-import butterknife.ButterKnife;
-import rx.android.schedulers.AndroidSchedulers;
-import rx.functions.Action1;
-import rx.schedulers.Schedulers;
-
-import static android.content.Intent.ACTION_PACKAGE_ADDED;
-import static android.content.Intent.ACTION_PACKAGE_REMOVED;
-
-/**
- * 我的福利--下载福利
- * Created by realicing on 2018/8/28.
- * realicing@sina.com
- */
-public class FgtDownloadWelfare extends BaseFragment {
-    @Override
-    public int getLayoutId() {
-        return R.layout.net_empty_fresh_list_not_wrap;
-    }
-
-    @Override
-    public void onViewCreated() {
-        ButterKnife.bind(this, mView);
-        initView();
-        initListener();
-        initData();
-    }
-
-    @BindView(R.id.refresh)
-    SwipeRefreshLayout refresh;
-    @BindView(R.id.empty_view)
-    View empty_view;
-    @BindView(R.id.title)
-    View title;
-    @BindView(R.id.check_net_ll)
-    View check_net_ll;
-    @BindView(R.id.view_list)
-    RecyclerView view_list;
-
-    public void initView() {
-        activity = getActivity();
-        title.setVisibility(View.GONE);
-        check_net_ll.setVisibility(View.GONE);
-
-    }
-
-    private Activity activity;
-    private List<Welfare> list = ListUtil.emptyList();
-    public void initListener() {
-        refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                initData();
-                refresh.setRefreshing(false);
-            }
-        });
-
-        view_list.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
-        view_list.setAdapter(new GiftCenterAdapter(activity, list));
-    }
-
-
-    public void initData() {
-        empty_view.setVisibility(View.INVISIBLE);
-        SysAppUtil.checkNet(new Action1<Integer>() {
-            @Override
-            public void call(Integer result) {
-                if (result != 0) {//无网络
-                    if (check_net_ll != null)
-                        check_net_ll.setVisibility(View.VISIBLE);
-                } else {
-                    if (check_net_ll != null)
-                        check_net_ll.setVisibility(View.GONE);
-                }
-            }
-        });
-        SheepApp.getInstance().getNetComponent().getApiService().getFindAppReservationList(1, 100)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        List<Welfare> newList = baseMessage.getDataList(Welfare.class);
-                        list.clear();
-                        ListUtil.addAll(list, newList);
-                        if(!list.isEmpty())
-                            list.add(null);//底部圆角
-                        notifyDataSetChanged();
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        list.clear();
-                        notifyDataSetChanged();
-                    }
-                });
-    }
-
-
-    private void notifyDataSetChanged() {
-        CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty());
-        refresh.setRefreshing(false);
-        view_list.getAdapter().notifyDataSetChanged();
-    }
-}

+ 38 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtDownloadWelfareList.java

@@ -0,0 +1,38 @@
+package com.sheep.gamegroup.view.fragment;
+
+import android.support.v7.widget.RecyclerView;
+
+import com.sheep.gamegroup.model.api.ApiService;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.Welfare;
+import com.sheep.gamegroup.view.adapter.DownloadWelfareAdapter;
+
+import java.util.Locale;
+
+import rx.Observable;
+
+/**
+ * Created by realicing on 2018/9/3.
+ * realicing@sina.com
+ */
+public class FgtDownloadWelfareList extends BaseListFragment<Welfare> {
+    @Override
+    protected RecyclerView.Adapter getAdapter() {
+        return new DownloadWelfareAdapter(activity, list);
+    }
+
+    @Override
+    protected String getKey(int page, int per_page) {
+        return String.format(Locale.CHINA, "app/release_task/down_welfare?page=%d&per_page=%d", page, per_page);
+    }
+
+    @Override
+    protected Observable<BaseMessage> getApi(ApiService apiService) {
+        return apiService.getDownWelfareList(page, per_page);
+    }
+
+    @Override
+    protected Class<Welfare> getTClass() {
+        return Welfare.class;
+    }
+}

+ 38 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtGiftCenter.java

@@ -0,0 +1,38 @@
+package com.sheep.gamegroup.view.fragment;
+
+import android.support.v7.widget.RecyclerView;
+
+import com.sheep.gamegroup.model.api.ApiService;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.Welfare;
+import com.sheep.gamegroup.view.adapter.DownloadWelfareAdapter;
+
+import java.util.Locale;
+
+import rx.Observable;
+
+/**
+ * Created by realicing on 2018/9/3.
+ * realicing@sina.com
+ */
+public class FgtGiftCenter extends BaseListFragment<Welfare> {
+    @Override
+    protected RecyclerView.Adapter getAdapter() {
+        return new DownloadWelfareAdapter(activity, list);
+    }
+
+    @Override
+    protected String getKey(int page, int per_page) {
+        return String.format(Locale.CHINA, "app/gift_bag?page=%d&per_page=%d", page, per_page);
+    }
+
+    @Override
+    protected Observable<BaseMessage> getApi(ApiService apiService) {
+        return apiService.getGiftBagList(page, per_page);
+    }
+
+    @Override
+    protected Class<Welfare> getTClass() {
+        return Welfare.class;
+    }
+}

+ 39 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMyDownloadWelfareList.java

@@ -0,0 +1,39 @@
+package com.sheep.gamegroup.view.fragment;
+
+import android.support.v7.widget.RecyclerView;
+
+import com.sheep.gamegroup.model.api.ApiService;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.Welfare;
+import com.sheep.gamegroup.view.adapter.DownloadWelfareAdapter;
+
+import java.util.Locale;
+
+import rx.Observable;
+
+/**
+ * 我的福利--下载福利
+ * Created by realicing on 2018/8/28.
+ * realicing@sina.com
+ */
+public class FgtMyDownloadWelfareList extends BaseListFragment<Welfare> {
+    @Override
+    protected RecyclerView.Adapter getAdapter() {
+        return new DownloadWelfareAdapter(activity, list);
+    }
+
+    @Override
+    protected String getKey(int page, int per_page) {
+        return String.format(Locale.CHINA, "app/game_consumption/my_voucher?page=%d&per_page=%d", page, per_page);
+    }
+
+    @Override
+    protected Observable<BaseMessage> getApi(ApiService apiService) {
+        return apiService.getMyWelfareList(page, per_page);
+    }
+
+    @Override
+    protected Class<Welfare> getTClass() {
+        return Welfare.class;
+    }
+}

+ 15 - 97
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMyGift.java

@@ -1,121 +1,39 @@
 package com.sheep.gamegroup.view.fragment;
 
-import android.app.Activity;
-import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
-import android.view.View;
 
+import com.sheep.gamegroup.model.api.ApiService;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.Welfare;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.gamegroup.view.adapter.GiftCenterAdapter;
-import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+import com.sheep.gamegroup.view.adapter.DownloadWelfareAdapter;
 
-import java.util.List;
+import java.util.Locale;
 
-import butterknife.BindView;
-import rx.android.schedulers.AndroidSchedulers;
-import rx.functions.Action1;
-import rx.schedulers.Schedulers;
+import rx.Observable;
 
 /**
  * 我的福利--我的礼包
  * Created by realicing on 2018/8/28.
  * realicing@sina.com
  */
-public class FgtMyGift extends BaseFragment {
+public class FgtMyGift extends BaseListFragment<Welfare> {
     @Override
-    public int getLayoutId() {
-        return R.layout.net_empty_fresh_list_not_wrap;
+    protected RecyclerView.Adapter getAdapter() {
+        return new DownloadWelfareAdapter(activity, list);
     }
 
     @Override
-    public void onViewCreated() {
-        initView();
-        initListener();
-        initData();
+    protected String getKey(int page, int per_page) {
+        return String.format(Locale.CHINA, "app/gift_bag/my_gift_bag?page=%d&per_page=%d", page, per_page);
     }
 
-    @BindView(R.id.refresh)
-    SwipeRefreshLayout refresh;
-    @BindView(R.id.empty_view)
-    View empty_view;
-    @BindView(R.id.title)
-    View title;
-    @BindView(R.id.check_net_ll)
-    View check_net_ll;
-    @BindView(R.id.view_list)
-    RecyclerView view_list;
-
-    public void initView() {
-        activity = getActivity();
-        title.setVisibility(View.GONE);
-        check_net_ll.setVisibility(View.GONE);
-
-    }
-
-    private Activity activity;
-    private List<Welfare> list = ListUtil.emptyList();
-    public void initListener() {
-        refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                initData();
-                refresh.setRefreshing(false);
-            }
-        });
-
-        view_list.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
-        view_list.setAdapter(new GiftCenterAdapter(activity, list));
-    }
-
-
-    public void initData() {
-        empty_view.setVisibility(View.INVISIBLE);
-        SysAppUtil.checkNet(new Action1<Integer>() {
-            @Override
-            public void call(Integer result) {
-                if (result != 0) {//无网络
-                    if (check_net_ll != null)
-                        check_net_ll.setVisibility(View.VISIBLE);
-                } else {
-                    if (check_net_ll != null)
-                        check_net_ll.setVisibility(View.GONE);
-                }
-            }
-        });
-        SheepApp.getInstance().getNetComponent().getApiService().getFindAppReservationList(1, 100)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        List<Welfare> newList = baseMessage.getDataList(Welfare.class);
-                        list.clear();
-                        ListUtil.addAll(list, newList);
-                        if(!list.isEmpty())
-                            list.add(null);//底部圆角
-                        notifyDataSetChanged();
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        list.clear();
-                        notifyDataSetChanged();
-                    }
-                });
+    @Override
+    protected Observable<BaseMessage> getApi(ApiService apiService) {
+        return apiService.getMyGiftBagList(page, per_page);
     }
 
-
-    private void notifyDataSetChanged() {
-        CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty());
-        refresh.setRefreshing(false);
-        view_list.getAdapter().notifyDataSetChanged();
+    @Override
+    protected Class<Welfare> getTClass() {
+        return Welfare.class;
     }
 }

+ 4 - 3
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtWelfareCenter.java

@@ -124,6 +124,7 @@ public class FgtWelfareCenter extends BaseFragment {
     private boolean refreshHotWelfare = true;
     private boolean refreshDownloadWelfare = true;
     private boolean refreshGiftCenter = true;
+    private final static int DEFAULT_COUNT = 5;//下载福利与礼包中心默认显示条数
     //刷新数据
     private void refreshData() {
         if(refreshHotWelfare || refreshDownloadWelfare || refreshGiftCenter) {
@@ -131,7 +132,7 @@ public class FgtWelfareCenter extends BaseFragment {
         }
         //热门福利
         if(refreshHotWelfare) {
-            SheepApp.getInstance().getNetComponent().getApiService().getFindTagList()
+            SheepApp.getInstance().getNetComponent().getApiService().getHotWelfareList()
                     .subscribeOn(Schedulers.io())
                     .observeOn(AndroidSchedulers.mainThread())
                     .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
@@ -156,7 +157,7 @@ public class FgtWelfareCenter extends BaseFragment {
         }
         //下载福利
         if(refreshDownloadWelfare) {
-            SheepApp.getInstance().getNetComponent().getApiService().getFindTagList()
+            SheepApp.getInstance().getNetComponent().getApiService().getDownWelfareList(1,DEFAULT_COUNT)
                     .subscribeOn(Schedulers.io())
                     .observeOn(AndroidSchedulers.mainThread())
                     .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
@@ -181,7 +182,7 @@ public class FgtWelfareCenter extends BaseFragment {
         }
         //礼包中心
         if(refreshGiftCenter) {
-            SheepApp.getInstance().getNetComponent().getApiService().getFindTagList()
+            SheepApp.getInstance().getNetComponent().getApiService().getGiftBagList(1, DEFAULT_COUNT)
                     .subscribeOn(Schedulers.io())
                     .observeOn(AndroidSchedulers.mainThread())
                     .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {

+ 15 - 97
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtWelfareUseRecord.java

@@ -1,121 +1,39 @@
 package com.sheep.gamegroup.view.fragment;
 
-import android.app.Activity;
-import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
-import android.view.View;
 
+import com.sheep.gamegroup.model.api.ApiService;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.Welfare;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.gamegroup.view.adapter.GiftCenterAdapter;
-import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+import com.sheep.gamegroup.view.adapter.DownloadWelfareAdapter;
 
-import java.util.List;
+import java.util.Locale;
 
-import butterknife.BindView;
-import rx.android.schedulers.AndroidSchedulers;
-import rx.functions.Action1;
-import rx.schedulers.Schedulers;
+import rx.Observable;
 
 /**
  * 我的福利--使用记录
  * Created by realicing on 2018/8/28.
  * realicing@sina.com
  */
-public class FgtWelfareUseRecord extends BaseFragment {
+public class FgtWelfareUseRecord extends BaseListFragment<Welfare> {
     @Override
-    public int getLayoutId() {
-        return R.layout.net_empty_fresh_list_not_wrap;
+    protected RecyclerView.Adapter getAdapter() {
+        return new DownloadWelfareAdapter(activity, list);
     }
 
     @Override
-    public void onViewCreated() {
-        initView();
-        initListener();
-        initData();
+    protected String getKey(int page, int per_page) {
+        return String.format(Locale.CHINA, "app/game_consumption/voucher_use_log?page=%d&per_page=%d", page, per_page);
     }
 
-    @BindView(R.id.refresh)
-    SwipeRefreshLayout refresh;
-    @BindView(R.id.empty_view)
-    View empty_view;
-    @BindView(R.id.title)
-    View title;
-    @BindView(R.id.check_net_ll)
-    View check_net_ll;
-    @BindView(R.id.view_list)
-    RecyclerView view_list;
-
-    public void initView() {
-        activity = getActivity();
-        title.setVisibility(View.GONE);
-        check_net_ll.setVisibility(View.GONE);
-
-    }
-
-    private Activity activity;
-    private List<Welfare> list = ListUtil.emptyList();
-    public void initListener() {
-        refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                initData();
-                refresh.setRefreshing(false);
-            }
-        });
-
-        view_list.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
-        view_list.setAdapter(new GiftCenterAdapter(activity, list));
-    }
-
-
-    public void initData() {
-        empty_view.setVisibility(View.INVISIBLE);
-        SysAppUtil.checkNet(new Action1<Integer>() {
-            @Override
-            public void call(Integer result) {
-                if (result != 0) {//无网络
-                    if (check_net_ll != null)
-                        check_net_ll.setVisibility(View.VISIBLE);
-                } else {
-                    if (check_net_ll != null)
-                        check_net_ll.setVisibility(View.GONE);
-                }
-            }
-        });
-        SheepApp.getInstance().getNetComponent().getApiService().getFindAppReservationList(1, 100)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        List<Welfare> newList = baseMessage.getDataList(Welfare.class);
-                        list.clear();
-                        ListUtil.addAll(list, newList);
-                        if(!list.isEmpty())
-                            list.add(null);//底部圆角
-                        notifyDataSetChanged();
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        list.clear();
-                        notifyDataSetChanged();
-                    }
-                });
+    @Override
+    protected Observable<BaseMessage> getApi(ApiService apiService) {
+        return apiService.getMyWelfareLogList(page, per_page);
     }
 
-
-    private void notifyDataSetChanged() {
-        CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty());
-        refresh.setRefreshing(false);
-        view_list.getAdapter().notifyDataSetChanged();
+    @Override
+    protected Class<Welfare> getTClass() {
+        return Welfare.class;
     }
 }

+ 1 - 1
app/src/main/res/layout/activity_main.xml

@@ -3,7 +3,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
-    <include layout="@layout/act_find"/>
+    <include layout="@layout/common_container"/>
     <LinearLayout
         android:id="@+id/other_container"
         android:layout_width="match_parent"

app/src/main/res/layout/act_find.xml → app/src/main/res/layout/common_container.xml


+ 0 - 7
app/src/main/res/layout/act_main_game.xml

@@ -2,15 +2,8 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@color/white_light"
     android:orientation="vertical">
     <include layout="@layout/title" />
-    <include
-        android:id="@+id/layout_main_activity_toolbar"
-        layout="@layout/toolbar_main_activity"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/app_nav_toolbar_height"
-        android:visibility="gone"/>
     <FrameLayout
         android:id="@+id/frame_container"
         android:layout_width="match_parent"

+ 3 - 6
app/src/main/res/layout/login_act_layout.xml

@@ -74,12 +74,9 @@
                 android:id="@+id/login_et_scope"
                 style="@style/style_login_et"
                 android:hint="请输入邀请码(非必填)"
-                android:inputType="phone"
-                android:maxLength="11"/>
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1dp"
-                android:background="@color/white" />
+                android:inputType="number"
+                android:maxLength="6"
+                android:gravity="center"/>
         </LinearLayout>
         <View
             android:layout_width="match_parent"