Просмотр исходного кода

个人资料,领红包,抢任务,

yuanshenglan лет назад: 7
Родитель
Сommit
033c11a0f7
24 измененных файлов с 1067 добавлено и 261 удалено
  1. 1 0
      app/src/main/java/com/kfzs/duanduan/fragment/FgtFindChild.java
  2. 43 2
      app/src/main/java/com/kfzs/duanduan/fragment/FgtPersonalCenter.java
  3. 51 20
      app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java
  4. 2 0
      app/src/main/java/com/kfzs/duanduan/react/TabsHelper.java
  5. 106 38
      app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java
  6. 30 19
      app/src/main/java/com/sheep/gamegroup/model/entity/UserEntity.java
  7. 46 28
      app/src/main/java/com/sheep/gamegroup/model/entity/Version.java
  8. 1 0
      app/src/main/java/com/sheep/gamegroup/presenter/PhoneContract.java
  9. 52 8
      app/src/main/java/com/sheep/gamegroup/presenter/PhonePresenter.java
  10. 39 2
      app/src/main/java/com/sheep/gamegroup/util/LogUtil.java
  11. 417 80
      app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java
  12. 2 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActCreditCardWeb.java
  13. 83 4
      app/src/main/java/com/sheep/gamegroup/view/activity/PersonalInfoAct.java
  14. 26 22
      app/src/main/java/com/sheep/gamegroup/view/activity/PhoneAct.java
  15. 2 3
      app/src/main/res/layout/fgt_personacenter_item_top.xml
  16. 14 11
      app/src/main/res/layout/fgt_personalcenter_item_center_one.xml
  17. 6 8
      app/src/main/res/layout/fgt_personalcenter_item_center_two.xml
  18. 10 1
      app/src/main/res/layout/fgt_personalcenter_layout.xml
  19. 21 1
      app/src/main/res/layout/homepage_act_layout.xml
  20. 44 12
      app/src/main/res/layout/xpersion_info_act_layout.xml
  21. 30 1
      app/src/main/res/values/dd_styles.xml
  22. 1 0
      app/src/main/res/values/dimens.xml
  23. 24 0
      app/src/main/res/values/strings.xml
  24. 16 0
      app/src/main/res/values/styles.xml

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

@@ -467,5 +467,6 @@ public class FgtFindChild extends BaseCompatFragment {
     public void onDestroy() {
     public void onDestroy() {
         super.onDestroy();
         super.onDestroy();
         EventBus.getDefault().unregister(this);
         EventBus.getDefault().unregister(this);
+        Aria.download(this).unRegister();
     }
     }
 }
 }

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

@@ -3,18 +3,24 @@ package com.kfzs.duanduan.fragment;
 import android.app.Activity;
 import android.app.Activity;
 import android.graphics.Color;
 import android.graphics.Color;
 import android.os.Bundle;
 import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.ImageView;
+import android.widget.PopupWindow;
+import android.widget.RelativeLayout;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.model.entity.AgentEntity;
 import com.sheep.gamegroup.model.entity.AgentEntity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.entity.UserEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.GlideImageLoader;
@@ -35,7 +41,9 @@ import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.ButterKnife;
 import butterknife.OnClick;
 import butterknife.OnClick;
 import butterknife.Unbinder;
 import butterknife.Unbinder;
+import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.functions.Action1;
+import rx.schedulers.Schedulers;
 
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_AGENT;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_AGENT;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_FAQ;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_FAQ;
@@ -145,11 +153,40 @@ public class FgtPersonalCenter extends BaseCompatFragment {
         // TODO: inflate a fragment view
         // TODO: inflate a fragment view
         View rootView = super.onCreateView(inflater, container, savedInstanceState);
         View rootView = super.onCreateView(inflater, container, savedInstanceState);
         unbinder = ButterKnife.bind(this, rootView);
         unbinder = ButterKnife.bind(this, rootView);
-
         return rootView;
         return rootView;
     }
     }
 
 
     @Override
     @Override
+    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+    }
+
+    /**
+     * 领取红包
+     *
+     * @param code 邀请码
+     */
+    public void getRedPackage(String code, final PopupWindow popupWindow) {
+        SheepApp.getInstance().getNetComponent().getApiService().getInfo()
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        popupWindow.dismiss();
+                        ViewUtil.showRedPackageAfterInvitation(getActivity(),getView());
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        ViewUtil.showRedPackageAfterInvitation(getActivity(),getView());
+                        G.showToast(baseMessage);
+                    }
+                });
+    }
+
+
+    @Override
     public void onDestroyView() {
     public void onDestroyView() {
         super.onDestroyView();
         super.onDestroyView();
         unbinder.unbind();
         unbinder.unbind();
@@ -158,10 +195,14 @@ public class FgtPersonalCenter extends BaseCompatFragment {
     @OnClick({R.id.icon_img_iv, R.id.account_detail_layout, R.id.personalcenter_price_layout,
     @OnClick({R.id.icon_img_iv, R.id.account_detail_layout, R.id.personalcenter_price_layout,
             R.id.account_task_layout, R.id.proxy_service_layout, R.id.feedbook_layout,
             R.id.account_task_layout, R.id.proxy_service_layout, R.id.feedbook_layout,
             R.id.recommend_friend_layout, R.id.faq_layout, R.id.reservation_layout, R.id.version_layout,
             R.id.recommend_friend_layout, R.id.faq_layout, R.id.reservation_layout, R.id.version_layout,
-            R.id.change_layout, R.id.order_layout, R.id.proxy_game_account_layout
+            R.id.change_layout, R.id.order_layout, R.id.proxy_game_account_layout,
+            R.id.iv_redpackage
     })
     })
     public void onViewClicked(View view) {
     public void onViewClicked(View view) {
         switch (view.getId()) {
         switch (view.getId()) {
+            case R.id.iv_redpackage://邀请成功后有可领红包
+                ViewUtil.changeRedPackage(getActivity(),getView(),FgtPersonalCenter.this);
+                break;
             case R.id.icon_img_iv://图片
             case R.id.icon_img_iv://图片
             case R.id.account_detail_layout://个人资料
             case R.id.account_detail_layout://个人资料
                 Jump2View.getInstance().goPersionInfo(activity, null);
                 Jump2View.getInstance().goPersionInfo(activity, null);

+ 51 - 20
app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java

@@ -1,5 +1,6 @@
 package com.kfzs.duanduan.fragment;
 package com.kfzs.duanduan.fragment;
 
 
+import android.annotation.SuppressLint;
 import android.app.Activity;
 import android.app.Activity;
 import android.content.Context;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.DialogInterface;
@@ -20,11 +21,13 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.LinearLayout;
+import android.widget.PopupWindow;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
 import com.bumptech.glide.request.RequestOptions;
+import com.google.gson.Gson;
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.react.ConfigUtil;
 import com.kfzs.duanduan.react.ConfigUtil;
@@ -43,10 +46,12 @@ import com.sheep.gamegroup.model.entity.RecyleType;
 import com.sheep.gamegroup.model.entity.RequestParameEty;
 import com.sheep.gamegroup.model.entity.RequestParameEty;
 import com.sheep.gamegroup.model.entity.SlideshowEty;
 import com.sheep.gamegroup.model.entity.SlideshowEty;
 import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
 import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
+import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.model.entity.TaskReleaseEty;
 import com.sheep.gamegroup.model.entity.TaskReleaseEty;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.util.AutoTaskListUtil;
 import com.sheep.gamegroup.model.util.AutoTaskListUtil;
 import com.sheep.gamegroup.model.util.EntityUtils;
 import com.sheep.gamegroup.model.util.EntityUtils;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.presenter.SmallSheepContract;
 import com.sheep.gamegroup.presenter.SmallSheepContract;
 import com.sheep.gamegroup.presenter.SmallSheepPresenter;
 import com.sheep.gamegroup.presenter.SmallSheepPresenter;
 import com.sheep.gamegroup.presenter.TryMakeMoneyContract;
 import com.sheep.gamegroup.presenter.TryMakeMoneyContract;
@@ -56,6 +61,7 @@ import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.MyGridview;
 import com.sheep.gamegroup.util.MyGridview;
 import com.sheep.gamegroup.util.MyListview;
 import com.sheep.gamegroup.util.MyListview;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.SysAppUtil;
@@ -92,10 +98,15 @@ import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.ButterKnife;
 import butterknife.OnClick;
 import butterknife.OnClick;
 import butterknife.Unbinder;
 import butterknife.Unbinder;
+import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.functions.Action1;
+import rx.schedulers.Schedulers;
 
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.NEWBIE_TASK;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.NEWBIE_TASK;
 
 
+/**
+ *
+ */
 public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContract.View, TryMakeMoneyContract.View {
 public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContract.View, TryMakeMoneyContract.View {
 
 
     @BindView(R.id.upview1)
     @BindView(R.id.upview1)
@@ -130,6 +141,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     NestedScrollView scrollView;
     NestedScrollView scrollView;
     @BindView(R.id.newbie_task)
     @BindView(R.id.newbie_task)
     View newbie_task;
     View newbie_task;
+
     @BindView(R.id.refresh)
     @BindView(R.id.refresh)
     SwipeRefreshLayout refresh;
     SwipeRefreshLayout refresh;
     @BindView(R.id.recyclerview)
     @BindView(R.id.recyclerview)
@@ -146,6 +158,11 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     View check_net_ll;
     View check_net_ll;
     @BindView(R.id.bg_newbie_task)
     @BindView(R.id.bg_newbie_task)
     ImageView bg_newbie_task;
     ImageView bg_newbie_task;
+    @BindView(R.id.view_rob_duty)
+    View viewRobDuty;
+    @BindView(R.id.iv_rob_duty)
+    ImageView ivDuty;
+
 
 
     @Inject
     @Inject
     SmallSheepPresenter pagePresenter;
     SmallSheepPresenter pagePresenter;
@@ -168,6 +185,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     private List<HomeListEntity> homeListEntitysListview = new ArrayList<>();
     private List<HomeListEntity> homeListEntitysListview = new ArrayList<>();
     private AdpHomeListGrideview adpHomeListGrideview;
     private AdpHomeListGrideview adpHomeListGrideview;
     private AdpHomeListListview adpHomeListListview;
     private AdpHomeListListview adpHomeListListview;
+    private TaskReleaseEty taskEty;
 
 
     private static final int LIST_COUNT = 2;//tryMakeMoneyAdp 总共有2条数据
     private static final int LIST_COUNT = 2;//tryMakeMoneyAdp 总共有2条数据
     private static final RecyleObj NULL = RecyleObj.make(RecyleType.NONE, null);//空数据
     private static final RecyleObj NULL = RecyleObj.make(RecyleType.NONE, null);//空数据
@@ -181,13 +199,13 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                     break;
                     break;
                 case 1:
                 case 1:
                     int position = 0;
                     int position = 0;
-                    if(!ListUtil.isEmpty(allTaskAcceptedTaskList)){
+                    if (!ListUtil.isEmpty(allTaskAcceptedTaskList)) {
                         tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, allTaskAcceptedTaskList), position++);
                         tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, allTaskAcceptedTaskList), position++);
                     }
                     }
-                    if(!ListUtil.isEmpty(releaseEtyLists)) {
+                    if (!ListUtil.isEmpty(releaseEtyLists)) {
                         tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists), position++);
                         tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists), position++);
                     }
                     }
-                    while(position < LIST_COUNT){
+                    while (position < LIST_COUNT) {
                         tryMakeMoneyAdp.add(NULL, position++);
                         tryMakeMoneyAdp.add(NULL, position++);
                     }
                     }
                     tryMakeMoneyAdp.notifyDataSetChanged();
                     tryMakeMoneyAdp.notifyDataSetChanged();
@@ -209,6 +227,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         TestUtil.testChange(activity, (TextView) getViewById(R.id.test_change));
         TestUtil.testChange(activity, (TextView) getViewById(R.id.test_change));
         TestUtil.testChangeUser(activity, (TextView) getViewById(R.id.test_change_user));
         TestUtil.testChangeUser(activity, (TextView) getViewById(R.id.test_change_user));
         GlideImageLoader.setImage(bg_newbie_task, "http://cdngame.kuaifazs.com/bg_newbie_task.png");
         GlideImageLoader.setImage(bg_newbie_task, "http://cdngame.kuaifazs.com/bg_newbie_task.png");
+       // GlideImageLoader.setImage(ivDuty, "http://pic.616pic.com/ys_b_img/00/08/15/0Yc1l1EOfN.jpg");
         if (pagePresenter != null) {
         if (pagePresenter != null) {
             initData();
             initData();
         }
         }
@@ -250,6 +269,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     }
     }
 
 
 
 
+    @SuppressLint("ClickableViewAccessibility")
     public void initListener() {
     public void initListener() {
         scrollView.setOnTouchListener(new View.OnTouchListener() {
         scrollView.setOnTouchListener(new View.OnTouchListener() {
             @Override
             @Override
@@ -310,7 +330,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 
 
         //用户信息
         //用户信息
         userEntity = DataUtil.getInstance().getUserEntity();
         userEntity = DataUtil.getInstance().getUserEntity();
-        if(userEntity != null){
+        if (userEntity != null) {
             loadUserInfo();
             loadUserInfo();
         }
         }
         //任务
         //任务
@@ -323,13 +343,13 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 
 
         //实时动态
         //实时动态
         List<MoreDataEntity> cacheMoreDataEtyList = DataUtil.getInstance().getCacheList(ApiKey.award_detail, MoreDataEntity.class);
         List<MoreDataEntity> cacheMoreDataEtyList = DataUtil.getInstance().getCacheList(ApiKey.award_detail, MoreDataEntity.class);
-        if(!ListUtil.isEmpty(cacheMoreDataEtyList)){
+        if (!ListUtil.isEmpty(cacheMoreDataEtyList)) {
             invite(cacheMoreDataEtyList);
             invite(cacheMoreDataEtyList);
         }
         }
 
 
         //公告
         //公告
         List<BulletinEnty> cacheBulletinEtyList = DataUtil.getInstance().getCacheList(ApiKey.bulletin, BulletinEnty.class);
         List<BulletinEnty> cacheBulletinEtyList = DataUtil.getInstance().getCacheList(ApiKey.bulletin, BulletinEnty.class);
-        if(ListUtil.isEmpty(cacheBulletinEtyList)){
+        if (ListUtil.isEmpty(cacheBulletinEtyList)) {
             homepageItemNoticeLayout.setVisibility(View.GONE);
             homepageItemNoticeLayout.setVisibility(View.GONE);
         } else {
         } else {
             bulletinEntyLists.clear();
             bulletinEntyLists.clear();
@@ -338,7 +358,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         }
         }
         //轮播
         //轮播
         List<SlideshowEty> cacheSlideshowEtyList = DataUtil.getInstance().getCacheList(ApiKey.slideshow, SlideshowEty.class);
         List<SlideshowEty> cacheSlideshowEtyList = DataUtil.getInstance().getCacheList(ApiKey.slideshow, SlideshowEty.class);
-        if(ListUtil.isEmpty(cacheSlideshowEtyList)){
+        if (ListUtil.isEmpty(cacheSlideshowEtyList)) {
             banner.setVisibility(View.GONE);
             banner.setVisibility(View.GONE);
         } else {
         } else {
             for (SlideshowEty slideshowEty : cacheSlideshowEtyList) {
             for (SlideshowEty slideshowEty : cacheSlideshowEtyList) {
@@ -350,7 +370,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         }
         }
         //首页list
         //首页list
         List<HomeListEntity> cacheHomeListEtyList = DataUtil.getInstance().getCacheList(ApiKey.home_list, HomeListEntity.class);
         List<HomeListEntity> cacheHomeListEtyList = DataUtil.getInstance().getCacheList(ApiKey.home_list, HomeListEntity.class);
-        if(ListUtil.isEmpty(cacheHomeListEtyList)){
+        if (ListUtil.isEmpty(cacheHomeListEtyList)) {
             home_list_gridview_layout.setVisibility(View.GONE);
             home_list_gridview_layout.setVisibility(View.GONE);
         } else {
         } else {
             home_list_gridview_layout.setVisibility(View.VISIBLE);
             home_list_gridview_layout.setVisibility(View.VISIBLE);
@@ -453,7 +473,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                                 1,
                                 1,
                                 0,
                                 0,
                                 0,
                                 0,
-                                 "-1",
+                                "-1",
                                 3));
                                 3));
         tryMakeMoneyPresenter.releaseTask(parameEty);
         tryMakeMoneyPresenter.releaseTask(parameEty);
     }
     }
@@ -493,7 +513,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         }
         }
         BaseMessage baseMessage = (BaseMessage) o;
         BaseMessage baseMessage = (BaseMessage) o;
         userEntity = baseMessage.getData(UserEntity.class);
         userEntity = baseMessage.getData(UserEntity.class);
-        if(userEntity == null){
+        if (userEntity == null) {
             return;
             return;
         }
         }
         DataUtil.getInstance().setUserEntity(userEntity);
         DataUtil.getInstance().setUserEntity(userEntity);
@@ -527,12 +547,14 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     public void giveUpTaskFailView(Object o) {
     public void giveUpTaskFailView(Object o) {
 
 
     }
     }
+
     private int is_succession = 3;//所有
     private int is_succession = 3;//所有
     private int show_game_task = 1;//包含游戏任务
     private int show_game_task = 1;//包含游戏任务
+
     @Override
     @Override
     public void returnTaskTaskUpdataView(Object object) {
     public void returnTaskTaskUpdataView(Object object) {
         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.new_run_task(is_succession, show_game_task));
         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.new_run_task(is_succession, show_game_task));
-        if(isNewData) {
+        if (isNewData) {
             BaseMessage baseMessage = (BaseMessage) object;
             BaseMessage baseMessage = (BaseMessage) object;
             allTaskAcceptedTaskList = baseMessage.getDataList(TaskAcceptedEty.class);
             allTaskAcceptedTaskList = baseMessage.getDataList(TaskAcceptedEty.class);
             AutoTaskListUtil.getInstance().loadList(allTaskAcceptedTaskList);
             AutoTaskListUtil.getInstance().loadList(allTaskAcceptedTaskList);
@@ -563,7 +585,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     @Override
     @Override
     public void releaseTaskTaskUpdataView(Object object) {
     public void releaseTaskTaskUpdataView(Object object) {
         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.release_task);
         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.release_task);
-        if(isNewData && object instanceof BaseMessage) {
+        if (isNewData && object instanceof BaseMessage) {
             List<TaskReleaseEty> releaseEtyList = ((BaseMessage) object).getDataList(TaskReleaseEty.class);
             List<TaskReleaseEty> releaseEtyList = ((BaseMessage) object).getDataList(TaskReleaseEty.class);
             if (releaseEtyList != null) {
             if (releaseEtyList != null) {
                 releaseEtyLists = releaseEtyList;
                 releaseEtyLists = releaseEtyList;
@@ -601,7 +623,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     @Override
     @Override
     public void successSlideshow(BaseMessage baseMessage) {
     public void successSlideshow(BaseMessage baseMessage) {
         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.slideshow);
         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.slideshow);
-        if(isNewData){
+        if (isNewData) {
             List<SlideshowEty> slideshowEtyList = baseMessage.getDataList(SlideshowEty.class);
             List<SlideshowEty> slideshowEtyList = baseMessage.getDataList(SlideshowEty.class);
             if (ListUtil.isEmpty(slideshowEtyList)) {
             if (ListUtil.isEmpty(slideshowEtyList)) {
                 banner.setVisibility(View.GONE);
                 banner.setVisibility(View.GONE);
@@ -625,7 +647,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     @Override
     @Override
     public void successbulletin(BaseMessage baseMessage) {
     public void successbulletin(BaseMessage baseMessage) {
         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.bulletin);
         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.bulletin);
-        if(isNewData){
+        if (isNewData) {
             List<BulletinEnty> bulletinEntyList = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), BulletinEnty.class);
             List<BulletinEnty> bulletinEntyList = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), BulletinEnty.class);
             if (ListUtil.isEmpty(bulletinEntyList)) {
             if (ListUtil.isEmpty(bulletinEntyList)) {
                 homepageItemNoticeLayout.setVisibility(View.GONE);
                 homepageItemNoticeLayout.setVisibility(View.GONE);
@@ -641,7 +663,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     public void successhomeList(BaseMessage baseMessage) {
     public void successhomeList(BaseMessage baseMessage) {
         checkAndInitView();
         checkAndInitView();
         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.home_list);
         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.home_list);
-        if(isNewData){
+        if (isNewData) {
             List<HomeListEntity> homeListEntityList = baseMessage.getDataList(HomeListEntity.class);
             List<HomeListEntity> homeListEntityList = baseMessage.getDataList(HomeListEntity.class);
             if (ListUtil.isEmpty(homeListEntityList)) {
             if (ListUtil.isEmpty(homeListEntityList)) {
                 home_list_gridview_layout.setVisibility(View.GONE);
                 home_list_gridview_layout.setVisibility(View.GONE);
@@ -693,16 +715,18 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         home_list_gridview_layout.setVisibility(View.GONE);
         home_list_gridview_layout.setVisibility(View.GONE);
 
 
     }
     }
+
     private int onResumeCount = 0;
     private int onResumeCount = 0;
+
     @Override
     @Override
     public void onResume() {
     public void onResume() {
         super.onResume();
         super.onResume();
         UserEntity result = DataUtil.getInstance().getUserEntity();
         UserEntity result = DataUtil.getInstance().getUserEntity();
-        if(result == null) {
+        if (result == null) {
             CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
             CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
                 @Override
                 @Override
                 public void call(UserEntity item) {
                 public void call(UserEntity item) {
-                    if(item != null) {
+                    if (item != null) {
                         userEntity = item;
                         userEntity = item;
                         loadUserInfo();
                         loadUserInfo();
                     }
                     }
@@ -712,13 +736,20 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             userEntity = result;
             userEntity = result;
             loadUserInfo();
             loadUserInfo();
         }
         }
-        if(DataUtil.getInstance().isTaskListChange(getClass()))//数据变化才刷新
+        if (DataUtil.getInstance().isTaskListChange(getClass()))//数据变化才刷新
             refreshTaskList();
             refreshTaskList();
-        if(onResumeCount == 0)//第一次才调用
+        if (onResumeCount == 0)//第一次才调用
             Jump2View.getInstance().tryShowNewbieTask(activity, userEntity, newbie_task);
             Jump2View.getInstance().tryShowNewbieTask(activity, userEntity, newbie_task);
         onResumeCount++;
         onResumeCount++;
+        viewRobDuty.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                ViewUtil.showRobDutyDialog(getActivity(), getView());
+            }
+        });
     }
     }
 
 
+
     @Override
     @Override
     public void onPause() {
     public void onPause() {
         super.onPause();
         super.onPause();
@@ -974,7 +1005,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
      * 点击一条公告
      * 点击一条公告
      */
      */
     private void onClickNotice(BulletinEnty item) {
     private void onClickNotice(BulletinEnty item) {
-        switch (item.getJumpType()){// 跳转类型:11,任务 98,内部h5 99,外部h5
+        switch (item.getJumpType()) {// 跳转类型:11,任务 98,内部h5 99,外部h5
             case 11:
             case 11:
                 Jump2View.getInstance().goTaskDetailView(activity, NumberFormatUtils.parseInteger(item.getJumpValue()));
                 Jump2View.getInstance().goTaskDetailView(activity, NumberFormatUtils.parseInteger(item.getJumpValue()));
                 break;
                 break;

+ 2 - 0
app/src/main/java/com/kfzs/duanduan/react/TabsHelper.java

@@ -14,6 +14,7 @@ import com.kfzs.duanduan.adp.ViewPagerFragmentAdapter;
 import com.kfzs.duanduan.fragment.FgtPersonalCenter;
 import com.kfzs.duanduan.fragment.FgtPersonalCenter;
 import com.kfzs.duanduan.fragment.FgtSmallSheep;
 import com.kfzs.duanduan.fragment.FgtSmallSheep;
 import com.kfzs.libs.utils.DrawablesHelper;
 import com.kfzs.libs.utils.DrawablesHelper;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
@@ -177,6 +178,7 @@ public class TabsHelper {
     private int lastPosition = MainTab.FgtSmallSheep.ordinal();//默认选中小绵羊
     private int lastPosition = MainTab.FgtSmallSheep.ordinal();//默认选中小绵羊
 
 
     private void initViewPager() {
     private void initViewPager() {
+        LogUtil.logI("fragmentList.size---"+fragmentList.size());
         ViewPagerFragmentAdapter mViewPagerFragmentAdapter = new ViewPagerFragmentAdapter(activity.getSupportFragmentManager(), fragmentList);
         ViewPagerFragmentAdapter mViewPagerFragmentAdapter = new ViewPagerFragmentAdapter(activity.getSupportFragmentManager(), fragmentList);
         view_pager_container.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
         view_pager_container.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
 
 

+ 106 - 38
app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java

@@ -33,7 +33,6 @@ public interface ApiService {
     Call<Object> getTimeInfoPostForm(@FieldMap Map<String, String> map);
     Call<Object> getTimeInfoPostForm(@FieldMap Map<String, String> map);
 
 
     /**
     /**
-     *
      * @param jsonObject
      * @param jsonObject
      * @return
      * @return
      */
      */
@@ -45,25 +44,36 @@ public interface ApiService {
     Observable<BaseMessage> loginByCaptcha(@Body JSONObject jsonObject);
     Observable<BaseMessage> loginByCaptcha(@Body JSONObject jsonObject);
 
 
     /**
     /**
+     * @return ,
+     * 主页抢任务
+     */
+    @GET("app/release_task/commend_task/")
+    Observable<BaseMessage> getNewTask(@Query("order") int order);
+
+    /**
      * 获取用户信息
      * 获取用户信息
      */
      */
     @GET("app/user/get_info/")
     @GET("app/user/get_info/")
     Observable<BaseMessage> getInfo();
     Observable<BaseMessage> getInfo();
+
     /**
     /**
      * 获取用户的已经挂机微信
      * 获取用户的已经挂机微信
      */
      */
     @GET("app/wechat/")
     @GET("app/wechat/")
     Observable<BaseMessage> getWebchat();
     Observable<BaseMessage> getWebchat();
+
     /**
     /**
      * 提交用户的微信账号与密码
      * 提交用户的微信账号与密码
      */
      */
     @POST("app/wechat/")
     @POST("app/wechat/")
     Observable<BaseMessage> postWebchat(@Body JSONObject jsonObject);
     Observable<BaseMessage> postWebchat(@Body JSONObject jsonObject);
+
     /**
     /**
      * 提交用户的微信账号与密码
      * 提交用户的微信账号与密码
      */
      */
     @PUT("app/wechat/{id}")
     @PUT("app/wechat/{id}")
     Observable<BaseMessage> putWebchat(@Path("id") int id, @Body JSONObject jsonObject);
     Observable<BaseMessage> putWebchat(@Path("id") int id, @Body JSONObject jsonObject);
+
     /**
     /**
      * 获取微信挂机功能是否开启
      * 获取微信挂机功能是否开启
      */
      */
@@ -103,12 +113,13 @@ public interface ApiService {
      */
      */
     @GET("app/accepted_task/new_run_task/")
     @GET("app/accepted_task/new_run_task/")
     Observable<BaseMessage> returnTask(@Query("is_succession") int is_succession, @Query("show_game_task") int show_game_task);
     Observable<BaseMessage> returnTask(@Query("is_succession") int is_succession, @Query("show_game_task") int show_game_task);
+
     /**
     /**
      * 自动提交时长任务
      * 自动提交时长任务
-     *
-     "gps": "string",
-     "release_task_id": 0,
-     "task_time": 0
+     * <p>
+     * "gps": "string",
+     * "release_task_id": 0,
+     * "task_time": 0
      */
      */
     @POST("app/accepted_task/auto_check/")
     @POST("app/accepted_task/auto_check/")
     Observable<BaseMessage> commitAutoTask(@Body JSONObject param);
     Observable<BaseMessage> commitAutoTask(@Body JSONObject param);
@@ -121,6 +132,7 @@ public interface ApiService {
                                         @Query("platform") int platform, @Query("is_hot") int is_hot,
                                         @Query("platform") int platform, @Query("is_hot") int is_hot,
                                         @Query("is_recommend") int is_recommend, @Query("about_to_begin") int about_to_begin,
                                         @Query("is_recommend") int is_recommend, @Query("about_to_begin") int about_to_begin,
                                         @Query("task_type") String task_type, @Query("is_succession") int is_succession);
                                         @Query("task_type") String task_type, @Query("is_succession") int is_succession);
+
     /**
     /**
      * 搜索游戏
      * 搜索游戏
      */
      */
@@ -131,38 +143,37 @@ public interface ApiService {
                                         @Query("task_type") String task_type, @Query("is_succession") int is_succession, @Query("name") String name);
                                         @Query("task_type") String task_type, @Query("is_succession") int is_succession, @Query("name") String name);
 
 
 
 
-
     /**
     /**
      * 邀请赚钱
      * 邀请赚钱
      */
      */
     @GET("app/auth/login_by_we_chat")
     @GET("app/auth/login_by_we_chat")
     Observable<BaseMessage> askMakeMoney(@Body String jsonObject);
     Observable<BaseMessage> askMakeMoney(@Body String jsonObject);
+
     /**
     /**
      * 用户提现记录
      * 用户提现记录
      */
      */
     @GET("app/withdraw/")
     @GET("app/withdraw/")
-    Observable<BaseMessage> goWithdrawal(@Query("page") int page, @Query("per_page") int per_page, @Query("start_time ") String start_time , @Query("end_time ") String end_time );
-
+    Observable<BaseMessage> goWithdrawal(@Query("page") int page, @Query("per_page") int per_page, @Query("start_time ") String start_time, @Query("end_time ") String end_time);
 
 
 
 
     /**
     /**
      * 微信登录
      * 微信登录
+     *
      * @param jsonObject
      * @param jsonObject
      */
      */
     @POST("app/auth/login_by_we_chat")
     @POST("app/auth/login_by_we_chat")
     Observable<BaseMessage> LoginByWX(@Body com.alibaba.fastjson.JSONObject jsonObject);
     Observable<BaseMessage> LoginByWX(@Body com.alibaba.fastjson.JSONObject jsonObject);
 
 
 
 
-
     /**
     /**
      * qq登录
      * qq登录
+     *
      * @param jsonObject
      * @param jsonObject
      */
      */
     @POST("app/auth/login_by_qq")
     @POST("app/auth/login_by_qq")
     Observable<BaseMessage> LoginByQQ(@Body com.alibaba.fastjson.JSONObject jsonObject);
     Observable<BaseMessage> LoginByQQ(@Body com.alibaba.fastjson.JSONObject jsonObject);
 
 
 
 
-
     @GET("app/user/friend_count_and_award")
     @GET("app/user/friend_count_and_award")
     Observable<BaseMessage> FriendCountAndAward();
     Observable<BaseMessage> FriendCountAndAward();
 
 
@@ -179,9 +190,8 @@ public interface ApiService {
     Observable<BaseMessage> giveTaskStatue(@Path("id") int id);
     Observable<BaseMessage> giveTaskStatue(@Path("id") int id);
 
 
 
 
-
     @PUT("app/user/change_base_info")
     @PUT("app/user/change_base_info")
-    Observable<BaseMessage> changeBaseInfo (@Body com.alibaba.fastjson.JSONObject jsonObject);
+    Observable<BaseMessage> changeBaseInfo(@Body com.alibaba.fastjson.JSONObject jsonObject);
 
 
     /**
     /**
      * 更换手机号
      * 更换手机号
@@ -190,12 +200,12 @@ public interface ApiService {
     Observable<BaseMessage> switchPhone(@Body JSONObject jsonObject);
     Observable<BaseMessage> switchPhone(@Body JSONObject jsonObject);
 
 
 
 
-
     /**
     /**
      * 更换手机号
      * 更换手机号
      */
      */
     @PUT("app/user/bind_all_real_info")
     @PUT("app/user/bind_all_real_info")
     Observable<BaseMessage> bindALl(@Body JSONObject jsonObject);
     Observable<BaseMessage> bindALl(@Body JSONObject jsonObject);
+
     /**
     /**
      * 绑定手机号
      * 绑定手机号
      */
      */
@@ -206,23 +216,26 @@ public interface ApiService {
      * 实时动态
      * 实时动态
      */
      */
     @GET("app/user/award_detail")
     @GET("app/user/award_detail")
-    Observable<BaseMessage> awardDetail(@Query("page") int page,@Query("per_page") int per_page);
+    Observable<BaseMessage> awardDetail(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
     /**
      * 发送绑定手机号短信,只传mobile
      * 发送绑定手机号短信,只传mobile
      */
      */
     @POST("app/user/sms_for_bind_mobile")
     @POST("app/user/sms_for_bind_mobile")
     Observable<BaseMessage> smsBindMobile(@Body JSONObject jsonObject);
     Observable<BaseMessage> smsBindMobile(@Body JSONObject jsonObject);
+
     /**
     /**
      * 修改任务进度
      * 修改任务进度
      */
      */
     @GET("app/accepted_task/status")
     @GET("app/accepted_task/status")
-    Observable<BaseMessage> taskStatus(@Query("id") int id,@Query("screenshots") String screenshots,
-        @Query("remark") String remark,@Query("package_name") String package_name,@Query("status") String status);
+    Observable<BaseMessage> taskStatus(@Query("id") int id, @Query("screenshots") String screenshots,
+                                       @Query("remark") String remark, @Query("package_name") String package_name, @Query("status") String status);
 //    @GET("app/accepted_task/status")
 //    @GET("app/accepted_task/status")
 //    Observable<BaseMessage> taskStatus(@Body JSONObject jsonObject);
 //    Observable<BaseMessage> taskStatus(@Body JSONObject jsonObject);
 
 
     /**
     /**
-     *下载任务回调
+     * 下载任务回调
+     *
      * @param jsonObject
      * @param jsonObject
      * @return
      * @return
      */
      */
@@ -231,6 +244,7 @@ public interface ApiService {
 
 
     /**
     /**
      * 获取可用余额
      * 获取可用余额
+     *
      * @return
      * @return
      */
      */
     @GET("app/user/get_can_withdraw_amount")
     @GET("app/user/get_can_withdraw_amount")
@@ -238,8 +252,10 @@ public interface ApiService {
 
 
     @GET("loan/userRecord")
     @GET("loan/userRecord")
     Observable<BaseMessage> userRecord();
     Observable<BaseMessage> userRecord();
+
     @GET("loan/getYinkerLoanUrl")
     @GET("loan/getYinkerLoanUrl")
     Observable<BaseMessage> getYinkerLoanUrl();
     Observable<BaseMessage> getYinkerLoanUrl();
+
     @GET("loan/getYinkerRepaymentUrl")
     @GET("loan/getYinkerRepaymentUrl")
     Observable<BaseMessage> getYinkerRepaymentUrl();
     Observable<BaseMessage> getYinkerRepaymentUrl();
 
 
@@ -252,17 +268,22 @@ public interface ApiService {
 
 
     @GET("app/newbie_task")
     @GET("app/newbie_task")
     Observable<BaseMessage> getNewbieTask();
     Observable<BaseMessage> getNewbieTask();
+
     @PUT("app/newbie_task")
     @PUT("app/newbie_task")
     Observable<BaseMessage> putNewbieTask(@Body JSONObject jsonObject);
     Observable<BaseMessage> putNewbieTask(@Body JSONObject jsonObject);
+
     @POST("app/newbie_task/learn_finish")
     @POST("app/newbie_task/learn_finish")
     Observable<BaseMessage> appNewbieTaskLearnFinish();
     Observable<BaseMessage> appNewbieTaskLearnFinish();
 
 
     @GET("app/user/friend_list")
     @GET("app/user/friend_list")
     Observable<BaseMessage> getUserFriendList(@Query("page") int page, @Query("per_page") int per_page);
     Observable<BaseMessage> getUserFriendList(@Query("page") int page, @Query("per_page") int per_page);
+
     @GET("app/release_task/credit_card")
     @GET("app/release_task/credit_card")
     Observable<BaseMessage> getReleaseTaskCreditCard();
     Observable<BaseMessage> getReleaseTaskCreditCard();
+
     @POST("app/accepted_task/credit_card")
     @POST("app/accepted_task/credit_card")
     Observable<BaseMessage> releaseTaskCreditCard(@Body JSONObject jsonObject);
     Observable<BaseMessage> releaseTaskCreditCard(@Body JSONObject jsonObject);
+
     @PUT("app/accepted_task/{id}/credit_card")
     @PUT("app/accepted_task/{id}/credit_card")
     Observable<BaseMessage> releaseTaskCreditCard(@Path("id") int id, @Body JSONObject jsonObject);
     Observable<BaseMessage> releaseTaskCreditCard(@Path("id") int id, @Body JSONObject jsonObject);
 
 
@@ -277,6 +298,7 @@ public interface ApiService {
      */
      */
     @GET("app/bulletin")
     @GET("app/bulletin")
     Observable<BaseMessage> bulletin(@Query("page") int page, @Query("per_page") int per_page);
     Observable<BaseMessage> bulletin(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
     /**
      * 获取微信辅助h5链接
      * 获取微信辅助h5链接
      */
      */
@@ -288,8 +310,10 @@ public interface ApiService {
      */
      */
     @GET("app/release_task/{id}/desc")
     @GET("app/release_task/{id}/desc")
     Observable<BaseMessage> taskDesc(@Path("id") int id);
     Observable<BaseMessage> taskDesc(@Path("id") int id);
+
     @GET("app/credit/{id}")
     @GET("app/credit/{id}")
     Observable<BaseMessage> getCredit(@Path("id") int id);
     Observable<BaseMessage> getCredit(@Path("id") int id);
+
     @POST("app/newbie_task/add_qq")
     @POST("app/newbie_task/add_qq")
     Observable<BaseMessage> newbieTaskAddQq(@Body JSONObject jsonObject);
     Observable<BaseMessage> newbieTaskAddQq(@Body JSONObject jsonObject);
 
 
@@ -314,11 +338,13 @@ public interface ApiService {
      */
      */
     @GET("app/user/my_assets")
     @GET("app/user/my_assets")
     Observable<BaseMessage> getMyAssets();
     Observable<BaseMessage> getMyAssets();
+
     /**
     /**
      * 充值记录
      * 充值记录
      */
      */
     @GET("app/recharge/recharge_balance_log")
     @GET("app/recharge/recharge_balance_log")
     Observable<BaseMessage> getRechargeBalanceLog(@Query("page") int page, @Query("per_page") int per_page);
     Observable<BaseMessage> getRechargeBalanceLog(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
     /**
      * 充值q币记录
      * 充值q币记录
      */
      */
@@ -330,6 +356,7 @@ public interface ApiService {
 
 
     /**
     /**
      * 获取下发充值类型
      * 获取下发充值类型
+     *
      * @param page
      * @param page
      * @return
      * @return
      */
      */
@@ -338,6 +365,7 @@ public interface ApiService {
 
 
     /**
     /**
      * 充值
      * 充值
+     *
      * @param jsonObject
      * @param jsonObject
      * @return
      * @return
      */
      */
@@ -347,6 +375,7 @@ public interface ApiService {
 
 
     /**
     /**
      * 绵羊币充值
      * 绵羊币充值
+     *
      * @param parame
      * @param parame
      * @return
      * @return
      */
      */
@@ -378,6 +407,7 @@ public interface ApiService {
      */
      */
     @GET("app/user/agreement/")
     @GET("app/user/agreement/")
     Observable<BaseMessage> getAgreement();
     Observable<BaseMessage> getAgreement();
+
     /**
     /**
      * 提交协议
      * 提交协议
      */
      */
@@ -448,11 +478,13 @@ public interface ApiService {
      */
      */
     @GET("app/punch/punch_and_sign_count")
     @GET("app/punch/punch_and_sign_count")
     Observable<BaseMessage> getPunchAndSignCount();
     Observable<BaseMessage> getPunchAndSignCount();
+
     /**
     /**
      * 获取广告类型 1:开屏广告 2:弹窗广告
      * 获取广告类型 1:开屏广告 2:弹窗广告
      */
      */
     @GET("app/advertising/advertisements")
     @GET("app/advertising/advertisements")
     Observable<BaseMessage> getAdvertising(@Query("type") int type);
     Observable<BaseMessage> getAdvertising(@Query("type") int type);
+
     /**
     /**
      * 新功能介绍
      * 新功能介绍
      */
      */
@@ -464,51 +496,61 @@ public interface ApiService {
      */
      */
     @GET("app/user/check_label")
     @GET("app/user/check_label")
     Observable<BaseMessage> checkLabel();
     Observable<BaseMessage> checkLabel();
+
     /**
     /**
      * 查询标签列表
      * 查询标签列表
      */
      */
     @GET("app/user/label")
     @GET("app/user/label")
     Observable<BaseMessage> getLabelList();
     Observable<BaseMessage> getLabelList();
+
     /**
     /**
      * 查询标签列表
      * 查询标签列表
      */
      */
     @POST("app/user/label")
     @POST("app/user/label")
     Observable<BaseMessage> postLabelList(@Body JSONObject jsonObject);
     Observable<BaseMessage> postLabelList(@Body JSONObject jsonObject);
+
     /**
     /**
      * 关于我们
      * 关于我们
      */
      */
     @GET("app/about_us/new_about_us")
     @GET("app/about_us/new_about_us")
     Observable<BaseMessage> getNewAboutUs();
     Observable<BaseMessage> getNewAboutUs();
+
     /**
     /**
      * 获取定向消费游戏列表
      * 获取定向消费游戏列表
      */
      */
     @GET("app/game_consumption/my_games")
     @GET("app/game_consumption/my_games")
     Observable<BaseMessage> getMyGames(@Query("page") int page, @Query("per_page") int per_page);
     Observable<BaseMessage> getMyGames(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
     /**
      * 获取定向消费游戏
      * 获取定向消费游戏
      */
      */
     @GET("app/game_consumption/my_game/{id}")
     @GET("app/game_consumption/my_game/{id}")
     Observable<BaseMessage> getMyGame(@Path("id") String third_task_id);
     Observable<BaseMessage> getMyGame(@Path("id") String third_task_id);
+
     /**
     /**
      * 获取正在运行的游戏任务
      * 获取正在运行的游戏任务
      */
      */
     @GET("app/accepted_task/run_game_task")
     @GET("app/accepted_task/run_game_task")
     Observable<BaseMessage> run_game_task();
     Observable<BaseMessage> run_game_task();
+
     /**
     /**
      * 领取游戏任务奖励
      * 领取游戏任务奖励
      */
      */
     @PUT("app/accepted_task/receive_award/{id}")
     @PUT("app/accepted_task/receive_award/{id}")
     Observable<BaseMessage> receive_award(@Path("id") int id);
     Observable<BaseMessage> receive_award(@Path("id") int id);
+
     /**
     /**
      * 游戏消费下单
      * 游戏消费下单
      */
      */
     @POST("app/game_consumption")
     @POST("app/game_consumption")
     Observable<BaseMessage> game_consumption(@Body JSONObject jsonObject);
     Observable<BaseMessage> game_consumption(@Body JSONObject jsonObject);
+
     /**
     /**
      * 能用的绵羊币金额
      * 能用的绵羊币金额
      */
      */
     @GET("app/game_consumption/can_user_sheep_amount")
     @GET("app/game_consumption/can_user_sheep_amount")
     Observable<BaseMessage> can_user_sheep_amount(@Query("amount") int amount, @Query("game_id") String game_id);
     Observable<BaseMessage> can_user_sheep_amount(@Query("amount") int amount, @Query("game_id") String game_id);
+
     /**
     /**
      * url配置
      * url配置
      */
      */
@@ -517,12 +559,15 @@ public interface ApiService {
 
 
     /**
     /**
      * 充值订单列表
      * 充值订单列表
+     *
      * @return
      * @return
      */
      */
     @GET("app/game_consumption/orders")
     @GET("app/game_consumption/orders")
     Observable<BaseMessage> getConsumptionOrders(@Query("page") int page, @Query("per_page") int per_page);
     Observable<BaseMessage> getConsumptionOrders(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
     /**
      * 再次充值 或 放弃充值
      * 再次充值 或 放弃充值
+     *
      * @return
      * @return
      */
      */
     @PUT("app/game_consumption/order/{id}")
     @PUT("app/game_consumption/order/{id}")
@@ -530,12 +575,15 @@ public interface ApiService {
 
 
     /**
     /**
      * 获取最新版本信息
      * 获取最新版本信息
+     *
      * @return
      * @return
      */
      */
     @GET("app/version/new_version")
     @GET("app/version/new_version")
     Observable<BaseMessage> getNewVersion(@Query("type") int type);
     Observable<BaseMessage> getNewVersion(@Query("type") int type);
+
     /**
     /**
      * 获取接收任务详情
      * 获取接收任务详情
+     *
      * @return
      * @return
      */
      */
     @GET("app/accepted_task/detail/{id}")
     @GET("app/accepted_task/detail/{id}")
@@ -552,11 +600,13 @@ public interface ApiService {
      */
      */
     @GET("app/common_config")
     @GET("app/common_config")
     Observable<BaseMessage> commonConfig(@Query("type_name") String type_name);
     Observable<BaseMessage> commonConfig(@Query("type_name") String type_name);
+
     /**
     /**
      * 获取用户当前代理信息
      * 获取用户当前代理信息
      */
      */
     @GET("app/agent/region")
     @GET("app/agent/region")
     Observable<BaseMessage> agentRegion();
     Observable<BaseMessage> agentRegion();
+
     /**
     /**
      * 收支明细
      * 收支明细
      */
      */
@@ -569,66 +619,78 @@ public interface ApiService {
      */
      */
     @GET("app/find/articles_tags/list")
     @GET("app/find/articles_tags/list")
     Observable<BaseMessage> getFindTagList();
     Observable<BaseMessage> getFindTagList();
+
     /**
     /**
      * 发现模块列表
      * 发现模块列表
      */
      */
     @GET("app/find/articles/list")
     @GET("app/find/articles/list")
     Observable<BaseMessage> getFindList(@Query("page") int page, @Query("per_page") int per_page, @Query("tag_id") int id);
     Observable<BaseMessage> getFindList(@Query("page") int page, @Query("per_page") int per_page, @Query("tag_id") int id);
+
     /**
     /**
      * 发现内容详情
      * 发现内容详情
      */
      */
     @GET("app/find/articles")
     @GET("app/find/articles")
     Observable<BaseMessage> getFindDetail(@Query("id") int id);
     Observable<BaseMessage> getFindDetail(@Query("id") int id);
+
     /**
     /**
      * 应用评分
      * 应用评分
      * {
      * {
-     "application_id": 0,
-     "score": 0,
-     "user_id": 0
-     }
+     * "application_id": 0,
+     * "score": 0,
+     * "user_id": 0
+     * }
      */
      */
     @POST("app/find/applications/score")
     @POST("app/find/applications/score")
     Observable<BaseMessage> commitAppScore(@Body JSONObject jsonObject);
     Observable<BaseMessage> commitAppScore(@Body JSONObject jsonObject);
+
     /**
     /**
      * 获取应用详情
      * 获取应用详情
      */
      */
     @GET("app/find/applications")
     @GET("app/find/applications")
     Observable<BaseMessage> getAppDetail(@Query("id") int id);
     Observable<BaseMessage> getAppDetail(@Query("id") int id);
+
     /**
     /**
      * 应用 各评分人数
      * 应用 各评分人数
      */
      */
     @GET("app/find/applications/score_num")
     @GET("app/find/applications/score_num")
     Observable<BaseMessage> getAppScoreNum(@Query("id") int id);
     Observable<BaseMessage> getAppScoreNum(@Query("id") int id);
+
     /**
     /**
      * 应用我的评分
      * 应用我的评分
      */
      */
     @GET("app/find/applications/my_score")
     @GET("app/find/applications/my_score")
     Observable<BaseMessage> getMyAppScore(@Query("id") int id);
     Observable<BaseMessage> getMyAppScore(@Query("id") int id);
+
     /**
     /**
      * 应用 下载/预约 时先调用此接口生成记录
      * 应用 下载/预约 时先调用此接口生成记录
      */
      */
     @GET("app/find/applications/downloads")
     @GET("app/find/applications/downloads")
     Observable<BaseMessage> recordAppDownloads(@Query("id") int id);
     Observable<BaseMessage> recordAppDownloads(@Query("id") int id);
+
     /**
     /**
      * 取消  应用 下载/预约
      * 取消  应用 下载/预约
      */
      */
     @DELETE("app/find/applications/downloads")
     @DELETE("app/find/applications/downloads")
     Observable<BaseMessage> deleteDownloads(@Query("id") int id);
     Observable<BaseMessage> deleteDownloads(@Query("id") int id);
+
     /**
     /**
      * 获取预约未下载数量
      * 获取预约未下载数量
      */
      */
     @GET("app/find/applications/downloads/status")
     @GET("app/find/applications/downloads/status")
     Observable<BaseMessage> getFindAppDownloadsStatus();
     Observable<BaseMessage> getFindAppDownloadsStatus();
+
     /**
     /**
      * 获取预约下载列表
      * 获取预约下载列表
      */
      */
     @GET("app/find/applications/downloads_list")
     @GET("app/find/applications/downloads_list")
     Observable<BaseMessage> getFindAppReservationList(@Query("page") int page, @Query("per_page") int per_page);
     Observable<BaseMessage> getFindAppReservationList(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
     /**
      * 发现点击统计
      * 发现点击统计
      */
      */
     @GET("app/find/add_clicks")
     @GET("app/find/add_clicks")
     Observable<BaseMessage> getFindItemAddClicks(@Query("id") int id);
     Observable<BaseMessage> getFindItemAddClicks(@Query("id") int id);
+
     /**
     /**
      * 首页list
      * 首页list
      */
      */
@@ -636,79 +698,84 @@ public interface ApiService {
     Observable<BaseMessage> getHomeListItem(@Path("id") int id);
     Observable<BaseMessage> getHomeListItem(@Path("id") int id);
 
 
     /**
     /**
-     *获取游戏任务下拉列表
+     * 获取游戏任务下拉列表
      */
      */
     @GET("app/release_task/recharge_game_List")
     @GET("app/release_task/recharge_game_List")
     Observable<BaseMessage> rechargeGameList(@Query("task_type") int task_type, @Query("name") String name);
     Observable<BaseMessage> rechargeGameList(@Query("task_type") int task_type, @Query("name") String name);
 
 
     /**
     /**
-     *领取游戏账号
+     * 领取游戏账号
      */
      */
     @PUT("app/game_account/{task_id}")
     @PUT("app/game_account/{task_id}")
     Observable<BaseMessage> gameAccountManager(@Path("task_id") int task_id);
     Observable<BaseMessage> gameAccountManager(@Path("task_id") int task_id);
 
 
     /**
     /**
-     *
-     创建游戏账号
+     * 创建游戏账号
      */
      */
     @POST("app/game_account/add")
     @POST("app/game_account/add")
     Observable<BaseMessage> addGameAccount(@Body JSONObject jsonObject);
     Observable<BaseMessage> addGameAccount(@Body JSONObject jsonObject);
 
 
     /**
     /**
-     *
-     删除游戏账号
+     * 删除游戏账号
      */
      */
     @DELETE("app/game_account/del/{id}")
     @DELETE("app/game_account/del/{id}")
     Observable<BaseMessage> delGameAccount(@Path("id") int id);
     Observable<BaseMessage> delGameAccount(@Path("id") int id);
 
 
     /**
     /**
-     *编辑游戏账号密码
+     * 编辑游戏账号密码
      */
      */
     @PUT("app/game_account/edit")
     @PUT("app/game_account/edit")
     Observable<BaseMessage> editGameAccount(@Body JSONObject jsonObject);
     Observable<BaseMessage> editGameAccount(@Body JSONObject jsonObject);
+
     /**
     /**
-     *查询游戏账号详情
+     * 查询游戏账号详情
      */
      */
     @GET("app/game_account/detail/{id}")
     @GET("app/game_account/detail/{id}")
     Observable<BaseMessage> getGameAccountDetail(@Path("id") int id);
     Observable<BaseMessage> getGameAccountDetail(@Path("id") int id);
+
     /**
     /**
-     *获取平台对应的游戏
+     * 获取平台对应的游戏
      * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
      * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
      */
      */
     @GET("app/game_account/game/list")
     @GET("app/game_account/game/list")
     Observable<BaseMessage> getGameList(@Query("game_type") int game_type);
     Observable<BaseMessage> getGameList(@Query("game_type") int game_type);
+
     /**
     /**
-     *查询游戏账号
+     * 查询游戏账号
      * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
      * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
      */
      */
     @GET("app/game_account/account/list")
     @GET("app/game_account/account/list")
     Observable<BaseMessage> getGameAccountList(@Query("game_type") int game_type, @Query("account") String account, @Query("task_id") int task_id);
     Observable<BaseMessage> getGameAccountList(@Query("game_type") int game_type, @Query("account") String account, @Query("task_id") int task_id);
+
     /**
     /**
-     *查询所有游戏账号
+     * 查询所有游戏账号
      * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
      * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
      */
      */
     @GET("app/game_account/all/list")
     @GET("app/game_account/all/list")
     Observable<BaseMessage> getGameAccountAllList();
     Observable<BaseMessage> getGameAccountAllList();
+
     /**
     /**
-     *获取计算可用定向消费券的数据
+     * 获取计算可用定向消费券的数据
      */
      */
     @GET("app/game_consumption/voucher_and_ratio")
     @GET("app/game_consumption/voucher_and_ratio")
     Observable<BaseMessage> getVoucherAndRatio(@Query("game_id") String game_id);
     Observable<BaseMessage> getVoucherAndRatio(@Query("game_id") String game_id);
+
     /**
     /**
-     *获取任务
+     * 获取任务
      */
      */
     @GET("app/release_task/game_task")
     @GET("app/release_task/game_task")
-    Observable<BaseMessage> releaseGameTask(@Query("page") int page, @Query("per_page") int per_page,@Query("is_hot") int is_hot, @Query("task_type") String task_type, @Query("name") String name);
+    Observable<BaseMessage> releaseGameTask(@Query("page") int page, @Query("per_page") int per_page, @Query("is_hot") int is_hot, @Query("task_type") String task_type, @Query("name") String name);
+
     /**
     /**
-     *获取小米游戏列表
+     * 获取小米游戏列表
      * platform 1:安卓 2:IOS
      * platform 1:安卓 2:IOS
      * download_type  1:非预约下载 2:预约下载
      * download_type  1:非预约下载 2:预约下载
      */
      */
     @GET("app/xiaomi/list")
     @GET("app/xiaomi/list")
-    Observable<BaseMessage> xiaomiGameList(@Query("page") int page, @Query("per_page") int per_page,@Query("platform") int platform , @Query("download_type") int download_type, @Query("name") String name);
+    Observable<BaseMessage> xiaomiGameList(@Query("page") int page, @Query("per_page") int per_page, @Query("platform") int platform, @Query("download_type") int download_type, @Query("name") String name);
 
 
     /**
     /**
-     *领取小米游戏账号
+     * 领取小米游戏账号
      */
      */
     @POST("app/xiaomi/Receive")
     @POST("app/xiaomi/Receive")
     Observable<BaseMessage> receiveXiaomiAccount(@Body JSONObject id);
     Observable<BaseMessage> receiveXiaomiAccount(@Body JSONObject id);
@@ -718,6 +785,7 @@ public interface ApiService {
      */
      */
     @GET("app/user/invitation_top")
     @GET("app/user/invitation_top")
     Observable<BaseMessage> getInvitationTop(@Query("top") int top);//top默认为5,可以不传
     Observable<BaseMessage> getInvitationTop(@Query("top") int top);//top默认为5,可以不传
+
     /**
     /**
      * 获取邀请用户进两月礼物发放记录
      * 获取邀请用户进两月礼物发放记录
      */
      */

+ 30 - 19
app/src/main/java/com/sheep/gamegroup/model/entity/UserEntity.java

@@ -73,6 +73,26 @@ public class UserEntity implements Serializable {
     private int certification_count;//实名认证次数
     private int certification_count;//实名认证次数
     @Column(name = "must_bind_mobile")
     @Column(name = "must_bind_mobile")
     private int must_bind_mobile;//是否必须绑定手机号 0不是 1是
     private int must_bind_mobile;//是否必须绑定手机号 0不是 1是
+    @Column(name = "gender")
+    private int gender;
+    @Column(name = "birthday")
+    private String birthday;
+
+    public int getGender() {
+        return gender;
+    }
+
+    public void setGender(int gender) {
+        this.gender = gender;
+    }
+
+    public String getBirthday() {
+        return birthday;
+    }
+
+    public void setBirthday(String birthday) {
+        this.birthday = birthday;
+    }
 
 
     public String getWx_nickname() {
     public String getWx_nickname() {
         return wx_nickname;
         return wx_nickname;
@@ -107,7 +127,7 @@ public class UserEntity implements Serializable {
     }
     }
 
 
     public String getBalance() {
     public String getBalance() {
-        return balance == null?"0":balance;
+        return balance == null ? "0" : balance;
     }
     }
 
 
     public void setBalance(String balance) {
     public void setBalance(String balance) {
@@ -131,7 +151,7 @@ public class UserEntity implements Serializable {
     }
     }
 
 
     public String getTotal_asset() {
     public String getTotal_asset() {
-        return total_asset == null?"0":total_asset;
+        return total_asset == null ? "0" : total_asset;
     }
     }
 
 
     public void setTotal_asset(String total_asset) {
     public void setTotal_asset(String total_asset) {
@@ -291,22 +311,10 @@ public class UserEntity implements Serializable {
     }
     }
 
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
     public boolean isNewRegistUser() {//新注册用户
     public boolean isNewRegistUser() {//新注册用户
         return TextUtils.equals(create_time, last_login_time);
         return TextUtils.equals(create_time, last_login_time);
     }
     }
+
     //没有实名认证
     //没有实名认证
     public boolean notCertification() {
     public boolean notCertification() {
         return TextUtils.isEmpty(getReal_name()) || TextUtils.isEmpty(getId_number());
         return TextUtils.isEmpty(getReal_name()) || TextUtils.isEmpty(getId_number());
@@ -314,17 +322,20 @@ public class UserEntity implements Serializable {
 
 
     /**
     /**
      * 老用户选择绑定手机号
      * 老用户选择绑定手机号
+     *
      * @return
      * @return
      */
      */
-    public boolean canBindMobile(){
+    public boolean canBindMobile() {
         return must_bind_mobile == 0 && TextUtils.isEmpty(mobile);
         return must_bind_mobile == 0 && TextUtils.isEmpty(mobile);
     }
     }
+
     //测试服用测试分享链接,正式服用正式的
     //测试服用测试分享链接,正式服用正式的
-    public String getShareLink(@DialogShare.SHARE_TYPE String type){
+    public String getShareLink(@DialogShare.SHARE_TYPE String type) {
         return CommonUtil.getInstance().jointString(getShareLink(), type);
         return CommonUtil.getInstance().jointString(getShareLink(), type);
     }
     }
+
     //测试服用测试分享链接,正式服用正式的
     //测试服用测试分享链接,正式服用正式的
-    public String getShareLink(){//测试服对应的下载地址为http://10.8.230.17:7776/newsheep?id=32778005
-        return TestUtil.isSheep() ? getShare_link() : "http://10.8.210.230:8902/share.html?invitation_code="+getInvitation_code();
+    public String getShareLink() {//测试服对应的下载地址为http://10.8.230.17:7776/newsheep?id=32778005
+        return TestUtil.isSheep() ? getShare_link() : "http://10.8.210.230:8902/share.html?invitation_code=" + getInvitation_code();
     }
     }
 }
 }

+ 46 - 28
app/src/main/java/com/sheep/gamegroup/model/entity/Version.java

@@ -4,16 +4,16 @@ package com.sheep.gamegroup.model.entity;
  * Created by realicing on 2018/6/20.
  * Created by realicing on 2018/6/20.
  * realicing@sina.com
  * realicing@sina.com
  * {
  * {
- "address": "2",
- "md5_address": "2",
- "status": 1,
- "id": 2,
- "strong_update": 0,
- "version_number": 2,
- "type": 1,
- "update_time": 1529480619,
- "create_time": 1529465833
- }
+ * "address": "2",
+ * "md5_address": "2",
+ * "status": 1,
+ * "id": 2,
+ * "strong_update": 0,
+ * "version_number": 2,
+ * "type": 1,
+ * "update_time": 1529480619,
+ * "create_time": 1529465833
+ * }
  */
  */
 public class Version {
 public class Version {
 
 
@@ -39,58 +39,75 @@ public class Version {
 
 
     private int create_time;
     private int create_time;
 
 
-    public void setAddress(String address){
+    public void setAddress(String address) {
         this.address = address;
         this.address = address;
     }
     }
-    public String getAddress(){
+
+    public String getAddress() {
         return this.address;
         return this.address;
     }
     }
-    public void setMd5_address(String md5_address){
+
+    public void setMd5_address(String md5_address) {
         this.md5_address = md5_address;
         this.md5_address = md5_address;
     }
     }
-    public String getMd5_address(){
+
+    public String getMd5_address() {
         return this.md5_address;
         return this.md5_address;
     }
     }
-    public void setStatus(int status){
+
+    public void setStatus(int status) {
         this.status = status;
         this.status = status;
     }
     }
-    public int getStatus(){
+
+    public int getStatus() {
         return this.status;
         return this.status;
     }
     }
-    public void setId(int id){
+
+    public void setId(int id) {
         this.id = id;
         this.id = id;
     }
     }
-    public int getId(){
+
+    public int getId() {
         return this.id;
         return this.id;
     }
     }
-    public void setStrong_update(int strong_update){
+
+    public void setStrong_update(int strong_update) {
         this.strong_update = strong_update;
         this.strong_update = strong_update;
     }
     }
-    public int getStrong_update(){
+
+    public int getStrong_update() {
         return this.strong_update;
         return this.strong_update;
     }
     }
-    public void setVersion_number(int version_number){
+
+    public void setVersion_number(int version_number) {
         this.version_number = version_number;
         this.version_number = version_number;
     }
     }
-    public int getVersion_number(){
+
+    public int getVersion_number() {
         return this.version_number;
         return this.version_number;
     }
     }
-    public void setType(int type){
+
+    public void setType(int type) {
         this.type = type;
         this.type = type;
     }
     }
-    public int getType(){
+
+    public int getType() {
         return this.type;
         return this.type;
     }
     }
-    public void setUpdate_time(int update_time){
+
+    public void setUpdate_time(int update_time) {
         this.update_time = update_time;
         this.update_time = update_time;
     }
     }
-    public int getUpdate_time(){
+
+    public int getUpdate_time() {
         return this.update_time;
         return this.update_time;
     }
     }
-    public void setCreate_time(int create_time){
+
+    public void setCreate_time(int create_time) {
         this.create_time = create_time;
         this.create_time = create_time;
     }
     }
-    public int getCreate_time(){
+
+    public int getCreate_time() {
         return this.create_time;
         return this.create_time;
     }
     }
 
 
@@ -113,6 +130,7 @@ public class Version {
 
 
     /**
     /**
      * 是否强更
      * 是否强更
+     *
      * @return
      * @return
      */
      */
     public boolean isForceUpdate() {
     public boolean isForceUpdate() {

+ 1 - 0
app/src/main/java/com/sheep/gamegroup/presenter/PhoneContract.java

@@ -14,6 +14,7 @@ public interface PhoneContract {
     interface Presenter{
     interface Presenter{
 
 
         void getCaptcha(String telphone) throws JSONException;
         void getCaptcha(String telphone) throws JSONException;
+        boolean getCaptchaa(String telphone) throws JSONException;
         void loginByCaptcha(String telphone, String code);
         void loginByCaptcha(String telphone, String code);
 
 
         void switchPhone(JSONObject object);
         void switchPhone(JSONObject object);

+ 52 - 8
app/src/main/java/com/sheep/gamegroup/presenter/PhonePresenter.java

@@ -3,16 +3,17 @@ package com.sheep.gamegroup.presenter;
 import android.util.Log;
 import android.util.Log;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.google.gson.Gson;
 import com.sheep.gamegroup.model.api.ApiService;
 import com.sheep.gamegroup.model.api.ApiService;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.ChannelContent;
 import com.sheep.gamegroup.util.ChannelContent;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.PreferenceUtils;
 import com.sheep.gamegroup.util.PreferenceUtils;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 
 
 
 
-
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -28,6 +29,7 @@ import rx.schedulers.Schedulers;
 public class PhonePresenter implements PhoneContract.Presenter {
 public class PhonePresenter implements PhoneContract.Presenter {
     private PhoneContract.View view;
     private PhoneContract.View view;
     private ApiService apiService;
     private ApiService apiService;
+    private boolean isOk=true;
 
 
     @Inject
     @Inject
     public PhonePresenter(PhoneContract.View view, ApiService apiService) {
     public PhonePresenter(PhoneContract.View view, ApiService apiService) {
@@ -36,8 +38,8 @@ public class PhonePresenter implements PhoneContract.Presenter {
     }
     }
 
 
     @Override
     @Override
-    public void getCaptcha(String telphone){
-        try{
+    public void getCaptcha(String telphone) {
+        try {
             Map map = new HashMap();
             Map map = new HashMap();
             map.put("account", telphone);
             map.put("account", telphone);
             Log.e("hash-map", map.toString());
             Log.e("hash-map", map.toString());
@@ -50,29 +52,71 @@ public class PhonePresenter implements PhoneContract.Presenter {
                     .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
                     .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
                         @Override
                         @Override
                         public void onError(BaseMessage baseMessage) {
                         public void onError(BaseMessage baseMessage) {
+                            LogUtil.logI(new Gson().toJson(baseMessage));
                             view.gaptchaFail(baseMessage);
                             view.gaptchaFail(baseMessage);
                         }
                         }
 
 
                         @Override
                         @Override
                         public void onNext(BaseMessage baseMessage) {
                         public void onNext(BaseMessage baseMessage) {
+                            LogUtil.logI(new Gson().toJson(baseMessage));
                             view.returnGaptcha(baseMessage);
                             view.returnGaptcha(baseMessage);
 
 
                         }
                         }
                     });
                     });
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
         }
         }
 
 
 
 
     }
     }
 
 
+    /**
+     * @param telphone  手机号
+     * @return  true 获取验证码成功,false获取验证码失败
+     */
+    @Override
+    public boolean getCaptchaa(String telphone) {
+
+        try {
+            Map map = new HashMap();
+            map.put("account", telphone);
+            Log.e("hash-map", map.toString());
+            com.alibaba.fastjson.JSONObject j = new com.alibaba.fastjson.JSONObject();
+            j.put("account", telphone);
+
+            apiService.getCaptcha(j)
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                        @Override
+                        public void onError(BaseMessage baseMessage) {
+                            isOk = false;
+                            view.gaptchaFail(baseMessage);
+                            LogUtil.logE(new Gson().toJson(baseMessage));
+                        }
+
+                        @Override
+                        public void onNext(BaseMessage baseMessage) {
+                            isOk = true;
+                            view.returnGaptcha(baseMessage);
+                            LogUtil.logI(new Gson().toJson(baseMessage));
+                        }
+                    });
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        LogUtil.logI("isOk=="+isOk);
+        return isOk;
+
+    }
+
     @Override
     @Override
     public void loginByCaptcha(String telphone, String code) {
     public void loginByCaptcha(String telphone, String code) {
         com.alibaba.fastjson.JSONObject m = new com.alibaba.fastjson.JSONObject();
         com.alibaba.fastjson.JSONObject m = new com.alibaba.fastjson.JSONObject();
-        m.put("account",telphone);
-        m.put("sec_code",code);
-        m.put("invitation_code", ChannelContent.getInstance().getChannel_name() );
-        PreferenceUtils.setPrefString(SheepApp.mContext, UMConfigUtils.LOGIN_TYPE,UMConfigUtils.Source.SHEEP);
+        m.put("account", telphone);
+        m.put("sec_code", code);
+        m.put("invitation_code", ChannelContent.getInstance().getChannel_name());
+        PreferenceUtils.setPrefString(SheepApp.mContext, UMConfigUtils.LOGIN_TYPE, UMConfigUtils.Source.SHEEP);
         apiService.loginByCaptcha(m)
         apiService.loginByCaptcha(m)
                 .subscribeOn(Schedulers.io())
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .observeOn(AndroidSchedulers.mainThread())

+ 39 - 2
app/src/main/java/com/sheep/gamegroup/util/LogUtil.java

@@ -1,14 +1,22 @@
 package com.sheep.gamegroup.util;
 package com.sheep.gamegroup.util;
 
 
+import android.util.Log;
+
 /**
 /**
  * Created by realicing on 2018/5/12.
  * Created by realicing on 2018/5/12.
  * realicing@sina.com
  * realicing@sina.com
  */
  */
 public class LogUtil {
 public class LogUtil {
+
+    /**
+     * isDebug ,debug环境下设成true,方便查看日志,release环境下设成false,减少打印信息的输出,
+     */
+    private static boolean isDebug = true;
+
     public static void println(Object... msgs) {
     public static void println(Object... msgs) {
-        if(TestUtil.isTest()) {
+        if (TestUtil.isTest()) {
             for (int i = 0; i < msgs.length; i++) {
             for (int i = 0; i < msgs.length; i++) {
-                if(i != 0) {
+                if (i != 0) {
                     System.out.print(" ");
                     System.out.print(" ");
                 }
                 }
                 System.out.print(msgs[i]);
                 System.out.print(msgs[i]);
@@ -16,4 +24,33 @@ public class LogUtil {
             System.out.println();
             System.out.println();
         }
         }
     }
     }
+
+    /**
+     * @param message 需要打印的String,
+     *                调用系统的Log.i(?,?);
+     */
+    public static void logI(String message){
+        if (isDebug){
+            Log.i("LOGI",message);
+        }
+    }
+    /**
+     * @param message 需要打印的String,
+     *                  调用系统的Log.e(?,?);
+     */
+    public static void logE(String message){
+        if (isDebug){
+            Log.e("LOGE",message);
+        }
+    }
+    /**
+     * @param message 需要打印的String,
+     *                  调用系统的Log.d(?,?);
+     */
+    public static void logD(String message){
+        if (isDebug){
+            Log.d("LOGD",message);
+        }
+    }
+
 }
 }

+ 417 - 80
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -1,16 +1,20 @@
 package com.sheep.gamegroup.util;
 package com.sheep.gamegroup.util;
 
 
+import android.app.ActionBar;
 import android.app.Activity;
 import android.app.Activity;
+import android.app.Dialog;
 import android.app.ProgressDialog;
 import android.app.ProgressDialog;
 import android.content.Context;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.Bitmap;
 import android.graphics.Color;
 import android.graphics.Color;
+import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.Drawable;
 import android.media.MediaPlayer;
 import android.media.MediaPlayer;
 import android.net.Uri;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Build;
+import android.os.Bundle;
 import android.provider.MediaStore;
 import android.provider.MediaStore;
 import android.support.v7.app.AlertDialog;
 import android.support.v7.app.AlertDialog;
 import android.support.v7.widget.GridLayoutManager;
 import android.support.v7.widget.GridLayoutManager;
@@ -18,27 +22,49 @@ import android.support.v7.widget.RecyclerView;
 import android.text.Html;
 import android.text.Html;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.text.method.ScrollingMovementMethod;
 import android.text.method.ScrollingMovementMethod;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.view.Display;
 import android.view.Gravity;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View;
+import android.view.ViewGroup;
 import android.view.Window;
 import android.view.Window;
 import android.view.WindowManager;
 import android.view.WindowManager;
 import android.webkit.WebView;
 import android.webkit.WebView;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.EditText;
 import android.widget.ImageView;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.LinearLayout;
+import android.widget.PopupWindow;
+import android.widget.RelativeLayout;
 import android.widget.TextView;
 import android.widget.TextView;
 import android.widget.VideoView;
 import android.widget.VideoView;
 
 
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.RequestBuilder;
 import com.bumptech.glide.RequestBuilder;
 import com.bumptech.glide.request.RequestOptions;
 import com.bumptech.glide.request.RequestOptions;
+import com.google.gson.Gson;
+import com.kfzs.duanduan.fragment.FgtPersonalCenter;
+import com.kfzs.duanduan.fragment.FgtSmallSheep;
+import com.sheep.gamegroup.dateview.DatePickerDialog;
+import com.sheep.gamegroup.dateview.DateUtil;
 import com.sheep.gamegroup.model.entity.Advertising;
 import com.sheep.gamegroup.model.entity.Advertising;
+import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.Container;
 import com.sheep.gamegroup.model.entity.Container;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.GameAccountEntity;
 import com.sheep.gamegroup.model.entity.GameAccountEntity;
 import com.sheep.gamegroup.model.entity.PayEntity;
 import com.sheep.gamegroup.model.entity.PayEntity;
+import com.sheep.gamegroup.model.entity.RobTask;
+import com.sheep.gamegroup.model.entity.TaskEty;
+import com.sheep.gamegroup.model.entity.TaskReleaseEty;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.glide.RoundedCornersTransformation;
 import com.sheep.gamegroup.util.glide.RoundedCornersTransformation;
+import com.sheep.gamegroup.view.activity.PersonalInfoAct;
 import com.sheep.gamegroup.view.activity.SplashAct;
 import com.sheep.gamegroup.view.activity.SplashAct;
+import com.sheep.gamegroup.view.activity.TaskDetailAct;
 import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
 import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
 import com.sheep.gamegroup.view.dialog.DialogAddAccount;
 import com.sheep.gamegroup.view.dialog.DialogAddAccount;
 import com.sheep.gamegroup.view.dialog.DialogModifyAccount;
 import com.sheep.gamegroup.view.dialog.DialogModifyAccount;
@@ -52,6 +78,7 @@ import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
 
 import org.afinal.simplecache.ACache;
 import org.afinal.simplecache.ACache;
+import org.greenrobot.eventbus.EventBus;
 
 
 import java.io.File;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileNotFoundException;
@@ -61,7 +88,10 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Map;
 
 
+import io.reactivex.annotations.Nullable;
+import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.functions.Action1;
+import rx.schedulers.Schedulers;
 
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.AD_TOAST;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.AD_TOAST;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.QR_COPY;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.QR_COPY;
@@ -73,11 +103,14 @@ import static com.sheep.gamegroup.util.UMConfigUtils.Event.QR_SHARE;
  * realicing@sina.com
  * realicing@sina.com
  */
  */
 public class ViewUtil {
 public class ViewUtil {
+
     public static final int REQUEST_CODE_TASK_LIST = 110;
     public static final int REQUEST_CODE_TASK_LIST = 110;
     private static ViewUtil viewUtil;
     private static ViewUtil viewUtil;
+    static int result = 0;
+    static RobTask mRobTask;
 
 
-    public static ViewUtil newInstance(){
-        if(viewUtil == null){
+    public static ViewUtil newInstance() {
+        if (viewUtil == null) {
             viewUtil = new ViewUtil();
             viewUtil = new ViewUtil();
         }
         }
         return viewUtil;
         return viewUtil;
@@ -135,6 +168,288 @@ public class ViewUtil {
     }
     }
 
 
     /**
     /**
+     * @param context   Activity的上下文
+     * @param mTextView 显示日期的TextView
+     */
+    public static void showDateDialog(final PersonalInfoAct context, final TextView mTextView) {
+        List<Integer> date = DateUtil.getDateForString("1990-01-01");//从1990-01-01开始显示
+        DatePickerDialog.Builder builder = new DatePickerDialog.Builder(context);
+        builder.setOnDateSelectedListener(new DatePickerDialog.OnDateSelectedListener() {
+            @Override
+            public void onDateSelected(int[] dates) {
+                mTextView.setText(dates[0] + "-" + (dates[1] > 9 ? dates[1] : ("0" + dates[1])) + "-" + (dates[2] > 9 ? dates[2] : ("0" + dates[2])));
+                context.upLoadBirthday(mTextView.getText().toString());
+            }
+
+            @Override
+            public void onCancel() {
+
+            }
+        }).setSelectYear(date.get(0) - 1)
+                .setSelectMonth(date.get(1) - 1)
+                .setSelectDay(date.get(2) - 1);
+        Dialog dateDialog = builder.create();
+        dateDialog.show();
+    }
+
+    /**
+     * 主页抢任务,更换任务时,获取新的任务
+     *
+     * @return , TaskEty对象
+     */
+    public static RobTask getTask(final ImageView ivIcon, final TextView tvTitel, final TextView tvDutyMoney) {
+        SheepApp.getInstance().getNetComponent().getApiService().getNewTask(0)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        try {
+                            mRobTask = baseMessage.getData(RobTask.class);
+                            LogUtil.logI("---mRobTask" + new Gson().toJson(mRobTask));
+                            LogUtil.logI("---" + new Gson().toJson(baseMessage));
+                            tvDutyMoney.setText(mRobTask.getM().getBonus() + "元");//设置任务奖励金额
+                            tvTitel.setText(mRobTask.getM().getTask().getTask_name());//设置任务名字
+                            GlideImageLoader.setImage(ivIcon, mRobTask.getM().getTask().getIcon());//设置任务图标
+                        } catch (Exception e) {
+
+                        }
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast(baseMessage);
+                    }
+                });
+        return mRobTask;
+    }
+
+    /**
+     * 抢任务弹框
+     *
+     * @param mActivity  当前Activity,
+     * @param viewAnchor 锚
+     */
+    public static void showRobDutyDialog(final Activity mActivity, View viewAnchor) {
+        View view = LayoutInflater.from(mActivity).inflate(R.layout.pop_robduty, null, false);
+        ImageView ivChangeOne = view.findViewById(R.id.iv_change_one);
+        ImageView ivDoNow = view.findViewById(R.id.iv_do_now);
+
+        final ImageView ivIcon = view.findViewById(R.id.iv_duty);
+        final TextView tvTitel = view.findViewById(R.id.tv_duty_title);
+        final TextView tvDutyMoney = view.findViewById(R.id.tv_robduty_money);
+        mRobTask = getTask(ivIcon, tvTitel, tvDutyMoney);
+        /**
+         * */
+        final PopupWindow popupWindow = new PopupWindow(mActivity);
+        popupWindow.setContentView(view);
+        popupWindow.setAnimationStyle(R.style.Rising);
+        popupWindow.setWidth(ActionBar.LayoutParams.WRAP_CONTENT);
+        popupWindow.setHeight(ActionBar.LayoutParams.WRAP_CONTENT);
+        popupWindow.setTouchable(true);
+        popupWindow.setFocusable(true);
+        popupWindow.setBackgroundDrawable(new BitmapDrawable());
+        backgroundAlpha(0.5f, mActivity);
+        popupWindow.showAtLocation(viewAnchor, Gravity.CENTER, 0, 0);
+        popupWindow.setOnDismissListener(new PopDismissListener(mActivity));
+        //更换任务
+        ivChangeOne.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                mRobTask = getTask(ivIcon, tvTitel, tvDutyMoney);
+                G.showToast("更换任务");
+            }
+        });
+        //立即去做,跳转到任务详情去
+        ivDoNow.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                popupWindow.dismiss();
+                if (mRobTask == null) {
+                    G.showToast("抢任务失败!");
+                    return;
+                }
+                Intent intent = new Intent(mActivity, TaskDetailAct.class);
+                intent.putExtra("btn_show", true);
+                intent.putExtra("is_from_task_list", true);
+                intent.putExtra("task_id", mRobTask.getM().getTask().getId());
+                mActivity.startActivity(intent);
+
+            }
+        });
+
+
+    }
+
+    /**
+     * 邀请成功后在个人资料显示领红包弹窗
+     *
+     * @param mActivity 当前Activity,
+     */
+    public static void showRedPackageAfterInvitation(final Activity mActivity, View viewAnchor) {
+        View view = LayoutInflater.from(mActivity).inflate(R.layout.dialog_redpackage_after_invitation, null, false);
+        TextView tvGetRedPackage = view.findViewById(R.id.tv_get_redpackage);
+        final PopupWindow popupWindow = new PopupWindow(mActivity);
+        popupWindow.setContentView(view);
+        popupWindow.setAnimationStyle(R.style.Rising);
+        popupWindow.setWidth(ActionBar.LayoutParams.WRAP_CONTENT);
+        popupWindow.setHeight(measureHeight(mActivity) / 3);
+        popupWindow.setTouchable(true);
+        popupWindow.setFocusable(true);
+        popupWindow.setBackgroundDrawable(new BitmapDrawable());
+        backgroundAlpha(0.7f, mActivity);
+        popupWindow.showAtLocation(viewAnchor, Gravity.CENTER, 0, 0);
+        popupWindow.setOnDismissListener(new PopDismissListener(mActivity));
+        tvGetRedPackage.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                popupWindow.dismiss();
+            }
+        });
+
+    }
+
+    /**
+     * 兑换红包弹窗
+     *
+     * @param mActivity 当前Activity的,
+     */
+    public static void changeRedPackage(final Activity mActivity, View viewAnchor, final FgtPersonalCenter fgtPersonalCenter) {
+        View view = LayoutInflater.from(mActivity).inflate(R.layout.pop_get_redpackage, null);
+        final EditText edInvitationCode = view.findViewById(R.id.ed_invitation_code);
+        TextView tvGetRedPackage = view.findViewById(R.id.tv_get_redpackage);
+        final PopupWindow popupWindow = new PopupWindow(mActivity);
+        popupWindow.setContentView(view);
+        popupWindow.setWidth(measureWidth(mActivity) * 6 / 10);
+        popupWindow.setHeight(ActionBar.LayoutParams.WRAP_CONTENT);
+        popupWindow.setTouchable(true);
+        popupWindow.setFocusable(true);
+        popupWindow.setBackgroundDrawable(new BitmapDrawable());
+        backgroundAlpha(0.7f, mActivity);
+        popupWindow.showAtLocation(viewAnchor, Gravity.CENTER, 0, 0);
+        popupWindow.setOnDismissListener(new PopDismissListener(mActivity));
+        tvGetRedPackage.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (TextUtils.isEmpty(edInvitationCode.getText())) {
+                    G.showToast("邀请码不能为空");
+                } else {
+                    fgtPersonalCenter.getRedPackage(edInvitationCode.getText().toString(), popupWindow);
+                }
+            }
+        });
+
+    }
+
+    /**
+     * 测量屏幕的宽
+     *
+     * @param mActivity ,
+     * @return 屏幕的宽
+     */
+    private static int measureWidth(Activity mActivity) {
+        WindowManager manager = (WindowManager) mActivity.getSystemService(Context.WINDOW_SERVICE);
+        Display defaultDisplay = manager.getDefaultDisplay();
+        DisplayMetrics outMetrics = new DisplayMetrics();
+        defaultDisplay.getMetrics(outMetrics);
+        return outMetrics.widthPixels;
+    }
+
+    /**
+     * 测量屏幕的宽
+     *
+     * @param mActivity ,
+     * @return 屏幕的宽
+     */
+    private static int measureHeight(Activity mActivity) {
+        WindowManager manager = (WindowManager) mActivity.getSystemService(Context.WINDOW_SERVICE);
+        Display defaultDisplay = manager.getDefaultDisplay();
+        DisplayMetrics outMetrics = new DisplayMetrics();
+        defaultDisplay.getMetrics(outMetrics);
+        return outMetrics.heightPixels;
+    }
+
+    /**
+     * @param mActivity  ,个人资料Activity
+     * @param viewAnchor ,锚
+     *                   选择性别弹窗
+     */
+    public static void choiceSex(final PersonalInfoAct mActivity, View viewAnchor) {
+        View view = LayoutInflater.from(mActivity).inflate(R.layout.pop_choice_sex, null);
+        TextView tvOk = view.findViewById(R.id.tv_cancel);
+        final CheckBox cbMale = view.findViewById(R.id.btn_male);
+        final CheckBox cbFemale = view.findViewById(R.id.btn_female);
+        final PopupWindow popupWindow = new PopupWindow(mActivity);
+        cbFemale.setTextColor(Color.parseColor("#ff444444"));
+        cbMale.setTextColor(Color.parseColor("#ff444444"));
+        popupWindow.setContentView(view);
+        popupWindow.setWidth(measureWidth(mActivity));
+        popupWindow.setHeight(ActionBar.LayoutParams.WRAP_CONTENT);
+        popupWindow.setAnimationStyle(R.style.Rising);
+        popupWindow.setTouchable(true);
+        popupWindow.setFocusable(true);
+        popupWindow.setBackgroundDrawable(new BitmapDrawable());
+        backgroundAlpha(0.5f, mActivity);
+        popupWindow.showAtLocation(viewAnchor, Gravity.BOTTOM, 0, 0);
+        popupWindow.setOnDismissListener(new PopDismissListener(mActivity));
+        tvOk.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                mActivity.upLoadSex((!cbFemale.isChecked() && !cbMale.isChecked()) ? 0 : cbMale.isChecked() ? 1 : 2, popupWindow);
+            }
+        });
+        //选择男
+        cbMale.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                if (isChecked) {
+                    cbMale.setTextColor(Color.parseColor("#ff2d4b"));
+                    cbFemale.setTextColor(Color.parseColor("#ff444444"));
+                }
+            }
+        });
+        //选择女
+        cbFemale.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                if (isChecked) {
+                    cbFemale.setTextColor(Color.parseColor("#ff2d4b"));
+                    cbMale.setTextColor(Color.parseColor("#ff444444"));
+
+                }
+            }
+        });
+
+    }
+
+    /**
+     * popwindow消失监听类,消失恢复window透明度
+     */
+    static class PopDismissListener implements PopupWindow.OnDismissListener {
+        Activity mActivity;
+
+        public PopDismissListener(Activity activity) {
+            mActivity = activity;
+        }
+
+        @Override
+        public void onDismiss() {
+            backgroundAlpha(1f, mActivity);
+        }
+
+    }
+
+    /**
+     * @param bgAlpha  ,透明度值
+     * @param activity 恢复透明度
+     */
+    public static void backgroundAlpha(float bgAlpha, Activity activity) {
+        WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
+        lp.alpha = bgAlpha;
+        activity.getWindow().setAttributes(lp);
+    }
+
+    /**
      * 分享对话框
      * 分享对话框
      *
      *
      * @param activity
      * @param activity
@@ -249,14 +564,14 @@ public class ViewUtil {
         return null;
         return null;
     }
     }
 
 
-    public static void setH5Text(TextView textView,WebView webView, String content) {
-        if(textView == null || webView == null){
+    public static void setH5Text(TextView textView, WebView webView, String content) {
+        if (textView == null || webView == null) {
             return;
             return;
         }
         }
-        if(ViewUtil.isH5Content(content)){
+        if (ViewUtil.isH5Content(content)) {
             webView.loadDataWithBaseURL(null, content, "text/html", "utf-8", null);
             webView.loadDataWithBaseURL(null, content, "text/html", "utf-8", null);
             textView.setVisibility(View.GONE);
             textView.setVisibility(View.GONE);
-        } else if(content.startsWith("<p>")){
+        } else if (content.startsWith("<p>")) {
             ViewUtil.loadDataWithBaseURL(webView, content);
             ViewUtil.loadDataWithBaseURL(webView, content);
             textView.setVisibility(View.GONE);
             textView.setVisibility(View.GONE);
         } else {
         } else {
@@ -274,8 +589,8 @@ public class ViewUtil {
     }
     }
 
 
     public static void setH5Text(TextView textView, String content) {
     public static void setH5Text(TextView textView, String content) {
-        if(textView != null) {
-            if(TextUtils.isEmpty(content)){
+        if (textView != null) {
+            if (TextUtils.isEmpty(content)) {
                 textView.setText("");
                 textView.setText("");
                 return;
                 return;
             }
             }
@@ -302,6 +617,7 @@ public class ViewUtil {
     public static AlertDialog showMsgDialog(final Context context, String msg, String title) {
     public static AlertDialog showMsgDialog(final Context context, String msg, String title) {
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setBtnLeftText("知道了"));
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setBtnLeftText("知道了"));
     }
     }
+
     public static AlertDialog showMsgDialog(final Context context, String msg, String title, String leftBtn, String rightBtn,
     public static AlertDialog showMsgDialog(final Context context, String msg, String title, String leftBtn, String rightBtn,
                                             View.OnClickListener onClickListener, View.OnClickListener onRightClickListener, View.OnClickListener onCloseClickListener) {
                                             View.OnClickListener onClickListener, View.OnClickListener onRightClickListener, View.OnClickListener onCloseClickListener) {
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setBtnLeftText(leftBtn)
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setBtnLeftText(leftBtn)
@@ -310,10 +626,12 @@ public class ViewUtil {
                 .setBtnRightOnClickListener(onRightClickListener)
                 .setBtnRightOnClickListener(onRightClickListener)
                 .setBtnCloseOnClickListener(onCloseClickListener));
                 .setBtnCloseOnClickListener(onCloseClickListener));
     }
     }
-    public static AlertDialog showMsgDialog(final Context context, String msg, String title,boolean isFinish) {
+
+    public static AlertDialog showMsgDialog(final Context context, String msg, String title, boolean isFinish) {
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setFinish(isFinish).setBtnLeftText("知道了"));
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setFinish(isFinish).setBtnLeftText("知道了"));
     }
     }
 
 
+
     public static AlertDialog showMsgDialog(Context context, final DialogConfig dialogConfig) {
     public static AlertDialog showMsgDialog(Context context, final DialogConfig dialogConfig) {
         final Context mContext = context == null ? ActivityManager.getInstance().currentActivity() : context;
         final Context mContext = context == null ? ActivityManager.getInstance().currentActivity() : context;
         String title = dialogConfig.getTitle();
         String title = dialogConfig.getTitle();
@@ -328,7 +646,7 @@ public class ViewUtil {
         View dialog_parent = View.inflate(mContext, R.layout.dialog_parent, null);
         View dialog_parent = View.inflate(mContext, R.layout.dialog_parent, null);
         final AlertDialog dialog = new AlertDialog.Builder(mContext, mContext instanceof Activity ? R.style.MyDialogActivityTheme : R.style.AppTheme_Dialog_Alert).setView(dialog_parent).create();
         final AlertDialog dialog = new AlertDialog.Builder(mContext, mContext instanceof Activity ? R.style.MyDialogActivityTheme : R.style.AppTheme_Dialog_Alert).setView(dialog_parent).create();
         TextView dialog_title = dialog_parent.findViewById(R.id.dialog_title);
         TextView dialog_title = dialog_parent.findViewById(R.id.dialog_title);
-        switch (dialogConfig.getTheme()){//设置按钮风格
+        switch (dialogConfig.getTheme()) {//设置按钮风格
             case DialogConfig.THEME_PURPLE:
             case DialogConfig.THEME_PURPLE:
                 dialog_title.setBackgroundResource(R.drawable.shape_purple_solid_rectangle_top);
                 dialog_title.setBackgroundResource(R.drawable.shape_purple_solid_rectangle_top);
                 break;
                 break;
@@ -340,7 +658,7 @@ public class ViewUtil {
             dialog_title.setText(title);
             dialog_title.setText(title);
 
 
         final TextView dialog_msg = view.findViewById(R.id.dialog_msg);
         final TextView dialog_msg = view.findViewById(R.id.dialog_msg);
-        if(dialog_msg != null) {
+        if (dialog_msg != null) {
             if (TextUtils.isEmpty(msg)) {
             if (TextUtils.isEmpty(msg)) {
                 dialog_msg.setVisibility(View.GONE);
                 dialog_msg.setVisibility(View.GONE);
             } else {
             } else {
@@ -356,24 +674,24 @@ public class ViewUtil {
         }
         }
 
 
         final WebView dialog_msg_wv = view.findViewById(R.id.dialog_msg_wv);
         final WebView dialog_msg_wv = view.findViewById(R.id.dialog_msg_wv);
-        if(dialog_msg_wv != null) {
+        if (dialog_msg_wv != null) {
             ViewUtil.loadDataWithBaseURL(dialog_msg_wv, msg);
             ViewUtil.loadDataWithBaseURL(dialog_msg_wv, msg);
         }
         }
 
 
         TextView dialog_msg_more = view.findViewById(R.id.dialog_msg_more);
         TextView dialog_msg_more = view.findViewById(R.id.dialog_msg_more);
-        if(dialog_msg_more != null) {
+        if (dialog_msg_more != null) {
             if (TextUtils.isEmpty(msgMore)) {
             if (TextUtils.isEmpty(msgMore)) {
                 dialog_msg_more.setVisibility(View.GONE);
                 dialog_msg_more.setVisibility(View.GONE);
             } else {
             } else {
                 dialog_msg_more.setVisibility(View.VISIBLE);
                 dialog_msg_more.setVisibility(View.VISIBLE);
                 dialog_msg_more.setText(msgMore);
                 dialog_msg_more.setText(msgMore);
-                if(dialogConfig.getMsgMoreColor() > 0)
+                if (dialogConfig.getMsgMoreColor() > 0)
                     dialog_msg_more.setTextColor(mContext.getResources().getColor(dialogConfig.getMsgMoreColor()));
                     dialog_msg_more.setTextColor(mContext.getResources().getColor(dialogConfig.getMsgMoreColor()));
             }
             }
         }
         }
 
 
         TextView dialog_tip = view.findViewById(R.id.dialog_tip);
         TextView dialog_tip = view.findViewById(R.id.dialog_tip);
-        if(dialog_tip != null) {
+        if (dialog_tip != null) {
             if (TextUtils.isEmpty(tip)) {
             if (TextUtils.isEmpty(tip)) {
                 dialog_tip.setVisibility(View.GONE);
                 dialog_tip.setVisibility(View.GONE);
             } else {
             } else {
@@ -384,8 +702,8 @@ public class ViewUtil {
 
 
         TextView dialog_btn_left = view.findViewById(R.id.dialog_btn_left);
         TextView dialog_btn_left = view.findViewById(R.id.dialog_btn_left);
         boolean isLeftBtnShow = btnLeftText != null || btnLeftOnClickListener != null;
         boolean isLeftBtnShow = btnLeftText != null || btnLeftOnClickListener != null;
-        if(dialog_btn_left != null) {
-            switch (dialogConfig.getTheme()){//设置按钮风格
+        if (dialog_btn_left != null) {
+            switch (dialogConfig.getTheme()) {//设置按钮风格
                 case DialogConfig.THEME_PURPLE:
                 case DialogConfig.THEME_PURPLE:
                     dialog_btn_left.setBackgroundResource(R.drawable.selector_button_full_purple);
                     dialog_btn_left.setBackgroundResource(R.drawable.selector_button_full_purple);
                     dialog_btn_left.setTextColor(Color.WHITE);
                     dialog_btn_left.setTextColor(Color.WHITE);
@@ -408,8 +726,8 @@ public class ViewUtil {
 
 
         TextView dialog_btn_right = view.findViewById(R.id.dialog_btn_right);
         TextView dialog_btn_right = view.findViewById(R.id.dialog_btn_right);
         boolean isRigthBtnShow = btnRightText != null || btnRightOnClickListener != null;
         boolean isRigthBtnShow = btnRightText != null || btnRightOnClickListener != null;
-        if(dialog_btn_right != null) {
-            switch (dialogConfig.getTheme()){//设置按钮风格
+        if (dialog_btn_right != null) {
+            switch (dialogConfig.getTheme()) {//设置按钮风格
                 case DialogConfig.THEME_PURPLE:
                 case DialogConfig.THEME_PURPLE:
                     dialog_btn_right.setBackgroundResource(R.drawable.selector_button_full_purple);
                     dialog_btn_right.setBackgroundResource(R.drawable.selector_button_full_purple);
                     dialog_btn_right.setTextColor(Color.WHITE);
                     dialog_btn_right.setTextColor(Color.WHITE);
@@ -430,16 +748,16 @@ public class ViewUtil {
         }
         }
 
 
         View dialog_btn_center = view.findViewById(R.id.dialog_btn_center);
         View dialog_btn_center = view.findViewById(R.id.dialog_btn_center);
-        if(dialog_btn_center != null) {
+        if (dialog_btn_center != null) {
             dialog_btn_center.setVisibility(isLeftBtnShow && isRigthBtnShow ? View.VISIBLE : View.GONE);
             dialog_btn_center.setVisibility(isLeftBtnShow && isRigthBtnShow ? View.VISIBLE : View.GONE);
         }
         }
 
 
-        if(dialog_close != null) {
+        if (dialog_close != null) {
             if (dialogConfig.isCancelable())//
             if (dialogConfig.isCancelable())//
                 dialog_close.setOnClickListener(new View.OnClickListener() {
                 dialog_close.setOnClickListener(new View.OnClickListener() {
                     @Override
                     @Override
                     public void onClick(View v) {
                     public void onClick(View v) {
-                        if(btnCloseOnClickListener != null){
+                        if (btnCloseOnClickListener != null) {
                             btnCloseOnClickListener.onClick(v);
                             btnCloseOnClickListener.onClick(v);
                         }
                         }
                         dialog.dismiss();
                         dialog.dismiss();
@@ -452,7 +770,7 @@ public class ViewUtil {
             @Override
             @Override
             public void onDismiss(DialogInterface dialog) {
             public void onDismiss(DialogInterface dialog) {
                 try {
                 try {
-                    if(dialogConfig.isFinish()) {
+                    if (dialogConfig.isFinish()) {
                         if (mContext instanceof Activity) {
                         if (mContext instanceof Activity) {
                             ((Activity) mContext).finish();
                             ((Activity) mContext).finish();
                         }
                         }
@@ -463,10 +781,10 @@ public class ViewUtil {
             }
             }
         });
         });
 
 
-        if(!(mContext instanceof Activity) && dialog.getWindow() != null) {
+        if (!(mContext instanceof Activity) && dialog.getWindow() != null) {
             dialog.getWindow().setType(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ? WindowManager.LayoutParams.TYPE_PHONE : WindowManager.LayoutParams.TYPE_TOAST);
             dialog.getWindow().setType(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ? WindowManager.LayoutParams.TYPE_PHONE : WindowManager.LayoutParams.TYPE_TOAST);
         }
         }
-        if(!dialogConfig.isCancelable())
+        if (!dialogConfig.isCancelable())
             dialog.setCancelable(false);
             dialog.setCancelable(false);
         try {
         try {
             dialog.show();
             dialog.show();
@@ -478,32 +796,33 @@ public class ViewUtil {
 
 
     /**
     /**
      * 通过map来设置字体颜色
      * 通过map来设置字体颜色
+     *
      * @param textView
      * @param textView
      * @param msg
      * @param msg
      * @param colorMsgMap key为文本,value为要设置的颜色(#FF0000)
      * @param colorMsgMap key为文本,value为要设置的颜色(#FF0000)
      */
      */
     public static void setColorMapText(TextView textView, String msg, Map<String, String> colorMsgMap) {
     public static void setColorMapText(TextView textView, String msg, Map<String, String> colorMsgMap) {
-        if(textView == null){
+        if (textView == null) {
             return;
             return;
         }
         }
-        if(TextUtils.isEmpty(msg)){
+        if (TextUtils.isEmpty(msg)) {
             textView.setText("");
             textView.setText("");
         }
         }
-        if(colorMsgMap.isEmpty()) {
+        if (colorMsgMap.isEmpty()) {
             textView.setText(msg);
             textView.setText(msg);
         } else {
         } else {
             int index = 0;
             int index = 0;
             for (Map.Entry<String, String> entry : colorMsgMap.entrySet()) {
             for (Map.Entry<String, String> entry : colorMsgMap.entrySet()) {
                 String key = entry.getKey();
                 String key = entry.getKey();
                 String value = entry.getValue();//例如红色 #FF0000
                 String value = entry.getValue();//例如红色 #FF0000
-                if(!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value) && msg.contains(key) && value.length() == 7){
+                if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value) && msg.contains(key) && value.length() == 7) {
                     int length = msg.length();
                     int length = msg.length();
-                    if(index < length){
+                    if (index < length) {
                         int position = msg.indexOf(key, index);
                         int position = msg.indexOf(key, index);
                         String start = msg.substring(0, position);
                         String start = msg.substring(0, position);
                         String middle = getHtmlText(key, value);
                         String middle = getHtmlText(key, value);
                         String end = msg.substring(position + key.length());
                         String end = msg.substring(position + key.length());
-                        index = (start+middle).length();
+                        index = (start + middle).length();
                         msg = start + middle + end;
                         msg = start + middle + end;
                     }
                     }
                 }
                 }
@@ -511,38 +830,40 @@ public class ViewUtil {
             textView.setText(Html.fromHtml(msg));
             textView.setText(Html.fromHtml(msg));
         }
         }
     }
     }
+
     /**
     /**
      * 通过map来设置字体颜色
      * 通过map来设置字体颜色
+     *
      * @param textView
      * @param textView
      * @param msg
      * @param msg
-     * @param items key为文本,value为要设置的颜色(#FF0000)
+     * @param items    key为文本,value为要设置的颜色(#FF0000)
      */
      */
-    public static void setColorMapText(TextView textView, String msg, String...items) {
-        if(textView == null){
+    public static void setColorMapText(TextView textView, String msg, String... items) {
+        if (textView == null) {
             return;
             return;
         }
         }
-        if(TextUtils.isEmpty(msg)){
+        if (TextUtils.isEmpty(msg)) {
             textView.setText("");
             textView.setText("");
         }
         }
-        if(items == null || items.length < 1 || items.length % 2 == 1) {
+        if (items == null || items.length < 1 || items.length % 2 == 1) {
             textView.setText(msg);
             textView.setText(msg);
         } else {
         } else {
             int index = 0;
             int index = 0;
             for (int i = 0; i + 1 < items.length; ) {
             for (int i = 0; i + 1 < items.length; ) {
                 String key = items[i];
                 String key = items[i];
-                String value = items[i+1];//例如红色 #FF0000
-                if(!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value) && msg.contains(key) && value.length() == 7){
+                String value = items[i + 1];//例如红色 #FF0000
+                if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value) && msg.contains(key) && value.length() == 7) {
                     int length = msg.length();
                     int length = msg.length();
-                    if(index < length){
+                    if (index < length) {
                         int position = msg.indexOf(key, index);
                         int position = msg.indexOf(key, index);
                         String start = msg.substring(0, position);
                         String start = msg.substring(0, position);
                         String middle = getHtmlText(key, value);
                         String middle = getHtmlText(key, value);
                         String end = msg.substring(position + key.length());
                         String end = msg.substring(position + key.length());
-                        index = (start+middle).length();
+                        index = (start + middle).length();
                         msg = start + middle + end;
                         msg = start + middle + end;
                     }
                     }
                 }
                 }
-                i+=2;
+                i += 2;
             }
             }
             textView.setText(Html.fromHtml(msg));
             textView.setText(Html.fromHtml(msg));
         }
         }
@@ -550,7 +871,8 @@ public class ViewUtil {
 
 
     /**
     /**
      * 获取html格式并带颜色的文字
      * 获取html格式并带颜色的文字
-     * @param text 文字
+     *
+     * @param text  文字
      * @param color 颜色
      * @param color 颜色
      * @return
      * @return
      */
      */
@@ -573,12 +895,12 @@ public class ViewUtil {
 
 
             ACache aCache = ACache.get(SheepApp.getInstance());
             ACache aCache = ACache.get(SheepApp.getInstance());
             String wh = aCache.getAsString(advertising.getDisplay_src());
             String wh = aCache.getAsString(advertising.getDisplay_src());
-            if(!TextUtils.isEmpty(wh) && wh.contains(";")) {
+            if (!TextUtils.isEmpty(wh) && wh.contains(";")) {
                 String[] items = wh.split(";");
                 String[] items = wh.split(";");
                 dialog_center_ll.setMinimumWidth(Integer.parseInt(items[0]));
                 dialog_center_ll.setMinimumWidth(Integer.parseInt(items[0]));
                 dialog_center_ll.setMinimumHeight(Integer.parseInt(items[1]));
                 dialog_center_ll.setMinimumHeight(Integer.parseInt(items[1]));
             }
             }
-            dialog_center_ll.setPadding(0,activity.getResources().getDimensionPixelSize(R.dimen.content_padding_54),0,activity.getResources().getDimensionPixelSize(R.dimen.content_padding_15));
+            dialog_center_ll.setPadding(0, activity.getResources().getDimensionPixelSize(R.dimen.content_padding_54), 0, activity.getResources().getDimensionPixelSize(R.dimen.content_padding_15));
 
 
             ImageView ad_iv = view.findViewById(R.id.ad_iv);
             ImageView ad_iv = view.findViewById(R.id.ad_iv);
             VideoView ad_video_view = view.findViewById(R.id.ad_video_view);
             VideoView ad_video_view = view.findViewById(R.id.ad_video_view);
@@ -591,9 +913,9 @@ public class ViewUtil {
 //            ad_video_view.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,G.WIDTH*4/7));
 //            ad_video_view.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,G.WIDTH*4/7));
             if (advertising.isImage()) {
             if (advertising.isImage()) {
                 RequestBuilder<Drawable> builder = Glide.with(activity).load(advertising.getDisplay_src());
                 RequestBuilder<Drawable> builder = Glide.with(activity).load(advertising.getDisplay_src());
-                if(TextUtils.isEmpty(advertising.getDesc())) {//没有标题时 去掉下面的边距 并给图片左下理右下添加图角
+                if (TextUtils.isEmpty(advertising.getDesc())) {//没有标题时 去掉下面的边距 并给图片左下理右下添加图角
                     builder.apply(new RequestOptions().transform(new RoundedCornersTransformation(activity.getResources().getDimensionPixelSize(R.dimen.content_padding_36), 0, RoundedCornersTransformation.CornerType.BOTTOM)));
                     builder.apply(new RequestOptions().transform(new RoundedCornersTransformation(activity.getResources().getDimensionPixelSize(R.dimen.content_padding_36), 0, RoundedCornersTransformation.CornerType.BOTTOM)));
-                    dialog_center_ll.setPadding(0,activity.getResources().getDimensionPixelSize(R.dimen.content_padding_54),0, 0);
+                    dialog_center_ll.setPadding(0, activity.getResources().getDimensionPixelSize(R.dimen.content_padding_54), 0, 0);
                 }
                 }
                 builder.into(ad_iv);
                 builder.into(ad_iv);
                 ad_video_view.setVisibility(View.GONE);
                 ad_video_view.setVisibility(View.GONE);
@@ -613,13 +935,13 @@ public class ViewUtil {
                 videoView.setVideoURI(uri);
                 videoView.setVideoURI(uri);
                 videoView.start();
                 videoView.start();
                 videoView.requestFocus();
                 videoView.requestFocus();
-                if(container != null){
+                if (container != null) {
                     container.setT(new Action1<Integer>() {
                     container.setT(new Action1<Integer>() {
                         @Override
                         @Override
                         public void call(Integer integer) {
                         public void call(Integer integer) {
-                            if(integer == 1){//onResume
+                            if (integer == 1) {//onResume
                                 videoView.resume();
                                 videoView.resume();
-                            } else if(integer == 2){//onPause
+                            } else if (integer == 2) {//onPause
                                 videoView.pause();
                                 videoView.pause();
                             }
                             }
                         }
                         }
@@ -680,7 +1002,7 @@ public class ViewUtil {
                     Jump2View.getInstance().tryShowReservation(activity);
                     Jump2View.getInstance().tryShowReservation(activity);
                 }
                 }
             });
             });
-            if(TextUtils.isEmpty(advertising.getDesc())) {
+            if (TextUtils.isEmpty(advertising.getDesc())) {
                 ad_msg.setVisibility(View.GONE);
                 ad_msg.setVisibility(View.GONE);
             } else {
             } else {
                 ad_msg.setText(advertising.getDesc());
                 ad_msg.setText(advertising.getDesc());
@@ -692,6 +1014,7 @@ public class ViewUtil {
             }
             }
         }
         }
     }
     }
+
     //显示定向货币详情
     //显示定向货币详情
     public static void showOrienteeringDetails(Activity activity) {
     public static void showOrienteeringDetails(Activity activity) {
         new DialogOrienteeringDetails(activity).showOrienteeringDetails();
         new DialogOrienteeringDetails(activity).showOrienteeringDetails();
@@ -700,98 +1023,109 @@ public class ViewUtil {
     /**
     /**
      * game 充值
      * game 充值
      */
      */
-    public static void showGamePayAccount(Activity activity,String gameId, String gameName){
+    public static void showGamePayAccount(Activity activity, String gameId, String gameName) {
         PayEntity payEntity = new PayEntity();
         PayEntity payEntity = new PayEntity();
         payEntity.setGame_id(gameId);
         payEntity.setGame_id(gameId);
         payEntity.setGame_name(gameName);
         payEntity.setGame_name(gameName);
-        newInstance().showGamePayAccount(activity,payEntity);
+        newInstance().showGamePayAccount(activity, payEntity);
     }
     }
-    public void showGamePayAccount(Activity activity,PayEntity payEntity){
-        new DialogPayAccount(activity,payEntity).showPayaccount();
+
+    public void showGamePayAccount(Activity activity, PayEntity payEntity) {
+        new DialogPayAccount(activity, payEntity).showPayaccount();
     }
     }
-    public static void showGamePay(Activity activity, PayEntity payEntity){
+
+    public static void showGamePay(Activity activity, PayEntity payEntity) {
         new DialogPayGame(activity, payEntity).showPayGame();
         new DialogPayGame(activity, payEntity).showPayGame();
     }
     }
 
 
     /**
     /**
      * 用户详情
      * 用户详情
      */
      */
-    public void showGameAccountDetail(Activity activity, int id){
+    public void showGameAccountDetail(Activity activity, int id) {
         new DialogModifyAccount(activity, id).showAddAccount();
         new DialogModifyAccount(activity, id).showAddAccount();
     }
     }
+
     /**
     /**
      * 用户详情
      * 用户详情
      */
      */
-    public void showGameAccountDetail(Activity activity, GameAccountEntity item){
+    public void showGameAccountDetail(Activity activity, GameAccountEntity item) {
         new DialogModifyAccount(activity, item).showAddAccount();
         new DialogModifyAccount(activity, item).showAddAccount();
     }
     }
 
 
 
 
     /**
     /**
      * 分享
      * 分享
+     *
      * @param activity
      * @param activity
      * @param url
      * @param url
      */
      */
-    public void showShare(Activity activity, String url, String description){
+    public void showShare(Activity activity, String url, String description) {
         new DialogShare(activity, url, description).showShare();
         new DialogShare(activity, url, description).showShare();
     }
     }
 
 
     public static void centerImage(ImageView imageView, String pictures) {
     public static void centerImage(ImageView imageView, String pictures) {
-        if(imageView != null && !TextUtils.isEmpty(pictures)){
-            if(pictures.contains(";")){
+        if (imageView != null && !TextUtils.isEmpty(pictures)) {
+            if (pictures.contains(";")) {
                 pictures = pictures.split(";")[0];
                 pictures = pictures.split(";")[0];
             }
             }
             GlideImageLoader.centerImage(imageView, pictures);
             GlideImageLoader.centerImage(imageView, pictures);
         }
         }
     }
     }
+
     public static void setImage(ImageView imageView, String pictures) {
     public static void setImage(ImageView imageView, String pictures) {
-        if(imageView != null && !TextUtils.isEmpty(pictures)){
-            if(pictures.contains(";")){
+        if (imageView != null && !TextUtils.isEmpty(pictures)) {
+            if (pictures.contains(";")) {
                 pictures = pictures.split(";")[0];
                 pictures = pictures.split(";")[0];
             }
             }
             GlideImageLoader.setImage(imageView, pictures);
             GlideImageLoader.setImage(imageView, pictures);
         }
         }
     }
     }
+
     public static void setImage(ImageView imageView, String pictures, int radius) {
     public static void setImage(ImageView imageView, String pictures, int radius) {
-        if(imageView != null && !TextUtils.isEmpty(pictures)){
-            if(pictures.contains(";")){
+        if (imageView != null && !TextUtils.isEmpty(pictures)) {
+            if (pictures.contains(";")) {
                 pictures = pictures.split(";")[0];
                 pictures = pictures.split(";")[0];
             }
             }
             GlideImageLoader.roundedCornersImage(imageView, pictures, radius);
             GlideImageLoader.roundedCornersImage(imageView, pictures, radius);
         }
         }
     }
     }
+
     public static void setTextTime(TextView textView, long time, String format) {
     public static void setTextTime(TextView textView, long time, String format) {
-        if(textView != null){
+        if (textView != null) {
             textView.setText(TimeUtil.TimeStamp2Date(time, format));
             textView.setText(TimeUtil.TimeStamp2Date(time, format));
         }
         }
     }
     }
+
     public static void setText(TextView textView) {
     public static void setText(TextView textView) {
-        if(textView != null){
+        if (textView != null) {
             textView.setText("");
             textView.setText("");
         }
         }
     }
     }
 
 
     public static void setText(TextView textView, String msg) {
     public static void setText(TextView textView, String msg) {
-        if(textView != null){
+        if (textView != null) {
             textView.setText(TextUtils.isEmpty(msg) ? "" : msg);
             textView.setText(TextUtils.isEmpty(msg) ? "" : msg);
         }
         }
 
 
     }
     }
+
     public static final String INDENT = "\u3000";//用特殊字符显示空白的缩进字符
     public static final String INDENT = "\u3000";//用特殊字符显示空白的缩进字符
+
     public static void setText(TextView textView, String msg, int indent) {
     public static void setText(TextView textView, String msg, int indent) {
-        if(textView != null){
+        if (textView != null) {
             textView.setText(addIndent(msg, indent));
             textView.setText(addIndent(msg, indent));
         }
         }
 
 
     }
     }
+
     //在msg前面添加空格
     //在msg前面添加空格
     public static String addIndent(String msg, int indent) {
     public static String addIndent(String msg, int indent) {
-        if(indent > 0){
+        if (indent > 0) {
             StringBuilder stringBuilder = new StringBuilder();
             StringBuilder stringBuilder = new StringBuilder();
             for (int i = 0; i < indent; i++) {
             for (int i = 0; i < indent; i++) {
                 stringBuilder.append(INDENT);
                 stringBuilder.append(INDENT);
             }
             }
-            if(!TextUtils.isEmpty(msg))
+            if (!TextUtils.isEmpty(msg))
                 stringBuilder.append(msg);
                 stringBuilder.append(msg);
             return stringBuilder.toString();
             return stringBuilder.toString();
         }
         }
@@ -803,9 +1137,10 @@ public class ViewUtil {
      */
      */
 
 
     protected ProgressDialog mPd;
     protected ProgressDialog mPd;
-    public void  showProgress(Activity activity){
+
+    public void showProgress(Activity activity) {
         try {
         try {
-            if(mPd!=null){
+            if (mPd != null) {
                 hideProgress(activity);
                 hideProgress(activity);
             }
             }
             mPd = new ProgressDialog(activity);
             mPd = new ProgressDialog(activity);
@@ -819,9 +1154,10 @@ public class ViewUtil {
             e.printStackTrace();
             e.printStackTrace();
         }
         }
     }
     }
-    public void  showProgress(Activity activity, boolean cancel){
+
+    public void showProgress(Activity activity, boolean cancel) {
         try {
         try {
-            if(mPd!=null){
+            if (mPd != null) {
                 hideProgress(activity);
                 hideProgress(activity);
             }
             }
             mPd = new ProgressDialog(activity);
             mPd = new ProgressDialog(activity);
@@ -837,11 +1173,11 @@ public class ViewUtil {
     }
     }
 
 
 
 
-    public void  hideProgress(Activity activity){
+    public void hideProgress(Activity activity) {
         activity.runOnUiThread(new Runnable() {
         activity.runOnUiThread(new Runnable() {
             @Override
             @Override
             public void run() {
             public void run() {
-                if(mPd!=null){
+                if (mPd != null) {
                     mPd.dismiss();
                     mPd.dismiss();
                 }
                 }
             }
             }
@@ -852,11 +1188,11 @@ public class ViewUtil {
     /**
     /**
      * 添加游戏账户
      * 添加游戏账户
      */
      */
-    public void showAddAccount(Activity activity, Action1<Integer> action1){
+    public void showAddAccount(Activity activity, Action1<Integer> action1) {
         new DialogAddAccount(activity).showAddAccount(action1);
         new DialogAddAccount(activity).showAddAccount(action1);
     }
     }
 
 
-    public static void showShareDialog(final Activity activity, final String url, final String description){
+    public static void showShareDialog(final Activity activity, final String url, final String description) {
         View dialog_parent = View.inflate(activity, R.layout.ask_to_share, null);
         View dialog_parent = View.inflate(activity, R.layout.ask_to_share, null);
         final AlertDialog dialog = new AlertDialog.Builder(activity, R.style.AppTheme_Dialog_Alert)
         final AlertDialog dialog = new AlertDialog.Builder(activity, R.style.AppTheme_Dialog_Alert)
                 .setView(dialog_parent)
                 .setView(dialog_parent)
@@ -915,7 +1251,7 @@ public class ViewUtil {
         try {
         try {
             dialog.show();
             dialog.show();
             Window window = dialog.getWindow();
             Window window = dialog.getWindow();
-            if(window != null) {
+            if (window != null) {
                 window.setGravity(Gravity.BOTTOM);
                 window.setGravity(Gravity.BOTTOM);
                 WindowManager.LayoutParams params = window.getAttributes();
                 WindowManager.LayoutParams params = window.getAttributes();
                 params.width = G.WIDTH > G.HEIGHT ? G.HEIGHT : G.WIDTH;
                 params.width = G.WIDTH > G.HEIGHT ? G.HEIGHT : G.WIDTH;
@@ -925,7 +1261,8 @@ public class ViewUtil {
             e.printStackTrace();
             e.printStackTrace();
         }
         }
     }
     }
-    public static String getNetImgByName(String name){
+
+    public static String getNetImgByName(String name) {
         return String.format(Locale.CHINA, "http://cdngame.kuaifazs.com/%s.png", name);
         return String.format(Locale.CHINA, "http://cdngame.kuaifazs.com/%s.png", name);
     }
     }
 }
 }

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

@@ -11,6 +11,7 @@ import android.widget.TextView;
 
 
 import com.kfzs.duanduan.BaseCompatActivity;
 import com.kfzs.duanduan.BaseCompatActivity;
 import com.sheep.gamegroup.model.entity.CreditCard;
 import com.sheep.gamegroup.model.entity.CreditCard;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.WebviewJs;
 import com.sheep.gamegroup.util.WebviewJs;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -139,7 +140,7 @@ public class ActCreditCardWeb extends BaseCompatActivity {
     }
     }
     // 注入js函数监听
     // 注入js函数监听
     public void loadJs() {
     public void loadJs() {
-        mWebView.loadUrl("javascript:"+getJs());
+     //   mWebView.loadUrl("javascript:"+getJs());
     }
     }
     private String js;
     private String js;
     private String getJs(){
     private String getJs(){

+ 83 - 4
app/src/main/java/com/sheep/gamegroup/view/activity/PersonalInfoAct.java

@@ -5,13 +5,14 @@ import android.content.Intent;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.view.View;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.ImageView;
+import android.widget.PopupWindow;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
-import com.bumptech.glide.Glide;
 import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.entity.UserEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.AppUtil;
 import com.sheep.gamegroup.util.AppUtil;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.DataUtil;
@@ -54,6 +55,10 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
 
 
     @BindView(R.id.personal_info_avatar)
     @BindView(R.id.personal_info_avatar)
     ImageView personal_info_avatar;
     ImageView personal_info_avatar;
+    @BindView(R.id.tv_sex)
+    TextView tvSex;
+    @BindView(R.id.tv_birthday)
+    TextView tvBirthday;
 
 
 
 
     @Override
     @Override
@@ -94,16 +99,88 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
         if (userEntity != null) {
         if (userEntity != null) {
             loadUserInfo();
             loadUserInfo();
         }
         }
+
     }
     }
 
 
+    /**
+     * 上传性别
+     *
+     * @param sex         ,
+     * @param popupWindow ,
+     */
+    public void upLoadSex(final int sex, final PopupWindow popupWindow) {
+        JSONObject j = new JSONObject();
+        j.put("gender", sex);
+        SheepApp.getInstance().getNetComponent().getApiService().changeBaseInfo(j)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast(baseMessage.getMsg());
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        if (baseMessage != null) {
+                            CommonUtil.getInstance().getUserInfo(SheepApp.mContext);
+                            popupWindow.dismiss();
+                            tvSex.setText(sex == 1 ? "男" : "女");
+                            G.showToast("修改成功!");
+                        } else {
+                            G.showToast("修改失败!");
+                        }
+
+                    }
+                });
+    }
+
+    public void upLoadBirthday(final String birthday) {
+        JSONObject j = new JSONObject();
+        j.put("birthday",birthday+"T00:00:00Z");
+        SheepApp.getInstance().getNetComponent().getApiService().changeBaseInfo(j)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast(baseMessage.getMsg());
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        if (baseMessage != null) {
+                            CommonUtil.getInstance().getUserInfo(SheepApp.mContext);
+                            G.showToast("修改成功!");
+                        } else {
+                            G.showToast("修改失败!");
+                        }
+
+                    }
+                });
+    }
+
+    @OnClick({R.id.personal_info_avatar_container, R.id.personal_info_name_container, R.id.personal_info_qr_container, R.id.personal_info_phone_container, R.id.personal_info_wx_container,
+            R.id.personal_info_authentication_container, R.id.llayout_sex, R.id.tv_sex, R.id.llayout_birthday,R.id.tv_birthday})
 
 
-    @OnClick({R.id.personal_info_avatar_container, R.id.personal_info_name_container, R.id.personal_info_qr_container, R.id.personal_info_phone_container, R.id.personal_info_wx_container, R.id.personal_info_authentication_container})
     public void onClick(View view) {
     public void onClick(View view) {
         if (userEntity == null) {
         if (userEntity == null) {
             G.showToast(R.string.loading_data);
             G.showToast(R.string.loading_data);
             return;
             return;
         }
         }
         switch (view.getId()) {
         switch (view.getId()) {
+            case R.id.llayout_sex://用户性别
+                ViewUtil.choiceSex(PersonalInfoAct.this, getCurrentFocus());
+                break;
+            case R.id.tv_sex://用户性别
+                ViewUtil.choiceSex(PersonalInfoAct.this, getCurrentFocus());
+                break;
+            case R.id.llayout_birthday://用户生日
+                ViewUtil.showDateDialog(PersonalInfoAct.this, tvBirthday);
+                break;
+            case R.id.tv_birthday:
+                ViewUtil.showDateDialog(PersonalInfoAct.this, tvBirthday);
+                break;
             case R.id.personal_info_avatar_container://头像
             case R.id.personal_info_avatar_container://头像
                 showChooseDialog();
                 showChooseDialog();
                 USER_INFO_AVATAR.onEvent();
                 USER_INFO_AVATAR.onEvent();
@@ -180,11 +257,11 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
     protected void onResume() {
     protected void onResume() {
         super.onResume();
         super.onResume();
         UserEntity result = DataUtil.getInstance().getUserEntity();
         UserEntity result = DataUtil.getInstance().getUserEntity();
-        if(result == null) {
+        if (result == null) {
             CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
             CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
                 @Override
                 @Override
                 public void call(UserEntity item) {
                 public void call(UserEntity item) {
-                    if(item != null) {
+                    if (item != null) {
                         userEntity = item;
                         userEntity = item;
                         loadUserInfo();
                         loadUserInfo();
                     }
                     }
@@ -197,6 +274,8 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
     }
     }
 
 
     private void loadUserInfo() {
     private void loadUserInfo() {
+        tvSex.setText((userEntity.getGender()==0)?"点击设置":(userEntity.getGender()==1?"男":"女"));
+        tvBirthday.setText((userEntity.getBirthday().substring(0,1)).equals("0")?"点击设置":userEntity.getBirthday().substring(0,11));
         personal_info_name.setText(userEntity.getNickname());
         personal_info_name.setText(userEntity.getNickname());
         personal_info_code.setText(userEntity.getInvitation_code());
         personal_info_code.setText(userEntity.getInvitation_code());
 
 

+ 26 - 22
app/src/main/java/com/sheep/gamegroup/view/activity/PhoneAct.java

@@ -89,16 +89,16 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
                 .phoneModule(new PhoneModule(this))
                 .phoneModule(new PhoneModule(this))
                 .build()
                 .build()
                 .inject(this);
                 .inject(this);
-        if(TestUtil.isTest()){
+        if (TestUtil.isTest()) {
             phoneEtAccount.setInputType(InputType.TYPE_CLASS_TEXT);
             phoneEtAccount.setInputType(InputType.TYPE_CLASS_TEXT);
             phoneEtAccount.setFilters(new InputFilter[]{new InputFilter.LengthFilter(1000)});
             phoneEtAccount.setFilters(new InputFilter[]{new InputFilter.LengthFilter(1000)});
         }
         }
-        GlideImageLoader.centerImage( phone_iv, "http://cdngame.kuaifazs.com/icon_phone.png");
+        GlideImageLoader.centerImage(phone_iv, "http://cdngame.kuaifazs.com/icon_phone.png");
     }
     }
 
 
     @Override
     @Override
     public void initListener() {
     public void initListener() {
-        selfCountDownTimer = new SelfCountDownTimer(60 * 1000, 1000,SelfCountDownTimer.FULL_SECOND) {
+        selfCountDownTimer = new SelfCountDownTimer(60 * 1000, 1000, SelfCountDownTimer.FULL_SECOND) {
             @Override
             @Override
             public void onTimerRest() {
             public void onTimerRest() {
                 canGetCaptchaPhone = true;
                 canGetCaptchaPhone = true;
@@ -123,14 +123,13 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
     public void initData() {
     public void initData() {
         if (showNotice == 0) {
         if (showNotice == 0) {
             phoneTipTv.setVisibility(View.GONE);
             phoneTipTv.setVisibility(View.GONE);
-        }else if(showNotice == 1){
+        } else if (showNotice == 1) {
             phoneTipTv.setVisibility(View.GONE);
             phoneTipTv.setVisibility(View.GONE);
             phone_iv.setVisibility(View.GONE);
             phone_iv.setVisibility(View.GONE);
-        }else if(showNotice == 2){
+        } else if (showNotice == 2) {
             phoneTipTv.setVisibility(View.GONE);
             phoneTipTv.setVisibility(View.GONE);
             phone_iv.setVisibility(View.GONE);
             phone_iv.setVisibility(View.GONE);
-        }
-        else {
+        } else {
             phoneTipTv.setVisibility(View.VISIBLE);
             phoneTipTv.setVisibility(View.VISIBLE);
 
 
         }
         }
@@ -151,11 +150,11 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
             case R.id.phone_sure_tv:
             case R.id.phone_sure_tv:
                 etPhone = phoneEtAccount.getText().toString().trim();
                 etPhone = phoneEtAccount.getText().toString().trim();
                 etCode = phoneEtCode.getText().toString().trim();
                 etCode = phoneEtCode.getText().toString().trim();
-                if(TestUtil.isTest() && TextUtils.isEmpty(etCode)){
-                    if(TextUtils.isEmpty(etPhone))
+                if (TestUtil.isTest() && TextUtils.isEmpty(etCode)) {
+                    if (TextUtils.isEmpty(etPhone))
                         etPhone = "13626@395a75211751465f54789a7f459089bd";
                         etPhone = "13626@395a75211751465f54789a7f459089bd";
                     goMain(etPhone);
                     goMain(etPhone);
-                    if(!TextUtils.isEmpty(etPhone))
+                    if (!TextUtils.isEmpty(etPhone))
                         TestUtil.addUser(etPhone);
                         TestUtil.addUser(etPhone);
                     return;
                     return;
                 }
                 }
@@ -175,6 +174,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
         }
         }
         return true;
         return true;
     }
     }
+
     private boolean checkCodeInput() {
     private boolean checkCodeInput() {
         if (TextUtils.isEmpty(etCode)) {
         if (TextUtils.isEmpty(etCode)) {
             G.showToast(getString(R.string.input_your_captcha));
             G.showToast(getString(R.string.input_your_captcha));
@@ -190,27 +190,30 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
     /**
     /**
      * 获取验证码
      * 获取验证码
      */
      */
-    private void getCaptcha(){
+    private void getCaptcha() {
 
 
         if (!canGetCaptchaPhone) {
         if (!canGetCaptchaPhone) {
             return;
             return;
         }
         }
-        if(!checkPhoneInput()){
+        if (!checkPhoneInput()) {
             return;
             return;
         }
         }
         selfCountDownTimer.reset(SelfCountDownTimer.FULL_SECOND);
         selfCountDownTimer.reset(SelfCountDownTimer.FULL_SECOND);
-        phonePresenter.getCaptcha(etPhone);
-        canGetCaptchaPhone = false;
-        selfCountDownTimer.start();
+        canGetCaptchaPhone = true;
+        if (phonePresenter.getCaptchaa(etPhone)) {//成功获取验证码后,开启倒计时
+            selfCountDownTimer.start();
+        }
+
     }
     }
+
     /**
     /**
      * 登录
      * 登录
      */
      */
-    private void loginByPhoneGaptcha(){
-        if(!checkPhoneInput()){
+    private void loginByPhoneGaptcha() {
+        if (!checkPhoneInput()) {
             return;
             return;
         }
         }
-        if(!checkCodeInput()){
+        if (!checkCodeInput()) {
             return;
             return;
         }
         }
 
 
@@ -226,6 +229,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
 
 
     /**
     /**
      * 验证码获取失败
      * 验证码获取失败
+     *
      * @param o
      * @param o
      */
      */
     @Override
     @Override
@@ -250,7 +254,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
         }
         }
-        if(loginEty != null) {
+        if (loginEty != null) {
             SpUtils.saveToken(activity, loginEty.getToken());
             SpUtils.saveToken(activity, loginEty.getToken());
             DataUtil.getInstance().setUserEntity(loginEty.getUser());
             DataUtil.getInstance().setUserEntity(loginEty.getUser());
         }
         }
@@ -303,9 +307,9 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
      */
      */
     @Override
     @Override
     public boolean dispatchKeyEvent(KeyEvent event) {
     public boolean dispatchKeyEvent(KeyEvent event) {
-        if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER){
+        if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
             InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
             InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
-            if(inputMethodManager.isActive()){
+            if (inputMethodManager.isActive()) {
                 inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
                 inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
                 return true;
                 return true;
             }
             }
@@ -324,7 +328,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
     @Override
     @Override
     protected void onDestroy() {
     protected void onDestroy() {
         super.onDestroy();
         super.onDestroy();
-        if(selfCountDownTimer != null){
+        if (selfCountDownTimer != null) {
             selfCountDownTimer.cancel();
             selfCountDownTimer.cancel();
         }
         }
     }
     }

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

@@ -97,10 +97,9 @@
     <LinearLayout
     <LinearLayout
         android:id="@+id/personalcenter_price_layout"
         android:id="@+id/personalcenter_price_layout"
         style="@style/style_item_container"
         style="@style/style_item_container"
-        android:layout_marginLeft="@dimen/content_padding_15"
-        android:layout_marginRight="@dimen/content_padding_15"
         android:layout_marginTop="-25dp"
         android:layout_marginTop="-25dp"
-        android:background="@drawable/x_shap_shadow_bg_rectgangle_white">
+        android:background="@color/white">
+      <!--  android:background="@drawable/x_shap_shadow_bg_rectgangle_white"-->
 
 
         <ImageView
         <ImageView
             style="@style/style_item_img"
             style="@style/style_item_img"

+ 14 - 11
app/src/main/res/layout/fgt_personalcenter_item_center_one.xml

@@ -2,10 +2,8 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_height="wrap_content"
-    android:layout_marginEnd="@dimen/content_padding_15"
-    android:layout_marginStart="@dimen/content_padding_13"
     android:layout_marginTop="@dimen/content_padding_15"
     android:layout_marginTop="@dimen/content_padding_15"
-    android:background="@drawable/x_shap_shadow_bg_rectgangle_white"
+    android:background="@color/white"
     android:orientation="vertical">
     android:orientation="vertical">
 
 
     <LinearLayout
     <LinearLayout
@@ -24,7 +22,7 @@
 
 
     </LinearLayout>
     </LinearLayout>
 
 
-    <View style="@style/style_item_line" />
+    <View style="@style/style_item_line_new" />
 
 
     <LinearLayout
     <LinearLayout
         android:id="@+id/account_task_layout"
         android:id="@+id/account_task_layout"
@@ -36,13 +34,13 @@
 
 
         <TextView
         <TextView
             style="@style/style_item_label"
             style="@style/style_item_label"
-            android:text="任务记录"/>
+            android:text="任务记录" />
 
 
         <TextView style="@style/style_item_end_next" />
         <TextView style="@style/style_item_end_next" />
 
 
     </LinearLayout>
     </LinearLayout>
 
 
-    <View style="@style/style_item_line" />
+    <View style="@style/style_item_line_new" />
 
 
     <LinearLayout
     <LinearLayout
         android:id="@+id/order_layout"
         android:id="@+id/order_layout"
@@ -50,16 +48,20 @@
 
 
         <ImageView
         <ImageView
             style="@style/style_item_img"
             style="@style/style_item_img"
-            android:src="@mipmap/personalc_ic_order_manager" />
+            android:src="@mipmap/order_manager" />
 
 
         <TextView
         <TextView
             style="@style/style_item_label"
             style="@style/style_item_label"
-            android:text="订单管理"/>
+            android:text="订单管理" />
 
 
-        <TextView style="@style/style_item_end_next" />
+        <TextView
+            style="@style/style_item_end_next"
+            android:visibility="gone" />
 
 
     </LinearLayout>
     </LinearLayout>
 
 
+    <View style="@style/style_item_line_new" />
+
     <View
     <View
         android:id="@+id/proxy_service_layout_line"
         android:id="@+id/proxy_service_layout_line"
         style="@style/style_item_line"
         style="@style/style_item_line"
@@ -76,7 +78,7 @@
 
 
         <TextView
         <TextView
             style="@style/style_item_label"
             style="@style/style_item_label"
-            android:text="代理服务"/>
+            android:text="代理服务" />
 
 
         <TextView style="@style/style_item_end_next" />
         <TextView style="@style/style_item_end_next" />
 
 
@@ -84,7 +86,8 @@
 
 
     <View
     <View
         android:id="@+id/proxy_game_account_layout_line"
         android:id="@+id/proxy_game_account_layout_line"
-        style="@style/style_item_line" />
+        style="@style/style_item_line"
+        android:visibility="gone"/>
 
 
     <LinearLayout
     <LinearLayout
         android:id="@+id/proxy_game_account_layout"
         android:id="@+id/proxy_game_account_layout"

+ 6 - 8
app/src/main/res/layout/fgt_personalcenter_item_center_two.xml

@@ -3,10 +3,8 @@
     android:layout_width="match_parent"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginBottom="@dimen/content_padding_15"
     android:layout_marginBottom="@dimen/content_padding_15"
-    android:layout_marginEnd="@dimen/content_padding_15"
-    android:layout_marginStart="@dimen/content_padding_15"
     android:layout_marginTop="@dimen/content_padding_13"
     android:layout_marginTop="@dimen/content_padding_13"
-    android:background="@drawable/x_shap_shadow_bg_rectgangle_white"
+    android:background="@color/white"
     android:orientation="vertical">
     android:orientation="vertical">
 
 
     <LinearLayout
     <LinearLayout
@@ -25,7 +23,7 @@
 
 
     </LinearLayout>
     </LinearLayout>
 
 
-    <View style="@style/style_item_line" />
+    <View style="@style/style_item_line_new" />
 
 
     <LinearLayout
     <LinearLayout
         android:id="@+id/feedbook_layout"
         android:id="@+id/feedbook_layout"
@@ -43,7 +41,7 @@
 
 
     </LinearLayout>
     </LinearLayout>
 
 
-    <View style="@style/style_item_line" />
+    <View style="@style/style_item_line_new" />
 
 
     <LinearLayout
     <LinearLayout
         android:id="@+id/faq_layout"
         android:id="@+id/faq_layout"
@@ -61,7 +59,7 @@
 
 
     </LinearLayout>
     </LinearLayout>
 
 
-    <View style="@style/style_item_line" />
+    <View style="@style/style_item_line_new" />
 
 
     <LinearLayout
     <LinearLayout
         android:id="@+id/recommend_friend_layout"
         android:id="@+id/recommend_friend_layout"
@@ -79,7 +77,7 @@
 
 
     </LinearLayout>
     </LinearLayout>
 
 
-    <View style="@style/style_item_line" />
+    <View style="@style/style_item_line_new" />
 
 
     <LinearLayout
     <LinearLayout
         android:id="@+id/version_layout"
         android:id="@+id/version_layout"
@@ -115,7 +113,7 @@
 
 
     </LinearLayout>
     </LinearLayout>
 
 
-    <View style="@style/style_item_line" />
+    <View style="@style/style_item_line_new" />
 
 
     <LinearLayout
     <LinearLayout
         android:id="@+id/change_layout"
         android:id="@+id/change_layout"

+ 10 - 1
app/src/main/res/layout/fgt_personalcenter_layout.xml

@@ -14,8 +14,17 @@
 
 
         <include layout="@layout/fgt_personalcenter_item_center_one" />
         <include layout="@layout/fgt_personalcenter_item_center_one" />
 
 
-        <include layout="@layout/fgt_personalcenter_item_center_two" />
+        <include
+            layout="@layout/fgt_personalcenter_item_center_two" />
 
 
+        <ImageView
+            android:id="@+id/iv_redpackage"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@mipmap/invition_redpackage"
+            android:layout_gravity="center_horizontal"
+            android:layout_marginBottom="30dp"
+            android:layout_marginTop="20dp"/>
     </LinearLayout>
     </LinearLayout>
 
 
 
 

+ 21 - 1
app/src/main/res/layout/homepage_act_layout.xml

@@ -78,11 +78,31 @@
             android:scaleType="fitXY"
             android:scaleType="fitXY"
             android:adjustViewBounds="true"/>
             android:adjustViewBounds="true"/>
     </com.kfzs.duanduan.view.DragRelativeLayout>
     </com.kfzs.duanduan.view.DragRelativeLayout>
+    <com.kfzs.duanduan.view.DragRelativeLayout
+        android:id="@+id/view_rob_duty"
+        android:layout_width="40dp"
+        android:layout_height="wrap_content"
+        android:paddingTop="@dimen/content_padding_10"
+        android:paddingBottom="@dimen/content_padding_10"
+        android:layout_alignParentStart="true"
+        android:layout_alignParentBottom="true"
+        android:layout_marginEnd="@dimen/content_padding_10"
+        android:layout_marginBottom="@dimen/content_padding_20"
+        android:gravity="center"
+        android:visibility="visible">
+        <ImageView
+            android:id="@+id/iv_rob_duty"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:scaleType="fitXY"
+            android:src="@mipmap/red_package_floatbtn"
+            android:adjustViewBounds="true"/>
+    </com.kfzs.duanduan.view.DragRelativeLayout>
     <TextView
     <TextView
         android:id="@+id/test_change_user"
         android:id="@+id/test_change_user"
         style="@style/style_button_small_yellow"
         style="@style/style_button_small_yellow"
         android:layout_width="wrap_content"
         android:layout_width="wrap_content"
-        android:layout_height="30dp"
+        android:layout_height="wrap_content"
         android:paddingStart="@dimen/content_padding_10"
         android:paddingStart="@dimen/content_padding_10"
         android:paddingEnd="@dimen/content_padding_10"
         android:paddingEnd="@dimen/content_padding_10"
         android:layout_margin="@dimen/content_padding_10"
         android:layout_margin="@dimen/content_padding_10"

+ 44 - 12
app/src/main/res/layout/xpersion_info_act_layout.xml

@@ -12,10 +12,8 @@
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginBottom="@dimen/content_padding_15"
         android:layout_marginBottom="@dimen/content_padding_15"
-        android:layout_marginEnd="@dimen/content_padding"
-        android:layout_marginStart="@dimen/content_padding"
         android:layout_marginTop="@dimen/content_padding"
         android:layout_marginTop="@dimen/content_padding"
-        android:background="@drawable/x_shap_shadow_bg_rectgangle_white"
+        android:background="@color/white"
         android:orientation="vertical">
         android:orientation="vertical">
 
 
         <LinearLayout
         <LinearLayout
@@ -38,7 +36,7 @@
 
 
         </LinearLayout>
         </LinearLayout>
 
 
-        <View style="@style/style_item_line" />
+        <View style="@style/style_item_line_3_0" />
 
 
         <LinearLayout
         <LinearLayout
             android:id="@+id/personal_info_name_container"
             android:id="@+id/personal_info_name_container"
@@ -55,7 +53,7 @@
 
 
         </LinearLayout>
         </LinearLayout>
 
 
-        <View style="@style/style_item_line" />
+        <View style="@style/style_item_line_3_0" />
 
 
         <LinearLayout style="@style/style_item_container">
         <LinearLayout style="@style/style_item_container">
 
 
@@ -66,12 +64,48 @@
 
 
             <TextView
             <TextView
                 android:id="@+id/personal_info_code"
                 android:id="@+id/personal_info_code"
+                style="@style/style_item_end_next"
+                android:textIsSelectable="true" />
+
+        </LinearLayout>
+
+        <View style="@style/style_item_line_3_0" />
+
+        <LinearLayout
+            android:id="@+id/llayout_sex"
+            style="@style/style_item_container">
+
+            <TextView
+                style="@style/style_item_label"
+                android:text="@string/sex" />
+
+
+            <TextView
+                android:id="@+id/tv_sex"
+                style="@style/style_item_end_next"
                 android:textIsSelectable="true"
                 android:textIsSelectable="true"
-                style="@style/style_item_end" />
+                android:layout_width="150dp"/>
+
+        </LinearLayout>
+
+        <View style="@style/style_item_line_3_0" />
+
+        <LinearLayout style="@style/style_item_container"
+            android:id="@+id/llayout_birthday">
+
+            <TextView
+                style="@style/style_item_label"
+                android:text="@string/birth_day" />
+
+
+            <TextView
+                android:id="@+id/tv_birthday"
+                style="@style/style_item_end_next"
+                android:textIsSelectable="true" />
 
 
         </LinearLayout>
         </LinearLayout>
 
 
-        <View style="@style/style_item_line" />
+        <View style="@style/style_item_line_3_0" />
 
 
         <LinearLayout
         <LinearLayout
             android:id="@+id/personal_info_qr_container"
             android:id="@+id/personal_info_qr_container"
@@ -111,10 +145,8 @@
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginBottom="@dimen/content_padding_15"
         android:layout_marginBottom="@dimen/content_padding_15"
-        android:layout_marginEnd="@dimen/content_padding"
-        android:layout_marginStart="@dimen/content_padding"
         android:layout_marginTop="@dimen/content_padding"
         android:layout_marginTop="@dimen/content_padding"
-        android:background="@drawable/x_shap_shadow_bg_rectgangle_white"
+        android:background="@color/white"
         android:orientation="vertical">
         android:orientation="vertical">
 
 
         <LinearLayout
         <LinearLayout
@@ -132,7 +164,7 @@
         </LinearLayout>
         </LinearLayout>
 
 
 
 
-        <View style="@style/style_item_line" />
+        <View style="@style/style_item_line_3_0" />
 
 
         <LinearLayout
         <LinearLayout
             android:id="@+id/personal_info_wx_container"
             android:id="@+id/personal_info_wx_container"
@@ -149,7 +181,7 @@
         </LinearLayout>
         </LinearLayout>
 
 
 
 
-        <View style="@style/style_item_line" />
+        <View style="@style/style_item_line_3_0" />
 
 
         <LinearLayout
         <LinearLayout
             android:id="@+id/personal_info_authentication_container"
             android:id="@+id/personal_info_authentication_container"

+ 30 - 1
app/src/main/res/values/dd_styles.xml

@@ -14,7 +14,7 @@
         <item name="android:textSize">@dimen/text_size_15</item>
         <item name="android:textSize">@dimen/text_size_15</item>
     </style>
     </style>
 
 
-    <style name="style_button_purple" >
+    <style name="style_button_purple">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">40dp</item>
         <item name="android:layout_height">40dp</item>
         <item name="android:gravity">center</item>
         <item name="android:gravity">center</item>
@@ -23,6 +23,7 @@
         <item name="android:layout_margin">@dimen/dp_10</item>
         <item name="android:layout_margin">@dimen/dp_10</item>
         <item name="android:textSize">@dimen/text_size_15</item>
         <item name="android:textSize">@dimen/text_size_15</item>
     </style>
     </style>
+
     <style name="style_button" parent="button">
     <style name="style_button" parent="button">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">40dp</item>
         <item name="android:layout_height">40dp</item>
@@ -368,6 +369,32 @@
         <item name="android:layout_marginStart">@dimen/content_padding</item>
         <item name="android:layout_marginStart">@dimen/content_padding</item>
         <item name="android:background">@color/white_bg_line</item>
         <item name="android:background">@color/white_bg_line</item>
     </style>
     </style>
+    <style name="style_item_line_3_0">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">1px</item>
+        <item name="android:layout_marginStart">20dp</item>
+        <item name="android:background">@color/white_bg_line</item>
+    </style>
+    <style name="style_item_line_new">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">1px</item>
+        <item name="android:layout_marginEnd">@dimen/content_padding</item>
+        <item name="android:layout_marginStart">@dimen/content_padding_left_new</item>
+        <item name="android:background">@color/white_bg_line</item>
+    </style>
+
+    <style name="style_item_line_full">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">1px</item>
+        <item name="android:background">@color/white_bg_line</item>
+    </style>
+
+    <style name="style_item_line_margin_left">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">1px</item>
+        <item name="android:layout_marginStart">@dimen/content_padding</item>
+        <item name="android:background">@color/white_bg_line</item>
+    </style>
 
 
     <style name="style_item_end">
     <style name="style_item_end">
         <item name="android:layout_width">wrap_content</item>
         <item name="android:layout_width">wrap_content</item>
@@ -381,10 +408,12 @@
         <item name="android:drawableEnd">@mipmap/x_ic_next</item>
         <item name="android:drawableEnd">@mipmap/x_ic_next</item>
         <item name="android:drawablePadding">7dp</item>
         <item name="android:drawablePadding">7dp</item>
     </style>
     </style>
+
     <style name="style_empty_text">
     <style name="style_empty_text">
         <item name="android:textColor">@color/G</item>
         <item name="android:textColor">@color/G</item>
         <item name="android:textSize">15sp</item>
         <item name="android:textSize">15sp</item>
     </style>
     </style>
+
     <style name="style_tab">
     <style name="style_tab">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">36dp</item>
         <item name="android:layout_height">36dp</item>

+ 1 - 0
app/src/main/res/values/dimens.xml

@@ -6,6 +6,7 @@
     <dimen name="activity_vertical_margin">16dp</dimen>
     <dimen name="activity_vertical_margin">16dp</dimen>
     <dimen name="about_text_margin_10">10dp</dimen>
     <dimen name="about_text_margin_10">10dp</dimen>
     <dimen name="content_padding">12dp</dimen>
     <dimen name="content_padding">12dp</dimen>
+    <dimen name="content_padding_left_new">45dp</dimen>
 
 
     <dimen name="frg_app_details_icon">60dp</dimen>
     <dimen name="frg_app_details_icon">60dp</dimen>
     <dimen name="frg_app_details_install_btn">56dp</dimen>
     <dimen name="frg_app_details_install_btn">56dp</dimen>

+ 24 - 0
app/src/main/res/values/strings.xml

@@ -56,4 +56,28 @@
 
 
 
 
     <string name="accessibility_description">需要权限判断任务是否成功</string>
     <string name="accessibility_description">需要权限判断任务是否成功</string>
+
+
+    <string name="red_package_change">兑换</string>
+    <string name="red_change_code">请输入你的邀请码</string>
+    <string name="change_red_now">立即兑换</string>
+    <string name="sex">性别</string>
+    <string name="birthday">生日</string>
+    <string name="birth_day">出生日期</string>
+    <string name="male">男</string>
+    <string name="female">女</string>
+    <string name="choice_birthday">点击选择生日</string>
+    <string name="chice_sex_completed">完成</string>
+
+    <string name="timepicker_year">年</string>
+    <string name="timepicker_month">月</string>
+    <string name="timepicker_day">日</string>
+    <string name="timepicker_hour">时</string>
+    <string name="timepicker_min">分</string>
+    <string name="timepicker_title">选择时间</string>
+    <string name="timepicker_finish">完成</string>
+    <string name="timepicker_title_default">设置</string>
+    <string name="input_invitation_code">请输入邀请码</string>
+    <string name="congratunation">恭喜你!</string>
+    <string name="cancel">取消</string>
 </resources>
 </resources>

+ 16 - 0
app/src/main/res/values/styles.xml

@@ -25,4 +25,20 @@
 
 
     <!-- Base application theme. -->
     <!-- Base application theme. -->
 
 
+
+    <style name="Theme.Light.NoTitle.Dialog" parent="@android:style/Theme.Dialog">
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowIsFloating">true</item>
+        <item name="android:windowFrame">@null</item>
+    </style>
+
+    <style name="Theme.Light.NoTitle.NoShadow.Dialog" parent="Theme.Light.NoTitle.Dialog">
+        <item name="android:backgroundDimEnabled">false</item>
+    </style>
+
+    <style name="Rising" parent="@android:style/Animation">
+        <item name="android:windowEnterAnimation">@anim/slide_in_bottom</item>
+        <item name="android:windowExitAnimation">@anim/slide_out_bottom</item>
+    </style>
 </resources>
 </resources>