Explorar el Código

游戏任务列表和游戏详情,提交

liujiangyao hace 7 años
padre
commit
9a8fa3b65f
Se han modificado 28 ficheros con 965 adiciones y 176 borrados
  1. 2 0
      app/src/main/AndroidManifest.xml
  2. 1 0
      app/src/main/java/com/kfzs/duanduan/event/EventTypes.java
  3. 56 0
      app/src/main/java/com/sheep/gamegroup/helper/FindAppHelper.java
  4. 5 4
      app/src/main/java/com/sheep/gamegroup/model/entity/GameEntity.java
  5. 10 0
      app/src/main/java/com/sheep/gamegroup/model/entity/GiftBagApp.java
  6. 64 5
      app/src/main/java/com/sheep/gamegroup/model/entity/PlayGameEntity.java
  7. 3 0
      app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java
  8. 9 0
      app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
  9. 3 4
      app/src/main/java/com/sheep/gamegroup/view/activity/ActGameCenter.java
  10. 277 27
      app/src/main/java/com/sheep/gamegroup/view/activity/ActPlayGameDetail.java
  11. 12 8
      app/src/main/java/com/sheep/gamegroup/view/adapter/PlayGameItemAdapter.java
  12. 2 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/BaseListFragment.java
  13. 5 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtDownloadWelfareList.java
  14. 5 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtGiftCenter.java
  15. 5 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMyDownloadWelfareList.java
  16. 5 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMyGift.java
  17. 110 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlaGameGift.java
  18. 21 3
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGame.java
  19. 96 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGameDetail.java
  20. 9 1
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGameSon.java
  21. 5 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtWelfareUseRecord.java
  22. 34 1
      app/src/main/java/com/sheep/jiuyan/samllsheep/utils/TitleBarUtils.java
  23. 4 0
      app/src/main/java/org/afinal/simplecache/ApiKey.java
  24. 48 123
      app/src/main/res/layout/act_play_game_detail_layout.xml
  25. 50 0
      app/src/main/res/layout/fgt_playgame_gift_item.xml
  26. 122 0
      app/src/main/res/layout/item_play_game_detail.xml
  27. BIN
      app/src/main/res/mipmap-xxhdpi/welfare_gift_img_bg.png
  28. 2 0
      app/src/main/res/values/common.xml

+ 2 - 0
app/src/main/AndroidManifest.xml

@@ -595,6 +595,8 @@
             android:exported="true"/>
         <activity android:name="com.sheep.gamegroup.view.activity.ActEverydayPlayGame"
             android:exported="true"/>
+        <activity android:name="com.sheep.gamegroup.view.activity.ActPlayGameDetail"
+            android:exported="true"/>
         <activity android:name="com.sheep.gamegroup.view.activity.MessageCenterDetailActivity"
             android:exported="true"/>
         <!--start幂动科技-->

+ 1 - 0
app/src/main/java/com/kfzs/duanduan/event/EventTypes.java

@@ -44,4 +44,5 @@ public enum EventTypes {
     FGT_SHEEP_REFRESH_H , //刷新fgtSmallSheep高度
     FGT_SHEEP_SHOW_NEW_USER_HONG_BAO , //显示红包
     REFRESH_AUDITACTIVITY_DATA,//审核数据刷新
+    FGT_PLAYGAME_REFRESH_H , //刷新玩转游戏高度
 }

+ 56 - 0
app/src/main/java/com/sheep/gamegroup/helper/FindAppHelper.java

@@ -10,6 +10,7 @@ import com.sheep.gamegroup.model.api.IDownload;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.FindApp;
+import com.sheep.gamegroup.model.entity.PlayGameEntity;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.TimeUtil;
 import com.sheep.gamegroup.util.ViewUtil;
@@ -49,6 +50,10 @@ public class FindAppHelper{
                         FindApp findApp = (FindApp) iTask;
                         recordAppDownloads(activity, findApp, null);
                         FIND_APP.onEvent("application_id", findApp.getId(), "action", down_tv.getText());
+                    }else if(iTask instanceof PlayGameEntity) {
+                        PlayGameEntity findApp = (PlayGameEntity) iTask;
+                        recordAppDownloads(activity, findApp, null);
+                        FIND_APP.onEvent("application_id", findApp.getId(), "action", down_tv.getText());
                     }
                 }
             }
@@ -78,6 +83,23 @@ public class FindAppHelper{
             reservation_tv.setText("已经预约");
         }
     }
+    public void updateReservationView(final Activity activity, final PlayGameEntity findApp, final TextView reservation_tv) {
+        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);
+                }
+            });
+        } else {
+            reservation_tv.setEnabled(false);
+            reservation_tv.setText("已经预约");
+        }
+    }
 
 
     /**
@@ -117,4 +139,38 @@ public class FindAppHelper{
                     }
                 });
     }
+    private void recordAppDownloads(final Activity activity, final PlayGameEntity items, final TextView textView) {
+
+        SheepApp.getInstance().getNetComponent().getApiService().recordAppDownloads(items.getId())
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        items.setRecord(2);//设置为不可记录
+                        if(items.isCanDonload()){
+                            //提交下载成功
+                            if(textView != null)
+                                textView.setEnabled(true);
+                        } else {//提交预约成功
+                            if(textView != null) {
+                                textView.setEnabled(false);
+                                textView.setText("已经预约");
+                            }
+                            ViewUtil.showMsgDialog(activity, new DialogConfig().setTitle("预约成功")
+                                    .setMsg(String.format(Locale.CHINA, "请在%s准时到小绵羊下载哦", TimeUtil.TimeStamp2Date(items.getDownload_at(), "yyyy年MM月dd日HH时mm分")))
+                                    .setMsgGravity(Gravity.START).setBtnLeftText("我知道了"));
+                        }
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        if(!items.isCanDonload()){
+                            G.showToast("预约失败");
+                        }
+                        if(textView != null)
+                            textView.setEnabled(true);
+                    }
+                });
+    }
 }

+ 5 - 4
app/src/main/java/com/sheep/gamegroup/model/entity/GameEntity.java

@@ -1,12 +1,13 @@
 package com.sheep.gamegroup.model.entity;
 
+import java.io.Serializable;
 import java.util.List;
 
 /**
  * Created by ljy on 2018/9/4.
  */
 
-public class GameEntity {
+public class GameEntity implements Serializable{
     private int accepted_task_id;//integer($int64)领取福利时使用
 
     private PlayGameEntity app;
@@ -21,7 +22,7 @@ public class GameEntity {
 
     private TaskReleaseEty release_task;
 
-    private List<Object> has_gift_bag;
+    private List<GiftBagApp> has_gift_bag;
 
     public TaskReleaseEty getRelease_task() {
         return release_task;
@@ -31,11 +32,11 @@ public class GameEntity {
         this.release_task = release_task;
     }
 
-    public List<Object> getHas_gift_bag() {
+    public List<GiftBagApp> getHas_gift_bag() {
         return has_gift_bag;
     }
 
-    public void setHas_gift_bag(List<Object> has_gift_bag) {
+    public void setHas_gift_bag(List<GiftBagApp> has_gift_bag) {
         this.has_gift_bag = has_gift_bag;
     }
 

+ 10 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/GiftBagApp.java

@@ -12,6 +12,16 @@ public class GiftBagApp {
 
     private String code;
 
+    private boolean received;
+
+    public boolean isReceived() {
+        return received;
+    }
+
+    public void setReceived(boolean received) {
+        this.received = received;
+    }
+
     public void setGift_bag(GiftBag gift_bag){
         this.gift_bag = gift_bag;
     }

+ 64 - 5
app/src/main/java/com/sheep/gamegroup/model/entity/PlayGameEntity.java

@@ -1,11 +1,18 @@
 package com.sheep.gamegroup.model.entity;
 
+import android.text.TextUtils;
+
+import com.sheep.gamegroup.helper.FindAppHelper;
+import com.sheep.gamegroup.model.api.IDownload;
+
+import java.io.Serializable;
+
 /**
  * 玩转游戏
  * Created by ljy on 2018/9/3.
  */
 
-public class PlayGameEntity {
+public class PlayGameEntity implements IDownload, Serializable {
     private int Id;//integer($int64)
     private int IsHot;//integer($int64)是否近期最热 1是 2不是
 
@@ -40,7 +47,7 @@ public class PlayGameEntity {
 
     private String package_name;//string应用包名称
 
-    private float package_size;//number($float)包大小(M)
+    private String package_size;//number($float)包大小(M)
 
     private int package_type;//integer($int64)出包类型:1:快发出包 2:腾讯出包 3:小米出包 4:其它
 
@@ -153,6 +160,26 @@ public class PlayGameEntity {
         this.download_url = download_url;
     }
 
+    @Override
+    public String getPackage_names() {
+        return package_name;
+    }
+
+    @Override
+    public int getTask_type() {
+        return 0;
+    }
+
+    @Override
+    public String getDownload_link() {
+        return download_url;
+    }
+
+    @Override
+    public String getTask_name() {
+        return name;
+    }
+
     public String getIcon() {
         return icon;
     }
@@ -209,11 +236,16 @@ public class PlayGameEntity {
         this.package_name = package_name;
     }
 
-    public float getPackage_size() {
-        return package_size;
+    public String getPackage_size() {
+        return TextUtils.isEmpty(package_size)?"0":package_size;
+    }
+
+    @Override
+    public int getAcceptedTaskId() {
+        return Id;
     }
 
-    public void setPackage_size(float package_size) {
+    public void setPackage_size(String package_size) {
         this.package_size = package_size;
     }
 
@@ -312,4 +344,31 @@ public class PlayGameEntity {
     public void setVersions(String versions) {
         this.versions = versions;
     }
+    /**
+     * 是否可以下载
+     * @return
+     */
+    public boolean isCanDonload(){
+        return download == 1;//可以下载
+    }
+    /**
+     * 是否可以记录
+     * @return
+     */
+    public boolean isCanRecord() {
+        return record == 1;//1:可记录 其他:不可记录
+    }
+    private FindAppHelper findAppHelper = new FindAppHelper();
+
+    public FindAppHelper getFindAppHelper() {
+        return findAppHelper;
+    }
+
+    /**
+     * 更新下载状态
+     * @param status
+     */
+    public void updateState(int status) {
+        findAppHelper.updateState(status);
+    }
 }

+ 3 - 0
app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java

@@ -42,6 +42,7 @@ import com.sheep.gamegroup.model.entity.GameAccountEntity;
 import com.sheep.gamegroup.model.entity.HomeListEntity;
 import com.sheep.gamegroup.model.entity.NewbieTask;
 import com.sheep.gamegroup.model.entity.NewbieTaskRecord;
+import com.sheep.gamegroup.model.entity.PlayGameEntity;
 import com.sheep.gamegroup.model.entity.RouserArticlesEntity;
 import com.sheep.gamegroup.model.entity.SlideshowEty;
 import com.sheep.gamegroup.model.entity.TaskChild;
@@ -1633,6 +1634,8 @@ public class CommonUtil {
                     jsonObject.put("id", ((XiaomiGameEntity) items).getId());
                 } else if (items instanceof FindApp) {
                     jsonObject.put("id", ((FindApp) items).getId());
+                } else if(items instanceof PlayGameEntity){
+                    jsonObject.put("id", ((PlayGameEntity) items).getId());
                 }
 
                 ViewUtil.newInstance().showProgress((Activity) activity);

+ 9 - 0
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -57,6 +57,7 @@ import com.sheep.gamegroup.view.activity.ActMyWelfare;
 import com.sheep.gamegroup.view.activity.ActNewAboutUs;
 import com.sheep.gamegroup.view.activity.ActNewbieTaskList;
 import com.sheep.gamegroup.view.activity.ActNotice;
+import com.sheep.gamegroup.view.activity.ActPlayGameDetail;
 import com.sheep.gamegroup.view.activity.ActReservation;
 import com.sheep.gamegroup.view.activity.ActSearchGame;
 import com.sheep.gamegroup.view.activity.ActSetting;
@@ -1538,4 +1539,12 @@ public class Jump2View {
         intent.putExtra("type", type);
         activity.startActivity(intent);
     }
+    /**
+     * 每日必做、近期最热
+     */
+    public void goPlayGameDetail(Activity activity, int id){
+        Intent intent = new Intent(activity, ActPlayGameDetail.class);
+        intent.putExtra("id", id);
+        activity.startActivity(intent);
+    }
 }

+ 3 - 4
app/src/main/java/com/sheep/gamegroup/view/activity/ActGameCenter.java

@@ -29,11 +29,10 @@ public class ActGameCenter extends BaseActivity {
         activity = this;
         TitleBarUtils.getInstance()
                 .setTitleFinish(activity)
-                .setRightBotton(activity, "我的福利", 0, new View.OnClickListener() {
+                .setRightImgBotton(activity,  R.mipmap.search_black_img, new View.OnClickListener() {
                     @Override
-                    public void onClick(View v) {
-                        // 进入我的福利界面
-                        Jump2View.getInstance().goMyWelfare(activity);
+                    public void onClick(View view) {
+                        Jump2View.getInstance().goGameSearch(activity, null);
                     }
                 })
                 .addTabs(activity, act_game_center_vp,"玩转游戏", new FgtPlayGame(), "福利中心", new FgtWelfareCenter());

+ 277 - 27
app/src/main/java/com/sheep/gamegroup/view/activity/ActPlayGameDetail.java

@@ -1,35 +1,66 @@
 package com.sheep.gamegroup.view.activity;
 
+import android.app.Activity;
+import android.content.Intent;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
 import android.support.design.widget.AppBarLayout;
+import android.support.design.widget.TabLayout;
+import android.support.v4.view.ViewPager;
 import android.support.v7.widget.AppCompatRatingBar;
-import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
 import android.view.View;
+import android.view.ViewGroup;
 import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
+import com.arialyy.annotations.Download;
 import com.arialyy.aria.core.Aria;
+import com.arialyy.aria.core.download.DownloadTask;
+import com.kfzs.duanduan.event.BigEvent;
+import com.kfzs.duanduan.mine.GiftpackListAdapter;
+import com.kfzs.duanduan.services.DownloadTaskService;
 import com.kfzs.duanduan.utils.dlg.HelperUtils;
 import com.sheep.gamegroup.absBase.BaseActivity;
-import com.sheep.gamegroup.helper.ImageListHelper;
-import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.MyListview;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.GameEntity;
+import com.sheep.gamegroup.model.entity.PlayGameEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
+import com.sheep.gamegroup.util.GlideImageLoader;
+import com.sheep.gamegroup.util.TimeUtil;
 import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.gamegroup.view.fragment.FgtPlaGameGift;
+import com.sheep.gamegroup.view.fragment.FgtPlayGameDetail;
+import com.sheep.gamegroup.view.fragment.FgtPlayGameSon;
 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.TitleBarUtils;
-import com.tencent.smtt.sdk.WebView;
 
+import org.afinal.simplecache.ApiKey;
 import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
 
-import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
 
 import butterknife.BindView;
 import butterknife.ButterKnife;
+import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
+import rx.schedulers.Schedulers;
+
+import static android.content.Intent.ACTION_PACKAGE_ADDED;
+import static android.content.Intent.ACTION_PACKAGE_REMOVED;
 
 /**
  * Created by ljy on 2018/9/4.
@@ -38,12 +69,6 @@ import rx.functions.Action1;
 public class ActPlayGameDetail extends BaseActivity implements Action1<Integer> {
     @BindView(R.id.appbar_act_game_details)
     AppBarLayout appbarActGameDetails;
-    @BindView(R.id.find_game_list)
-    RecyclerView find_game_list;
-    @BindView(R.id.find_game_info_wv)
-    WebView findGameInfoWv;
-    @BindView(R.id.item_detail_listview)
-    MyListview itemDetailListview;
     @BindView(R.id.bottom_line_text)
     TextView bottomLineText;
     @BindView(R.id.bottom_line)
@@ -70,11 +95,28 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
     AppCompatRatingBar find_game_xin;
     @BindView(R.id.find_game_down_tv)
     TextView find_game_down_tv;
+    @BindView(R.id.viewpager_act_game_details)
+    ViewPager mViewPager;
+    @BindView(R.id.tabLayout)
+    TabLayout tabLayout;
+    @BindView(R.id.welfare_gift_layout)
+    LinearLayout welfare_gift_layout;
+    @BindView(R.id.welfare_tv)
+    TextView welfare_tv;
+    @BindView(R.id.gift_tv)
+    TextView gift_tv;
 
+    private Activity activity;
     private int id;
     private boolean mIsExpanded = false;//是否是折叠状态
-    private ArrayList<String> pictureList = ListUtil.emptyList();
-    private ImageListHelper imageListHelper = new ImageListHelper();
+
+    private GameEntity gameEntity;
+    private PlayGameEntity playGameEntity;
+    private boolean isNeedReservation = false;
+    private Map<String, TextView> downLoadTextViewMap = new HashMap<>();
+
+    private GiftpackListAdapter mAdapter;
+    private int curPosition = 0;
 
     @Override
     protected int getLayoutId() {
@@ -84,7 +126,7 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
     @Override
     public void initView() {
         id = getIntent().getIntExtra("id", 0);
-
+        activity = this;
         TitleBarUtils.getInstance()
                 .setTitle(this, "详情")
                 .setTitleFinish(this);
@@ -93,7 +135,7 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
 
         txt_baseactivity_title.setVisibility(View.INVISIBLE);//不显示标题栏
 
-        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, HelperUtils.BAR_HEIGH);
+        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 0);
         statusHeightView.setLayoutParams(params);
 
         appbarActGameDetails.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@@ -140,13 +182,13 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
                 layoutParams3.topMargin = /*Math.max(find_game_name_tv.getHeight() + 4 * topRow, */getResources().getDimensionPixelSize(R.dimen.find_game_top3) + verticalOffset/*)*/;
                 find_game_info_tv.setLayoutParams(layoutParams3);
                 //下载按钮位置变化
-                RelativeLayout.LayoutParams layoutParams4 = (RelativeLayout.LayoutParams) find_game_down_tv.getLayoutParams();
-                layoutParams4.setMarginEnd(Math.max(ibtn_baseactivity_right.getWidth(), (G.WIDTH - find_game_down_tv.getWidth()) / 2 + verticalOffset));
-                layoutParams4.topMargin = Math.max((titleHeight - find_game_down_tv.getHeight()) / 2, getResources().getDimensionPixelSize(R.dimen.find_game_top4) + verticalOffset);// Math.max(topRow, getResources().getDimensionPixelSize(R.dimen.find_game_top4) + verticalOffset);
-                find_game_down_tv.setLayoutParams(layoutParams4);
+                RelativeLayout.LayoutParams layoutParams4 = (RelativeLayout.LayoutParams) welfare_gift_layout.getLayoutParams();
+                layoutParams4.setMarginEnd(Math.max(ibtn_baseactivity_right.getWidth(), (G.WIDTH - welfare_gift_layout.getWidth()) / 2 + verticalOffset));
+                layoutParams4.topMargin = getResources().getDimensionPixelSize(R.dimen.find_game_top5) + verticalOffset;//Math.max((titleHeight - welfare_gift_layout.getHeight()) / 2, getResources().getDimensionPixelSize(R.dimen.find_game_top4) + verticalOffset);// Math.max(topRow, getResources().getDimensionPixelSize(R.dimen.find_game_top4) + verticalOffset);
+                welfare_gift_layout.setLayoutParams(layoutParams4);
                 //星级位置变化
                 RelativeLayout.LayoutParams layoutParams5 = (RelativeLayout.LayoutParams) find_game_xin.getLayoutParams();
-                layoutParams5.topMargin = getResources().getDimensionPixelSize(R.dimen.find_game_top5) + verticalOffset;
+                layoutParams5.topMargin = getResources().getDimensionPixelSize(R.dimen.find_game_top210) + verticalOffset;
                 find_game_xin.setLayoutParams(layoutParams5);
                 if (willTop == topRow/2) {
                     if (mIsExpanded) {
@@ -168,11 +210,22 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
             }
         });
 
-        imageListHelper.initList(this, find_game_list, pictureList);
+        //viewpaper
+        initViewPaper();
         resetData();
 
+        initData();
     }
 
+    private void initViewPaper() {
+        mAdapter = new GiftpackListAdapter(getSupportFragmentManager(), SheepApp.getInstance());
+        mAdapter.add(FgtPlayGameDetail.newInstance(gameEntity), "详情");
+        mAdapter.add(FgtPlaGameGift.newInstance(gameEntity), "礼包");
+        mViewPager.setAdapter(mAdapter);
+        tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
+        tabLayout.setupWithViewPager(mViewPager);
+        CommonUtil.getInstance().reflex(tabLayout, activity);
+    }
     private void resetData() {
         //游戏简介与下载
         ViewUtil.setText(find_game_name_tv);
@@ -189,9 +242,81 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
 
     @Override
     public void initData() {
+        GameEntity gameEntity = DataUtil.getInstance().getCacheResult(ApiKey.applications(id), GameEntity.class);
+        loadApp(gameEntity);
+
+        initDetailFromNet();
+    }
+
+    private void loadApp(GameEntity gameEntity) {
+        if (gameEntity != null) {
+            loadData(gameEntity);
+        } else {
+            resetData();
+        }
+    }
+
+    private void loadData(GameEntity gameEntity) {
+        this.gameEntity = gameEntity;
+        playGameEntity = gameEntity.getApp();
+        //游戏简介与下载
+        GlideImageLoader.setGameImage(find_game_iv, gameEntity.getApp().getIcon());
+        ViewUtil.setText(find_game_name_tv, gameEntity.getApp().getName());
+        isNeedReservation = !gameEntity.getApp().isCanDonload();//这里认为只有两种状态:可下载与预约下载
+        if (isNeedReservation)
+            ViewUtil.setText(find_game_info_tv, String.format(Locale.CHINA, "开放时间:%s", TimeUtil.TimeStamp2Date(gameEntity.getApp().getDownload_at(), "yyyy-MM-dd\u0020HH:mm")));
+        else {
+            String format = "包体大小 (%sM)";
+            ViewUtil.setText(find_game_info_tv, String.format(Locale.CHINA, format, gameEntity.getApp().getPackage_size()));
+        }
+
+        find_game_xin.setRating(gameEntity.getApp().getScore() / 2);
+
+        updateView(this, gameEntity.getApp(), find_game_down_tv);
 
     }
 
+    //更新按钮状态与添加点击事件
+    private void updateView(Activity activity, PlayGameEntity playGameEntity, TextView textView) {
+//        if(playGameEntity.getAvailable_receive() == 0 && playGameEntity.getReceive_account() == 0){//未领取账号
+//
+//            CommonUtil.getInstance()
+//                    .xiaomiRevieceAcctoun(find_game_down_tv, playGameEntity, activity);
+//        }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);
+        }
+    }
+
+
+    private void initDetailFromNet() {
+        showProgress();
+        SheepApp.getInstance().getNetComponent().getApiService().playGameDetail(id)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(this) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.playGameDetail(id));
+                        if(isNewData) {
+                            GameEntity gameEntity = baseMessage.getData(GameEntity.class);
+                            loadApp(gameEntity);
+                        }
+                        hideProgress();
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast(baseMessage);
+                        resetData();
+                        hideProgress();
+                    }
+                });
+    }
     @Override
     public void call(Integer integer) {
 
@@ -203,11 +328,136 @@ public class ActPlayGameDetail extends BaseActivity implements Action1<Integer>
         Aria.download(this).unRegister();
         EventBus.getDefault().unregister(this);
     }
+    //获取任务对应的TextView来更新进度
+    private TextView getTextViewByTask(DownloadTask task) {
+        return getTextViewByKey(task.getKey());
+    }
 
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        // TODO: add setContentView(...) invocation
-        ButterKnife.bind(this);
+    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("准备下载中");
+        }
+    }
+
+    @Download.onTaskStart
+    void taskStart(DownloadTask task) {
+        TextView textView = getTextViewByTask(task);
+        if (textView != null) {
+            textView.setText("开始下载中");
+        }
+    }
+
+    @Download.onTaskResume
+    void taskResume(DownloadTask task) {
+        TextView textView = getTextViewByTask(task);
+        if (textView != null) {
+            textView.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())));
+        }
+    }
+
+    @Download.onTaskStop
+    void taskStop(DownloadTask task) {
+        TextView textView = getTextViewByTask(task);
+        if (textView != null) {
+            textView.setText(CommonUtil.CONTINUE_DOWNLOAD);
+        }
+    }
+
+    @Download.onNoSupportBreakPoint
+    void onNoSupportBreakPoint(DownloadTask task) {
+    }
+
+    @Download.onTaskCancel
+    void taskCancel(DownloadTask task) {
+        TextView textView = getTextViewByTask(task);
+        if (textView != null) {
+            textView.setText("已经取消");
+        }
+    }
+
+    @Download.onTaskFail
+    void taskFail(DownloadTask task) {
+        TextView textView = getTextViewByTask(task);
+        if (textView != null) {
+            textView.setText(CommonUtil.FAIL_DOWNLOAD);
+        }
+    }
+
+    @Download.onTaskComplete
+    void taskComplete(DownloadTask task) {
+        TextView textView = getTextViewByTask(task);
+        if (textView != null) {
+            textView.setText(CommonUtil.START_INSTALL);
+        }
+        if (gameEntity != null && gameEntity.getApp() != null && TextUtils.equals(task.getKey(), gameEntity.getApp().getDownload_link()))
+            gameEntity.getApp().updateState(DownloadTaskService.STATUS_FINISH);
+    }
+
+    @Subscribe
+    public void onEventMainThread(Intent intent) {
+        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) {
+                switch (intent.getAction()) {
+                    case ACTION_PACKAGE_ADDED:
+                        textView.setText(CommonUtil.GAME_OPEN);
+                        break;
+                    case ACTION_PACKAGE_REMOVED:
+                        String path = PackageUtil.isExistsFile(packageName);
+                        if (TextUtils.isEmpty(path)) {
+                            textView.setText(CommonUtil.START_DOWNLOAD);
+                        } else {
+                            textView.setText(CommonUtil.START_INSTALL);
+                        }
+                        break;
+                }
+            }
+
+            if (playGameEntity != null && TextUtils.equals(packageName, playGameEntity.getPackage_names())) {
+                switch (intent.getAction()) {
+                    case ACTION_PACKAGE_ADDED:
+                        playGameEntity.updateState(DownloadTaskService.STATUS_INSTALLED);
+                        break;
+                    case ACTION_PACKAGE_REMOVED:
+                        String path = PackageUtil.isExistsFile(packageName);
+                        if (TextUtils.isEmpty(path)) {
+                            playGameEntity.updateState(DownloadTaskService.STATUS_INIT);
+                        } else {
+                            playGameEntity.updateState(DownloadTaskService.STATUS_FINISH);
+                        }
+                        break;
+                }
+            }
+        }
+    }
+
+    @Subscribe
+    public void onEventMainThread(BigEvent event) {
+        switch (event.getEventTypes()){
+            case REFRESH_XIAOMI_GAME_LIST:
+                initData();
+                break;
+        }
     }
 }

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

@@ -1,5 +1,6 @@
 package com.sheep.gamegroup.view.adapter;
 
+import android.app.Activity;
 import android.content.Context;
 import android.view.View;
 import android.widget.ImageView;
@@ -8,6 +9,7 @@ import android.widget.TextView;
 import com.sheep.gamegroup.model.entity.GameEntity;
 import com.sheep.gamegroup.model.entity.PlayGameEntity;
 import com.sheep.gamegroup.util.GlideImageLoader;
+import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ViewHolder;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
@@ -18,14 +20,11 @@ import java.util.List;
  * Created by ljy on 2018/9/3.
  */
 
-public class PlayGameItemAdapter extends AdbCommonRecycler<GameEntity> implements View.OnClickListener {
+public class PlayGameItemAdapter extends AdbCommonRecycler<GameEntity>{
+    private Context activity;
     public PlayGameItemAdapter(Context context, List<GameEntity> list) {
         super(context, list);
-    }
-
-    @Override
-    public void onClick(View v) {
-
+        activity = context;
     }
 
     @Override
@@ -34,8 +33,13 @@ public class PlayGameItemAdapter extends AdbCommonRecycler<GameEntity> implement
     }
 
     @Override
-    public void convert(ViewHolder holder, GameEntity gameEntity) {
-        holder.itemView.setOnClickListener(this);
+    public void convert(ViewHolder holder, final GameEntity gameEntity) {
+        holder.itemView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Jump2View.getInstance().goPlayGameDetail((Activity) activity, gameEntity.getApp().getId());
+            }
+        });
         View item_download_welfare_line = holder.itemView.findViewById(R.id.line_tv);
         View detail_task_tv_center = holder.itemView.findViewById(R.id.detail_task_tv_center);
         TextView item_name_tv = holder.itemView.findViewById(R.id.item_name_tv);

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

@@ -184,4 +184,6 @@ public abstract class BaseListFragment<T> extends BaseFragment {
     protected abstract String getKey(int page, int per_page);
     protected abstract Observable<BaseMessage> getApi(ApiService apiService);
     protected abstract Class<T> getTClass();
+
+    public abstract void notifyData();
 }

+ 5 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtDownloadWelfareList.java

@@ -66,4 +66,9 @@ public class FgtDownloadWelfareList extends BaseListFragment<TaskReleaseEty> imp
     protected Class<TaskReleaseEty> getTClass() {
         return TaskReleaseEty.class;
     }
+
+    @Override
+    public void notifyData() {
+
+    }
 }

+ 5 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtGiftCenter.java

@@ -67,4 +67,9 @@ public class FgtGiftCenter extends BaseListFragment<GiftBagApp> implements Actio
     protected Class<GiftBagApp> getTClass() {
         return GiftBagApp.class;
     }
+
+    @Override
+    public void notifyData() {
+
+    }
 }

+ 5 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMyDownloadWelfareList.java

@@ -67,4 +67,9 @@ public class FgtMyDownloadWelfareList extends BaseListFragment<TaskReleaseEty> i
     protected Class<TaskReleaseEty> getTClass() {
         return TaskReleaseEty.class;
     }
+
+    @Override
+    public void notifyData() {
+
+    }
 }

+ 5 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMyGift.java

@@ -69,4 +69,9 @@ public class FgtMyGift extends BaseListFragment<GiftBagApp> implements Action1<I
         return GiftBagApp.class;
     }
 
+    @Override
+    public void notifyData() {
+
+    }
+
 }

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

@@ -0,0 +1,110 @@
+package com.sheep.gamegroup.view.fragment;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.sheep.gamegroup.model.entity.GameEntity;
+import com.sheep.gamegroup.model.entity.GiftBagApp;
+import com.sheep.gamegroup.util.GlideImageLoader;
+import com.sheep.gamegroup.util.ViewHolder;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.Unbinder;
+
+/**
+ * Created by ljy on 2018/9/4.
+ */
+
+public class FgtPlaGameGift extends BaseFragment {
+    @BindView(R.id.recyclerview_list)
+    RecyclerView recyclerviewList;
+    Unbinder unbinder;
+
+    private Activity activity;
+    private GameEntity gameEntity;
+    private List<GiftBagApp> has_gift_bag = new ArrayList<>();
+
+    public static FgtPlayGameDetail newInstance(GameEntity gameEntity){
+        FgtPlayGameDetail fgt = new FgtPlayGameDetail();
+        Bundle bundle = new Bundle();
+        bundle.putSerializable("game_entitiy", gameEntity);
+        fgt.setArguments(bundle);
+        return fgt;
+    }
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.recyclerview_layout;
+    }
+
+    @Override
+    public void onViewCreated() {
+        if(gameEntity == null)
+            return;
+        has_gift_bag.clear();
+        has_gift_bag.addAll(gameEntity.getHas_gift_bag());
+
+        activity = getActivity();
+        recyclerviewList.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
+        recyclerviewList.setAdapter(new AdbCommonRecycler<GiftBagApp>(SheepApp.mContext, has_gift_bag) {
+            @Override
+            public int getViewIdByType(int type) {
+                return R.layout.fgt_playgame_gift_item;
+            }
+
+            @Override
+            public void convert(ViewHolder holder, 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());
+
+                TextView btn_tv = holder.getView(R.id.btn_tv);
+
+                if (giftBagApp.isReceived()){
+                    btn_tv.setText("领取");
+
+                }else {
+                    btn_tv.setText("已领取");
+                }
+                btn_tv.setEnabled(false);
+                holder.getView(R.id.line_tv).setVisibility(holder.getAdapterPosition() + 1 == getItemCount() ? View.GONE : View.VISIBLE);
+            }
+        });
+
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+        // TODO: inflate a fragment view
+        View rootView = super.onCreateView(inflater, container, savedInstanceState);
+        unbinder = ButterKnife.bind(this, rootView);
+        Bundle bundle = getArguments();
+        if(bundle != null){
+            gameEntity = (GameEntity) bundle.getSerializable("game_entitiy");
+        }
+        return rootView;
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        unbinder.unbind();
+    }
+}

+ 21 - 3
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGame.java

@@ -20,6 +20,7 @@ import android.widget.TextView;
 
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
+import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.mine.GiftpackListAdapter;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.FindTag;
@@ -44,6 +45,8 @@ import com.youth.banner.listener.OnBannerListener;
 import com.youth.banner.loader.ImageLoader;
 
 import org.afinal.simplecache.ApiKey;
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -124,6 +127,7 @@ public class FgtPlayGame extends BaseFragment {
     @Override
     public void onViewCreated() {
         activity = getActivity();
+        EventBus.getDefault().register(this);
 
         //banner
         LinearLayout.LayoutParams bannerLayoutParams = (LinearLayout.LayoutParams) banner.getLayoutParams();
@@ -192,14 +196,13 @@ public class FgtPlayGame extends BaseFragment {
 
         //tab
         initTab();
-        initData();
     }
 
-    private void onClickToPlayGameDetail(View view, GameEntity playGameEntity){
+    private void onClickToPlayGameDetail(View view, final GameEntity playGameEntity){
         view.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-//                Jump2View.getInstance().goFindInformation(activity, null);
+                Jump2View.getInstance().goPlayGameDetail(activity, playGameEntity.getApp().getId());
             }
         });
     }
@@ -402,4 +405,19 @@ public class FgtPlayGame extends BaseFragment {
                 break;
         }
     }
+    @Subscribe
+    public void onEventMainThread(BigEvent event) {
+        switch (event.getEventTypes()) {
+            case FGT_PLAYGAME_REFRESH_H:
+                mHandler.sendEmptyMessage(WHAT_UPDATE_VP_HEIGHT);
+                break;
+        }
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+
+        EventBus.getDefault().unregister(this);
+    }
 }

+ 96 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGameDetail.java

@@ -0,0 +1,96 @@
+package com.sheep.gamegroup.view.fragment;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.sheep.gamegroup.helper.ImageListHelper;
+import com.sheep.gamegroup.model.entity.GameEntity;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.MyListview;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+import com.tencent.smtt.sdk.WebView;
+
+import java.util.ArrayList;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.Unbinder;
+
+/**
+ * 玩转游戏 详情
+ * Created by ljy on 2018/9/4.
+ */
+
+public class FgtPlayGameDetail extends BaseFragment {
+    @BindView(R.id.find_game_list)
+    RecyclerView find_game_list;
+    @BindView(R.id.find_game_info_wv)
+    WebView find_game_info_wv;
+    @BindView(R.id.item_detail_listview)
+    MyListview item_detail_listview;
+    Unbinder unbinder;
+
+    private ArrayList<String> pictureList = ListUtil.emptyList();
+    private ImageListHelper imageListHelper = new ImageListHelper();
+    private Activity activity;
+    private GameEntity gameEntity;
+
+    public static FgtPlayGameDetail newInstance(GameEntity gameEntity){
+        FgtPlayGameDetail fgt = new FgtPlayGameDetail();
+        Bundle bundle = new Bundle();
+        bundle.putSerializable("game_entitiy", gameEntity);
+        fgt.setArguments(bundle);
+        return fgt;
+    }
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.item_play_game_detail;
+    }
+
+    @Override
+    public void onViewCreated() {
+        activity = getActivity();
+        imageListHelper.initList(activity, find_game_list, pictureList);
+
+        if(gameEntity == null || gameEntity.getApp() == null)
+            return;
+
+        //游戏图片banner
+        String pictures = gameEntity.getApp().getPictures();
+        if (!TextUtils.isEmpty(pictures) && pictures.contains(";")) {
+            pictureList.clear();
+            ListUtil.addAll(pictureList, pictures.split(";"));
+            find_game_list.setVisibility(View.VISIBLE);
+            imageListHelper.notifyDataSetChanged();
+        } else {
+            find_game_list.setVisibility(View.GONE);
+        }
+        ViewUtil.loadDataWithBaseURL(find_game_info_wv, gameEntity.getApp().getIntro());
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+        // TODO: inflate a fragment view
+        View rootView = super.onCreateView(inflater, container, savedInstanceState);
+        unbinder = ButterKnife.bind(this, rootView);
+        Bundle bundle = getArguments();
+        if(bundle != null){
+            gameEntity = (GameEntity) bundle.getSerializable("game_entitiy");
+        }
+        return rootView;
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        unbinder.unbind();
+    }
+}

+ 9 - 1
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGameSon.java

@@ -6,12 +6,15 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+import com.kfzs.duanduan.event.BigEvent;
+import com.kfzs.duanduan.event.EventTypes;
 import com.sheep.gamegroup.model.api.ApiService;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.GameEntity;
-import com.sheep.gamegroup.model.entity.PlayGameEntity;
 import com.sheep.gamegroup.view.adapter.PlayGameItemAdapter;
 
+import org.greenrobot.eventbus.EventBus;
+
 import java.util.Locale;
 
 import butterknife.ButterKnife;
@@ -64,4 +67,9 @@ public class FgtPlayGameSon extends BaseListFragment<GameEntity> {
         return GameEntity.class;
     }
 
+    @Override
+    public void notifyData() {
+        EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_PLAYGAME_REFRESH_H));
+    }
+
 }

+ 5 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtWelfareUseRecord.java

@@ -67,4 +67,9 @@ public class FgtWelfareUseRecord extends BaseListFragment<TaskReleaseEty> implem
     protected Class<TaskReleaseEty> getTClass() {
         return TaskReleaseEty.class;
     }
+
+    @Override
+    public void notifyData() {
+
+    }
 }

+ 34 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/utils/TitleBarUtils.java

@@ -15,6 +15,7 @@ import android.widget.TextView;
 import com.kfzs.duanduan.mine.GiftpackListAdapter;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.view.adapter.AdpTryMakemoney;
 import com.sheep.gamegroup.view.fragment.FgtTryMakeMoney;
 import com.sheep.gamegroup.view.fragment.FgtWelfareCenter;
@@ -380,7 +381,7 @@ public class TitleBarUtils {
         return this;
     }
 
-    public TitleBarUtils addTabs(BaseActivity activity, ViewPager viewPager, String tab1, Fragment fragment1, String tab2, Fragment fragment2) {
+    public TitleBarUtils addTabs(final BaseActivity activity, ViewPager viewPager, String tab1, Fragment fragment1, String tab2, Fragment fragment2) {
         //设置标题不可见
         TextView titleView = activity.findViewById(R.id.txt_baseactivity_title);
         titleView.setVisibility(View.GONE);
@@ -397,6 +398,38 @@ public class TitleBarUtils {
 
         tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager));
         tabLayout.setupWithViewPager(viewPager);
+        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+            @Override
+            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+            }
+
+            @Override
+            public void onPageSelected(int position) {
+                if(position == 0){
+                    setRightImgBotton(activity,  R.mipmap.search_black_img, new View.OnClickListener() {
+                        @Override
+                        public void onClick(View view) {
+                            Jump2View.getInstance().goGameSearch(activity, null);
+                        }
+                    });
+                }else {
+                    setRightBotton(activity, "我的福利", 0, new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            // 进入我的福利界面
+                            Jump2View.getInstance().goMyWelfare(activity);
+                        }
+                    });
+                }
+
+            }
+
+            @Override
+            public void onPageScrollStateChanged(int state) {
+
+            }
+        });
 //        CommonUtil.getInstance().reflex(tabLayout, activity);
         return this;
     }

+ 4 - 0
app/src/main/java/org/afinal/simplecache/ApiKey.java

@@ -89,5 +89,9 @@ public class ApiKey {
     public static String awakenApp(){
         return "app/awaken/article";
     }
+    //发现模块游戏或应用详情
+    public static String playGameDetail(int id){
+        return "app/find?id="+id;
+    }
 
 }

+ 48 - 123
app/src/main/res/layout/act_play_game_detail_layout.xml

@@ -37,122 +37,9 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:orientation="vertical">
+                <!--选项卡-->
+                <include layout="@layout/tablayout_viewpager_layout" />
 
-                <android.support.v7.widget.RecyclerView
-                    android:id="@+id/find_game_list"
-                    android:layout_width="match_parent"
-                    android:layout_height="200dp"
-                    android:layout_marginTop="@dimen/dp_10"
-                    android:layout_marginBottom="@dimen/dp_10"/>
-
-                <LinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:orientation="vertical"
-                    android:layout_margin="@dimen/dp_10"
-                    android:padding="@dimen/content_padding_20"
-                    android:background="@drawable/x_shap_shadow_bg_rectgangle_white">
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:gravity="center_vertical"
-                        android:orientation="horizontal">
-
-                        <View
-                            android:layout_width="5dp"
-                            android:layout_height="16dp"
-                            android:background="#2FBCF1" />
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginStart="3dp"
-                            android:text="游戏介绍"
-                            android:textColor="@color/black_6_3"
-                            android:textSize="15sp" />
-
-                    </LinearLayout>
-                    <com.tencent.smtt.sdk.WebView
-                        android:id="@+id/find_game_info_wv"
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_marginTop="@dimen/dp_10"/>
-                </LinearLayout>
-
-                <LinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:orientation="vertical"
-                    android:layout_margin="@dimen/dp_10"
-                    android:padding="@dimen/content_padding_20"
-                    android:background="@drawable/x_shap_shadow_bg_rectgangle_white">
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:gravity="center_vertical"
-                        android:orientation="horizontal">
-
-                        <View
-                            android:layout_width="5dp"
-                            android:layout_height="16dp"
-                            android:background="#2FBCF1" />
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginStart="3dp"
-                            android:text="奖励领取步骤"
-                            android:textColor="@color/black_6_3"
-                            android:textSize="15sp" />
-
-                    </LinearLayout>
-
-                    <com.sheep.gamegroup.util.MyListview
-                        android:id="@+id/item_detail_listview"
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_marginBottom="@dimen/content_padding_15"
-                        android:layout_marginStart="@dimen/content_padding_15"
-                        android:divider="@null"
-                        android:listSelector="@color/transparent"
-                        android:scrollbars="none" />
-                </LinearLayout>
-
-                <LinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:orientation="vertical"
-                    android:layout_margin="@dimen/dp_10"
-                    android:padding="@dimen/content_padding_20"
-                    android:background="@drawable/x_shap_shadow_bg_rectgangle_white">
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:gravity="center_vertical"
-                        android:orientation="horizontal">
-
-                        <View
-                            android:layout_width="5dp"
-                            android:layout_height="16dp"
-                            android:background="#2FBCF1" />
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginStart="3dp"
-                            android:text="福利剩余数量"
-                            android:textColor="@color/black_6_3"
-                            android:textSize="15sp" />
-
-                    </LinearLayout>
-
-                    <TextView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="进度条"/>
-
-
-                </LinearLayout>
                 <include layout="@layout/find_item_bottom"/>
             </LinearLayout>
         </android.support.v4.widget.NestedScrollView>
@@ -161,7 +48,7 @@
     <View
         android:id="@+id/status_height_view"
         android:layout_width="match_parent"
-        android:layout_height="@dimen/status_bar_height" />
+        android:layout_height="0dp" />
 
     <RelativeLayout
         android:layout_width="match_parent"
@@ -212,7 +99,8 @@
             android:paddingStart="@dimen/content_padding"
             android:background="@color/translate"
             android:src="@mipmap/share"
-            android:gravity="center"/>
+            android:gravity="center"
+            android:visibility="invisible"/>
     </RelativeLayout>
 
     <ImageView
@@ -233,11 +121,18 @@
         android:textColor="@color/title"
         android:textSize="16sp" />
 
+    <LinearLayout
+        android:id="@+id/ll_game_tag"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/find_game_top3"
+        android:orientation="horizontal"/>
+
     <TextView
         android:id="@+id/find_game_info_tv"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginTop="@dimen/find_game_top3"
+        android:layout_marginTop="190dp"
         android:layout_below="@+id/status_height_view"
         android:gravity="center"
         android:text="厂商:网易 | 版本号:7.9"
@@ -248,17 +143,47 @@
         android:id="@+id/find_game_xin"
         style="@style/style_rating_bar"
         android:layout_width="wrap_content"
-        android:layout_marginTop="@dimen/find_game_top5"
+        android:layout_marginTop="@dimen/find_game_top210"
         android:layout_centerHorizontal="true"
         android:isIndicator="true"
         android:numStars="5"
         android:rating="1.5"
         android:stepSize="0.5" />
+
+    <LinearLayout
+        android:id="@+id/welfare_gift_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerHorizontal="true"
+        android:layout_marginTop="@dimen/find_game_top6"
+        android:layout_below="@+id/status_height_view"
+        android:orientation="horizontal">
+        <TextView
+            android:id="@+id/welfare_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:padding="@dimen/content_padding_3"
+            android:background="@mipmap/welfare_gift_img_bg"
+            android:text="123"
+            android:textSize="10sp"
+            android:textColor="@color/white"/>
+        <TextView
+            android:id="@+id/gift_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:padding="@dimen/content_padding_3"
+            android:background="@mipmap/welfare_gift_img_bg"
+            android:text="123"
+            android:textSize="10sp"
+            android:layout_marginStart="@dimen/content_padding_15"
+            android:textColor="@color/white"/>
+    </LinearLayout>
     <TextView
         android:id="@+id/find_game_down_tv"
-        style="@style/style_button_find"
-        android:layout_marginTop="@dimen/find_game_top4"
-        android:layout_below="@+id/status_height_view"
-        android:layout_alignParentEnd="true"
+        style="@style/style_button"
+        android:layout_centerInParent="true"
+        android:layout_alignParentBottom="true"
         android:text="下载" />
 </RelativeLayout>

+ 50 - 0
app/src/main/res/layout/fgt_playgame_gift_item.xml

@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:padding="@dimen/content_padding_15">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+
+        <TextView
+            android:id="@+id/name_tv"
+            android:layout_width="0dp"
+            android:layout_weight="2"
+            android:layout_height="wrap_content"
+            android:text="充值福利300元"
+            android:textColor="#666666"
+            android:textSize="13sp" />
+
+        <TextView
+            android:id="@+id/num_tv"
+            android:layout_width="0dp"
+            android:layout_weight="2"
+            android:layout_height="wrap_content"
+            android:text="剩余500份"
+            android:textColor="#666666"
+            android:textSize="13sp" />
+
+        <TextView
+            android:id="@+id/btn_tv"
+            android:layout_width="0dp"
+            android:layout_weight="1"
+            android:layout_height="wrap_content"
+            android:text="下载领取"
+            android:textColor="#666666"
+            android:textSize="13sp"
+            android:gravity="center" />
+
+    </LinearLayout>
+
+    <View
+        android:id="@+id/line_tv"
+        android:layout_width="match_parent"
+        android:layout_height="0.5dp"
+        android:background="@color/gray_F0F0F0"
+        android:layout_marginTop="@dimen/content_padding_15"
+        android:layout_gravity="bottom" />
+</LinearLayout>

+ 122 - 0
app/src/main/res/layout/item_play_game_detail.xml

@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+        <android.support.v7.widget.RecyclerView
+            android:id="@+id/find_game_list"
+            android:layout_width="match_parent"
+            android:layout_height="200dp"
+            android:layout_marginTop="@dimen/dp_10"
+            android:layout_marginBottom="@dimen/dp_10"/>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical"
+            android:layout_margin="@dimen/dp_10"
+            android:padding="@dimen/content_padding_20"
+            android:background="@drawable/x_shap_shadow_bg_rectgangle_white">
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center_vertical"
+                android:orientation="horizontal">
+
+                <View
+                    android:layout_width="5dp"
+                    android:layout_height="16dp"
+                    android:background="#2FBCF1" />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="3dp"
+                    android:text="游戏介绍"
+                    android:textColor="@color/black_6_3"
+                    android:textSize="15sp" />
+
+            </LinearLayout>
+            <com.tencent.smtt.sdk.WebView
+                android:id="@+id/find_game_info_wv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/dp_10"/>
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical"
+            android:layout_margin="@dimen/dp_10"
+            android:padding="@dimen/content_padding_20"
+            android:background="@drawable/x_shap_shadow_bg_rectgangle_white">
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center_vertical"
+                android:orientation="horizontal">
+
+                <View
+                    android:layout_width="5dp"
+                    android:layout_height="16dp"
+                    android:background="#2FBCF1" />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="3dp"
+                    android:text="奖励领取步骤"
+                    android:textColor="@color/black_6_3"
+                    android:textSize="15sp" />
+
+            </LinearLayout>
+
+            <com.sheep.gamegroup.util.MyListview
+                android:id="@+id/item_detail_listview"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="@dimen/content_padding_15"
+                android:layout_marginStart="@dimen/content_padding_15"
+                android:divider="@null"
+                android:listSelector="@color/transparent"
+                android:scrollbars="none" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical"
+            android:layout_margin="@dimen/dp_10"
+            android:padding="@dimen/content_padding_20"
+            android:background="@drawable/x_shap_shadow_bg_rectgangle_white">
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center_vertical"
+                android:orientation="horizontal">
+
+                <View
+                    android:layout_width="5dp"
+                    android:layout_height="16dp"
+                    android:background="#2FBCF1" />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="3dp"
+                    android:text="福利剩余数量"
+                    android:textColor="@color/black_6_3"
+                    android:textSize="15sp" />
+
+            </LinearLayout>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="进度条"/>
+
+
+        </LinearLayout>
+</LinearLayout>

BIN
app/src/main/res/mipmap-xxhdpi/welfare_gift_img_bg.png


+ 2 - 0
app/src/main/res/values/common.xml

@@ -98,6 +98,8 @@
     <dimen name="find_game_top">68dp</dimen>
     <dimen name="find_game_top2">144dp</dimen>
     <dimen name="find_game_top3">172dp</dimen>
+    <dimen name="find_game_top210">210dp</dimen>
     <dimen name="find_game_top4">230dp</dimen>
     <dimen name="find_game_top5">228dp</dimen>
+    <dimen name="find_game_top6">234dp</dimen>
 </resources>