Просмотр исходного кода

小米游戏需求修改;任务详情与任务记录缓存修改

zengjiebin лет назад: 7
Родитель
Сommit
45380e9b64

app/src/sheeptest/res/values/strings.xml → app/src/developSheeptest/res/values/strings.xml


+ 20 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/GameAccountEntity.java

@@ -22,6 +22,16 @@ public class GameAccountEntity implements Serializable {
     private int platform_receive;//是否平台领取 1是 2不是
     private String password;
 
+    private int app_id;//应用id(小米)
+
+    public int getApp_id() {
+        return app_id;
+    }
+
+    public void setApp_id(int app_id) {
+        this.app_id = app_id;
+    }
+
     public String getAccount() {
         return account;
     }
@@ -105,6 +115,9 @@ public class GameAccountEntity implements Serializable {
 
 
     public String getTypeName(){
+        if(app_id > 0){
+            return TextUtils.isEmpty(task_name)?"通用":task_name;
+        }
         switch (task_id){
             case 0:
                 return "通用";
@@ -151,6 +164,13 @@ public class GameAccountEntity implements Serializable {
     }
 
     /**
+     * 是否是小米账号(这里不能通过task_type来判断)
+     * @return
+     */
+    public boolean isXiaoMiAccount(){
+        return app_id != 0;
+    }
+    /**
      * 是否是平台账号
      * @return
      */

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

@@ -45,7 +45,7 @@ public class DataUtil {
      */
     public void clearData() {
         userEntity = null;
-        clearCache(ApiKey.get_info);//清除用户信息的缓存
+        aCache.clear();
     }
 
     //-----------------------------------------用户信息部分-----------------------------------------------------开始

+ 7 - 0
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -29,6 +29,7 @@ import com.bumptech.glide.request.RequestOptions;
 import com.sheep.gamegroup.model.entity.Advertising;
 import com.sheep.gamegroup.model.entity.Container;
 import com.sheep.gamegroup.model.entity.DialogConfig;
+import com.sheep.gamegroup.model.entity.GameAccountEntity;
 import com.sheep.gamegroup.model.entity.PayEntity;
 import com.sheep.gamegroup.view.activity.SplashAct;
 import com.sheep.gamegroup.view.dialog.DialogAddAccount;
@@ -689,6 +690,12 @@ public class ViewUtil {
     public void showGameAccountDetail(Activity activity, int id){
         new DialogModifyAccount(activity, id).showAddAccount();
     }
+    /**
+     * 用户详情
+     */
+    public void showGameAccountDetail(Activity activity, GameAccountEntity item){
+        new DialogModifyAccount(activity, item).showAddAccount();
+    }
 
 
     /**

+ 20 - 24
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java

@@ -192,8 +192,8 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     //2.6
     private boolean btn_show;//true:不显示按钮
 
-    //是否刷新页面
-    private boolean isFresh;
+    //是否需要在onResume中刷新页面
+    private boolean isFresh = false;
 
     @Override
     protected int getLayoutId() {
@@ -233,10 +233,8 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
 
     @Override
     public void initData() {
-        if (releaseTaskId != -1 && !isGetTaskDesc) {
-            isGetTaskDesc = false;
+        if (releaseTaskId != -1) {
             getAcceptedTaskDetail(releaseTaskId);
-            return;
         }
     }
 
@@ -766,14 +764,12 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         empty_view.setVisibility(View.GONE);
         taskReleaseEty = baseMessage.getData(TaskReleaseEty.class);
         initWigget();
-        isGetTaskDesc = false;
     }
 
     @Override
     public void taskDescFaile(BaseMessage baseMessage) {
         hideProgress();
         G.showToast(baseMessage.getMsg() + "");
-        isGetTaskDesc = false;
         CommonUtil.getInstance().updateEmptyView(empty_view, true);
     }
 
@@ -870,7 +866,6 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
 
                         DataUtil.getInstance().setTaskListChange(true);//主页任务列表发生变化,回到主页后自动刷新
 
-                        isGetTaskDesc = false;
                         getAcceptedTaskDetail(releaseTaskId);
 
                     }
@@ -968,15 +963,14 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         if (task.getKey().equals(taskEty.getDownload_link())) {
             //在这里处理任务完成的状态
             btnTaskItem.setText(CommonUtil.START_INSTALL);
-            freshData();
+            updateBottom();
         }
     }
 
-    private boolean isGetTaskDesc = false;//是否需要获取TaskReleaseEty
 
     public void freshData() {
-        if (releaseTaskId != -1 && !isGetTaskDesc && !isFresh) {
-            isGetTaskDesc = true;
+        if (releaseTaskId != -1 && isFresh) {
+            isFresh = false;
             getAcceptedTaskDetail(releaseTaskId);
         }
     }
@@ -1171,27 +1165,29 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                     public void call(BaseMessage baseMessage) {
                         if(baseMessage.getCode() == 0)
                             gettaskAcceptedEty = baseMessage.getData(TaskAcceptedEty.class);
-                        if(isGetTaskDesc && gettaskAcceptedEty.getRelease_task() == null) {//需要获取taskReleaseEty
-                            taskReleaseEty = DataUtil.getInstance().getCacheResult(ApiKey.releaseTaskDesc(releaseTaskId), TaskReleaseEty.class);
-                            if (taskReleaseEty == null) {//没有缓存的任务详情
-                                presenter.taskDesc(releaseTaskId);
-                            } else {//获取到缓存的任务详情
-                                hideProgress();
-                                empty_view.setVisibility(View.GONE);
-                                initWigget();
-                                isGetTaskDesc = false;
-                            }
+                        if(gettaskAcceptedEty != null)
+                            taskReleaseEty = gettaskAcceptedEty.getRelease_task();
+                        if(taskReleaseEty == null){
+                            initTaskReleaseEty();
                         } else {
                             hideProgress();
-                            taskReleaseEty = gettaskAcceptedEty.getRelease_task();
                             empty_view.setVisibility(View.GONE);
                             initWigget();
-                            isGetTaskDesc = false;
                         }
                     }
                 });
     }
 
+    private void initTaskReleaseEty() {
+        taskReleaseEty = DataUtil.getInstance().getCacheResult(ApiKey.releaseTaskDesc(releaseTaskId), TaskReleaseEty.class);
+            hideProgress();
+        if (taskReleaseEty != null) {
+            empty_view.setVisibility(View.GONE);
+            initWigget();
+        }
+        presenter.taskDesc(releaseTaskId);
+    }
+
     @Override
     protected void onDestroy() {
         super.onDestroy();

+ 3 - 6
app/src/main/java/com/sheep/gamegroup/view/activity/TaskListAct.java

@@ -128,13 +128,10 @@ public class TaskListAct extends BaseActivity implements TaskListContract.View {
     }
 
     @Override
-    public void updataView(Object o) {
-        try {
-            BaseMessage baseMessage = (BaseMessage) o;
-            List<TaskAcceptedEty> releaseEtyList = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), TaskAcceptedEty.class);
+    public void updataView(Object object) {
+        if(object instanceof BaseMessage){
+            List<TaskAcceptedEty> releaseEtyList = ((BaseMessage) object).getDataList(TaskAcceptedEty.class);
             ListUtil.addAll(etyList, releaseEtyList);
-        } catch (Exception e) {
-            e.printStackTrace();
         }
         notifyDataSetChanged();
     }

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGameAccount.java

@@ -132,7 +132,7 @@ public class AdpGameAccount extends AdpCommonRecy<RecyleObj> {
                     @Override
                     public void onClick(View v) {
                         USER_GAME_ACCOUNT_LOOK.onEvent();
-                        ViewUtil.newInstance().showGameAccountDetail((Activity) context, item.getId());
+                        ViewUtil.newInstance().showGameAccountDetail((Activity) context, item);
                     }
                 });
                 if(item.cantDeleteAccount()){

+ 19 - 3
app/src/main/java/com/sheep/gamegroup/view/dialog/DialogModifyAccount.java

@@ -3,6 +3,7 @@ package com.sheep.gamegroup.view.dialog;
 import android.app.Activity;
 import android.content.DialogInterface;
 import android.os.Handler;
+import android.os.Looper;
 import android.os.Message;
 import android.support.v7.app.AlertDialog;
 import android.text.TextUtils;
@@ -37,6 +38,8 @@ import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_GAME_ACCOUNT_LOO
 public class DialogModifyAccount {
     private Activity activity;
     private EditText game_new_pwd_et;
+    private View modify_pwd_tv_line;
+    private TextView modify_pwd_tv;
     private TextView sureTv;
     private int id;
     private GameAccountEntity gameAccountEntity;
@@ -54,8 +57,13 @@ public class DialogModifyAccount {
         this.activity = activity;
         this.id = id;
     }
+    public DialogModifyAccount(Activity activity, GameAccountEntity item) {
+        this.activity = activity;
+        this.gameAccountEntity = item;
+        this.id = item.getId();
+    }
 
-    Handler mHandler = new Handler() {
+    Handler mHandler = new Handler(Looper.getMainLooper()) {
         @Override
         public void handleMessage(Message msg) {
             super.handleMessage(msg);
@@ -89,7 +97,8 @@ public class DialogModifyAccount {
         dialog_title.setText("修改密码");
 
         sureTv = view.findViewById(R.id.sure_tv);
-        TextView modify_pwd_tv = view.findViewById(R.id.modify_pwd_tv);
+        modify_pwd_tv_line = view.findViewById(R.id.modify_pwd_tv_line);
+        modify_pwd_tv = view.findViewById(R.id.modify_pwd_tv);
         game_title_et = view.findViewById(R.id.game_title_et);
         game_account_et = view.findViewById(R.id.game_account_et);
         game_old_pwd_et = view.findViewById(R.id.game_old_pwd_et);
@@ -131,6 +140,8 @@ public class DialogModifyAccount {
                 }
             }
         });
+        modify_pwd_tv_line.setVisibility(View.GONE);
+        modify_pwd_tv.setVisibility(View.GONE);
         modify_pwd_tv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -159,7 +170,10 @@ public class DialogModifyAccount {
         } catch (Exception e) {
             e.printStackTrace();
         }
-        initData();
+        if(gameAccountEntity == null)
+            initData();
+        else
+            initView();
     }
 
     /**
@@ -187,5 +201,7 @@ public class DialogModifyAccount {
         game_title_et.setText(gameAccountEntity.getDetailShowForGameType()+"");
         game_account_et.setText("账号:"+gameAccountEntity.getAccount()+"");
         game_old_pwd_et.setText("原密码:"+gameAccountEntity.getPassword()+"");
+        modify_pwd_tv_line.setVisibility(gameAccountEntity.isXiaoMiAccount() ? View.GONE : View.VISIBLE);
+        modify_pwd_tv.setVisibility(gameAccountEntity.isXiaoMiAccount() ? View.GONE : View.VISIBLE);
     }
 }

+ 79 - 75
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtTryMakeMoney.java

@@ -122,6 +122,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     public void onViewCreated() {
         activity = getActivity();
         initView();
+        initData();
     }
     private String task_type = "-1";
     private boolean isGameTask = false;
@@ -184,7 +185,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     }
     private boolean isFirstCache = false;//是否首先尝试缓存
     //先尝试缓存数据,无缓存数据时,再尝试获取网络数据
-    public void initACacheData(){
+    public void initData(){
         isFirstCache = true;
         mInitData();
     }
@@ -195,27 +196,28 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         mInitData();
     }
     public void mInitData() {
+        //加载缓存
         type = 0;
-
         if(isFirstCache){
             List<TaskAcceptedEty> cacheTaskAcceptedEtyList;
             if(isGameTask) {
                 cacheTaskAcceptedEtyList = DataUtil.getInstance().getCacheList(ApiKey.run_game_task, TaskAcceptedEty.class);
             } else {
-                cacheTaskAcceptedEtyList = DataUtil.getInstance().getCacheList(ApiKey.release_task(0, task_type, is_succession), TaskAcceptedEty.class);
+                cacheTaskAcceptedEtyList = DataUtil.getInstance().getCacheList(ApiKey.new_run_task(is_succession, 0), TaskAcceptedEty.class);
             }
             if (ListUtil.isEmpty(cacheTaskAcceptedEtyList)) {
                 acceptedEtyList.clear();
             } else {
                 acceptedEtyList = cacheTaskAcceptedEtyList;
             }
-            getNetWork(type);
+            getFromACache(type);
+        }
+        //加载网络数据
+        type = 0;
+        if(isGameTask){
+            presenter.runGameTask();
         } else {
-            if(isGameTask){
-                presenter.runGameTask();
-            } else {
-                presenter.returnTask(is_succession, 0);
-            }
+            presenter.returnTask(is_succession, 0);
         }
     }
 
@@ -280,15 +282,18 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
 
     @Override
     public void returnTaskTaskUpdataView(Object object) {
-        if(object instanceof BaseMessage) {
-            List<TaskAcceptedEty> taskAcceptedEty = ((BaseMessage) object).getDataList(TaskAcceptedEty.class);
-            if(ListUtil.isEmpty(taskAcceptedEty)) {
-                acceptedEtyList.clear();
-            } else {
-                acceptedEtyList = taskAcceptedEty;
+        boolean isNewData = DataUtil.getInstance().isNewData(isGameTask ? ApiKey.run_game_task : ApiKey.new_run_task(is_succession, 0));
+        if(isNewData) {
+            if (object instanceof BaseMessage) {
+                List<TaskAcceptedEty> taskAcceptedEty = ((BaseMessage) object).getDataList(TaskAcceptedEty.class);
+                if (ListUtil.isEmpty(taskAcceptedEty)) {
+                    acceptedEtyList.clear();
+                } else {
+                    acceptedEtyList = taskAcceptedEty;
+                }
             }
         }
-        getNetWork(type);
+        getFromNetWork(type);
     }
 
     @Override
@@ -307,7 +312,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
             e.printStackTrace();
             G.showToast(" 网络错误!");
         }
-        getNetWork(type);
+        getFromNetWork(type);
     }
 
     /**
@@ -316,9 +321,10 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
      */
     @Override
     public void releaseTaskTaskUpdataView(Object object) {
-        if(object instanceof BaseMessage) {
+        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.release_task(type, task_type, is_succession));
+        if(isNewData && object instanceof BaseMessage) {
             List<TaskReleaseEty> releaseEtyList = ((BaseMessage) object).getDataList(TaskReleaseEty.class);
-            switch (type){
+            switch (type) {
                 case 0:
                     releaseEtyLists = releaseEtyList;
                     break;
@@ -331,24 +337,20 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     }
 
     @Override
-    public void failReleaseTask2View(Object o) {
-        loadReleaseOrNotifyAdapter();
-    }
-    private void loadReleaseOrNotifyAdapter(){
+    public void failReleaseTask2View(Object object) {
         switch (type){
-            case 0://获取已经发布任务
-                if(ListUtil.isEmpty(releaseEtyLists)){//获取过数据,但是没有数据,直接保存空数据,以便下次不重复调接口
-                    DataUtil.getInstance().resetCacheTime(ApiKey.release_task(type, task_type, is_succession), DEFAULT_SAVE_TIME);
-                }
+            case 0:
+                releaseEtyLists.clear();
                 break;
-            case 1://即将开始的任务列表
-                if(ListUtil.isEmpty(releaseEtyListsBegin)){
-                    DataUtil.getInstance().resetCacheTime(ApiKey.release_task(type, task_type, is_succession), DEFAULT_SAVE_TIME);
-                }
+            case 1:
+                releaseEtyListsBegin.clear();
                 break;
         }
+        loadReleaseOrNotifyAdapter();
+    }
+    private void loadReleaseOrNotifyAdapter(){
         notifyDataSetChanged();
-        getNetWork(++type);
+        getFromNetWork(++type);
     }
 
     @Subscribe
@@ -371,8 +373,8 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     @Override
     public void onResume() {
         super.onResume();
-        if (presenter != null) {
-            initACacheData();
+        if (presenter != null && DataUtil.getInstance().isTaskListChange()) {
+            refreshData();
         }
     }
 
@@ -390,52 +392,54 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         }
     }
     /**
-     * 即将开始
+     * 发布的任务
      * type: 0 1
      */
-    private void getNetWork(int type){
+    private void getFromACache(int type){
         if(type > 1){
             return;
         }
-        if(isFirstCache){
-            List<TaskReleaseEty> cacheTaskReleaseEtyList = DataUtil.getInstance().getCacheList(ApiKey.release_task(type, task_type, is_succession), TaskReleaseEty.class);
-            switch (type){
-                case 0:
-                    if(cacheTaskReleaseEtyList == null) {
-                        releaseEtyLists.clear();
-                        isFirstCache = false;//没有缓存
-                        getNetWork(type);
-                    } else {
-                        releaseEtyLists = cacheTaskReleaseEtyList;
-                        notifyDataSetChanged();
-                        getNetWork(++type);
-                    }
-                    break;
-                case 1:
-                    if(cacheTaskReleaseEtyList == null) {
-                        releaseEtyListsBegin.clear();
-                        isFirstCache = false;//没有缓存
-                        getNetWork(type);
-                    } else {
-                        releaseEtyListsBegin = cacheTaskReleaseEtyList;
-                        notifyDataSetChanged();
-                        getNetWork(++type);
-                    }
-                    break;
-            }
-        } else {
-            RequestParameEty parameEty = new RequestParameEty();
-            parameEty.setHashMap(
-                    CommonUtil.getInstance()
-                            .setHashMap(1,
-                                    100,
-                                    SheepApp.getInstance().getConnectAddress().getPlatForm(),
-                                    0,
-                                    0,
-                                    type,
-                                    task_type,
-                                    is_succession));
-            presenter.releaseTask(parameEty);
+        List<TaskReleaseEty> cacheTaskReleaseEtyList = DataUtil.getInstance().getCacheList(ApiKey.release_task(type, task_type, is_succession), TaskReleaseEty.class);
+        switch (type){
+            case 0:
+                if(cacheTaskReleaseEtyList == null) {
+                    releaseEtyLists.clear();
+                } else {
+                    releaseEtyLists = cacheTaskReleaseEtyList;
+                    notifyDataSetChanged();
+                    getFromACache(++type);
+                }
+                break;
+            case 1:
+                if(cacheTaskReleaseEtyList == null) {
+                    releaseEtyListsBegin.clear();
+                } else {
+                    releaseEtyListsBegin = cacheTaskReleaseEtyList;
+                    notifyDataSetChanged();
+                    getFromACache(++type);
+                }
+                break;
+        }
+    }
+    /**
+     * 发布的任务
+     * type: 0 1
+     */
+    private void getFromNetWork(int type){
+        if(type > 1){
+            return;
         }
+        RequestParameEty parameEty = new RequestParameEty();
+        parameEty.setHashMap(
+                CommonUtil.getInstance()
+                        .setHashMap(1,
+                                100,
+                                SheepApp.getInstance().getConnectAddress().getPlatForm(),
+                                0,
+                                0,
+                                type,
+                                task_type,
+                                is_succession));
+        presenter.releaseTask(parameEty);
     }
 }

+ 3 - 0
app/src/main/res/layout/dialog_modify_account.xml

@@ -24,6 +24,7 @@
         android:minWidth="@dimen/view_size_150"
         android:padding="@dimen/content_padding_small"
         android:text="账号:123456"
+        android:textIsSelectable="true"
         android:textSize="@dimen/text_size_13"
         android:layout_marginBottom="@dimen/content_padding_15"/>
 
@@ -44,9 +45,11 @@
             android:minWidth="@dimen/view_size_150"
             android:padding="@dimen/content_padding_small"
             android:text="原密码:123456"
+            android:textIsSelectable="true"
             android:textSize="@dimen/text_size_13"/>
 
         <View
+            android:id="@+id/modify_pwd_tv_line"
             android:layout_width="1sp"
             android:layout_height="15dp"
             android:background="@color/gray"