Преглед на файлове

加密中提供用户token;
修复自动审核任务已经完成时显示领取奖励

zengjiebin преди 7 години
родител
ревизия
c95f9b7901

+ 1 - 2
app/src/main/java/com/kfzs/duanduan/fragment/FgtFind.java

@@ -15,10 +15,9 @@ 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.view.adapter.AdpTryMakemoney;
+import com.sheep.gamegroup.view.fragment.FgtFindChild;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.G;
 
 import org.afinal.simplecache.ApiKey;
 

+ 36 - 18
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java

@@ -66,6 +66,7 @@ import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.tencent.smtt.export.external.interfaces.WebResourceRequest;
 import com.tencent.smtt.sdk.WebChromeClient;
@@ -431,6 +432,13 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         }
     }
     /**
+     * 设置应用自动审核的任务底部按钮的状态(任务未下线且有任务记录且已经安装游戏)
+     * 注:前提是gettaskAcceptedEty不为空哦
+     */
+    private void setAutoTaskSecondBtnState() {
+        setSecondBtnState();
+    }
+    /**
      * 设置非应用自动审核的连续任务底部按钮的状态(任务未下线且有任务记录且已经安装游戏)
      * 注:前提是gettaskAcceptedEty不为空哦
      */
@@ -484,6 +492,8 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                     default:
                         if(taskEty.getTask_type() == 1000)//连续任务
                             setAutoSuccessionTaskBottomState();
+                        else
+                            setAutoTaskSecondBtnState();
                         break;
                 }
                 break;
@@ -499,22 +509,30 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         if(isSuccession){//连续任务
             setSuccessionTaskBottomState();
         } else {
-            switch (gettaskAcceptedEty.getStatus()) {
-                case 1://"已接受任务";
-                case 2:// "正在进行中";
-                    break;
-                case 6://试玩任务审核失败可以重新提交
-                    btnUpImag.setText("重新提交");
-                    break;
-                case 7:// "提交审核";
-                    btnUpImag.setText("正在审核");
-                    btnUpImag.setEnabled(false);
-                    break;
-                case 3://完成任务
-                    btnUpImag.setText("已完成");
-                    btnUpImag.setEnabled(false);
-                    break;
-            }
+            setSecondBtnState();
+        }
+    }
+
+    /**
+     * 设置第二个按钮状态(任务未下线且有任务记录且已经安装应用)
+     * 注:前提是gettaskAcceptedEty不为空哦
+     */
+    private void setSecondBtnState() {
+        switch (gettaskAcceptedEty.getStatus()) {
+            case 1://"已接受任务";
+            case 2:// "正在进行中";
+                break;
+            case 6://试玩任务审核失败可以重新提交
+                btnUpImag.setText("重新提交");
+                break;
+            case 7:// "提交审核";
+                btnUpImag.setText("正在审核");
+                btnUpImag.setEnabled(false);
+                break;
+            case 3://完成任务
+                btnUpImag.setText("已完成");
+                btnUpImag.setEnabled(false);
+                break;
         }
     }
 
@@ -1054,8 +1072,8 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
             int size = (int) args[1];
             int index = (int) args[2];
             try {
-                //加密文本内容:包名;签名md5;试玩应用包名;试玩应用签名md5;任务id;图片总数;图片位置
-                return PngUtil.decodePng(pngFilePath, taskEty.getPackage_names(), String.format(Locale.CHINA, "%d;%d;%d", commitScreenShotTaskId, size, index));
+                //加密文本内容:包名;签名md5;试玩应用包名;试玩应用签名md5;用户token;任务id;图片总数;图片位置
+                return PngUtil.decodePng(pngFilePath, taskEty.getPackage_names(), String.format(Locale.CHINA, "%s,%d;%d;%d", SpUtils.getToken(SheepApp.getInstance()), commitScreenShotTaskId, size, index));
             } catch (Exception e) {
                 e.printStackTrace();
             }

+ 4 - 5
app/src/main/java/com/sheep/gamegroup/view/fragment/BaseListFragment.java

@@ -7,7 +7,6 @@ import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.TextView;
 
 import com.jcodecraeer.xrecyclerview.XRecyclerView;
 import com.sheep.gamegroup.model.api.ApiService;
@@ -55,13 +54,13 @@ public abstract class BaseListFragment<T> extends BaseFragment {
 
     }
     @BindView(R.id.title)
-    View title;
+    protected View title;
     @BindView(R.id.empty_view)
-    View empty_view;
+    protected View empty_view;
     @BindView(R.id.check_net_ll)
-    View check_net_ll;
+    protected View check_net_ll;
     @BindView(R.id.view_list)
-    XRecyclerView view_list;
+    protected XRecyclerView view_list;
 
     protected int page = 1;//页数
     protected int per_page = DataUtil.PER_PAGE;

+ 76 - 171
app/src/main/java/com/kfzs/duanduan/fragment/FgtFindChild.java

@@ -1,10 +1,10 @@
-package com.kfzs.duanduan.fragment;
+package com.sheep.gamegroup.view.fragment;
 
 import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
 import android.support.annotation.Nullable;
-import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -14,12 +14,11 @@ import android.widget.TextView;
 import com.arialyy.annotations.Download;
 import com.arialyy.aria.core.Aria;
 import com.arialyy.aria.core.download.DownloadTask;
-import com.jcodecraeer.xrecyclerview.XRecyclerView;
 import com.kfzs.android.view.tag.FlowLayout;
 import com.kfzs.android.view.tag.TagAdapter;
 import com.kfzs.android.view.tag.TagFlowLayout;
-import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.services.DownloadTaskService;
+import com.sheep.gamegroup.model.api.ApiService;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.FindApp;
 import com.sheep.gamegroup.model.entity.FindItem;
@@ -27,10 +26,8 @@ import com.sheep.gamegroup.model.entity.FindTag;
 import com.sheep.gamegroup.model.entity.HomeListEntity;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.ViewHolder;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
@@ -40,18 +37,14 @@ import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 
 import org.afinal.simplecache.ApiKey;
-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.Observable;
 import rx.android.schedulers.AndroidSchedulers;
-import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
 import static android.content.Intent.ACTION_PACKAGE_ADDED;
@@ -59,74 +52,13 @@ import static android.content.Intent.ACTION_PACKAGE_REMOVED;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.FIND_ITEM;
 
 /**
- * Created by realicing on 2018/6/27.
+ * Created by realicing on 2018/9/7.
  * realicing@sina.com
  */
-public class FgtFindChild extends BaseCompatFragment {
-
-    private int page = 1;//页数
-    private int per_page = DataUtil.PER_PAGE;
-    private int type;
-    public static FgtFindChild newInstance(int type){
-        FgtFindChild fgt = new FgtFindChild();
-        Bundle bundle = new Bundle();
-        bundle.putInt("type", type);
-        fgt.setArguments(bundle);
-        return fgt;
-    }
-
-    @Override
-    public void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        Bundle bundle = getArguments();
-        if(bundle != null){
-            type = bundle.getInt("type", 0);
-        }
-        EventBus.getDefault().register(this);
-        Aria.download(this).register();
-    }
-
-    private Activity activity;
+public class FgtFindChild extends BaseListFragment<FindItem> {
     @Override
-    protected void initView(Bundle savedInstanceState) {
-        setContentView(R.layout.net_empty_xrecycler);
-        activity = getActivity();
-        ButterKnife.bind(this, mContentView);
-        initView();
-        initData();
-    }
-
-    @BindView(R.id.title)
-    View title;
-//    @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)
-    XRecyclerView view_list;
-    private void initView(){
-        title.setVisibility(View.GONE);
-        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);
-                }
-            }
-        });
-        ViewUtil.setBottomLine(view_list);
-        view_list.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
-        view_list.setAdapter(new AdbCommonRecycler<FindItem>(SheepApp.getInstance(), list){
+    protected RecyclerView.Adapter getAdapter() {
+        return new AdbCommonRecycler<FindItem>(SheepApp.getInstance(), list){
 
             @Override
             public int getItemViewType(int position) {
@@ -201,9 +133,47 @@ public class FgtFindChild extends BaseCompatFragment {
                     }
                 });
             }
-        });
+        };
     }
 
+    @Override
+    protected String getKey(int page, int per_page) {
+        return ApiKey.articles(page, per_page, type);
+    }
+
+    @Override
+    protected Observable<BaseMessage> getApi(ApiService apiService) {
+        return apiService.getFindList(page, per_page, type);
+    }
+
+    @Override
+    protected Class<FindItem> getTClass() {
+        return FindItem.class;
+    }
+
+    @Override
+    public void notifyData() {
+
+    }
+
+
+    private int type;
+    public static FgtFindChild newInstance(int type){
+        FgtFindChild fgt = new FgtFindChild();
+        Bundle bundle = new Bundle();
+        bundle.putInt("type", type);
+        fgt.setArguments(bundle);
+        return fgt;
+    }
+    @Override
+    public void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        Bundle bundle = getArguments();
+        if(bundle != null){
+            type = bundle.getInt("type", 0);
+        }
+        Aria.download(this).register();
+    }
     /**
      * 点击一个发现元素
      * @param item
@@ -229,17 +199,17 @@ public class FgtFindChild extends BaseCompatFragment {
             }
             FIND_ITEM.onEvent("find_id", item.getId());
             SheepApp.getInstance().getNetComponent().getApiService().getFindItemAddClicks(item.getId())
-                        .subscribeOn(Schedulers.io())
-                        .observeOn(AndroidSchedulers.mainThread())
-                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                            @Override
-                            public void onNext(BaseMessage baseMessage) {
-                            }
-
-                            @Override
-                            public void onError(BaseMessage baseMessage) {
-                            }
-                        });
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                        @Override
+                        public void onNext(BaseMessage baseMessage) {
+                        }
+
+                        @Override
+                        public void onError(BaseMessage baseMessage) {
+                        }
+                    });
         }
     }
 
@@ -249,24 +219,24 @@ public class FgtFindChild extends BaseCompatFragment {
      */
     private void openHomeListItem(FindItem item) {
         SheepApp.getInstance().getNetComponent().getApiService().getHomeListItem(item.getHome_list_id())
-                        .subscribeOn(Schedulers.io())
-                        .observeOn(AndroidSchedulers.mainThread())
-                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                            @Override
-                            public void onNext(BaseMessage baseMessage) {
-                                HomeListEntity homeListEntity = baseMessage.getData(HomeListEntity.class);
-                                if(homeListEntity == null){
-                                    G.showToast(R.string.error_data);
-                                    return;
-                                }
-                                CommonUtil.getInstance().goWhere(activity, homeListEntity, "发现");
-                            }
-
-                            @Override
-                            public void onError(BaseMessage baseMessage) {
-                                G.showToast(baseMessage);
-                            }
-                        });
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        HomeListEntity homeListEntity = baseMessage.getData(HomeListEntity.class);
+                        if(homeListEntity == null){
+                            G.showToast(R.string.error_data);
+                            return;
+                        }
+                        CommonUtil.getInstance().goWhere(activity, homeListEntity, "发现");
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast(baseMessage);
+                    }
+                });
     }
 
     /**
@@ -288,66 +258,6 @@ public class FgtFindChild extends BaseCompatFragment {
         }
     }
 
-    public void initData(){
-        //先尝试获取缓存数据
-        List<FindItem> newList = DataUtil.getInstance().getCacheList(ApiKey.articles(page, per_page, type), FindItem.class);
-        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);
-                }
-            }
-        });
-        SheepApp.getInstance().getNetComponent().getApiService().getFindList(page, per_page, type)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.articles(page, per_page, type));
-                        if(isNewData) {
-                            List<FindItem> newList = baseMessage.getDatas(FindItem.class);
-                            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<FindItem> newList){
-        ListUtil.addAll(list, newList);
-        notifyDataSetChanged();
-    }
-
-    private void notifyDataSetChanged(){
-        CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty());
-        if(page == 1){
-            view_list.refreshComplete();
-        } else {
-            view_list.loadMoreComplete();
-        }
-        view_list.getAdapter().notifyDataSetChanged();
-    }
-    private List<FindItem> list = ListUtil.emptyList();
-
-
 
     private Map<String, FindApp> findAppMap = new HashMap<>();
     //获取任务对应的findApp
@@ -483,9 +393,4 @@ public class FgtFindChild extends BaseCompatFragment {
             }
         }
     }
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-        EventBus.getDefault().unregister(this);
-    }
 }

+ 23 - 15
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtTryMakeMoney.java

@@ -57,7 +57,7 @@ import rx.functions.Action1;
 
 public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContract.View {
     @BindView(R.id.recyclerview)
-    XRecyclerView recyclerview;
+    XRecyclerView view_list;
     @BindView(R.id.empty_view)
     View empty_view;
     Unbinder unbinder;
@@ -75,10 +75,13 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     private int is_succession;//0:一般任务 1:连续任务
 
     private void checkAndInitView() {
-        if (empty_view == null)
-            empty_view = findViewById(R.id.empty_view);
-        if (recyclerview == null)
-            recyclerview = findViewById(R.id.recyclerview);
+        if (empty_view == null) {
+            if(unbinder != null){
+                unbinder.unbind();
+                unbinder = null;
+            }
+            unbinder = ButterKnife.bind(this, mView);
+        }
     }
 
     private static final int LIST_COUNT = 3;//tryMakeMoneyAdp 总共有3条数据
@@ -103,8 +106,8 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         tryMakeMoneyAdp.refreshAdapter();
         boolean showEmpty = acceptedEtyList.isEmpty() && releaseEtyLists.isEmpty() && releaseEtyListsBegin.isEmpty();
         CommonUtil.getInstance().updateEmptyView(empty_view, showEmpty);
-        recyclerview.refreshComplete();
-        recyclerview.loadMoreComplete();
+        view_list.refreshComplete();
+        view_list.loadMoreComplete();
         notifyBottomLine(false);
         if (isFromHome && isSelected)
             EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_SHEEP_REFRESH_H));
@@ -126,7 +129,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
                     @Override
                     public void onClick(View view) {
                         if (isCanScrollToPosition)
-                            recyclerview.scrollToPosition(0);
+                            view_list.scrollToPosition(0);
                     }
                 });
             }
@@ -212,9 +215,9 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
                 .tryMakeMoneyModule(new TryMakeMoneyModule(FgtTryMakeMoney.this))
                 .build()
                 .inject(FgtTryMakeMoney.this);
-        recyclerview.setLayoutManager(new LinearLayoutManager(activity));
-        recyclerview.setHasFixedSize(true);
-        recyclerview.setNestedScrollingEnabled(false);
+        view_list.setLayoutManager(new LinearLayoutManager(activity));
+        view_list.setHasFixedSize(true);
+        view_list.setNestedScrollingEnabled(false);
         tryMakeMoneyAdp = new TryMakeMoneyAdp(activity);
         tryMakeMoneyAdp.addType(about_to_begin);
         tryMakeMoneyAdp.addShowType(show_type);
@@ -223,9 +226,9 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         for (int i = 0; i < LIST_COUNT; i++) {
             tryMakeMoneyAdp.add(NULL);
         }
-        recyclerview.setAdapter(tryMakeMoneyAdp);
+        view_list.setAdapter(tryMakeMoneyAdp);
 
-        bottomLine = ViewUtil.setBottomLine(recyclerview, isFromHome ? new Action1<String>() {
+        bottomLine = ViewUtil.setBottomLine(view_list, isFromHome ? new Action1<String>() {
             @Override
             public void call(String msg) {
                 if (isFromHome && isSelected)
@@ -237,7 +240,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     private View bottomLine;
 
     public void initListener() {
-        recyclerview.setLoadingListener(new XRecyclerView.LoadingListener() {
+        view_list.setLoadingListener(new XRecyclerView.LoadingListener() {
             @Override
             public void onRefresh() {
                 refreshData();
@@ -269,7 +272,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
                     }
                 }
                 if(noMoreRelease && noMoreReleaseBegin){
-                    recyclerview.setNoMore(true);
+                    view_list.setNoMore(true);
                     noMore = true;
                     notifyBottomLine(true);
                     if (isFromHome)
@@ -366,6 +369,11 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     public void onDestroyView() {
         super.onDestroyView();
         unbinder.unbind();
+        // any time,when you finish your activity or fragment,call this below
+        if(view_list != null){
+            view_list.destroy(); // this will totally release XR's memory
+            view_list = null;
+        }
     }
 
     @Override