Kaynağa Gözat

review:
1.fragment中使用getContext的地方修改为SheepApp.getInstance,因为getContext可能为空
2.AdpPayGameDialog 中使用传入的context,context实际为activity,所以可能会发生activity回收的情况修改为使用SheepApp.getInstance()
3.修复任务列表adapter中数据没有判断空的问题
bug:
1.修复上传图片中压缩工具可能报空指针的bug
2.修复初始化url配置中,传入的action1可能为空,但是没有判断空的bug

zengjiebin 7 yıl önce
ebeveyn
işleme
2bc58ed1ea

+ 2 - 1
app/build.gradle

@@ -245,7 +245,8 @@ dependencies {
 
     annotationProcessor 'com.arialyy.aria:aria-compiler:3.3.16'
     compile 'com.sunfusheng:marqueeview:1.3.3'
-    compile 'com.github.nanchen2251:CompressHelper:1.0.5'
+    compile(name: 'compresshelper-release', ext: 'aar')
+//    compile 'com.github.nanchen2251:CompressHelper:1.0.5'
     compile files('libs/alipaySdk-20170922.jar')
     //极光
     compile files('libs/jcore-android-1.2.0.jar')

BIN
app/libs/compresshelper-release.aar


+ 2 - 1
app/src/main/java/com/kfzs/duanduan/adp/AdpCommonRecy.java

@@ -5,6 +5,7 @@ import android.support.v7.widget.RecyclerView;
 import android.view.ViewGroup;
 
 import com.kfzs.appstore.utils.adapter.recyclerview.ViewHolder;
+import com.sheep.gamegroup.util.ListUtil;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -42,7 +43,7 @@ public abstract class AdpCommonRecy<T> extends RecyclerView.Adapter<ViewHolder>
     }
 
     public void add(T t, int position) {
-        this.mListDatas.set(position, t);
+        ListUtil.set(this.mListDatas, t, position);
     }
 
     public void clear() {

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

@@ -144,7 +144,7 @@ public abstract class AbsFgtMyMoney extends BaseFragment {
         empty_view.setVisibility(View.INVISIBLE);
         initObservable(page, per_page).subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(getContext()) {
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                         List<? extends ILog> newList = getDatas(baseMessage);

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

@@ -66,7 +66,7 @@ public class FgtCreditCardProgressQuery extends BaseFragment {
         SheepApp.getInstance().getNetComponent().getApiService().getCreditCardScheduleList()
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(getContext()) {
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                         List<CreditCardProgressQuery> newList = baseMessage.getDatas(CreditCardProgressQuery.class);

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

@@ -85,7 +85,7 @@ public class FgtCreditCardTaskList extends BaseFragment {
         SheepApp.getInstance().getNetComponent().getApiService().getReleaseTaskCreditCard()
                         .subscribeOn(Schedulers.io())
                         .observeOn(AndroidSchedulers.mainThread())
-                        .subscribe(new SheepSubscriber<BaseMessage>(getContext()) {
+                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
                             @Override
                             public void onNext(BaseMessage baseMessage) {
                                 List<TaskReleaseEty> newList = baseMessage.getDatas(TaskReleaseEty.class);

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

@@ -51,7 +51,7 @@ public class FgtFind extends BaseCompatFragment {
 
     private GiftpackListAdapter mAdapter;
     private void initView() {
-        mAdapter = new GiftpackListAdapter(getFragmentManager(), getContext());
+        mAdapter = new GiftpackListAdapter(getFragmentManager(), SheepApp.getInstance());
         mAdapter.add(FgtFindChild.newInstance(0), "全部");
         pager.setAdapter(mAdapter);
         indicator.setupWithViewPager(pager);

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

@@ -91,7 +91,7 @@ public class FgtFriendExtractPage extends BaseFragment {
         SheepApp.getInstance().getNetComponent().getApiService().getUserFriendList(page, per_page)
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(getContext()) {
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                         List<Friend> friendList = baseMessage.getDatas(Friend.class);

+ 8 - 7
app/src/main/java/com/kfzs/duanduan/fragment/FgtGameDetail.java

@@ -31,6 +31,7 @@ import com.kfzs.duanduan.utils.net.APIRequestInstance;
 import com.kfzs.duanduan.view.KFProgressButton;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
 
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
@@ -98,7 +99,7 @@ public class FgtGameDetail extends BaseCompatFragment {
         if (mOnDownCallback == null) {
             mOnDownCallback = DownBtnUtils.installBtnStatus(mInstallButtonMgr);
         }
-        EventDownloadHandler.newInstance(getContext(), mOnDownCallback)
+        EventDownloadHandler.newInstance(SheepApp.getInstance(), mOnDownCallback)
                 .setmTag(TAG).handlDownloadResult(info);
     }
 
@@ -134,10 +135,10 @@ public class FgtGameDetail extends BaseCompatFragment {
                     mGsIcon4.setTag(R.id.view_tag_game_icon, gsGamesList.get(3).getId());
 
 
-                    DownBtnUtils.addDownloadBtnListener(mGsBtn1, getContext(), mInstallButtonMgr, gsGamesList.get(0), "gsGame_01");
-                    DownBtnUtils.addDownloadBtnListener(mGsBtn2, getContext(), mInstallButtonMgr, gsGamesList.get(1), "gsGame_02");
-                    DownBtnUtils.addDownloadBtnListener(mGsBtn3, getContext(), mInstallButtonMgr, gsGamesList.get(2), "gsGame_03");
-                    DownBtnUtils.addDownloadBtnListener(mGsBtn4, getContext(), mInstallButtonMgr, gsGamesList.get(3), "gsGame_04");
+                    DownBtnUtils.addDownloadBtnListener(mGsBtn1, SheepApp.getInstance(), mInstallButtonMgr, gsGamesList.get(0), "gsGame_01");
+                    DownBtnUtils.addDownloadBtnListener(mGsBtn2, SheepApp.getInstance(), mInstallButtonMgr, gsGamesList.get(1), "gsGame_02");
+                    DownBtnUtils.addDownloadBtnListener(mGsBtn3, SheepApp.getInstance(), mInstallButtonMgr, gsGamesList.get(2), "gsGame_03");
+                    DownBtnUtils.addDownloadBtnListener(mGsBtn4, SheepApp.getInstance(), mInstallButtonMgr, gsGamesList.get(3), "gsGame_04");
 
                 } catch (Exception e) {
                     e.printStackTrace();
@@ -176,7 +177,7 @@ public class FgtGameDetail extends BaseCompatFragment {
         mGsBtn3 = mContentView.findViewById(R.id.downbtn_fgt_game_detail_3);
         mGsBtn4 = mContentView.findViewById(R.id.downbtn_fgt_game_detail_4);
 
-        mRvImags.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false));
+        mRvImags.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance(), LinearLayoutManager.HORIZONTAL, false));
         mRvImags.setNestedScrollingEnabled(false);
 
     }
@@ -191,7 +192,7 @@ public class FgtGameDetail extends BaseCompatFragment {
         Collections.addAll(urlList, urls);
         if (mGameDesc != null)
             mGameDesc.setText(game.getIntroduce());
-        mRecyclerViewAdapter = new RecyclerViewAdapter<String>(getContext(), R.layout.item_image, urlList) {
+        mRecyclerViewAdapter = new RecyclerViewAdapter<String>(SheepApp.getInstance(), R.layout.item_image, urlList) {
             @Override
             public void convert(ViewHolder viewHolder, String url, final int position) {
                 View view = viewHolder.getView(R.id.img_detail);

+ 0 - 1
app/src/main/java/com/kfzs/duanduan/fragment/FgtPersonalCenter.java

@@ -10,7 +10,6 @@ import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSONObject;
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.model.entity.AgentEntity;

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

@@ -119,7 +119,7 @@ public class FgtSignRankings extends BaseCompatFragment implements SignRankingsC
             Log.d("Dream","empty type:"+type);
             empty_view.setVisibility(View.GONE);
             main_content.setVisibility(View.VISIBLE);
-            recyclerViewAdapter = new RecyclerViewAdapter<PunchEntity>(getContext(), R.layout.sign_rankings_item, list) {
+            recyclerViewAdapter = new RecyclerViewAdapter<PunchEntity>(SheepApp.getInstance(), R.layout.sign_rankings_item, list) {
                 @Override
                 public void convert(ViewHolder viewHolder, PunchEntity punchEntity, final int position) {
                     ImageView sign_iv_icon = viewHolder.getView(R.id.sign_iv_icon);

+ 15 - 11
app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java

@@ -902,26 +902,30 @@ public class CommonUtil {
                     .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
                         @Override
                         public void onError(BaseMessage baseMessage) {
-                            action1.call(null);
+                            if(action1 != null)
+                                action1.call(null);
                         }
 
                         @Override
                         public void onNext(BaseMessage baseMessage) {
-                            if (name == null) {
-                                return;
-                            }
-                            JSONObject urlConfig = baseMessage.getData(JSONObject.class);
-                            if (urlConfig == null) {
-                                action1.call(null);
-                            } else {
-                                String url = urlConfig.getString(name);
-                                action1.call(url);
+                            if(action1 != null){
+                                if (name == null) {
+                                    return;
+                                }
+                                JSONObject urlConfig = baseMessage.getData(JSONObject.class);
+                                if (urlConfig == null) {
+                                    action1.call(null);
+                                } else {
+                                    String url = urlConfig.getString(name);
+                                    action1.call(url);
+                                }
                             }
                         }
                     });
         } else {
             String url = url_config.getString(name);
-            action1.call(url);
+            if(action1 != null)
+                action1.call(url);
         }
     }
 

+ 5 - 0
app/src/main/java/com/sheep/gamegroup/util/ListUtil.java

@@ -109,6 +109,11 @@ public class ListUtil {
         return removeList;
     }
 
+    public static <T> void set(List<T> list, T t, int position) {
+        if(hasIndex(list, position))
+            list.set(position, t);
+    }
+
     public static interface CallBack<I, R>{
         public R call(I i);
     }

+ 6 - 19
app/src/main/java/com/sheep/gamegroup/view/adapter/TaskListItemAdp.java

@@ -12,6 +12,7 @@ import android.widget.TextView;
 
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
+import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
 import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.model.entity.TaskReleaseEty;
@@ -19,6 +20,7 @@ import com.sheep.gamegroup.presenter.TaskListPresenter;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.TimeUtil;
+import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
 
 import java.util.List;
@@ -79,35 +81,20 @@ public class TaskListItemAdp extends BaseAdapter {
         }
 
         final TaskAcceptedEty ety = (TaskAcceptedEty) getItem(position);
-        holder.name_tv.setText(ety.getRelease_task().getName()+"");
-        try {
-            holder.date_tv.setText(TimeUtil.getDate(TimeUtil.FORMAT, Long.valueOf(ety.getUpdate_time()))+"");
-        }catch (Exception e){
-            e.printStackTrace();
+        if(ety == null || ety.getRelease_task() == null || ety.getRelease_task().getTask() == null){
+            return convertView;
         }
+        ViewUtil.setText(holder.name_tv, ety.getRelease_task().getName());
+        ViewUtil.setText(holder.name_tv, TimeUtil.getDate(TimeUtil.FORMAT, NumberFormatUtils.parseLong(ety.getUpdate_time())));
         holder.price_tv.setText(returnValue(ety));
         convertView.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-//                TaskEty task = ety.getRelease_task().getTask();
-//                task.setScreenshots(ety.getScreenshots());
-//
-//                TaskReleaseEty releaseTask = ety.getRelease_task();
-//                releaseTask.setAccepted_task_id(ety.getId());
-
                 Jump2View.getInstance().goTaskDetailViewFromTaskList((Activity) context, ety.getRelease_task_id());
             }
         });
         TestUtil.setDebugDownLoad(context, convertView, ety.getRelease_task().getTask());
         holder.detail_task_tv.setText(ety.getRemarks());
-//        holder.detail_task_tv.setOnClickListener(new View.OnClickListener() {
-//            @Override
-//            public void onClick(View v) {
-//                uploadImag(context);
-//                EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.TASK_AGAIN_UPLOAD_FILE)
-//                        .setData(ety));
-//            }
-//        });
         Glide.with(context)
                 .load(ety.getRelease_task().getTask().getIcon())
                 .apply(new RequestOptions().placeholder(R.mipmap.icon))

+ 5 - 7
app/src/main/java/com/sheep/gamegroup/view/adapter/expandadapter/AdpPayGameDialog.java

@@ -1,6 +1,5 @@
 package com.sheep.gamegroup.view.adapter.expandadapter;
 
-import android.content.Context;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -11,6 +10,7 @@ import android.widget.TextView;
 import com.bumptech.glide.Glide;
 import com.sheep.gamegroup.model.entity.RechargeEntity;
 import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
 
 import java.util.List;
 
@@ -21,11 +21,9 @@ import java.util.List;
 
 public class AdpPayGameDialog extends BaseAdapter {
     private List<RechargeEntity> list;
-    private Context context;
 
-    public AdpPayGameDialog(List<RechargeEntity> list, Context context) {
+    public AdpPayGameDialog(List<RechargeEntity> list) {
         this.list = list;
-        this.context = context;
     }
 
     @Override
@@ -52,7 +50,7 @@ public class AdpPayGameDialog extends BaseAdapter {
             holder = (ViewHolder) tag;
         }else {
             holder = new ViewHolder();
-            convertView = LayoutInflater.from(context).inflate(R.layout.adp_pay_game_dialog, null);
+            convertView = LayoutInflater.from(SheepApp.getInstance()).inflate(R.layout.adp_pay_game_dialog, null);
 
             holder.pay_game_dialog_item_tv = convertView.findViewById(R.id.pay_game_dialog_item_tv);
             holder.pay_game_dialog_item_img = convertView.findViewById(R.id.pay_game_dialog_item_img);
@@ -87,9 +85,9 @@ public class AdpPayGameDialog extends BaseAdapter {
     }
 
     private void setValue(int intRes, boolean flag, ImageView view, TextView textView){
-        Glide.with(context)
+        Glide.with(SheepApp.getInstance())
                 .load(intRes)
                 .into(view);
-        textView.setTextColor(flag ? context.getResources().getColor(R.color.community_blue_text) : context.getResources().getColor(R.color.black_444444));
+        textView.setTextColor(flag ? SheepApp.getInstance().getResources().getColor(R.color.community_blue_text) : SheepApp.getInstance().getResources().getColor(R.color.black_444444));
     }
 }

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/view/dialog/DialogPayGame.java

@@ -111,7 +111,7 @@ public class DialogPayGame {
         pay_game_show_price_tv.setText("你需要支付"+ 0 +"元");
         money_et = view.findViewById(R.id.money_et);
         pay_listview = view.findViewById(R.id.pay_listview);
-        adpPayGameDialog = new AdpPayGameDialog(list ,activity);
+        adpPayGameDialog = new AdpPayGameDialog(list);
         pay_listview.setAdapter(adpPayGameDialog);
 
         pay_listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

+ 0 - 28
kfzslibrary/src/main/java/com/kfzs/libs/widget/rv/BaseRecyclerViewAdapter.java

@@ -1,28 +0,0 @@
-package com.kfzs.libs.widget.rv;
-
-import android.support.v7.widget.RecyclerView;
-
-/**
- * Created by Administrator on 2018/2/5 0005.
- */
-
-public abstract class BaseRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
-
-    private boolean mHasHeader = false;
-
-    @Override
-    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
-        int pos = mHasHeader ? position -1 : position;
-        onBindViewHolderWithHeader(holder,pos);
-    }
-
-    public void setHasHeader(boolean hasHeader) {
-        mHasHeader = hasHeader;
-    }
-
-    public boolean isHasHeader() {
-        return mHasHeader;
-    }
-
-    public abstract void onBindViewHolderWithHeader(RecyclerView.ViewHolder holder, int position);
-}