Explorar el Código

Merge remote-tracking branch 'origin/sheep_develop' into sheep_develop

# Conflicts:
#	app/src/main/AndroidManifest.xml
#	app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java
#	app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
zengjiebin hace 7 años
padre
commit
34958ad54e
Se han modificado 38 ficheros con 2404 adiciones y 184 borrados
  1. 5 2
      app/src/main/AndroidManifest.xml
  2. 2 2
      app/src/main/java/com/kfzs/duanduan/fragment/FgtFindChild.java
  3. 40 25
      app/src/main/java/com/kfzs/duanduan/fragment/FgtPersonalCenter.java
  4. 1 81
      app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java
  5. 61 14
      app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java
  6. 8 0
      app/src/main/java/com/sheep/gamegroup/model/entity/FindTag.java
  7. 146 0
      app/src/main/java/com/sheep/gamegroup/model/entity/MessageCenterEntity.java
  8. 126 0
      app/src/main/java/com/sheep/gamegroup/model/entity/MessageReplyEntity.java
  9. 23 0
      app/src/main/java/com/sheep/gamegroup/model/entity/MessageUnReadEntity.java
  10. 315 0
      app/src/main/java/com/sheep/gamegroup/model/entity/PlayGameEntity.java
  11. 81 0
      app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java
  12. 9 0
      app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
  13. 53 0
      app/src/main/java/com/sheep/gamegroup/view/activity/ActEverydayPlayGame.java
  14. 2 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActGameCenter.java
  15. 163 0
      app/src/main/java/com/sheep/gamegroup/view/activity/BaseListActivity.java
  16. 87 0
      app/src/main/java/com/sheep/gamegroup/view/activity/MessageCenterDetailActivity.java
  17. 40 1
      app/src/main/java/com/sheep/gamegroup/view/activity/MessageInteractionDetailActivity.java
  18. 40 0
      app/src/main/java/com/sheep/gamegroup/view/activity/MessageReplyDetailActivity.java
  19. 2 2
      app/src/main/java/com/sheep/gamegroup/view/activity/ActivityMessages.java
  20. 1 7
      app/src/main/java/com/sheep/gamegroup/view/adapter/MessageInteractionAdapter.java
  21. 21 20
      app/src/main/java/com/sheep/gamegroup/view/adapter/MessageLeftAdapter.java
  22. 100 0
      app/src/main/java/com/sheep/gamegroup/view/adapter/MessageRightAdapter.java
  23. 50 0
      app/src/main/java/com/sheep/gamegroup/view/adapter/PlayGameItemAdapter.java
  24. 377 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGame.java
  25. 114 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGameSon.java
  26. 134 12
      app/src/main/java/com/sheep/gamegroup/view/fragment/MessageCenterFragment.java
  27. 133 9
      app/src/main/java/com/sheep/gamegroup/view/fragment/MessageReplyFragment.java
  28. 1 2
      app/src/main/res/layout/activity_messagesystem.xml
  29. 2 1
      app/src/main/res/layout/adapter_message_left_fragment.xml
  30. 2 4
      app/src/main/res/layout/fgt_personacenter_item_top.xml
  31. 77 0
      app/src/main/res/layout/fgt_play_game.xml
  32. 10 0
      app/src/main/res/layout/fragment_message_reply.xml
  33. 6 1
      app/src/main/res/layout/fragment_messagecenter.xml
  34. 165 0
      app/src/main/res/layout/play_game_vertical_list_item.xml
  35. 7 0
      app/src/main/res/layout/recyclerview_layout.xml
  36. BIN
      app/src/main/res/mipmap-xxhdpi/message_read_icon.png
  37. BIN
      app/src/main/res/mipmap-xxhdpi/message_unread.png
  38. BIN
      app/src/main/res/mipmap-xxhdpi/message_unread_icon.png

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

@@ -577,7 +577,7 @@
             android:screenOrientation="portrait"/>
         <activity android:name="com.sheep.gamegroup.view.activity.ActSetting"
             android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActivityMessages"
+        <activity android:name="com.sheep.gamegroup.view.activity.MessagesActivity"
             android:screenOrientation="portrait"/>
         <activity android:name="com.sheep.gamegroup.view.activity.ActGameCenter"
             android:screenOrientation="portrait"/>
@@ -593,7 +593,10 @@
             android:exported="true"/>
         <activity android:name="com.sheep.gamegroup.view.activity.ActModifyThird"
             android:exported="true"/>
-
+        <activity android:name="com.sheep.gamegroup.view.activity.ActEverydayPlayGame"
+            android:exported="true"/>
+        <activity android:name="com.sheep.gamegroup.view.activity.MessageCenterDetailActivity"
+            android:exported="true"/>
         <!--start幂动科技-->
 
         <activity android:name="com.sheep.gamegroup.view.activity.ActMiDong"

+ 2 - 2
app/src/main/java/com/kfzs/duanduan/fragment/FgtFindChild.java

@@ -327,8 +327,8 @@ public class FgtFindChild extends BaseCompatFragment {
                     }
 
                     @Override
-                    public void onError(BaseMessage baseMessage) {
-                        notifyDataSetChanged();
+                    public void onError(BaseMessage baseMessage){
+                            notifyDataSetChanged();
                     }
                 });
     }

+ 40 - 25
app/src/main/java/com/kfzs/duanduan/fragment/FgtPersonalCenter.java

@@ -15,17 +15,15 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.PopupWindow;
-import android.widget.RelativeLayout;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSONObject;
 import com.google.gson.Gson;
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.utils.ApkUtils;
-import com.sheep.gamegroup.model.api.RedPackageMoney;
 import com.sheep.gamegroup.model.entity.AgentEntity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.DialogConfig;
+import com.sheep.gamegroup.model.entity.MessageReplyEntity;
+import com.sheep.gamegroup.model.entity.MessageUnReadEntity;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
@@ -36,7 +34,7 @@ import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.ViewUtil;
-import com.sheep.gamegroup.view.activity.ActivityMessages;
+import com.sheep.gamegroup.view.activity.MessagesActivity;
 import com.sheep.gamegroup.view.activity.PersonalCenterAct;
 import com.sheep.gamegroup.view.dialog.DialogShare;
 import com.sheep.jiuyan.samllsheep.R;
@@ -44,7 +42,6 @@ import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
 import org.afinal.simplecache.ACache;
-import org.afinal.simplecache.ApiKey;
 
 import java.util.Locale;
 
@@ -61,7 +58,6 @@ import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_FAQ;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_SHARE;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_UPGRADE;
 import static com.sheep.gamegroup.util.ViewUtil.backgroundAlpha;
-import static com.sheep.gamegroup.util.ViewUtil.measureHeight;
 
 /**
  * 个人中心
@@ -87,12 +83,14 @@ public class FgtPersonalCenter extends BaseCompatFragment {
     View personal_center_version_new;
     @BindView(R.id.iv_redpackage)
     ImageView ivRedpackage;
+    @BindView(R.id.ibtn_baseactivity_message)
+    ImageView ivMessageIcon;
     Unbinder unbinder;
 
     public UserEntity userEntity;
     private String faqUrl;
     private String agentUrl;
-
+    private int mCounts = 0;//未读消息数量
     private Activity activity;
 
     @Override
@@ -148,7 +146,7 @@ public class FgtPersonalCenter extends BaseCompatFragment {
         String appVersionName = ApkUtils.getCurrentPkgVersionName(SheepApp.getInstance());
         version_item_tv.setText("小绵羊V");
         version_item_tv.append(appVersionName);
-
+        getUnReadMessageCounts();
     }
 
     private void initUserInfo() {
@@ -176,27 +174,43 @@ public class FgtPersonalCenter extends BaseCompatFragment {
     @Override
     public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
-      getLastUserInfo(null);
+        getLastUserInfo(null);
     }
 
-
     /**
-     * @return 是否显示红包
+     * 获取是否有未读消息并更新图标
+     *
      */
-    private void isShowRedPackage() {
-        // DataUtil.getInstance().是官方包吗();
-        if (userEntity == null) {
-            userEntity = DataUtil.getInstance().getUserEntity();
-        }
+    private void getUnReadMessageCounts() {
+        SheepApp.getInstance()
+                .getNetComponent()
+                .getApiService()
+                .getMessageUnReadNum()
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        MessageUnReadEntity entity=baseMessage.getData(MessageUnReadEntity.class);
+                        mCounts= entity.getNum();
+                        if (mCounts > 0) {
+                            ivMessageIcon.setImageResource(R.mipmap.message_unread_icon);
+                        }else {
+                            ivMessageIcon.setImageResource(R.mipmap.message_read_icon);
+                        }
+                    }
 
-        if (!userEntity.getParent_code().equals("") || (userEntity.getCreate_time_line() < 2) || (userEntity.getPackage_cate() == 1)) {
-            ivRedpackage.setVisibility(View.GONE);
-        } else {
-            ivRedpackage.setVisibility(View.VISIBLE);
-        }
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+
+                        LogUtil.logI("返回格式错误---" + new Gson().toJson(baseMessage));
+                    }
+                });
 
     }
 
+
+
     /**
      * 兑换红包
      *
@@ -328,12 +342,13 @@ public class FgtPersonalCenter extends BaseCompatFragment {
                                 ivRedpackage.setVisibility(View.VISIBLE);
                             }
                         }
-                     //   initUserInfo();
+                        //   initUserInfo();
                         if (action1 != null)
                             action1.call(userEntity);
                     }
                 });
     }
+
     @Override
     public void onDestroyView() {
         super.onDestroyView();
@@ -349,7 +364,7 @@ public class FgtPersonalCenter extends BaseCompatFragment {
     public void onViewClicked(View view) {
         switch (view.getId()) {
             case R.id.ibtn_baseactivity_message://消息
-                // startActivity(new Intent(activity, ActivityMessages.class));
+                startActivity(new Intent(activity, MessagesActivity.class));
                 break;
             case R.id.iv_redpackage://邀请成功后有可领红包
                 ViewUtil.changeRedPackage(getActivity(), getView(), FgtPersonalCenter.this);
@@ -426,7 +441,7 @@ public class FgtPersonalCenter extends BaseCompatFragment {
 
     @Override
     public void onResume() {
-       getLastUserInfo(null);
+        getLastUserInfo(null);
         super.onResume();
         try {
             initData();

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

@@ -1260,7 +1260,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                 .setOnBannerListener(new OnBannerListener() {
                     @Override
                     public void OnBannerClick(int i) {
-                        clickBanner(i);
+                        CommonUtil.getInstance().clickBanner(activity,i, slideshowEtyLists);
                     }
                 });
 
@@ -1286,85 +1286,6 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 //        banner.start();
     }
 
-    private void clickBanner(int position) {
-        SlideshowEty clickedGameObj = ListUtil.getItem(slideshowEtyLists, position);
-        if (clickedGameObj == null) {
-            return;
-        }
-        UMConfigUtils.onEvent(UMConfigUtils.Event.BANNER_CLICK_HORIZONTAL);
-        UMConfigUtils.IdEvent.BANNER.commit(clickedGameObj.getId());
-        switch (clickedGameObj.getType()) {// 0,类型 1跳转试玩赚钱、2单个任务详情、3信用卡办理、4 H5页面、5 微信二维码任务
-            case 1:
-                Jump2View.getInstance()
-                        .goTryplayView(activity, null);
-                break;
-            case 2:
-                try {
-                    Jump2View.getInstance()
-                            .goTaskDetailView(activity, EntityUtils.getExtInfo(clickedGameObj.getExt()).getId());
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-                break;
-            case 3:
-                Jump2View.getInstance()
-                        .goCreditCardTaskList(activity, 3);
-                break;
-            case 4:
-                if (!TextUtils.isEmpty(clickedGameObj.getObjects())) {
-                    Ext ext = EntityUtils.getExtInfo(clickedGameObj.getExt());
-                    if (ext.getTitle() == null)//外部浏览器加载H5
-                        Jump2View.getInstance().goWeb(activity, ext.getUrl());
-                    else//内部WebView加载H5
-                        Jump2View.getInstance().goWeb(activity, ext.getUrl(), ext.getTitle());
-
-                }
-
-                break;
-            case 5:
-                if (!TextUtils.isEmpty(clickedGameObj.getObjects())) {
-
-                    Jump2View.getInstance()
-                            .goWeb(
-                                    activity,
-                                    clickedGameObj.getObjects(),
-                                    "微信二维码辅助好友注册任务");
-                }
-
-                break;
-            case 6://连续任务
-                Jump2View.getInstance().goSequentialTaskView(activity);
-                break;
-            case 9://打卡赚钱
-                showToast("打卡赚钱");
-                Jump2View.getInstance().goSignCardAct(activity, null);
-                break;
-            case 7://玩转游戏
-                Jump2View.getInstance()
-                        .goMainGame(activity);
-                break;
-            case 11://游戏任务
-                Jump2View.getInstance()
-                        .goGameMakeMoney(activity, 0);
-                break;
-            case 12://闲玩任务
-                Jump2View.getInstance().goXianwanWeb(activity, null, null);
-                break;
-            case 13://游戏代充
-                Jump2View.getInstance().goGameRecharge(activity, null);
-                break;
-            case 14://幂动科技
-                Jump2View.getInstance().goMiDong(activity, null);
-                break;
-            case 15://小米游戏列表
-                Jump2View.getInstance().goXiaomiGameList(activity, null);
-                break;
-            default:
-                G.showToast(R.string.coming_soon);
-                break;
-        }
-    }
-
     /**
      * 公共
      */
@@ -1511,7 +1432,6 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             }
 
         }
-
     }
 
     /**

+ 61 - 14
app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java

@@ -44,6 +44,41 @@ public interface ApiService {
     Observable<BaseMessage> loginByCaptcha(@Body JSONObject jsonObject);
 
     /**
+     * @return 消息中心列表
+     */
+    @GET("app/message/system_notification/")
+    Observable<BaseMessage> getMessageCenter(@Query("page") int page, @Query("per_page") int per_page);
+
+    /**
+     * @param page            页数
+     * @param per_page,每页显示条数
+     * @return 回复互动列表
+     */
+    @GET("app/message/system_message/")
+    Observable<BaseMessage> getMessageReply(@Query("page") int page, @Query("per_page") int per_page);
+
+    /**
+     * @param id  回复互动id
+     * @return 回复互动详情
+     */
+    @GET("app/message/system_message/{id}")
+    Observable<BaseMessage> getMessageReplyItem(@Path("id") String id);
+
+    /**
+     * @param id  系统消息id
+     * @return 消息中心详情
+     */
+    @GET("app/message/system_notification/{id}")
+    Observable<BaseMessage> getMessageCenterItem(@Path("id") String id);
+
+    /**
+     * @return  获取未读消息条数 返回 0 或者 未读数量 大于零则有未读
+     * 获取未读消息条数
+     */
+    @GET("app/message/system_message/no_read_num")
+    Observable<BaseMessage>getMessageUnReadNum();
+
+    /**
      * @return ,
      * 主页抢任务
      */
@@ -199,16 +234,18 @@ public interface ApiService {
 
     /**
      * @param jsonObject
-     * @return   领红包
+     * @return 领红包
      */
     @POST("app/user/receive_red_packet")
     Observable<BaseMessage> exchangeRedPackage(@Query("invitation_code") String jsonObject);
 
-    /**新手红包
-     * @return  .
+    /**
+     * 新手红包
+     * @return .
      */
     @POST("app/newbie_task/login_red_packet")
-    Observable<BaseMessage>getNewRedPackage();
+    Observable<BaseMessage> getNewRedPackage();
+
     /**
      * 更换手机号
      */
@@ -239,19 +276,20 @@ public interface ApiService {
      */
     @POST("app/user/sms_for_bind_mobile")
     Observable<BaseMessage> smsBindMobile(@Body JSONObject jsonObject);
+
     /**
      * 使用第三方登录时,未找到该qq对应的账号,不再直接创建账号,会先绑定手机号来注册新账号
      * captcha	string
-     验证码 第二步需要
-     mobile	string
-     platform	string
-     登录返回来的platform
-     scope	string
-     传kfzs为官包 传空为邀请包
-     step	string
-     步骤:first发验证码 second绑定
-     token	string
-     登录返回来的token
+     * 验证码 第二步需要
+     * mobile	string
+     * platform	string
+     * 登录返回来的platform
+     * scope	string
+     * 传kfzs为官包 传空为邀请包
+     * step	string
+     * 步骤:first发验证码 second绑定
+     * token	string
+     * 登录返回来的token
      */
     @POST("app/auth/bind_mobile")
     Observable<BaseMessage> bindMobileRegister(@Body JSONObject jsonObject);
@@ -906,5 +944,14 @@ public interface ApiService {
      */
     @GET("app/auth/need_code")
     Observable<BaseMessage> needCode(@Query("mobile") String mobile);
+    /**
+     * 玩转游戏——每日必玩
+     * 玩转游戏——近期最热
+     * is_hot:1  others:0
+     * daily_play:1每日必玩
+     * type: 1002:快发出包 1003:腾讯出包 1004:小米出包 1099:其他
+     */
+    @GET("app/find")
+    Observable<BaseMessage> playgameDailyOrHotOrTypePlay(@Query("page") int page, @Query("per_page") int per_page, @Query("is_hot") int is_hot, @Query("daily_play") int daily_play, @Query("type") int type);
 
 }

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

@@ -18,6 +18,14 @@ public class FindTag {
 
     private int created_at;
 
+    public FindTag() {
+    }
+
+    public FindTag(int id, String name) {
+        this.id = id;
+        this.name = name;
+    }
+
     public void setUpdated_at(int updated_at){
         this.updated_at = updated_at;
     }

+ 146 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/MessageCenterEntity.java

@@ -0,0 +1,146 @@
+package com.sheep.gamegroup.model.entity;
+
+import java.io.Serializable;
+
+/**
+ * created on:2018/9/3 on 13:36
+ * created by: YSL
+ * 描述:消息中心列表   ,  消息中心详情
+ */
+public class MessageCenterEntity implements Serializable{
+
+
+    /**
+     * updated_at : 1535524140
+     * is_look : 0
+     * Id : 6
+     * content : 4444444444444
+     * platform : 0
+     * abstracts : 4444444444
+     * title : 55555555555555
+     * recipient : 0
+     * send_type : 1
+     * recipient_invitation_code :
+     * created_at : 1535524140
+     * send_time : 1535524073
+     * type : 1
+     */
+
+    private int updated_at;
+    private int is_look;
+    private int Id;
+    private String content;
+    private int platform;
+    private String abstracts;
+    private String title;
+    private int recipient;
+    private int send_type;
+    private String recipient_invitation_code;
+    private int created_at;
+    private int send_time;
+    private int type;
+
+    public int getUpdated_at() {
+        return updated_at;
+    }
+
+    public void setUpdated_at(int updated_at) {
+        this.updated_at = updated_at;
+    }
+
+    public int getIs_look() {
+        return is_look;
+    }
+
+    public void setIs_look(int is_look) {
+        this.is_look = is_look;
+    }
+
+    public int getId() {
+        return Id;
+    }
+
+    public void setId(int Id) {
+        this.Id = Id;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public int getPlatform() {
+        return platform;
+    }
+
+    public void setPlatform(int platform) {
+        this.platform = platform;
+    }
+
+    public String getAbstracts() {
+        return abstracts;
+    }
+
+    public void setAbstracts(String abstracts) {
+        this.abstracts = abstracts;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public int getRecipient() {
+        return recipient;
+    }
+
+    public void setRecipient(int recipient) {
+        this.recipient = recipient;
+    }
+
+    public int getSend_type() {
+        return send_type;
+    }
+
+    public void setSend_type(int send_type) {
+        this.send_type = send_type;
+    }
+
+    public String getRecipient_invitation_code() {
+        return recipient_invitation_code;
+    }
+
+    public void setRecipient_invitation_code(String recipient_invitation_code) {
+        this.recipient_invitation_code = recipient_invitation_code;
+    }
+
+    public int getCreated_at() {
+        return created_at;
+    }
+
+    public void setCreated_at(int created_at) {
+        this.created_at = created_at;
+    }
+
+    public int getSend_time() {
+        return send_time;
+    }
+
+    public void setSend_time(int send_time) {
+        this.send_time = send_time;
+    }
+
+    public int getType() {
+        return type;
+    }
+
+    public void setType(int type) {
+        this.type = type;
+    }
+}

+ 126 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/MessageReplyEntity.java

@@ -0,0 +1,126 @@
+package com.sheep.gamegroup.model.entity;
+
+import java.io.Serializable;
+
+/**
+ * created on:2018/9/3 on 13:52
+ * created by: YSL
+ * 描述:回复互动列表 , 回复互动详情 ,未读消息条数
+ */
+public class MessageReplyEntity implements Serializable{
+
+
+    /**
+     * user_feedback_id : 0
+     * faq_feedback_id : 2
+     * title :
+     * id : 1
+     * user_contet :
+     * created_at : 1535505529
+     * user_create_time : 0
+     * is_look : 0
+     * content : 正在处理222
+     * type : 1
+     * user_id : 63075
+     */
+
+    private int user_feedback_id;
+    private int faq_feedback_id;
+    private String title;
+    private int id;
+    private String user_contet;
+    private int created_at;
+    private int user_create_time;
+    private int is_look;
+    private String content;
+    private int type;
+    private int user_id;
+
+    public int getUser_feedback_id() {
+        return user_feedback_id;
+    }
+
+    public void setUser_feedback_id(int user_feedback_id) {
+        this.user_feedback_id = user_feedback_id;
+    }
+
+    public int getFaq_feedback_id() {
+        return faq_feedback_id;
+    }
+
+    public void setFaq_feedback_id(int faq_feedback_id) {
+        this.faq_feedback_id = faq_feedback_id;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getUser_contet() {
+        return user_contet;
+    }
+
+    public void setUser_contet(String user_contet) {
+        this.user_contet = user_contet;
+    }
+
+    public int getCreated_at() {
+        return created_at;
+    }
+
+    public void setCreated_at(int created_at) {
+        this.created_at = created_at;
+    }
+
+    public int getUser_create_time() {
+        return user_create_time;
+    }
+
+    public void setUser_create_time(int user_create_time) {
+        this.user_create_time = user_create_time;
+    }
+
+    public int getIs_look() {
+        return is_look;
+    }
+
+    public void setIs_look(int is_look) {
+        this.is_look = is_look;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public int getType() {
+        return type;
+    }
+
+    public void setType(int type) {
+        this.type = type;
+    }
+
+    public int getUser_id() {
+        return user_id;
+    }
+
+    public void setUser_id(int user_id) {
+        this.user_id = user_id;
+    }
+}

+ 23 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/MessageUnReadEntity.java

@@ -0,0 +1,23 @@
+package com.sheep.gamegroup.model.entity;
+
+/**
+ * created on:2018/9/3 on 21:08
+ * created by: YSL
+ * 描述:
+ */
+public class MessageUnReadEntity {
+
+    /**
+     * num : 0
+     */
+
+    private int num;
+
+    public int getNum() {
+        return num;
+    }
+
+    public void setNum(int num) {
+        this.num = num;
+    }
+}

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

@@ -0,0 +1,315 @@
+package com.sheep.gamegroup.model.entity;
+
+/**
+ * 玩转游戏
+ * Created by ljy on 2018/9/3.
+ */
+
+public class PlayGameEntity {
+    private int Id;//integer($int64)
+    private int IsHot;//integer($int64)是否近期最热 1是 2不是
+
+    private int IsPlay;//integer($int64)是否每日必玩 1是 2不是
+
+    private int available_receive;//integer($int64)0:可领取账号 1:不可领取账号
+
+    private long created_at;//integer($int64)
+    private int download;//integer($int64)1:可下载 其他:不可下载
+
+    private long download_at;//integer($int64)预约下载开放时间
+
+    private long download_count;//integer($int64)下载数量
+
+    private long download_count_increment;//integer($int64)下载数量的增量
+
+    private int download_type;//integer($int32)1:非预约下载 2:预约下载
+
+    private String download_url;//string下载地址
+
+    private String icon;//string应用图标
+
+    private String intro;//string应用简介
+
+    private int is_recommend;//integer($int32)是否推荐:0:不推荐 1:推荐
+
+    private String manufacturer;//string厂商
+
+    private String name;//string应用名称
+
+    private String package_id;//stringGameID
+
+    private String package_name;//string应用包名称
+
+    private float package_size;//number($float)包大小(M)
+
+    private int package_type;//integer($int64)出包类型:1:快发出包 2:腾讯出包 3:小米出包 4:其它
+
+    private String pictures;//string宣传图标(分号隔开)
+
+    private int platform;//integer($int32)平台 0:全 1:安卓 2:IOS
+
+    private int receive_account;//integer($int64)0:未领取账号 1:已领取账号
+
+    private int record;//integer($int64)1:可记录 其他:不可记录
+
+    private float score;//number($float)评分
+
+    private long score_count;//integer($int64)评分人数
+
+    private int sort;//integer($int64)排序:越大越靠前
+
+    private int status;//integer($int32)1:开启 2:关闭
+
+    private String type;//string类型
+
+    private long updated_at;//integer($int64)
+    private String versions;//string版本号
+
+    public int getId() {
+        return Id;
+    }
+
+    public void setId(int id) {
+        Id = id;
+    }
+
+    public int getIsHot() {
+        return IsHot;
+    }
+
+    public void setIsHot(int isHot) {
+        IsHot = isHot;
+    }
+
+    public int getIsPlay() {
+        return IsPlay;
+    }
+
+    public void setIsPlay(int isPlay) {
+        IsPlay = isPlay;
+    }
+
+    public int getAvailable_receive() {
+        return available_receive;
+    }
+
+    public void setAvailable_receive(int available_receive) {
+        this.available_receive = available_receive;
+    }
+
+    public long getCreated_at() {
+        return created_at;
+    }
+
+    public void setCreated_at(long created_at) {
+        this.created_at = created_at;
+    }
+
+    public int getDownload() {
+        return download;
+    }
+
+    public void setDownload(int download) {
+        this.download = download;
+    }
+
+    public long getDownload_at() {
+        return download_at;
+    }
+
+    public void setDownload_at(long download_at) {
+        this.download_at = download_at;
+    }
+
+    public long getDownload_count() {
+        return download_count;
+    }
+
+    public void setDownload_count(long download_count) {
+        this.download_count = download_count;
+    }
+
+    public long getDownload_count_increment() {
+        return download_count_increment;
+    }
+
+    public void setDownload_count_increment(long download_count_increment) {
+        this.download_count_increment = download_count_increment;
+    }
+
+    public int getDownload_type() {
+        return download_type;
+    }
+
+    public void setDownload_type(int download_type) {
+        this.download_type = download_type;
+    }
+
+    public String getDownload_url() {
+        return download_url;
+    }
+
+    public void setDownload_url(String download_url) {
+        this.download_url = download_url;
+    }
+
+    public String getIcon() {
+        return icon;
+    }
+
+    public void setIcon(String icon) {
+        this.icon = icon;
+    }
+
+    public String getIntro() {
+        return intro;
+    }
+
+    public void setIntro(String intro) {
+        this.intro = intro;
+    }
+
+    public int getIs_recommend() {
+        return is_recommend;
+    }
+
+    public void setIs_recommend(int is_recommend) {
+        this.is_recommend = is_recommend;
+    }
+
+    public String getManufacturer() {
+        return manufacturer;
+    }
+
+    public void setManufacturer(String manufacturer) {
+        this.manufacturer = manufacturer;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getPackage_id() {
+        return package_id;
+    }
+
+    public void setPackage_id(String package_id) {
+        this.package_id = package_id;
+    }
+
+    public String getPackage_name() {
+        return package_name;
+    }
+
+    public void setPackage_name(String package_name) {
+        this.package_name = package_name;
+    }
+
+    public float getPackage_size() {
+        return package_size;
+    }
+
+    public void setPackage_size(float package_size) {
+        this.package_size = package_size;
+    }
+
+    public int getPackage_type() {
+        return package_type;
+    }
+
+    public void setPackage_type(int package_type) {
+        this.package_type = package_type;
+    }
+
+    public String getPictures() {
+        return pictures;
+    }
+
+    public void setPictures(String pictures) {
+        this.pictures = pictures;
+    }
+
+    public int getPlatform() {
+        return platform;
+    }
+
+    public void setPlatform(int platform) {
+        this.platform = platform;
+    }
+
+    public int getReceive_account() {
+        return receive_account;
+    }
+
+    public void setReceive_account(int receive_account) {
+        this.receive_account = receive_account;
+    }
+
+    public int getRecord() {
+        return record;
+    }
+
+    public void setRecord(int record) {
+        this.record = record;
+    }
+
+    public float getScore() {
+        return score;
+    }
+
+    public void setScore(float score) {
+        this.score = score;
+    }
+
+    public long getScore_count() {
+        return score_count;
+    }
+
+    public void setScore_count(long score_count) {
+        this.score_count = score_count;
+    }
+
+    public int getSort() {
+        return sort;
+    }
+
+    public void setSort(int sort) {
+        this.sort = sort;
+    }
+
+    public int getStatus() {
+        return status;
+    }
+
+    public void setStatus(int status) {
+        this.status = status;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public long getUpdated_at() {
+        return updated_at;
+    }
+
+    public void setUpdated_at(long updated_at) {
+        this.updated_at = updated_at;
+    }
+
+    public String getVersions() {
+        return versions;
+    }
+
+    public void setVersions(String versions) {
+        this.versions = versions;
+    }
+}

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

@@ -36,12 +36,14 @@ import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.alipay.PayResult;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.DialogConfig;
+import com.sheep.gamegroup.model.entity.Ext;
 import com.sheep.gamegroup.model.entity.FindApp;
 import com.sheep.gamegroup.model.entity.GameAccountEntity;
 import com.sheep.gamegroup.model.entity.HomeListEntity;
 import com.sheep.gamegroup.model.entity.NewbieTask;
 import com.sheep.gamegroup.model.entity.NewbieTaskRecord;
 import com.sheep.gamegroup.model.entity.RouserArticlesEntity;
+import com.sheep.gamegroup.model.entity.SlideshowEty;
 import com.sheep.gamegroup.model.entity.TaskChild;
 import com.sheep.gamegroup.model.entity.TaskDescEntity;
 import com.sheep.gamegroup.model.entity.TaskEty;
@@ -50,6 +52,7 @@ import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.entity.WithdrawalEty;
 import com.sheep.gamegroup.model.entity.XiaomiGameEntity;
 import com.sheep.gamegroup.model.util.AutoTaskListUtil;
+import com.sheep.gamegroup.model.util.EntityUtils;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.usage.AppUsageManager;
 import com.sheep.gamegroup.view.activity.GameTaskOrderListAct;
@@ -1920,4 +1923,82 @@ public class CommonUtil {
                     }
                 });
     }
+    public void clickBanner(Activity activity, int position, List<SlideshowEty> slideshowEtyLists) {
+        SlideshowEty clickedGameObj =  ListUtil.getItem(slideshowEtyLists, position);
+        if (clickedGameObj == null) {
+            return;
+        }
+        UMConfigUtils.onEvent(UMConfigUtils.Event.BANNER_CLICK_HORIZONTAL);
+        UMConfigUtils.IdEvent.BANNER.commit(clickedGameObj.getId());
+        switch (clickedGameObj.getType()) {// 0,类型 1跳转试玩赚钱、2单个任务详情、3信用卡办理、4 H5页面、5 微信二维码任务
+            case 1:
+                Jump2View.getInstance()
+                        .goTryplayView(activity, null);
+                break;
+            case 2:
+                try {
+                    Jump2View.getInstance()
+                            .goTaskDetailView(activity, EntityUtils.getExtInfo(clickedGameObj.getExt()).getId());
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                break;
+            case 3:
+                Jump2View.getInstance()
+                        .goCreditCardTaskList(activity, 3);
+                break;
+            case 4:
+                if (!TextUtils.isEmpty(clickedGameObj.getObjects())) {
+                    Ext ext = EntityUtils.getExtInfo(clickedGameObj.getExt());
+                    if (ext.getTitle() == null)//外部浏览器加载H5
+                        Jump2View.getInstance().goWeb(activity, ext.getUrl());
+                    else//内部WebView加载H5
+                        Jump2View.getInstance().goWeb(activity, ext.getUrl(), ext.getTitle());
+
+                }
+
+                break;
+            case 5:
+                if (!TextUtils.isEmpty(clickedGameObj.getObjects())) {
+
+                    Jump2View.getInstance()
+                            .goWeb(
+                                    activity,
+                                    clickedGameObj.getObjects(),
+                                    "微信二维码辅助好友注册任务");
+                }
+
+                break;
+            case 6://连续任务
+                Jump2View.getInstance().goSequentialTaskView(activity);
+                break;
+            case 9://打卡赚钱
+                G.showToast("打卡赚钱");
+                Jump2View.getInstance().goSignCardAct(activity, null);
+                break;
+            case 7://玩转游戏
+                Jump2View.getInstance()
+                        .goMainGame(activity);
+                break;
+            case 11://游戏任务
+                Jump2View.getInstance()
+                        .goGameMakeMoney(activity, 0);
+                break;
+            case 12://闲玩任务
+                Jump2View.getInstance().goXianwanWeb(activity, null, null);
+                break;
+            case 13://游戏代充
+                Jump2View.getInstance().goGameRecharge(activity, null);
+                break;
+            case 14://幂动科技
+                Jump2View.getInstance().goMiDong(activity, null);
+                break;
+            case 15://小米游戏列表
+                Jump2View.getInstance().goXiaomiGameList(activity, null);
+                break;
+            default:
+                G.showToast(R.string.coming_soon);
+                break;
+        }
+    }
 }

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

@@ -40,6 +40,7 @@ import com.sheep.gamegroup.view.activity.ActModifyThird;
 import com.sheep.gamegroup.view.activity.ActCreditCardTaskList;
 import com.sheep.gamegroup.view.activity.ActCreditCardWeb;
 import com.sheep.gamegroup.view.activity.ActDownloadWelfareList;
+import com.sheep.gamegroup.view.activity.ActEverydayPlayGame;
 import com.sheep.gamegroup.view.activity.ActFindGame;
 import com.sheep.gamegroup.view.activity.ActFindInformation;
 import com.sheep.gamegroup.view.activity.ActGameAccount;
@@ -1529,4 +1530,12 @@ public class Jump2View {
         intent.putExtra("type", type);
         activity.startActivity(intent);
     }
+    /**
+     * 每日必做、近期最热
+     */
+    public void goEverydayOrCurrentHotGame(Activity activity, int type){
+        Intent intent = new Intent(activity, ActEverydayPlayGame.class);
+        intent.putExtra("type", type);
+        activity.startActivity(intent);
+    }
 }

+ 53 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/ActEverydayPlayGame.java

@@ -0,0 +1,53 @@
+package com.sheep.gamegroup.view.activity;
+
+import android.support.v7.widget.RecyclerView;
+
+import com.sheep.gamegroup.model.api.ApiService;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.PlayGameEntity;
+import com.sheep.gamegroup.view.adapter.PlayGameItemAdapter;
+import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
+
+import java.util.Locale;
+
+import rx.Observable;
+
+/**
+ * 每日必做和热门
+ * Created by ljy on 2018/9/3.
+ */
+
+public class ActEverydayPlayGame extends BaseListActivity<PlayGameEntity> {
+    private int type;
+    @Override
+    protected RecyclerView.Adapter getAdapter() {
+        return new PlayGameItemAdapter(activity, list);
+    }
+
+    @Override
+    protected String getKey(int page, int per_page) {
+        return type == 0 ?String.format(Locale.CHINA, "app/find?page=%d&per_page=%d&is_hot=%d&daily_play=%d&type=%d", page, per_page, 0, 1, 0)
+                :String.format(Locale.CHINA, "app/find?page=%d&per_page=%d&is_hot=%d&daily_play=%d&type=%d", page, per_page, 1, 0, 0);
+    }
+
+    @Override
+    protected Observable<BaseMessage> getApi(ApiService apiService) {
+        return type == 0 ? apiService.playgameDailyOrHotOrTypePlay(page, per_page, 0, 1, 0)
+                : apiService.playgameDailyOrHotOrTypePlay(page, per_page, 1, 0, 0);
+    }
+
+    @Override
+    protected Class<PlayGameEntity> getTClass() {
+            return PlayGameEntity.class;
+    }
+
+    @Override
+    protected int getType() {
+        type = getIntent().getIntExtra("type", 0);
+        TitleBarUtils
+                .getInstance()
+                .setTitle(activity, type==0?"每日必做":"近期最热")
+                .setTitleFinish(activity);
+        return type;
+    }
+}

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

@@ -5,6 +5,7 @@ import android.view.View;
 
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.util.Jump2View;
+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;
@@ -35,7 +36,7 @@ public class ActGameCenter extends BaseActivity {
                         Jump2View.getInstance().goMyWelfare(activity);
                     }
                 })
-                .addTabs(activity, act_game_center_vp,"玩转游戏", new FgtWelfareCenter(), "福利中心", new FgtWelfareCenter());
+                .addTabs(activity, act_game_center_vp,"玩转游戏", new FgtPlayGame(), "福利中心", new FgtWelfareCenter());
 
     }
 

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

@@ -0,0 +1,163 @@
+package com.sheep.gamegroup.view.activity;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+
+import com.jcodecraeer.xrecyclerview.XRecyclerView;
+import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.model.api.ApiService;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+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.SysAppUtil;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import rx.Observable;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.functions.Action1;
+import rx.schedulers.Schedulers;
+
+/**
+ * Created by ljy on 2018/9/3.
+ */
+
+public abstract class BaseListActivity<T> extends BaseActivity {
+
+    @BindView(R.id.title)
+    View title;
+    @BindView(R.id.empty_view)
+    View empty_view;
+    @BindView(R.id.check_net_ll)
+    View check_net_ll;
+    @BindView(R.id.view_list)
+    XRecyclerView view_list;
+    protected Activity activity;
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.net_empty_xrecycler;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        // TODO: add setContentView(...) invocation
+        ButterKnife.bind(this);
+        activity = this;
+        getType();
+        initView();
+        initListener();
+        initData();
+    }
+
+    protected int page = 1;//页数
+    protected int per_page = 10;
+    public void initView() {
+//        title.setVisibility(View.GONE);
+    }
+    private View bottomLine;
+    public void initListener() {
+        view_list.setLoadingListener(new XRecyclerView.LoadingListener() {
+            @Override
+            public void onRefresh() {
+                refreshData();
+            }
+
+            @Override
+            public void onLoadMore() {
+                if(ListUtil.size(list) >= per_page*page){
+                    page += 1;
+                    initData();
+                }else {
+                    view_list.setNoMore(true);
+                }
+            }
+        });
+        bottomLine = ViewUtil.setBottomLine(view_list);
+        view_list.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
+        view_list.setAdapter(getAdapter());
+
+    }
+
+
+    protected List<T> list = ListUtil.emptyList();
+    public void initData() {
+        final String urlKey = getKey(page, per_page);
+        //先尝试获取缓存数据
+        List<T> newList = DataUtil.getInstance().getCacheList(urlKey, getTClass());
+        loadList(newList);
+        empty_view.setVisibility(View.INVISIBLE);
+        SysAppUtil.checkNet(new Action1<Integer>() {
+            @Override
+            public void call(Integer result) {
+                if(result != 0){//无网络
+                    if(check_net_ll != null)
+                        check_net_ll.setVisibility(View.VISIBLE);
+                } else {
+                    if(check_net_ll != null)
+                        check_net_ll.setVisibility(View.GONE);
+                }
+            }
+        });
+        getApi(SheepApp.getInstance().getNetComponent().getApiService())
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        boolean isNewData = DataUtil.getInstance().isNewData(urlKey);
+                        if(isNewData) {
+                            List<T> newList = baseMessage.getDatas(getTClass());
+                            loadList(newList);
+                        }
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        notifyDataSetChanged();
+                    }
+                });
+    }
+
+    public void refreshData(){
+        list.clear();
+        view_list.getAdapter().notifyDataSetChanged();
+        page = 1;
+        initData();
+    }
+    private void loadList(List<T> newList){
+        ListUtil.addAll(list, newList);
+        notifyDataSetChanged();
+    }
+    protected void notifyDataSetChanged(){
+        CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty());
+        bottomLine.setVisibility(list.isEmpty() ? View.INVISIBLE : View.VISIBLE);
+        if(page == 1){
+            view_list.refreshComplete();
+        } else {
+            view_list.loadMoreComplete();
+        }
+        view_list.getAdapter().notifyDataSetChanged();
+    }
+
+    protected abstract RecyclerView.Adapter getAdapter();
+
+    protected abstract String getKey(int page, int per_page);
+
+    protected abstract Observable<BaseMessage> getApi(ApiService apiService);
+
+    protected abstract Class<T> getTClass();
+
+    protected abstract int getType();
+}

+ 87 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/MessageCenterDetailActivity.java

@@ -0,0 +1,87 @@
+package com.sheep.gamegroup.view.activity;
+
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import android.widget.TextView;
+
+import com.google.gson.Gson;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.MessageCenterEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.LogUtil;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * created on:2018/9/3 on 20:50
+ * created by: YSL
+ * 描述:
+ */
+public class MessageCenterDetailActivity extends AppCompatActivity{
+    @BindView(R.id.tv_content)
+    TextView tvContent;
+    @BindView(R.id.tv_title)
+    TextView tvTitle;
+    @BindView(R.id.txt_baseactivity_title)
+    TextView tvBaseTitle;
+
+    private int position;
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_messagesystem);
+        ButterKnife.bind(this);
+        position=getIntent().getIntExtra("position",-1);
+        loadData(position+"");
+    }
+
+    @OnClick({R.id.img_baseactivity_title})
+    public void initClick(View view) {
+        switch (view.getId()) {
+            case R.id.img_baseactivity_title:
+                MessageCenterDetailActivity.this.finish();
+                break;
+        }
+
+    }
+
+    private void loadData(String id){
+        if (id.equals(-1+"")){
+            return;
+        }
+        SheepApp.getInstance()
+                .getNetComponent()
+                .getApiService()
+                .getMessageCenterItem(id)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        LogUtil.logI("消息中心详细内容----"+new Gson().toJson(baseMessage));
+                        MessageCenterEntity entity =baseMessage.getData(MessageCenterEntity.class);
+                        tvContent.setText(entity.getContent());
+                        tvTitle.setText(entity.getTitle());
+
+                    }
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        LogUtil.logI("消息中心详细内容出错----"+new Gson().toJson(baseMessage));
+                    }
+                });
+    }
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+
+    }
+}

+ 40 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/MessageInteractionDetailActivity.java

@@ -10,14 +10,24 @@ import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import com.google.gson.Gson;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.MessageReplyEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.view.adapter.MessageInteractionAdapter;
 import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.G;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.OnClick;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
 
 /**
  * created on:2018/8/28 on 17:15
@@ -30,7 +40,9 @@ public class MessageInteractionDetailActivity extends AppCompatActivity {
     @BindView(R.id.recycle_view)
     RecyclerView recyclerView;
     private MessageInteractionAdapter adapter;
-    private List<?> mList;
+    private List<MessageReplyEntity> mList = new ArrayList<>();
+    private MessageReplyEntity entity=null;
+    private String id="";
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -43,6 +55,9 @@ public class MessageInteractionDetailActivity extends AppCompatActivity {
         recyclerView.setLayoutManager(manager);
         adapter = new MessageInteractionAdapter(this, mList);
         recyclerView.setAdapter(adapter);
+        entity = (MessageReplyEntity) getIntent().getSerializableExtra("message");
+        id=getIntent().getIntExtra("position",-1)+"";
+        loadData(id + "");
     }
 
     @OnClick({R.id.img_baseactivity_title})
@@ -53,4 +68,28 @@ public class MessageInteractionDetailActivity extends AppCompatActivity {
                 break;
         }
     }
+    private void loadData(String id) {
+        if (id.equals(-1 + "")) {
+            return;
+        }
+        SheepApp.getInstance()
+                .getNetComponent()
+                .getApiService()
+                .getMessageReplyItem(id)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        LogUtil.logI("loadData-onNext----"+new Gson().toJson(baseMessage));
+                        mList.addAll(baseMessage.getDataList(MessageReplyEntity.class));
+                        tvTitle.setText(entity.getTitle());
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        LogUtil.logI("loadData-onError----"+new Gson().toJson(baseMessage));
+                    }
+                });
+    }
 }

+ 40 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/MessageReplyDetailActivity.java

@@ -6,11 +6,21 @@ import android.support.v7.app.AppCompatActivity;
 import android.view.View;
 import android.widget.TextView;
 
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.MessageCenterEntity;
+import com.sheep.gamegroup.model.entity.MessageReplyEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+
+import java.util.ArrayList;
+import java.util.List;
 
 import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.OnClick;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
 
 /**
  * created on:2018/8/28 on 17:55
@@ -25,12 +35,17 @@ public class MessageReplyDetailActivity extends AppCompatActivity {
     @BindView(R.id.txt_baseactivity_title)
     TextView tvBaseTitle;
 
+    private int position;
+    private List<MessageReplyEntity> mList = new ArrayList<>();
+    private MessageReplyEntity entity=null;
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_messagesystem);
         ButterKnife.bind(this);
+        position = getIntent().getIntExtra("position", -1);
+        loadData(position + "");
     }
 
     @OnClick({R.id.img_baseactivity_title})
@@ -43,6 +58,31 @@ public class MessageReplyDetailActivity extends AppCompatActivity {
 
     }
 
+    private void loadData(String id) {
+        if (id.equals(-1 + "")) {
+            return;
+        }
+        SheepApp.getInstance()
+                .getNetComponent()
+                .getApiService()
+                .getMessageReplyItem(id)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        mList.addAll(baseMessage.getDataList(MessageReplyEntity.class));
+                        tvContent.setText(entity.getContent());
+                        tvTitle.setText(entity.getTitle());
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+
+                    }
+                });
+    }
+
     @Override
     protected void onDestroy() {
         super.onDestroy();

+ 2 - 2
app/src/main/java/com/sheep/gamegroup/view/activity/ActivityMessages.java

@@ -20,7 +20,7 @@ import com.sheep.jiuyan.samllsheep.R;
  * created by: YSL
  * 描述:消息Activity,展示消息中心和互动消息两个模块
  */
-public class ActivityMessages extends AppCompatActivity {
+public class MessagesActivity extends AppCompatActivity {
     private String[] mTitle = new String[]{"消息中心", "回复互动"};
     private TabLayout tabLayout = null;
     private ViewPager viewPager = null;
@@ -69,7 +69,7 @@ public class ActivityMessages extends AppCompatActivity {
         findViewById(R.id.iv_back).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                ActivityMessages.this.finish();
+                MessagesActivity.this.finish();
             }
         });
     }

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

@@ -43,17 +43,11 @@ public class MessageInteractionAdapter extends RecyclerView.Adapter<MessageInter
 
     @Override
     public void onBindViewHolder(@NonNull MyHolder viewHolder, int i) {
-        if (mList == null || mList.isEmpty()) {
-            return;
-        } else {
-            if (i == mList.size() - 1) {
-                viewHolder.viewLine.setVisibility(View.GONE);//最后一条数据隐藏线条
-            }
             GlideImageLoader.centerImage(viewHolder.ivIcon, "");
             viewHolder.tvPeople.setText("");
             viewHolder.tvTime.setText("");
             viewHolder.tvContent.setText("");
-        }
+
     }
 
     @Override

+ 21 - 20
app/src/main/java/com/sheep/gamegroup/view/adapter/MessageLeftAdapter.java

@@ -10,7 +10,9 @@ import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
+import com.sheep.gamegroup.model.entity.MessageCenterEntity;
 import com.sheep.gamegroup.util.GlideImageLoader;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.jiuyan.samllsheep.R;
 
 
@@ -24,11 +26,11 @@ import java.util.List;
  */
 public class MessageLeftAdapter extends RecyclerView.Adapter<MessageLeftAdapter.Myholder> {
     private Context mContext;
-    private List<?> mList;
+    private List<MessageCenterEntity> mList;
     private ItemOnClickListener itemClick;
     private int position;
 
-    public MessageLeftAdapter(Context mContext, List<?> mList, ItemOnClickListener itemClick) {
+    public MessageLeftAdapter(Context mContext, List<MessageCenterEntity> mList, ItemOnClickListener itemClick) {
         this.mContext = mContext;
         this.mList = mList;
         this.itemClick = itemClick;
@@ -49,24 +51,21 @@ public class MessageLeftAdapter extends RecyclerView.Adapter<MessageLeftAdapter.
 
     @Override
     public void onBindViewHolder(@NonNull Myholder viewHolder, int i) {
-        if (mList == null || mList.isEmpty()) {
-            return;
-        } else {
-            if (i == mList.size() - 1) {
-                viewHolder.viewLine.setVisibility(View.GONE);//最后一条数据隐藏线条
-            }
-            GlideImageLoader.centerImage(viewHolder.ivIcon, "");
-            viewHolder.tvTitle.setText("");
-            viewHolder.tvTime.setText("");
-            viewHolder.tvContent.setText("");
-            position = i;
-            viewHolder.itemLayout.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View view) {
-                    itemClick.itemClick(position);
-                }
-            });
+        if (i == mList.size() - 1) {
+            viewHolder.viewLine.setVisibility(View.GONE);//最后一条数据隐藏线条
         }
+        //  GlideImageLoader.centerImage(viewHolder.ivIcon, "");
+        viewHolder.ivIcon.setImageResource(R.mipmap.message_unread);
+        viewHolder.tvTitle.setText(mList.get(i).getTitle() + "");
+        viewHolder.tvTime.setText(mList.get(i).getCreated_at() + "");
+        viewHolder.tvContent.setText(mList.get(i).getContent() + "");
+        position = i;
+        viewHolder.itemLayout.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                itemClick.itemClick(position);
+            }
+        });
     }
 
     @Override
@@ -82,6 +81,7 @@ public class MessageLeftAdapter extends RecyclerView.Adapter<MessageLeftAdapter.
         private View viewLine;//item之间的线条
         private LinearLayout itemLayout;//整个item布局
 
+
         public Myholder(View view) {
             super(view);
             ivIcon = view.findViewById(R.id.iv_icon);
@@ -90,6 +90,7 @@ public class MessageLeftAdapter extends RecyclerView.Adapter<MessageLeftAdapter.
             tvContent = view.findViewById(R.id.tv_content);
             viewLine = view.findViewById(R.id.view_line);
             itemLayout = view.findViewById(R.id.item_layout);
+
         }
     }
 
@@ -98,7 +99,7 @@ public class MessageLeftAdapter extends RecyclerView.Adapter<MessageLeftAdapter.
      */
     public interface ItemOnClickListener {
         /**
-         * @param position,当前消息在获取数据集合中的对应位置
+         * @param position
          */
         void itemClick(int position);
     }

+ 100 - 0
app/src/main/java/com/sheep/gamegroup/view/adapter/MessageRightAdapter.java

@@ -0,0 +1,100 @@
+package com.sheep.gamegroup.view.adapter;
+
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.sheep.gamegroup.model.entity.MessageReplyEntity;
+import com.sheep.jiuyan.samllsheep.R;
+
+import java.util.List;
+
+/**
+ * created on:2018/9/3 on 17:31
+ * created by: YSL
+ * 描述:
+ */
+public class MessageRightAdapter extends RecyclerView.Adapter<MessageRightAdapter.MyHolder> {
+    private Context mContext;
+    private List<MessageReplyEntity> mList;
+    private ItemOnClickListener itemClick;
+    private int position;
+
+    public MessageRightAdapter(Context mContext, List<MessageReplyEntity> mList, MessageRightAdapter.ItemOnClickListener itemClick) {
+        this.mContext = mContext;
+        this.mList = mList;
+        this.itemClick = itemClick;
+    }
+
+    @NonNull
+    @Override
+    public MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
+        View view = null;
+        if (mList == null || mList.isEmpty()) {
+            view = LayoutInflater.from(mContext).inflate(R.layout.empty_view, null);
+        } else {
+            view = LayoutInflater.from(mContext).inflate(R.layout.adapter_message_left_fragment, null);
+        }
+        return new MessageRightAdapter.MyHolder(view);
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull MyHolder viewHolder, int i) {
+        if (i == mList.size() - 1) {
+            viewHolder.viewLine.setVisibility(View.GONE);//最后一条数据隐藏线条
+        }
+        //GlideImageLoader.centerImage(viewHolder.ivIcon, "");
+        viewHolder.ivIcon.setImageResource(R.mipmap.message_unread);
+        viewHolder.tvTitle.setText(mList.get(i).getTitle()+"");
+        viewHolder.tvTime.setText(mList.get(i).getCreated_at()+"");
+        viewHolder.tvContent.setText(mList.get(i).getContent());
+        position = i;
+        viewHolder.itemLayout.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                itemClick.itemClick(mList.get(position),position);
+            }
+        });
+    }
+
+    @Override
+    public int getItemCount() {
+        return mList == null ? 0 : mList.size();
+    }
+    class MyHolder extends RecyclerView.ViewHolder{
+        private ImageView ivIcon;//头像
+        private TextView tvTitle;//标题
+        private TextView tvTime;//时间
+        private TextView tvContent;//每条消息的内容,这里最多只显示一行
+        private View viewLine;//item之间的线条
+        private LinearLayout itemLayout;//整个item布局
+
+
+        public MyHolder(View view) {
+            super(view);
+            ivIcon = view.findViewById(R.id.iv_icon);
+            tvTitle = view.findViewById(R.id.tv_title);
+            tvTime = view.findViewById(R.id.tv_time);
+            tvContent = view.findViewById(R.id.tv_content);
+            viewLine = view.findViewById(R.id.view_line);
+            itemLayout = view.findViewById(R.id.item_layout);
+
+        }
+    }
+    /**
+     * 设置每一条消息的回调
+     */
+    public interface ItemOnClickListener {
+        /**
+         * @param entity
+         */
+        void itemClick(MessageReplyEntity entity,int position);
+    }
+}

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

@@ -0,0 +1,50 @@
+package com.sheep.gamegroup.view.adapter;
+
+import android.content.Context;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.googlecode.protobuf.format.util.TextUtils;
+import com.sheep.gamegroup.model.entity.PlayGameEntity;
+import com.sheep.gamegroup.util.GlideImageLoader;
+import com.sheep.gamegroup.util.ViewHolder;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.jiuyan.samllsheep.R;
+
+import java.util.List;
+
+/**
+ * Created by ljy on 2018/9/3.
+ */
+
+public class PlayGameItemAdapter extends AdbCommonRecycler<PlayGameEntity> implements View.OnClickListener {
+    public PlayGameItemAdapter(Context context, List<PlayGameEntity> list) {
+        super(context, list);
+    }
+
+    @Override
+    public void onClick(View v) {
+
+    }
+
+    @Override
+    public int getViewIdByType(int type) {
+        return R.layout.play_game_vertical_list_item;
+    }
+
+    @Override
+    public void convert(ViewHolder holder, PlayGameEntity playGameEntity) {
+        holder.itemView.setOnClickListener(this);
+        View item_download_welfare_line = holder.getView(R.id.line_tv);
+        View detail_task_tv_center = holder.getView(R.id.detail_task_tv_center);
+        TextView item_name_tv = holder.getView(R.id.item_name_tv);
+        TextView item_date_tv = holder.getView(R.id.item_date_tv);
+
+        ViewUtil.setText(item_name_tv, playGameEntity.getName());
+        ViewUtil.setText(item_date_tv, playGameEntity.getPackage_size()+"M");
+        GlideImageLoader.setImage((ImageView) holder.getView(R.id.item_icon_iv), playGameEntity.getIcon());
+
+        item_download_welfare_line.setVisibility(holder.getAdapterPosition() + 1 == getItemCount() ? View.GONE : View.VISIBLE);
+    }
+}

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

@@ -0,0 +1,377 @@
+package com.sheep.gamegroup.view.fragment;
+
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+import android.support.design.widget.TabLayout;
+import android.support.v4.view.ViewPager;
+import android.support.v4.widget.NestedScrollView;
+import android.support.v4.widget.SwipeRefreshLayout;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.RequestOptions;
+import com.kfzs.duanduan.mine.GiftpackListAdapter;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.FindTag;
+import com.sheep.gamegroup.model.entity.PlayGameEntity;
+import com.sheep.gamegroup.model.entity.SlideshowEty;
+import com.sheep.gamegroup.model.entity.Welfare;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
+import com.sheep.gamegroup.util.GlideImageLoader;
+import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.ViewHolder;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+import 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.ButterKnife;
+import butterknife.OnClick;
+import butterknife.Unbinder;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+import static com.sheep.gamegroup.util.UMConfigUtils.Event.FIND_TAG;
+
+/**
+ * Created by ljy on 2018/9/3.
+ */
+
+public class FgtPlayGame extends BaseFragment {
+    @BindView(R.id.banner)
+    Banner banner;
+    @BindView(R.id.every_day_more_tv)
+    TextView everyDayMoreTv;
+    @BindView(R.id.every_day_play_list)
+    RecyclerView everyDayPlayList;
+    @BindView(R.id.recent_hot_more_tv)
+    TextView recentHotMoreTv;
+    @BindView(R.id.recent_hoe_list)
+    RecyclerView recentHoeList;
+    @BindView(R.id.tabLayout)
+    TabLayout indicator;
+    @BindView(R.id.viewpager_act_game_details)
+    ViewPager pager;
+    @BindView(R.id.bottom_line_text)
+    TextView bottomLineText;
+    @BindView(R.id.bottom_line)
+    LinearLayout bottomLine;
+    @BindView(R.id.refresh)
+    SwipeRefreshLayout refresh;
+    @BindView(R.id.scrollView)
+    NestedScrollView scrollView;
+    Unbinder unbinder;
+
+    private Activity activity;
+    private List<PlayGameEntity> everyDayPlayListData = new ArrayList<>();
+    private List<PlayGameEntity> hotListData = new ArrayList<>();
+
+    private List<SlideshowEty> slideshowEtyLists = new ArrayList<>();
+    private List<String> slideshowTitleList = new ArrayList<>();
+
+    private List<FindTag> list = ListUtil.emptyList();
+    private GiftpackListAdapter mAdapter;
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.fgt_play_game;
+    }
+
+    @Override
+    public void onViewCreated() {
+        activity = getActivity();
+
+        //banner
+        LinearLayout.LayoutParams bannerLayoutParams = (LinearLayout.LayoutParams) banner.getLayoutParams();
+        bannerLayoutParams.height = G.WIDTH * 25 / 72;
+        banner.setLayoutParams(bannerLayoutParams);
+
+        //每日必玩、近期最热
+        LinearLayoutManager playHotManager = new LinearLayoutManager(SheepApp.getInstance(), LinearLayoutManager.HORIZONTAL, false);
+        //每日必玩
+        everyDayPlayList.setHasFixedSize(true);
+        everyDayPlayList.setNestedScrollingEnabled(false);
+        everyDayPlayList.setLayoutManager(playHotManager);
+        everyDayPlayList.setAdapter(new AdbCommonRecycler<PlayGameEntity>(SheepApp.getInstance(), everyDayPlayListData) {
+            @Override
+            public int getViewIdByType(int type) {
+                return R.layout.item_hot_welfare;
+            }
+
+            @Override
+            public void convert(ViewHolder holder, PlayGameEntity welfareCenter) {
+                ImageView item_hot_welfare_iv = holder.getView(R.id.item_hot_welfare_iv);
+                TextView item_hot_welfare_tv = holder.getView(R.id.item_hot_welfare_tv);
+                if(welfareCenter == null){
+                    ViewUtil.setDefaultText(item_hot_welfare_tv);
+                } else {
+                    //TODO 加载数据
+                    ViewUtil.setText(item_hot_welfare_tv, welfareCenter.getName());
+                    GlideImageLoader.setImage(item_hot_welfare_iv, welfareCenter.getIcon());
+                    onClickToPlayGameDetail(holder.itemView, welfareCenter);
+                }
+            }
+        });
+        //近期最热
+        LinearLayoutManager hotManager = new LinearLayoutManager(SheepApp.getInstance(), LinearLayoutManager.HORIZONTAL, false);
+        recentHoeList.setHasFixedSize(true);
+        recentHoeList.setNestedScrollingEnabled(false);
+        recentHoeList.setLayoutManager(hotManager);
+        everyDayPlayList.setAdapter(new AdbCommonRecycler<PlayGameEntity>(SheepApp.getInstance(), hotListData) {
+            @Override
+            public int getViewIdByType(int type) {
+                return R.layout.item_hot_welfare;
+            }
+
+            @Override
+            public void convert(ViewHolder holder, PlayGameEntity welfareCenter) {
+                ImageView item_hot_welfare_iv = holder.getView(R.id.item_hot_welfare_iv);
+                TextView item_hot_welfare_tv = holder.getView(R.id.item_hot_welfare_tv);
+                if(welfareCenter == null){
+                    ViewUtil.setDefaultText(item_hot_welfare_tv);
+                } else {
+                    //TODO 加载数据
+                    ViewUtil.setText(item_hot_welfare_tv, welfareCenter.getName());
+                    GlideImageLoader.setImage(item_hot_welfare_iv, welfareCenter.getIcon());
+                    onClickToPlayGameDetail(holder.itemView, welfareCenter);
+                }
+            }
+        });
+        refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
+            @Override
+            public void onRefresh() {
+                initData();
+            }
+        });
+
+        mAdapter = new GiftpackListAdapter(getFragmentManager(), SheepApp.getInstance());
+
+        //tab
+        initTab();
+    }
+
+    private void onClickToPlayGameDetail(View view, PlayGameEntity playGameEntity){
+        view.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+//                Jump2View.getInstance().goFindInformation(activity, null);
+            }
+        });
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+        // TODO: inflate a fragment view
+        View rootView = super.onCreateView(inflater, container, savedInstanceState);
+        unbinder = ButterKnife.bind(this, rootView);
+        return rootView;
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        unbinder.unbind();
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        //结束轮播
+        banner.startAutoPlay();
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        //结束轮播
+        banner.stopAutoPlay();
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        initData();
+    }
+
+    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) {
+                        CommonUtil.getInstance().clickBanner(activity,i, slideshowEtyLists);
+                    }
+                });
+
+        //banner设置方法全部调用完毕时最后调用
+        banner.start();
+    }
+
+    private void initData(){
+
+        SheepApp.getInstance().getNetComponent().getApiService().slideshow(1)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        notifyDataSetChanged();
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.slideshow);
+                        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) {
+                                    slideshowEty.setObjects(CommonUtil.getInstance().getValue(slideshowEty.getExt()));
+                                    slideshowEtyLists.add(slideshowEty);
+                                    slideshowTitleList.add(slideshowEty.getTitle());
+                                }
+                                bindBanner();
+                            }
+                        }
+                        notifyDataSetChanged();
+                    }
+                });
+
+        //每日必玩
+        SheepApp.getInstance().getNetComponent().getApiService().playgameDailyOrHotOrTypePlay(1, 10, 0,1,0)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        List<PlayGameEntity> newList = baseMessage.getDatas(PlayGameEntity.class);
+                        if(everyDayPlayListData.isEmpty() && !ListUtil.isEmpty(newList)) {//有缓存时不会加载,没有缓存时获取到数据会加载
+                            everyDayPlayList.getAdapter().notifyDataSetChanged();
+                            notifyDataSetChanged();
+                        }
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        notifyDataSetChanged();
+                    }
+                });
+
+        //近期最热
+        SheepApp.getInstance().getNetComponent().getApiService().playgameDailyOrHotOrTypePlay(1, 10, 0,1,0)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        List<PlayGameEntity> newList = baseMessage.getDatas(PlayGameEntity.class);
+                        if(hotListData.isEmpty() && !ListUtil.isEmpty(newList)) {//有缓存时不会加载,没有缓存时获取到数据会加载
+                            recentHoeList.getAdapter().notifyDataSetChanged();
+                            notifyDataSetChanged();
+                        }
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        notifyDataSetChanged();
+                    }
+                });
+    }
+    private void notifyDataSetChanged() {
+        refresh.setRefreshing(false);
+    }
+
+    /**
+     * tab
+     * @param
+     */
+    private void initTab(){
+        List<FindTag> newList = new ArrayList<>();
+        newList.add(new FindTag(1002, "平台游戏"));
+        newList.add(new FindTag(1003, "小米游戏"));
+        newList.add(new FindTag(1004, "腾讯游戏"));
+        newList.add(new FindTag(1099, "其他"));
+        if (!ListUtil.isEmpty(newList)) {
+            list.clear();
+            ListUtil.addAll(list, newList);
+            for(FindTag findTag:list){
+                mAdapter.add(FgtPlayGameSon.newInstance(findTag.getId()), findTag.getName());
+            }
+            pager.setAdapter(mAdapter);
+            indicator.setupWithViewPager(pager);
+            pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+                @Override
+                public void onPageScrolled(int i, float v, int i1) {
+
+                }
+
+                @Override
+                public void onPageSelected(int i) {
+                    FIND_TAG.onEvent("find_tag_name", ListUtil.hasIndex(list, i - 1) );
+                }
+
+                @Override
+                public void onPageScrollStateChanged(int i) {
+
+                }
+            });
+            CommonUtil.getInstance().reflex(indicator, activity);
+//            pager.setOffscreenPageLimit(mAdapter.getCount());
+            notifyDataSetChanged();
+        }
+    }
+
+    @OnClick({R.id.every_day_more_tv, R.id.recent_hot_more_tv,  R.id.bottom_line})
+    public void onViewClicked(View view) {
+        switch (view.getId()) {
+            case R.id.every_day_more_tv:
+                Jump2View.getInstance().goEverydayOrCurrentHotGame(activity, 0);
+                break;
+            case R.id.recent_hot_more_tv:
+                Jump2View.getInstance().goEverydayOrCurrentHotGame(activity, 1);
+                break;
+            case R.id.bottom_line://我是有底线的,双击我回到顶部
+                scrollView.fullScroll(NestedScrollView.FOCUS_UP);
+                break;
+        }
+    }
+}

+ 114 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGameSon.java

@@ -0,0 +1,114 @@
+package com.sheep.gamegroup.view.fragment;
+
+import android.app.Activity;
+import android.os.Bundle;
+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.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.Welfare;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.view.adapter.DownloadWelfareAdapter;
+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 butterknife.ButterKnife;
+import butterknife.Unbinder;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+/**
+ * Created by ljy on 2018/9/3.
+ */
+
+public class FgtPlayGameSon extends BaseFragment {
+    @BindView(R.id.recyclerview_list)
+    RecyclerView recyclerviewList;
+    Unbinder unbinder;
+
+    private int page = 1;//页数
+    private int per_page = 10;
+    private int type;
+    private Activity activity;
+    private List<Welfare> listData = ListUtil.emptyList();
+
+    public static FgtPlayGameSon newInstance(int type){
+        FgtPlayGameSon fgt = new FgtPlayGameSon();
+        Bundle bundle = new Bundle();
+        bundle.putInt("type", type);
+        fgt.setArguments(bundle);
+        return fgt;
+    }
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.recyclerview_layout;
+    }
+
+    @Override
+    public void onViewCreated() {
+        activity = getActivity();
+        LinearLayoutManager downloadLayoutManager = new LinearLayoutManager(SheepApp.getInstance());
+        recyclerviewList.setHasFixedSize(true);
+        recyclerviewList.setNestedScrollingEnabled(false);
+        recyclerviewList.setLayoutManager(downloadLayoutManager);
+        recyclerviewList.setAdapter(new DownloadWelfareAdapter(SheepApp.getInstance(), listData));
+
+        initData();
+    }
+
+    private void initData() {
+        SheepApp.getInstance().getNetComponent().getApiService().getFindList(page, per_page, type)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        ArrayList<Welfare> newList = baseMessage.getDataList(Welfare.class);
+                        listData.clear();
+                        ListUtil.addAll(listData, newList);
+                        recyclerviewList.getAdapter().notifyDataSetChanged();
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        listData.clear();
+                        recyclerviewList.getAdapter().notifyDataSetChanged();
+                    }
+                });
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+        // TODO: inflate a fragment view
+        View rootView = super.onCreateView(inflater, container, savedInstanceState);
+        unbinder = ButterKnife.bind(this, rootView);
+        Bundle bundle = getArguments();
+        if(bundle != null){
+            type = bundle.getInt("type", 0);
+        }
+        return rootView;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        initData();
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        unbinder.unbind();
+    }
+
+}

+ 134 - 12
app/src/main/java/com/sheep/gamegroup/view/fragment/MessageCenterFragment.java

@@ -6,22 +6,42 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
+import android.support.constraint.ConstraintLayout;
 import android.support.v4.app.Fragment;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.OrientationHelper;
 import android.support.v7.widget.RecyclerView;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import com.google.gson.Gson;
+import com.google.gson.JsonArray;
+import com.jcodecraeer.xrecyclerview.XRecyclerView;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.MessageCenterEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.LogUtil;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.gamegroup.view.activity.MessageCenterDetailActivity;
+import com.sheep.gamegroup.view.activity.MessageInteractionDetailActivity;
 import com.sheep.gamegroup.view.activity.MessageReplyDetailActivity;
 import com.sheep.gamegroup.view.adapter.MessageLeftAdapter;
 import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.G;
 
+import java.util.ArrayList;
 import java.util.List;
 
+import rx.Scheduler;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
 /**
  * created on:2018/8/28 on 12:32
  * created by: YSL
@@ -31,9 +51,12 @@ import java.util.List;
 @SuppressLint("ValidFragment")
 public class MessageCenterFragment extends Fragment implements MessageLeftAdapter.ItemOnClickListener {
     private Context mContext;
-    private RecyclerView recyclerView;
+    private XRecyclerView recyclerView;
+    private ConstraintLayout emptyView;
     private MessageLeftAdapter adapter;
-    private List<?> mList;
+    private List<MessageCenterEntity> mList = new ArrayList<>();
+    private int per_page;
+    private int page;
 
 
     public MessageCenterFragment() {
@@ -47,32 +70,131 @@ public class MessageCenterFragment extends Fragment implements MessageLeftAdapte
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
         View view = null;
-        if (mList == null || mList.isEmpty()) {
-            view=inflater.inflate(R.layout.layout_empty_no_data,null);
-        } else {
-            view = inflater.inflate(R.layout.fragment_messagecenter, null);
-            recyclerView = view.findViewById(R.id.recycle_fragment_message_center);
-        }
+        view = inflater.inflate(R.layout.fragment_messagecenter, null);
+        recyclerView = view.findViewById(R.id.recycle_fragment_message_center);
+        emptyView = view.findViewById(R.id.view_empty);
         return view;
     }
 
     @Override
     public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
-        if (mList==null||mList.isEmpty()){
-            return;
-        }
+        recyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
+            @Override
+            public void onRefresh() {
+                refreshData(1, 20);
+            }
+
+            @Override
+            public void onLoadMore() {
+                loadmoreMessage();
+                if (ListUtil.size(mList) >= per_page * page) {
+                    page += 1;
+                    loadmoreMessage();
+                } else {
+                    recyclerView.setNoMore(true);
+                }
+            }
+        });
+        //  ViewUtil.setBottomLine(recyclerView);
         adapter = new MessageLeftAdapter(mContext, mList, this);
         LinearLayoutManager manager = new LinearLayoutManager(mContext);
         manager.setOrientation(OrientationHelper.VERTICAL);
         recyclerView.setLayoutManager(manager);
         recyclerView.setAdapter(adapter);
+        loadDatas(1, 20);
+
+    }
+
+    /**
+     * 加载消息
+     *
+     * @param page     页数
+     * @param per_page ,每页加载条数
+     */
+    private void loadDatas(int page, int per_page) {
+        SheepApp.getInstance()
+                .getNetComponent()
+                .getApiService()
+                .getMessageCenter(page, per_page)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        mList.addAll(baseMessage.getDataList(MessageCenterEntity.class));
+                        if (mList.isEmpty()) {
+                            emptyView.setVisibility(View.VISIBLE);
+                            recyclerView.setVisibility(View.GONE);
+                        } else {
+                            emptyView.setVisibility(View.GONE);
+                            recyclerView.setVisibility(View.VISIBLE);
+                        }
+                        recyclerView.getAdapter().notifyDataSetChanged();
+
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        emptyView.setVisibility(View.VISIBLE);
+                        recyclerView.setVisibility(View.GONE);
+                    }
+                });
+    }
+
+    /**
+     * 刷新
+     */
+    private void refreshData(int page, int per_page) {
+        SheepApp.getInstance()
+                .getNetComponent()
+                .getApiService()
+                .getMessageCenter(page, per_page)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        if (!mList.isEmpty()) {
+                            mList.clear();
+                        }
+                        mList.addAll(baseMessage.getDataList(MessageCenterEntity.class));
+                        if (mList.isEmpty()) {
+                            emptyView.setVisibility(View.VISIBLE);
+                            recyclerView.setVisibility(View.GONE);
+                        } else {
+                            emptyView.setVisibility(View.GONE);
+                            recyclerView.setVisibility(View.VISIBLE);
+                        }
+                        recyclerView.getAdapter().notifyDataSetChanged();
+                        recyclerView.refreshComplete();
+
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        emptyView.setVisibility(View.VISIBLE);
+                        recyclerView.setVisibility(View.GONE);
+                        recyclerView.refreshComplete();
+                    }
+                });
+
+    }
+
+    /**
+     * 加载更多消息
+     */
+    private void loadmoreMessage() {
+        G.showToast("加载更多");
+        recyclerView.loadMoreComplete();
     }
 
     @Override
     public void itemClick(int position) {
         if (getActivity() != null) {
-            startActivity(new Intent(getActivity(), MessageReplyDetailActivity.class));
+            Intent intent = new Intent(getActivity(), MessageCenterDetailActivity.class);
+            intent.putExtra("position", position);
+            startActivity(intent);
         }
     }
 }

+ 133 - 9
app/src/main/java/com/sheep/gamegroup/view/fragment/MessageReplyFragment.java

@@ -14,12 +14,26 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+import com.google.gson.Gson;
+import com.jcodecraeer.xrecyclerview.XRecyclerView;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.MessageCenterEntity;
+import com.sheep.gamegroup.model.entity.MessageReplyEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.view.activity.MessageInteractionDetailActivity;
 import com.sheep.gamegroup.view.adapter.MessageLeftAdapter;
+import com.sheep.gamegroup.view.adapter.MessageRightAdapter;
 import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
 
+import java.util.ArrayList;
 import java.util.List;
 
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
 /**
  * created on:2018/8/29 on 9:58
  * created by: YSL
@@ -27,11 +41,14 @@ import java.util.List;
  */
 
 @SuppressLint("ValidFragment")
-public class MessageReplyFragment extends Fragment implements MessageLeftAdapter.ItemOnClickListener {
+public class MessageReplyFragment extends Fragment implements MessageRightAdapter.ItemOnClickListener {
     private Context mContext;
-    private RecyclerView recyclerView;
-    private MessageLeftAdapter adapter;
-    private List<?> mList;
+    private XRecyclerView recyclerView;
+    private MessageRightAdapter adapter;
+    private List<MessageReplyEntity> mList=new ArrayList<>();
+    private View emptyView;
+    private int per_page;
+    private int page;
 
     public MessageReplyFragment() {
     }
@@ -43,25 +60,132 @@ public class MessageReplyFragment extends Fragment implements MessageLeftAdapter
     @Nullable
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        View view = inflater.inflate(R.layout.fragment_messagecenter, null);
+        View view = null;
+        view = inflater.inflate(R.layout.fragment_messagecenter, null);
         recyclerView = view.findViewById(R.id.recycle_fragment_message_center);
+        emptyView = view.findViewById(R.id.view_empty);
         return view;
     }
 
     @Override
     public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
-        adapter = new MessageLeftAdapter(mContext, mList, this);
+        recyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
+            @Override
+            public void onRefresh() {
+                refreshData(1,20);
+            }
+
+            @Override
+            public void onLoadMore() {
+                loadmoreMessage();
+                if (ListUtil.size(mList) >= per_page * page) {
+                    page += 1;
+                    loadmoreMessage();
+                } else {
+                    recyclerView.setNoMore(true);
+                }
+            }
+        });
+        //  ViewUtil.setBottomLine(recyclerView);
+        adapter = new MessageRightAdapter(mContext, mList, this);
         LinearLayoutManager manager = new LinearLayoutManager(mContext);
         manager.setOrientation(OrientationHelper.VERTICAL);
         recyclerView.setLayoutManager(manager);
         recyclerView.setAdapter(adapter);
+        loadDatas(1, 20);
+    }
+
+    /**
+     * 刷新
+     */
+    private void refreshData(int page,int per_page) {
+        SheepApp.getInstance()
+                .getNetComponent()
+                .getApiService()
+                .getMessageReply(page, per_page)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        LogUtil.logI("返回格式---" + new Gson().toJson(baseMessage));
+                        if (!mList.isEmpty()){
+                            mList.clear();
+                            mList.addAll(baseMessage.getDataList(MessageReplyEntity.class));
+                        }
+                        if (mList.isEmpty()) {
+                            emptyView.setVisibility(View.VISIBLE);
+                            recyclerView.setVisibility(View.GONE);
+                        } else {
+                            emptyView.setVisibility(View.GONE);
+                            recyclerView.setVisibility(View.VISIBLE);
+                        }
+                        recyclerView.refreshComplete();
+                        recyclerView.getAdapter().notifyDataSetChanged();
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                       /* emptyView.setVisibility(View.VISIBLE);
+                        recyclerView.setVisibility(View.GONE);*/
+                        recyclerView.refreshComplete();
+                        LogUtil.logI("返回格式错误---" + new Gson().toJson(baseMessage));
+                    }
+                });
+    }
+
+    /**
+     * 加载更多
+     */
+    private void loadmoreMessage() {
+    }
+
+    /**
+     * 加载消息
+     *
+     * @param page     页数
+     * @param per_page ,每页加载条数
+     */
+    private void loadDatas(int page, int per_page) {
+        SheepApp.getInstance()
+                .getNetComponent()
+                .getApiService()
+                .getMessageReply(page, per_page)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        LogUtil.logI("返回格式---" + new Gson().toJson(baseMessage));
+                            mList.addAll(baseMessage.getDataList(MessageReplyEntity.class));
+                        if (mList.isEmpty()) {
+                            emptyView.setVisibility(View.VISIBLE);
+                            recyclerView.setVisibility(View.GONE);
+                        } else {
+                            emptyView.setVisibility(View.GONE);
+                            recyclerView.setVisibility(View.VISIBLE);
+                        }
+                        recyclerView.getAdapter().notifyDataSetChanged();
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                       /* emptyView.setVisibility(View.VISIBLE);
+                        recyclerView.setVisibility(View.GONE);*/
+                        LogUtil.logI("返回格式错误---" + new Gson().toJson(baseMessage));
+                    }
+                });
     }
 
     @Override
-    public void itemClick(int position) {
-        if (getActivity()!=null){
-            startActivity(new Intent(getActivity(), MessageInteractionDetailActivity.class));
+    public void itemClick(MessageReplyEntity entity,int position) {
+        if (getActivity() != null) {
+            Intent intent=new Intent(getActivity(), MessageInteractionDetailActivity.class);
+            intent.putExtra("message",entity);
+            intent.putExtra("position",position);
+            LogUtil.logI("loadData-----id---post--"+position);
+            startActivity(new Intent(intent));
         }
     }
 }

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

@@ -23,8 +23,7 @@
         android:layout_marginEnd="16dp"
         android:layout_marginStart="16dp"
         android:layout_marginTop="15dp"
-        android:text="xx任务上线,限量1000分,任务奖励1元,赶紧去领取吧
-~!xx任务上线,限量1000分,任务奖励1元,赶紧去领取吧~!"
+        android:text="xx任务上线,限量1000分,任务奖励1元,赶紧去领取吧~!xx任务上线,限量1000分,任务奖励1元,赶紧去领取吧~!"
         android:textColor="#ff666666"
         android:textSize="13sp" />
 </LinearLayout>

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

@@ -10,7 +10,7 @@
         android:layout_height="wrap_content"
         android:orientation="horizontal">
 
-        <com.kfzs.android.view.widget.CircleImageView
+        <ImageView
             android:id="@+id/iv_icon"
             android:layout_width="40dp"
             android:layout_height="40dp"
@@ -35,6 +35,7 @@
                 android:textSize="15sp"
                 android:textStyle="bold" />
 
+
             <TextView
                 android:id="@+id/tv_time"
                 android:layout_width="wrap_content"

+ 2 - 4
app/src/main/res/layout/fgt_personacenter_item_top.xml

@@ -46,17 +46,15 @@
                 android:layout_alignParentRight="true"
                 android:background="@color/translate"
                 android:gravity="center"
-                android:src="@mipmap/add_black_img"
-                android:visibility="gone" />
+                android:src="@mipmap/message_read_icon" />
             <!--右边设置图标按钮-->
             <ImageButton
                 android:id="@+id/ibtn_baseactivity_right"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_alignParentBottom="true"
-                android:layout_alignParentEnd="true"
-                android:layout_marginEnd="16dp"
                 android:background="@color/translate"
+                android:layout_toLeftOf="@id/ibtn_baseactivity_message"
                 android:gravity="center"
                 android:src="@mipmap/setting" />
 

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

@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.v4.widget.SwipeRefreshLayout 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">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+
+            <include layout="@layout/homepage_item_banner" />
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="10dp"
+                android:background="#fff5f5f5" />
+
+            <RelativeLayout style="@style/style_wc_rl">
+
+                <TextView
+                    style="@style/style_wc_line_title"
+                    android:text="每日必玩" />
+                <TextView
+                    android:id="@+id/every_day_more_tv"
+                    style="@style/style_wc_more"
+                    android:text="更多" />
+            </RelativeLayout>
+
+            <android.support.v7.widget.RecyclerView
+                android:id="@+id/every_day_play_list"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="10dp"
+                android:background="#fff5f5f5" />
+
+            <RelativeLayout style="@style/style_wc_rl">
+
+                <TextView
+                    style="@style/style_wc_line_title"
+                    android:text="近期最热" />
+
+                <TextView
+                    android:id="@+id/recent_hot_more_tv"
+                    style="@style/style_wc_more"
+                    android:text="更多" />
+            </RelativeLayout>
+
+            <android.support.v7.widget.RecyclerView
+                android:id="@+id/recent_hoe_list"
+                android:layout_width="match_parent"
+                android:paddingTop="4dp"
+                android:paddingBottom="4dp"
+                android:layout_height="wrap_content" />
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="10dp"
+                android:background="#fff5f5f5" />
+
+            <!--选项卡-->
+            <include layout="@layout/tablayout_viewpager_layout" />
+
+            <include layout="@layout/find_item_bottom"/>
+        </LinearLayout>
+
+    </android.support.v4.widget.NestedScrollView>
+
+</android.support.v4.widget.SwipeRefreshLayout>

+ 10 - 0
app/src/main/res/layout/fragment_message_reply.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <com.jcodecraeer.xrecyclerview.XRecyclerView
+        android:id="@+id/recycle_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+</android.support.constraint.ConstraintLayout>

+ 6 - 1
app/src/main/res/layout/fragment_messagecenter.xml

@@ -3,8 +3,13 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
+    <include
+        android:id="@+id/view_empty"
+        layout="@layout/layout_empty_no_data"
+        android:visibility="gone"/>
 
-    <android.support.v7.widget.RecyclerView
+
+    <com.jcodecraeer.xrecyclerview.XRecyclerView
         android:id="@+id/recycle_fragment_message_center"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />

+ 165 - 0
app/src/main/res/layout/play_game_vertical_list_item.xml

@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout 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"
+    android:orientation="vertical">
+
+    <android.support.constraint.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginEnd="12dp"
+        android:layout_marginStart="12dp"
+        android:layout_marginTop="@dimen/content_padding_10">
+
+        <ImageView
+            android:id="@+id/item_icon_iv"
+            android:layout_width="70dp"
+            android:layout_height="70dp"
+            android:src="@drawable/icon_lj"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+
+        <TextView
+            android:id="@+id/end_of_time_tv"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="@dimen/content_padding_4"
+            android:layout_marginStart="@dimen/content_padding_4"
+            android:layout_marginTop="55dp"
+            android:background="@drawable/shape_ash_stroke_white_solid_rectangle"
+            android:gravity="center"
+            android:lines="1"
+            android:textColor="#989898"
+            android:textSize="12sp"
+            android:visibility="gone"
+            app:layout_constraintEnd_toEndOf="@+id/item_icon_iv"
+            app:layout_constraintStart_toStartOf="@+id/item_icon_iv"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <LinearLayout
+            android:id="@+id/item_name_tv_ll"
+            android:layout_width="0dp"
+            android:layout_height="70dp"
+            android:layout_marginStart="@dimen/content_padding"
+            android:orientation="vertical"
+            app:layout_constraintEnd_toStartOf="@+id/task_type_tv"
+            app:layout_constraintStart_toEndOf="@+id/item_icon_iv">
+
+            <TextView
+                android:id="@+id/item_name_tv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:ellipsize="middle"
+                android:gravity="start"
+                android:maxLines="2"
+                android:text=""
+                android:textColor="#444444"
+                android:textSize="14sp" />
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="3" />
+            <LinearLayout
+                android:id="@+id/item_date_layout"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="@dimen/content_padding_8"
+                android:layout_marginTop="@dimen/content_padding_2"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:id="@+id/item_date_tv"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:lines="1"
+                    android:text=""
+                    android:textColor="#cc8e8e8e"
+                    android:textSize="10sp" />
+
+                <ImageView
+                    android:id="@+id/item_date_question_img"
+                    android:layout_width="15dp"
+                    android:layout_height="15dp"
+                    android:src="@mipmap/task_game_qustion_icon"
+                    android:visibility="gone"
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintStart_toEndOf="@+id/item_date_tv" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:gravity="center_vertical"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:id="@+id/item_num_tv"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text=""
+                    android:textColor="#cc8e8e8e"
+                    android:textSize="10sp" />
+
+                <TextView
+                    android:id="@+id/item_num_tv1"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/content_padding"
+                    android:text=""
+                    android:textColor="#cc8e8e8e"
+                    android:textSize="10sp"
+                    android:visibility="gone" />
+                <TextView
+                    android:id="@+id/item_num_tv2"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/content_padding"
+                    android:text=""
+                    android:textColor="#cc8e8e8e"
+                    android:textSize="10sp"
+                    android:visibility="gone" />
+                <TextView
+                    android:id="@+id/item_num_tv3"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/content_padding"
+                    android:text=""
+                    android:textColor="#cc8e8e8e"
+                    android:textSize="10sp"
+                    android:visibility="gone" />
+            </LinearLayout>
+
+        </LinearLayout>
+
+        <TextView
+            android:id="@+id/detail_task_tv_center"
+            style="@style/style_button_find"
+            android:layout_centerInParent="true"
+            android:text="取消任务"
+            android:visibility="visible"
+            app:layout_constraintBottom_toBottomOf="@+id/item_icon_iv"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+    </android.support.constraint.ConstraintLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/content_padding_10"/>
+    <View
+        android:id="@+id/line_tv"
+        android:layout_width="match_parent"
+        android:layout_height="0.5dp"
+        android:layout_marginEnd="12dp"
+        android:layout_marginStart="12dp"
+        android:background="@color/gray_F0F0F0" />
+</LinearLayout>

+ 7 - 0
app/src/main/res/layout/recyclerview_layout.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/recyclerview_list"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+</android.support.v7.widget.RecyclerView>

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


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


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