Procházet zdrojové kódy

游戏中心,礼包领取逻辑修改,bug修改

liujiangyao před 7 roky
rodič
revize
16f3dff027

+ 92 - 23
app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java

@@ -31,6 +31,7 @@ import com.arialyy.aria.core.inf.IEntity;
 import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.EventTypes;
+import com.kfzs.duanduan.services.DownloadTaskService;
 import com.mdad.sdk.mdsdk.AdManager;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.alipay.PayResult;
@@ -40,6 +41,7 @@ import com.sheep.gamegroup.model.entity.Ext;
 import com.sheep.gamegroup.model.entity.FindApp;
 import com.sheep.gamegroup.model.entity.GameAccountEntity;
 import com.sheep.gamegroup.model.entity.GameEntity;
+import com.sheep.gamegroup.model.entity.GiftBagApp;
 import com.sheep.gamegroup.model.entity.HomeListEntity;
 import com.sheep.gamegroup.model.entity.NewbieTask;
 import com.sheep.gamegroup.model.entity.NewbieTaskRecord;
@@ -104,6 +106,7 @@ import static com.sheep.gamegroup.util.UMConfigUtils.Event.NEWBIE_TASK;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.QR_COPY;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.XIAOMI_GAME_RECEIVE;
 import static com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp.PUBLIC_TAG_PREFIX_TEXTVIEW_LIST;
+import static com.sheep.gamegroup.view.adapter.WelfareAdapter.TO_REFRESH;
 
 /**
  * 一些公用的class
@@ -1171,12 +1174,52 @@ public class CommonUtil {
                     }
                 });
     }
+    public void acceptedTask(final Context context, final GameEntity gameEntity, final Action1<Integer> action1) {
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("device_id", DeviceUtil.getDeviceId(context));
+        jsonObject.put("release_task_id", gameEntity.getRelease_task().getId());
+        SheepApp.getInstance().getNetComponent().getApiService().acceptedTask(jsonObject)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        if (baseMessage.getCode() == 200) {
+                            String acceptId = baseMessage.getData(String.class);
+                            try {
+                                if(!TextUtils.isEmpty(acceptId))
+                                    gameEntity.setAccepted_task_id(Integer.valueOf(acceptId));
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                            receiveAwards(context, gameEntity, action1);
+                        } else {
+                            G.showToast(baseMessage);
+                        }
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast(baseMessage);
+                    }
+                });
+    }
     //对---游戏任务中的领取奖励
-    public void receiveAward(final Context context, final TaskReleaseEty taskReleaseEty, final Action1<Integer> action1) {
+    public void receiveAward(final Context context, final GameEntity gameEntity, final Action1<Integer> action1) {
+        if(gameEntity.getAccepted_task_id() < 1){
+            acceptedTask(context,gameEntity,action1);
+        }else {
+            receiveAwards(context, gameEntity, action1);
+        }
+
+
+    }
+    //领取奖励
+    public void receiveAwards(final Context context, final GameEntity gameEntity, final Action1<Integer> action1){
         SheepApp.getInstance()
                 .getNetComponent()
                 .getApiService()
-                .receive_award(taskReleaseEty.getAccepted_task_id())
+                .receive_award(gameEntity.getAccepted_task_id())
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
@@ -1190,7 +1233,7 @@ public class CommonUtil {
                         //这里领取了奖励,要刷新用户信息
                         CommonUtil.getInstance().updateUserInfo(null);
                         ViewUtil.showMsgDialog(context,
-                                "恭喜你获得" + taskReleaseEty.getBonusText() + "元奖励",
+                                "恭喜你获得" + gameEntity.getBonusText() + "元奖励",
                                 "提示",
                                 true);
                         if (action1 != null)
@@ -2068,12 +2111,12 @@ public class CommonUtil {
     /**
      * 玩转游戏 按钮设置
      */
-    public void palyGameDetailBtnValue(final Context context, GameEntity gameEntity, TextView detail_task_tv_center){
+    public void palyGameDetailBtnValue(final Context context, final GameEntity gameEntity, TextView detail_task_tv_center){
         final TaskReleaseEty releaseEty = gameEntity.getRelease_task();
         final TaskEty taskEty = releaseEty != null?releaseEty.getTask():null;
-        if(releaseEty != null && taskEty != null){
+        if(releaseEty != null && taskEty != null) {//游戏任务
 
-            if(taskEty.isGameReservationCantDownload()){//游戏任务中的预约任务,且不能下载情况下
+            if (taskEty.isGameReservation()) {//预约
                 detail_task_tv_center.setText("预约下载");
                 detail_task_tv_center.setEnabled(true);
                 detail_task_tv_center.setOnClickListener(new View.OnClickListener() {
@@ -2088,33 +2131,34 @@ public class CommonUtil {
                     }
                 });
             } else {
-                if (gameEntity.getReceived_voucher()) {//已领取
-                    if (gameEntity.getCan_download()) {
-                        releaseEty.getDownloadHelper().updateDownloadTaskView((Activity) context, taskEty, detail_task_tv_center);
-                        detail_task_tv_center.setTag("PUBLIC_TAG_PREFIX_TEXTVIEW_LIST" + taskEty.getDownload_link());
-                    } else {
-                        detail_task_tv_center.setEnabled(false);
-                        detail_task_tv_center.setText("已经预约");
-                    }
-
-                } else {
+                releaseEty.getDownloadHelper().updateDownloadTaskView((Activity) context, taskEty, detail_task_tv_center);
+                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) {
-                            CommonUtil.getInstance().receiveAward(context, releaseEty, new Action1<Integer>() {
-                                @Override
-                                public void call(Integer integer) {
+                            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
-        if (gameEntity.getApp().isCanDonload()) {//可下载
+        }else if (gameEntity.getApp().isCanDonload()) {//可下载
             gameEntity.getApp().getFindAppHelper().updateDownloadTaskView((Activity) context, gameEntity.getApp(), detail_task_tv_center);
             detail_task_tv_center.setTag("PUBLIC_TAG_PREFIX_TEXTVIEW_LIST" + gameEntity.getApp().getDownload_link());
         } else {//预约下载
@@ -2122,4 +2166,29 @@ public class CommonUtil {
             detail_task_tv_center.setTag("PUBLIC_TAG_PREFIX_TEXTVIEW_LIST" + gameEntity.getApp().getDownload_link());
         }
     }
+
+    /**
+     * 领取礼包
+     * @param item
+     */
+    public void receiveGiftById(final Context context, final GiftBagApp item, final Action1<Integer> action1) {
+        SheepApp.getInstance().getNetComponent().getApiService().receiveGiftBag(item.getGift_bag().getId())
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        String code = baseMessage.getData(String.class);
+                        item.setCode(code);
+                        if(action1 != null)
+                            action1.call(TO_REFRESH);
+                        ViewUtil.shareGetWelfareDialog((Activity) context, item);
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast(baseMessage);
+                    }
+                });
+    }
 }

+ 22 - 93
app/src/main/java/com/sheep/gamegroup/view/activity/ActPlayGameDetail.java

@@ -105,7 +105,6 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
     private GameEntity gameEntity;
     private PlayGameEntity playGameEntity;
     private boolean isNeedReservation = false;
-    private Map<String, TextView> downLoadTextViewMap = new HashMap<>();
 
     private GiftpackListAdapter mAdapter;
     private int curPosition = 0;
@@ -269,9 +268,9 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
             welfare_gift_layout.setVisibility(View.GONE);
         }else {
             welfare_gift_layout.setVisibility(View.VISIBLE);
+            mAdapter.add(FgtPlaGameGift.newInstance(gameEntity), "礼包");
             if(gameEntity.isGift()){
                 gift_tv.setVisibility(View.VISIBLE);
-                mAdapter.add(FgtPlaGameGift.newInstance(gameEntity), "礼包");
             }else {
                 gift_tv.setVisibility(View.GONE);
             }
@@ -295,59 +294,8 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
 
     //更新按钮状态与添加点击事件
     private void updateView(final Activity activity, PlayGameEntity playGameEntity, TextView textView) {
-        final TaskReleaseEty releaseEty = gameEntity.getRelease_task();
-        final TaskEty taskEty = releaseEty != null?releaseEty.getTask():null;
-        if(releaseEty != null && taskEty != null){
-
-            if(taskEty.isGameReservationCantDownload()){//游戏任务中的预约任务,且不能下载情况下
-                textView.setText("预约下载");
-                textView.setEnabled(true);
-                textView.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View view) {
-                        CommonUtil.getInstance().reservationGameTask(activity, releaseEty, new Action1<Integer>() {
-                            @Override
-                            public void call(Integer integer) {
 
-                            }
-                        });
-                    }
-                });
-            } else {
-                if (gameEntity.getReceived_voucher()) {//已领取
-                    if (gameEntity.getCan_download()) {
-                        downLoadTextViewMap.put(playGameEntity.getDownload_url(), textView);
-                        downLoadTextViewMap.put(playGameEntity.getPackage_name(), textView);
-                        releaseEty.getDownloadHelper().updateDownloadTaskView((Activity) activity, taskEty, textView);
-                    } else {
-                        textView.setEnabled(false);
-                        textView.setText("已经预约");
-                    }
-
-                } else {
-                    textView.setText("领取奖励");
-                    textView.setEnabled(true);
-                    textView.setOnClickListener(new View.OnClickListener() {
-                        @Override
-                        public void onClick(View view) {
-                            CommonUtil.getInstance().receiveAward(activity, releaseEty, new Action1<Integer>() {
-                                @Override
-                                public void call(Integer integer) {
-
-                                }
-                            });
-                        }
-                    });
-                }
-            }
-        }else
-        if (playGameEntity.isCanDonload()) {//可下载
-            downLoadTextViewMap.put(playGameEntity.getDownload_url(), textView);
-            downLoadTextViewMap.put(playGameEntity.getPackage_name(), textView);
-            playGameEntity.getFindAppHelper().updateDownloadTaskView(activity, playGameEntity, textView);
-        } else {//预约下载
-            playGameEntity.getFindAppHelper().updateReservationView(activity, playGameEntity, textView);
-        }
+        CommonUtil.getInstance().palyGameDetailBtnValue(activity,gameEntity,textView);
     }
 
 
@@ -385,57 +333,42 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
         super.onDestroy();
         EventBus.getDefault().unregister(this);
     }
-    //获取任务对应的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("准备下载中");
+        if (find_game_down_tv != null) {
+            find_game_down_tv.setText("准备下载中");
         }
     }
 
     @Download.onTaskStart
     void taskStart(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if (textView != null) {
-            textView.setText("开始下载中");
+        if (find_game_down_tv != null) {
+            find_game_down_tv.setText("开始下载中");
         }
     }
 
     @Download.onTaskResume
     void taskResume(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if (textView != null) {
-            textView.setText("恢复下载中");
+        if (find_game_down_tv != null) {
+            find_game_down_tv.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())));
+        if (find_game_down_tv != null) {
+            find_game_down_tv.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);
+        if (find_game_down_tv != null) {
+            find_game_down_tv.setText(CommonUtil.CONTINUE_DOWNLOAD);
         }
     }
 
@@ -445,25 +378,22 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
 
     @Download.onTaskCancel
     void taskCancel(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if (textView != null) {
-            textView.setText("已经取消");
+        if (find_game_down_tv != null) {
+            find_game_down_tv.setText("已经取消");
         }
     }
 
     @Download.onTaskFail
     void taskFail(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if (textView != null) {
-            textView.setText(CommonUtil.FAIL_DOWNLOAD);
+        if (find_game_down_tv != null) {
+            find_game_down_tv.setText(CommonUtil.FAIL_DOWNLOAD);
         }
     }
 
     @Download.onTaskComplete
     void taskComplete(DownloadTask task) {
-        TextView textView = getTextViewByTask(task);
-        if (textView != null) {
-            textView.setText(CommonUtil.START_INSTALL);
+        if (find_game_down_tv != null) {
+            find_game_down_tv.setText(CommonUtil.START_INSTALL);
         }
         if (gameEntity != null && gameEntity.getApp() != null && TextUtils.equals(task.getKey(), gameEntity.getApp().getDownload_link()))
             gameEntity.getApp().updateState(DownloadTaskService.STATUS_FINISH);
@@ -474,18 +404,17 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
         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) {
+            if (find_game_down_tv != null) {
                 switch (intent.getAction()) {
                     case ACTION_PACKAGE_ADDED:
-                        textView.setText(CommonUtil.GAME_OPEN);
+                        find_game_down_tv.setText(CommonUtil.GAME_OPEN);
                         break;
                     case ACTION_PACKAGE_REMOVED:
                         String path = PackageUtil.isExistsFile(packageName);
                         if (TextUtils.isEmpty(path)) {
-                            textView.setText(CommonUtil.START_DOWNLOAD);
+                            find_game_down_tv.setText(CommonUtil.START_DOWNLOAD);
                         } else {
-                            textView.setText(CommonUtil.START_INSTALL);
+                            find_game_down_tv.setText(CommonUtil.START_INSTALL);
                         }
                         break;
                 }

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

@@ -119,6 +119,8 @@ public abstract class BaseListActivity<T> extends BaseActivity {
                         if(isNewData) {
                             List<T> newList = baseMessage.getDatas(getTClass());
                             loadList(newList);
+                        }else {
+                            notifyDataSetChanged();
                         }
                     }
 
@@ -136,6 +138,8 @@ public abstract class BaseListActivity<T> extends BaseActivity {
         initData();
     }
     private void loadList(List<T> newList){
+        if(page == 1)
+            list.clear();
         ListUtil.addAll(list, newList);
         notifyDataSetChanged();
     }

+ 10 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/MessagesActivity.java

@@ -20,6 +20,7 @@ import com.sheep.gamegroup.view.adapter.MessageAdapter;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 
+import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
 import org.greenrobot.eventbus.ThreadMode;
 import org.xutils.view.annotation.Event;
@@ -51,6 +52,7 @@ public class MessagesActivity extends AppCompatActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_messages);
+        EventBus.getDefault().register(this);
         viewPager = findViewById(R.id.message_view_pager_grd);
         tabLayout = findViewById(R.id.tab_layout);
         findViewById(R.id.iv_back).setOnClickListener(new View.OnClickListener() {
@@ -92,6 +94,8 @@ public class MessagesActivity extends AppCompatActivity {
         });
         viewPager.setAdapter(new MessageAdapter(getSupportFragmentManager(), this));
         tabLayout.setupWithViewPager(viewPager);
+        imageViewLeft = getCustomView(0).findViewById(R.id.iv_message);
+        imageViewRight = getCustomView(1).findViewById(R.id.iv_message);
 
         findViewById(R.id.iv_back).setOnClickListener(new View.OnClickListener() {
             @Override
@@ -126,5 +130,11 @@ public class MessagesActivity extends AppCompatActivity {
         View view = LayoutInflater.from(this).inflate(R.layout.layout_fragment_mseeages, null, false);
         return view;
     }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        EventBus.getDefault().unregister(this);
+    }
 }
 

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

@@ -59,58 +59,8 @@ 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());
-        final TaskReleaseEty releaseEty = gameEntity.getRelease_task();
-        final TaskEty taskEty = releaseEty != null?releaseEty.getTask():null;
-        if(releaseEty != null && taskEty != null){
+        CommonUtil.getInstance().palyGameDetailBtnValue(context,gameEntity,detail_task_tv_center);
 
-            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) {
-
-                            }
-                        });
-                    }
-                });
-            } else {
-                if (gameEntity.getReceived_voucher()) {//已领取
-                    if (gameEntity.getCan_download()) {
-                        releaseEty.getDownloadHelper().updateDownloadTaskView((Activity) context, taskEty, detail_task_tv_center);
-                        detail_task_tv_center.setTag("PUBLIC_TAG_PREFIX_TEXTVIEW_LIST" + taskEty.getDownload_link());
-                    } else {
-                        detail_task_tv_center.setEnabled(false);
-                        detail_task_tv_center.setText("已经预约");
-                    }
-
-                } else {
-                    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().receiveAward(context, releaseEty, new Action1<Integer>() {
-                                @Override
-                                public void call(Integer integer) {
-
-                                }
-                            });
-                        }
-                    });
-                }
-            }
-        }else
-        if (gameEntity.getApp().isCanDonload()) {//可下载
-            gameEntity.getApp().getFindAppHelper().updateDownloadTaskView((Activity) activity, gameEntity.getApp(), detail_task_tv_center);
-            detail_task_tv_center.setTag("PUBLIC_TAG_PREFIX_TEXTVIEW_LIST" + gameEntity.getApp().getDownload_link());
-        } else {//预约下载
-            gameEntity.getApp().getFindAppHelper().updateReservationView((Activity) activity, gameEntity.getApp(), detail_task_tv_center);
-            detail_task_tv_center.setTag("PUBLIC_TAG_PREFIX_TEXTVIEW_LIST" + gameEntity.getApp().getDownload_link());
-        }
         item_download_welfare_line.setVisibility(holder.getAdapterPosition() + 1 == getItemCount() ? View.GONE : View.VISIBLE);
 
         //tag 标签绘制

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

@@ -133,6 +133,8 @@ public abstract class BaseListFragment<T> extends BaseFragment {
                         if(isNewData) {
                             List<T> newList = baseMessage.getDatas(getTClass());
                             loadList(newList);
+                        }else {
+                            notifyDataSetChanged();
                         }
                     }
 
@@ -151,6 +153,8 @@ public abstract class BaseListFragment<T> extends BaseFragment {
         initData();
     }
     private void loadList(List<T> newList){
+        if(page == 1)
+            list.clear();
         ListUtil.addAll(list, newList);
         notifyDataSetChanged();
     }

+ 63 - 10
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlaGameGift.java

@@ -5,6 +5,7 @@ import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -12,6 +13,7 @@ import android.widget.TextView;
 
 import com.sheep.gamegroup.model.entity.GameEntity;
 import com.sheep.gamegroup.model.entity.GiftBagApp;
+import com.sheep.gamegroup.model.entity.TaskReleaseEty;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.ViewHolder;
@@ -42,9 +44,10 @@ public class FgtPlaGameGift extends BaseFragment {
     private Activity activity;
     private GameEntity gameEntity;
     private List<GiftBagApp> has_gift_bag = new ArrayList<>();
+    private List<Object> objectList = new ArrayList<>();
 
-    public static FgtPlayGameDetail newInstance(GameEntity gameEntity){
-        FgtPlayGameDetail fgt = new FgtPlayGameDetail();
+    public static FgtPlaGameGift newInstance(GameEntity gameEntity){
+        FgtPlaGameGift fgt = new FgtPlaGameGift();
         Bundle bundle = new Bundle();
         bundle.putSerializable("game_entitiy", gameEntity);
         fgt.setArguments(bundle);
@@ -62,35 +65,45 @@ public class FgtPlaGameGift extends BaseFragment {
             return;
         has_gift_bag.clear();
         has_gift_bag.addAll(gameEntity.getHas_gift_bag());
+        objectList.clear();
+        if(!TextUtils.isEmpty(gameEntity.getBonusText()) && gameEntity.getRelease_task() != null)
+            objectList.add(gameEntity.getRelease_task());
+        objectList.addAll(gameEntity.getHas_gift_bag());
 
         activity = getActivity();
         recyclerviewList.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
-        recyclerviewList.setAdapter(new AdbCommonRecycler<GiftBagApp>(SheepApp.mContext, has_gift_bag) {
+        recyclerviewList.setAdapter(new AdbCommonRecycler<Object>(SheepApp.mContext, objectList) {
             @Override
             public int getViewIdByType(int type) {
                 return R.layout.fgt_playgame_gift_item;
             }
 
             @Override
-            public void convert(ViewHolder holder, final GiftBagApp giftBagApp) {
+            public void convert(ViewHolder holder, final Object giftBagApp) {
+                if (giftBagApp instanceof GiftBagApp){
+                    bindGfitData(holder, (GiftBagApp) giftBagApp);
+                }else if(giftBagApp instanceof TaskReleaseEty){
+                    bindReleaseData(holder, (TaskReleaseEty) giftBagApp);
+                }
+            }
+
+            private void bindGfitData(ViewHolder holder, final GiftBagApp giftBagApp){
+
                 View view = holder.itemView;
                 ViewUtil.setText((TextView) holder.getView(R.id.name_tv), giftBagApp.getGift_bag().getGiftName());
                 ViewUtil.setText((TextView) holder.getView(R.id.num_tv), giftBagApp.getGift_bag().getLastNumText());
 
                 final TextView btn_tv = holder.getView(R.id.btn_tv);
 
-                if(gameEntity.getIs_reservation() == 0 || !gameEntity.getApp().isCanDonload()){
-
-                    btn_tv.setText("领取");
-                    btn_tv.setEnabled(false);
-                }else
                 if (!giftBagApp.isReceived()){
                     btn_tv.setText("领取");
                     btn_tv.setEnabled(true);
+                    btn_tv.setTextColor(activity.getResources().getColor(R.color.txt_bule));
+                    btn_tv.setBackgroundResource(R.drawable.shape_blue_stroke_rectangle);
                     btn_tv.setOnClickListener(new View.OnClickListener() {
                         @Override
                         public void onClick(View v) {
-                            CommonUtil.getInstance().receiveAward(activity, gameEntity.getRelease_task(), new Action1<Integer>() {
+                            CommonUtil.getInstance().receiveGiftById(activity, giftBagApp, new Action1<Integer>() {
                                 @Override
                                 public void call(Integer integer) {
                                     giftBagApp.setReceived(true);
@@ -104,9 +117,49 @@ public class FgtPlaGameGift extends BaseFragment {
                 }else {
                     btn_tv.setText("已领取");
                     btn_tv.setEnabled(false);
+                    btn_tv.setTextColor(activity.getResources().getColor(R.color.time_created));
+                    btn_tv.setBackgroundResource(R.drawable.shape_gray_stroke_rectangle_10_radius);
                 }
                 holder.getView(R.id.line_tv).setVisibility(holder.getAdapterPosition() + 1 == getItemCount() ? View.GONE : View.VISIBLE);
             }
+
+            private void bindReleaseData(ViewHolder holder, final TaskReleaseEty giftBagApp){
+
+                View view = holder.itemView;
+                ViewUtil.setText((TextView) holder.getView(R.id.name_tv), giftBagApp.getName());
+                ViewUtil.setText((TextView) holder.getView(R.id.num_tv), giftBagApp.getLastNumText());
+
+                final TextView btn_tv = holder.getView(R.id.btn_tv);
+
+                if (!gameEntity.getReceived_voucher()){
+                    btn_tv.setText("领取");
+                    btn_tv.setEnabled(true);
+
+                    btn_tv.setTextColor(activity.getResources().getColor(R.color.txt_bule));
+                    btn_tv.setBackgroundResource(R.drawable.shape_blue_stroke_rectangle);
+                    btn_tv.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            CommonUtil.getInstance().receiveAward(activity, gameEntity, new Action1<Integer>() {
+                                @Override
+                                public void call(Integer integer) {
+                                    gameEntity.setReceived_voucher(true);
+                                    btn_tv.setText("已领取");
+                                    btn_tv.setEnabled(false);
+                                    notifyDataSetChanged();
+                                }
+                            });
+                        }
+                    });
+                }else {
+                    btn_tv.setText("已领取");
+                    btn_tv.setEnabled(false);
+                    btn_tv.setTextColor(activity.getResources().getColor(R.color.time_created));
+                    btn_tv.setBackgroundResource(R.drawable.shape_gray_stroke_rectangle_10_radius);
+                }
+                holder.getView(R.id.line_tv).setVisibility(holder.getAdapterPosition() + 1 == getItemCount() ? View.GONE : View.VISIBLE);
+            }
+
         });
 
     }

+ 2 - 1
app/src/main/res/layout/act_play_game_detail_layout.xml

@@ -186,7 +186,8 @@
         android:layout_centerHorizontal="true"
         android:layout_marginTop="@dimen/find_game_top6"
         android:layout_below="@+id/status_height_view"
-        android:orientation="horizontal">
+        android:orientation="horizontal"
+        android:visibility="invisible">
         <TextView
             android:id="@+id/welfare_tv"
             android:layout_width="wrap_content"

+ 2 - 1
app/src/main/res/layout/fgt_playgame_gift_item.xml

@@ -3,6 +3,7 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical"
+    android:background="@color/white"
     android:padding="@dimen/content_padding_15">
 
     <LinearLayout
@@ -13,7 +14,7 @@
         <TextView
             android:id="@+id/name_tv"
             android:layout_width="0dp"
-            android:layout_weight="2"
+            android:layout_weight="3"
             android:layout_height="wrap_content"
             android:text="充值福利300元"
             android:textColor="#666666"