Selaa lähdekoodia

领取逻辑修改

liujiangyao 7 vuotta sitten
vanhempi
commit
6eb304ec63

+ 13 - 8
app/src/main/java/com/sheep/gamegroup/helper/DownloadHelper.java

@@ -40,6 +40,9 @@ public class DownloadHelper {
         updateDownloadTaskView(activity, iTask, down_tv, null);
     }
     public void updateDownloadTaskView(final Activity activity, final IDownload iTask, final TextView down_tv, final Action1<Object> callBack) {
+        updateDownloadTaskView(activity, iTask, down_tv, callBack,0);
+    }
+    public void updateDownloadTaskView(final Activity activity, final IDownload iTask, final TextView down_tv, final Action1<Object> callBack,int type) {
         if(mDownloadTaskService == null){
             mDownloadTaskService = new DownloadTaskService(activity);
         }
@@ -57,14 +60,16 @@ public class DownloadHelper {
 //                    callBack.call(o);
             }
         });
-        down_tv.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                if(callBack != null)
-                    callBack.call(-1);
-                downloadApp(activity, iTask);
-            }
-        });
+        if(type == 0){
+            down_tv.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View view) {
+                    if(callBack != null)
+                        callBack.call(-1);
+                    downloadApp(activity, iTask);
+                }
+            });
+        }
     }
 
     private DownloadTaskService mDownloadTaskService;

+ 15 - 9
app/src/main/java/com/sheep/gamegroup/helper/FindAppHelper.java

@@ -40,6 +40,9 @@ public class FindAppHelper{
         downloadHelper.updateState(status);
     }
     public void updateDownloadTaskView(final Activity activity, final IDownload iTask, final TextView down_tv) {
+        updateDownloadTaskView(activity,iTask,down_tv, 0);
+    }
+    public void updateDownloadTaskView(final Activity activity, final IDownload iTask, final TextView down_tv, int type) {
         downloadHelper.updateDownloadTaskView(activity, iTask, down_tv, new Action1<Object>() {
             @Override
             public void call(Object object) {
@@ -83,18 +86,21 @@ public class FindAppHelper{
             reservation_tv.setText("已经预约");
         }
     }
-    public void updateReservationView(final Activity activity, final PlayGameEntity findApp, final TextView reservation_tv) {
+    public void updateReservationView(final Activity activity, final PlayGameEntity findApp, final TextView reservation_tv, int type) {
         if(findApp.isCanRecord()) {
             reservation_tv.setEnabled(true);
             reservation_tv.setText("预约下载");
-            reservation_tv.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View view) {
-                    FIND_APP.onEvent("application_id", findApp.getId(), "action", "预约下载");
-                    reservation_tv.setEnabled(false);
-                    recordAppDownloads(activity, findApp, reservation_tv);
-                }
-            });
+            if(type == 0){
+                reservation_tv.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        FIND_APP.onEvent("application_id", findApp.getId(), "action", "预约下载");
+                        reservation_tv.setEnabled(false);
+                        recordAppDownloads(activity, findApp, reservation_tv);
+                    }
+                });
+            }
+
         } else {
             reservation_tv.setEnabled(false);
             reservation_tv.setText("已经预约");

+ 8 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/PlayGameEntity.java

@@ -2,6 +2,7 @@ package com.sheep.gamegroup.model.entity;
 
 import android.text.TextUtils;
 
+import com.sheep.gamegroup.helper.DownloadHelper;
 import com.sheep.gamegroup.helper.FindAppHelper;
 import com.sheep.gamegroup.model.api.IDownload;
 
@@ -369,10 +370,14 @@ public class PlayGameEntity implements IDownload, Serializable {
         return record == 1;//1:可记录 其他:不可记录
     }
     private FindAppHelper findAppHelper = new FindAppHelper();
+    private DownloadHelper downloadHelper = new DownloadHelper();
 
     public FindAppHelper getFindAppHelper() {
         return findAppHelper;
     }
+    public DownloadHelper getDownloadHelper() {
+        return downloadHelper;
+    }
 
     /**
      * 更新下载状态
@@ -381,4 +386,7 @@ public class PlayGameEntity implements IDownload, Serializable {
     public void updateState(int status) {
         findAppHelper.updateState(status);
     }
+    public void updateStateRelease(int status) {
+        downloadHelper.updateState(status);
+    }
 }

+ 52 - 32
app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java

@@ -68,6 +68,7 @@ import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.umeng.socialize.ShareAction;
 import com.umeng.socialize.UMAuthListener;
@@ -2113,59 +2114,66 @@ public class CommonUtil {
     }
     /**
      * 玩转游戏 按钮设置
+     * type 1
      */
-    public void palyGameDetailBtnValue(final Context context, final GameEntity gameEntity, TextView detail_task_tv_center){
+    public void palyGameDetailBtnValue(final Context context, final GameEntity gameEntity, TextView detail_task_tv_center, int type){
         final TaskReleaseEty releaseEty = gameEntity.getRelease_task();
         final TaskEty taskEty = releaseEty != null?releaseEty.getTask():null;
         if(releaseEty != null && taskEty != null) {//游戏任务
 
-            if (taskEty.isGameReservation()) {//预约
+            if (taskEty.isGameReservationCantDownload()) {//预约
                 detail_task_tv_center.setText("预约下载");
                 detail_task_tv_center.setEnabled(true);
-                detail_task_tv_center.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View view) {
-                        CommonUtil.getInstance().reservationGameTask(context, releaseEty, new Action1<Integer>() {
-                            @Override
-                            public void call(Integer integer) {
+                if(type == 0){
+                    detail_task_tv_center.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View view) {
+                            CommonUtil.getInstance().reservationGameTask(context, releaseEty, new Action1<Integer>() {
+                                @Override
+                                public void call(Integer integer) {
 
-                            }
-                        });
-                    }
-                });
+                                }
+                            });
+                        }
+                    });
+
+                }
             } else {
-                releaseEty.getDownloadHelper().updateDownloadTaskView((Activity) context, taskEty, detail_task_tv_center);
+                releaseEty.getDownloadHelper().updateDownloadTaskView((Activity) context, taskEty, detail_task_tv_center, null, type);
                 if (releaseEty.getDownloadHelper().getDownLoadType() == DownloadTaskService.STATUS_INSTALLED) {//已经安装的话
                     detail_task_tv_center.setText("领取奖励");
                     detail_task_tv_center.setEnabled(true);
-                    detail_task_tv_center.setOnClickListener(new View.OnClickListener() {
-                        @Override
-                        public void onClick(View view) {
-                            if (taskEty.isGameReservationCantDownload()) {
-                                CommonUtil.getInstance().reservationGameTask(context, releaseEty, new Action1<Integer>() {
-                                    @Override
-                                    public void call(Integer integer) {
+                    if(type == 0){
+
+                        detail_task_tv_center.setOnClickListener(new View.OnClickListener() {
+                            @Override
+                            public void onClick(View view) {
+                                if (taskEty.isGameReservationCantDownload()) {
+                                    CommonUtil.getInstance().reservationGameTask(context, releaseEty, new Action1<Integer>() {
+                                        @Override
+                                        public void call(Integer integer) {
 //                                        if(action1 != null)
 //                                            action1.call(TO_REFRESH);
-                                    }
-                                });
-                            } else {
-                                CommonUtil.getInstance().receiveAward(context, gameEntity, new Action1<Integer>() {
-                                    @Override
-                                    public void call(Integer integer) {
+                                        }
+                                    });
+                                } else {
+                                    CommonUtil.getInstance().receiveAward(context, gameEntity, new Action1<Integer>() {
+                                        @Override
+                                        public void call(Integer integer) {
 
-                                    }
-                                });
+                                        }
+                                    });
+                                }
                             }
-                        }
-                    });
+                        });
+                    }
                 }
             }
         }else if (gameEntity.getApp().isCanDonload()) {//可下载
-            gameEntity.getApp().getFindAppHelper().updateDownloadTaskView((Activity) context, gameEntity.getApp(), detail_task_tv_center);
+            gameEntity.getApp().getFindAppHelper().updateDownloadTaskView((Activity) context, gameEntity.getApp(), detail_task_tv_center, type);
             detail_task_tv_center.setTag("PUBLIC_TAG_PREFIX_TEXTVIEW_LIST" + gameEntity.getApp().getDownload_link());
         } else {//预约下载
-            gameEntity.getApp().getFindAppHelper().updateReservationView((Activity) context, gameEntity.getApp(), detail_task_tv_center);
+            gameEntity.getApp().getFindAppHelper().updateReservationView((Activity) context, gameEntity.getApp(), detail_task_tv_center, type);
             detail_task_tv_center.setTag("PUBLIC_TAG_PREFIX_TEXTVIEW_LIST" + gameEntity.getApp().getDownload_link());
         }
     }
@@ -2194,4 +2202,16 @@ public class CommonUtil {
                     }
                 });
     }
+
+    /**
+     * 判断是否 安装应用
+     */
+    public boolean isInstallApp(String packageName, String name){
+        boolean isInstalled = PackageUtil.isAppInstalled(SheepApp.getInstance(), packageName);
+        if(!isInstalled){
+            G.showToast("还未安装"+name);
+            return false;
+        }
+        return true;
+    }
 }

+ 16 - 5
app/src/main/java/com/sheep/gamegroup/view/activity/ActPlayGameDetail.java

@@ -298,7 +298,7 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
     //更新按钮状态与添加点击事件
     private void updateView(final Activity activity, PlayGameEntity playGameEntity, TextView textView) {
 
-        CommonUtil.getInstance().palyGameDetailBtnValue(activity,gameEntity,textView);
+        CommonUtil.getInstance().palyGameDetailBtnValue(activity,gameEntity,textView, 1);
     }
 
 
@@ -400,6 +400,8 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
         }
         if (gameEntity != null && gameEntity.getApp() != null && TextUtils.equals(task.getKey(), gameEntity.getApp().getDownload_link()))
             gameEntity.getApp().updateState(DownloadTaskService.STATUS_FINISH);
+        if (gameEntity != null && gameEntity.getRelease_task() != null && TextUtils.equals(task.getKey(), gameEntity.getApp().getDownload_link()))
+            gameEntity.getRelease_task().getDownloadHelper().updateState(DownloadTaskService.STATUS_FINISH);
     }
 
     @Subscribe
@@ -423,17 +425,26 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
                 }
             }
 
-            if (playGameEntity != null && TextUtils.equals(packageName, playGameEntity.getPackage_names())) {
+            if (TextUtils.equals(packageName, playGameEntity.getPackage_names())) {
                 switch (intent.getAction()) {
                     case ACTION_PACKAGE_ADDED:
-                        playGameEntity.updateState(DownloadTaskService.STATUS_INSTALLED);
+                        if(playGameEntity != null)
+                            playGameEntity.updateState(DownloadTaskService.STATUS_INSTALLED);
+                        if(gameEntity.getRelease_task() != null)
+                            gameEntity.getRelease_task().getDownloadHelper().updateState(DownloadTaskService.STATUS_INSTALLED);
                         break;
                     case ACTION_PACKAGE_REMOVED:
                         String path = PackageUtil.isExistsFile(packageName);
                         if (TextUtils.isEmpty(path)) {
-                            playGameEntity.updateState(DownloadTaskService.STATUS_INIT);
+                            if(playGameEntity != null)
+                                playGameEntity.updateState(DownloadTaskService.STATUS_INIT);
+                            if(gameEntity.getRelease_task() != null)
+                                gameEntity.getRelease_task().getDownloadHelper().updateState(DownloadTaskService.STATUS_INIT);
                         } else {
-                            playGameEntity.updateState(DownloadTaskService.STATUS_FINISH);
+                            if(playGameEntity != null)
+                                playGameEntity.updateState(DownloadTaskService.STATUS_FINISH);
+                            if(gameEntity.getRelease_task() != null)
+                                gameEntity.getRelease_task().getDownloadHelper().updateState(DownloadTaskService.STATUS_FINISH);
                         }
                         break;
                 }

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

@@ -59,7 +59,7 @@ public class PlayGameItemAdapter extends AdbCommonRecycler<GameEntity>{
         ViewUtil.setText(item_name_tv, gameEntity.getApp().getName());
         ViewUtil.setText(item_date_tv, gameEntity.getApp().getPackage_size()+"M");
         GlideImageLoader.setGameImage((ImageView) holder.itemView.findViewById(R.id.item_icon_iv), gameEntity.getApp().getIcon());
-        CommonUtil.getInstance().palyGameDetailBtnValue(context,gameEntity,detail_task_tv_center);
+        CommonUtil.getInstance().palyGameDetailBtnValue(context,gameEntity,detail_task_tv_center, 0);
 
         item_download_welfare_line.setVisibility(holder.getAdapterPosition() + 1 == getItemCount() ? View.GONE : View.VISIBLE);
 

+ 6 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlaGameGift.java

@@ -104,6 +104,9 @@ public class FgtPlaGameGift extends BaseFragment {
                     btn_tv.setOnClickListener(new View.OnClickListener() {
                         @Override
                         public void onClick(View v) {
+                            if(!CommonUtil.getInstance().isInstallApp(gameEntity.getApp().getPackage_name(), gameEntity.getApp().getName())){
+                                return;
+                            }
                             CommonUtil.getInstance().receiveGiftById(activity, giftBagApp, new Action1<Integer>() {
                                 @Override
                                 public void call(Integer integer) {
@@ -144,6 +147,9 @@ public class FgtPlaGameGift extends BaseFragment {
                             CommonUtil.getInstance().receiveAward(activity, gameEntity, new Action1<Integer>() {
                                 @Override
                                 public void call(Integer integer) {
+                                    if(!CommonUtil.getInstance().isInstallApp(giftBagApp.getTask().getPackage_names(), giftBagApp.getTask().getName())){
+                                        return;
+                                    }
                                     gameEntity.setReceived_voucher(true);
                                     btn_tv.setText("已领取");
                                     btn_tv.setEnabled(false);