Bläddra i källkod

修改游戏首页界面

zengjiebin 7 år sedan
förälder
incheckning
2b82a927d1
29 ändrade filer med 1787 tillägg och 643 borttagningar
  1. 3 0
      .idea/gradle.xml
  2. 5 0
      app/src/main/AndroidManifest.xml
  3. 15 15
      app/src/main/java/com/sheep/gamegroup/greendao/download/DaoMaster.java
  4. 61 61
      app/src/main/java/com/sheep/gamegroup/greendao/download/DaoSession.java
  5. 44 0
      app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java
  6. 11 0
      app/src/main/java/com/sheep/gamegroup/model/entity/GameListType.java
  7. 36 0
      app/src/main/java/com/sheep/gamegroup/module/game/activity/ActGameGroupMore.java
  8. 115 0
      app/src/main/java/com/sheep/gamegroup/module/game/fragment/FgtGameCenter.java
  9. 154 0
      app/src/main/java/com/sheep/gamegroup/module/game/fragment/FgtGameGroupMore.java
  10. 266 0
      app/src/main/java/com/sheep/gamegroup/module/game/fragment/FgtPlayGame.java
  11. 89 0
      app/src/main/java/com/sheep/gamegroup/module/game/model/AppForGameCenter.java
  12. 9 0
      app/src/main/java/com/sheep/gamegroup/module/game/model/GameCenterType.java
  13. 111 0
      app/src/main/java/com/sheep/gamegroup/module/game/model/GameGroup.java
  14. 60 0
      app/src/main/java/com/sheep/gamegroup/module/game/model/PackageTypes.java
  15. 43 0
      app/src/main/java/com/sheep/gamegroup/module/game/model/SearchResp.java
  16. 2 1
      app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
  17. 1 1
      app/src/main/java/com/sheep/gamegroup/util/MainTab.java
  18. 1 15
      app/src/main/java/com/sheep/gamegroup/view/activity/ActGameCenter.java
  19. 3 6
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGameCenter3_3List.java
  20. 115 115
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtGameCenter.java
  21. 429 429
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGame.java
  22. 8 0
      app/src/main/res/drawable/shape_gradient_4193f3_83e1ff.xml
  23. 8 0
      app/src/main/res/drawable/shape_gradient_4cddee_c3eefb.xml
  24. 8 0
      app/src/main/res/drawable/shape_gradient_9d57fb_ce98ff.xml
  25. 8 0
      app/src/main/res/drawable/shape_gradient_ff7a6b_ff9e72.xml
  26. 30 0
      app/src/main/res/layout/fgt_game_group_more.xml
  27. 1 0
      app/src/main/res/layout/fgt_play_game.xml
  28. 128 0
      app/src/main/res/layout/include_game_group_type.xml
  29. 23 0
      app/src/main/res/values/dd_styles.xml

+ 3 - 0
.idea/gradle.xml

@@ -3,6 +3,9 @@
   <component name="GradleSettings">
     <option name="linkedExternalProjectsSettings">
       <GradleProjectSettings>
+        <compositeConfiguration>
+          <compositeBuild compositeDefinitionSource="SCRIPT" />
+        </compositeConfiguration>
         <option name="distributionType" value="DEFAULT_WRAPPED" />
         <option name="externalProjectPath" value="$PROJECT_DIR$" />
         <option name="modules">

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

@@ -934,6 +934,11 @@
             android:name="com.sheep.gamegroup.module.game.activity.ActMyGameList"
             android:theme="@style/AppActionTheme"
             android:screenOrientation="portrait" />
+        <!-- 小绵羊3.4.10 新增界面 -->
+        <activity
+            android:name="com.sheep.gamegroup.module.game.activity.ActGameGroupMore"
+            android:theme="@style/AppActionTheme"
+            android:screenOrientation="portrait" />
     </application>
 
 </manifest>

+ 15 - 15
app/src/main/java/com/sheep/gamegroup/greendao/download/DaoMaster.java

@@ -21,26 +21,26 @@ public class DaoMaster extends AbstractDaoMaster {
 
     /** Creates underlying database table using DAOs. */
     public static void createAllTables(Database db, boolean ifNotExists) {
-        ProcessRecordDao.createTable(db, ifNotExists);
-        AppdownloadBeanDao.createTable(db, ifNotExists);
-        SdkLoginUserDao.createTable(db, ifNotExists);
-        ScreenShotRecordDao.createTable(db, ifNotExists);
         AcceptTaskRecordDao.createTable(db, ifNotExists);
         AccountDao.createTable(db, ifNotExists);
-        SearchRecordDao.createTable(db, ifNotExists);
+        AppdownloadBeanDao.createTable(db, ifNotExists);
         DownLoadInfoDao.createTable(db, ifNotExists);
+        ProcessRecordDao.createTable(db, ifNotExists);
+        ScreenShotRecordDao.createTable(db, ifNotExists);
+        SdkLoginUserDao.createTable(db, ifNotExists);
+        SearchRecordDao.createTable(db, ifNotExists);
     }
 
     /** Drops underlying database table using DAOs. */
     public static void dropAllTables(Database db, boolean ifExists) {
-        ProcessRecordDao.dropTable(db, ifExists);
-        AppdownloadBeanDao.dropTable(db, ifExists);
-        SdkLoginUserDao.dropTable(db, ifExists);
-        ScreenShotRecordDao.dropTable(db, ifExists);
         AcceptTaskRecordDao.dropTable(db, ifExists);
         AccountDao.dropTable(db, ifExists);
-        SearchRecordDao.dropTable(db, ifExists);
+        AppdownloadBeanDao.dropTable(db, ifExists);
         DownLoadInfoDao.dropTable(db, ifExists);
+        ProcessRecordDao.dropTable(db, ifExists);
+        ScreenShotRecordDao.dropTable(db, ifExists);
+        SdkLoginUserDao.dropTable(db, ifExists);
+        SearchRecordDao.dropTable(db, ifExists);
     }
 
     /**
@@ -59,14 +59,14 @@ public class DaoMaster extends AbstractDaoMaster {
 
     public DaoMaster(Database db) {
         super(db, SCHEMA_VERSION);
-        registerDaoClass(ProcessRecordDao.class);
-        registerDaoClass(AppdownloadBeanDao.class);
-        registerDaoClass(SdkLoginUserDao.class);
-        registerDaoClass(ScreenShotRecordDao.class);
         registerDaoClass(AcceptTaskRecordDao.class);
         registerDaoClass(AccountDao.class);
-        registerDaoClass(SearchRecordDao.class);
+        registerDaoClass(AppdownloadBeanDao.class);
         registerDaoClass(DownLoadInfoDao.class);
+        registerDaoClass(ProcessRecordDao.class);
+        registerDaoClass(ScreenShotRecordDao.class);
+        registerDaoClass(SdkLoginUserDao.class);
+        registerDaoClass(SearchRecordDao.class);
     }
 
     public DaoSession newSession() {

+ 61 - 61
app/src/main/java/com/sheep/gamegroup/greendao/download/DaoSession.java

@@ -8,23 +8,23 @@ import org.greenrobot.greendao.database.Database;
 import org.greenrobot.greendao.identityscope.IdentityScopeType;
 import org.greenrobot.greendao.internal.DaoConfig;
 
-import com.sheep.gamegroup.greendao.download.ProcessRecord;
-import com.sheep.gamegroup.greendao.download.AppdownloadBean;
-import com.sheep.gamegroup.greendao.download.SdkLoginUser;
-import com.sheep.gamegroup.greendao.download.ScreenShotRecord;
 import com.sheep.gamegroup.greendao.download.AcceptTaskRecord;
 import com.sheep.gamegroup.greendao.download.Account;
-import com.sheep.gamegroup.greendao.download.SearchRecord;
+import com.sheep.gamegroup.greendao.download.AppdownloadBean;
 import com.sheep.gamegroup.greendao.download.DownLoadInfo;
+import com.sheep.gamegroup.greendao.download.ProcessRecord;
+import com.sheep.gamegroup.greendao.download.ScreenShotRecord;
+import com.sheep.gamegroup.greendao.download.SdkLoginUser;
+import com.sheep.gamegroup.greendao.download.SearchRecord;
 
-import com.sheep.gamegroup.greendao.download.ProcessRecordDao;
-import com.sheep.gamegroup.greendao.download.AppdownloadBeanDao;
-import com.sheep.gamegroup.greendao.download.SdkLoginUserDao;
-import com.sheep.gamegroup.greendao.download.ScreenShotRecordDao;
 import com.sheep.gamegroup.greendao.download.AcceptTaskRecordDao;
 import com.sheep.gamegroup.greendao.download.AccountDao;
-import com.sheep.gamegroup.greendao.download.SearchRecordDao;
+import com.sheep.gamegroup.greendao.download.AppdownloadBeanDao;
 import com.sheep.gamegroup.greendao.download.DownLoadInfoDao;
+import com.sheep.gamegroup.greendao.download.ProcessRecordDao;
+import com.sheep.gamegroup.greendao.download.ScreenShotRecordDao;
+import com.sheep.gamegroup.greendao.download.SdkLoginUserDao;
+import com.sheep.gamegroup.greendao.download.SearchRecordDao;
 
 // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
 
@@ -35,112 +35,112 @@ import com.sheep.gamegroup.greendao.download.DownLoadInfoDao;
  */
 public class DaoSession extends AbstractDaoSession {
 
-    private final DaoConfig processRecordDaoConfig;
-    private final DaoConfig appdownloadBeanDaoConfig;
-    private final DaoConfig sdkLoginUserDaoConfig;
-    private final DaoConfig screenShotRecordDaoConfig;
     private final DaoConfig acceptTaskRecordDaoConfig;
     private final DaoConfig accountDaoConfig;
-    private final DaoConfig searchRecordDaoConfig;
+    private final DaoConfig appdownloadBeanDaoConfig;
     private final DaoConfig downLoadInfoDaoConfig;
+    private final DaoConfig processRecordDaoConfig;
+    private final DaoConfig screenShotRecordDaoConfig;
+    private final DaoConfig sdkLoginUserDaoConfig;
+    private final DaoConfig searchRecordDaoConfig;
 
-    private final ProcessRecordDao processRecordDao;
-    private final AppdownloadBeanDao appdownloadBeanDao;
-    private final SdkLoginUserDao sdkLoginUserDao;
-    private final ScreenShotRecordDao screenShotRecordDao;
     private final AcceptTaskRecordDao acceptTaskRecordDao;
     private final AccountDao accountDao;
-    private final SearchRecordDao searchRecordDao;
+    private final AppdownloadBeanDao appdownloadBeanDao;
     private final DownLoadInfoDao downLoadInfoDao;
+    private final ProcessRecordDao processRecordDao;
+    private final ScreenShotRecordDao screenShotRecordDao;
+    private final SdkLoginUserDao sdkLoginUserDao;
+    private final SearchRecordDao searchRecordDao;
 
     public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
             daoConfigMap) {
         super(db);
 
-        processRecordDaoConfig = daoConfigMap.get(ProcessRecordDao.class).clone();
-        processRecordDaoConfig.initIdentityScope(type);
+        acceptTaskRecordDaoConfig = daoConfigMap.get(AcceptTaskRecordDao.class).clone();
+        acceptTaskRecordDaoConfig.initIdentityScope(type);
+
+        accountDaoConfig = daoConfigMap.get(AccountDao.class).clone();
+        accountDaoConfig.initIdentityScope(type);
 
         appdownloadBeanDaoConfig = daoConfigMap.get(AppdownloadBeanDao.class).clone();
         appdownloadBeanDaoConfig.initIdentityScope(type);
 
-        sdkLoginUserDaoConfig = daoConfigMap.get(SdkLoginUserDao.class).clone();
-        sdkLoginUserDaoConfig.initIdentityScope(type);
+        downLoadInfoDaoConfig = daoConfigMap.get(DownLoadInfoDao.class).clone();
+        downLoadInfoDaoConfig.initIdentityScope(type);
+
+        processRecordDaoConfig = daoConfigMap.get(ProcessRecordDao.class).clone();
+        processRecordDaoConfig.initIdentityScope(type);
 
         screenShotRecordDaoConfig = daoConfigMap.get(ScreenShotRecordDao.class).clone();
         screenShotRecordDaoConfig.initIdentityScope(type);
 
-        acceptTaskRecordDaoConfig = daoConfigMap.get(AcceptTaskRecordDao.class).clone();
-        acceptTaskRecordDaoConfig.initIdentityScope(type);
-
-        accountDaoConfig = daoConfigMap.get(AccountDao.class).clone();
-        accountDaoConfig.initIdentityScope(type);
+        sdkLoginUserDaoConfig = daoConfigMap.get(SdkLoginUserDao.class).clone();
+        sdkLoginUserDaoConfig.initIdentityScope(type);
 
         searchRecordDaoConfig = daoConfigMap.get(SearchRecordDao.class).clone();
         searchRecordDaoConfig.initIdentityScope(type);
 
-        downLoadInfoDaoConfig = daoConfigMap.get(DownLoadInfoDao.class).clone();
-        downLoadInfoDaoConfig.initIdentityScope(type);
-
-        processRecordDao = new ProcessRecordDao(processRecordDaoConfig, this);
-        appdownloadBeanDao = new AppdownloadBeanDao(appdownloadBeanDaoConfig, this);
-        sdkLoginUserDao = new SdkLoginUserDao(sdkLoginUserDaoConfig, this);
-        screenShotRecordDao = new ScreenShotRecordDao(screenShotRecordDaoConfig, this);
         acceptTaskRecordDao = new AcceptTaskRecordDao(acceptTaskRecordDaoConfig, this);
         accountDao = new AccountDao(accountDaoConfig, this);
-        searchRecordDao = new SearchRecordDao(searchRecordDaoConfig, this);
+        appdownloadBeanDao = new AppdownloadBeanDao(appdownloadBeanDaoConfig, this);
         downLoadInfoDao = new DownLoadInfoDao(downLoadInfoDaoConfig, this);
+        processRecordDao = new ProcessRecordDao(processRecordDaoConfig, this);
+        screenShotRecordDao = new ScreenShotRecordDao(screenShotRecordDaoConfig, this);
+        sdkLoginUserDao = new SdkLoginUserDao(sdkLoginUserDaoConfig, this);
+        searchRecordDao = new SearchRecordDao(searchRecordDaoConfig, this);
 
-        registerDao(ProcessRecord.class, processRecordDao);
-        registerDao(AppdownloadBean.class, appdownloadBeanDao);
-        registerDao(SdkLoginUser.class, sdkLoginUserDao);
-        registerDao(ScreenShotRecord.class, screenShotRecordDao);
         registerDao(AcceptTaskRecord.class, acceptTaskRecordDao);
         registerDao(Account.class, accountDao);
-        registerDao(SearchRecord.class, searchRecordDao);
+        registerDao(AppdownloadBean.class, appdownloadBeanDao);
         registerDao(DownLoadInfo.class, downLoadInfoDao);
+        registerDao(ProcessRecord.class, processRecordDao);
+        registerDao(ScreenShotRecord.class, screenShotRecordDao);
+        registerDao(SdkLoginUser.class, sdkLoginUserDao);
+        registerDao(SearchRecord.class, searchRecordDao);
     }
     
     public void clear() {
-        processRecordDaoConfig.clearIdentityScope();
-        appdownloadBeanDaoConfig.clearIdentityScope();
-        sdkLoginUserDaoConfig.clearIdentityScope();
-        screenShotRecordDaoConfig.clearIdentityScope();
         acceptTaskRecordDaoConfig.clearIdentityScope();
         accountDaoConfig.clearIdentityScope();
-        searchRecordDaoConfig.clearIdentityScope();
+        appdownloadBeanDaoConfig.clearIdentityScope();
         downLoadInfoDaoConfig.clearIdentityScope();
+        processRecordDaoConfig.clearIdentityScope();
+        screenShotRecordDaoConfig.clearIdentityScope();
+        sdkLoginUserDaoConfig.clearIdentityScope();
+        searchRecordDaoConfig.clearIdentityScope();
     }
 
-    public ProcessRecordDao getProcessRecordDao() {
-        return processRecordDao;
+    public AcceptTaskRecordDao getAcceptTaskRecordDao() {
+        return acceptTaskRecordDao;
+    }
+
+    public AccountDao getAccountDao() {
+        return accountDao;
     }
 
     public AppdownloadBeanDao getAppdownloadBeanDao() {
         return appdownloadBeanDao;
     }
 
-    public SdkLoginUserDao getSdkLoginUserDao() {
-        return sdkLoginUserDao;
+    public DownLoadInfoDao getDownLoadInfoDao() {
+        return downLoadInfoDao;
     }
 
-    public ScreenShotRecordDao getScreenShotRecordDao() {
-        return screenShotRecordDao;
+    public ProcessRecordDao getProcessRecordDao() {
+        return processRecordDao;
     }
 
-    public AcceptTaskRecordDao getAcceptTaskRecordDao() {
-        return acceptTaskRecordDao;
+    public ScreenShotRecordDao getScreenShotRecordDao() {
+        return screenShotRecordDao;
     }
 
-    public AccountDao getAccountDao() {
-        return accountDao;
+    public SdkLoginUserDao getSdkLoginUserDao() {
+        return sdkLoginUserDao;
     }
 
     public SearchRecordDao getSearchRecordDao() {
         return searchRecordDao;
     }
 
-    public DownLoadInfoDao getDownLoadInfoDao() {
-        return downLoadInfoDao;
-    }
-
 }

+ 44 - 0
app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java

@@ -1669,5 +1669,49 @@ public interface ApiService {
     @GET(ApiKey.getMyGmeList)
     Observable<BaseMessage> getMyGameList(@Query("page") int page, @Query("per_page") int per_page);
 //---------------------------end 小绵羊3.4.9新增 -- 游戏相关-------------------------------------
+//---------------------------start 小绵羊3.4.10新增 -- app/game_group 游戏组-------------------------------------
+
+    /**
+     * 游戏中心搜索
+     * name * string (query) 搜索关键字
+     * 返回 SearchResp 列表
+     */
+    @GET("app/game_group/search")
+    Observable<BaseMessage> getGameGroupSearch(@Query("name") String name);
+    /**
+     * 获取游戏组列表
+     * page * integer (query) 页码
+     * per_page * integer (query) 每页显示条数默认10条
+     * tag * integer (query) 类型 0:所有 1:绵羊新游 2:绵羊推荐 2:免费道具
+     * 返回 GameGroup 列表
+     */
+    @GET("app/game_group")
+    Observable<BaseMessage> getGameGroupByTag(@Query("tag") String tag, @Query("page") int page, @Query("per_page") int per_page);
+    /**
+     * 获取游戏组详情
+     * id * integer (path) 游戏组ID
+     * 返回 GameGroup
+     */
+    @GET("app/game_group/{id}")
+    Observable<BaseMessage> getGameGroupById(@Query("id") int id);
+    /**
+     * 获取出包类型列表
+     * 返回 PackageTypes 列表
+     */
+    @GET("app/find/package_type/list")
+    Observable<BaseMessage> getFindPackageTypeList();
+    /**
+     * 获取游戏排行
+     * 返回 AppForGameCenter 列表
+     */
+    @GET("app/find/rank")
+    Observable<BaseMessage> getFindRank();
+    /**
+     * 根据用户喜好推荐
+     * 返回 AppForGameCenter 列表
+     */
+    @GET("app/find/user_like")
+    Observable<BaseMessage> getFindUserLike();
+//---------------------------end 小绵羊3.4.10新增 -- app/game_group 游戏组-------------------------------------
 
 }

+ 11 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/GameListType.java

@@ -17,6 +17,15 @@ public class GameListType implements Serializable {
     private int tag_id;
     private int type;
     private int display_type;
+    private boolean isGameGroup;
+
+    public boolean isGameGroup() {
+        return isGameGroup;
+    }
+
+    public void setGameGroup(boolean gameGroup) {
+        isGameGroup = gameGroup;
+    }
 
     public String getTitle() {
         return title;
@@ -91,6 +100,8 @@ public class GameListType implements Serializable {
         } else {
             map.put("is_hot", is_hot);
             map.put("daily_play", daily_play);
+        }
+        if(type > 0){
             map.put("type", type);
         }
         return map;

+ 36 - 0
app/src/main/java/com/sheep/gamegroup/module/game/activity/ActGameGroupMore.java

@@ -0,0 +1,36 @@
+package com.sheep.gamegroup.module.game.activity;
+
+import android.support.v4.app.Fragment;
+
+import com.sheep.gamegroup.absBase.BaseContainerActivity;
+import com.sheep.gamegroup.model.entity.GameListType;
+import com.sheep.gamegroup.module.game.fragment.FgtGameGroupMore;
+import com.sheep.gamegroup.util.DataUtil;
+import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
+
+/**
+ * Created by realicing on 2019/1/18.
+ * realicing@sina.com
+ *
+ * 小绵羊3.4.10新增 -- 游戏中心 -- 玩转游戏 -- 游戏组 -- 更多
+ */
+public class ActGameGroupMore extends BaseContainerActivity {
+
+    private GameListType gameListType;
+
+    @Override
+    public void initView() {
+        gameListType = DataUtil.getObject(getIntent(), GameListType.class);
+        super.initView();
+        TitleBarUtils.getInstance().setShowOrHide(this, true)
+                .setTitle(this, gameListType != null ? gameListType.getTitle() : "游戏组")
+                .setTitleFinish(this);
+    }
+    @Override
+    protected Fragment initFragment() {
+        if(gameListType != null)
+            return FgtGameGroupMore.newInstance(gameListType.getType());
+        else
+            return new FgtGameGroupMore();
+    }
+}

+ 115 - 0
app/src/main/java/com/sheep/gamegroup/module/game/fragment/FgtGameCenter.java

@@ -0,0 +1,115 @@
+package com.sheep.gamegroup.module.game.fragment;
+
+import android.content.Intent;
+import android.support.design.widget.TabLayout;
+import android.support.v4.view.ViewPager;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageButton;
+
+import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.gamegroup.util.UMConfigUtils;
+import com.sheep.gamegroup.view.activity.ActDownloadMgr;
+import com.sheep.gamegroup.view.activity.ActMain;
+import com.sheep.gamegroup.view.adapter.TitleFragmentListAdapter;
+import com.sheep.gamegroup.view.fragment.FgtWelfareCenter;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+/**
+ * Created by realicing on 2019/1/18.
+ * realicing@sina.com
+ * 小绵羊3.4.10新增 -- 主页--游戏模块
+ */
+public class FgtGameCenter extends BaseFragment {
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.fgt_game_center;
+    }
+
+    @Override
+    public void onViewCreated() {
+        initView();
+    }
+
+    @BindView(R.id.indicator)
+    TabLayout indicator;
+    @BindView(R.id.pager)
+    ViewPager pager;
+    @BindView(R.id.back_btn)
+    ImageButton backBtn;
+    @BindView(R.id.download_btn)
+    ImageButton downloadBtn;
+    @BindView(R.id.search_btn)
+    ImageButton searchBtn;
+    @BindView(R.id.my_walfare_btn)
+    Button myWalfareBtn;
+
+    private TitleFragmentListAdapter mAdapter;
+
+    private void initView() {
+        backBtn.setVisibility((getActivity() instanceof ActMain) ? View.GONE : View.VISIBLE);
+        mAdapter = new TitleFragmentListAdapter(getChildFragmentManager());
+        mAdapter.add(new FgtPlayGame(), "玩转游戏");
+        mAdapter.add(new FgtWelfareCenter(), "礼包中心");
+        pager.setAdapter(mAdapter);
+        indicator.setupWithViewPager(pager);
+        pager.setOffscreenPageLimit(3);
+        pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+            @Override
+            public void onPageScrolled(int i, float v, int i1) {
+
+            }
+
+            @Override
+            public void onPageSelected(int i) {
+                downloadBtn.setVisibility(i == 0 ? View.VISIBLE : View.GONE);
+                searchBtn.setVisibility(i == 0 ? View.VISIBLE : View.GONE);
+                myWalfareBtn.setVisibility(i == 0 ? View.GONE : View.VISIBLE);
+            }
+
+            @Override
+            public void onPageScrollStateChanged(int i) {
+
+            }
+        });
+    }
+
+    private void initData() {
+    }
+
+    @Override
+    public void initDataOnVisibleToUser() {
+
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+    }
+
+    @OnClick(R.id.back_btn)
+    public void doBack(View v) {
+        getActivity().finish();
+    }
+
+    @OnClick(R.id.download_btn)
+    public void doDownload(View v) {
+        startActivity(new Intent(getContext(), ActDownloadMgr.class));
+        UMConfigUtils.onEvent(UMConfigUtils.Event.GAME_DOWNLOAD_MANAGER);
+    }
+
+    @OnClick(R.id.search_btn)
+    public void doSearch(View v) {
+        Jump2View.getInstance().goAppSearch(getActivity(), null);
+    }
+
+    @OnClick(R.id.my_walfare_btn)
+    public void doGoMyWalfare(View v) {
+        Jump2View.getInstance().goMyWelfare(getActivity());
+    }
+
+}

+ 154 - 0
app/src/main/java/com/sheep/gamegroup/module/game/fragment/FgtGameGroupMore.java

@@ -0,0 +1,154 @@
+package com.sheep.gamegroup.module.game.fragment;
+
+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 com.scwang.smartrefresh.layout.SmartRefreshLayout;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+import com.sheep.gamegroup.absBase.AbsObserver;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.GameEntity;
+import com.sheep.gamegroup.model.entity.GameListTag;
+import com.sheep.gamegroup.model.entity.GameListType;
+import com.sheep.gamegroup.model.entity.ListTypeList;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.ObservableUtil;
+import com.sheep.gamegroup.util.RefreshUtil;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.gamegroup.view.adapter.AdpGameCenter3_3List;
+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 butterknife.BindView;
+import io.reactivex.Observable;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.functions.Function;
+import io.reactivex.schedulers.Schedulers;
+
+/**
+ * Created by realicing on 2019/1/18.
+ * realicing@sina.com
+ * 小绵羊3.4.10新增 -- 游戏中心 -- 玩转游戏 -- 游戏组 -- 更多
+ */
+public class FgtGameGroupMore extends BaseFragment {
+    @BindView(R.id.play_game_list_x_rv)
+    RecyclerView play_game_list_x_rv;
+    @BindView(R.id.refresh)
+    SmartRefreshLayout refresh;
+
+    //预下载和tag列表的数据
+    private List<ListTypeList<GameEntity, GameListType>> gameEntityListx = new ArrayList<>();
+
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.fgt_game_group_more;
+    }
+
+    @Override
+    public void onViewCreated() {
+        //预下载与其它列表
+        play_game_list_x_rv.setHasFixedSize(true);
+        play_game_list_x_rv.setNestedScrollingEnabled(false);
+        play_game_list_x_rv.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
+        play_game_list_x_rv.setAdapter(new AdpGameCenter3_3List(getActivity(), gameEntityListx).setShowFirstTop(false));
+
+        refresh.setOnRefreshListener(new OnRefreshListener() {
+
+            @Override
+            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
+                refreshData();
+            }
+        });
+        RefreshUtil.newInstance().publicParameter(refresh, getActivity());
+        refresh.autoRefresh();
+    }
+
+
+    private void refreshData() {
+        initGameTagList();
+    }
+
+
+    //预下载下面的tagList
+    private void initGameTagList() {
+        gameEntityListx.clear();
+        ViewUtil.notifyDataSetChanged(play_game_list_x_rv);
+        //其它tag
+        SheepApp.getInstance().getNetComponent().getApiService().getGameTagList()
+                .subscribeOn(Schedulers.io())
+                .flatMap((Function<BaseMessage, Observable<GameListTag>>) baseMessage -> {
+                    ArrayList<GameListTag> gameListTagList = baseMessage.getDataList(GameListTag.class);
+                    return Observable.fromIterable(gameListTagList);
+                })
+                .filter(gameListTag -> gameListTag != null)
+                .subscribe(new AbsObserver<GameListTag>() {
+
+                    @Override
+                    public void onNext(GameListTag gameListTag) {
+                        initGameList(play_game_list_x_rv, gameEntityListx, gameListTag.toGameListType());
+                    }
+                });
+    }
+
+    private int type;
+    public static FgtGameGroupMore newInstance(int type) {
+        FgtGameGroupMore fgt = new FgtGameGroupMore();
+        Bundle bundle = new Bundle();
+        bundle.putInt("type", type);
+        fgt.setArguments(bundle);
+        return fgt;
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+        View rootView = super.onCreateView(inflater, container, savedInstanceState);
+        Bundle bundle = getArguments();
+        if (bundle != null) {
+            type = bundle.getInt("type", 0);
+        }
+        return rootView;
+    }
+
+    private void initGameList(final RecyclerView playGameListRv, final List<ListTypeList<GameEntity, GameListType>> gameEntityListList, final GameListType gameListType) {
+        if (gameListType == null) {
+            return;
+        }
+        gameListType.setType(type);
+        ObservableUtil.getObservable(SheepApp.getInstance().getNetComponent().getApiService(), gameListType).subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        List<GameEntity> newList = baseMessage.getDatas(GameEntity.class);
+                        if (!ListUtil.isEmpty(newList)) {
+                            gameEntityListList.add(new ListTypeList<>(gameListType, newList));
+                            ViewUtil.notifyDataSetChanged(playGameListRv);
+                        }
+                        notifyDataSetChanged();
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        notifyDataSetChanged();
+                    }
+                });
+    }
+
+    private void notifyDataSetChanged() {
+        if (refresh != null) {
+            refresh.finishRefresh();
+        }
+    }
+}

+ 266 - 0
app/src/main/java/com/sheep/gamegroup/module/game/fragment/FgtPlayGame.java

@@ -0,0 +1,266 @@
+package com.sheep.gamegroup.module.game.fragment;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.v7.widget.GridLayoutManager;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.RequestOptions;
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
+import com.kfzs.appstore.utils.adapter.recyclerview.RecyclerViewAdapter;
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+import com.sheep.gamegroup.absBase.AbsObserver;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.GameEntity;
+import com.sheep.gamegroup.model.entity.GameListTag;
+import com.sheep.gamegroup.model.entity.GameListType;
+import com.sheep.gamegroup.model.entity.GameRecommend;
+import com.sheep.gamegroup.model.entity.ListTypeList;
+import com.sheep.gamegroup.model.entity.SlideshowEty;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.module.game.model.GameCenterType;
+import com.sheep.gamegroup.module.game.model.PackageTypes;
+import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.ObservableUtil;
+import com.sheep.gamegroup.util.RefreshUtil;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.gamegroup.view.adapter.AdpGameCenter1_2List;
+import com.sheep.gamegroup.view.adapter.AdpGameCenter3_3List;
+import com.sheep.gamegroup.view.adapter.AdpUserCenterModule;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+import com.sheep.jiuyan.samllsheep.utils.G;
+import com.youth.banner.Banner;
+import com.youth.banner.BannerConfig;
+import com.youth.banner.listener.OnBannerListener;
+import com.youth.banner.loader.ImageLoader;
+
+import org.afinal.simplecache.ApiKey;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.Unbinder;
+import io.reactivex.Observable;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.functions.Function;
+import io.reactivex.functions.Predicate;
+import io.reactivex.schedulers.Schedulers;
+
+/**
+ * Created by realicing on 2019/1/18.
+ * realicing@sina.com
+ * 小绵羊3.4.10新增 -- 游戏中心 -- 玩转游戏
+ */
+public class FgtPlayGame extends BaseFragment {
+    @BindView(R.id.banner)
+    Banner banner;
+    @BindView(R.id.play_game_list_x_rv)
+    RecyclerView play_game_list_x_rv;
+    @BindView(R.id.refresh)
+    SmartRefreshLayout refresh;
+
+    //绵羊新游、免费道具、绵羊推荐、排行榜
+    private List<GameCenterType> gameCenterList = new ArrayList<>();
+    //预下载和tag列表的数据
+    private List<ListTypeList<GameEntity, GameListType>> gameEntityListx = new ArrayList<>();
+    private List<SlideshowEty> slideshowEtyLists = new ArrayList<>();
+    private List<String> slideshowTitleList = new ArrayList<>();
+
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.fgt_play_game;
+    }
+
+    @Override
+    public void onViewCreated() {
+        //banner
+        LinearLayout.LayoutParams bannerLayoutParams = (LinearLayout.LayoutParams) banner.getLayoutParams();
+        bannerLayoutParams.height = G.WIDTH * 25 / 72;
+        banner.setLayoutParams(bannerLayoutParams);
+
+        //绵羊新游、免费道具、绵羊推荐、排行榜
+
+        //预下载与其它列表
+        play_game_list_x_rv.setHasFixedSize(true);
+        play_game_list_x_rv.setNestedScrollingEnabled(false);
+        play_game_list_x_rv.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
+        play_game_list_x_rv.setAdapter(new AdpGameCenter3_3List(getActivity(), gameEntityListx));
+
+        refresh.setOnRefreshListener(new OnRefreshListener() {
+
+            @Override
+            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
+                refreshData();
+            }
+        });
+        RefreshUtil.newInstance().publicParameter(refresh, getActivity());
+        refresh.autoRefresh();
+    }
+
+
+
+    private void refreshData() {
+        initBanner();
+        initGameTagList();
+    }
+
+
+    //预下载下面的tagList
+    private void initGameTagList() {
+        gameEntityListx.clear();
+        ViewUtil.notifyDataSetChanged(play_game_list_x_rv);
+        //其它tag
+        SheepApp.getInstance().getNetComponent().getApiService().getFindPackageTypeList()
+                .subscribeOn(Schedulers.io())
+                .flatMap((Function<BaseMessage, Observable<PackageTypes>>) baseMessage -> {
+                    ArrayList<PackageTypes> gameListTagList = baseMessage.getDataList(PackageTypes.class);
+                    return Observable.fromIterable(gameListTagList);
+                })
+                .filter(gameListTag -> gameListTag != null)
+                .subscribe(new AbsObserver<PackageTypes>() {
+
+                    @Override
+                    public void onNext(PackageTypes gameListTag) {
+                        initGameList(play_game_list_x_rv, gameEntityListx, gameListTag.toGameListType());
+                    }
+                });
+    }
+
+    //刷新banner数据
+    private void initBanner() {
+        //轮播
+        List<SlideshowEty> cacheSlideshowEtyList = DataUtil.getInstance().getCacheList(ApiKey.slideshowGame, SlideshowEty.class);
+        if (ListUtil.isEmpty(cacheSlideshowEtyList)) {
+            banner.setVisibility(View.GONE);
+        } else {
+            slideshowEtyLists.clear();
+            slideshowTitleList.clear();
+            for (SlideshowEty slideshowEty : cacheSlideshowEtyList) {
+                slideshowEtyLists.add(slideshowEty);
+                slideshowTitleList.add(slideshowEty.getTitle());
+            }
+            bindBanner();
+        }
+
+        SheepApp.getInstance().getNetComponent().getApiService().gameBanner(1)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        notifyDataSetChanged();
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.slideshowGame);
+                        if (isNewData) {
+                            List<SlideshowEty> slideshowEtyList = baseMessage.getDataList(SlideshowEty.class);
+                            if (ListUtil.isEmpty(slideshowEtyList)) {
+                                banner.setVisibility(View.GONE);
+                            } else {
+                                slideshowEtyLists.clear();
+                                slideshowTitleList.clear();
+                                for (SlideshowEty slideshowEty : slideshowEtyList) {
+                                    slideshowEtyLists.add(slideshowEty);
+                                    slideshowTitleList.add(slideshowEty.getTitle());
+                                }
+                                bindBanner();
+                            }
+                        }
+                        notifyDataSetChanged();
+                    }
+                });
+    }
+
+    private void bindBanner() {
+        //结束轮播
+        banner.stopAutoPlay();
+        banner.setVisibility(View.VISIBLE);
+        //设置图片加载器
+        banner.setImageLoader(new ImageLoader() {
+            @Override
+            public void displayImage(Context context, Object o, ImageView imageView) {
+                if (o instanceof SlideshowEty)
+                    Glide.with(context).load(((SlideshowEty) o).getUrl()).apply(new RequestOptions().dontAnimate()).into(imageView);
+            }
+        })
+                .setDelayTime(4000)
+                .setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE)
+                //设置图片集合
+                .setImages(slideshowEtyLists).setBannerTitles(slideshowTitleList)
+                .setOnBannerListener(new OnBannerListener() {
+                    @Override
+                    public void OnBannerClick(int i) {
+                        try {
+                            CommonUtil.getInstance().clickBanner(getActivity(), i, slideshowEtyLists);
+                        } catch (Exception e) {
+                            G.showToast(e.getMessage());
+                        }
+                    }
+                });
+
+        //banner设置方法全部调用完毕时最后调用
+        banner.start();
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        //结束轮播
+        banner.startAutoPlay();
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        //结束轮播
+        banner.stopAutoPlay();
+    }
+
+    private void initGameList(final RecyclerView playGameListRv, final List<ListTypeList<GameEntity, GameListType>> gameEntityListList, final GameListType gameListType) {
+        if (gameListType == null) {
+            return;
+        }
+        gameListType.setGameGroup(true);
+        ObservableUtil.getObservable(SheepApp.getInstance().getNetComponent().getApiService(), gameListType).subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        List<GameEntity> newList = baseMessage.getDatas(GameEntity.class);
+                        if (!ListUtil.isEmpty(newList)) {
+                            gameEntityListList.add(new ListTypeList<>(gameListType, newList));
+                            ViewUtil.notifyDataSetChanged(playGameListRv);
+                        }
+                        notifyDataSetChanged();
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        notifyDataSetChanged();
+                    }
+                });
+    }
+
+    private void notifyDataSetChanged() {
+        if (refresh != null) {
+            refresh.finishRefresh();
+        }
+    }
+}

+ 89 - 0
app/src/main/java/com/sheep/gamegroup/module/game/model/AppForGameCenter.java

@@ -0,0 +1,89 @@
+package com.sheep.gamegroup.module.game.model;
+
+import com.sheep.gamegroup.model.entity.Applications;
+
+/**
+ * Created by realicing on 2019/1/18.
+ * realicing@sina.com
+ *
+ * 游戏排行接口返回的数据
+ *
+ * accepted_task_id:	integer ($int64) 领取福利时使用
+ * app:	Applications{...}
+ * can_download:	boolean
+ * is_reservation:	integer ($int64) 0 不是 1是预约
+ * received_voucher:	boolean 是否已经领取了福利
+ * release_task_id:	integer ($int64) 发布任务id
+ * status:	integer ($int64) 福利任务时使用,和任务记录一样
+ */
+public class AppForGameCenter {
+    private int accepted_task_id;
+
+    private Applications app;
+
+    private boolean can_download;
+
+    private int is_reservation;
+
+    private boolean received_voucher;
+
+    private int release_task_id;
+
+    private int status;
+
+    public int getAccepted_task_id() {
+        return accepted_task_id;
+    }
+
+    public void setAccepted_task_id(int accepted_task_id) {
+        this.accepted_task_id = accepted_task_id;
+    }
+
+    public Applications getApp() {
+        return app;
+    }
+
+    public void setApp(Applications app) {
+        this.app = app;
+    }
+
+    public boolean isCan_download() {
+        return can_download;
+    }
+
+    public void setCan_download(boolean can_download) {
+        this.can_download = can_download;
+    }
+
+    public int getIs_reservation() {
+        return is_reservation;
+    }
+
+    public void setIs_reservation(int is_reservation) {
+        this.is_reservation = is_reservation;
+    }
+
+    public boolean isReceived_voucher() {
+        return received_voucher;
+    }
+
+    public void setReceived_voucher(boolean received_voucher) {
+        this.received_voucher = received_voucher;
+    }
+
+    public int getRelease_task_id() {
+        return release_task_id;
+    }
+
+    public void setRelease_task_id(int release_task_id) {
+        this.release_task_id = release_task_id;
+    }
+
+    public int getStatus() {
+        return status;
+    }
+
+    public void setStatus(int status) {
+        this.status = status;
+    }
+}

+ 9 - 0
app/src/main/java/com/sheep/gamegroup/module/game/model/GameCenterType.java

@@ -0,0 +1,9 @@
+package com.sheep.gamegroup.module.game.model;
+
+/**
+ * Created by realicing on 2019/1/18.
+ * realicing@sina.com
+ * 小绵羊3.4.10新增 -- 游戏中心4个模块类型 绵羊新游、免费道具、绵羊推荐、排行榜
+ */
+public class GameCenterType {
+}

+ 111 - 0
app/src/main/java/com/sheep/gamegroup/module/game/model/GameGroup.java

@@ -0,0 +1,111 @@
+package com.sheep.gamegroup.module.game.model;
+
+import com.sheep.gamegroup.model.entity.Applications;
+
+/**
+ * Created by realicing on 2019/1/18.
+ * realicing@sina.com
+ *
+ * 游戏组
+ */
+public class GameGroup {
+    private String Name;
+
+    private Applications applications;
+
+    private String created_at;
+
+    private String icon;
+
+    private int id;
+
+    private int is_display;
+
+    private String main_publicize;
+
+    private int package_size;
+
+    private int tag;
+
+    private String updated_at;
+
+    public String getName() {
+        return Name;
+    }
+
+    public void setName(String name) {
+        Name = name;
+    }
+
+    public Applications getApplications() {
+        return applications;
+    }
+
+    public void setApplications(Applications applications) {
+        this.applications = applications;
+    }
+
+    public String getCreated_at() {
+        return created_at;
+    }
+
+    public void setCreated_at(String created_at) {
+        this.created_at = created_at;
+    }
+
+    public String getIcon() {
+        return icon;
+    }
+
+    public void setIcon(String icon) {
+        this.icon = icon;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public int getIs_display() {
+        return is_display;
+    }
+
+    public void setIs_display(int is_display) {
+        this.is_display = is_display;
+    }
+
+    public String getMain_publicize() {
+        return main_publicize;
+    }
+
+    public void setMain_publicize(String main_publicize) {
+        this.main_publicize = main_publicize;
+    }
+
+    public int getPackage_size() {
+        return package_size;
+    }
+
+    public void setPackage_size(int package_size) {
+        this.package_size = package_size;
+    }
+
+    public int getTag() {
+        return tag;
+    }
+
+    public void setTag(int tag) {
+        this.tag = tag;
+    }
+
+    public String getUpdated_at() {
+        return updated_at;
+    }
+
+    public void setUpdated_at(String updated_at) {
+        this.updated_at = updated_at;
+    }
+}

+ 60 - 0
app/src/main/java/com/sheep/gamegroup/module/game/model/PackageTypes.java

@@ -0,0 +1,60 @@
+package com.sheep.gamegroup.module.game.model;
+
+import com.sheep.gamegroup.model.entity.GameListType;
+
+/**
+ * Created by realicing on 2019/1/18.
+ * realicing@sina.com
+ *
+ * 游戏出包类型
+ *
+ * created_at:	string ($string) 创建时间
+ * id:	integer ($int64) 主键自增ID
+ * name:	string  出包类型名称
+ * package_type:	integer ($int64) 出包类型:1002:快发出包 1003:腾讯出包 1004:小米出包 1015:小绵羊出包 其他:1099
+ */
+public class PackageTypes {
+    private String created_at;
+    private int id;
+    private String name;
+    private int package_type;
+
+    public String getCreated_at() {
+        return created_at;
+    }
+
+    public void setCreated_at(String created_at) {
+        this.created_at = created_at;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getPackage_type() {
+        return package_type;
+    }
+
+    public void setPackage_type(int package_type) {
+        this.package_type = package_type;
+    }
+
+    public GameListType toGameListType() {
+        GameListType gameListType = new GameListType();
+        gameListType.setType(package_type);
+        gameListType.setTitle(name);
+        return gameListType;
+    }
+}

+ 43 - 0
app/src/main/java/com/sheep/gamegroup/module/game/model/SearchResp.java

@@ -0,0 +1,43 @@
+package com.sheep.gamegroup.module.game.model;
+
+import com.sheep.gamegroup.model.entity.Applications;
+
+/**
+ * Created by realicing on 2019/1/18.
+ * realicing@sina.com
+ * 小绵羊3.4.10新增 -- 搜索游戏组结果
+ *
+ * applications:	Applications{...}
+ * game_group:	GameGroup{...}
+ * type:	integer ($int64)
+ * 数据类型 1:游戏组 2:游戏 当游戏组中只有一个游戏就返回游戏
+ */
+public class SearchResp {
+    private Applications applications;
+    private GameGroup game_group;
+    private int type;
+
+    public Applications getApplications() {
+        return applications;
+    }
+
+    public void setApplications(Applications applications) {
+        this.applications = applications;
+    }
+
+    public GameGroup getGame_group() {
+        return game_group;
+    }
+
+    public void setGame_group(GameGroup game_group) {
+        this.game_group = game_group;
+    }
+
+    public int getType() {
+        return type;
+    }
+
+    public void setType(int type) {
+        this.type = type;
+    }
+}

+ 2 - 1
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -52,6 +52,7 @@ import com.sheep.gamegroup.model.entity.XianWanEntity;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.module.ad_htxd.model.ArticleAd;
 import com.sheep.gamegroup.module.find.activity.ActMediaChoose;
+import com.sheep.gamegroup.module.game.activity.ActGameGroupMore;
 import com.sheep.gamegroup.module.login.ChangePasswordAct;
 import com.sheep.gamegroup.module.login.LoginAct;
 import com.sheep.gamegroup.module.plugin.model.Plugin;
@@ -2065,7 +2066,7 @@ public class Jump2View {
                 intent = new Intent(activity, ActPlayGameUserLikeList.class);
                 break;
             default:
-                intent = new Intent(activity, ActPlayGameList.class);
+                intent = new Intent(activity, gameListType.isGameGroup() ? ActGameGroupMore.class : ActPlayGameList.class);
                 break;
         }
         DataUtil.putObject(intent, gameListType);

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/util/MainTab.java

@@ -7,7 +7,7 @@ import com.sheep.gamegroup.module.skin.util.SkinUtil;
 import com.sheep.gamegroup.view.fragment.FgtAskGetMoney;
 import com.sheep.gamegroup.view.fragment.FgtAskGetMoneyNewYear;
 import com.sheep.gamegroup.view.fragment.FgtFind;
-import com.sheep.gamegroup.view.fragment.FgtGameCenter;
+import com.sheep.gamegroup.module.game.fragment.FgtGameCenter;
 import com.sheep.gamegroup.view.fragment.FgtPersonalCenter;
 import com.sheep.gamegroup.view.fragment.FgtSmallSheep;
 import com.sheep.jiuyan.samllsheep.R;

+ 1 - 15
app/src/main/java/com/sheep/gamegroup/view/activity/ActGameCenter.java

@@ -1,23 +1,9 @@
 package com.sheep.gamegroup.view.activity;
 
-import android.content.Intent;
 import android.support.v4.app.Fragment;
-import android.support.v4.view.ViewPager;
-import android.view.View;
-import android.widget.ImageButton;
 
-import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.absBase.BaseContainerActivity;
-import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.UMConfigUtils;
-import com.sheep.gamegroup.view.fragment.FgtFootprint;
-import com.sheep.gamegroup.view.fragment.FgtGameCenter;
-import com.sheep.gamegroup.view.fragment.FgtPlayGame;
-import com.sheep.gamegroup.view.fragment.FgtWelfareCenter;
-import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
-
-import butterknife.BindView;
+import com.sheep.gamegroup.module.game.fragment.FgtGameCenter;
 
 /**
  * Created by realicing on 2018/8/29.

+ 3 - 6
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGameCenter3_3List.java

@@ -49,12 +49,9 @@ public class AdpGameCenter3_3List extends RecyclerViewAdapter<ListTypeList<GameE
         if (!isShowFirstTop)//不显示第一项的线
             ViewUtil.setVisibility(item_play_game_list_top, position != 0);
         ViewUtil.setText(item_play_game_list_tv, itemList.getType().getTitle());
-        item_play_game_list_more_tv.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                if (mContext instanceof Activity)
-                    Jump2View.getInstance().goActPlayGameList((Activity) mContext, itemList.getType());
-            }
+        item_play_game_list_more_tv.setOnClickListener(view -> {
+            Activity activity = SheepApp.getInstance().getCurrentActivity();
+            Jump2View.getInstance().goActPlayGameList(activity, itemList.getType());
         });
         RecyclerView recyclerView = viewHolder.itemView.findViewById(R.id.item_play_game_list_rv);
         LinearLayoutManager playHotManager = new LinearLayoutManager(SheepApp.getInstance(), LinearLayoutManager.HORIZONTAL, false);

+ 115 - 115
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtGameCenter.java

@@ -1,115 +1,115 @@
-package com.sheep.gamegroup.view.fragment;
-
-import android.content.Intent;
-import android.support.design.widget.TabLayout;
-import android.support.v4.view.ViewPager;
-import android.view.View;
-import android.widget.Button;
-import android.widget.ImageButton;
-
-import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.UMConfigUtils;
-import com.sheep.gamegroup.view.activity.ActDownloadMgr;
-import com.sheep.gamegroup.view.activity.ActMain;
-import com.sheep.gamegroup.view.adapter.TitleFragmentListAdapter;
-import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.base.BaseFragment;
-
-import butterknife.BindView;
-import butterknife.OnClick;
-
-/**
- * Created by realicing on 2018/6/27.
- * realicing@sina.com
- * 主页--游戏模块
- */
-public class FgtGameCenter extends BaseFragment {
-
-    @Override
-    public int getLayoutId() {
-        return R.layout.fgt_game_center;
-    }
-
-    @Override
-    public void onViewCreated() {
-        initView();
-    }
-
-    @BindView(R.id.indicator)
-    TabLayout indicator;
-    @BindView(R.id.pager)
-    ViewPager pager;
-    @BindView(R.id.back_btn)
-    ImageButton backBtn;
-    @BindView(R.id.download_btn)
-    ImageButton downloadBtn;
-    @BindView(R.id.search_btn)
-    ImageButton searchBtn;
-    @BindView(R.id.my_walfare_btn)
-    Button myWalfareBtn;
-
-    private TitleFragmentListAdapter mAdapter;
-
-    private void initView() {
-        backBtn.setVisibility((getActivity() instanceof ActMain) ? View.GONE : View.VISIBLE);
-        mAdapter = new TitleFragmentListAdapter(getChildFragmentManager());
-        mAdapter.add(new FgtPlayGame(), "玩转游戏");
-        mAdapter.add(new FgtWelfareCenter(), "礼包中心");
-        pager.setAdapter(mAdapter);
-        indicator.setupWithViewPager(pager);
-        pager.setOffscreenPageLimit(3);
-        pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
-            @Override
-            public void onPageScrolled(int i, float v, int i1) {
-
-            }
-
-            @Override
-            public void onPageSelected(int i) {
-                downloadBtn.setVisibility(i == 0 ? View.VISIBLE : View.GONE);
-                searchBtn.setVisibility(i == 0 ? View.VISIBLE : View.GONE);
-                myWalfareBtn.setVisibility(i == 0 ? View.GONE : View.VISIBLE);
-            }
-
-            @Override
-            public void onPageScrollStateChanged(int i) {
-
-            }
-        });
-    }
-
-    private void initData() {
-    }
-
-    @Override
-    public void initDataOnVisibleToUser() {
-
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-    }
-
-    @OnClick(R.id.back_btn)
-    public void doBack(View v) {
-        getActivity().finish();
-    }
-
-    @OnClick(R.id.download_btn)
-    public void doDownload(View v) {
-        startActivity(new Intent(getContext(), ActDownloadMgr.class));
-        UMConfigUtils.onEvent(UMConfigUtils.Event.GAME_DOWNLOAD_MANAGER);
-    }
-
-    @OnClick(R.id.search_btn)
-    public void doSearch(View v) {
-        Jump2View.getInstance().goAppSearch(getActivity(), null);
-    }
-
-    @OnClick(R.id.my_walfare_btn)
-    public void doGoMyWalfare(View v) {
-        Jump2View.getInstance().goMyWelfare(getActivity());
-    }
-
-}
+//package com.sheep.gamegroup.view.fragment;
+//
+//import android.content.Intent;
+//import android.support.design.widget.TabLayout;
+//import android.support.v4.view.ViewPager;
+//import android.view.View;
+//import android.widget.Button;
+//import android.widget.ImageButton;
+//
+//import com.sheep.gamegroup.util.Jump2View;
+//import com.sheep.gamegroup.util.UMConfigUtils;
+//import com.sheep.gamegroup.view.activity.ActDownloadMgr;
+//import com.sheep.gamegroup.view.activity.ActMain;
+//import com.sheep.gamegroup.view.adapter.TitleFragmentListAdapter;
+//import com.sheep.jiuyan.samllsheep.R;
+//import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+//
+//import butterknife.BindView;
+//import butterknife.OnClick;
+//
+///**
+// * Created by realicing on 2018/6/27.
+// * realicing@sina.com
+// * 主页--游戏模块
+// */
+//public class FgtGameCenter extends BaseFragment {
+//
+//    @Override
+//    public int getLayoutId() {
+//        return R.layout.fgt_game_center;
+//    }
+//
+//    @Override
+//    public void onViewCreated() {
+//        initView();
+//    }
+//
+//    @BindView(R.id.indicator)
+//    TabLayout indicator;
+//    @BindView(R.id.pager)
+//    ViewPager pager;
+//    @BindView(R.id.back_btn)
+//    ImageButton backBtn;
+//    @BindView(R.id.download_btn)
+//    ImageButton downloadBtn;
+//    @BindView(R.id.search_btn)
+//    ImageButton searchBtn;
+//    @BindView(R.id.my_walfare_btn)
+//    Button myWalfareBtn;
+//
+//    private TitleFragmentListAdapter mAdapter;
+//
+//    private void initView() {
+//        backBtn.setVisibility((getActivity() instanceof ActMain) ? View.GONE : View.VISIBLE);
+//        mAdapter = new TitleFragmentListAdapter(getChildFragmentManager());
+//        mAdapter.add(new FgtPlayGame(), "玩转游戏");
+//        mAdapter.add(new FgtWelfareCenter(), "礼包中心");
+//        pager.setAdapter(mAdapter);
+//        indicator.setupWithViewPager(pager);
+//        pager.setOffscreenPageLimit(3);
+//        pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+//            @Override
+//            public void onPageScrolled(int i, float v, int i1) {
+//
+//            }
+//
+//            @Override
+//            public void onPageSelected(int i) {
+//                downloadBtn.setVisibility(i == 0 ? View.VISIBLE : View.GONE);
+//                searchBtn.setVisibility(i == 0 ? View.VISIBLE : View.GONE);
+//                myWalfareBtn.setVisibility(i == 0 ? View.GONE : View.VISIBLE);
+//            }
+//
+//            @Override
+//            public void onPageScrollStateChanged(int i) {
+//
+//            }
+//        });
+//    }
+//
+//    private void initData() {
+//    }
+//
+//    @Override
+//    public void initDataOnVisibleToUser() {
+//
+//    }
+//
+//    @Override
+//    public void onResume() {
+//        super.onResume();
+//    }
+//
+//    @OnClick(R.id.back_btn)
+//    public void doBack(View v) {
+//        getActivity().finish();
+//    }
+//
+//    @OnClick(R.id.download_btn)
+//    public void doDownload(View v) {
+//        startActivity(new Intent(getContext(), ActDownloadMgr.class));
+//        UMConfigUtils.onEvent(UMConfigUtils.Event.GAME_DOWNLOAD_MANAGER);
+//    }
+//
+//    @OnClick(R.id.search_btn)
+//    public void doSearch(View v) {
+//        Jump2View.getInstance().goAppSearch(getActivity(), null);
+//    }
+//
+//    @OnClick(R.id.my_walfare_btn)
+//    public void doGoMyWalfare(View v) {
+//        Jump2View.getInstance().goMyWelfare(getActivity());
+//    }
+//
+//}

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

@@ -1,429 +1,429 @@
-package com.sheep.gamegroup.view.fragment;
-
-import android.content.Context;
-import android.support.annotation.NonNull;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
-import com.kfzs.appstore.utils.adapter.recyclerview.RecyclerViewAdapter;
-import com.scwang.smartrefresh.layout.SmartRefreshLayout;
-import com.scwang.smartrefresh.layout.api.RefreshLayout;
-import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
-import com.sheep.gamegroup.absBase.AbsObserver;
-import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.GameEntity;
-import com.sheep.gamegroup.model.entity.GameListTag;
-import com.sheep.gamegroup.model.entity.GameListType;
-import com.sheep.gamegroup.model.entity.GameRecommend;
-import com.sheep.gamegroup.model.entity.ListTypeList;
-import com.sheep.gamegroup.model.entity.SlideshowEty;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.DataUtil;
-import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.ObservableUtil;
-import com.sheep.gamegroup.util.RefreshUtil;
-import com.sheep.gamegroup.util.ViewUtil;
-import com.sheep.gamegroup.view.adapter.AdpGameCenter1_2List;
-import com.sheep.gamegroup.view.adapter.AdpGameCenter3_3List;
-import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.base.BaseFragment;
-import com.sheep.jiuyan.samllsheep.utils.G;
-import com.youth.banner.Banner;
-import com.youth.banner.BannerConfig;
-import com.youth.banner.listener.OnBannerListener;
-import com.youth.banner.loader.ImageLoader;
-
-import org.afinal.simplecache.ApiKey;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import butterknife.BindView;
-import butterknife.Unbinder;
-import io.reactivex.Observable;
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.functions.Function;
-import io.reactivex.functions.Predicate;
-import io.reactivex.schedulers.Schedulers;
-
-/**
- * Created by realicing on 2018/10/30.
- * realicing@sina.com
- */
-public class FgtPlayGame extends BaseFragment {
-    @BindView(R.id.banner)
-    Banner banner;
-    @BindView(R.id.play_game_act)
-    RecyclerView play_game_act;
-    @BindView(R.id.play_game_list_3_rv)
-    RecyclerView play_game_list_3_rv;
-    @BindView(R.id.play_game_list_2_rv)
-    RecyclerView play_game_list_2_rv;
-    @BindView(R.id.play_game_list_x_rv)
-    RecyclerView play_game_list_x_rv;
-    @BindView(R.id.refresh)
-    SmartRefreshLayout refresh;
-    Unbinder unbinder;
-
-    //游戏首页活动列表
-    private List<SlideshowEty> gameActList = new ArrayList<>();
-    //每日必玩", "近期最热", "猜你喜欢
-    private List<GameListType> gameListTypeList3 = new ArrayList<>();
-    private List<ListTypeList<GameEntity, GameListType>> gameEntityList3 = new ArrayList<>();
-    //天天更新与重点推荐
-    private List<GameListType> gameListTypeList2 = new ArrayList<>();
-    private List<ListTypeList<GameRecommend, GameListType>> gameListTypeList2List = new ArrayList<>();
-    //预下载和tag列表的数据
-    private List<ListTypeList<GameEntity, GameListType>> gameEntityListx = new ArrayList<>();
-    private List<SlideshowEty> slideshowEtyLists = new ArrayList<>();
-    private List<String> slideshowTitleList = new ArrayList<>();
-
-
-    @Override
-    public int getLayoutId() {
-        return R.layout.fgt_play_game;
-    }
-
-    public static final int[] gameActBgIds = {R.drawable.shape_purple_gradient_solid_rectangle_5, R.drawable.shape_orange_gradient_solid_rectangle_5, R.drawable.shape_light_blue_gradient_solid_rectangle_5};
-
-    @Override
-    public void onViewCreated() {
-        //banner
-        LinearLayout.LayoutParams bannerLayoutParams = (LinearLayout.LayoutParams) banner.getLayoutParams();
-        bannerLayoutParams.height = G.WIDTH * 25 / 72;
-        banner.setLayoutParams(bannerLayoutParams);
-
-        //游戏首页活动列表
-        LinearLayoutManager playGameActManager = new LinearLayoutManager(SheepApp.getInstance(), LinearLayoutManager.HORIZONTAL, false);
-        play_game_act.setHasFixedSize(true);
-        play_game_act.setNestedScrollingEnabled(false);
-        play_game_act.setLayoutManager(playGameActManager);
-        play_game_act.setAdapter(new RecyclerViewAdapter<SlideshowEty>(SheepApp.getInstance(), R.layout.item_game_act, gameActList) {
-            @Override
-            public void convert(com.kfzs.appstore.utils.adapter.recyclerview.ViewHolder viewHolder, final SlideshowEty item, int position) {
-                View item_game_act_start = viewHolder.itemView.findViewById(R.id.item_game_act_start);
-                View item_game_act_content = viewHolder.itemView.findViewById(R.id.item_game_act_content);
-                View item_game_act_end = viewHolder.itemView.findViewById(R.id.item_game_act_end);
-                ImageView item_game_act_iv = viewHolder.itemView.findViewById(R.id.item_game_act_iv);
-                TextView item_game_act_tv = viewHolder.itemView.findViewById(R.id.item_game_act_tv);
-                ViewUtil.setVisibility(item_game_act_start, position == 0);
-                ViewUtil.setVisibility(item_game_act_end, position + 1 == gameActList.size());
-                item_game_act_content.setBackgroundResource(gameActBgIds[position % gameActBgIds.length]);
-                if (item == null) {
-                    ViewUtil.setDefaultText(item_game_act_tv);
-                } else {
-                    ViewUtil.setImage(item_game_act_iv, item.getUrl());
-                    ViewUtil.setText(item_game_act_tv, item.getTitle());
-                }
-                viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View view) {
-                        try {
-                            CommonUtil.getInstance().clickBanner(getActivity(), item);
-                        } catch (Exception e) {
-                            G.showToast(e.getMessage());
-                        }
-                    }
-                });
-
-            }
-        });
-
-        //每日必玩、近期最热、猜你喜欢
-        play_game_list_3_rv.setHasFixedSize(true);
-        play_game_list_3_rv.setNestedScrollingEnabled(false);
-        play_game_list_3_rv.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
-        play_game_list_3_rv.setAdapter(new AdpGameCenter3_3List(getActivity(), gameEntityList3).setShowFirstTop(false));
-        //天天更新、重点推荐
-        play_game_list_2_rv.setHasFixedSize(true);
-        play_game_list_2_rv.setNestedScrollingEnabled(false);
-        play_game_list_2_rv.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
-        play_game_list_2_rv.setAdapter(new AdpGameCenter1_2List(getActivity(), gameListTypeList2List));
-        //预下载与其它列表
-        play_game_list_x_rv.setHasFixedSize(true);
-        play_game_list_x_rv.setNestedScrollingEnabled(false);
-        play_game_list_x_rv.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
-        play_game_list_x_rv.setAdapter(new AdpGameCenter3_3List(getActivity(), gameEntityListx));
-
-        refresh.setOnRefreshListener(new OnRefreshListener() {
-
-            @Override
-            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
-                refreshData();
-            }
-        });
-        RefreshUtil.newInstance().publicParameter(refresh, getActivity());
-        initGameListType3List();
-        initGameListType2List();
-        refresh.autoRefresh();
-    }
-
-    public static final String[] gameListType3Titles = {"每日必玩", "近期最热", "猜你喜欢"};
-    public static final int[] gameListType3IsHots = {1, 0, 0};
-    public static final int[] gameListType3DailyPlays = {0, 1, 0};
-
-    private void initGameListType3List() {
-        //每日必玩", "近期最热", "猜你喜欢
-        for (int i = 0; i < gameListType3Titles.length; i++) {
-            GameListType gameListType = new GameListType();
-            gameListType.setTitle(gameListType3Titles[i]);
-            gameListType.setPer_page(20);
-            gameListType.setIs_hot(gameListType3IsHots[i]);
-            gameListType.setDaily_play(gameListType3DailyPlays[i]);
-            gameListTypeList3.add(gameListType);
-        }
-    }
-
-    public static final String[] gameListType2Titles = {"天天更新", "重点推荐"};
-    public static final int[] gameListType2DisplayTypes = {1, 2};
-
-    private void initGameListType2List() {
-        //天天更新", "重点推荐
-        for (int i = 0; i < gameListType2Titles.length; i++) {
-            GameListType gameListType = new GameListType();
-            gameListType.setTitle(gameListType2Titles[i]);
-            gameListType.setDisplay_type(gameListType2DisplayTypes[i]);
-            gameListTypeList2.add(gameListType);
-        }
-    }
-
-    private void refreshData() {
-        initBanner();
-        initBannerAct();
-        initGameList3();
-        initRecommendList();
-        initGameTagList();
-    }
-
-    private void initBannerAct() {
-        gameActList.clear();
-        ViewUtil.notifyDataSetChanged(play_game_act);
-        SheepApp.getInstance().getNetComponent().getApiService().gameBannerAct()
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        ArrayList<SlideshowEty> newList = baseMessage.getDataList(SlideshowEty.class);
-                        if (!ListUtil.isEmpty(newList)) {
-                            gameActList.addAll(newList);
-                        }
-                        ViewUtil.notifyDataSetChanged(play_game_act);
-                        notifyDataSetChanged();
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        notifyDataSetChanged();
-                    }
-                });
-    }
-
-    //天天更新、重点推荐
-    private void initRecommendList() {
-        gameListTypeList2List.clear();
-        ViewUtil.notifyDataSetChanged(play_game_list_2_rv);
-        Observable.fromIterable(gameListTypeList2)
-                .subscribe(new AbsObserver<GameListType>() {
-                    @Override
-                    public void onNext(final GameListType gameListType) {
-                        SheepApp.getInstance().getNetComponent().getApiService().getRecommendList(gameListType.getDisplay_type())
-                                .subscribeOn(Schedulers.io())
-                                .observeOn(AndroidSchedulers.mainThread())
-                                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                                    @Override
-                                    public void onNext(BaseMessage baseMessage) {
-                                        List<GameRecommend> newList = baseMessage.getDatas(GameRecommend.class);
-                                        if (!ListUtil.isEmpty(newList)) {
-                                            gameListTypeList2List.add(new ListTypeList<>(gameListType, newList));
-                                            ViewUtil.notifyDataSetChanged(play_game_list_2_rv);
-                                            notifyDataSetChanged();
-                                        }
-                                    }
-
-                                    @Override
-                                    public void onError(BaseMessage baseMessage) {
-                                        notifyDataSetChanged();
-                                    }
-                                });
-                    }
-                });
-    }
-
-    //预下载下面的tagList
-    private void initGameTagList() {
-        gameEntityListx.clear();
-        ViewUtil.notifyDataSetChanged(play_game_list_x_rv);
-        //预下载
-        GameListType gameListType = new GameListType();
-        gameListType.setTitle("预下载");
-        gameListType.setDownload_type(GameListType.T_DOWNLOAD_TYPE_YES);
-        initGameList(play_game_list_x_rv, gameEntityListx, gameListType);
-        //其它tag
-        SheepApp.getInstance().getNetComponent().getApiService().getGameTagList()
-                .subscribeOn(Schedulers.io())
-                .flatMap(new Function<BaseMessage, Observable<GameListTag>>() {
-                    @Override
-                    public Observable<GameListTag> apply(BaseMessage baseMessage) throws Exception {
-                        ArrayList<GameListTag> gameListTagList = baseMessage.getDataList(GameListTag.class);
-                        return Observable.fromIterable(gameListTagList);
-                    }
-                })
-                .filter(new Predicate<GameListTag>() {
-                    @Override
-                    public boolean test(GameListTag gameListTag) {
-                        return gameListTag != null;
-                    }
-                })
-                .subscribe(new AbsObserver<GameListTag>() {
-
-                    @Override
-                    public void onNext(GameListTag gameListTag) {
-                        initGameList(play_game_list_x_rv, gameEntityListx, gameListTag.toGameListType());
-                    }
-                });
-    }
-
-    //刷新banner数据
-    private void initBanner() {
-        //轮播
-        List<SlideshowEty> cacheSlideshowEtyList = DataUtil.getInstance().getCacheList(ApiKey.slideshowGame, SlideshowEty.class);
-        if (ListUtil.isEmpty(cacheSlideshowEtyList)) {
-            banner.setVisibility(View.GONE);
-        } else {
-            slideshowEtyLists.clear();
-            slideshowTitleList.clear();
-            for (SlideshowEty slideshowEty : cacheSlideshowEtyList) {
-                slideshowEtyLists.add(slideshowEty);
-                slideshowTitleList.add(slideshowEty.getTitle());
-            }
-            bindBanner();
-        }
-
-        SheepApp.getInstance().getNetComponent().getApiService().gameBanner(1)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        notifyDataSetChanged();
-                    }
-
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.slideshowGame);
-                        if (isNewData) {
-                            List<SlideshowEty> slideshowEtyList = baseMessage.getDataList(SlideshowEty.class);
-                            if (ListUtil.isEmpty(slideshowEtyList)) {
-                                banner.setVisibility(View.GONE);
-                            } else {
-                                slideshowEtyLists.clear();
-                                slideshowTitleList.clear();
-                                for (SlideshowEty slideshowEty : slideshowEtyList) {
-                                    slideshowEtyLists.add(slideshowEty);
-                                    slideshowTitleList.add(slideshowEty.getTitle());
-                                }
-                                bindBanner();
-                            }
-                        }
-                        notifyDataSetChanged();
-                    }
-                });
-    }
-
-    private void bindBanner() {
-        //结束轮播
-        banner.stopAutoPlay();
-        banner.setVisibility(View.VISIBLE);
-        //设置图片加载器
-        banner.setImageLoader(new ImageLoader() {
-            @Override
-            public void displayImage(Context context, Object o, ImageView imageView) {
-                if (o instanceof SlideshowEty)
-                    Glide.with(context).load(((SlideshowEty) o).getUrl()).apply(new RequestOptions().dontAnimate()).into(imageView);
-            }
-        })
-                .setDelayTime(4000)
-                .setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE)
-                //设置图片集合
-                .setImages(slideshowEtyLists).setBannerTitles(slideshowTitleList)
-                .setOnBannerListener(new OnBannerListener() {
-                    @Override
-                    public void OnBannerClick(int i) {
-                        try {
-                            CommonUtil.getInstance().clickBanner(getActivity(), i, slideshowEtyLists);
-                        } catch (Exception e) {
-                            G.showToast(e.getMessage());
-                        }
-                    }
-                });
-
-        //banner设置方法全部调用完毕时最后调用
-        banner.start();
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-        //结束轮播
-        banner.startAutoPlay();
-    }
-
-    @Override
-    public void onStop() {
-        super.onStop();
-        //结束轮播
-        banner.stopAutoPlay();
-    }
-
-    //刷新每日必玩、近期最热、猜你喜欢的数据
-    private void initGameList3() {
-        gameEntityList3.clear();
-        Observable.fromIterable(gameListTypeList3)
-                .subscribe(new AbsObserver<GameListType>() {
-
-                    @Override
-                    public void onNext(final GameListType gameListType) {
-                        initGameList(play_game_list_3_rv, gameEntityList3, gameListType);
-                    }
-                });
-    }
-
-    private void initGameList(final RecyclerView playGameListRv, final List<ListTypeList<GameEntity, GameListType>> gameEntityListList, final GameListType gameListType) {
-        if (gameListType == null) {
-            return;
-        }
-        ObservableUtil.getObservable(SheepApp.getInstance().getNetComponent().getApiService(), gameListType).subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        List<GameEntity> newList = baseMessage.getDatas(GameEntity.class);
-                        if (!ListUtil.isEmpty(newList)) {
-                            gameEntityListList.add(new ListTypeList<>(gameListType, newList));
-                            ViewUtil.notifyDataSetChanged(playGameListRv);
-                        }
-                        notifyDataSetChanged();
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        notifyDataSetChanged();
-                    }
-                });
-    }
-
-    private void notifyDataSetChanged() {
-        if (refresh != null) {
-            refresh.finishRefresh();
-        }
-    }
-}
+//package com.sheep.gamegroup.view.fragment;
+//
+//import android.content.Context;
+//import android.support.annotation.NonNull;
+//import android.support.v7.widget.LinearLayoutManager;
+//import android.support.v7.widget.RecyclerView;
+//import android.view.View;
+//import android.widget.ImageView;
+//import android.widget.LinearLayout;
+//import android.widget.TextView;
+//
+//import com.bumptech.glide.Glide;
+//import com.bumptech.glide.request.RequestOptions;
+//import com.kfzs.appstore.utils.adapter.recyclerview.RecyclerViewAdapter;
+//import com.scwang.smartrefresh.layout.SmartRefreshLayout;
+//import com.scwang.smartrefresh.layout.api.RefreshLayout;
+//import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+//import com.sheep.gamegroup.absBase.AbsObserver;
+//import com.sheep.gamegroup.model.entity.BaseMessage;
+//import com.sheep.gamegroup.model.entity.GameEntity;
+//import com.sheep.gamegroup.model.entity.GameListTag;
+//import com.sheep.gamegroup.model.entity.GameListType;
+//import com.sheep.gamegroup.model.entity.GameRecommend;
+//import com.sheep.gamegroup.model.entity.ListTypeList;
+//import com.sheep.gamegroup.model.entity.SlideshowEty;
+//import com.sheep.gamegroup.model.util.SheepSubscriber;
+//import com.sheep.gamegroup.util.CommonUtil;
+//import com.sheep.gamegroup.util.DataUtil;
+//import com.sheep.gamegroup.util.ListUtil;
+//import com.sheep.gamegroup.util.ObservableUtil;
+//import com.sheep.gamegroup.util.RefreshUtil;
+//import com.sheep.gamegroup.util.ViewUtil;
+//import com.sheep.gamegroup.view.adapter.AdpGameCenter1_2List;
+//import com.sheep.gamegroup.view.adapter.AdpGameCenter3_3List;
+//import com.sheep.jiuyan.samllsheep.R;
+//import com.sheep.jiuyan.samllsheep.SheepApp;
+//import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+//import com.sheep.jiuyan.samllsheep.utils.G;
+//import com.youth.banner.Banner;
+//import com.youth.banner.BannerConfig;
+//import com.youth.banner.listener.OnBannerListener;
+//import com.youth.banner.loader.ImageLoader;
+//
+//import org.afinal.simplecache.ApiKey;
+//
+//import java.util.ArrayList;
+//import java.util.List;
+//
+//import butterknife.BindView;
+//import butterknife.Unbinder;
+//import io.reactivex.Observable;
+//import io.reactivex.android.schedulers.AndroidSchedulers;
+//import io.reactivex.functions.Function;
+//import io.reactivex.functions.Predicate;
+//import io.reactivex.schedulers.Schedulers;
+//
+///**
+// * Created by realicing on 2018/10/30.
+// * realicing@sina.com
+// */
+//public class FgtPlayGame extends BaseFragment {
+//    @BindView(R.id.banner)
+//    Banner banner;
+//    @BindView(R.id.play_game_act)
+//    RecyclerView play_game_act;
+//    @BindView(R.id.play_game_list_3_rv)
+//    RecyclerView play_game_list_3_rv;
+//    @BindView(R.id.play_game_list_2_rv)
+//    RecyclerView play_game_list_2_rv;
+//    @BindView(R.id.play_game_list_x_rv)
+//    RecyclerView play_game_list_x_rv;
+//    @BindView(R.id.refresh)
+//    SmartRefreshLayout refresh;
+//    Unbinder unbinder;
+//
+//    //游戏首页活动列表
+//    private List<SlideshowEty> gameActList = new ArrayList<>();
+//    //每日必玩", "近期最热", "猜你喜欢
+//    private List<GameListType> gameListTypeList3 = new ArrayList<>();
+//    private List<ListTypeList<GameEntity, GameListType>> gameEntityList3 = new ArrayList<>();
+//    //天天更新与重点推荐
+//    private List<GameListType> gameListTypeList2 = new ArrayList<>();
+//    private List<ListTypeList<GameRecommend, GameListType>> gameListTypeList2List = new ArrayList<>();
+//    //预下载和tag列表的数据
+//    private List<ListTypeList<GameEntity, GameListType>> gameEntityListx = new ArrayList<>();
+//    private List<SlideshowEty> slideshowEtyLists = new ArrayList<>();
+//    private List<String> slideshowTitleList = new ArrayList<>();
+//
+//
+//    @Override
+//    public int getLayoutId() {
+//        return R.layout.fgt_play_game;
+//    }
+//
+//    public static final int[] gameActBgIds = {R.drawable.shape_purple_gradient_solid_rectangle_5, R.drawable.shape_orange_gradient_solid_rectangle_5, R.drawable.shape_light_blue_gradient_solid_rectangle_5};
+//
+//    @Override
+//    public void onViewCreated() {
+//        //banner
+//        LinearLayout.LayoutParams bannerLayoutParams = (LinearLayout.LayoutParams) banner.getLayoutParams();
+//        bannerLayoutParams.height = G.WIDTH * 25 / 72;
+//        banner.setLayoutParams(bannerLayoutParams);
+//
+//        //游戏首页活动列表
+//        LinearLayoutManager playGameActManager = new LinearLayoutManager(SheepApp.getInstance(), LinearLayoutManager.HORIZONTAL, false);
+//        play_game_act.setHasFixedSize(true);
+//        play_game_act.setNestedScrollingEnabled(false);
+//        play_game_act.setLayoutManager(playGameActManager);
+//        play_game_act.setAdapter(new RecyclerViewAdapter<SlideshowEty>(SheepApp.getInstance(), R.layout.item_game_act, gameActList) {
+//            @Override
+//            public void convert(com.kfzs.appstore.utils.adapter.recyclerview.ViewHolder viewHolder, final SlideshowEty item, int position) {
+//                View item_game_act_start = viewHolder.itemView.findViewById(R.id.item_game_act_start);
+//                View item_game_act_content = viewHolder.itemView.findViewById(R.id.item_game_act_content);
+//                View item_game_act_end = viewHolder.itemView.findViewById(R.id.item_game_act_end);
+//                ImageView item_game_act_iv = viewHolder.itemView.findViewById(R.id.item_game_act_iv);
+//                TextView item_game_act_tv = viewHolder.itemView.findViewById(R.id.item_game_act_tv);
+//                ViewUtil.setVisibility(item_game_act_start, position == 0);
+//                ViewUtil.setVisibility(item_game_act_end, position + 1 == gameActList.size());
+//                item_game_act_content.setBackgroundResource(gameActBgIds[position % gameActBgIds.length]);
+//                if (item == null) {
+//                    ViewUtil.setDefaultText(item_game_act_tv);
+//                } else {
+//                    ViewUtil.setImage(item_game_act_iv, item.getUrl());
+//                    ViewUtil.setText(item_game_act_tv, item.getTitle());
+//                }
+//                viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
+//                    @Override
+//                    public void onClick(View view) {
+//                        try {
+//                            CommonUtil.getInstance().clickBanner(getActivity(), item);
+//                        } catch (Exception e) {
+//                            G.showToast(e.getMessage());
+//                        }
+//                    }
+//                });
+//
+//            }
+//        });
+//
+//        //每日必玩、近期最热、猜你喜欢
+//        play_game_list_3_rv.setHasFixedSize(true);
+//        play_game_list_3_rv.setNestedScrollingEnabled(false);
+//        play_game_list_3_rv.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
+//        play_game_list_3_rv.setAdapter(new AdpGameCenter3_3List(getActivity(), gameEntityList3).setShowFirstTop(false));
+//        //天天更新、重点推荐
+//        play_game_list_2_rv.setHasFixedSize(true);
+//        play_game_list_2_rv.setNestedScrollingEnabled(false);
+//        play_game_list_2_rv.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
+//        play_game_list_2_rv.setAdapter(new AdpGameCenter1_2List(getActivity(), gameListTypeList2List));
+//        //预下载与其它列表
+//        play_game_list_x_rv.setHasFixedSize(true);
+//        play_game_list_x_rv.setNestedScrollingEnabled(false);
+//        play_game_list_x_rv.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
+//        play_game_list_x_rv.setAdapter(new AdpGameCenter3_3List(getActivity(), gameEntityListx));
+//
+//        refresh.setOnRefreshListener(new OnRefreshListener() {
+//
+//            @Override
+//            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
+//                refreshData();
+//            }
+//        });
+//        RefreshUtil.newInstance().publicParameter(refresh, getActivity());
+//        initGameListType3List();
+//        initGameListType2List();
+//        refresh.autoRefresh();
+//    }
+//
+//    public static final String[] gameListType3Titles = {"每日必玩", "近期最热", "猜你喜欢"};
+//    public static final int[] gameListType3IsHots = {1, 0, 0};
+//    public static final int[] gameListType3DailyPlays = {0, 1, 0};
+//
+//    private void initGameListType3List() {
+//        //每日必玩", "近期最热", "猜你喜欢
+//        for (int i = 0; i < gameListType3Titles.length; i++) {
+//            GameListType gameListType = new GameListType();
+//            gameListType.setTitle(gameListType3Titles[i]);
+//            gameListType.setPer_page(20);
+//            gameListType.setIs_hot(gameListType3IsHots[i]);
+//            gameListType.setDaily_play(gameListType3DailyPlays[i]);
+//            gameListTypeList3.add(gameListType);
+//        }
+//    }
+//
+//    public static final String[] gameListType2Titles = {"天天更新", "重点推荐"};
+//    public static final int[] gameListType2DisplayTypes = {1, 2};
+//
+//    private void initGameListType2List() {
+//        //天天更新", "重点推荐
+//        for (int i = 0; i < gameListType2Titles.length; i++) {
+//            GameListType gameListType = new GameListType();
+//            gameListType.setTitle(gameListType2Titles[i]);
+//            gameListType.setDisplay_type(gameListType2DisplayTypes[i]);
+//            gameListTypeList2.add(gameListType);
+//        }
+//    }
+//
+//    private void refreshData() {
+//        initBanner();
+//        initBannerAct();
+//        initGameList3();
+//        initRecommendList();
+//        initGameTagList();
+//    }
+//
+//    private void initBannerAct() {
+//        gameActList.clear();
+//        ViewUtil.notifyDataSetChanged(play_game_act);
+//        SheepApp.getInstance().getNetComponent().getApiService().gameBannerAct()
+//                .subscribeOn(Schedulers.io())
+//                .observeOn(AndroidSchedulers.mainThread())
+//                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+//                    @Override
+//                    public void onNext(BaseMessage baseMessage) {
+//                        ArrayList<SlideshowEty> newList = baseMessage.getDataList(SlideshowEty.class);
+//                        if (!ListUtil.isEmpty(newList)) {
+//                            gameActList.addAll(newList);
+//                        }
+//                        ViewUtil.notifyDataSetChanged(play_game_act);
+//                        notifyDataSetChanged();
+//                    }
+//
+//                    @Override
+//                    public void onError(BaseMessage baseMessage) {
+//                        notifyDataSetChanged();
+//                    }
+//                });
+//    }
+//
+//    //天天更新、重点推荐
+//    private void initRecommendList() {
+//        gameListTypeList2List.clear();
+//        ViewUtil.notifyDataSetChanged(play_game_list_2_rv);
+//        Observable.fromIterable(gameListTypeList2)
+//                .subscribe(new AbsObserver<GameListType>() {
+//                    @Override
+//                    public void onNext(final GameListType gameListType) {
+//                        SheepApp.getInstance().getNetComponent().getApiService().getRecommendList(gameListType.getDisplay_type())
+//                                .subscribeOn(Schedulers.io())
+//                                .observeOn(AndroidSchedulers.mainThread())
+//                                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+//                                    @Override
+//                                    public void onNext(BaseMessage baseMessage) {
+//                                        List<GameRecommend> newList = baseMessage.getDatas(GameRecommend.class);
+//                                        if (!ListUtil.isEmpty(newList)) {
+//                                            gameListTypeList2List.add(new ListTypeList<>(gameListType, newList));
+//                                            ViewUtil.notifyDataSetChanged(play_game_list_2_rv);
+//                                            notifyDataSetChanged();
+//                                        }
+//                                    }
+//
+//                                    @Override
+//                                    public void onError(BaseMessage baseMessage) {
+//                                        notifyDataSetChanged();
+//                                    }
+//                                });
+//                    }
+//                });
+//    }
+//
+//    //预下载下面的tagList
+//    private void initGameTagList() {
+//        gameEntityListx.clear();
+//        ViewUtil.notifyDataSetChanged(play_game_list_x_rv);
+//        //预下载
+//        GameListType gameListType = new GameListType();
+//        gameListType.setTitle("预下载");
+//        gameListType.setDownload_type(GameListType.T_DOWNLOAD_TYPE_YES);
+//        initGameList(play_game_list_x_rv, gameEntityListx, gameListType);
+//        //其它tag
+//        SheepApp.getInstance().getNetComponent().getApiService().getGameTagList()
+//                .subscribeOn(Schedulers.io())
+//                .flatMap(new Function<BaseMessage, Observable<GameListTag>>() {
+//                    @Override
+//                    public Observable<GameListTag> apply(BaseMessage baseMessage) throws Exception {
+//                        ArrayList<GameListTag> gameListTagList = baseMessage.getDataList(GameListTag.class);
+//                        return Observable.fromIterable(gameListTagList);
+//                    }
+//                })
+//                .filter(new Predicate<GameListTag>() {
+//                    @Override
+//                    public boolean test(GameListTag gameListTag) {
+//                        return gameListTag != null;
+//                    }
+//                })
+//                .subscribe(new AbsObserver<GameListTag>() {
+//
+//                    @Override
+//                    public void onNext(GameListTag gameListTag) {
+//                        initGameList(play_game_list_x_rv, gameEntityListx, gameListTag.toGameListType());
+//                    }
+//                });
+//    }
+//
+//    //刷新banner数据
+//    private void initBanner() {
+//        //轮播
+//        List<SlideshowEty> cacheSlideshowEtyList = DataUtil.getInstance().getCacheList(ApiKey.slideshowGame, SlideshowEty.class);
+//        if (ListUtil.isEmpty(cacheSlideshowEtyList)) {
+//            banner.setVisibility(View.GONE);
+//        } else {
+//            slideshowEtyLists.clear();
+//            slideshowTitleList.clear();
+//            for (SlideshowEty slideshowEty : cacheSlideshowEtyList) {
+//                slideshowEtyLists.add(slideshowEty);
+//                slideshowTitleList.add(slideshowEty.getTitle());
+//            }
+//            bindBanner();
+//        }
+//
+//        SheepApp.getInstance().getNetComponent().getApiService().gameBanner(1)
+//                .subscribeOn(Schedulers.io())
+//                .observeOn(AndroidSchedulers.mainThread())
+//                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+//                    @Override
+//                    public void onError(BaseMessage baseMessage) {
+//                        notifyDataSetChanged();
+//                    }
+//
+//                    @Override
+//                    public void onNext(BaseMessage baseMessage) {
+//                        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.slideshowGame);
+//                        if (isNewData) {
+//                            List<SlideshowEty> slideshowEtyList = baseMessage.getDataList(SlideshowEty.class);
+//                            if (ListUtil.isEmpty(slideshowEtyList)) {
+//                                banner.setVisibility(View.GONE);
+//                            } else {
+//                                slideshowEtyLists.clear();
+//                                slideshowTitleList.clear();
+//                                for (SlideshowEty slideshowEty : slideshowEtyList) {
+//                                    slideshowEtyLists.add(slideshowEty);
+//                                    slideshowTitleList.add(slideshowEty.getTitle());
+//                                }
+//                                bindBanner();
+//                            }
+//                        }
+//                        notifyDataSetChanged();
+//                    }
+//                });
+//    }
+//
+//    private void bindBanner() {
+//        //结束轮播
+//        banner.stopAutoPlay();
+//        banner.setVisibility(View.VISIBLE);
+//        //设置图片加载器
+//        banner.setImageLoader(new ImageLoader() {
+//            @Override
+//            public void displayImage(Context context, Object o, ImageView imageView) {
+//                if (o instanceof SlideshowEty)
+//                    Glide.with(context).load(((SlideshowEty) o).getUrl()).apply(new RequestOptions().dontAnimate()).into(imageView);
+//            }
+//        })
+//                .setDelayTime(4000)
+//                .setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE)
+//                //设置图片集合
+//                .setImages(slideshowEtyLists).setBannerTitles(slideshowTitleList)
+//                .setOnBannerListener(new OnBannerListener() {
+//                    @Override
+//                    public void OnBannerClick(int i) {
+//                        try {
+//                            CommonUtil.getInstance().clickBanner(getActivity(), i, slideshowEtyLists);
+//                        } catch (Exception e) {
+//                            G.showToast(e.getMessage());
+//                        }
+//                    }
+//                });
+//
+//        //banner设置方法全部调用完毕时最后调用
+//        banner.start();
+//    }
+//
+//    @Override
+//    public void onStart() {
+//        super.onStart();
+//        //结束轮播
+//        banner.startAutoPlay();
+//    }
+//
+//    @Override
+//    public void onStop() {
+//        super.onStop();
+//        //结束轮播
+//        banner.stopAutoPlay();
+//    }
+//
+//    //刷新每日必玩、近期最热、猜你喜欢的数据
+//    private void initGameList3() {
+//        gameEntityList3.clear();
+//        Observable.fromIterable(gameListTypeList3)
+//                .subscribe(new AbsObserver<GameListType>() {
+//
+//                    @Override
+//                    public void onNext(final GameListType gameListType) {
+//                        initGameList(play_game_list_3_rv, gameEntityList3, gameListType);
+//                    }
+//                });
+//    }
+//
+//    private void initGameList(final RecyclerView playGameListRv, final List<ListTypeList<GameEntity, GameListType>> gameEntityListList, final GameListType gameListType) {
+//        if (gameListType == null) {
+//            return;
+//        }
+//        ObservableUtil.getObservable(SheepApp.getInstance().getNetComponent().getApiService(), gameListType).subscribeOn(Schedulers.io())
+//                .observeOn(AndroidSchedulers.mainThread())
+//                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+//                    @Override
+//                    public void onNext(BaseMessage baseMessage) {
+//                        List<GameEntity> newList = baseMessage.getDatas(GameEntity.class);
+//                        if (!ListUtil.isEmpty(newList)) {
+//                            gameEntityListList.add(new ListTypeList<>(gameListType, newList));
+//                            ViewUtil.notifyDataSetChanged(playGameListRv);
+//                        }
+//                        notifyDataSetChanged();
+//                    }
+//
+//                    @Override
+//                    public void onError(BaseMessage baseMessage) {
+//                        notifyDataSetChanged();
+//                    }
+//                });
+//    }
+//
+//    private void notifyDataSetChanged() {
+//        if (refresh != null) {
+//            refresh.finishRefresh();
+//        }
+//    }
+//}

+ 8 - 0
app/src/main/res/drawable/shape_gradient_4193f3_83e1ff.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners android:radius="5dp"/>
+    <gradient
+        android:endColor="#4193F3"
+        android:startColor="#83E1FF" />
+</shape>

+ 8 - 0
app/src/main/res/drawable/shape_gradient_4cddee_c3eefb.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners android:radius="5dp"/>
+    <gradient
+        android:endColor="#4CDDEE"
+        android:startColor="#C3EEFB" />
+</shape>

+ 8 - 0
app/src/main/res/drawable/shape_gradient_9d57fb_ce98ff.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners android:radius="5dp"/>
+    <gradient
+        android:endColor="#9D57FB"
+        android:startColor="#CE98FF" />
+</shape>

+ 8 - 0
app/src/main/res/drawable/shape_gradient_ff7a6b_ff9e72.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners android:radius="5dp"/>
+    <gradient
+        android:endColor="#ff7a6b"
+        android:startColor="#ff9e72" />
+</shape>

+ 30 - 0
app/src/main/res/layout/fgt_game_group_more.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.scwang.smartrefresh.layout.SmartRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/refresh"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/white">
+
+    <android.support.v4.widget.NestedScrollView
+        android:id="@+id/scrollView"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:scrollbars="none">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:focusable="true"
+            android:focusableInTouchMode="true"
+            android:orientation="vertical">
+
+            <android.support.v7.widget.RecyclerView
+                android:id="@+id/play_game_list_x_rv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+
+        </LinearLayout>
+
+    </android.support.v4.widget.NestedScrollView>
+
+</com.scwang.smartrefresh.layout.SmartRefreshLayout>

+ 1 - 0
app/src/main/res/layout/fgt_play_game.xml

@@ -19,6 +19,7 @@
 
             <include layout="@layout/homepage_item_banner" />
 
+            <include layout="@layout/include_game_group_type"/>
             <android.support.v7.widget.RecyclerView
                 android:id="@+id/play_game_act"
                 android:layout_width="match_parent"

+ 128 - 0
app/src/main/res/layout/include_game_group_type.xml

@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <View
+        android:id="@+id/include_gct_bg_v0"
+        android:layout_width="0dp"
+        android:layout_height="52dp"
+        android:layout_marginStart="17dp"
+        android:layout_marginTop="14dp"
+        android:background="@drawable/shape_gradient_4193f3_83e1ff"
+        app:layout_constraintBottom_toTopOf="@id/include_gct_bg_v2"
+        app:layout_constraintEnd_toStartOf="@id/include_gct_bg_v1"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <View
+        android:id="@+id/include_gct_bg_v1"
+        android:layout_width="0dp"
+        android:layout_height="52dp"
+        android:layout_marginStart="30dp"
+        android:layout_marginTop="14dp"
+        android:layout_marginEnd="17dp"
+        android:background="@drawable/shape_gradient_9d57fb_ce98ff"
+        app:layout_constraintBottom_toTopOf="@id/include_gct_bg_v3"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toEndOf="@id/include_gct_bg_v0"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <View
+        android:id="@+id/include_gct_bg_v2"
+        android:layout_width="0dp"
+        android:layout_height="52dp"
+        android:layout_marginStart="17dp"
+        android:layout_marginTop="28dp"
+        android:background="@drawable/shape_gradient_ff7a6b_ff9e72"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toStartOf="@id/include_gct_bg_v3"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@id/include_gct_bg_v0" />
+
+    <View
+        android:id="@+id/include_gct_bg_v3"
+        android:layout_width="0dp"
+        android:layout_height="52dp"
+        android:layout_marginStart="30dp"
+        android:layout_marginTop="28dp"
+        android:layout_marginEnd="17dp"
+        android:background="@drawable/shape_gradient_4cddee_c3eefb"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toEndOf="@id/include_gct_bg_v2"
+        app:layout_constraintTop_toBottomOf="@id/include_gct_bg_v1" />
+
+    <TextView
+        android:id="@+id/include_gct_name_tv0"
+        style="@style/style_game_group_type_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="15dp"
+        android:text="绵羊新游"
+        app:layout_constraintBottom_toBottomOf="@id/include_gct_bg_v0"
+        app:layout_constraintStart_toStartOf="@id/include_gct_bg_v0"
+        app:layout_constraintTop_toTopOf="@id/include_gct_bg_v0" />
+
+    <TextView
+        android:id="@+id/include_gct_name_tv1"
+        style="@style/style_game_group_type_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="15dp"
+        android:text="免费道具"
+        app:layout_constraintBottom_toBottomOf="@id/include_gct_bg_v1"
+        app:layout_constraintStart_toStartOf="@id/include_gct_bg_v1"
+        app:layout_constraintTop_toTopOf="@id/include_gct_bg_v1" />
+
+    <TextView
+        android:id="@+id/include_gct_name_tv2"
+        style="@style/style_game_group_type_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="15dp"
+        android:text="绵羊推荐"
+        app:layout_constraintBottom_toBottomOf="@id/include_gct_bg_v2"
+        app:layout_constraintStart_toStartOf="@id/include_gct_bg_v2"
+        app:layout_constraintTop_toTopOf="@id/include_gct_bg_v2" />
+
+    <TextView
+        android:id="@+id/include_gct_name_tv3"
+        style="@style/style_game_group_type_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="15dp"
+        android:text="排行榜"
+        app:layout_constraintBottom_toBottomOf="@id/include_gct_bg_v3"
+        app:layout_constraintStart_toStartOf="@id/include_gct_bg_v3"
+        app:layout_constraintTop_toTopOf="@id/include_gct_bg_v3" />
+
+    <ImageView
+        android:id="@+id/include_gct_icon_iv0"
+        style="@style/style_game_group_type_iv"
+        android:layout_marginEnd="15dp"
+        app:layout_constraintBottom_toBottomOf="@id/include_gct_bg_v0"
+        app:layout_constraintEnd_toStartOf="@id/include_gct_bg_v1" />
+
+    <ImageView
+        android:id="@+id/include_gct_icon_iv1"
+        style="@style/style_game_group_type_iv"
+        android:layout_marginEnd="2dp"
+        app:layout_constraintBottom_toBottomOf="@id/include_gct_bg_v1"
+        app:layout_constraintEnd_toEndOf="parent" />
+
+    <ImageView
+        android:id="@+id/include_gct_icon_iv2"
+        style="@style/style_game_group_type_iv"
+        android:layout_marginEnd="15dp"
+        app:layout_constraintBottom_toBottomOf="@id/include_gct_bg_v2"
+        app:layout_constraintEnd_toStartOf="@id/include_gct_bg_v3" />
+
+    <ImageView
+        android:id="@+id/include_gct_icon_iv3"
+        style="@style/style_game_group_type_iv"
+        android:layout_marginEnd="2dp"
+        app:layout_constraintBottom_toBottomOf="@id/include_gct_bg_v3"
+        app:layout_constraintEnd_toEndOf="parent" />
+</android.support.constraint.ConstraintLayout>

+ 23 - 0
app/src/main/res/values/dd_styles.xml

@@ -33,6 +33,7 @@
         <item name="android:layout_margin">@dimen/dp_10</item>
         <item name="android:textSize">@dimen/text_size_15</item>
     </style>
+
     <style name="style_button_full" parent="button">
         <item name="android:layout_width">match_parent</item>
         <item name="android:gravity">center</item>
@@ -288,10 +289,12 @@
         <item name="android:textSize">14sp</item>
         <item name="android:textColor">#000000</item>
     </style>
+
     <style name="SheepTabLayoutTextAppearance2" parent="@android:style/TextAppearance.Holo.Large">
         <item name="android:textSize">14sp</item>
         <item name="android:textColor">@color/selector_color_tab2</item>
     </style>
+
     <style name="SheepTabLayoutTextAppearanceAskmoney" parent="@android:style/TextAppearance.Holo.Large">
         <item name="android:textSize">14sp</item>
         <item name="android:textColor">#996633</item>
@@ -333,12 +336,14 @@
         <item name="android:layout_marginStart">@dimen/content_padding</item>
         <item name="android:background">@color/white_bg_line</item>
     </style>
+
     <style name="style_item_line_3_0">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">1px</item>
         <item name="android:layout_marginStart">20dp</item>
         <item name="android:background">@color/white_bg_line</item>
     </style>
+
     <style name="style_item_line_new">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">1px</item>
@@ -382,6 +387,7 @@
         <item name="tabSelectedTextColor">#2ebef2</item>
         <item name="tabTextAppearance">@style/SheepTabLayoutTextAppearance</item>
     </style>
+
     <style name="style_tab_2">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">36dp</item>
@@ -405,6 +411,7 @@
         <item name="tabSelectedTextColor">#791BE3</item>
         <item name="tabTextAppearance">@style/SheepTabLayoutTextAppearanceAskmoney</item>
     </style>
+
     <style name="style_login_et">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">@dimen/edt_heigh_default</item>
@@ -444,6 +451,7 @@
         <item name="android:textColor">#666666</item>
         <item name="android:textSize">12sp</item>
     </style>
+
     <style name="style_modify_third_et">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">@dimen/edt_heigh_default</item>
@@ -454,6 +462,7 @@
         <item name="android:textColorHint">#CCCCCC</item>
         <item name="android:textSize">15sp</item>
     </style>
+
     <style name="style_code_btn">
         <item name="android:layout_width">wrap_content</item>
         <item name="android:layout_height">30dp</item>
@@ -481,4 +490,18 @@
         <item name="android:textSize">9sp</item>
         <item name="android:background">@drawable/shape_red_stroke_rectangle_no_lb</item>
     </style>
+    <!-- 绵羊新游、免费道具、绵羊推荐、排行榜 样式-->
+    <style name="style_game_group_type_tv">
+        <item name="android:textColor">#ffffff</item>
+        <item name="android:textSize">16sp</item>
+        <item name="android:textStyle">bold</item>
+    </style>
+
+    <style name="style_game_group_type_iv">
+        <item name="android:layout_width">100dp</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:src">@drawable/icon</item>
+        <item name="android:scaleType">fitXY</item>
+        <item name="android:adjustViewBounds">true</item>
+    </style>
 </resources>