liujiangyao лет назад: 7
Родитель
Сommit
333d5a124d
100 измененных файлов с 6503 добавлено и 1134 удалено
  1. 1 1
      app/build.gradle
  2. BIN
      app/libs/com.kfzs.safe.aar
  3. 4 1
      app/src/main/AndroidManifest.xml
  4. 3 2
      app/src/main/java/com/kfzs/duanduan/ActDownloadMgr.java
  5. 5 4
      app/src/main/java/com/kfzs/duanduan/ActWeb.java
  6. 1 0
      app/src/main/java/com/kfzs/duanduan/event/EventTypes.java
  7. 265 0
      app/src/main/java/com/kfzs/duanduan/fragment/FgtAskgetmoney.java
  8. 42 13
      app/src/main/java/com/kfzs/duanduan/fragment/FgtFind.java
  9. 1 0
      app/src/main/java/com/kfzs/duanduan/fragment/FgtFindChild.java
  10. 9 7
      app/src/main/java/com/kfzs/duanduan/fragment/FgtFriendExtractPage.java
  11. 169 17
      app/src/main/java/com/kfzs/duanduan/fragment/FgtPersonalCenter.java
  12. 271 0
      app/src/main/java/com/kfzs/duanduan/fragment/FgtRouser.java
  13. 345 22
      app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java
  14. 2 0
      app/src/main/java/com/kfzs/duanduan/mine/GiftpackListAdapter.java
  15. 82 0
      app/src/main/java/com/kfzs/duanduan/mine/ShenheAdapter.java
  16. 10 8
      app/src/main/java/com/kfzs/duanduan/react/MainTab.java
  17. 8 0
      app/src/main/java/com/kfzs/duanduan/react/TabsHelper.java
  18. 5 6
      app/src/main/java/com/kfzs/duanduan/utils/net/APIRequest.java
  19. 6 8
      app/src/main/java/com/kfzs/duanduan/utils/net/APIRequestV2.java
  20. 1 1
      app/src/main/java/com/kfzs/duanduan/view/ViewPagerAutoHeigh.java
  21. 2 5
      app/src/main/java/com/sheep/gamegroup/absBase/AbsChooseImageActivity.java
  22. 148 0
      app/src/main/java/com/sheep/gamegroup/dateview/DataPickerDialog.java
  23. 284 0
      app/src/main/java/com/sheep/gamegroup/dateview/DatePickerDialog.java
  24. 202 0
      app/src/main/java/com/sheep/gamegroup/dateview/DateUtil.java
  25. 12 0
      app/src/main/java/com/sheep/gamegroup/dateview/LoopListener.java
  26. 25 0
      app/src/main/java/com/sheep/gamegroup/dateview/LoopRunnable.java
  27. 64 0
      app/src/main/java/com/sheep/gamegroup/dateview/LoopTimerTask.java
  28. 403 0
      app/src/main/java/com/sheep/gamegroup/dateview/LoopView.java
  29. 32 0
      app/src/main/java/com/sheep/gamegroup/dateview/LoopViewGestureListener.java
  30. 61 0
      app/src/main/java/com/sheep/gamegroup/dateview/MTimer.java
  31. 35 0
      app/src/main/java/com/sheep/gamegroup/dateview/MessageHandler.java
  32. 56 0
      app/src/main/java/com/sheep/gamegroup/dateview/MyTimerTask.java
  33. 128 0
      app/src/main/java/com/sheep/gamegroup/dateview/TimePickerDialog.java
  34. 97 71
      app/src/main/java/com/sheep/gamegroup/helper/TaskHelper.java
  35. 150 39
      app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java
  36. 14 22
      app/src/main/java/com/sheep/gamegroup/model/api/BaseMessageConverter.java
  37. 22 0
      app/src/main/java/com/sheep/gamegroup/model/api/RedPackageMoney.java
  38. 38 0
      app/src/main/java/com/sheep/gamegroup/model/entity/CashAwarsEntity.java
  39. 9 0
      app/src/main/java/com/sheep/gamegroup/model/entity/Friend.java
  40. 22 2
      app/src/main/java/com/sheep/gamegroup/model/entity/HomeListEntity.java
  41. 634 0
      app/src/main/java/com/sheep/gamegroup/model/entity/RobTask.java
  42. 154 0
      app/src/main/java/com/sheep/gamegroup/model/entity/RouserArticlesEntity.java
  43. 92 0
      app/src/main/java/com/sheep/gamegroup/model/entity/RouserEntity.java
  44. 47 0
      app/src/main/java/com/sheep/gamegroup/model/entity/TaskAuditEntity.java
  45. 12 3
      app/src/main/java/com/sheep/gamegroup/model/entity/TaskChild.java
  46. 167 11
      app/src/main/java/com/sheep/gamegroup/model/entity/TaskEty.java
  47. 19 0
      app/src/main/java/com/sheep/gamegroup/model/entity/TaskReleaseEty.java
  48. 50 19
      app/src/main/java/com/sheep/gamegroup/model/entity/UserEntity.java
  49. 46 28
      app/src/main/java/com/sheep/gamegroup/model/entity/Version.java
  50. 2 0
      app/src/main/java/com/sheep/gamegroup/presenter/LoginPresenter.java
  51. 1 0
      app/src/main/java/com/sheep/gamegroup/presenter/PhoneContract.java
  52. 52 8
      app/src/main/java/com/sheep/gamegroup/presenter/PhonePresenter.java
  53. 1 1
      app/src/main/java/com/sheep/gamegroup/presenter/TaskListPresenter.java
  54. 1 1
      app/src/main/java/com/sheep/gamegroup/presenter/TryMakeMoneyPresenter.java
  55. 34 3
      app/src/main/java/com/sheep/gamegroup/usage/AppUsageManager.java
  56. 202 3
      app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java
  57. 3 0
      app/src/main/java/com/sheep/gamegroup/util/DataUtil.java
  58. 39 4
      app/src/main/java/com/sheep/gamegroup/util/GlideImageLoader.java
  59. 16 5
      app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
  60. 39 2
      app/src/main/java/com/sheep/gamegroup/util/LogUtil.java
  61. 11 0
      app/src/main/java/com/sheep/gamegroup/util/MyDbManager.java
  62. 30 0
      app/src/main/java/com/sheep/gamegroup/util/NestedScrollView.java
  63. 4 1
      app/src/main/java/com/sheep/gamegroup/util/TestUtil.java
  64. 450 83
      app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java
  65. 54 0
      app/src/main/java/com/sheep/gamegroup/view/activity/ActAudit.java
  66. 13 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActCreditCardTaskList.java
  67. 6 5
      app/src/main/java/com/sheep/gamegroup/view/activity/ActCreditCardWeb.java
  68. 1 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActFindGame.java
  69. 298 69
      app/src/main/java/com/sheep/gamegroup/view/activity/ActFindInformation.java
  70. 13 16
      app/src/main/java/com/sheep/gamegroup/view/activity/ActGameAgencyRecharge.java
  71. 4 4
      app/src/main/java/com/sheep/gamegroup/view/activity/ActGuideDeblocked.java
  72. 4 4
      app/src/main/java/com/sheep/gamegroup/view/activity/ActGuideOnHook.java
  73. 1 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActLoadH5.java
  74. 11 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActMiDong.java
  75. 1 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActNewAboutUs.java
  76. 1 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActNotice.java
  77. 22 13
      app/src/main/java/com/sheep/gamegroup/view/activity/ActWeb.java
  78. 14 5
      app/src/main/java/com/sheep/gamegroup/view/activity/ActXinwanWeb.java
  79. 21 400
      app/src/main/java/com/sheep/gamegroup/view/activity/AskGetMoneyAct.java
  80. 9 0
      app/src/main/java/com/sheep/gamegroup/view/activity/GamemakeMoneyAct.java
  81. 2 0
      app/src/main/java/com/sheep/gamegroup/view/activity/LoginAct.java
  82. 84 5
      app/src/main/java/com/sheep/gamegroup/view/activity/PersonalInfoAct.java
  83. 28 22
      app/src/main/java/com/sheep/gamegroup/view/activity/PhoneAct.java
  84. 7 0
      app/src/main/java/com/sheep/gamegroup/view/activity/SignCardAct.java
  85. 2 0
      app/src/main/java/com/sheep/gamegroup/view/activity/SplashAct.java
  86. 266 99
      app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java
  87. 5 8
      app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAddQQAct.java
  88. 5 10
      app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailCreditCardAct.java
  89. 3 0
      app/src/main/java/com/sheep/gamegroup/view/activity/TaskListAct.java
  90. 9 0
      app/src/main/java/com/sheep/gamegroup/view/activity/TryMakeMoneyact.java
  91. 4 4
      app/src/main/java/com/sheep/gamegroup/view/activity/WebviewAct.java
  92. 7 18
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpHomeListGrideview.java
  93. 5 0
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpTryMakemoney.java
  94. 33 13
      app/src/main/java/com/sheep/gamegroup/view/adapter/NewbieTaskAdp.java
  95. 56 4
      app/src/main/java/com/sheep/gamegroup/view/adapter/TaskListItemAdp.java
  96. 33 24
      app/src/main/java/com/sheep/gamegroup/view/adapter/TryMakeMoneyAdp.java
  97. 4 4
      app/src/main/java/com/sheep/gamegroup/view/customview/WebViewForScrollView.java
  98. 118 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtAskGetMoneyFriend.java
  99. 219 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtAskGetMoneyRank.java
  100. 0 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtAudit.java

+ 1 - 1
app/build.gradle

@@ -154,7 +154,7 @@ dependencies {
     compile 'org.xutils:xutils:3.5.0'
     compile 'com.mylhyl:acp:1.1.7'
 
-    //    compile 'cn.yipianfengye.android:zxing-library:2.2'
+    compile 'cn.yipianfengye.android:zxing-library:2.2'
     compile 'com.github.huburt-Hu:NewbieGuide:v1.2.0'
     debugCompile 'com.android.support:multidex:1.0.1'
 

BIN
app/libs/com.kfzs.safe.aar


+ 4 - 1
app/src/main/AndroidManifest.xml

@@ -191,6 +191,8 @@
             android:launchMode="singleTask"/>
         <activity android:name="com.sheep.gamegroup.view.activity.TaskListAct"
             android:screenOrientation="portrait"/>
+        <activity android:name="com.sheep.gamegroup.view.activity.ActAudit"
+            android:screenOrientation="portrait"/>
         <activity android:name="com.sheep.gamegroup.view.activity.GameTaskOrderListAct"
             android:screenOrientation="portrait"/>
         <activity android:name="com.sheep.gamegroup.view.activity.WithdrawalListAct"
@@ -561,7 +563,8 @@
         <activity android:name="com.sheep.gamegroup.view.activity.ActFindGame"
             android:screenOrientation="portrait"/>
         <activity android:name="com.sheep.gamegroup.view.activity.ActFindInformation"
-            android:screenOrientation="portrait"/>
+            android:screenOrientation="portrait"
+            android:configChanges="orientation|screenSize|keyboardHidden"/>
         <activity android:name="com.sheep.gamegroup.view.activity.ActReservation"
             android:screenOrientation="portrait"/>
         <activity android:name="com.sheep.gamegroup.view.activity.ActGameAgencyRecharge"

+ 3 - 2
app/src/main/java/com/kfzs/duanduan/ActDownloadMgr.java

@@ -29,6 +29,7 @@ import com.kfzs.duanduan.utils.dlg.HelperUtils;
 import com.kfzs.duanduan.utils.dlg.TitleBarUtils;
 import com.kfzs.duanduan.view.DialogStorageLow;
 import com.kfzs.duanduan.view.KFProgressButton;
+import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 
@@ -56,7 +57,7 @@ public class ActDownloadMgr extends BaseCompatActivity {
     ListView lvDownloadMgr;
 
     @BindView(R.id.empty_view)
-    View tvEmptyView;
+    View empty_view;
 
     /**
      * Download manager list view data's adapter
@@ -409,7 +410,7 @@ public class ActDownloadMgr extends BaseCompatActivity {
     }
 
     private void showDownloadTaskList(boolean isShow) {
-        tvEmptyView.setVisibility(isShow ? View.GONE : View.VISIBLE);
+        CommonUtil.getInstance().updateEmptyView(empty_view, !isShow);
         lvDownloadMgr.setVisibility(!isShow ? View.GONE : View.VISIBLE);
     }
     @Download.onPre void onPre(DownloadTask task) {

+ 5 - 4
app/src/main/java/com/kfzs/duanduan/ActWeb.java

@@ -6,11 +6,12 @@ import android.os.Bundle;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
+import com.tencent.smtt.sdk.WebChromeClient;
+import com.tencent.smtt.sdk.WebSettings;
+import com.tencent.smtt.sdk.WebView;
+import com.tencent.smtt.sdk.WebViewClient;
+
 import android.webkit.JavascriptInterface;
-import android.webkit.WebChromeClient;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
 import android.widget.ImageButton;
 import android.widget.TextView;
 

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

@@ -41,4 +41,5 @@ public enum EventTypes {
     REFRESH_MING_DONG,//刷新界面
 
     REFRESH_XIAOMI_GAME_LIST,//刷新界面
+    FGT_SHEEP_REFRESH_H , //刷新fgtSmallSheep高度
 }

+ 265 - 0
app/src/main/java/com/kfzs/duanduan/fragment/FgtAskgetmoney.java

@@ -0,0 +1,265 @@
+package com.kfzs.duanduan.fragment;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.design.widget.TabLayout;
+import android.support.v4.view.ViewPager;
+import android.support.v4.widget.NestedScrollView;
+import android.text.TextUtils;
+import android.view.MotionEvent;
+import android.view.View;
+import com.tencent.smtt.sdk.WebView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSONObject;
+import com.kfzs.duanduan.BaseCompatFragment;
+import com.kfzs.duanduan.mine.GiftpackListAdapter;
+import com.kfzs.duanduan.view.ViewPagerAutoHeigh;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.FriendAndAwardEntity;
+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.FastJsonUtils;
+import com.sheep.gamegroup.util.StringUtils;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.gamegroup.view.fragment.FgtAskGetMoneyFriend;
+import com.sheep.gamegroup.view.fragment.FgtAskGetMoneyRank;
+import com.sheep.jiuyan.samllsheep.BuildConfig;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
+import com.sunfusheng.marqueeview.MarqueeView;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+import butterknife.Unbinder;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.functions.Action1;
+import rx.schedulers.Schedulers;
+
+import static com.sheep.gamegroup.util.UMConfigUtils.Event.QR_COPY;
+
+/**
+ * Created by ljy on 2018/8/20.
+ */
+
+public class FgtAskgetmoney extends BaseCompatFragment {
+    @BindView(R.id.tv_size)
+    TextView tvSize;
+    @BindView(R.id.tv_money)
+    TextView tvMoney;
+    @BindView(R.id.ask_bg)
+    WebView ask_bg;
+    @BindView(R.id.ask_top_1)
+    View ask_top_1;
+    @BindView(R.id.ask_top_2)
+    View ask_top_2;
+    @BindView(R.id.ask_award_info)
+    MarqueeView ask_award_info;
+    @BindView(R.id.ask_scroll_view)
+    NestedScrollView scrollView;
+    @BindView(R.id.indicator)
+    TabLayout indicator;
+    @BindView(R.id.pager)
+    ViewPagerAutoHeigh pager;
+    @BindView(R.id.my_invitation_tv)
+    TextView my_invitation_tv;
+    @BindView(R.id.copy_my_invitation_tv)
+    TextView copy_my_invitation_tv;
+
+    private FriendAndAwardEntity mEntity;
+    Unbinder unbinder;
+    private Activity activity;
+
+    @Override
+    protected void initView(Bundle savedInstanceState) {
+        setContentView(R.layout.x_ask_getmoney_act_layout);
+        activity = getActivity();
+        unbinder = ButterKnife.bind(this, mContentView);
+
+        TitleBarUtils.getInstance()
+                .setTitle(mContentView, "邀请赚钱")
+                .setTitleListen(mContentView,0,null);
+        String content = "<!DOCTYPEhtml>\n" +
+                "<html>\n" +
+                "  <head>\n" +
+                "    <title>HTML字符串</title>\n" +
+                "    <metahttp-equivmetahttp-equiv=\"content-type\" content=\"text/html;charset=utf-8\">\n" +
+                "    <meta name=\"viewport\" content=\"width=" + G.WIDTH + ", user-scalable=no\">\n" +
+                "    <style type=\"text/css\">\n" +
+                "      body {\n" +
+                "        margin: 0;\n" +
+                "        padding: 0;\n" +
+                "      }\n" +
+                "      img {\n" +
+                "        padding: 0;\n" +
+                "        margin: 0;\n" +
+                "      }\n" +
+                "    </style>\n" +
+                "  </head>\n" +
+                "  <body>\n" +
+                "    <img src=\"http://cdngame.kuaifazs.com/ask_bg2.png\" width=\"100%\">\n" +
+                "  </body>\n" +
+                "</html>";
+        ask_bg.getSettings().setDefaultTextEncodingName("UTF-8");
+        ask_bg.loadData(content, "text/html", "UTF-8");
+//                16,18,19
+        LinearLayout.LayoutParams layoutParams1 = (LinearLayout.LayoutParams) ask_top_1.getLayoutParams();
+        layoutParams1.height = G.WIDTH * 690 / 625;
+        ask_top_1.setLayoutParams(layoutParams1);
+        LinearLayout.LayoutParams layoutParams2 = (LinearLayout.LayoutParams) ask_top_2.getLayoutParams();
+        layoutParams2.height = G.WIDTH * 112 / 625;
+        ask_top_2.setLayoutParams(layoutParams2);
+
+        showViewpage();
+
+        initData();
+
+        initListener();
+
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+    }
+
+    public void initListener() {
+        scrollView.setOnTouchListener(new View.OnTouchListener() {
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+                switch (event.getAction()) {
+                    case MotionEvent.ACTION_DOWN:
+                        if (ask_award_info != null) {
+                            //开始滚动
+                            ask_award_info.stopFlipping();
+                        }
+                        break;
+                    case MotionEvent.ACTION_UP:
+                    default:
+                        if (ask_award_info != null) {
+                            //开始滚动
+                            ask_award_info.startFlipping();
+                        }
+                        break;
+                }
+                return false;
+            }
+        });
+    }
+
+    private UserEntity userEntity;
+
+    public void initData() {
+        ViewUtil.newInstance().showProgress(activity);
+        SheepApp.getInstance().getNetComponent().getApiService().FriendCountAndAward()
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        ViewUtil.newInstance().hideProgress(activity);
+                        if(BuildConfig.DEBUG)
+                            G.showToast(baseMessage);
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        if(baseMessage!=null){
+                            mEntity = FastJsonUtils.toBean( JSONObject.toJSONString(baseMessage.getData()),FriendAndAwardEntity.class);
+                            ViewUtil.newInstance().hideProgress(activity);
+                            activity.runOnUiThread(new Runnable() {
+                                @Override
+                                public void run() {
+                                    tvSize.setText(mEntity.getFriend_count() + "");
+                                    tvMoney.setText(mEntity.getAward());
+                                }
+                            });
+                        }else{
+                            onError(baseMessage);
+                        }
+
+                    }
+                });
+        CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
+            @Override
+            public void call(UserEntity result) {
+                if (result != null) {
+                    userEntity = result;
+                    String audit_total_audit = String.format(activity.getResources().getString(R.string.my_invitation_str), userEntity.getInvitation_code());
+                    my_invitation_tv.setText(audit_total_audit + "");
+                }
+            }
+        });
+    }
+
+
+
+    @Override
+    public void onStop() {
+        super.onStop();
+
+        if (ask_award_info != null) {
+            //停止滚动
+            ask_award_info.stopFlipping();
+        }
+    }
+
+    //显示分享对话框
+    public void showShareView() {
+        String url = userEntity.getShareLink();
+        String description = mEntity.getShare_desc();
+        ViewUtil.showShareDialog(activity, url, description);
+    }
+
+    public static final String[] tabNames = {"排行榜", "好友列表"};
+    private GiftpackListAdapter mAdapter;
+
+    private void showViewpage() {
+        mAdapter = new GiftpackListAdapter(getChildFragmentManager(), activity.getApplicationContext());
+        mAdapter.add(new FgtAskGetMoneyRank(), tabNames[0]);
+        mAdapter.add(new FgtAskGetMoneyFriend(), tabNames[1]);
+        pager.setOffscreenPageLimit(2);
+        pager.setAdapter(mAdapter);
+        indicator.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(pager));
+        pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+            @Override
+            public void onPageScrolled(int i, float v, int i1) {
+
+            }
+
+            @Override
+            public void onPageSelected(int i) {
+                pager.reSetHeight();
+            }
+
+            @Override
+            public void onPageScrollStateChanged(int i) {
+
+            }
+        });
+
+        indicator.setupWithViewPager(pager);
+        CommonUtil.getInstance().reflex(indicator, activity);
+    }
+
+    @OnClick({R.id.copy_my_invitation_tv, R.id.ask_invite_tv})
+    public void onViewClicked(View view) {
+        switch (view.getId()) {
+            case R.id.copy_my_invitation_tv:
+                if(TextUtils.isEmpty(my_invitation_tv.getText().toString()))
+                    return;
+                QR_COPY.onEvent();
+                StringUtils.CopyText(userEntity.getInvitation_code()+"");
+                G.showToast("复制邀请码成功");
+                break;
+            case R.id.ask_invite_tv:
+                showShareView();
+                break;
+        }
+    }
+}

+ 42 - 13
app/src/main/java/com/kfzs/duanduan/fragment/FgtFind.java

@@ -4,6 +4,7 @@ import android.app.Activity;
 import android.os.Bundle;
 import android.support.design.widget.TabLayout;
 import android.support.v4.view.ViewPager;
+import android.text.TextUtils;
 
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.mine.GiftpackListAdapter;
@@ -12,6 +13,7 @@ import com.sheep.gamegroup.model.entity.FindTag;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
+import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -24,6 +26,7 @@ import java.util.List;
 import butterknife.BindView;
 import butterknife.ButterKnife;
 import rx.android.schedulers.AndroidSchedulers;
+import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.FIND_TAG;
@@ -35,6 +38,7 @@ import static com.sheep.gamegroup.util.UMConfigUtils.Event.FIND_TAG;
  */
 public class FgtFind extends BaseCompatFragment {
     private Activity activity;
+
     @Override
     protected void initView(Bundle savedInstanceState) {
         setContentView(R.layout.fgt_find);
@@ -49,7 +53,10 @@ public class FgtFind extends BaseCompatFragment {
     @BindView(R.id.pager)
     ViewPager pager;
 
+    private int awaken_on;//1显示
+
     private GiftpackListAdapter mAdapter;
+
     private void initView() {
         mAdapter = new GiftpackListAdapter(getFragmentManager(), SheepApp.getInstance());
         mAdapter.add(FgtFindChild.newInstance(0), "全部");
@@ -74,29 +81,32 @@ public class FgtFind extends BaseCompatFragment {
         });
         CommonUtil.getInstance().reflex(indicator, activity);
     }
+
     private void initData() {
         //尝试获取缓存数据
         List<FindTag> newList = DataUtil.getInstance().getCacheList(ApiKey.articles_tags, FindTag.class);
         loadList(newList);
         initNetData();
     }
+
     private int onResumeCount = 0;
+
     @Override
     public void onResume() {
         super.onResume();
-        if(list.isEmpty() && onResumeCount != 0)//非第一次时,并且没有数据时调用该接口
+        if (list.isEmpty() && onResumeCount != 0)//非第一次时,并且没有数据时调用该接口
             initNetData();
         onResumeCount++;
     }
 
-    private void initNetData(){
+    private void initNetData() {
         SheepApp.getInstance().getNetComponent().getApiService().getFindTagList()
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
                     @Override
                     public void onNext(BaseMessage baseMessage) {
-                        if(list.isEmpty()) {//无数据时加载网络获取的新数据,否则不加载新数据
+                        if (list.isEmpty()) {//无数据时加载网络获取的新数据,否则不加载新数据
                             List<FindTag> newList = baseMessage.getDatas(FindTag.class);
                             loadList(newList);
                         }
@@ -104,13 +114,14 @@ public class FgtFind extends BaseCompatFragment {
 
                     @Override
                     public void onError(BaseMessage baseMessage) {
-                            G.showToast(baseMessage);
+                        G.showToast(baseMessage);
                     }
                 });
     }
+
     //没有添加数据返回true
-    private void loadList(List<FindTag> newList){
-        if(!ListUtil.isEmpty(newList)){
+    private void loadList(List<FindTag> newList) {
+        if (!ListUtil.isEmpty(newList)) {
             list.clear();
             ListUtil.addAll(list, newList);
             loadMore();
@@ -118,14 +129,32 @@ public class FgtFind extends BaseCompatFragment {
     }
 
     private List<FindTag> list = ListUtil.emptyList();
-    private void loadMore(){
-        for (FindTag findLabel : list) {
-            mAdapter.add(FgtFindChild.newInstance(findLabel.getId()), findLabel.getName());
-        }
-        mAdapter.notifyDataSetChanged();
-        CommonUtil.getInstance().reflex(indicator, activity);
-        pager.setCurrentItem(position);
+
+    private void loadMore() {
+
+        CommonUtil.getInstance().initUrlConfigByNet("awaken_on", new Action1<String>() {
+            @Override
+            public void call(String url) {
+                try {
+                    awaken_on = Integer.valueOf(url);
+                } catch (NumberFormatException e) {
+                    e.printStackTrace();
+                }
+
+                if (awaken_on == 1) {
+                    mAdapter.add(new FgtRouser(), "看点");
+                }
+                for (FindTag findLabel : list) {
+                    mAdapter.add(FgtFindChild.newInstance(findLabel.getId()), findLabel.getName());
+                }
+                mAdapter.notifyDataSetChanged();
+                CommonUtil.getInstance().reflex(indicator, activity);
+                pager.setCurrentItem(position);
+
+            }
+        });
     }
+
     private int position = 0;//默认选中第一个
 
 

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

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

+ 9 - 7
app/src/main/java/com/kfzs/duanduan/fragment/FgtFriendExtractPage.java

@@ -1,6 +1,7 @@
 package com.kfzs.duanduan.fragment;
 
 import android.app.Activity;
+import android.support.v4.app.Fragment;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.LinearLayout;
@@ -13,6 +14,7 @@ import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.TimeUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.view.activity.AskGetMoneyAct;
+import com.sheep.gamegroup.view.fragment.FgtAskGetMoneyFriend;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.BaseFragment;
@@ -42,11 +44,11 @@ public class FgtFriendExtractPage extends BaseFragment {
 
     private List<Friend> list = new ArrayList<>();
 
-    private Activity activity;
+    private Fragment activity;
     @Override
     public void onViewCreated() {
         ButterKnife.bind(this, mView);
-        activity = getActivity();
+        activity = getParentFragment();
         initData();
     }
 
@@ -68,11 +70,11 @@ public class FgtFriendExtractPage extends BaseFragment {
                 TextView friend_item_id = (TextView) view.getChildAt(j++);
                 friend_item_id.setText(friend.getInvitation_code());
                 TextView friend_item_name = (TextView) view.getChildAt(j++);
-                friend_item_name.setText(friend.getNickname());
+                friend_item_name.setText(TimeUtil.TimeStamp2Date(friend.getCreate_time(), "yyyy/MM/dd HH:mm"));
                 TextView friend_item_extract = (TextView) view.getChildAt(j++);
-                ViewUtil.setText(friend_item_extract, friend.getAward_amount());
+                friend_item_extract.setText(friend.getSource_page()+"");
                 TextView friend_item_time = (TextView) view.getChildAt(j);
-                friend_item_time.setText(TimeUtil.TimeStamp2Date(friend.getCreate_time(), "yyyy/MM/dd HH:mm"));
+                ViewUtil.setText(friend_item_time, friend.getAward_amount());
             } else {
                 line.setVisibility(View.INVISIBLE);
                 view.setVisibility(View.INVISIBLE);
@@ -99,8 +101,8 @@ public class FgtFriendExtractPage extends BaseFragment {
                             baseMessage.setMsg("您还没有邀请到好友");
                             onError(baseMessage);
                         } else {
-                            if (activity instanceof AskGetMoneyAct) {
-                                ((AskGetMoneyAct) activity).setFriendExtractCount(baseMessage.getTotal(), page, friendList.size());
+                            if (activity instanceof FgtAskGetMoneyFriend) {
+                                ((FgtAskGetMoneyFriend) activity).setFriendExtractCount(baseMessage.getTotal(), page, friendList.size());
                             }
                             list.addAll(friendList);
                             notifyDataSetChanged();

+ 169 - 17
app/src/main/java/com/kfzs/duanduan/fragment/FgtPersonalCenter.java

@@ -1,27 +1,42 @@
 package com.kfzs.duanduan.fragment;
 
+import android.app.ActionBar;
 import android.app.Activity;
 import android.graphics.Color;
+import android.graphics.drawable.BitmapDrawable;
 import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
 import android.text.TextUtils;
+import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
+import android.widget.PopupWindow;
+import android.widget.RelativeLayout;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSONObject;
+import com.google.gson.Gson;
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.utils.ApkUtils;
+import com.sheep.gamegroup.model.api.RedPackageMoney;
 import com.sheep.gamegroup.model.entity.AgentEntity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.UserEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.SysAppUtil;
+import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.view.activity.PersonalCenterAct;
+import com.sheep.gamegroup.view.dialog.DialogShare;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -35,12 +50,16 @@ import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.OnClick;
 import butterknife.Unbinder;
+import rx.android.schedulers.AndroidSchedulers;
 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_FAQ;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_SHARE;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_UPGRADE;
+import static com.sheep.gamegroup.util.ViewUtil.backgroundAlpha;
+import static com.sheep.gamegroup.util.ViewUtil.measureHeight;
 
 /**
  * 个人中心
@@ -64,23 +83,27 @@ public class FgtPersonalCenter extends BaseCompatFragment {
     TextView version_item_tv;
     @BindView(R.id.personal_center_version_new)
     View personal_center_version_new;
+    @BindView(R.id.iv_redpackage)
+    ImageView ivRedpackage;
     Unbinder unbinder;
 
-    private UserEntity userEntity;
+    public UserEntity userEntity;
     private String faqUrl;
     private String agentUrl;
 
     private Activity activity;
+
     @Override
     protected void initView(Bundle savedInstanceState) {
         setContentView(R.layout.fgt_personalcenter_layout);
         activity = getActivity();
-        mContentView.findViewById(R.id.ibtn_baseactivity_right).setOnClickListener( new View.OnClickListener() {
-                    @Override
-                    public void onClick(View view) {
-                        Jump2View.getInstance().goSetting(activity, null);
-                    }
-                });
+        mContentView.findViewById(R.id.ibtn_baseactivity_right).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Jump2View.getInstance().goSetting(activity, null);
+            }
+        });
+
         if (activity instanceof PersonalCenterAct) {
             mContentView.findViewById(R.id.txt_baseactivity_title).setVisibility(View.VISIBLE);
             mContentView.findViewById(R.id.img_baseactivity_title).setVisibility(View.VISIBLE);
@@ -101,17 +124,17 @@ public class FgtPersonalCenter extends BaseCompatFragment {
         CommonUtil.getInstance().getAgencyState(activity, new Action1<BaseMessage>() {
             @Override
             public void call(BaseMessage baseMessage) {
-                try{
-                    if (baseMessage != null){
+                try {
+                    if (baseMessage != null) {
                         AgentEntity agentEntity = baseMessage.getData(AgentEntity.class);
-                        if(agentEntity != null && agentEntity.getIs_banned() == 0){
+                        if (agentEntity != null && agentEntity.getIs_banned() == 0) {
                             //设置是否显示代理服务
                             proxy_service_layout_line.setVisibility(View.VISIBLE);
                             proxy_service_layout.setVisibility(View.VISIBLE);
                         }
 
                     }
-                }catch (Exception e){
+                } catch (Exception e) {
                     e.printStackTrace();
                 }
             }
@@ -145,11 +168,131 @@ public class FgtPersonalCenter extends BaseCompatFragment {
         // TODO: inflate a fragment view
         View rootView = super.onCreateView(inflater, container, savedInstanceState);
         unbinder = ButterKnife.bind(this, rootView);
-
         return rootView;
     }
 
     @Override
+    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+        isShowRedPackage();
+    }
+
+
+    /**
+     * @return 是否显示红包
+     */
+    private void isShowRedPackage() {
+        //  DataUtil.getInstance().是官方包吗();
+        if (userEntity == null) {
+            userEntity = DataUtil.getInstance().getUserEntity();
+        }
+        if (!(userEntity.getParent_code().equals("") || (userEntity.getCreate_time_line() < 2) || (userEntity.getPackage_cate() == 1))) {
+            ivRedpackage.setVisibility(View.GONE);
+        } else {
+            ivRedpackage.setVisibility(View.VISIBLE);
+        }
+    }
+
+    /**
+     * 兑换红包
+     *
+     * @param code ,邀请码
+     */
+    public void getRedPackage(String code, final PopupWindow popupWindow) {
+        SheepApp.getInstance().getNetComponent().getApiService().exchangeRedPackage(code)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        LogUtil.logI("0------" + new Gson().toJson(baseMessage));
+                        G.showToast(baseMessage.getMsg());
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        showRedPackageAfterInvitation(getActivity(), getView(), baseMessage);
+                        if (popupWindow.isShowing()) {
+                            popupWindow.dismiss();
+                        }
+
+                    }
+                });
+    }
+
+
+    /**
+     * 邀请成功后在个人资料显示领红包弹窗
+     *
+     * @param mActivity 当前Activity
+     */
+    public void showRedPackageAfterInvitation(final Activity mActivity, View viewAnchor, BaseMessage baseMessage) {
+        View view = LayoutInflater.from(mActivity).inflate(R.layout.dialog_redpackage_after_invitation, null, false);
+        TextView tvGetRedPackage = view.findViewById(R.id.tv_get_redpackage);
+        TextView tvMoney = view.findViewById(R.id.tv_money);
+        ImageView ivClose = view.findViewById(R.id.iv_close);
+        final PopupWindow popupWindow = new PopupWindow(mActivity);
+        popupWindow.setContentView(view);
+        popupWindow.setAnimationStyle(R.style.Rising);
+        popupWindow.setWidth(ActionBar.LayoutParams.MATCH_PARENT);
+        popupWindow.setHeight(ActionBar.LayoutParams.MATCH_PARENT);
+        popupWindow.setTouchable(true);
+        popupWindow.setFocusable(true);
+        popupWindow.setOutsideTouchable(false);
+        popupWindow.setBackgroundDrawable(new BitmapDrawable());
+        backgroundAlpha(0.7f, mActivity);
+        popupWindow.showAtLocation(viewAnchor, Gravity.CENTER, 0, 0);
+        popupWindow.setOnDismissListener(new ViewUtil.PopDismissListener(mActivity));
+        RedPackageMoney redPackageMoney = baseMessage.getData(RedPackageMoney.class);
+        tvMoney.setText("" + 1);
+        tvGetRedPackage.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                //   CommonUtil.getInstance().updateUserInfo(null);
+                updateUserInfo(null);
+                popupWindow.dismiss();
+                ivRedpackage.setVisibility(View.GONE);
+            }
+        });
+        ivClose.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                popupWindow.dismiss();
+                ivRedpackage.setVisibility(View.GONE);
+            }
+        });
+
+    }
+
+    public void updateUserInfo(final Action1<UserEntity> action1) {
+        SheepApp.get(SheepApp.getInstance())
+                .getNetComponent()
+                .getApiService()
+                .getInfo()
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        if (action1 != null)
+                            action1.call(null);
+
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        UserEntity userEntity = baseMessage.getData(UserEntity.class);
+                        if (userEntity != null) {
+                            DataUtil.getInstance().setUserEntity(userEntity);
+                        }
+                        initUserInfo();
+                        if (action1 != null)
+                            action1.call(userEntity);
+                    }
+                });
+    }
+
+    @Override
     public void onDestroyView() {
         super.onDestroyView();
         unbinder.unbind();
@@ -158,11 +301,20 @@ public class FgtPersonalCenter extends BaseCompatFragment {
     @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.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) {
         switch (view.getId()) {
+            case R.id.iv_redpackage://邀请成功后有可领红包
+                ViewUtil.changeRedPackage(getActivity(), getView(), FgtPersonalCenter.this);
+                break;
             case R.id.icon_img_iv://图片
+                if (TestUtil.isTest()) {
+                    TestUtil.test(activity);
+                } else
+                    Jump2View.getInstance().goPersionInfo(activity, null);
+                break;
             case R.id.account_detail_layout://个人资料
                 Jump2View.getInstance().goPersionInfo(activity, null);
                 break;
@@ -170,10 +322,10 @@ public class FgtPersonalCenter extends BaseCompatFragment {
                 Jump2View.getInstance().goMyMoney(activity, null);
                 break;
             case R.id.account_task_layout://任务记录
-                Jump2View.getInstance().goTaskList2View(activity, null);
+                Jump2View.getInstance().goAuditTastList(activity, null);
                 break;
             case R.id.proxy_service_layout://代理
-                CommonUtil.getInstance().initUrlConfigByNet("agenturl", new Action1<String>(){
+                CommonUtil.getInstance().initUrlConfigByNet("agenturl", new Action1<String>() {
                     @Override
                     public void call(String url) {
                         agentUrl = url;
@@ -186,7 +338,7 @@ public class FgtPersonalCenter extends BaseCompatFragment {
                 USER_AGENT.onEvent();
                 break;
             case R.id.faq_layout://FAQ帮助
-                CommonUtil.getInstance().initUrlConfigByNet("faqurl", new Action1<String>(){
+                CommonUtil.getInstance().initUrlConfigByNet("faqurl", new Action1<String>() {
                     @Override
                     public void call(String url) {
                         faqUrl = url;
@@ -206,7 +358,7 @@ public class FgtPersonalCenter extends BaseCompatFragment {
                 break;
             case R.id.recommend_friend_layout://推荐给好友
                 if (userEntity != null) {
-                    ViewUtil.shareLink(activity, CommonUtil.getInstance().jointString(userEntity.getShareLink("ohter"), "ohter"));
+                    ViewUtil.shareLink(activity, CommonUtil.getInstance().jointString(userEntity.getShareLink(DialogShare.OTHER), DialogShare.OTHER));
                 }
                 USER_SHARE.onEvent();
                 break;

+ 271 - 0
app/src/main/java/com/kfzs/duanduan/fragment/FgtRouser.java

@@ -0,0 +1,271 @@
+package com.kfzs.duanduan.fragment;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.widget.SwipeRefreshLayout;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.RequestOptions;
+import com.kfzs.duanduan.BaseCompatFragment;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.RouserArticlesEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
+import com.sheep.gamegroup.util.GlideImageLoader;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.MyGridview;
+import com.sheep.gamegroup.util.SysAppUtil;
+import com.sheep.gamegroup.util.ViewHolder;
+import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
+import com.sheep.gamegroup.view.adapter.ArrayAdapter;
+import com.sheep.jiuyan.samllsheep.BuildConfig;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
+
+import org.afinal.simplecache.ApiKey;
+
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import me.iwf.photopicker.PhotoPreview;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.functions.Action1;
+import rx.schedulers.Schedulers;
+
+/**
+ * 唤醒
+ * Created by ljy on 2018/8/22.
+ */
+
+public class FgtRouser extends BaseCompatFragment {
+
+    @BindView(R.id.title)
+    View title;
+    @BindView(R.id.refresh)
+    SwipeRefreshLayout refresh;
+    @BindView(R.id.empty_view)
+    View empty_view;
+    @BindView(R.id.check_net_ll)
+    View check_net_ll;
+    @BindView(R.id.view_list)
+    RecyclerView view_list;
+
+    private Activity activity;
+    private List<RouserArticlesEntity> list = ListUtil.emptyList();
+    @Override
+    protected void initView(Bundle savedInstanceState) {
+
+        setContentView(R.layout.net_empty_fresh_list);
+        activity = getActivity();
+        ButterKnife.bind(this, mContentView);
+        initView();
+        initData();
+    }
+    private void initView(){
+        title.setVisibility(View.GONE);
+        refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
+            @Override
+            public void onRefresh() {
+                refreshData();
+                refresh.setRefreshing(false);
+            }
+        });
+
+        view_list.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
+        view_list.setAdapter(new AdbCommonRecycler<RouserArticlesEntity>(SheepApp.getInstance(), list){
+
+            @Override
+            public int getItemViewType(int position) {
+                return position;
+            }
+            @Override
+            public int getViewIdByType(int type) {//type来源于 getItemViewType 返回的值
+                if(type == -1 + list.size()){
+                    return R.layout.find_item_bottom;
+                }
+                return R.layout.rouser_item;
+            }
+
+            @Override
+            public void convert(final ViewHolder holder, final RouserArticlesEntity item) {
+                if(item == null){
+                    return;
+                }
+                View rootConvertView = holder.itemView;
+                View padding = rootConvertView.findViewById(R.id.padding);
+                padding.setVisibility(holder.getAdapterPosition() == 0 ? View.GONE : View.VISIBLE);
+                TextView gridview_item_tag_tv = (TextView)rootConvertView.findViewById(R.id.gridview_item_tag_tv);
+                final TextView item_name = (TextView)rootConvertView.findViewById(R.id.rouser_item_name);
+                TextView time_tv = (TextView)rootConvertView.findViewById(R.id.time_tv);
+                ImageView one_img_iv = (ImageView)rootConvertView.findViewById(R.id.one_img_iv);
+                MyGridview home_list_gridview_gv = (MyGridview)rootConvertView.findViewById(R.id.home_list_gridview_gv);
+                switch (item.getIdentifier()){
+                    default:
+                        gridview_item_tag_tv.setVisibility(View.GONE);
+                        break;
+                    case 2:
+                        gridview_item_tag_tv.setVisibility(View.VISIBLE);
+                        gridview_item_tag_tv.setText("火热");
+                        gridview_item_tag_tv.setBackgroundResource(R.drawable.shape_red_stroke_rectangle_10_radius);
+                        gridview_item_tag_tv.setTextColor(activity.getResources().getColor(R.color.red_FD2D54));
+                        break;
+                    case 3:
+                        gridview_item_tag_tv.setVisibility(View.VISIBLE);
+                        gridview_item_tag_tv.setText("最新");
+                        gridview_item_tag_tv.setBackgroundResource(R.drawable.shape_blue_stroke_rectangle_10_radius);
+                        gridview_item_tag_tv.setTextColor(activity.getResources().getColor(R.color.btn_color_main_stroke));
+                        break;
+                }
+
+                item_name.setText(item.getTitle()+"");
+                time_tv.setText(item.getContent()+"");
+                if (!TextUtils.isEmpty(item.getImg())) {
+                    final String[] images = item.getImg().split(";");
+                    String[] images1 = new String[3];
+                    if(images.length > 1){
+                        if(images.length > 3){
+                            for(int i=0;i<3;i++){
+                                images1[i] = images[i];
+                            }
+                        }
+                        one_img_iv.setVisibility(View.GONE);
+                        home_list_gridview_gv.setVisibility(View.VISIBLE);
+                        home_list_gridview_gv.setAdapter(new ArrayAdapter<String>(activity, R.layout.rouser_image_adp ,images1){
+                            @Override
+                            public boolean convert(int position, View convertView, ViewGroup parent, String item) {
+                                ImageView imageView = convertView.findViewById(R.id.item_image_iv);
+                                Glide.with(activity)
+                                        .load(item+"")
+                                        .apply(new RequestOptions().dontAnimate().override(G.WIDTH  /3, G.WIDTH  /3))
+                                        .into(imageView);
+                                return true;
+                            }
+                        });
+                    }else {
+                        one_img_iv.setVisibility(View.VISIBLE);
+                        home_list_gridview_gv.setVisibility(View.GONE);
+                        GlideImageLoader.setImage(one_img_iv, images[0]);
+                        one_img_iv.setOnClickListener(new View.OnClickListener() {
+                            @Override
+                            public void onClick(View v) {
+                                try{
+//                                    List<String> list = new ArrayList<>();
+//                                    PhotoPreview.builder()
+//                                            .setPhotos(list.toArray(images))
+//                                            .setCurrentItem(holder.getAdapterPosition())
+//                                            .setShowDeleteButton(false)
+//                                            .start( activity, 101);
+
+                                }catch (Exception e){
+                                    e.printStackTrace();
+                                }
+                            }
+                        });
+                    }
+
+                }else {
+                    one_img_iv.setVisibility(View.GONE);
+                    home_list_gridview_gv.setVisibility(View.GONE);
+                }
+
+
+                //snssdk143://detail?groupid=6584333623434936835&gd_label=click_schema_hxhg15
+                rootConvertView.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        try {
+                            boolean isInstalled = PackageUtil.isAppInstalled(SheepApp.getInstance(), item.getPackage_name());
+                            if(!isInstalled && !BuildConfig.DEBUG){
+                                G.showToast("还未安装"+item.getApp_name());
+                                return;
+                            }
+
+                            String deeplink;
+                            if(BuildConfig.DEBUG){
+                                deeplink = "snssdk143://detail?groupid=6584333623434936835&gd_label=click_schema_hxhg15";
+                            }else {
+                                deeplink = item.getDeeplink()+"";
+                            }
+                            Intent intent = Intent.parseUri(deeplink, Intent.URI_INTENT_SCHEME);
+
+                            intent.setComponent(null);
+                            startActivity(intent);
+                            CommonUtil.getInstance().awakenDetail(item);
+                        } catch (URISyntaxException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                });
+            }
+        });
+    }
+    public void initData(){
+        //先尝试获取缓存数据
+        List<RouserArticlesEntity> newList = DataUtil.getInstance().getCacheList(ApiKey.awakenApp(), RouserArticlesEntity.class);
+        loadList(newList);
+        refreshData();
+    }
+    public void refreshData(){
+        empty_view.setVisibility(View.INVISIBLE);
+        SysAppUtil.checkNet(new Action1<Integer>() {
+            @Override
+            public void call(Integer result) {
+                if(result != 0){//无网络
+                    if(check_net_ll != null)
+                        check_net_ll.setVisibility(View.VISIBLE);
+                } else {
+                    if(check_net_ll != null)
+                        check_net_ll.setVisibility(View.GONE);
+                }
+            }
+        });
+        SheepApp.getInstance().getNetComponent().getApiService().awakenApparticle(1, 100)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.awakenApp());
+                        if(isNewData) {
+                            List<RouserArticlesEntity> newList = baseMessage.getDatas(RouserArticlesEntity.class);
+                            loadList(newList);
+                        }
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        notifyDataSetChanged();
+                    }
+                });
+    }
+
+    private void loadList(List<RouserArticlesEntity> newList){
+        if(!ListUtil.isEmpty(newList)){
+            list.clear();
+            ListUtil.addAll(list, newList);
+            if(!list.isEmpty())
+                list.add(null);//底部部分----我是有底线的
+            notifyDataSetChanged();
+        }
+    }
+
+    private void notifyDataSetChanged(){
+        CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty());
+        refresh.setRefreshing(false);
+        view_list.getAdapter().notifyDataSetChanged();
+    }
+}

+ 345 - 22
app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java

@@ -1,40 +1,53 @@
 package com.kfzs.duanduan.fragment;
 
+import android.annotation.SuppressLint;
+import android.app.ActionBar;
 import android.app.Activity;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.graphics.Color;
+import android.graphics.drawable.BitmapDrawable;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
-import android.support.v4.widget.NestedScrollView;
+import android.support.annotation.RequiresApi;
+import android.support.design.widget.TabLayout;
+import android.support.v4.view.ViewPager;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.app.AlertDialog;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
+import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.AdapterView;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
+import android.widget.PopupWindow;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
+import com.google.gson.Gson;
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.react.ConfigUtil;
 import com.kfzs.duanduan.react.SharedPreferences;
 import com.kfzs.duanduan.utils.NumberFormatUtils;
+import com.kfzs.duanduan.utils.dlg.FormatAny;
 import com.sheep.gamegroup.di.components.DaggerSmallSheepComponent;
 import com.sheep.gamegroup.di.modules.SmallSheepModule;
 import com.sheep.gamegroup.di.modules.TryMakeMoneyModule;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.BulletinEnty;
+import com.sheep.gamegroup.model.entity.CashAwarsEntity;
 import com.sheep.gamegroup.model.entity.Ext;
 import com.sheep.gamegroup.model.entity.HomeListEntity;
 import com.sheep.gamegroup.model.entity.MoreDataEntity;
@@ -47,6 +60,7 @@ import com.sheep.gamegroup.model.entity.TaskReleaseEty;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.util.AutoTaskListUtil;
 import com.sheep.gamegroup.model.util.EntityUtils;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.presenter.SmallSheepContract;
 import com.sheep.gamegroup.presenter.SmallSheepPresenter;
 import com.sheep.gamegroup.presenter.TryMakeMoneyContract;
@@ -56,8 +70,10 @@ import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.MyGridview;
 import com.sheep.gamegroup.util.MyListview;
+import com.sheep.gamegroup.util.NestedScrollView;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
@@ -65,11 +81,14 @@ import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.view.activity.NotificationsUtils;
 import com.sheep.gamegroup.view.adapter.AdpHomeListGrideview;
 import com.sheep.gamegroup.view.adapter.AdpHomeListListview;
+import com.sheep.gamegroup.view.adapter.AdpTryMakemoney;
 import com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp;
 import com.sheep.gamegroup.view.dialog.DialogNewbieTaskList;
+import com.sheep.gamegroup.view.fragment.FgtTryMakeMoney;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sunfusheng.marqueeview.MarqueeView;
 import com.youth.banner.Banner;
 import com.youth.banner.BannerConfig;
@@ -92,9 +111,12 @@ import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.OnClick;
 import butterknife.Unbinder;
+import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
+import rx.schedulers.Schedulers;
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.NEWBIE_TASK;
+import static com.sheep.gamegroup.util.ViewUtil.backgroundAlpha;
 
 public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContract.View, TryMakeMoneyContract.View {
 
@@ -146,6 +168,23 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     View check_net_ll;
     @BindView(R.id.bg_newbie_task)
     ImageView bg_newbie_task;
+    @BindView(R.id.view_rob_duty)
+    View viewRobDuty;
+    @BindView(R.id.iv_rob_duty)
+    ImageView ivDuty;
+    @BindView(R.id.viewpager_act_game_details)
+    ViewPager mViewPager;
+    @BindView(R.id.tabLayout)
+    TabLayout tabLayout;
+    @BindView(R.id.homepage_item_get_award_name_tv)
+    TextView homepage_item_get_award_name_tv;
+    @BindView(R.id.homepage_item_money_tv)
+    TextView homepage_item_money_tv;
+    @BindView(R.id.homepage_item_juan_tv)
+    TextView homepage_item_juan_tv;
+    @BindView(R.id.recyclerview_line)
+    View recyclerview_line;
+
 
     @Inject
     SmallSheepPresenter pagePresenter;
@@ -168,10 +207,12 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     private List<HomeListEntity> homeListEntitysListview = new ArrayList<>();
     private AdpHomeListGrideview adpHomeListGrideview;
     private AdpHomeListListview adpHomeListListview;
+    private TaskReleaseEty taskEty;
+    private AdpTryMakemoney adpViewPagerDetail;
 
     private static final int LIST_COUNT = 2;//tryMakeMoneyAdp 总共有2条数据
     private static final RecyleObj NULL = RecyleObj.make(RecyleType.NONE, null);//空数据
-    Handler mHanderl = new Handler(Looper.getMainLooper()) {
+    public Handler mHanderl = new Handler(Looper.getMainLooper()) {
         @Override
         public void handleMessage(Message msg) {
             super.handleMessage(msg);
@@ -182,6 +223,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                 case 1:
                     tryMakeMoneyAdp.clear();
                     if(!ListUtil.isEmpty(allTaskAcceptedTaskList)){
+                        recyclerview_line.setVisibility(View.VISIBLE);
                         tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, allTaskAcceptedTaskList));
                     }
                     if(!ListUtil.isEmpty(releaseEtyLists)) {
@@ -190,11 +232,51 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                     tryMakeMoneyAdp.notifyDataSetChanged();
                     checkAndInitView();
                     break;
+                case 2:
+                    FgtTryMakeMoney item = (FgtTryMakeMoney) adpViewPagerDetail.getItem(curPosition);
+                    int count = item.getDataCount();
+                    ViewGroup.LayoutParams params = mViewPager.getLayoutParams();
+                    params.height = count == 0 ? G.HEIGHT / 3 : (count * getResources().getDimensionPixelSize(R.dimen.content_padding_96)+getResources().getDimensionPixelSize(R.dimen.content_padding_20));
+                    mViewPager.setLayoutParams(params);
+                    break;
+                case 7:
+                    isShowRedPackages((Context)msg.obj);
+                    LogUtil.logI("handle message");
+                    break;
             }
 
         }
     };
 
+    /**
+     * 新手任务对话框中,注册账号并登录得红包,这里判断是否已经领取过了,如果领取过了就不显示,不然就显示
+     * @param obj     ,Context对象
+     */
+    public void isShowRedPackages(Context obj) {
+        if (userEntity == null) {
+            userEntity = DataUtil.getInstance().getUserEntity();
+        }
+        if (((userEntity.getNewbie_task_status() & 16) == 0) && userEntity.getIs_new() == 1) {
+            showRedPackage(obj);
+        }
+    }
+
+    /**
+     * @return 是否显示红包
+     */
+    public void isShowRedPackage() {
+        if (SpUtils.getFirst("first")) {
+            return;
+        }
+        if (userEntity == null) {
+            userEntity = DataUtil.getInstance().getUserEntity();
+        }
+        if (((userEntity.getNewbie_task_status() & 16) == 0) && userEntity.getIs_new() == 1) {
+            showRedPackage(getContext());
+        }
+    }
+
+    @RequiresApi(api = Build.VERSION_CODES.M)
     @Override
     protected void initView(Bundle savedInstanceState) {
         setContentView(R.layout.homepage_act_layout);
@@ -211,6 +293,8 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         }
         //每次进入主页都刷新一下url配置信息
         CommonUtil.getInstance().initUrlConfigByNet(null, null);
+        isShowRedPackage();
+        SpUtils.saveFirst("first", true);
     }
 
 
@@ -227,8 +311,41 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         LinearLayout.LayoutParams bannerLayoutParams = (LinearLayout.LayoutParams) banner.getLayoutParams();
         bannerLayoutParams.height = G.WIDTH * 25 / 72;
         banner.setLayoutParams(bannerLayoutParams);
+
+        /**
+         * tablayout
+         */
+        adpViewPagerDetail = new AdpTryMakemoney(getChildFragmentManager(), activity);
+        adpViewPagerDetail.add(FgtTryMakeMoney.newInstance(0, "is_hot"), "每日必做");
+        adpViewPagerDetail.add(FgtTryMakeMoney.newInstance(1,"about_to_begin"), "即将开始");
+
+//        mViewPager.setOffscreenPageLimit(2);
+        mViewPager.setAdapter(adpViewPagerDetail);
+
+        tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
+        tabLayout.setupWithViewPager(mViewPager);
+        mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+            @Override
+            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+            }
+
+            @Override
+            public void onPageSelected(int position) {
+                curPosition = position;
+                mHanderl.sendEmptyMessage(2);//重新计算viewpager高度
+            }
+
+            @Override
+            public void onPageScrollStateChanged(int state) {
+
+            }
+        });
+        CommonUtil.getInstance().reflex(tabLayout, activity);
     }
 
+    private int curPosition = 0;
+
 
     private void loadUserInfo() {
 
@@ -247,6 +364,8 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     }
 
 
+    @RequiresApi(api = Build.VERSION_CODES.M)
+    @SuppressLint("ClickableViewAccessibility")
     public void initListener() {
         scrollView.setOnTouchListener(new View.OnTouchListener() {
             @Override
@@ -278,6 +397,32 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             }
         });
 
+        scrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
+            @Override
+            public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
+
+//                try {
+//                    tabLayout.post(new Runnable() {
+//                        @Override
+//                        public void run() {
+//                            int count = mViewPager.getChildCount();
+//                            if(count > 0){
+//                                toolBarPositionY = tabLayout.getHeight();
+////                                ViewGroup.LayoutParams params = mViewPager.getLayoutParams();
+//                                ViewGroup.LayoutParams params = mViewPager.getLayoutParams();
+//                                params.height = G.getRealPix(count * 50);
+//                                mViewPager.setLayoutParams(params);
+//                                LogUtil.logE("--------"+count+";height:"+mViewPager.getHeight()+","+mViewPager.getMeasuredHeight());
+//                            }
+//
+//                        }
+//                    });
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+            }
+        });
+
         refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
             @Override
             public void onRefresh() {
@@ -311,11 +456,11 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             loadUserInfo();
         }
         //任务
-        List<TaskReleaseEty> cacheTaskReleaseEtyList = DataUtil.getInstance().getCacheList(ApiKey.release_task, TaskReleaseEty.class);
-        if (cacheTaskReleaseEtyList != null) {
-            releaseEtyLists.addAll(cacheTaskReleaseEtyList);
-            mHanderl.sendEmptyMessage(1);
-        }
+//        List<TaskReleaseEty> cacheTaskReleaseEtyList = DataUtil.getInstance().getCacheList(ApiKey.release_task, TaskReleaseEty.class);
+//        if (cacheTaskReleaseEtyList != null) {
+//            releaseEtyLists.addAll(cacheTaskReleaseEtyList);
+//            mHanderl.sendEmptyMessage(1);
+//        }
 
 
         //实时动态
@@ -355,19 +500,20 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             boolean isShowQB = false;
             boolean isShowMd = false;
             for (int i = 0; i < homeListEntitys.size(); i++) {
-                if (i < 4) {
+                /*if (i < 4) {
                     homeListEntitysGridview.add(homeListEntitys.get(i));
                 } else {
                     homeListEntitysListview.add(homeListEntitys.get(i));
-                }
+                }*/
+                homeListEntitysGridview.add(homeListEntitys.get(i));
                 if (homeListEntitys.get(i).getJump().equals("6")) {//6Q币充值
                     isShowQB = !isShowQB;
                 }
                 if (homeListEntitys.get(i).getJump().equals("14")) {//幂动科技
                     isShowMd = !isShowMd;
-                    CommonUtil.getInstance().initMiDong(activity, DataUtil.getInstance().getUserId());
                 }
             }
+            addNewTask();
             SheepApp.getInstance().setShowQB(isShowQB);
             SheepApp.getInstance().setShowMidong(isShowMd);
             adpHomeListGrideview.notifyDataSetChanged();
@@ -413,8 +559,35 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         pagePresenter.slideshow(null);//轮播
         pagePresenter.homeList();//首页list
 
+        CommonUtil.getInstance().getUserNoDoingTaskMoney(new Action1<BaseMessage>() {
+            @Override
+            public void call(BaseMessage o) {
+
+                if(o != null){
+                    CashAwarsEntity cashAwarsEntity = o.getData(CashAwarsEntity.class);
+                    if(cashAwarsEntity != null){
+
+                        String award = String.format(activity.getResources().getString(R.string.homepage_award), FormatAny.getInstance().formatString(cashAwarsEntity.getAward()+""));
+                        String cash = String.format(activity.getResources().getString(R.string.homepage_cash), FormatAny.getInstance().formatString(cashAwarsEntity.getCash()+""));
+                        String welfare = String.format(activity.getResources().getString(R.string.homepage_welfare), FormatAny.getInstance().formatString(cashAwarsEntity.getWelfare()+""));
+                        homepage_item_get_award_name_tv.setText(award+"");
+                        homepage_item_money_tv.setText(cash+"");
+                        homepage_item_juan_tv.setText(welfare+"");
+                    }
+                }
+            }
+        });
+        if(!isFirst){
+            for (int i = 0; i < adpViewPagerDetail.getCount(); i++) {
+                FgtTryMakeMoney item = (FgtTryMakeMoney) adpViewPagerDetail.getItem(i);
+                item.refreshData();
+            }
+        }
+        isFirst = false;
     }
 
+    private boolean isFirst = true;
+
     /**
      * recyclerview
      */
@@ -436,6 +609,23 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         adpHomeListGrideview = new AdpHomeListGrideview(homeListEntitysGridview, activity);
         home_list_gridview_listview.setAdapter(adpHomeListListview);
         home_list_gridview_gv.setAdapter(adpHomeListGrideview);
+
+        home_list_gridview_gv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                if(null ==  homeListEntitysGridview.get(position)){
+                    return;
+                }
+                HomeListEntity homeListEntity= homeListEntitysGridview.get(position);
+                UMConfigUtils.IdEvent.HOME_LIST.commit(homeListEntity.getId());
+                if(homeListEntity.getJump().equals("-2")){
+                    setValueList(!homeListEntity.isSelect());
+                }else {
+                    CommonUtil.getInstance()
+                            .goWhere(activity, homeListEntity, "首页");
+                }
+            }
+        });
     }
 
     private void refreshTaskList() {
@@ -452,7 +642,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                                 0,
                                  "-1",
                                 3));
-        tryMakeMoneyPresenter.releaseTask(parameEty);
+//        tryMakeMoneyPresenter.releaseTask(parameEty);
     }
 
 
@@ -518,14 +708,18 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         G.showToast("取消任务成功");
         CommonUtil.getInstance().setTAskEnty(null);
         refreshTaskList();
+        FgtTryMakeMoney item = (FgtTryMakeMoney) adpViewPagerDetail.getItem(0);//因为放弃了任务,所以刷新可以接收的任务列表
+        item.refreshData();
     }
 
     @Override
     public void giveUpTaskFailView(Object o) {
 
     }
+
     private int is_succession = 3;//所有
     private int show_game_task = 1;//包含游戏任务
+
     @Override
     public void returnTaskTaskUpdataView(Object object) {
         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.new_run_task(is_succession, show_game_task));
@@ -533,8 +727,10 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             BaseMessage baseMessage = (BaseMessage) object;
             allTaskAcceptedTaskList = baseMessage.getDataList(TaskAcceptedEty.class);
             AutoTaskListUtil.getInstance().loadList(allTaskAcceptedTaskList);
-            mHanderl.sendEmptyMessage(1);
+        } else {
+            allTaskAcceptedTaskList.clear();
         }
+        mHanderl.sendEmptyMessage(1);
     }
 
     @Override
@@ -554,6 +750,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             e.printStackTrace();
             G.showToast(" 网络错误!");
         }
+        allTaskAcceptedTaskList.clear();
         mHanderl.sendEmptyMessage(1);
     }
 
@@ -652,19 +849,20 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                 boolean isShowQB = false;
                 boolean isShowMd = false;
                 for (int i = 0; i < homeListEntitys.size(); i++) {
-                    if (i < 4) {
-                        homeListEntitysGridview.add(homeListEntitys.get(i));
-                    } else {
-                        homeListEntitysListview.add(homeListEntitys.get(i));
-                    }
+//                    if (i < 4) {
+//                        homeListEntitysGridview.add(homeListEntitys.get(i));
+//                    } else {
+//                        homeListEntitysListview.add(homeListEntitys.get(i));
+//                    }
+                    homeListEntitysGridview.add(homeListEntitys.get(i));
                     if (homeListEntitys.get(i).getJump().equals("6")) {//6Q币充值
                         isShowQB = !isShowQB;
                     }
                     if (homeListEntitys.get(i).getJump().equals("14")) {//幂动科技
                         isShowMd = !isShowMd;
-                        CommonUtil.getInstance().initMiDong(activity, DataUtil.getInstance().getUserId());
                     }
                 }
+                addNewTask();
                 SheepApp.getInstance().setShowQB(isShowQB);
                 SheepApp.getInstance().setShowMidong(isShowMd);
                 adpHomeListGrideview.notifyDataSetChanged();
@@ -691,7 +889,9 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         home_list_gridview_layout.setVisibility(View.GONE);
 
     }
+
     private int onResumeCount = 0;
+
     @Override
     public void onResume() {
         super.onResume();
@@ -712,11 +912,16 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         }
         if(DataUtil.getInstance().isTaskListChange(getClass()))//数据变化才刷新
             refreshTaskList();
-        if(onResumeCount == 0)//第一次才调用
-            Jump2View.getInstance().tryShowNewbieTask(activity, userEntity, newbie_task);
-        onResumeCount++;
+
+        viewRobDuty.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                ViewUtil.showRobDutyDialog(getActivity(), getView());
+            }
+        });
     }
 
+
     @Override
     public void onPause() {
         super.onPause();
@@ -766,6 +971,9 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             case ONFRESH_FGT_FAMLLSHEEP:
                 mHanderl.sendEmptyMessage(1);
                 break;
+            case FGT_SHEEP_REFRESH_H:
+                mHanderl.sendEmptyMessage(2);
+                break;
         }
     }
 
@@ -943,7 +1151,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
      * 公共
      */
     private void inviteNotice(final List<BulletinEnty> bulletinEntyList) {
-        homepageItemNoticeLayout.setVisibility(View.VISIBLE);
+        homepageItemNoticeLayout.setVisibility(View.GONE);
 //        List<String> infoList = new ArrayList<>();
 //        for(BulletinEnty bulletinEnty: bulletinEntyList){
 //            infoList.add(bulletinEnty.getContent()+"");
@@ -1019,4 +1227,119 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         }
 
     }
+
+    /**
+     * 邀请成功后在个人资料显示领红包弹窗
+     */
+    public void showRedPackage(Context context) {
+        Activity mActivity = (Activity)context;
+        View viewAnchor = LayoutInflater.from(context).inflate(R.layout.homepage_act_layout, null, false);
+        View view = LayoutInflater.from(context).inflate(R.layout.dialog_redpackage_after_invitation, null, false);
+        TextView tvGetRedPackage = view.findViewById(R.id.tv_get_redpackage);
+        TextView tvMoney = view.findViewById(R.id.tv_money);
+        ImageView ivClose = view.findViewById(R.id.iv_close);
+        TextView tvNew = view.findViewById(R.id.tv_flag1);
+        final PopupWindow popupWindow = new PopupWindow(mActivity);
+        popupWindow.setContentView(view);
+        popupWindow.setAnimationStyle(R.style.Rising);
+        popupWindow.setWidth(ActionBar.LayoutParams.MATCH_PARENT);
+        popupWindow.setHeight(ActionBar.LayoutParams.MATCH_PARENT);
+        popupWindow.setTouchable(true);
+        popupWindow.setFocusable(true);
+        popupWindow.setOutsideTouchable(false);
+        popupWindow.setBackgroundDrawable(new BitmapDrawable());
+        backgroundAlpha(0.7f, mActivity);
+        popupWindow.showAtLocation(viewAnchor, Gravity.CENTER, 0, 0);
+        popupWindow.setOnDismissListener(new ViewUtil.PopDismissListener(mActivity));
+        tvMoney.setText("1.8");
+        tvNew.setText("新人红包");
+        tvGetRedPackage.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                CommonUtil.getInstance().updateUserInfo(null);
+                popupWindow.dismiss();
+                getRedPackage(popupWindow);
+            }
+        });
+        ivClose.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                popupWindow.dismiss();
+            }
+        });
+
+    }
+
+    /**
+     * 兑换红包
+     *
+     * @param popupWindow
+     */
+    public void getRedPackage(final PopupWindow popupWindow) {
+        SheepApp.getInstance().getNetComponent().getApiService().getNewRedPackage()
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        LogUtil.logI("0------" + new Gson().toJson(baseMessage));
+                        G.showToast(baseMessage.getMsg());
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        if (popupWindow.isShowing()){
+                            popupWindow.dismiss();
+                        }
+                    }
+                });
+    }
+    /**
+     * 新手任务
+     */
+    private void addNewTask(){
+        HomeListEntity homeListEntityNewTask = new HomeListEntity();
+        homeListEntityNewTask.setTitle("新手任务");
+        homeListEntityNewTask.setDesc("新手任务");
+        homeListEntityNewTask.setJump("-1");
+        homeListEntityNewTask.setIcon(R.mipmap.homepage_xinshourw+"");
+        homeListEntitys.add(0, homeListEntityNewTask);
+        if(homeListEntitys.size() > 8){
+            HomeListEntity homeListEntity = new HomeListEntity();
+            homeListEntity.setTitle("查看更多");
+            homeListEntity.setDesc("查看更多");
+            homeListEntity.setJump("-2");
+            homeListEntity.setIcon(R.mipmap.homepage_chakangd+"");
+            homeListEntitys.add(7, homeListEntity);
+        }
+        setValueList(false);
+    }
+
+    private void setValueList(boolean flag) {
+        homeListEntitysGridview.clear();
+        for(int i=0;i<homeListEntitys.size();i++){
+            if(flag){
+                homeListEntitysGridview.add(homeListEntitys.get(i));
+            }else {
+                if(i<8){
+                    homeListEntitysGridview.add(homeListEntitys.get(i));
+                }
+            }
+
+        }
+        if(homeListEntitysGridview.size() > 8){
+            HomeListEntity homeListEntity = new HomeListEntity();
+            homeListEntity.setTitle("查看更多");
+            homeListEntity.setDesc("查看更多");
+            homeListEntity.setJump("-2");
+            homeListEntity.setSelect(flag);
+            if (flag) {
+                homeListEntity.setIcon(R.mipmap.homepage_chakangd_click+"");
+            } else {
+                homeListEntity.setIcon(R.mipmap.homepage_chakangd+"");
+            }
+            homeListEntitysGridview.set(7, homeListEntity);
+        }
+        adpHomeListGrideview.notifyDataSetChanged();
+    }
 }

+ 2 - 0
app/src/main/java/com/kfzs/duanduan/mine/GiftpackListAdapter.java

@@ -47,4 +47,6 @@ public class GiftpackListAdapter extends FragmentPagerAdapter {
     public CharSequence getPageTitle(int position) {
         return (CharSequence) mTitles.get(position);
     }
+
+
 }

+ 82 - 0
app/src/main/java/com/kfzs/duanduan/mine/ShenheAdapter.java

@@ -0,0 +1,82 @@
+package com.kfzs.duanduan.mine;
+
+import android.content.Context;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentPagerAdapter;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.sheep.gamegroup.view.fragment.FgtAudit;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.utils.G;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * created on:2018/8/22 on 4:57
+ * created by: Administrator
+ * 描述:
+ */
+public class ShenheAdapter extends FragmentPagerAdapter {
+    private Context mContext;
+    private List<Object> mListFragment = new ArrayList<>();
+    private List<Object> mTitles = new ArrayList<>();
+
+    public ShenheAdapter(FragmentManager fm, Context mContext) {
+        super(fm);
+        this.mContext = mContext;
+    }
+
+    public void add(Fragment fragment, String title) {
+        mListFragment.add(fragment);
+        mTitles.add(title);
+    }
+
+    @Override
+    public Fragment getItem(int position) {
+        return (Fragment) mListFragment.get(position);
+    }
+
+    @Override
+    public int getCount() {
+        return mListFragment.size();
+    }
+
+    @Override
+    public int getItemPosition(Object object) {
+        return super.getItemPosition(object);
+    }
+
+    @Override
+    public CharSequence getPageTitle(int position) {
+        return (CharSequence) mTitles.get(position);
+    }
+
+    public View getTabView(int position) {
+        View v = LayoutInflater.from(mContext).inflate(R.layout.view_add_fgtmainaudit, null);
+        ImageView imageView = v.findViewById(R.id.iv_img);
+        TextView textView1 = v.findViewById(R.id.tv_text);
+        if (position == 0) {
+            textView1.setText("审核中");
+        } else if (position == 1) {
+            textView1.setText("审核成功");
+        } else if (position == 2) {
+            textView1.setText("审核失败");
+            if (FgtAudit.newInstance(3).type == 3) {
+                if (FgtAudit.newInstance(3).etyList != null) {
+                    if (FgtAudit.newInstance(3).etyList.get(0).getStatus() == 6) {
+                        imageView.setVisibility(View.VISIBLE);
+                    } else {
+                        imageView.setVisibility(View.GONE);
+                    }
+                }
+            }
+        }
+
+        return v;
+    }
+}

+ 10 - 8
app/src/main/java/com/kfzs/duanduan/react/MainTab.java

@@ -3,9 +3,11 @@ package com.kfzs.duanduan.react;
 import android.support.v4.app.Fragment;
 
 import com.kfzs.duanduan.ActMain;
+import com.kfzs.duanduan.fragment.FgtAskgetmoney;
 import com.kfzs.duanduan.fragment.FgtFind;
 import com.kfzs.duanduan.fragment.FgtPersonalCenter;
 import com.kfzs.duanduan.fragment.FgtSmallSheep;
+import com.sheep.gamegroup.view.fragment.FgtMainAudit;
 import com.sheep.jiuyan.samllsheep.R;
 
 /**
@@ -14,7 +16,7 @@ import com.sheep.jiuyan.samllsheep.R;
  */
 
 public enum MainTab {
-    FgtSmallSheep(R.string.mine_hoggerel) {
+    FgtSmallSheep(R.string.main_tab_make_money) {
         @Override
         public Fragment getFragment() {
             return new FgtSmallSheep();
@@ -24,28 +26,28 @@ public enum MainTab {
             return R.drawable.drawable_selector_task;
         }
     },
-    /*FgtMainGame(R.string.tab_viewpager_gamestore) {
+    FgtMainAudit(R.string.main_tab_audit) {
         @Override
         public Fragment getFragment() {
-            return new FgtMainGame();
+            return new FgtMainAudit();
         }
 
         @Override
         public int getDrawableId() {
-            return R.drawable.drawable_selector_game;
+            return R.drawable.drawable_selector_audit;
         }
     },
-    FgtMainCategory(R.string.tab_viewpager_classification) {
+    FgtMainAskGetMoney(R.string.main_tab_invite) {
         @Override
         public Fragment getFragment() {
-            return new FgtMainCategory();
+            return new FgtAskgetmoney();
         }
 
         @Override
         public int getDrawableId() {
-            return R.drawable.drawable_selector_class;
+            return R.drawable.drawable_selector_askgetmoney;
         }
-    },*/
+    },
     Fgt_Find(R.string.main_tab_find) {
         @Override
         public Fragment getFragment() {

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

@@ -13,9 +13,11 @@ import com.kfzs.duanduan.KFZSApp;
 import com.kfzs.duanduan.adp.ViewPagerFragmentAdapter;
 import com.kfzs.duanduan.fragment.FgtPersonalCenter;
 import com.kfzs.duanduan.fragment.FgtSmallSheep;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.DrawablesHelper;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
+import com.sheep.gamegroup.view.fragment.FgtMainAudit;
 import com.sheep.jiuyan.samllsheep.R;
 
 import java.util.ArrayList;
@@ -105,8 +107,10 @@ public class TabsHelper {
                         view_pager_container.setCurrentItem(position, false);
                         int sheepPosition = MainTab.FgtSmallSheep.ordinal();
                         int personnalPosition = MainTab.FgtPersonnalCenter.ordinal();
+                        int auditPosition = MainTab.FgtMainAudit.ordinal();
                         FgtSmallSheep fgtSmallSheep = (FgtSmallSheep) fragmentList.get(sheepPosition);
                         FgtPersonalCenter personnalCenter = (FgtPersonalCenter) fragmentList.get(personnalPosition);
+                        FgtMainAudit auditFgt = (FgtMainAudit) fragmentList.get(auditPosition);
                         if(position == sheepPosition){
                             fgtSmallSheep.onResume();
                         } else {
@@ -115,6 +119,9 @@ public class TabsHelper {
                         if(position == personnalPosition){
                             personnalCenter.onResume();
                         }
+                        if(position == auditPosition){
+                            auditFgt.onResume();
+                        }
                         checkWhichPage(position);
                     }
 
@@ -176,6 +183,7 @@ public class TabsHelper {
     private int lastPosition = MainTab.FgtSmallSheep.ordinal();//默认选中小绵羊
 
     private void initViewPager() {
+        LogUtil.logI("fragmentList.size---"+fragmentList.size());
         ViewPagerFragmentAdapter mViewPagerFragmentAdapter = new ViewPagerFragmentAdapter(activity.getSupportFragmentManager(), fragmentList);
         view_pager_container.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
 

+ 5 - 6
app/src/main/java/com/kfzs/duanduan/utils/net/APIRequest.java

@@ -9,7 +9,6 @@ import com.android.volleyplus.Request;
 import com.android.volleyplus.Response;
 import com.android.volleyplus.toolbox.HttpHeaderParser;
 import com.google.protobuf.InvalidProtocolBufferException;
-import com.kfzs.appstore.utils.string.HexUtils;
 import com.kfzs.duanduan.KFZSApp;
 import com.kfzs.duanduan.bll.UrlBll;
 import com.kfzs.duanduan.datashare.DDProviderHelper;
@@ -22,6 +21,7 @@ import java.util.Map;
 
 import go.kfzssafe.Kfzssafe;
 
+
 /**
  * <pre>
  *     sinlov
@@ -66,8 +66,7 @@ public class APIRequest extends Request<ApiResponseOuterClass.ApiResponse> {
     @Override
     public byte[] getBody() throws AuthFailureError {
         if (null != bodyByte) {
-            String hexStr = HexUtils.bytes2HexStr(Kfzssafe.XByteEncode(bodyByte));
-            return hexStr.getBytes();
+            return Kfzssafe.xByteEncode(bodyByte);
         } else {
             return super.getBody();
         }
@@ -78,9 +77,7 @@ public class APIRequest extends Request<ApiResponseOuterClass.ApiResponse> {
         try {
             String hexString = new String(networkResponse.data,
                     HttpHeaderParser.parseCharset(networkResponse.headers));
-            byte[] bytes = HexUtils.hexStr2Bytes(hexString);
-            byte[] byteDecode = Kfzssafe.XByteDecode(bytes);
-            ApiResponseOuterClass.ApiResponse apiResponse = ApiResponseOuterClass.ApiResponse.parseFrom(byteDecode);
+            ApiResponseOuterClass.ApiResponse apiResponse = ApiResponseOuterClass.ApiResponse.parseFrom(Kfzssafe.xDecodeS2B(hexString));
             return Response.success(apiResponse, HttpHeaderParser.parseCacheHeaders(networkResponse));
         } catch (UnsupportedEncodingException e) {
             return Response.error(new ParseError(e));
@@ -88,6 +85,8 @@ public class APIRequest extends Request<ApiResponseOuterClass.ApiResponse> {
             return Response.error(new ParseError(e));
         } catch (NumberFormatException e) {
             return Response.error(new ParseError(e));
+        } catch (Exception e) {
+            return Response.error(new ParseError(e));
         }
     }
 

+ 6 - 8
app/src/main/java/com/kfzs/duanduan/utils/net/APIRequestV2.java

@@ -10,12 +10,11 @@ import com.android.volleyplus.ParseError;
 import com.android.volleyplus.Request;
 import com.android.volleyplus.Response;
 import com.android.volleyplus.toolbox.HttpHeaderParser;
-import com.kfzs.appstore.utils.string.HexUtils;
 import com.kfzs.duanduan.KFZSApp;
+import com.kfzs.duanduan.bean.BaseMsg;
 import com.kfzs.duanduan.bll.UrlBll;
 import com.kfzs.duanduan.datashare.DDProviderHelper;
 import com.kfzs.duanduan.db.DataSave;
-import com.kfzs.duanduan.bean.BaseMsg;
 
 import java.io.UnsupportedEncodingException;
 import java.util.HashMap;
@@ -23,6 +22,7 @@ import java.util.Map;
 
 import go.kfzssafe.Kfzssafe;
 
+
 /**
  * <pre>
  *     sinlov
@@ -65,8 +65,7 @@ public class APIRequestV2 extends Request<BaseMsg> {
     @Override
     public byte[] getBody() throws AuthFailureError {
         if (null != bodyByte) {
-            String hexStr = HexUtils.bytes2HexStr(Kfzssafe.XByteEncode(bodyByte));
-            return hexStr.getBytes();
+            return Kfzssafe.xByteEncode(bodyByte);
         } else {
             return super.getBody();
         }
@@ -77,10 +76,7 @@ public class APIRequestV2 extends Request<BaseMsg> {
         try {
             String hexString = new String(networkResponse.data,
                     HttpHeaderParser.parseCharset(networkResponse.headers));
-            byte[] bytes = HexUtils.hexStr2Bytes(hexString);
-            byte[] byteDecode = Kfzssafe.XByteDecode(bytes);
-
-            BaseMsg apiResponse = JSON.parseObject(new String(byteDecode, "utf8"), BaseMsg.class);
+            BaseMsg apiResponse = JSON.parseObject(Kfzssafe.xDecodeS2B(hexString), BaseMsg.class);
             return Response.success(apiResponse, HttpHeaderParser.parseCacheHeaders(networkResponse));
         } catch (UnsupportedEncodingException e) {
             return Response.error(new ParseError(e));
@@ -88,6 +84,8 @@ public class APIRequestV2 extends Request<BaseMsg> {
             return Response.error(new ParseError(e));
         } catch (NumberFormatException e) {
             return Response.error(new ParseError(e));
+        } catch (Exception e) {
+            return Response.error(new ParseError(e));
         }
     }
 

+ 1 - 1
app/src/main/java/com/kfzs/duanduan/view/ViewPagerAutoHeigh.java

@@ -46,7 +46,7 @@ public class ViewPagerAutoHeigh extends ViewPager {
             View child = getChildAt(i);
             child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
             int h = child.getMeasuredHeight();
-            mHeight[i] = h;
+            mHeight[i] = h < 300 ? 300:h;
             Log.e("-----------child" + i, "minHeight:" + h);
         }
         heightMeasureSpec = MeasureSpec.makeMeasureSpec(mHeight[getCurrentItem()], MeasureSpec.EXACTLY);

+ 2 - 5
app/src/main/java/com/sheep/gamegroup/absBase/AbsChooseImageActivity.java

@@ -5,9 +5,9 @@ import android.net.Uri;
 import android.text.TextUtils;
 
 import com.alibaba.fastjson.JSON;
-import com.kfzs.appstore.utils.string.HexUtils;
 import com.kfzs.duanduan.react.upfile.UpFileListener;
 import com.kfzs.duanduan.react.upfile.UpFileUtils;
+import com.sheep.gamegroup.model.api.BaseMessageConverter;
 import com.sheep.gamegroup.model.entity.UploadResult;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.view.dialog.DialogProgress;
@@ -18,7 +18,6 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
-import go.kfzssafe.Kfzssafe;
 import me.iwf.photopicker.PhotoPicker;
 
 /**
@@ -185,9 +184,7 @@ public abstract class AbsChooseImageActivity extends BaseActivity implements UpF
             json = msg;
         } else {
             try {
-                byte[] bytes = HexUtils.hexStr2Bytes(msg);
-                byte[] byteDecode = Kfzssafe.XByteDecode(bytes);
-                json = new String(byteDecode);
+                json = BaseMessageConverter.decrypt(msg);
             } catch (Exception e) {
                 e.printStackTrace();
                 return null;

+ 148 - 0
app/src/main/java/com/sheep/gamegroup/dateview/DataPickerDialog.java

@@ -0,0 +1,148 @@
+package com.sheep.gamegroup.dateview;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.text.TextUtils;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.TextView;
+
+import com.sheep.jiuyan.samllsheep.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class DataPickerDialog extends Dialog {
+
+    private Params params;
+
+    public DataPickerDialog(Context context, int themeResId) {
+        super(context, themeResId);
+    }
+
+    private void setParams(DataPickerDialog.Params params) {
+        this.params = params;
+    }
+
+
+    public void setSelection(String itemValue) {
+        if (params.dataList.size() > 0) {
+            int idx = params.dataList.indexOf(itemValue);
+            if (idx >= 0) {
+                params.initSelection = idx;
+                params.loopData.setCurrentItem(params.initSelection);
+            }
+        }
+    }
+
+    public interface OnDataSelectedListener {
+        void onDataSelected(String itemValue, int position);
+        void onCancel();
+    }
+
+    private static final class Params {
+        private boolean shadow = true;
+        private boolean canCancel = true;
+        private LoopView loopData;
+        private String title;
+        private String unit;
+        private int initSelection;
+        private OnDataSelectedListener callback;
+        private final List<String> dataList = new ArrayList<>();
+    }
+
+    public static class Builder {
+        private final Context context;
+        private final DataPickerDialog.Params params;
+
+        public Builder(Context context) {
+            this.context = context;
+            params = new DataPickerDialog.Params();
+        }
+
+        private final String getCurrDateValue() {
+            return params.loopData.getCurrentItemValue();
+        }
+
+        public Builder setData(List<String> dataList) {
+            params.dataList.clear();
+            params.dataList.addAll(dataList);
+            return this;
+        }
+
+        public Builder setTitle(String title) {
+            params.title = title;
+            return this;
+        }
+
+        public Builder setUnit(String unit) {
+            params.unit = unit;
+            return this;
+        }
+
+        public Builder setSelection(int selection) {
+            params.initSelection = selection;
+            return this;
+        }
+
+        public Builder setOnDataSelectedListener(OnDataSelectedListener onDataSelectedListener) {
+            params.callback = onDataSelectedListener;
+            return this;
+        }
+
+
+        public DataPickerDialog create() {
+            final DataPickerDialog dialog = new DataPickerDialog(context, params.shadow ? R.style.Theme_Light_NoTitle_Dialog : R.style.Theme_Light_NoTitle_NoShadow_Dialog);
+            View view = LayoutInflater.from(context).inflate(R.layout.layout_picker_data, null);
+
+            if (!TextUtils.isEmpty(params.title)) {
+                TextView txTitle = (TextView) view.findViewById(R.id.tx_title);
+                txTitle.setText(params.title);
+                txTitle.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        dialog.dismiss();
+                        params.callback.onCancel();
+                    }
+                });
+            }
+            if (!TextUtils.isEmpty(params.unit)) {
+                TextView txUnit = (TextView) view.findViewById(R.id.tx_unit);
+                txUnit.setText(params.unit);
+            }
+
+            final LoopView loopData = (LoopView) view.findViewById(R.id.loop_data);
+            loopData.setArrayList(params.dataList);
+            loopData.setNotLoop();
+            if (params.dataList.size() > 0) loopData.setCurrentItem(params.initSelection);
+            view.findViewById(R.id.tx_finish).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    dialog.dismiss();
+                    params.callback.onDataSelected(getCurrDateValue(),loopData.getCurrentItem());
+                }
+            });
+
+            Window win = dialog.getWindow();
+            win.getDecorView().setPadding(0, 0, 0, 0);
+            WindowManager.LayoutParams lp = win.getAttributes();
+            lp.width = WindowManager.LayoutParams.MATCH_PARENT;
+            lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
+            win.setAttributes(lp);
+            win.setGravity(Gravity.BOTTOM);
+            win.setWindowAnimations(R.style.Rising);
+
+            dialog.setContentView(view);
+            dialog.setCanceledOnTouchOutside(params.canCancel);
+            dialog.setCancelable(params.canCancel);
+
+            params.loopData = loopData;
+            dialog.setParams(params);
+
+            return dialog;
+        }
+    }
+}

+ 284 - 0
app/src/main/java/com/sheep/gamegroup/dateview/DatePickerDialog.java

@@ -0,0 +1,284 @@
+package com.sheep.gamegroup.dateview;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+
+import com.sheep.jiuyan.samllsheep.R;
+
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.List;
+
+public class DatePickerDialog extends Dialog {
+
+    private static  int MIN_YEAR = 1900;
+    private static  int MAX_YEAR = 2100;
+    private Params params;
+
+    public DatePickerDialog(Context context, int themeResId) {
+        super(context, themeResId);
+    }
+
+    private void setParams(DatePickerDialog.Params params) {
+        this.params = params;
+    }
+
+    public interface OnDateSelectedListener {
+         void onDateSelected(int[] dates);
+         void onCancel();
+    }
+
+
+
+    private static final class Params {
+        private boolean shadow = true;
+        private boolean canCancel = true;
+        private LoopView loopYear, loopMonth, loopDay;
+        private OnDateSelectedListener callback;
+    }
+
+    public static class Builder {
+        private final Context context;
+        private final DatePickerDialog.Params params;
+        private Integer minYear;
+        private Integer maxYear;
+        private Integer selectYear;
+        private Integer selectMonth;
+        private Integer selectDay;
+        private Integer minMonth;
+        private Integer maxMonth;
+        private Integer minDay;
+        private Integer maxDay;
+
+        public Builder(Context context) {
+            this.context = context;
+            params = new DatePickerDialog.Params();
+        }
+
+        public Builder setMinYear(int year){
+            minYear=year;
+            return this;
+        }
+
+        public Builder setMaxYear(int year){
+            maxYear=year;
+            return this;
+        }
+
+        public Builder setMinMonth(int month){
+            minMonth=month;
+            return this;
+        }
+
+        public Builder setMaxMonth(int month){
+            maxMonth=month;
+            return this;
+        }
+
+        public Builder setMinDay(int day){
+            minDay=day;
+            return this;
+        }
+
+        public Builder setMaxDay(int day){
+            maxDay=day;
+            return this;
+        }
+
+        public Builder setSelectYear(int year){
+            this.selectYear=year;
+            return this;
+        }
+
+        public Builder setSelectMonth(int month){
+            this.selectMonth=month;
+            return this;
+        }
+
+        public Builder setSelectDay(int day){
+            this.selectDay=day;
+            return this;
+        }
+
+        /**
+         * 获取当前选择的日期
+         *
+         * @return int[]数组形式返回。例[1990,6,15]
+         */
+        private final int[] getCurrDateValues() {
+            int currYear = Integer.parseInt(params.loopYear.getCurrentItemValue());
+            int currMonth = Integer.parseInt(params.loopMonth.getCurrentItemValue());
+            int currDay = Integer.parseInt(params.loopDay.getCurrentItemValue());
+            return new int[]{currYear, currMonth, currDay};
+        }
+
+        public Builder setOnDateSelectedListener(OnDateSelectedListener onDateSelectedListener) {
+            params.callback = onDateSelectedListener;
+            return this;
+        }
+
+
+        public DatePickerDialog create() {
+            final DatePickerDialog dialog = new DatePickerDialog(context, params.shadow ? R.style.Theme_Light_NoTitle_Dialog : R.style.Theme_Light_NoTitle_NoShadow_Dialog);
+            View view = LayoutInflater.from(context).inflate(R.layout.layout_picker_date, null,false);
+
+            view.findViewById(R.id.tv_cancel).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View view) {
+                    dialog.dismiss();
+                    params.callback.onCancel();
+                }
+            });
+
+
+
+            Calendar c = Calendar.getInstance();
+
+            final LoopView loopDay = (LoopView) view.findViewById(R.id.loop_day);
+            loopDay.setArrayList(d(1, 30));
+            if(selectDay!=null){
+                loopDay.setCurrentItem(selectDay);
+            }else{
+                loopDay.setCurrentItem(c.get(Calendar.DATE));
+            }
+            //loopDay.setNotLoop();
+
+            final LoopView loopYear = (LoopView) view.findViewById(R.id.loop_year);
+            loopYear.setArrayList(d(MIN_YEAR, MAX_YEAR - MIN_YEAR + 1));
+            if(selectYear!=null){
+                loopYear.setCurrentItem(selectYear-MIN_YEAR+1);
+            }else{
+                loopYear.setCurrentItem(MAX_YEAR);
+            }
+            loopYear.setNotLoop();
+
+            final LoopView loopMonth = (LoopView) view.findViewById(R.id.loop_month);
+            loopMonth.setArrayList(d(1, 12));
+            if(selectMonth!=null){
+                loopMonth.setCurrentItem(selectMonth);
+            }else{
+                loopMonth.setCurrentItem(c.get(Calendar.MONTH));
+            }
+            loopMonth.setNotLoop();
+
+
+
+            final LoopListener maxDaySyncListener = new LoopListener() {
+                @Override
+                public void onItemSelect(int item) {
+                    Calendar c = Calendar.getInstance();
+                    boolean needFixed=true;
+                    if(minYear!=null){
+                        if(Integer.parseInt(loopYear.getCurrentItemValue())==minYear ){
+                            if(minMonth!=null){
+                                if(Integer.parseInt(loopMonth.getCurrentItemValue())<minMonth){
+                                    loopMonth.setCurrentItem(minMonth - 1);
+                                }
+                            }
+                        }else if(Integer.parseInt(loopYear.getCurrentItemValue())<minYear){
+                            loopYear.setCurrentItem(minYear-MIN_YEAR);
+                        }
+                    }
+
+                    if(maxYear!=null){
+                        if(Integer.parseInt(loopYear.getCurrentItemValue())==maxYear ){
+                            if(maxMonth!=null){
+                                if(Integer.parseInt(loopMonth.getCurrentItemValue())>maxMonth){
+                                    loopMonth.setCurrentItem(maxMonth - 1);
+                                }
+                            }
+                        }else if(Integer.parseInt(loopYear.getCurrentItemValue())>maxYear){
+                            loopYear.setCurrentItem(maxYear-MIN_YEAR);
+                        }
+                    }
+
+                    c.set(Integer.parseInt(loopYear.getCurrentItemValue()), Integer.parseInt(loopMonth.getCurrentItemValue()) - 1, 1);
+                    c.roll(Calendar.DATE, false);
+
+                    if(needFixed){
+                        int maxDayOfMonth = c.get(Calendar.DATE);
+                        int fixedCurr = loopDay.getCurrentItem();
+                        loopDay.setArrayList(d(1, maxDayOfMonth));
+                        // 修正被选中的日期最大值
+                        if (fixedCurr > maxDayOfMonth) fixedCurr = maxDayOfMonth - 1;
+                        loopDay.setCurrentItem(fixedCurr);
+                    }
+                }
+            };
+
+            final LoopListener dayLoopListener=new LoopListener() {
+                @Override
+                public void onItemSelect(int item) {
+                    if(minYear!=null && minMonth!=null && minDay!=null
+                            && Integer.parseInt(loopYear.getCurrentItemValue())==minYear
+                            && Integer.parseInt(loopMonth.getCurrentItemValue())==minMonth
+                            && Integer.parseInt(loopDay.getCurrentItemValue())<minDay
+                            ){
+                        loopDay.setCurrentItem(minDay-1);
+                    }
+
+                    if(maxYear!=null && maxMonth!=null && maxDay!=null
+                            && Integer.parseInt(loopYear.getCurrentItemValue())==maxYear
+                            && Integer.parseInt(loopMonth.getCurrentItemValue())==maxMonth
+                            && Integer.parseInt(loopDay.getCurrentItemValue())>maxDay
+                            ){
+                        loopDay.setCurrentItem(maxDay-1);
+                    }
+                }
+            };
+            loopYear.setListener(maxDaySyncListener);
+            loopMonth.setListener(maxDaySyncListener);
+            loopDay.setListener(dayLoopListener);
+
+            view.findViewById(R.id.tx_finish).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    dialog.dismiss();
+                    params.callback.onDateSelected(getCurrDateValues());
+                }
+            });
+
+            Window win = dialog.getWindow();
+            win.getDecorView().setPadding(0, 0, 0, 0);
+            WindowManager.LayoutParams lp = win.getAttributes();
+            lp.width = WindowManager.LayoutParams.MATCH_PARENT;
+            lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
+            win.setAttributes(lp);
+            win.setGravity(Gravity.BOTTOM);
+            win.setWindowAnimations(R.style.Rising);
+
+            dialog.setContentView(view);
+            dialog.setCanceledOnTouchOutside(params.canCancel);
+            dialog.setCancelable(params.canCancel);
+
+            params.loopYear = loopYear;
+            params.loopMonth = loopMonth;
+            params.loopDay = loopDay;
+            dialog.setParams(params);
+
+            return dialog;
+        }
+
+        /**
+         * 将数字传化为集合,并且补充0
+         *
+         * @param startNum 数字起点
+         * @param count    数字个数
+         * @return
+         */
+        private static List<String> d(int startNum, int count) {
+            String[] values = new String[count];
+            for (int i = startNum; i < startNum + count; i++) {
+                String tempValue = (i < 10 ? "0" : "") + i;
+                values[i - startNum] = tempValue;
+            }
+            return Arrays.asList(values);
+        }
+
+    }
+}

+ 202 - 0
app/src/main/java/com/sheep/gamegroup/dateview/DateUtil.java

@@ -0,0 +1,202 @@
+package com.sheep.gamegroup.dateview;
+
+import android.util.Log;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by lmt on 16/7/6.
+ */
+public class DateUtil {
+
+    public static final String ymdhms = "yyyy-MM-dd HH:mm:ss";
+    public static final String ymd = "yyyy-MM-dd";
+
+    public static String monthNumToMonthName(String month) {
+        String m = month;
+        if ("1".equals(month)) {
+            m = "一月份";
+        } else if ("2".equals(month)) {
+            m = "二月份";
+        } else if ("3".equals(month)) {
+            m = "三月份";
+        } else if ("4".equals(month)) {
+            m = "四月份";
+        } else if ("5".equals(month)) {
+            m = "五月份";
+        } else if ("6".equals(month)) {
+            m = "六月份";
+        } else if ("7".equals(month)) {
+            m = "七月份";
+        } else if ("8".equals(month)) {
+            m = "八月份";
+        } else if ("9".equals(month)) {
+            m = "九月份";
+        } else if ("10".equals(month)) {
+            m = "十月份";
+        } else if ("11".equals(month)) {
+            m = "十一月份";
+        } else if ("12".equals(month)) {
+            m = "十二月份";
+        }
+        return m;
+    }
+
+    public static String getTomorrow() {
+        Calendar calendar = Calendar.getInstance();
+        calendar.add(Calendar.DAY_OF_MONTH, 1);
+        int year = calendar.get(Calendar.YEAR);
+        int month = calendar.get(Calendar.MONTH) + 1;
+        int day = calendar.get(Calendar.DAY_OF_MONTH);
+        return year + "-" + (month > 9 ? month : ("0" + month)) + "-" + day;
+    }
+
+    public static int getYear() {
+        Calendar calendar = Calendar.getInstance();
+        return calendar.get(Calendar.YEAR);
+    }
+
+    public static String getToday() {
+        Calendar calendar = Calendar.getInstance();
+        int year = calendar.get(Calendar.YEAR);
+        int month = calendar.get(Calendar.MONTH) + 1;
+        int day = calendar.get(Calendar.DAY_OF_MONTH);
+        return year + "-" + (month > 9 ? month : ("0" + month)) + "-" + day;
+    }
+
+    public static List<Integer> getDateForString(String date) {
+        String[] dates = date.split("-");
+        List<Integer> list = new ArrayList<>();
+        list.add(Integer.parseInt(dates[0]));
+        list.add(Integer.parseInt(dates[1]));
+        list.add(Integer.parseInt(dates[2]));
+        return list;
+    }
+
+    public static Calendar getCalendar(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        return calendar;
+    }
+
+
+    public static String formatDate(String date, String format) {
+        String resultD = date;
+        SimpleDateFormat sdf = new SimpleDateFormat(format);
+        try {
+            Date d = sdf.parse(date);
+            resultD = sdf.format(d);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return resultD;
+    }
+
+    public static String formatDate(long milliseconds, String format) {
+        String resultD = "";
+        SimpleDateFormat sdf = new SimpleDateFormat(format);
+        try {
+            Date d = new Date(milliseconds);
+            resultD = sdf.format(d);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return resultD;
+    }
+
+    public static Date formatDateStr(String date, String format) {
+        SimpleDateFormat sdf = new SimpleDateFormat(format);
+        Date date1 = null;
+        try {
+            date1 = sdf.parse(date);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return date1;
+    }
+
+    /**
+     * 通过年份和月份 得到当月的日子
+     *
+     * @param year
+     * @param month
+     * @return
+     */
+    public static int getMonthDays(int year, int month) {
+        month++;
+        switch (month) {
+            case 1:
+            case 3:
+            case 5:
+            case 7:
+            case 8:
+            case 10:
+            case 12:
+                return 31;
+            case 4:
+            case 6:
+            case 9:
+            case 11:
+                return 30;
+            case 2:
+                if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
+                    return 29;
+                } else {
+                    return 28;
+                }
+            default:
+                return -1;
+        }
+    }
+
+    /**
+     * 返回当前月份1号位于周几
+     *
+     * @param year  年份
+     * @param month 月份,传入系统获取的,不需要正常的
+     * @return 日:1		一:2		二:3		三:4		四:5		五:6		六:7
+     */
+    public static int getFirstDayWeek(int year, int month) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(year, month, 1);
+        Log.d("DateView", "DateView:First:" + calendar.getFirstDayOfWeek());
+        return calendar.get(Calendar.DAY_OF_WEEK);
+    }
+
+    public static String getDayWeek(int year, int month, int day) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(year, month, day);
+        Log.d("DateView", "DateView:First:" + calendar.getFirstDayOfWeek());
+
+        switch (calendar.get(Calendar.DAY_OF_WEEK)) {
+            case 1:
+                return "周日";
+
+            case 2:
+                return "周一";
+
+            case 3:
+                return "周二";
+
+            case 4:
+                return "周三";
+
+            case 5:
+                return "周四";
+
+            case 6:
+                return "周五";
+
+            case 7:
+                return "周六";
+
+            default:
+                return "";
+
+        }
+    }
+}

+ 12 - 0
app/src/main/java/com/sheep/gamegroup/dateview/LoopListener.java

@@ -0,0 +1,12 @@
+// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
+// Jad home page: http://www.geocities.com/kpdus/jad.html
+// Decompiler options: braces fieldsfirst space lnc 
+
+package com.sheep.gamegroup.dateview;
+
+
+public interface LoopListener
+{
+
+    void onItemSelect(int item);
+}

+ 25 - 0
app/src/main/java/com/sheep/gamegroup/dateview/LoopRunnable.java

@@ -0,0 +1,25 @@
+// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
+// Jad home page: http://www.geocities.com/kpdus/jad.html
+// Decompiler options: braces fieldsfirst space lnc 
+
+package com.sheep.gamegroup.dateview;
+
+// Referenced classes of package com.qingchifan.view:
+//            LoopView, LoopListener
+
+final class LoopRunnable implements Runnable {
+
+    final LoopView loopView;
+
+    LoopRunnable(LoopView loopview) {
+        super();
+        loopView = loopview;
+
+    }
+
+    public final void run() {
+        LoopListener listener = loopView.loopListener;
+        int i = LoopView.getSelectItem(loopView);
+        listener.onItemSelect(i);
+    }
+}

+ 64 - 0
app/src/main/java/com/sheep/gamegroup/dateview/LoopTimerTask.java

@@ -0,0 +1,64 @@
+// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
+// Jad home page: http://www.geocities.com/kpdus/jad.html
+// Decompiler options: braces fieldsfirst space lnc 
+
+package com.sheep.gamegroup.dateview;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+// Referenced classes of package com.qingchifan.view:
+//            LoopView
+
+final class LoopTimerTask extends TimerTask {
+
+    float a;
+    final float b;
+    final Timer timer;
+    final LoopView loopView;
+
+    LoopTimerTask(LoopView loopview, float f, Timer timer) {
+        super();
+        loopView = loopview;
+        b = f;
+        this.timer = timer;
+        a = 2.147484E+09F;
+    }
+
+    public final void run() {
+        if (a == 2.147484E+09F) {
+            if (Math.abs(b) > 2000F) {
+                if (b > 0.0F) {
+                    a = 2000F;
+                } else {
+                    a = -2000F;
+                }
+            } else {
+                a = b;
+            }
+        }
+        if (Math.abs(a) >= 0.0F && Math.abs(a) <= 20F) {
+            timer.cancel();
+            loopView.handler.sendEmptyMessage(2000);
+            return;
+        }
+        int i = (int) ((a * 10F) / 1000F);
+        LoopView loopview = loopView;
+        loopview.totalScrollY = loopview.totalScrollY - i;
+        if (!loopView.isLoop) {
+            if (loopView.totalScrollY <= (int) ((float) (-loopView.positon) * (loopView.l * (float) loopView.h))) {
+                a = 40F;
+                loopView.totalScrollY = (int) ((float) (-loopView.positon) * (loopView.l * (float) loopView.h));
+            } else if (loopView.totalScrollY >= (int) ((float) (loopView.arrayList.size() - 1 - loopView.positon) * (loopView.l * (float) loopView.h))) {
+                loopView.totalScrollY = (int) ((float) (loopView.arrayList.size() - 1 - loopView.positon) * (loopView.l * (float) loopView.h));
+                a = -40F;
+            }
+        }
+        if (a < 0.0F) {
+            a = a + 20F;
+        } else {
+            a = a - 20F;
+        }
+        loopView.handler.sendEmptyMessage(1000);
+    }
+}

+ 403 - 0
app/src/main/java/com/sheep/gamegroup/dateview/LoopView.java

@@ -0,0 +1,403 @@
+package com.sheep.gamegroup.dateview;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.graphics.Rect;
+import android.graphics.Typeface;
+import android.os.Handler;
+import android.util.AttributeSet;
+import android.view.GestureDetector;
+import android.view.MotionEvent;
+import android.view.View;
+
+import java.util.List;
+import java.util.Timer;
+
+public class LoopView extends View {
+
+    Timer mTimer;
+    int totalScrollY;
+    Handler handler;
+    LoopListener loopListener;
+    private GestureDetector gestureDetector;
+    private int mSelectItem;
+    private GestureDetector.SimpleOnGestureListener simpleOnGestureListener;
+    Context context;
+    Paint paintA;
+    Paint paintB;
+    Paint paintC;
+    List arrayList;
+    int textSize;
+    int g;
+    int h;
+    int colorGray;
+    int colorBlack;
+    int colorGrayLight;
+    float l;
+    boolean isLoop;
+    int n;
+    int o;
+    int mCurrentItem;
+    int positon;
+    int r;
+    int s;
+    int t;
+    int u;
+    int v;
+    int w;
+    float x;
+    float y;
+    float z;
+
+    public LoopView(Context context) {
+        super(context);
+        initLoopView(context);
+    }
+
+    public LoopView(Context context, AttributeSet attributeset) {
+        super(context, attributeset);
+        initLoopView(context);
+    }
+
+    public LoopView(Context context, AttributeSet attributeset, int i1) {
+        super(context, attributeset, i1);
+        initLoopView(context);
+    }
+
+    private void initLoopView(Context context) {
+        textSize = 0;
+        colorGray = 0xffa7a7a7; //0xffafafaf;
+        //colorBlack = 0xff572dc9;// 0xff313131;
+        colorBlack = 0xff333333;
+        colorGrayLight = 0xffdcdcdc; //0xffc5c5c5;
+        l = 2.0F;
+        isLoop = true;
+        positon = -1;
+        r = 9;
+        x = 0.0F;
+        y = 0.0F;
+        z = 0.0F;
+        totalScrollY = 0;
+        simpleOnGestureListener = new LoopViewGestureListener(this);
+        handler = new MessageHandler(this);
+        this.context = context;
+        setTextSize(16F);
+    }
+
+    static int getSelectItem(LoopView loopview) {
+        return loopview.getCurrentItem();
+    }
+
+    static void b(LoopView loopview) {
+        loopview.f();
+    }
+
+    private void d() {
+        if (arrayList == null) {
+            return;
+        }
+        paintA = new Paint();
+        paintA.setColor(colorGray);
+        paintA.setAntiAlias(true);
+        paintA.setTypeface(Typeface.MONOSPACE);
+        paintA.setTextSize(textSize);
+        paintB = new Paint();
+        paintB.setColor(colorBlack);
+        paintB.setAntiAlias(true);
+        paintB.setTextScaleX(1.05F);
+        paintB.setTypeface(Typeface.MONOSPACE);
+        paintB.setTextSize(textSize);
+        paintC = new Paint();
+        paintC.setColor(colorGrayLight);
+        paintC.setAntiAlias(true);
+        paintC.setTypeface(Typeface.MONOSPACE);
+        paintC.setTextSize(textSize);
+        if (android.os.Build.VERSION.SDK_INT >= 11) {
+            setLayerType(1, null);
+        }
+        gestureDetector = new GestureDetector(context, simpleOnGestureListener);
+        gestureDetector.setIsLongpressEnabled(false);
+        e();
+        t = (int) ((float) h * l * (float) (r - 1));
+        s = (int) ((double) (t * 2) / Math.PI);
+        u = (int) ((double) t / Math.PI);
+        v = g + textSize;
+        n = (int) (((float) s - l * (float) h) / 2.0F);
+        o = (int) (((float) s + l * (float) h) / 2.0F);
+        if (positon == -1) {
+            if (isLoop) {
+                positon = (arrayList.size() + 1) / 2;
+            } else {
+                positon = 0;
+            }
+        }
+        mCurrentItem = positon;
+    }
+
+    private void e() {
+        Rect rect = new Rect();
+        for (int i1 = 0; i1 < arrayList.size(); i1++) {
+            // String s1 = (String) arrayList.get(i1);
+            // wangpeng:调整可触摸区域的宽度为4个字符
+            paintB.getTextBounds("0000", 0, "0000".length(), rect);
+            int j1 = rect.width();
+            // wangpeng:调整区域增大2倍,提升体验。
+            j1 = (int) (j1 * 2.0f);
+            if (j1 > g) {
+                g = j1;
+            }
+            paintB.getTextBounds("\u661F\u671F", 0, 2, rect);
+            j1 = rect.height();
+            if (j1 > h) {
+                h = j1;
+            }
+        }
+
+    }
+
+    private void f() {
+        int i1 = (int) ((float) totalScrollY % (l * (float) h));
+        Timer timer = new Timer();
+        mTimer = timer;
+        timer.schedule(new MTimer(this, i1, timer), 0L, 10L);
+    }
+
+    public final void setNotLoop() {
+        isLoop = false;
+    }
+
+    /**
+     * 设置是否循环滚动
+     *
+     * @param cyclic
+     */
+    public final void setCyclic(boolean cyclic) {
+        isLoop = cyclic;
+    }
+
+    public final void setTextSize(float size) {
+        if (size > 0.0F) {
+            textSize = (int) (context.getResources().getDisplayMetrics().density * size);
+        }
+    }
+
+    public final void setCurrentItem(int position) {
+        this.positon = position;
+        totalScrollY = 0;
+        f();
+        invalidate();
+    }
+
+    public final void setListener(LoopListener LoopListener) {
+        loopListener = LoopListener;
+    }
+
+    public final void setArrayList(List arraylist) {
+        arrayList = arraylist;
+        d();
+        invalidate();
+    }
+
+    public final int getCurrentItem() {
+        if (mCurrentItem <= 0) {
+            return 0;
+        }
+        return mCurrentItem;
+    }
+
+    public final String getCurrentItemValue(){
+        return String.valueOf(arrayList.get(getCurrentItem())).trim();
+    }
+
+    protected final void b(float f1) {
+        Timer timer = new Timer();
+        mTimer = timer;
+        timer.schedule(new LoopTimerTask(this, f1, timer), 0L, 20L);
+    }
+
+    protected final void b(int i1) {
+        Timer timer = new Timer();
+        mTimer = timer;
+        timer.schedule(new MyTimerTask(this, i1, timer), 0L, 20L);
+    }
+
+    protected final void c() {
+        if (loopListener != null) {
+            (new Handler()).postDelayed(new LoopRunnable(this), 200L);
+        }
+    }
+
+    protected void onDraw(Canvas canvas) {
+        // wangpeng: 触摸分析辅助线
+        // canvas.drawLine( 0 ,getHeight() / 2, getWidth(), getHeight() / 2, paintA);
+        // canvas.drawLine( getWidth() / 2 ,0 , getWidth()/ 2, getHeight() , paintA);
+
+        String as[];
+        if (arrayList == null) {
+            super.onDraw(canvas);
+            return;
+        }
+        as = new String[r];
+        w = (int) ((float) totalScrollY / (l * (float) h));
+        mCurrentItem = positon + w % arrayList.size();
+        int i1;
+        if (!isLoop) {
+            if (mCurrentItem < 0) {
+                mCurrentItem = 0;
+            }
+            if (mCurrentItem > arrayList.size() - 1) {
+                mCurrentItem = arrayList.size() - 1;
+            }
+            // break;
+        } else {
+            if (mCurrentItem < 0) {
+                mCurrentItem = arrayList.size() + mCurrentItem;
+            }
+            if (mCurrentItem > arrayList.size() - 1) {
+                mCurrentItem = mCurrentItem - arrayList.size();
+            }
+            // continue;
+        }
+        do {
+            int j2 = (int) ((float) totalScrollY % (l * (float) h));
+            int k1 = 0;
+            while (k1 < r) {
+                int l1 = mCurrentItem - (4 - k1);
+                if (isLoop) {
+                    i1 = l1;
+                    if (l1 < 0) {
+                        i1 = l1 + arrayList.size();
+                    }
+                    l1 = i1;
+                    if (i1 > arrayList.size() - 1) {
+                        l1 = i1 - arrayList.size();
+                    }
+                    as[k1] = (String) arrayList.get(l1);
+                } else if (l1 < 0) {
+                    as[k1] = "";
+                } else if (l1 > arrayList.size() - 1) {
+                    as[k1] = "";
+                } else {
+                    as[k1] = (String) arrayList.get(l1);
+                }
+                k1++;
+            }
+            k1 = (v - g) / 2;
+             //canvas.drawLine(0.0F, n, v, n, paintC);
+             //canvas.drawLine(0.0F, o, v, o, paintC);
+            int j1 = 0;
+            while (j1 < r) {
+                canvas.save();
+                double d1 = ((double) ((float) (h * j1) * l - (float) j2) * 3.1415926535897931D) / (double) t;
+                float f1 = (float) (90D - (d1 / 3.1415926535897931D) * 180D);
+                if (f1 >= 90F || f1 <= -90F) {
+                    canvas.restore();
+                } else {
+                    int i2 = (int) ((double) u - Math.cos(d1) * (double) u - (Math.sin(d1) * (double) h) / 2D);
+                    canvas.translate(0.0F, i2);
+                    canvas.scale(1.0F, (float) Math.sin(d1));
+
+                    String str = as[j1];
+
+                    int zoomTextSize = textSize;
+                    double zoom = ((double) textSize - str.length() * 2) / textSize * 1.2;
+                    zoomTextSize = (int) (textSize * zoom);
+                    if (zoomTextSize < 10) {
+                        zoomTextSize = 10;
+                    }
+                    paintA.setTextSize(zoomTextSize);
+                    paintB.setTextSize(zoomTextSize);
+
+                    int startX = (int) (n + (getLeft() * 0.5));
+
+                    Rect rect = new Rect();
+                    paintB.getTextBounds(str, 0, str.length(), rect);
+
+                    int itemWidth = rect.width();
+                    int maxWidth = getWidth();
+
+                    maxWidth -= 2 * startX;
+
+                    if (itemWidth > 0) {
+                        startX += (maxWidth - itemWidth) * 0.5;
+                    }
+                    startX-=30;
+                    if (i2 <= n && h + i2 >= n) {
+                        canvas.save();
+                        canvas.clipRect(0, 0, v, n - i2);
+                        canvas.drawText(as[j1], startX, h, paintA);
+                        canvas.restore();
+                        canvas.save();
+                        canvas.clipRect(0, n - i2, v, (int) ((float) h * l));
+                        canvas.drawText(as[j1], startX, h, paintB);
+                        canvas.restore();
+                    } else if (i2 <= o && h + i2 >= o) {
+                        canvas.save();
+                        canvas.clipRect(0, 0, v, o - i2);
+                        canvas.drawText(as[j1], startX, h, paintB);
+                        canvas.restore();
+                        canvas.save();
+                        canvas.clipRect(0, o - i2, v, (int) ((float) h * l));
+                        canvas.drawText(as[j1], startX, h, paintA);
+                        canvas.restore();
+                    } else if (i2 >= n && h + i2 <= o) {
+                        canvas.clipRect(0, 0, v, (int) ((float) h * l));
+                        canvas.drawText(as[j1], startX, h, paintB);
+                        mSelectItem = arrayList.indexOf(as[j1]);
+                    } else {
+                        canvas.clipRect(0, 0, v, (int) ((float) h * l));
+                        canvas.drawText(as[j1], startX, h, paintA);
+                    }
+                    canvas.restore();
+                }
+                j1++;
+            }
+            super.onDraw(canvas);
+            return;
+        } while (true);
+    }
+
+    protected void onMeasure(int i1, int j1) {
+        d();
+        setMeasuredDimension(v, s);
+    }
+
+    public boolean onTouchEvent(MotionEvent motionevent) {
+        switch (motionevent.getAction()) {
+            case MotionEvent.ACTION_DOWN:
+                x = motionevent.getRawY();
+                break;
+            case MotionEvent.ACTION_MOVE:
+                y = motionevent.getRawY();
+                z = x - y;
+                x = y;
+                totalScrollY = (int) ((float) totalScrollY + z);
+                if (!isLoop) {
+                    if (totalScrollY > (int) ((float) (-positon) * (l * (float) h))) {
+                        break; /* Loop/switch isn't completed */
+                    }
+                    totalScrollY = (int) ((float) (-positon) * (l * (float) h));
+                }
+                break;
+            case MotionEvent.ACTION_UP:
+            default:
+                if (!gestureDetector.onTouchEvent(motionevent) && motionevent.getAction() == 1) {
+                    f();
+                }
+                return true;
+        }
+
+        if (totalScrollY < (int) ((float) (arrayList.size() - 1 - positon) * (l * (float) h))) {
+            invalidate();
+        } else {
+            totalScrollY = (int) ((float) (arrayList.size() - 1 - positon) * (l * (float) h));
+            invalidate();
+        }
+
+        if (!gestureDetector.onTouchEvent(motionevent) && motionevent.getAction() == 1) {
+            f();
+        }
+        return true;
+    }
+}

+ 32 - 0
app/src/main/java/com/sheep/gamegroup/dateview/LoopViewGestureListener.java

@@ -0,0 +1,32 @@
+// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
+// Jad home page: http://www.geocities.com/kpdus/jad.html
+// Decompiler options: braces fieldsfirst space lnc 
+
+package com.sheep.gamegroup.dateview;
+
+import android.view.MotionEvent;
+
+// Referenced classes of package com.qingchifan.view:
+//            LoopView
+
+final class LoopViewGestureListener extends android.view.GestureDetector.SimpleOnGestureListener {
+
+    final LoopView loopView;
+
+    LoopViewGestureListener(LoopView loopview) {
+        super();
+        loopView = loopview;
+    }
+
+    public final boolean onDown(MotionEvent motionevent) {
+        if (loopView.mTimer != null) {
+            loopView.mTimer.cancel();
+        }
+        return true;
+    }
+
+    public final boolean onFling(MotionEvent motionevent, MotionEvent motionevent1, float f, float f1) {
+        loopView.b(f1);
+        return true;
+    }
+}

+ 61 - 0
app/src/main/java/com/sheep/gamegroup/dateview/MTimer.java

@@ -0,0 +1,61 @@
+// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
+// Jad home page: http://www.geocities.com/kpdus/jad.html
+// Decompiler options: braces fieldsfirst space lnc 
+
+package com.sheep.gamegroup.dateview;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+final class MTimer extends TimerTask {
+
+    int a;
+    int b;
+    final int c;
+    final Timer timer;
+    final LoopView loopView;
+
+    MTimer(LoopView loopview, int i, Timer timer) {
+        super();
+        loopView = loopview;
+        c = i;
+        this.timer = timer;
+        a = 0x7fffffff;
+        b = 0;
+    }
+
+    public final void run() {
+        if (a == 0x7fffffff) {
+            if (c < 0) {
+                if ((float) (-c) > (loopView.l * (float) loopView.h) / 2.0F) {
+                    a = (int) (-loopView.l * (float) loopView.h - (float) c);
+                } else {
+                    a = -c;
+                }
+            } else if ((float) c > (loopView.l * (float) loopView.h) / 2.0F) {
+                a = (int) (loopView.l * (float) loopView.h - (float) c);
+            } else {
+                a = -c;
+            }
+        }
+        b = (int) ((float) a * 0.1F);
+        if (b == 0) {
+            if (a < 0) {
+                b = -1;
+            } else {
+                b = 1;
+            }
+        }
+        if (Math.abs(a) <= 0) {
+            timer.cancel();
+            loopView.handler.sendEmptyMessage(3000);
+            return;
+        } else {
+            LoopView loopview = loopView;
+            loopview.totalScrollY = loopview.totalScrollY + b;
+            loopView.handler.sendEmptyMessage(1000);
+            a = a - b;
+            return;
+        }
+    }
+}

+ 35 - 0
app/src/main/java/com/sheep/gamegroup/dateview/MessageHandler.java

@@ -0,0 +1,35 @@
+// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
+// Jad home page: http://www.geocities.com/kpdus/jad.html
+// Decompiler options: braces fieldsfirst space lnc 
+
+package com.sheep.gamegroup.dateview;
+
+import android.os.Handler;
+import android.os.Message;
+
+// Referenced classes of package com.qingchifan.view:
+//            LoopView
+
+final class MessageHandler extends Handler {
+
+    final LoopView a;
+
+    MessageHandler(LoopView loopview) {
+        super();
+        a = loopview;
+    }
+
+    public final void handleMessage(Message paramMessage) {
+        if (paramMessage.what == 1000)
+            this.a.invalidate();
+        while (true) {
+            if (paramMessage.what == 2000)
+                LoopView.b(a);
+            else if (paramMessage.what == 3000)
+                this.a.c();
+            super.handleMessage(paramMessage);
+            return;
+        }
+    }
+
+}

+ 56 - 0
app/src/main/java/com/sheep/gamegroup/dateview/MyTimerTask.java

@@ -0,0 +1,56 @@
+// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
+// Jad home page: http://www.geocities.com/kpdus/jad.html
+// Decompiler options: braces fieldsfirst space lnc 
+
+package com.sheep.gamegroup.dateview;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+// Referenced classes of package com.qingchifan.view:
+//            LoopView
+
+final class MyTimerTask extends TimerTask {
+
+    float a;
+    float b;
+    final int c;
+    final Timer timer;
+    final LoopView loopView;
+
+    MyTimerTask(LoopView loopview, int i, Timer timer) {
+        super();
+        this.loopView = loopview;
+        c = i;
+        this.timer = timer;
+
+        a = 2.147484E+09F;
+        b = 0.0F;
+    }
+
+    public final void run() {
+        if (a == 2.147484E+09F) {
+            a = (float) (c - LoopView.getSelectItem(loopView)) * loopView.l * (float) loopView.h;
+            if (c > LoopView.getSelectItem(loopView)) {
+                b = -1000F;
+            } else {
+                b = 1000F;
+            }
+        }
+        if (Math.abs(a) < 1.0F) {
+            timer.cancel();
+            loopView.handler.sendEmptyMessage(2000);
+            return;
+        }
+        int j = (int) ((b * 10F) / 1000F);
+        int i = j;
+        if (Math.abs(a) < (float) Math.abs(j)) {
+            i = (int) (-a);
+        }
+        LoopView loopview = loopView;
+        loopview.totalScrollY = loopview.totalScrollY - i;
+        float f = a;
+        a = (float) i + f;
+        loopView.handler.sendEmptyMessage(1000);
+    }
+}

+ 128 - 0
app/src/main/java/com/sheep/gamegroup/dateview/TimePickerDialog.java

@@ -0,0 +1,128 @@
+package com.sheep.gamegroup.dateview;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+
+import com.sheep.jiuyan.samllsheep.R;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class TimePickerDialog extends Dialog {
+
+    public interface OnTimeSelectedListener {
+        void onTimeSelected(int[] times);
+    }
+
+
+    private Params params;
+
+    public TimePickerDialog(Context context, int themeResId) {
+        super(context, themeResId);
+    }
+
+    private void setParams(TimePickerDialog.Params params) {
+        this.params = params;
+    }
+
+
+    private static final class Params {
+        private boolean shadow = true;
+        private boolean canCancel = true;
+        private LoopView loopHour, loopMin;
+        private OnTimeSelectedListener callback;
+    }
+
+    public static class Builder {
+        private final Context context;
+        private final TimePickerDialog.Params params;
+
+        public Builder(Context context) {
+            this.context = context;
+            params = new TimePickerDialog.Params();
+        }
+
+        /**
+         * 获取当前选择的时间
+         *
+         * @return int[]数组形式返回。例[12,30]
+         */
+        private final int[] getCurrDateValues() {
+            int currHour = Integer.parseInt(params.loopHour.getCurrentItemValue());
+            int currMin = Integer.parseInt(params.loopMin.getCurrentItemValue());
+            return new int[]{currHour, currMin};
+        }
+
+        public TimePickerDialog create() {
+            final TimePickerDialog dialog = new TimePickerDialog(context, params.shadow ? R.style.Theme_Light_NoTitle_Dialog : R.style.Theme_Light_NoTitle_NoShadow_Dialog);
+            View view = LayoutInflater.from(context).inflate(R.layout.layout_picker_time, null);
+
+            final LoopView loopHour = (LoopView) view.findViewById(R.id.loop_hour);
+
+            //修改优化边界值 by lmt 16/ 9 /12.禁用循环滑动,循环滑动有bug
+            loopHour.setCyclic(false);
+            loopHour.setArrayList(d(0, 24));
+            loopHour.setCurrentItem(12);
+
+            final LoopView loopMin = (LoopView) view.findViewById(R.id.loop_min);
+            loopMin.setCyclic(false);
+            loopMin.setArrayList(d(0, 60));
+            loopMin.setCurrentItem(30);
+
+            view.findViewById(R.id.tx_finish).setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    dialog.dismiss();
+                    params.callback.onTimeSelected(getCurrDateValues());
+                }
+            });
+
+            Window win = dialog.getWindow();
+            win.getDecorView().setPadding(0, 0, 0, 0);
+            WindowManager.LayoutParams lp = win.getAttributes();
+            lp.width = WindowManager.LayoutParams.MATCH_PARENT;
+            lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
+            win.setAttributes(lp);
+            win.setGravity(Gravity.BOTTOM);
+            win.setWindowAnimations(R.style.Rising);
+
+            dialog.setContentView(view);
+            dialog.setCanceledOnTouchOutside(params.canCancel);
+            dialog.setCancelable(params.canCancel);
+
+            params.loopHour = loopHour;
+            params.loopMin = loopMin;
+            dialog.setParams(params);
+
+            return dialog;
+        }
+
+
+        public Builder setOnTimeSelectedListener(OnTimeSelectedListener onTimeSelectedListener) {
+            params.callback = onTimeSelectedListener;
+            return this;
+        }
+
+
+        /**
+         * 将数字传化为集合,并且补充0
+         *
+         * @param startNum 数字起点
+         * @param count    数字个数
+         * @return
+         */
+        private static List<String> d(int startNum, int count) {
+            String[] values = new String[count];
+            for (int i = startNum; i < startNum + count; i++) {
+                String tempValue = (i < 10 ? "0" : "") + i;
+                values[i - startNum] = tempValue;
+            }
+            return Arrays.asList(values);
+        }
+    }
+}

+ 97 - 71
app/src/main/java/com/sheep/gamegroup/helper/TaskHelper.java

@@ -44,13 +44,15 @@ import static com.sheep.gamegroup.util.UMConfigUtils.Event.FIND_TASK;
  */
 public class TaskHelper {
     private Action1<Integer> action1;
-    public TaskHelper(Action1<Integer> action1){
+
+    public TaskHelper(Action1<Integer> action1) {
         this.action1 = action1;
     }
 
     private TaskAcceptedEty taskAcceptedEty;
     private int release_task_id;
     private Activity activity;
+
     public void initAcceptedTask(Activity activity, final int release_task_id) {
         this.activity = activity;
         this.release_task_id = release_task_id;
@@ -71,7 +73,9 @@ public class TaskHelper {
                     }
                 });
     }
+
     private TaskReleaseEty taskReleaseEty;
+
     private void initTask(int release_task_id) {
         SheepApp.getInstance().getNetComponent().getApiService().taskDesc(release_task_id)
                 .subscribeOn(Schedulers.io())
@@ -80,7 +84,7 @@ public class TaskHelper {
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                         taskReleaseEty = baseMessage.getData(TaskReleaseEty.class);
-                        if(action1 != null)
+                        if (action1 != null)
                             action1.call(1);//刷新界面
 
                     }
@@ -90,7 +94,9 @@ public class TaskHelper {
                     }
                 });
     }
+
     private OrienteeringDetail orienteeringDetail;
+
     private void initGameTask(final View itemView, String third_task_id) {
         SheepApp.getInstance().getNetComponent().getApiService().getMyGame(third_task_id)
                 .subscribeOn(Schedulers.io())
@@ -114,25 +120,26 @@ public class TaskHelper {
     }
 
     private RxjavaCountDownTimer timer;
+
     public void loadTask(final View itemView) {
         itemView.setVisibility(View.VISIBLE);
-        if(taskReleaseEty == null){
+        if (taskReleaseEty == null) {
             return;
         }
         final TaskEty taskEty = taskReleaseEty.getTask();
-        if(taskEty == null){
+        if (taskEty == null) {
             return;
         }
-        ImageView find_information_game_icon = (ImageView)itemView.findViewById(R.id.find_information_game_icon);
-        TextView find_information_game_name = (TextView)itemView.findViewById(R.id.find_information_game_name);
-        TextView find_information_game_surplus = (TextView)itemView.findViewById(R.id.find_information_game_surplus);
-        TextView find_information_game_surplus1 = (TextView)itemView.findViewById(R.id.find_information_game_surplus1);
-        TextView find_information_game_time = (TextView)itemView.findViewById(R.id.find_information_game_time);
-        TextView find_information_game_yuan = (TextView)itemView.findViewById(R.id.find_information_game_yuan);
-        TextView find_information_game_task0 = (TextView)itemView.findViewById(R.id.find_information_game_task_top);
-        TextView find_information_game_task = (TextView)itemView.findViewById(R.id.find_information_game_task_bottom);
-        final TextView find_information_game_task_end_time = (TextView)itemView.findViewById(R.id.find_information_game_task_end_time);
-        if(orienteeringDetail != null){//已经完成的游戏任务
+        ImageView find_information_game_icon = (ImageView) itemView.findViewById(R.id.find_information_game_icon);
+        TextView find_information_game_name = (TextView) itemView.findViewById(R.id.find_information_game_name);
+        TextView find_information_game_surplus = (TextView) itemView.findViewById(R.id.find_information_game_surplus);
+        TextView find_information_game_surplus1 = (TextView) itemView.findViewById(R.id.find_information_game_surplus1);
+        TextView find_information_game_time = (TextView) itemView.findViewById(R.id.find_information_game_time);
+        TextView find_information_game_yuan = (TextView) itemView.findViewById(R.id.find_information_game_yuan);
+        TextView find_information_game_task0 = (TextView) itemView.findViewById(R.id.find_information_game_task_top);
+        TextView find_information_game_task = (TextView) itemView.findViewById(R.id.find_information_game_task_bottom);
+        final TextView find_information_game_task_end_time = (TextView) itemView.findViewById(R.id.find_information_game_task_end_time);
+        if (orienteeringDetail != null) {//已经完成的游戏任务
             find_information_game_task.setVisibility(View.VISIBLE);
             find_information_game_task0.setVisibility(View.VISIBLE);
             find_information_game_yuan.setVisibility(View.INVISIBLE);
@@ -145,14 +152,14 @@ public class TaskHelper {
             find_information_game_task.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View view) {
-                    ViewUtil.showGamePayAccount(activity, orienteeringDetail.getGame_id(),orienteeringDetail.getName());
+                    ViewUtil.showGamePayAccount(activity, orienteeringDetail.getGame_id(), orienteeringDetail.getName());
                 }
             });
             itemView.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View view) {
                     reloadDataType = 1;//回来后将刷新界面数据 taskAcceptedEty
-                    Jump2View.getInstance().goGameTaskDetailView(activity,  release_task_id, orienteeringDetail.getGame_id(),1);
+                    Jump2View.getInstance().goGameTaskDetailView(activity, release_task_id, orienteeringDetail.getGame_id(), 1);
                     UMConfigUtils.IdEvent.TASK.commit(release_task_id);
                 }
             });
@@ -173,7 +180,7 @@ public class TaskHelper {
                 find_information_game_task_end_time.setVisibility(View.GONE);
                 find_information_game_yuan.setGravity(Gravity.END);
                 String[] remarks = new String[0];
-                if(!TextUtils.isEmpty(taskEty.getRemarks())) {
+                if (!TextUtils.isEmpty(taskEty.getRemarks())) {
                     remarks = taskEty.getRemarks().split(";");
                 }
                 find_information_game_time.setText(remarks.length > 0 ? remarks[0] : "");
@@ -195,11 +202,11 @@ public class TaskHelper {
             case 1003://游戏任务
             default:
                 find_information_game_yuan.setGravity(Gravity.CENTER);
-                if(taskAcceptedEty != null){
+                if (taskAcceptedEty != null) {
                     switch (taskAcceptedEty.getStatus()) {
                         case 1://"已接受任务";
                         case 2:// "正在进行中";
-                            if(taskReleaseEty.getDeadline().equals("永久")){
+                            if (taskReleaseEty.getDeadline().equals("永久")) {
                                 find_information_game_task_end_time.setVisibility(View.GONE);
                             } else {
                                 find_information_game_task_end_time.setVisibility(View.VISIBLE);
@@ -263,7 +270,7 @@ public class TaskHelper {
                             find_information_game_task.setVisibility(View.VISIBLE);
                             find_information_game_task.setText("已经完成");
                             find_information_game_task.setEnabled(false);
-                            if(taskEty.isGameTask()){
+                            if (taskEty.isGameTask()) {
                                 initGameTask(itemView, taskEty.getThird_task_id());
                             }
                             break;
@@ -279,12 +286,12 @@ public class TaskHelper {
                             find_information_game_task.setVisibility(View.GONE);
                             break;
                     }
-                } else if(taskReleaseEty.isOffline()){//任务已经下线
+                } else if (taskReleaseEty.isOffline()) {//任务已经下线
                     find_information_game_task_end_time.setVisibility(View.GONE);
                     find_information_game_task.setVisibility(View.VISIBLE);
                     find_information_game_task.setText("已经下线");
                     find_information_game_task.setEnabled(false);
-                } else if("0".equals(taskReleaseEty.getLast_num())){
+                } else if ("0".equals(taskReleaseEty.getLast_num())) {
                     find_information_game_task_end_time.setVisibility(View.GONE);
                     find_information_game_task.setVisibility(View.VISIBLE);
                     find_information_game_task.setText("任务已抢光");
@@ -325,33 +332,42 @@ public class TaskHelper {
         taskReleaseEty = null;
         initTask(release_task_id);
     }
+
     private int reloadDataType;//0 不刷新数据 1刷新 taskAcceptedEty
+
     public void onResume() {
-        switch (reloadDataType){
+        switch (reloadDataType) {
             case 1:
                 refreshTask();
                 break;
         }
     }
+
     /**
      * 清理计时器
      */
     public void clear() {
-        if(timer != null)
+        if (timer != null)
             timer.clear();
         timer = null;
+        action1 = null;
+    }
+    /**
+     * 退出
+     */
+    public void onDestroy() {
+        clear();
+        action1 = null;
+        activity = null;
     }
 
-
-
-
-
-
-
-
-
-
-
+    public void destroy() {
+        if (timer != null)
+            timer.clear();
+        timer = null;
+        action1 = null;
+        activity = null;
+    }
 
 
     private DownloadHelper downloadHelper = new DownloadHelper();
@@ -363,6 +379,7 @@ public class TaskHelper {
 
     /**
      * 设置剩余份数文本
+     *
      * @param textView
      * @param taskReleaseEty
      */
@@ -370,78 +387,87 @@ public class TaskHelper {
         textView.setVisibility(View.VISIBLE);
         ViewUtil.setText(textView, String.format(Locale.CHINA, "剩余%s份", taskReleaseEty.getLast_num()));
     }
+
     /**
      * 设置游戏类型文本
+     *
      * @param textView
      * @param taskReleaseEty
      */
     public static void setTaskTypeText(TextView textView, TaskReleaseEty taskReleaseEty) {
+        textView.setVisibility(View.VISIBLE);
         String[] textColor = getTaskTypeTextColor(taskReleaseEty.getTask());
         ViewUtil.setColorMapText(textView, String.format(Locale.CHINA, "%s", textColor[0]), textColor[0], textColor[1]);
-        textView.setBackgroundResource(getTaskTypeTextBg(taskReleaseEty.getTask()));
+        textView.setBackgroundResource(R.drawable.shape_blue_stroke_rectangle_no_lb);
         textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 9);
         int padding = textView.getContext().getResources().getDimensionPixelSize(R.dimen.content_padding_2);
-        textView.setPadding(4*padding, padding, 4*padding, padding);
+        textView.setPadding(4 * padding, padding, 4 * padding, padding);
     }
-    //    private int task_type = 1;// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思 1000连续任务, 1002 1003游戏任务 1002平台游戏,1003 腾讯游戏,1004 小米游戏
-    private static String[] getTaskTypeTextColor(TaskEty task) {
-        switch (task.getTask_type()){
-            case 1002:
-            case 1003:
-            case 1004:
-                return new String[]{"游戏任务", "#F81B5F"};
-            case 1000:
-                return new String[]{"连续任务", "#2FA255"};
-            default:
-                return new String[]{"试玩任务", "#FFA21C"};
-        }
+
+    /**
+     * 设置游戏标识文本,如:现金,福利
+     *
+     * @param textView
+     * @param taskReleaseEty
+     */
+    public static void setTaskTagText(TextView textView, TaskReleaseEty taskReleaseEty) {
+        textView.setVisibility(View.VISIBLE);
+        ViewUtil.setColorMapText(textView, String.format(Locale.CHINA, "%s", taskReleaseEty.getCashOrWelfare()), taskReleaseEty.getCashOrWelfare(), "#FD2D54");
+        textView.setBackgroundResource(R.drawable.shape_red_stroke_rectangle_no_lb);
+        textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 9);
+        int padding = textView.getContext().getResources().getDimensionPixelSize(R.dimen.content_padding_2);
+        textView.setPadding(4 * padding, padding, 4 * padding, padding);
     }
+
     //    private int task_type = 1;// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思 1000连续任务, 1002 1003游戏任务 1002平台游戏,1003 腾讯游戏,1004 小米游戏
-    private static int getTaskTypeTextBg(TaskEty task) {
-        switch (task.getTask_type()){
+    private static String[] getTaskTypeTextColor(TaskEty task) {
+        switch (task.getTask_type()) {
             case 1002:
             case 1003:
             case 1004:
-                return R.drawable.shape_green_stroke_rectangle;
+                return new String[]{"游戏任务", "#4889FF"};//已经修改为一种颜色了
             case 1000:
-                return R.drawable.shape_red_stroke_rectangle;
+                return new String[]{"连续任务", "#4889FF"};
             default:
-                return R.drawable.shape_yellow_stroke_rectangle;
+                return new String[]{"试玩任务", "#4889FF"};
         }
     }
 
     /**
      * 设置当前子任务为选中状态
+     * 1、 任务未开启时——即将开启
+     * 2、 任务未领取时——可领取
+     * 3、 任务已领取待完成时——进行中
+     * 4、 任务已提交待审核——待审核
+     * 5、 任务审核通过——已完成
+     * 6、 任务审核失败——审核失败
+     * 7、任务已过期未完成——已过期
+     *
      * @param taskEty
      */
     public static void setSelectFlag(TaskEty taskEty) {
         List<TaskChild> taskChildList;
-        if(taskEty == null || ListUtil.isEmpty(taskChildList = taskEty.getChild()))
+        if (taskEty == null || ListUtil.isEmpty(taskChildList = taskEty.getChild()))
             return;
         TaskChild selectTaskChild = null;
-        outFor: for (TaskChild taskChild : taskChildList) {
-            switch (taskChild.getStatus()){
-                case 0:
-                case 1:
+        outFor:
+        for (TaskChild taskChild : taskChildList) {
+            switch (taskChild.getStatus()) {
                 case 2:
                 case 3:
-                case 4:
-                case 6:
+                case 6://找到可领取或者进行中或者审核失败则直接退出循环
                     selectTaskChild = taskChild;
                     break outFor;
+                case 0:
+                case 1:
+                case 4:
+                case 5:
+                    if (selectTaskChild == null)
+                        selectTaskChild = taskChild;
+                    break;
             }
         }
-        if(selectTaskChild != null)
+        if (selectTaskChild != null)
             selectTaskChild.setSelectFlag(true);
-
-    /*
-    1、 任务未开启时——即将开启
-2、 任务未领取时——可领取
-3、 任务已领取待完成时——进行中
-4、 任务已提交待审核——待审核
-5、 任务审核通过——已完成
-6、 任务审核失败——审核失败
-7、任务已过期未完成——已过期
-     */
     }
 }

+ 150 - 39
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);
 
     /**
-     *
      * @param jsonObject
      * @return
      */
@@ -45,25 +44,36 @@ public interface ApiService {
     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/")
     Observable<BaseMessage> getInfo();
+
     /**
      * 获取用户的已经挂机微信
      */
     @GET("app/wechat/")
     Observable<BaseMessage> getWebchat();
+
     /**
      * 提交用户的微信账号与密码
      */
     @POST("app/wechat/")
     Observable<BaseMessage> postWebchat(@Body JSONObject jsonObject);
+
     /**
      * 提交用户的微信账号与密码
      */
     @PUT("app/wechat/{id}")
     Observable<BaseMessage> putWebchat(@Path("id") int id, @Body JSONObject jsonObject);
+
     /**
      * 获取微信挂机功能是否开启
      */
@@ -89,7 +99,7 @@ public interface ApiService {
      * 获取任务记录列表
      */
     @GET("app/accepted_task/")
-    Observable<BaseMessage> acceptedTask(@Query("page") int page, @Query("per_page") int per_page);
+    Observable<BaseMessage> acceptedTask(@Query("page") int page, @Query("per_page") int per_page, @Query("status") int status);
 
     /**
      * 领取任务
@@ -103,12 +113,13 @@ public interface ApiService {
      */
     @GET("app/accepted_task/new_run_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/")
     Observable<BaseMessage> commitAutoTask(@Body JSONObject param);
@@ -121,6 +132,7 @@ public interface ApiService {
                                         @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("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);
 
 
-
     /**
      * 邀请赚钱
      */
     @GET("app/auth/login_by_we_chat")
     Observable<BaseMessage> askMakeMoney(@Body String jsonObject);
+
     /**
      * 用户提现记录
      */
     @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
      */
     @POST("app/auth/login_by_we_chat")
     Observable<BaseMessage> LoginByWX(@Body com.alibaba.fastjson.JSONObject jsonObject);
 
 
-
     /**
      * qq登录
+     *
      * @param jsonObject
      */
     @POST("app/auth/login_by_qq")
     Observable<BaseMessage> LoginByQQ(@Body com.alibaba.fastjson.JSONObject jsonObject);
 
 
-
     @GET("app/user/friend_count_and_award")
     Observable<BaseMessage> FriendCountAndAward();
 
@@ -179,23 +190,38 @@ public interface ApiService {
     Observable<BaseMessage> giveTaskStatue(@Path("id") int id);
 
 
-
+    /**
+     * @param jsonObject
+     * @return
+     */
     @PUT("app/user/change_base_info")
-    Observable<BaseMessage> changeBaseInfo (@Body com.alibaba.fastjson.JSONObject jsonObject);
+    Observable<BaseMessage> changeBaseInfo(@Body com.alibaba.fastjson.JSONObject jsonObject);
 
     /**
+     * @param jsonObject
+     * @return   领红包
+     */
+    @POST("app/user/receive_red_packet")
+    Observable<BaseMessage> exchangeRedPackage(@Query("invitation_code") String jsonObject);
+
+    /**新手红包
+     * @return  .
+     */
+    @POST("app/newbie_task/login_red_packet")
+    Observable<BaseMessage>getNewRedPackage();
+    /**
      * 更换手机号
      */
     @POST("app/user/switch_phone")
     Observable<BaseMessage> switchPhone(@Body JSONObject jsonObject);
 
 
-
     /**
      * 更换手机号
      */
     @PUT("app/user/bind_all_real_info")
     Observable<BaseMessage> bindALl(@Body JSONObject jsonObject);
+
     /**
      * 绑定手机号
      */
@@ -206,23 +232,26 @@ public interface ApiService {
      * 实时动态
      */
     @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
      */
     @POST("app/user/sms_for_bind_mobile")
     Observable<BaseMessage> smsBindMobile(@Body JSONObject jsonObject);
+
     /**
      * 修改任务进度
      */
     @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")
 //    Observable<BaseMessage> taskStatus(@Body JSONObject jsonObject);
 
     /**
-     *下载任务回调
+     * 下载任务回调
+     *
      * @param jsonObject
      * @return
      */
@@ -231,6 +260,7 @@ public interface ApiService {
 
     /**
      * 获取可用余额
+     *
      * @return
      */
     @GET("app/user/get_can_withdraw_amount")
@@ -238,8 +268,10 @@ public interface ApiService {
 
     @GET("loan/userRecord")
     Observable<BaseMessage> userRecord();
+
     @GET("loan/getYinkerLoanUrl")
     Observable<BaseMessage> getYinkerLoanUrl();
+
     @GET("loan/getYinkerRepaymentUrl")
     Observable<BaseMessage> getYinkerRepaymentUrl();
 
@@ -252,17 +284,22 @@ public interface ApiService {
 
     @GET("app/newbie_task")
     Observable<BaseMessage> getNewbieTask();
+
     @PUT("app/newbie_task")
     Observable<BaseMessage> putNewbieTask(@Body JSONObject jsonObject);
+
     @POST("app/newbie_task/learn_finish")
     Observable<BaseMessage> appNewbieTaskLearnFinish();
 
     @GET("app/user/friend_list")
     Observable<BaseMessage> getUserFriendList(@Query("page") int page, @Query("per_page") int per_page);
+
     @GET("app/release_task/credit_card")
     Observable<BaseMessage> getReleaseTaskCreditCard();
+
     @POST("app/accepted_task/credit_card")
     Observable<BaseMessage> releaseTaskCreditCard(@Body JSONObject jsonObject);
+
     @PUT("app/accepted_task/{id}/credit_card")
     Observable<BaseMessage> releaseTaskCreditCard(@Path("id") int id, @Body JSONObject jsonObject);
 
@@ -277,6 +314,7 @@ public interface ApiService {
      */
     @GET("app/bulletin")
     Observable<BaseMessage> bulletin(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
      * 获取微信辅助h5链接
      */
@@ -288,8 +326,10 @@ public interface ApiService {
      */
     @GET("app/release_task/{id}/desc")
     Observable<BaseMessage> taskDesc(@Path("id") int id);
+
     @GET("app/credit/{id}")
     Observable<BaseMessage> getCredit(@Path("id") int id);
+
     @POST("app/newbie_task/add_qq")
     Observable<BaseMessage> newbieTaskAddQq(@Body JSONObject jsonObject);
 
@@ -314,11 +354,13 @@ public interface ApiService {
      */
     @GET("app/user/my_assets")
     Observable<BaseMessage> getMyAssets();
+
     /**
      * 充值记录
      */
     @GET("app/recharge/recharge_balance_log")
     Observable<BaseMessage> getRechargeBalanceLog(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
      * 充值q币记录
      */
@@ -330,6 +372,7 @@ public interface ApiService {
 
     /**
      * 获取下发充值类型
+     *
      * @param page
      * @return
      */
@@ -338,6 +381,7 @@ public interface ApiService {
 
     /**
      * 充值
+     *
      * @param jsonObject
      * @return
      */
@@ -347,6 +391,7 @@ public interface ApiService {
 
     /**
      * 绵羊币充值
+     *
      * @param parame
      * @return
      */
@@ -378,6 +423,7 @@ public interface ApiService {
      */
     @GET("app/user/agreement/")
     Observable<BaseMessage> getAgreement();
+
     /**
      * 提交协议
      */
@@ -448,11 +494,13 @@ public interface ApiService {
      */
     @GET("app/punch/punch_and_sign_count")
     Observable<BaseMessage> getPunchAndSignCount();
+
     /**
      * 获取广告类型 1:开屏广告 2:弹窗广告
      */
     @GET("app/advertising/advertisements")
     Observable<BaseMessage> getAdvertising(@Query("type") int type);
+
     /**
      * 新功能介绍
      */
@@ -464,51 +512,61 @@ public interface ApiService {
      */
     @GET("app/user/check_label")
     Observable<BaseMessage> checkLabel();
+
     /**
      * 查询标签列表
      */
     @GET("app/user/label")
     Observable<BaseMessage> getLabelList();
+
     /**
      * 查询标签列表
      */
     @POST("app/user/label")
     Observable<BaseMessage> postLabelList(@Body JSONObject jsonObject);
+
     /**
      * 关于我们
      */
     @GET("app/about_us/new_about_us")
     Observable<BaseMessage> getNewAboutUs();
+
     /**
      * 获取定向消费游戏列表
      */
     @GET("app/game_consumption/my_games")
     Observable<BaseMessage> getMyGames(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
      * 获取定向消费游戏
      */
     @GET("app/game_consumption/my_game/{id}")
     Observable<BaseMessage> getMyGame(@Path("id") String third_task_id);
+
     /**
      * 获取正在运行的游戏任务
      */
     @GET("app/accepted_task/run_game_task")
     Observable<BaseMessage> run_game_task();
+
     /**
      * 领取游戏任务奖励
      */
     @PUT("app/accepted_task/receive_award/{id}")
     Observable<BaseMessage> receive_award(@Path("id") int id);
+
     /**
      * 游戏消费下单
      */
     @POST("app/game_consumption")
     Observable<BaseMessage> game_consumption(@Body JSONObject jsonObject);
+
     /**
      * 能用的绵羊币金额
      */
     @GET("app/game_consumption/can_user_sheep_amount")
     Observable<BaseMessage> can_user_sheep_amount(@Query("amount") int amount, @Query("game_id") String game_id);
+
     /**
      * url配置
      */
@@ -517,12 +575,15 @@ public interface ApiService {
 
     /**
      * 充值订单列表
+     *
      * @return
      */
     @GET("app/game_consumption/orders")
     Observable<BaseMessage> getConsumptionOrders(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
      * 再次充值 或 放弃充值
+     *
      * @return
      */
     @PUT("app/game_consumption/order/{id}")
@@ -530,12 +591,15 @@ public interface ApiService {
 
     /**
      * 获取最新版本信息
+     *
      * @return
      */
     @GET("app/version/new_version")
     Observable<BaseMessage> getNewVersion(@Query("type") int type);
+
     /**
      * 获取接收任务详情
+     *
      * @return
      */
     @GET("app/accepted_task/detail/{id}")
@@ -552,11 +616,13 @@ public interface ApiService {
      */
     @GET("app/common_config")
     Observable<BaseMessage> commonConfig(@Query("type_name") String type_name);
+
     /**
      * 获取用户当前代理信息
      */
     @GET("app/agent/region")
     Observable<BaseMessage> agentRegion();
+
     /**
      * 收支明细
      */
@@ -569,66 +635,78 @@ public interface ApiService {
      */
     @GET("app/find/articles_tags/list")
     Observable<BaseMessage> getFindTagList();
+
     /**
      * 发现模块列表
      */
     @GET("app/find/articles/list")
     Observable<BaseMessage> getFindList(@Query("page") int page, @Query("per_page") int per_page, @Query("tag_id") int id);
+
     /**
      * 发现内容详情
      */
     @GET("app/find/articles")
     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")
     Observable<BaseMessage> commitAppScore(@Body JSONObject jsonObject);
+
     /**
      * 获取应用详情
      */
     @GET("app/find/applications")
     Observable<BaseMessage> getAppDetail(@Query("id") int id);
+
     /**
      * 应用 各评分人数
      */
     @GET("app/find/applications/score_num")
     Observable<BaseMessage> getAppScoreNum(@Query("id") int id);
+
     /**
      * 应用我的评分
      */
     @GET("app/find/applications/my_score")
     Observable<BaseMessage> getMyAppScore(@Query("id") int id);
+
     /**
      * 应用 下载/预约 时先调用此接口生成记录
      */
     @GET("app/find/applications/downloads")
     Observable<BaseMessage> recordAppDownloads(@Query("id") int id);
+
     /**
      * 取消  应用 下载/预约
      */
     @DELETE("app/find/applications/downloads")
     Observable<BaseMessage> deleteDownloads(@Query("id") int id);
+
     /**
      * 获取预约未下载数量
      */
     @GET("app/find/applications/downloads/status")
     Observable<BaseMessage> getFindAppDownloadsStatus();
+
     /**
      * 获取预约下载列表
      */
     @GET("app/find/applications/downloads_list")
     Observable<BaseMessage> getFindAppReservationList(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
      * 发现点击统计
      */
     @GET("app/find/add_clicks")
     Observable<BaseMessage> getFindItemAddClicks(@Query("id") int id);
+
     /**
      * 首页list
      */
@@ -636,79 +714,84 @@ public interface ApiService {
     Observable<BaseMessage> getHomeListItem(@Path("id") int id);
 
     /**
-     *获取游戏任务下拉列表
+     * 获取游戏任务下拉列表
      */
     @GET("app/release_task/recharge_game_List")
     Observable<BaseMessage> rechargeGameList(@Query("task_type") int task_type, @Query("name") String name);
 
     /**
-     *领取游戏账号
+     * 领取游戏账号
      */
     @PUT("app/game_account/{task_id}")
     Observable<BaseMessage> gameAccountManager(@Path("task_id") int task_id);
 
     /**
-     *
-     创建游戏账号
+     * 创建游戏账号
      */
     @POST("app/game_account/add")
     Observable<BaseMessage> addGameAccount(@Body JSONObject jsonObject);
 
     /**
-     *
-     删除游戏账号
+     * 删除游戏账号
      */
     @DELETE("app/game_account/del/{id}")
     Observable<BaseMessage> delGameAccount(@Path("id") int id);
 
     /**
-     *编辑游戏账号密码
+     * 编辑游戏账号密码
      */
     @PUT("app/game_account/edit")
     Observable<BaseMessage> editGameAccount(@Body JSONObject jsonObject);
+
     /**
-     *查询游戏账号详情
+     * 查询游戏账号详情
      */
     @GET("app/game_account/detail/{id}")
     Observable<BaseMessage> getGameAccountDetail(@Path("id") int id);
+
     /**
-     *获取平台对应的游戏
+     * 获取平台对应的游戏
      * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
      */
     @GET("app/game_account/game/list")
     Observable<BaseMessage> getGameList(@Query("game_type") int game_type);
+
     /**
-     *查询游戏账号
+     * 查询游戏账号
      * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
      */
     @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);
+
     /**
-     *查询所有游戏账号
+     * 查询所有游戏账号
      * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
      */
     @GET("app/game_account/all/list")
     Observable<BaseMessage> getGameAccountAllList();
+
     /**
-     *获取计算可用定向消费券的数据
+     * 获取计算可用定向消费券的数据
      */
     @GET("app/game_consumption/voucher_and_ratio")
     Observable<BaseMessage> getVoucherAndRatio(@Query("game_id") String game_id);
+
     /**
-     *获取任务
+     * 获取任务
      */
     @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
      * download_type  1:非预约下载 2:预约下载
      */
     @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")
     Observable<BaseMessage> receiveXiaomiAccount(@Body JSONObject id);
@@ -718,9 +801,37 @@ public interface ApiService {
      */
     @GET("app/user/invitation_top")
     Observable<BaseMessage> getInvitationTop(@Query("top") int top);//top默认为5,可以不传
+
     /**
      * 获取邀请用户进两月礼物发放记录
      */
     @GET("app/user/invitation_top_record")
     Observable<BaseMessage> getInvitationTopRecord();
+    /**
+     * 获取用户未做金额
+     * can_receive_awar
+     */
+    @GET("app/user/can_receive_award")
+    Observable<BaseMessage> getCanREceiveAwar();
+    /**
+     * 任务审核
+     * accepted_task/static_audit
+     */
+    @GET("app/accepted_task/static_audit")
+    Observable<BaseMessage> staticAudit();
+    /**
+     * 唤醒业务APP列表
+     */
+    @GET("app/awaken/app")
+    Observable<BaseMessage> awakenApp(@Query("page") int page, @Query("per_page") int per_page);
+    /**
+     * 唤醒业务APP列表
+     */
+    @GET("app/awaken/article")
+    Observable<BaseMessage> awakenApparticle(@Query("page") int page, @Query("per_page") int per_page);
+    /**
+     * 唤醒业务打开app内容成功后回调
+     */
+    @POST("app/awaken/detail")
+    Observable<BaseMessage> awakenDetail(@Body JSONObject jsonObject);
 }

+ 14 - 22
app/src/main/java/com/sheep/gamegroup/model/api/BaseMessageConverter.java

@@ -4,9 +4,7 @@ import android.text.TextUtils;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.kfzs.appstore.utils.string.HexUtils;
 import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.util.LogUtil;
 
 import java.io.IOException;
 import java.util.HashMap;
@@ -32,41 +30,35 @@ public class BaseMessageConverter implements Converter<ResponseBody, BaseMessage
 
     /**
      * 加密
-     * @param requestJson
+     *
+     * @param data
      * @return
      */
-    public static String encrypt(String requestJson){
-        try {
-            byte[] byteEncode = Kfzssafe.XByteEncode(requestJson.getBytes());
-            return HexUtils.bytes2HexStr(byteEncode);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return requestJson;
-        }
+    public static String encrypt(String data) {
+        return Kfzssafe.xEncodeS2S(data);
     }
 
     /**
      * 解密
-     * @param respenseJson
+     *
+     * @param data
      * @return
      */
-    public static String decrypt(String respenseJson){
-        if(TextUtils.isEmpty(respenseJson)){
-            Map<String,String> map = new HashMap<>();
+    public static String decrypt(String data) {
+        if (TextUtils.isEmpty(data)) {
+            Map<String, String> map = new HashMap<>();
             map.put("msg", "0-byte body");
             return JSON.toJSONString(map);
         }
-        if(respenseJson.startsWith("{")){
-            return respenseJson;
+        if (data.startsWith("{")) {
+            return data;
         }
         try {
-            byte[] bytes = HexUtils.hexStr2Bytes(respenseJson);
-            byte[] byteDecode = Kfzssafe.XByteDecode(bytes);
-            return new String(byteDecode);
+            return Kfzssafe.xDecodeS2S(data);
         } catch (Exception e) {
             e.printStackTrace();
-            Map<String,String> map = new HashMap<>();
-            map.put("msg",respenseJson);
+            Map<String, String> map = new HashMap<>();
+            map.put("msg", data);
             return JSON.toJSONString(map);
         }
     }

+ 22 - 0
app/src/main/java/com/sheep/gamegroup/model/api/RedPackageMoney.java

@@ -0,0 +1,22 @@
+package com.sheep.gamegroup.model.api;
+
+/**
+ * created on:2018/8/20 on 19:03
+ * created by: Administrator
+ * 描述:
+ */
+public class RedPackageMoney {
+
+    /**
+     * 领取红包的钱数
+     */
+    private float data;
+
+    public float getData() {
+        return data;
+    }
+
+    public void setData(float data) {
+        this.data = data;
+    }
+}

+ 38 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/CashAwarsEntity.java

@@ -0,0 +1,38 @@
+package com.sheep.gamegroup.model.entity;
+
+import java.io.Serializable;
+
+/**
+ *
+ * Created by ljy on 2018/8/21.
+ */
+
+public class CashAwarsEntity implements Serializable {
+    private double welfare;//: 27994,
+    private double award;//: 47504.47,
+    private double cash;//: 19510.47
+
+    public double getWelfare() {
+        return welfare;
+    }
+
+    public void setWelfare(double welfare) {
+        this.welfare = welfare;
+    }
+
+    public double getAward() {
+        return award;
+    }
+
+    public void setAward(double award) {
+        this.award = award;
+    }
+
+    public double getCash() {
+        return cash;
+    }
+
+    public void setCash(double cash) {
+        this.cash = cash;
+    }
+}

+ 9 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/Friend.java

@@ -56,6 +56,15 @@ public class Friend {
     private String parent_code;
 
     private int create_time;
+    private String source_page;
+
+    public String getSource_page() {
+        return TextUtils.isEmpty(source_page)?"":source_page;
+    }
+
+    public void setSource_page(String source_page) {
+        this.source_page = source_page;
+    }
 
     public void setAward_amount(String award_amount){
         this.award_amount = award_amount;

+ 22 - 2
app/src/main/java/com/sheep/gamegroup/model/entity/HomeListEntity.java

@@ -1,5 +1,7 @@
 package com.sheep.gamegroup.model.entity;
 
+import android.text.TextUtils;
+
 /**
  * 首页list
  * Created by ljy on 2018/5/10.
@@ -10,7 +12,7 @@ public class HomeListEntity {
     private String Desc;//	string描述
     private String Icon;//	string图标地址
     private int Id;//	integer ($int64)
-    private String Jump;//	string跳转(h5填跳转地址,原生:1试玩赚钱,2邀请赚钱,3躺着赚钱,4办卡赚钱)
+    private String Jump;//	string跳转(h5填跳转地址,原生:1试玩赚钱,2邀请赚钱,3躺着赚钱,4办卡赚钱)-1新手任务
     private String Order;//	integer ($int64)排序,默认99,越小越靠前
     private String Title;//	string标题
     private int Type;//	integer ($int64)类型(0不跳转,1h5,2原生)
@@ -18,6 +20,24 @@ public class HomeListEntity {
     private int IsHot;//	   int	  `orm:"column(is_hot);null" description:"是否是热门标签 0:不是 1:是"`
     private String UpdateTime;//	integer ($int64)更新时间
     private String Url;//	integer ($int64)更新时间
+    private boolean select;
+    private int Tag;//标签类型(0无,1热门,2最新,3现金,4活跃,5福利)
+
+    public int getTag() {
+        return Tag;
+    }
+
+    public void setTag(int tag) {
+        Tag = tag;
+    }
+
+    public boolean isSelect() {
+        return select;
+    }
+
+    public void setSelect(boolean select) {
+        this.select = select;
+    }
 
     public String getUrl() {
         return Url;
@@ -45,7 +65,7 @@ public class HomeListEntity {
     }
 
     public String getIcon() {
-        return Icon;
+        return TextUtils.isEmpty(Icon)?"0":Icon;
     }
 
     public void setIcon(String icon) {

Разница между файлами не показана из-за своего большого размера
+ 634 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/RobTask.java


+ 154 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/RouserArticlesEntity.java

@@ -0,0 +1,154 @@
+package com.sheep.gamegroup.model.entity;
+
+import java.io.Serializable;
+
+/**
+ * Created by ljy on 2018/8/22.
+ */
+
+public class RouserArticlesEntity implements Serializable {
+    private int is_delete;//integer ($int32)软删除状态 1:已删除 2:正常
+    private int update_time;//integer ($int64)更新时间
+    private String img;//string宣传图 多张 ; 隔开
+    private String package_name;//string包名
+    private String deeplink;//string唤醒连接地址:deeplink
+    private int identifier;//integer ($int32)标识字样 0:无 1:!惊 2:火热 3:最新
+    private double price;//number ($double)单价
+    private String app_name;//stringapp名称
+    private int create_time;//integer ($int64)创建时间
+    private int awaken_apps_id;//integer ($int64)唤醒app id
+    private int status;//integer ($int32)状态 1:展示 2:未展示
+    private int is_force;//integer ($int32)是否强制 1:强制 2:不强制
+    private String title;//string标题
+    private String content;//string案
+    private int type;//integer ($int32)0:当日非活跃 ; 1-30:1~30日沉默
+    private int id;//integer ($int64)
+
+    public int getIs_delete() {
+        return is_delete;
+    }
+
+    public void setIs_delete(int is_delete) {
+        this.is_delete = is_delete;
+    }
+
+    public int getUpdate_time() {
+        return update_time;
+    }
+
+    public void setUpdate_time(int update_time) {
+        this.update_time = update_time;
+    }
+
+    public String getImg() {
+        return img;
+    }
+
+    public void setImg(String img) {
+        this.img = img;
+    }
+
+    public String getPackage_name() {
+        return package_name;
+    }
+
+    public void setPackage_name(String package_name) {
+        this.package_name = package_name;
+    }
+
+    public String getDeeplink() {
+        return deeplink;
+    }
+
+    public void setDeeplink(String deeplink) {
+        this.deeplink = deeplink;
+    }
+
+    public int getIdentifier() {
+        return identifier;
+    }
+
+    public void setIdentifier(int identifier) {
+        this.identifier = identifier;
+    }
+
+    public double getPrice() {
+        return price;
+    }
+
+    public void setPrice(double price) {
+        this.price = price;
+    }
+
+    public String getApp_name() {
+        return app_name;
+    }
+
+    public void setApp_name(String app_name) {
+        this.app_name = app_name;
+    }
+
+    public int getCreate_time() {
+        return create_time;
+    }
+
+    public void setCreate_time(int create_time) {
+        this.create_time = create_time;
+    }
+
+    public int getAwaken_apps_id() {
+        return awaken_apps_id;
+    }
+
+    public void setAwaken_apps_id(int awaken_apps_id) {
+        this.awaken_apps_id = awaken_apps_id;
+    }
+
+    public int getStatus() {
+        return status;
+    }
+
+    public void setStatus(int status) {
+        this.status = status;
+    }
+
+    public int getIs_force() {
+        return is_force;
+    }
+
+    public void setIs_force(int is_force) {
+        this.is_force = is_force;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public int getType() {
+        return type;
+    }
+
+    public void setType(int type) {
+        this.type = type;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+}

+ 92 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/RouserEntity.java

@@ -0,0 +1,92 @@
+package com.sheep.gamegroup.model.entity;
+
+import java.io.Serializable;
+
+/**
+ * Created by ljy on 2018/8/22.
+ */
+
+public class RouserEntity implements Serializable {
+    private double DefaultPrice;//	number ($double)默认单价
+    private int CreateTime;//	integer ($int64)创建时间
+    private String Name;//	string应用名称
+    private String PackageName;//	string包名
+    private int UpdateTime;//	integer ($int64)更新时间
+    private String Icon;//	string应用图标ICON
+    private int Id;//	integer ($int64)
+
+    private String DowloadUrl;//	string应用下载地址
+    private RouserArticlesEntity articles;//	[awakenarticles{}]
+
+    public double getDefaultPrice() {
+        return DefaultPrice;
+    }
+
+    public void setDefaultPrice(double defaultPrice) {
+        DefaultPrice = defaultPrice;
+    }
+
+    public int getCreateTime() {
+        return CreateTime;
+    }
+
+    public void setCreateTime(int createTime) {
+        CreateTime = createTime;
+    }
+
+    public String getName() {
+        return Name;
+    }
+
+    public void setName(String name) {
+        Name = name;
+    }
+
+    public String getPackageName() {
+        return PackageName;
+    }
+
+    public void setPackageName(String packageName) {
+        PackageName = packageName;
+    }
+
+    public int getUpdateTime() {
+        return UpdateTime;
+    }
+
+    public void setUpdateTime(int updateTime) {
+        UpdateTime = updateTime;
+    }
+
+    public String getIcon() {
+        return Icon;
+    }
+
+    public void setIcon(String icon) {
+        Icon = icon;
+    }
+
+    public int getId() {
+        return Id;
+    }
+
+    public void setId(int id) {
+        Id = id;
+    }
+
+    public String getDowloadUrl() {
+        return DowloadUrl;
+    }
+
+    public void setDowloadUrl(String dowloadUrl) {
+        DowloadUrl = dowloadUrl;
+    }
+
+    public RouserArticlesEntity getArticles() {
+        return articles;
+    }
+
+    public void setArticles(RouserArticlesEntity articles) {
+        this.articles = articles;
+    }
+}

+ 47 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/TaskAuditEntity.java

@@ -0,0 +1,47 @@
+package com.sheep.gamegroup.model.entity;
+
+import java.io.Serializable;
+
+/**
+ * 审核中心top
+ * Created by ljy on 2018/8/17.
+ */
+
+public class TaskAuditEntity implements Serializable {
+    private String finish_cash;// 67150.72,
+    private String audit_count;// 0,
+    private String welfare_award;// 67150.72,
+    private String finish_count;// 0
+
+    public String getFinish_cash() {
+        return finish_cash;
+    }
+
+    public void setFinish_cash(String finish_cash) {
+        this.finish_cash = finish_cash;
+    }
+
+    public String getAudit_count() {
+        return audit_count;
+    }
+
+    public void setAudit_count(String audit_count) {
+        this.audit_count = audit_count;
+    }
+
+    public String getWelfare_award() {
+        return welfare_award;
+    }
+
+    public void setWelfare_award(String welfare_award) {
+        this.welfare_award = welfare_award;
+    }
+
+    public String getFinish_count() {
+        return finish_count;
+    }
+
+    public void setFinish_count(String finish_count) {
+        this.finish_count = finish_count;
+    }
+}

+ 12 - 3
app/src/main/java/com/sheep/gamegroup/model/entity/TaskChild.java

@@ -19,7 +19,8 @@ public class TaskChild implements Serializable {
     private String EndTime;//1530115200,
     private String Desc;//"<p>阿斯顿发射的发</p>",
     private String Amount;//1,
-    private String Id;//8,
+    private int Id;//8,
+    private int already_accepted_task_id;//8,
     private String task_id;//161,
     private String Time;//0,
     private String Name;//"212312311111111",
@@ -148,11 +149,11 @@ public class TaskChild implements Serializable {
         Amount = amount;
     }
 
-    public String getId() {
+    public int getId() {
         return Id;
     }
 
-    public void setId(String id) {
+    public void setId(int id) {
         Id = id;
     }
 
@@ -188,6 +189,14 @@ public class TaskChild implements Serializable {
         TaskType = taskType;
     }
 
+    public int getAlready_accepted_task_id() {
+        return already_accepted_task_id;
+    }
+
+    public void setAlready_accepted_task_id(int already_accepted_task_id) {
+        this.already_accepted_task_id = already_accepted_task_id;
+    }
+
     /**
      * 重组desc字段
      * @param desc

+ 167 - 11
app/src/main/java/com/sheep/gamegroup/model/entity/TaskEty.java

@@ -1,5 +1,6 @@
 package com.sheep.gamegroup.model.entity;
 
+import android.support.annotation.IntDef;
 import android.text.TextUtils;
 
 import com.alibaba.fastjson.JSONArray;
@@ -8,6 +9,8 @@ import com.sheep.gamegroup.model.api.IDownload;
 import com.sheep.gamegroup.util.ListUtil;
 
 import java.io.Serializable;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.List;
 
 /**
@@ -330,17 +333,6 @@ public class TaskEty implements Serializable, IDownload {
         return task_type != 2 && task_type != 4;//// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思
     }
 
-    public boolean hasChildInReview() {
-        if(!ListUtil.isEmpty(child)){
-            for (TaskChild taskChild : child) {
-                if(taskChild != null && taskChild.getStatus() == 4){//只要有一个子任务在审核中,就返回true
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
     /**
      * 重组desc字段
      * @param desc
@@ -433,4 +425,168 @@ public class TaskEty implements Serializable, IDownload {
         }
     }
 
+    /**
+     * 获取当前可领取子任务的id
+     *
+     1、 任务未开启时——即将开启
+     2、 任务未领取时——可领取
+     3、 任务已领取待完成时——进行中
+     4、 任务已提交待审核——待审核
+     5、 任务审核通过——已完成
+     6、 任务审核失败——审核失败
+     7、任务已过期未完成——已过期
+     * @return
+     */
+    public int getCanAcceptedChildId() {
+        if(!ListUtil.isEmpty(child)){
+            for (TaskChild taskChild : child) {
+                switch (taskChild.getStatus()) {
+                    case 2:
+                        return taskChild.getId();
+                }
+            }
+        }
+        return -1;
+    }
+    /**
+     * 获取正在进行中的子任务的id
+     *
+     1、 任务未开启时——即将开启
+     2、 任务未领取时——可领取
+     3、 任务已领取待完成时——进行中
+     4、 任务已提交待审核——待审核
+     5、 任务审核通过——已完成
+     6、 任务审核失败——审核失败
+     7、任务已过期未完成——已过期
+     * @return
+     */
+    public int getRunningChildId() {
+        if(!ListUtil.isEmpty(child)){
+            for (TaskChild taskChild : child) {
+                switch (taskChild.getStatus()) {
+                    case 3:
+                        return taskChild.getId();
+                }
+            }
+        }
+        return -1;
+    }
+    /**
+     * 获取正在进行中的子任务的id
+     *
+     1、 任务未开启时——即将开启
+     2、 任务未领取时——可领取
+     3、 任务已领取待完成时——进行中
+     4、 任务已提交待审核——待审核
+     5、 任务审核通过——已完成
+     6、 任务审核失败——审核失败
+     7、任务已过期未完成——已过期
+     * @return
+     */
+    public int getFailChildPosition() {
+        if(!ListUtil.isEmpty(child)){
+            int i = 0;
+            for (TaskChild taskChild : child) {
+                switch (taskChild.getStatus()) {
+                    case STATUS_FAIL:
+                        return i;
+                }
+                i++;
+            }
+        }
+        return -1;
+    }
+    public static final int STATUS_RUNNING = 3;//进行中
+    public static final int STATUS_FAIL= 6;//审核失败
+
+
+    @IntDef({STATUS_RUNNING, STATUS_FAIL})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface STATUS {
+    }
+    /**
+     * 根据状态获取当前第一个可提交子任务的already_accepted_task_id
+     *
+     1、 任务未开启时——即将开启
+     2、 任务未领取时——可领取
+     3、 任务已领取待完成时——进行中
+     4、 任务已提交待审核——待审核
+     5、 任务审核通过——已完成
+     6、 任务审核失败——审核失败
+     7、任务已过期未完成——已过期
+     * @return
+     */
+    public int getCanCommitChildRelease_task_id(@STATUS int status) {
+        if(!ListUtil.isEmpty(child)){
+            for (TaskChild taskChild : child) {
+                if(status == taskChild.getStatus()){
+                    return taskChild.getAlready_accepted_task_id();
+                }
+            }
+        }
+        return -1;
+    }
+    /**
+     * 获取当前第一个可提交子任务的already_accepted_task_id
+     *
+     1、 任务未开启时——即将开启
+     2、 任务未领取时——可领取
+     3、 任务已领取待完成时——进行中
+     4、 任务已提交待审核——待审核
+     5、 任务审核通过——已完成
+     6、 任务审核失败——审核失败
+     7、任务已过期未完成——已过期
+     * @return
+     */
+    public int getCanCommitChildRelease_task_id() {
+        //先找审核失败的子任务
+        int commitScreenShotTaskId = getCanCommitChildRelease_task_id(TaskEty.STATUS_FAIL);
+        //再找进行中的子任务
+        if(commitScreenShotTaskId < 1){
+            commitScreenShotTaskId = getCanCommitChildRelease_task_id(TaskEty.STATUS_RUNNING);
+        }
+        return commitScreenShotTaskId;
+    }
+
+    /**
+     * 有子任务可以接受
+     * @return
+     */
+    public boolean hasChildCanAccepted() {
+        return getCanAcceptedChildId() > 0;
+    }
+    /**
+     * 有子任务正在进行中
+     * @return
+     */
+    public boolean hasChildRunning() {
+        return getRunningChildId() > 0;
+    }
+
+    /**
+     * 传入的上一次提交的id是最后一个子任务的already_accepted_task_id
+     * 或者传入的是一个普通任务的id
+     * @param lastCommitId
+     * @return
+     */
+    public boolean hasCommitLast(int lastCommitId) {
+        TaskChild taskChild = ListUtil.getLast(child);
+        return taskChild == null || taskChild.getAlready_accepted_task_id() == lastCommitId;
+    }
+
+
+    /**
+     * 不是连续任务返回true
+     * 是连续任务时,子任务中第一个处理接受任务状态时返回true
+     * @return
+     */
+    public boolean canCancelTask() {
+       switch (task_type){
+           case 1000:
+               TaskChild taskChild = ListUtil.getItem(child, 0);
+               return taskChild == null || taskChild.getStatus() == 3;
+           default:
+               return true;
+       }
+    }
 }

+ 19 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/TaskReleaseEty.java

@@ -17,6 +17,7 @@ public class TaskReleaseEty implements Serializable{
     private String deadline;// 0,
     private String duration;// 0,
     private int id;// 0,
+    private int cash_task;// 0,
     private String last_num;// 0,
     private String name;//private String string",
     private String online_time;// 0,
@@ -243,12 +244,30 @@ public class TaskReleaseEty implements Serializable{
         this.task = task;
     }
 
+    public int getCash_task() {
+        return cash_task;
+    }
+
+    public void setCash_task(int cash_task) {
+        this.cash_task = cash_task;
+    }
 
     @Override
     public boolean equals(Object obj) {
         return obj instanceof TaskReleaseEty && ((TaskReleaseEty) obj).getId() == id;
     }
 
+
+
+    public String getCashOrWelfare(){
+        switch (cash_task){
+            case 2:
+                return "福利";
+            case 1:
+            default:
+                return "现金";
+        }
+    }
     /**
      * 任务是否下线
      * @return

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

@@ -73,6 +73,46 @@ public class UserEntity implements Serializable {
     private int certification_count;//实名认证次数
     @Column(name = "must_bind_mobile")
     private int must_bind_mobile;//是否必须绑定手机号 0不是 1是
+    @Column(name = "gender")
+    private int gender;
+    @Column(name = "birthday")
+    private String birthday;
+    @Column(name = "package_cate")
+    private int package_cate;
+    @Column(name = "create_time_line")
+    private int create_time_line;
+
+    public int getPackage_cate() {
+        return package_cate;
+    }
+
+    public void setPackage_cate(int package_cate) {
+        this.package_cate = package_cate;
+    }
+
+    public int getCreate_time_line() {
+        return create_time_line;
+    }
+
+    public void setCreate_time_line(int create_time_line) {
+        this.create_time_line = create_time_line;
+    }
+
+    public int getGender() {
+        return gender;
+    }
+
+    public void setGender(int gender) {
+        this.gender = gender;
+    }
+
+    public String getBirthday() {
+        return TextUtils.isEmpty(birthday) ? "0" : birthday;
+    }
+
+    public void setBirthday(String birthday) {
+        this.birthday = birthday;
+    }
 
     public String getWx_nickname() {
         return wx_nickname;
@@ -107,7 +147,7 @@ public class UserEntity implements Serializable {
     }
 
     public String getBalance() {
-        return balance == null?"0":balance;
+        return balance == null ? "0" : balance;
     }
 
     public void setBalance(String balance) {
@@ -131,7 +171,7 @@ public class UserEntity implements Serializable {
     }
 
     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) {
@@ -291,22 +331,10 @@ public class UserEntity implements Serializable {
     }
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
     public boolean isNewRegistUser() {//新注册用户
         return TextUtils.equals(create_time, last_login_time);
     }
+
     //没有实名认证
     public boolean notCertification() {
         return TextUtils.isEmpty(getReal_name()) || TextUtils.isEmpty(getId_number());
@@ -314,17 +342,20 @@ public class UserEntity implements Serializable {
 
     /**
      * 老用户选择绑定手机号
+     *
      * @return
      */
-    public boolean canBindMobile(){
+    public boolean canBindMobile() {
         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);
     }
+
     //测试服用测试分享链接,正式服用正式的
-    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.
  * 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 {
 
@@ -39,58 +39,75 @@ public class Version {
 
     private int create_time;
 
-    public void setAddress(String address){
+    public void setAddress(String address) {
         this.address = address;
     }
-    public String getAddress(){
+
+    public String getAddress() {
         return this.address;
     }
-    public void setMd5_address(String md5_address){
+
+    public void setMd5_address(String md5_address) {
         this.md5_address = md5_address;
     }
-    public String getMd5_address(){
+
+    public String getMd5_address() {
         return this.md5_address;
     }
-    public void setStatus(int status){
+
+    public void setStatus(int status) {
         this.status = status;
     }
-    public int getStatus(){
+
+    public int getStatus() {
         return this.status;
     }
-    public void setId(int id){
+
+    public void setId(int id) {
         this.id = id;
     }
-    public int getId(){
+
+    public int getId() {
         return this.id;
     }
-    public void setStrong_update(int strong_update){
+
+    public void setStrong_update(int strong_update) {
         this.strong_update = strong_update;
     }
-    public int getStrong_update(){
+
+    public int getStrong_update() {
         return this.strong_update;
     }
-    public void setVersion_number(int version_number){
+
+    public void setVersion_number(int version_number) {
         this.version_number = version_number;
     }
-    public int getVersion_number(){
+
+    public int getVersion_number() {
         return this.version_number;
     }
-    public void setType(int type){
+
+    public void setType(int type) {
         this.type = type;
     }
-    public int getType(){
+
+    public int getType() {
         return this.type;
     }
-    public void setUpdate_time(int update_time){
+
+    public void setUpdate_time(int update_time) {
         this.update_time = update_time;
     }
-    public int getUpdate_time(){
+
+    public int getUpdate_time() {
         return this.update_time;
     }
-    public void setCreate_time(int create_time){
+
+    public void setCreate_time(int create_time) {
         this.create_time = create_time;
     }
-    public int getCreate_time(){
+
+    public int getCreate_time() {
         return this.create_time;
     }
 
@@ -113,6 +130,7 @@ public class Version {
 
     /**
      * 是否强更
+     *
      * @return
      */
     public boolean isForceUpdate() {

+ 2 - 0
app/src/main/java/com/sheep/gamegroup/presenter/LoginPresenter.java

@@ -9,6 +9,7 @@ import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.ChannelContent;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.FastJsonUtils;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.PreferenceUtils;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
@@ -85,6 +86,7 @@ public class LoginPresenter implements LoginContract.Presenter {
             loginEty =FastJsonUtils.toBean( JSONObject.toJSONString(baseMessage.getData()),LoginEntity.class);
             SpUtils.saveToken(SheepApp.mContext, loginEty.getToken());
             DataUtil.getInstance().setUserEntity(loginEty.getUser());
+            LogUtil.logI("token--------"+loginEty.getToken());
         }
         view.NetSuccess(1,"登录成功", EntityUtils.getUserCode(loginEty));
         TestUtil.saveUser(loginEty);

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

@@ -14,6 +14,7 @@ public interface PhoneContract {
     interface Presenter{
 
         void getCaptcha(String telphone) throws JSONException;
+        boolean getCaptchaa(String telphone) throws JSONException;
         void loginByCaptcha(String telphone, String code);
 
         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 com.alibaba.fastjson.JSONObject;
+import com.google.gson.Gson;
 import com.sheep.gamegroup.model.api.ApiService;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.ChannelContent;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.PreferenceUtils;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 
 
-
 import java.util.HashMap;
 import java.util.Map;
 
@@ -28,6 +29,7 @@ import rx.schedulers.Schedulers;
 public class PhonePresenter implements PhoneContract.Presenter {
     private PhoneContract.View view;
     private ApiService apiService;
+    private boolean isOk=true;
 
     @Inject
     public PhonePresenter(PhoneContract.View view, ApiService apiService) {
@@ -36,8 +38,8 @@ public class PhonePresenter implements PhoneContract.Presenter {
     }
 
     @Override
-    public void getCaptcha(String telphone){
-        try{
+    public void getCaptcha(String telphone) {
+        try {
             Map map = new HashMap();
             map.put("account", telphone);
             Log.e("hash-map", map.toString());
@@ -50,29 +52,71 @@ public class PhonePresenter implements PhoneContract.Presenter {
                     .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
                         @Override
                         public void onError(BaseMessage baseMessage) {
+                            LogUtil.logI(new Gson().toJson(baseMessage));
                             view.gaptchaFail(baseMessage);
                         }
 
                         @Override
                         public void onNext(BaseMessage baseMessage) {
+                            LogUtil.logI(new Gson().toJson(baseMessage));
                             view.returnGaptcha(baseMessage);
 
                         }
                     });
-        }catch (Exception e){
+        } catch (Exception e) {
             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
     public void loginByCaptcha(String telphone, String code) {
         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)
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())

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

@@ -27,7 +27,7 @@ public class TaskListPresenter implements TaskListContract.Presenter {
 
     @Override
     public void acceptedTask(int page, int pre_page) {
-        apiService.acceptedTask(page, pre_page)
+        apiService.acceptedTask(page, pre_page, 0)
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {

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

@@ -34,7 +34,7 @@ public class TryMakeMoneyPresenter implements TryMakeMoneyContract.Presenter {
 
     @Override
     public void acceptedTask(RequestParameEty o) {
-        apiService.acceptedTask(o.getPage(), o.getPer_page())
+        apiService.acceptedTask(o.getPage(), o.getPer_page(), 0)
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {

+ 34 - 3
app/src/main/java/com/sheep/gamegroup/usage/AppUsageManager.java

@@ -22,6 +22,7 @@ import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.model.entity.AppRecord;
 import com.sheep.gamegroup.model.entity.AppUsage;
 import com.sheep.gamegroup.model.entity.DialogConfig;
+import com.sheep.gamegroup.model.entity.UserAssets;
 import com.sheep.gamegroup.model.util.AutoTaskListUtil;
 import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.ListUtil;
@@ -32,10 +33,14 @@ import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.TreeMap;
 
+import static android.content.Context.USAGE_STATS_SERVICE;
+
 /**
  * Created by realicing on 2018/6/27.
  * realicing@sina.com
@@ -132,7 +137,7 @@ public class AppUsageManager {
     public  boolean needOpenLookAppUsageStatsPermisson(boolean isSaveData){
         if(android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP){   // 如果大于等于5.1 再做判断
             long time = System.currentTimeMillis();
-            UsageStatsManager usageStatsManager=(UsageStatsManager)SheepApp.getInstance().getSystemService(Service.USAGE_STATS_SERVICE);
+            UsageStatsManager usageStatsManager=(UsageStatsManager)SheepApp.getInstance().getSystemService(USAGE_STATS_SERVICE);
             List<UsageStats> queryUsageStats = usageStatsManager != null ? usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, 0, time) : null;
             boolean isEmpty = ListUtil.isEmpty(queryUsageStats);
             if(!isEmpty && isSaveData){
@@ -215,7 +220,7 @@ public class AppUsageManager {
     public long getTotalTimeInForeground(AppUsage appUsage) {
         String packageName = appUsage.getPackageName();
         if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP){
-            UsageStatsManager mUsageStatsManager = (UsageStatsManager) SheepApp.getInstance().getSystemService(Context.USAGE_STATS_SERVICE);//usagestats
+            UsageStatsManager mUsageStatsManager = (UsageStatsManager) SheepApp.getInstance().getSystemService(USAGE_STATS_SERVICE);//usagestats
             long time = System.currentTimeMillis();
             if(mUsageStatsManager != null) {
                 List<UsageStats> usageStatsList = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, AutoTaskListUtil.getInstance().getReceiveTaskTime(), time);
@@ -290,7 +295,7 @@ public class AppUsageManager {
 
     public void println() {
         if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP){
-            UsageStatsManager mUsageStatsManager = (UsageStatsManager) SheepApp.getInstance().getSystemService(Context.USAGE_STATS_SERVICE);//usagestats
+            UsageStatsManager mUsageStatsManager = (UsageStatsManager) SheepApp.getInstance().getSystemService(USAGE_STATS_SERVICE);//usagestats
             long time = System.currentTimeMillis();
             if(mUsageStatsManager != null) {
                 List<UsageStats> usageStatsList = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, AutoTaskListUtil.getInstance().getReceiveTaskTime(), time);
@@ -305,4 +310,30 @@ public class AppUsageManager {
             }
         }
     }
+
+    /**
+     * 获取应用最后使用时间
+     * 24*60*60*1000
+     */
+    public long getAppLastUseTime(String pakageName, long intervalTime){
+        if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP){
+            Calendar calendar=Calendar.getInstance();
+            calendar.setTime(new Date());
+            long endt = calendar.getTimeInMillis();//结束时间
+            calendar.add(Calendar.DAY_OF_MONTH, -1);//时间间隔为一个月
+            long statt = calendar.getTimeInMillis();//开始时间
+            long time =System.currentTimeMillis()-intervalTime;
+            UsageStatsManager usageStatsManager=(UsageStatsManager) SheepApp.getInstance().getSystemService(USAGE_STATS_SERVICE);
+            //获取一个月内的信息
+            List<UsageStats> queryUsageStats = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST,statt,endt);
+            if(queryUsageStats != null && queryUsageStats.size() > 0){
+                for(UsageStats usageStats: queryUsageStats){
+                    if(usageStats.getPackageName().equals(pakageName)){
+                        return usageStats.getLastTimeUsed();
+                    }
+                }
+            }
+        }
+        return 0;
+    }
 }

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

@@ -15,6 +15,7 @@ import android.support.v7.app.AlertDialog;
 import android.text.Html;
 import android.text.TextUtils;
 import android.util.Log;
+import android.util.TypedValue;
 import android.view.View;
 import android.view.ViewTreeObserver;
 import android.widget.ImageView;
@@ -39,6 +40,9 @@ import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.FindApp;
 import com.sheep.gamegroup.model.entity.GameAccountEntity;
 import com.sheep.gamegroup.model.entity.HomeListEntity;
+import com.sheep.gamegroup.model.entity.NewbieTask;
+import com.sheep.gamegroup.model.entity.NewbieTaskRecord;
+import com.sheep.gamegroup.model.entity.RouserArticlesEntity;
 import com.sheep.gamegroup.model.entity.TaskChild;
 import com.sheep.gamegroup.model.entity.TaskDescEntity;
 import com.sheep.gamegroup.model.entity.TaskEty;
@@ -50,6 +54,9 @@ import com.sheep.gamegroup.model.util.AutoTaskListUtil;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.usage.AppUsageManager;
 import com.sheep.gamegroup.view.activity.GameTaskOrderListAct;
+import com.sheep.gamegroup.view.dialog.DialogNewbieTask1;
+import com.sheep.gamegroup.view.dialog.DialogNewbieTaskList;
+import com.sheep.gamegroup.view.dialog.DialogNewbieTaskRegistSuccess;
 import com.sheep.gamegroup.view.dialog.DialogShare;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
@@ -68,15 +75,18 @@ import com.zhy.http.okhttp.callback.FileCallBack;
 
 import org.afinal.simplecache.ApiKey;
 import org.greenrobot.eventbus.EventBus;
+import org.xutils.ex.DbException;
 
 import java.io.File;
 import java.lang.reflect.Field;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.security.MessageDigest;
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
@@ -87,6 +97,7 @@ import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.LINK_SHARE;
+import static com.sheep.gamegroup.util.UMConfigUtils.Event.NEWBIE_TASK;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.QR_COPY;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.XIAOMI_GAME_RECEIVE;
 import static com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp.PUBLIC_TAG_PREFIX_TEXTVIEW_LIST;
@@ -407,6 +418,11 @@ public class CommonUtil {
     public void goNative(Context context, HomeListEntity entity, String from) {
 
         switch (Integer.valueOf(entity.getJump())) {
+            case -1://试玩赚钱
+
+                DialogNewbieTaskList.tryShowDialog((Activity) context);
+                NEWBIE_TASK.onEvent();
+                break;
             case 1://试玩赚钱
 
                 Jump2View.getInstance().goTryplayView(context, null);
@@ -454,10 +470,10 @@ public class CommonUtil {
             case 12://闲玩任务
                 Jump2View.getInstance().goXianwanWeb(context, null, null);
                 break;
-            case 13://游戏代充
+            case 13://游戏代充(游戏充值)
                 Jump2View.getInstance().goGameRecharge((Activity) context, null);
                 break;
-            case 14://幂动科技
+            case 14://幂动科技(简单任务)
                 Jump2View.getInstance().goMiDong((Activity) context, null);
                 break;
             case 15://小米游戏列表
@@ -633,7 +649,7 @@ public class CommonUtil {
                 state = " (已完成 )";
                 break;
             case 6:
-                state = " (审核失败)";
+                state = " (审核失败,请重新上传截图)";
                 break;
             case 7:
                 state = " (已过期 )";
@@ -1754,4 +1770,187 @@ public class CommonUtil {
                     }
                 });
     }
+    /**
+     * 获取用户未做任务金额
+     */
+    public void getUserNoDoingTaskMoney(final Action1<BaseMessage> action1){
+
+        SheepApp.getInstance().getNetComponent().getApiService().getCanREceiveAwar()
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+
+                        if (action1 != null)
+                            action1.call(baseMessage);
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+
+                        if (action1 != null)
+                            action1.call(null);
+                    }
+                });
+    }
+
+    /**
+     * 任务审核
+     */
+    public void staticAudit(final Action1<BaseMessage> action1){
+
+        SheepApp.getInstance().getNetComponent().getApiService().staticAudit()
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+
+                        if (action1 != null)
+                            action1.call(baseMessage);
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+
+                        if (action1 != null)
+                            action1.call(null);
+                    }
+                });
+    }
+
+    /**
+     * 获取任务记录列表
+     */
+    public void getAudit(final Action1<BaseMessage> action1,int page, int pre_page, int type){
+        SheepApp.getInstance().getNetComponent().getApiService().acceptedTask(page, pre_page, type)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+
+                        if (action1 != null)
+                            action1.call(baseMessage);
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+
+                        if (action1 != null)
+                            action1.call(null);
+                    }
+                });
+    }
+
+    /**
+     * 是否添加新手任务
+     */
+    public boolean addNewTask(final Activity activity, final UserEntity userEntity) {
+        if (userEntity == null) {
+            return false;
+        }
+        if (userEntity.getIs_new() == 2) { //1新用户 2老用户
+            return false;
+        } else {
+            NewbieTaskRecord newbie_task_record = null;
+            try {
+                newbie_task_record = MyDbManager.getInstance().dbFindNewbieTaskRecord(userEntity.getInvitation_code());
+            } catch (DbException e) {
+                e.printStackTrace();
+            }
+            boolean dontShowNewbieTaskDialog = newbie_task_record == null || newbie_task_record.isDontShowNewbieTaskDialog();//默认可以显示对话框
+            if (!userEntity.isNewRegistUser() || dontShowNewbieTaskDialog) {
+                final NewbieTaskRecord finalNewbie_task_record = newbie_task_record;
+                SheepApp.getInstance().getNetComponent().getApiService().getNewbieTask()
+                        .subscribeOn(Schedulers.io())
+                        .observeOn(AndroidSchedulers.mainThread())
+                        .subscribe(new SheepSubscriber<BaseMessage>(activity) {
+                            @Override
+                            public void onNext(BaseMessage baseMessage) {
+                                List<NewbieTask> newbieTaskList = baseMessage.getDatas(NewbieTask.class);
+                                if (newbieTaskList != null && !newbieTaskList.isEmpty() && newbieTaskList.size() > 1 && !newbieTaskList.get(1).getFinished()) {//了解小绵羊任务未完成时
+                                    DialogNewbieTaskRegistSuccess.showDialog(activity, finalNewbie_task_record, newbieTaskList.get(0));
+                                } else if (newbieTaskList != null && !newbieTaskList.isEmpty()) {
+                                    finalNewbie_task_record.setDontShowNewbieTaskDialog(true);
+                                    MyDbManager.getInstance().saveOrUpdate(finalNewbie_task_record);//设置为不再显示新手对话框
+                                    List<NewbieTask> taskList = new ArrayList<>();
+                                    NewbieTask task = null;
+                                    for (NewbieTask newbieTask : newbieTaskList) {
+                                        if (newbieTask.getFinished()) {//已经完成
+                                            task = newbieTask;
+                                        } else {
+                                            taskList.add(newbieTask);
+                                        }
+                                    }
+                                    DialogNewbieTask1.showDialog(activity, taskList, task);
+                                } else {
+                                    if (BuildConfig.DEBUG)
+                                        G.showToast("测试:服务器数据错误,新手任务数据为空");
+                                }
+                            }
+
+                            @Override
+                            public void onError(BaseMessage baseMessage) {
+                            }
+                        });
+            }
+            return true;
+        }
+    }
+
+    /**
+     * 设置游戏标识文本,如:现金,福利
+     * @param textView
+     * @param taskReleaseEty
+     */
+    public void setTaskTagText(TextView textView, TaskReleaseEty taskReleaseEty) {
+        textView.setVisibility(View.VISIBLE);
+        ViewUtil.setColorMapText(textView, String.format(Locale.CHINA, "%s", taskReleaseEty.getCashOrWelfare()), taskReleaseEty.getCashOrWelfare(), "#FD2D54");
+        textView.setBackgroundResource(R.drawable.shape_red_stroke_rectangle_no_lb);
+        textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 9);
+        int padding = textView.getContext().getResources().getDimensionPixelSize(R.dimen.content_padding_2);
+        textView.setPadding(4*padding, padding, 4*padding, padding);
+    }
+
+    /**
+     * 唤醒业务打开app内容成功后回调
+     */
+    public void awakenDetail(RouserArticlesEntity item){
+        long longTime = AppUsageManager.getInstance().getAppLastUseTime(item.getPackage_name(),0);
+        int status = 2;
+        if(longTime <= 0){
+            status = 1;
+        }else {
+            for(int i=0;i<31;i++){
+                if(item.getType() == i){
+                    if (System.currentTimeMillis() - i * 24 * 60 * 60 * 1000 >longTime) {
+                        status = 2;
+                    } else {
+                        status = 1;
+                    }
+                }
+            }
+        }
+
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("awaken_articles_id", item.getId());
+        jsonObject.put("invitation_code", DataUtil.getInstance().getInvitationCode());
+        jsonObject.put("status",status);
+        SheepApp.getInstance().getNetComponent().getApiService().awakenDetail(jsonObject)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+
+                    }
+                });
+    }
 }

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

@@ -398,6 +398,9 @@ public class DataUtil {
         }
         return null;
     }
+    public static boolean 是官方包吗(){
+        return "kfzs".equals(ChannelContent.getInstance().getChannel_name());
+    }
 //    //正在运行的任务
 //    List<TaskAcceptedEty> taskAcceptedEtyList = ListUtil.emptyList();
 //    public void addTaskAcceptedEtyList(List<TaskAcceptedEty> list) {

+ 39 - 4
app/src/main/java/com/sheep/gamegroup/util/GlideImageLoader.java

@@ -1,6 +1,7 @@
 package com.sheep.gamegroup.util;
 
 import android.content.Intent;
+import android.graphics.Bitmap;
 import android.graphics.Color;
 import android.net.Uri;
 import android.text.TextUtils;
@@ -14,6 +15,7 @@ import com.sheep.gamegroup.util.glide.GlideCircleTransformWithBorder;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
+import com.uuzuche.lib_zxing.activity.CodeUtils;
 import com.zhy.http.okhttp.OkHttpUtils;
 import com.zhy.http.okhttp.callback.FileCallBack;
 
@@ -80,10 +82,17 @@ public class GlideImageLoader {
                 .into(imageView);
     }
     public static void setGameImage(ImageView imageView, String url) {
-        Glide.with(SheepApp.getInstance())
-                .load(url)
-                .apply(new RequestOptions().centerCrop().transform(new RoundedCorners(imageView.getResources().getDimensionPixelSize(R.dimen.content_padding_10))).placeholder(R.drawable.loading_01))
-                .into(imageView);
+        if(url.endsWith(".gif")){//gif图片不做任务处理
+            Glide.with(SheepApp.getInstance())
+                    .load(url)
+                    .apply(new RequestOptions().placeholder(R.drawable.loading_01))
+                    .into(imageView);
+        } else {
+            Glide.with(SheepApp.getInstance())
+                    .load(url)
+                    .apply(new RequestOptions().centerCrop().transform(new RoundedCorners(imageView.getResources().getDimensionPixelSize(R.dimen.content_padding_10))).placeholder(R.drawable.loading_01))
+                    .into(imageView);
+        }
     }
     public static void setGameImage(ImageView imageView, String url, int radius) {
         Glide.with(SheepApp.getInstance())
@@ -92,6 +101,32 @@ public class GlideImageLoader {
                 .into(imageView);
     }
 
+    /**
+     * 设置二维码图片
+     * @param imageView
+     * @param link
+     * @param w
+     */
+    public static void saveAndSetRqImage(final ImageView imageView, String link, int w) {
+        String fileName = String.format(Locale.CHINA, "%d.png", link.hashCode());
+        File file = new File(ClassFileHelper.DIR, fileName);
+        if(!file.exists()){
+            Bitmap mBitmap = CodeUtils.createImage(link, w, w, null);
+            if(mBitmap != null) {
+                ViewUtil.saveImage(mBitmap, ClassFileHelper.DIR, fileName);
+                if(imageView != null)
+                    imageView.setImageBitmap(mBitmap);
+            }
+        }
+        if(file.exists()){
+            if(imageView != null)
+                Glide.with(SheepApp.getInstance())
+                        .load(file)
+                        .apply(new RequestOptions().override(w, w))
+                        .into(imageView);
+        }
+    }
+
 
     public static void downloadAndSetImage(final ImageView imageView, final String link, final int w) {
         downLoadImage(String.format(Locale.CHINA, "%d", link.hashCode()), link, new Action1<File>() {

+ 16 - 5
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -7,6 +7,7 @@ import android.content.pm.PackageManager;
 import android.net.Uri;
 import android.os.Bundle;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.Gravity;
 import android.view.View;
 
@@ -32,6 +33,7 @@ import com.sheep.gamegroup.model.entity.VersionInfo;
 import com.sheep.gamegroup.model.entity.WebviewEntity;
 import com.sheep.gamegroup.model.entity.XianWanEntity;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.view.activity.ActAudit;
 import com.sheep.gamegroup.view.activity.ActCreditCardTaskList;
 import com.sheep.gamegroup.view.activity.ActCreditCardWeb;
 import com.sheep.gamegroup.view.activity.ActFindGame;
@@ -99,7 +101,6 @@ import com.sheep.jiuyan.samllsheep.service.FloatShotScreenService;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
-import org.afinal.simplecache.ACache;
 import org.xutils.ex.DbException;
 
 import java.io.File;
@@ -254,11 +255,11 @@ public class Jump2View {
             public void call(UserEntity userEntity) {
                 if(userEntity != null && !TextUtils.isEmpty(userEntity.getShare_link())) {
                     //PersionInfoAct.java与AskGetMoneyAct.java中分享二维码时的图片预下载
-                    GlideImageLoader.downloadAndSetImage(null, AppUtil.getQRLink(userEntity.getShareLink(DialogShare.FACE_TO_FACE), 800), 800);
+                    GlideImageLoader.saveAndSetRqImage(null, AppUtil.getQRLink(userEntity.getShareLink(DialogShare.FACE_TO_FACE), 800), 800);
                 }
 
                 if(userEntity != null && userEntity.canBindMobile()
-                    //&& !BuildConfig.DEBUG
+                    && !BuildConfig.DEBUG
                         ){//老用户没有绑定手机号
                     Jump2View.getInstance().goBindPhone(activity, 2);
                     return;
@@ -280,11 +281,11 @@ public class Jump2View {
             public void call(UserEntity userEntity) {
                 if(userEntity != null && !TextUtils.isEmpty(userEntity.getShare_link())) {
                     //PersionInfoAct.java与AskGetMoneyAct.java中分享二维码时的图片预下载
-                    GlideImageLoader.downloadAndSetImage(null, AppUtil.getQRLink(userEntity.getShareLink(DialogShare.FACE_TO_FACE), 800), 800);
+                    GlideImageLoader.saveAndSetRqImage(null, AppUtil.getQRLink(userEntity.getShareLink(DialogShare.FACE_TO_FACE), 800), 800);
                 }
 
                 if(userEntity != null && userEntity.canBindMobile()
-//                        && !BuildConfig.DEBUG
+                        && !BuildConfig.DEBUG
                         ){//老用户没有绑定手机号
                     Jump2View.getInstance().goBindPhone(activity, 1);
                     return;
@@ -1178,6 +1179,7 @@ public class Jump2View {
     }
     public void gotoMain(Activity activity) {
         String openId = SpUtils.getToken(SheepApp.getInstance());
+        LogUtil.logI("GOTOMIAN_____TOKEN----"+openId);
         if (!TextUtils.isEmpty(openId)) {
             checkOrGoHomePage(activity);
         } else {
@@ -1446,6 +1448,7 @@ public class Jump2View {
             G.showToast("敬请期待");
             return;
         }
+        CommonUtil.getInstance().initMiDong(activity, DataUtil.getInstance().getUserId());
         if(SheepApp.getInstance().isInitMidong()){
             Intent intent = new Intent(activity, ActMiDong.class);
             activity.startActivity(intent);
@@ -1460,4 +1463,12 @@ public class Jump2View {
         activity.startActivity(intent);
         XIAOMI_GAME_LIST.onEvent();
     }
+    /**
+     * 审核列表
+     */
+    public void goAuditTastList(Activity activity, Object o){
+        Intent intent = new Intent(activity,ActAudit.class);
+        activity.startActivity(intent);
+        XIAOMI_GAME_LIST.onEvent();
+    }
 }

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

@@ -1,14 +1,22 @@
 package com.sheep.gamegroup.util;
 
+import android.util.Log;
+
 /**
  * Created by realicing on 2018/5/12.
  * realicing@sina.com
  */
 public class LogUtil {
+
+    /**
+     * isDebug ,debug环境下设成true,方便查看日志,release环境下设成false,减少打印信息的输出,
+     */
+    private static boolean isDebug = true;
+
     public static void println(Object... msgs) {
-        if(TestUtil.isTest()) {
+        if (TestUtil.isTest()) {
             for (int i = 0; i < msgs.length; i++) {
-                if(i != 0) {
+                if (i != 0) {
                     System.out.print(" ");
                 }
                 System.out.print(msgs[i]);
@@ -16,4 +24,33 @@ public class LogUtil {
             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);
+        }
+    }
+
 }

+ 11 - 0
app/src/main/java/com/sheep/gamegroup/util/MyDbManager.java

@@ -153,6 +153,17 @@ public class MyDbManager {
         AppUsage appUsage = getAppUsage(packageName);
         return appUsage == null ? 0 : appUsage.getTotalTimeInForeground();
     }
+
+    /**
+     * @param packageName  ,
+     *                     不出意外的话,把时间设置为0
+     */
+    public void retAppUsageTime(String packageName){
+        AppUsage appUsage = getAppUsage(packageName);
+        if (appUsage != null){
+            appUsage.setTotalTimeInForeground(0);
+        }
+    }
     public AppUsage getAppUsage(String packageName){
         try{
             return db.selector(AppUsage.class)

+ 30 - 0
app/src/main/java/com/sheep/gamegroup/util/NestedScrollView.java

@@ -0,0 +1,30 @@
+package com.sheep.gamegroup.util;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.util.AttributeSet;
+
+/**
+ * Created by ljy on 2018/8/20.
+ */
+
+public class NestedScrollView extends android.support.v4.widget.NestedScrollView {
+    public NestedScrollView(@NonNull Context context) {
+        super(context);
+    }
+
+    public NestedScrollView(@NonNull Context context, @Nullable AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public NestedScrollView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);
+        super.onMeasure(widthMeasureSpec, expandSpec);
+    }
+}

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

@@ -285,7 +285,7 @@ public class TestUtil {
      * @param activity
      */
     public static void test(final Activity activity) {
-        final String[] items = {"复制token","复制打点数据","loading","progress","查看截图","复制imsi","小米游戏","测试可用金额","测试定位信息","测试apk的渠道","幂动科技","游戏搜索",
+        final String[] items = {"审核中心","复制token","复制打点数据","loading","progress","查看截图","复制imsi","小米游戏","测试可用金额","测试定位信息","测试apk的渠道","幂动科技","游戏搜索",
                 "游戏帐号","游戏代充","尝试开启第三方应用使用情况","测试代理页面","第三方应用使用情况",
                 "开启第三方应用使用情况","h5跳转","新手对话框","md5","空间不足提示框",
                 "显示已经安装应用列表","复制faq地址","复制代理地址","复制世界杯地址","任务游戏列表","世界杯活动","交通银行信用卡测试",
@@ -297,6 +297,9 @@ public class TestUtil {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
                         switch (items[which]) {
+                            case "审核中心":
+                                Jump2View.getInstance().goAuditTastList(activity, null);
+                                break;
                             case "loading":
                                 DialogLoading.showDialog(activity);
                                 break;

+ 450 - 83
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -1,12 +1,15 @@
 package com.sheep.gamegroup.util;
 
+import android.app.ActionBar;
 import android.app.Activity;
+import android.app.Dialog;
 import android.app.ProgressDialog;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.Color;
+import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.media.MediaPlayer;
 import android.net.Uri;
@@ -18,27 +21,50 @@ import android.support.v7.widget.RecyclerView;
 import android.text.Html;
 import android.text.TextUtils;
 import android.text.method.ScrollingMovementMethod;
+import android.util.DisplayMetrics;
+import android.util.TypedValue;
+import android.view.Display;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.Window;
 import android.view.WindowManager;
-import android.webkit.WebView;
+
+import com.tencent.smtt.sdk.WebView;
+
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.EditText;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
+import android.widget.PopupWindow;
 import android.widget.TextView;
 import android.widget.VideoView;
 
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.RequestBuilder;
 import com.bumptech.glide.request.RequestOptions;
+import com.google.gson.Gson;
+import com.kfzs.duanduan.fragment.FgtPersonalCenter;
+import com.sheep.gamegroup.dateview.DatePickerDialog;
+import com.sheep.gamegroup.dateview.DateUtil;
+import com.sheep.gamegroup.model.api.RedPackageMoney;
 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.DialogConfig;
 import com.sheep.gamegroup.model.entity.GameAccountEntity;
+import com.sheep.gamegroup.model.entity.HomeListEntity;
 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.entity.UserEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 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.TaskDetailAct;
 import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
 import com.sheep.gamegroup.view.dialog.DialogAddAccount;
 import com.sheep.gamegroup.view.dialog.DialogModifyAccount;
@@ -50,6 +76,7 @@ import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
 import org.afinal.simplecache.ACache;
 
@@ -61,7 +88,9 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
+import rx.android.schedulers.AndroidSchedulers;
 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.QR_COPY;
@@ -73,11 +102,14 @@ import static com.sheep.gamegroup.util.UMConfigUtils.Event.QR_SHARE;
  * realicing@sina.com
  */
 public class ViewUtil {
+
     public static final int REQUEST_CODE_TASK_LIST = 110;
     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();
         }
         return viewUtil;
@@ -98,7 +130,8 @@ public class ViewUtil {
         final ImageView iv_qr = view.findViewById(R.id.iv_qr);
         View save_pic = view.findViewById(R.id.save_pic);
         ImageView iv_qr_small = view.findViewById(R.id.iv_qr_small);
-        GlideImageLoader.downloadAndSetImage(iv_qr, AppUtil.getQRLink(link, 800), 800);
+
+        GlideImageLoader.saveAndSetRqImage(iv_qr, AppUtil.getQRLink(link, 800), 800);
         Glide.with(activity)
                 .load(R.drawable.icon)
                 .apply(new RequestOptions().override(G.WIDTH / 8))
@@ -135,6 +168,288 @@ public class ViewUtil {
     }
 
     /**
+     * @param context   Activity的上下文
+     * @param mTextView 显示日期的TextView
+     */
+    public static void showDateDialog(final PersonalInfoAct context, final TextView mTextView, String time) {
+        List<Integer> date;
+        try {
+            date = DateUtil.getDateForString((TextUtils.isEmpty(time) && time.equals("0001-01-01T00:00:00Z")) ? "1990-01-01" : time);//从1990-01-01开始显示}
+        } catch (Exception e) {
+            date = DateUtil.getDateForString("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) {
+        LogUtil.logI(SpUtils.getOrder("order") + "开始的order");
+        SheepApp.getInstance().getNetComponent().getApiService().getNewTask(SpUtils.getOrder("order"))
+                .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(SpUtils.getOrder("order") + "保存后的order");
+                            SpUtils.saveOrder("order", mRobTask.getOrder());
+                            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);
+        ImageView ivClose = view.findViewById(R.id.iv_close);
+        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.MATCH_PARENT);
+        popupWindow.setHeight(ActionBar.LayoutParams.MATCH_PARENT);
+        popupWindow.setTouchable(true);
+        popupWindow.setFocusable(true);
+        popupWindow.setOutsideTouchable(false);
+        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);
+                LogUtil.logI("抢任务---"+new Gson().toJson(mRobTask));
+
+            }
+        });
+        //立即去做,跳转到任务详情去
+        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().getId());
+                mActivity.startActivity(intent);
+
+            }
+        });
+        ivClose.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                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 tvTitle = view.findViewById(R.id.tv_title);
+        final TextView tvGetRedPackage = view.findViewById(R.id.tv_get_redpackage);
+        ImageView ivClose = view.findViewById(R.id.iv_close);
+        final PopupWindow popupWindow = new PopupWindow(mActivity);
+        popupWindow.setContentView(view);
+        popupWindow.setWidth(ActionBar.LayoutParams.MATCH_PARENT);
+        popupWindow.setHeight(ActionBar.LayoutParams.MATCH_PARENT);
+        popupWindow.setTouchable(true);
+        popupWindow.setFocusable(true);
+        popupWindow.setOutsideTouchable(false);
+        popupWindow.setBackgroundDrawable(new BitmapDrawable());
+        backgroundAlpha(0.7f, mActivity);
+        popupWindow.showAtLocation(viewAnchor, Gravity.CENTER, 0, 0);
+        popupWindow.setOnDismissListener(new PopDismissListener(mActivity));
+        tvTitle.setText("兑换");
+        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);
+                    popupWindow.dismiss();
+                }
+            }
+        });
+        ivClose.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                popupWindow.dismiss();
+            }
+        });
+
+    }
+
+    /**
+     * 测量屏幕的宽
+     *
+     * @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 屏幕的宽
+     */
+    public 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透明度
+     */
+    public 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
@@ -159,7 +474,7 @@ public class ViewUtil {
         if (!TextUtils.isEmpty(link))
             tv_link.setText(link);
 
-        GlideImageLoader.downloadAndSetImage(iv_qr, AppUtil.getQRLink(link, 800), 800);
+        GlideImageLoader.saveAndSetRqImage(iv_qr, AppUtil.getQRLink(link, 800), 800);
         dialog_close.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -249,14 +564,14 @@ public class ViewUtil {
         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;
         }
-        if(ViewUtil.isH5Content(content)){
+        if (ViewUtil.isH5Content(content)) {
             webView.loadDataWithBaseURL(null, content, "text/html", "utf-8", null);
             textView.setVisibility(View.GONE);
-        } else if(content.startsWith("<p>")){
+        } else if (content.startsWith("<p>")) {
             ViewUtil.loadDataWithBaseURL(webView, content);
             textView.setVisibility(View.GONE);
         } else {
@@ -274,8 +589,8 @@ public class ViewUtil {
     }
 
     public static void setH5Text(TextView textView, String content) {
-        if(textView != null) {
-            if(TextUtils.isEmpty(content)){
+        if (textView != null) {
+            if (TextUtils.isEmpty(content)) {
                 textView.setText("");
                 return;
             }
@@ -302,6 +617,7 @@ public class ViewUtil {
     public static AlertDialog showMsgDialog(final Context context, String msg, String title) {
         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,
                                             View.OnClickListener onClickListener, View.OnClickListener onRightClickListener, View.OnClickListener onCloseClickListener) {
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setBtnLeftText(leftBtn)
@@ -310,10 +626,12 @@ public class ViewUtil {
                 .setBtnRightOnClickListener(onRightClickListener)
                 .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("知道了"));
     }
 
+
     public static AlertDialog showMsgDialog(Context context, final DialogConfig dialogConfig) {
         final Context mContext = context == null ? ActivityManager.getInstance().currentActivity() : context;
         String title = dialogConfig.getTitle();
@@ -328,7 +646,7 @@ public class ViewUtil {
         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();
         TextView dialog_title = dialog_parent.findViewById(R.id.dialog_title);
-        switch (dialogConfig.getTheme()){//设置按钮风格
+        switch (dialogConfig.getTheme()) {//设置按钮风格
             case DialogConfig.THEME_PURPLE:
                 dialog_title.setBackgroundResource(R.drawable.shape_purple_solid_rectangle_top);
                 break;
@@ -340,7 +658,7 @@ public class ViewUtil {
             dialog_title.setText(title);
 
         final TextView dialog_msg = view.findViewById(R.id.dialog_msg);
-        if(dialog_msg != null) {
+        if (dialog_msg != null) {
             if (TextUtils.isEmpty(msg)) {
                 dialog_msg.setVisibility(View.GONE);
             } else {
@@ -356,24 +674,24 @@ public class ViewUtil {
         }
 
         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);
         }
 
         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)) {
                 dialog_msg_more.setVisibility(View.GONE);
             } else {
                 dialog_msg_more.setVisibility(View.VISIBLE);
                 dialog_msg_more.setText(msgMore);
-                if(dialogConfig.getMsgMoreColor() > 0)
+                if (dialogConfig.getMsgMoreColor() > 0)
                     dialog_msg_more.setTextColor(mContext.getResources().getColor(dialogConfig.getMsgMoreColor()));
             }
         }
 
         TextView dialog_tip = view.findViewById(R.id.dialog_tip);
-        if(dialog_tip != null) {
+        if (dialog_tip != null) {
             if (TextUtils.isEmpty(tip)) {
                 dialog_tip.setVisibility(View.GONE);
             } else {
@@ -384,8 +702,8 @@ public class ViewUtil {
 
         TextView dialog_btn_left = view.findViewById(R.id.dialog_btn_left);
         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:
                     dialog_btn_left.setBackgroundResource(R.drawable.selector_button_full_purple);
                     dialog_btn_left.setTextColor(Color.WHITE);
@@ -408,8 +726,8 @@ public class ViewUtil {
 
         TextView dialog_btn_right = view.findViewById(R.id.dialog_btn_right);
         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:
                     dialog_btn_right.setBackgroundResource(R.drawable.selector_button_full_purple);
                     dialog_btn_right.setTextColor(Color.WHITE);
@@ -430,16 +748,16 @@ public class ViewUtil {
         }
 
         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);
         }
 
-        if(dialog_close != null) {
+        if (dialog_close != null) {
             if (dialogConfig.isCancelable())//
                 dialog_close.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View v) {
-                        if(btnCloseOnClickListener != null){
+                        if (btnCloseOnClickListener != null) {
                             btnCloseOnClickListener.onClick(v);
                         }
                         dialog.dismiss();
@@ -452,7 +770,7 @@ public class ViewUtil {
             @Override
             public void onDismiss(DialogInterface dialog) {
                 try {
-                    if(dialogConfig.isFinish()) {
+                    if (dialogConfig.isFinish()) {
                         if (mContext instanceof Activity) {
                             ((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);
         }
-        if(!dialogConfig.isCancelable())
+        if (!dialogConfig.isCancelable())
             dialog.setCancelable(false);
         try {
             dialog.show();
@@ -478,32 +796,33 @@ public class ViewUtil {
 
     /**
      * 通过map来设置字体颜色
+     *
      * @param textView
      * @param msg
      * @param colorMsgMap key为文本,value为要设置的颜色(#FF0000)
      */
     public static void setColorMapText(TextView textView, String msg, Map<String, String> colorMsgMap) {
-        if(textView == null){
+        if (textView == null) {
             return;
         }
-        if(TextUtils.isEmpty(msg)){
+        if (TextUtils.isEmpty(msg)) {
             textView.setText("");
         }
-        if(colorMsgMap.isEmpty()) {
+        if (colorMsgMap.isEmpty()) {
             textView.setText(msg);
         } else {
             int index = 0;
             for (Map.Entry<String, String> entry : colorMsgMap.entrySet()) {
                 String key = entry.getKey();
                 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();
-                    if(index < length){
+                    if (index < length) {
                         int position = msg.indexOf(key, index);
                         String start = msg.substring(0, position);
                         String middle = getHtmlText(key, value);
                         String end = msg.substring(position + key.length());
-                        index = (start+middle).length();
+                        index = (start + middle).length();
                         msg = start + middle + end;
                     }
                 }
@@ -511,38 +830,40 @@ public class ViewUtil {
             textView.setText(Html.fromHtml(msg));
         }
     }
+
     /**
      * 通过map来设置字体颜色
+     *
      * @param textView
      * @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;
         }
-        if(TextUtils.isEmpty(msg)){
+        if (TextUtils.isEmpty(msg)) {
             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);
         } else {
             int index = 0;
             for (int i = 0; i + 1 < items.length; ) {
                 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();
-                    if(index < length){
+                    if (index < length) {
                         int position = msg.indexOf(key, index);
                         String start = msg.substring(0, position);
                         String middle = getHtmlText(key, value);
                         String end = msg.substring(position + key.length());
-                        index = (start+middle).length();
+                        index = (start + middle).length();
                         msg = start + middle + end;
                     }
                 }
-                i+=2;
+                i += 2;
             }
             textView.setText(Html.fromHtml(msg));
         }
@@ -550,7 +871,8 @@ public class ViewUtil {
 
     /**
      * 获取html格式并带颜色的文字
-     * @param text 文字
+     *
+     * @param text  文字
      * @param color 颜色
      * @return
      */
@@ -573,12 +895,12 @@ public class ViewUtil {
 
             ACache aCache = ACache.get(SheepApp.getInstance());
             String wh = aCache.getAsString(advertising.getDisplay_src());
-            if(!TextUtils.isEmpty(wh) && wh.contains(";")) {
+            if (!TextUtils.isEmpty(wh) && wh.contains(";")) {
                 String[] items = wh.split(";");
                 dialog_center_ll.setMinimumWidth(Integer.parseInt(items[0]));
                 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);
             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));
             if (advertising.isImage()) {
                 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)));
-                    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);
                 ad_video_view.setVisibility(View.GONE);
@@ -613,13 +935,13 @@ public class ViewUtil {
                 videoView.setVideoURI(uri);
                 videoView.start();
                 videoView.requestFocus();
-                if(container != null){
+                if (container != null) {
                     container.setT(new Action1<Integer>() {
                         @Override
                         public void call(Integer integer) {
-                            if(integer == 1){//onResume
+                            if (integer == 1) {//onResume
                                 videoView.resume();
-                            } else if(integer == 2){//onPause
+                            } else if (integer == 2) {//onPause
                                 videoView.pause();
                             }
                         }
@@ -680,7 +1002,7 @@ public class ViewUtil {
                     Jump2View.getInstance().tryShowReservation(activity);
                 }
             });
-            if(TextUtils.isEmpty(advertising.getDesc())) {
+            if (TextUtils.isEmpty(advertising.getDesc())) {
                 ad_msg.setVisibility(View.GONE);
             } else {
                 ad_msg.setText(advertising.getDesc());
@@ -692,6 +1014,7 @@ public class ViewUtil {
             }
         }
     }
+
     //显示定向货币详情
     public static void showOrienteeringDetails(Activity activity) {
         new DialogOrienteeringDetails(activity).showOrienteeringDetails();
@@ -700,98 +1023,109 @@ public class ViewUtil {
     /**
      * 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.setGame_id(gameId);
         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();
     }
 
     /**
      * 用户详情
      */
-    public void showGameAccountDetail(Activity activity, int id){
+    public void showGameAccountDetail(Activity activity, int id) {
         new DialogModifyAccount(activity, id).showAddAccount();
     }
+
     /**
      * 用户详情
      */
-    public void showGameAccountDetail(Activity activity, GameAccountEntity item){
+    public void showGameAccountDetail(Activity activity, GameAccountEntity item) {
         new DialogModifyAccount(activity, item).showAddAccount();
     }
 
 
     /**
      * 分享
+     *
      * @param activity
      * @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();
     }
 
     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];
             }
             GlideImageLoader.centerImage(imageView, 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];
             }
             GlideImageLoader.setImage(imageView, pictures);
         }
     }
+
     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];
             }
             GlideImageLoader.roundedCornersImage(imageView, pictures, radius);
         }
     }
+
     public static void setTextTime(TextView textView, long time, String format) {
-        if(textView != null){
+        if (textView != null) {
             textView.setText(TimeUtil.TimeStamp2Date(time, format));
         }
     }
+
     public static void setText(TextView textView) {
-        if(textView != null){
+        if (textView != null) {
             textView.setText("");
         }
     }
 
     public static void setText(TextView textView, String msg) {
-        if(textView != null){
+        if (textView != null) {
             textView.setText(TextUtils.isEmpty(msg) ? "" : msg);
         }
 
     }
+
     public static final String INDENT = "\u3000";//用特殊字符显示空白的缩进字符
+
     public static void setText(TextView textView, String msg, int indent) {
-        if(textView != null){
+        if (textView != null) {
             textView.setText(addIndent(msg, indent));
         }
 
     }
+
     //在msg前面添加空格
     public static String addIndent(String msg, int indent) {
-        if(indent > 0){
+        if (indent > 0) {
             StringBuilder stringBuilder = new StringBuilder();
             for (int i = 0; i < indent; i++) {
                 stringBuilder.append(INDENT);
             }
-            if(!TextUtils.isEmpty(msg))
+            if (!TextUtils.isEmpty(msg))
                 stringBuilder.append(msg);
             return stringBuilder.toString();
         }
@@ -803,9 +1137,10 @@ public class ViewUtil {
      */
 
     protected ProgressDialog mPd;
-    public void  showProgress(Activity activity){
+
+    public void showProgress(Activity activity) {
         try {
-            if(mPd!=null){
+            if (mPd != null) {
                 hideProgress(activity);
             }
             mPd = new ProgressDialog(activity);
@@ -819,9 +1154,10 @@ public class ViewUtil {
             e.printStackTrace();
         }
     }
-    public void  showProgress(Activity activity, boolean cancel){
+
+    public void showProgress(Activity activity, boolean cancel) {
         try {
-            if(mPd!=null){
+            if (mPd != null) {
                 hideProgress(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() {
             @Override
             public void run() {
-                if(mPd!=null){
+                if (mPd != null) {
                     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);
     }
 
-    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);
         final AlertDialog dialog = new AlertDialog.Builder(activity, R.style.AppTheme_Dialog_Alert)
                 .setView(dialog_parent)
@@ -915,7 +1251,7 @@ public class ViewUtil {
         try {
             dialog.show();
             Window window = dialog.getWindow();
-            if(window != null) {
+            if (window != null) {
                 window.setGravity(Gravity.BOTTOM);
                 WindowManager.LayoutParams params = window.getAttributes();
                 params.width = G.WIDTH > G.HEIGHT ? G.HEIGHT : G.WIDTH;
@@ -925,7 +1261,38 @@ public class ViewUtil {
             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);
     }
+
+    /**
+     * 标签类型(0无,1热门,2最新,3现金,4活跃,5福利)
+     * homepage item statues
+     */
+    public void showGridviewStatues(Context context, TextView textView, HomeListEntity entity) {
+        textView.setVisibility(View.INVISIBLE);
+
+        int padding = textView.getContext().getResources().getDimensionPixelSize(R.dimen.content_padding_2);
+        switch (entity.getTag()) {
+            default:
+
+                break;
+            case 3:
+                textView.setVisibility(View.VISIBLE);
+                textView.setBackgroundResource(R.drawable.shape_red_stroke_rectangle_no_lb);
+                textView.setTextColor(context.getResources().getColor(R.color.red_FD2D54));
+                textView.setText("现金");
+                textView.setPadding(4 * padding, padding, 4 * padding, padding);
+                break;
+            case 4:
+                textView.setVisibility(View.VISIBLE);
+                textView.setBackgroundResource(R.drawable.shape_red_f07422_stroke_retangle_no_lb);
+                textView.setTextColor(context.getResources().getColor(R.color.red_F07422));
+                textView.setText("活跃");
+                textView.setPadding(4 * padding, padding, 4 * padding, padding);
+                break;
+        }
+
+    }
 }

+ 54 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/ActAudit.java

@@ -0,0 +1,54 @@
+package com.sheep.gamegroup.view.activity;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentTransaction;
+
+import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.view.fragment.FgtMainAudit;
+import com.sheep.jiuyan.samllsheep.R;
+
+/**
+ * Created by ljy on 2018/8/16.
+ */
+
+public class ActAudit extends BaseActivity {
+    Activity activity;
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.personalcenter_act_layout;
+    }
+
+    @Override
+    public void initView() {
+        activity = this;
+
+        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
+        Bundle bundle = new Bundle();
+        Fragment fragment = getSupportFragmentManager().findFragmentByTag("tag");
+        if(fragment == null){
+            fragment = new FgtMainAudit();
+            fragment.setArguments(bundle);
+            transaction.add(R.id.frame_container, fragment, "tag");
+            transaction.commitAllowingStateLoss();
+        }else {
+            fragment.setArguments(bundle);
+            transaction.replace(R.id.frame_container, fragment);
+            transaction.commitAllowingStateLoss();
+        }
+
+
+    }
+
+    @Override
+    public void initListener() {
+
+    }
+
+    @Override
+    public void initData() {
+
+    }
+}

+ 13 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActCreditCardTaskList.java

@@ -1,8 +1,10 @@
 package com.sheep.gamegroup.view.activity;
 
+import android.app.Activity;
 import android.support.design.widget.TabLayout;
 import android.support.v4.app.Fragment;
 import android.support.v4.view.ViewPager;
+import android.view.View;
 
 import com.alibaba.fastjson.JSONObject;
 import com.kfzs.duanduan.fragment.FgtCreditCardProgressQuery;
@@ -10,8 +12,10 @@ import com.kfzs.duanduan.fragment.FgtCreditCardTaskList;
 import com.kfzs.duanduan.mine.GiftpackListAdapter;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.CreditCardProgressQuery;
+import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.UMConfigUtils;
+import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
@@ -43,9 +47,17 @@ public class ActCreditCardTaskList extends AbsChooseImageActivity {
 
     @Override
     public void initView() {
+        final Activity activity = this;
         TitleBarUtils.getInstance()
                 .setTitle(this,"办卡赚钱")
-                .setTitleFinish(this);
+                .setTitleFinish(this)
+                .setRightImgBotton(activity, R.mipmap.question_black_img, new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        ViewUtil.showMsgDialog(activity, new DialogConfig().setTitle("温馨提示").setBtnLeftText("我知道了")
+                                .setMsg("该栏目为现金任务,参与好友提成。"));
+                    }
+                });
 
         mAdapter = new GiftpackListAdapter(getSupportFragmentManager(), getApplicationContext());
         mAdapter.add(new FgtCreditCardTaskList(), "任务列表");

+ 6 - 5
app/src/main/java/com/sheep/gamegroup/view/activity/ActCreditCardWeb.java

@@ -3,14 +3,15 @@ package com.sheep.gamegroup.view.activity;
 import android.os.Build;
 import android.os.Bundle;
 import android.view.View;
-import android.webkit.WebChromeClient;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
+import com.tencent.smtt.sdk.WebChromeClient;
+import com.tencent.smtt.sdk.WebSettings;
+import com.tencent.smtt.sdk.WebView;
+import com.tencent.smtt.sdk.WebViewClient;
 import android.widget.TextView;
 
 import com.kfzs.duanduan.BaseCompatActivity;
 import com.sheep.gamegroup.model.entity.CreditCard;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.WebviewJs;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -56,7 +57,7 @@ public class ActCreditCardWeb extends BaseCompatActivity {
         webViewSettings = mWebView.getSettings();
         webViewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-            webViewSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
+//            webViewSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
         }
         if (getIntent().hasExtra(EXTRA_WEBVIEW_NO_TITLE)) {//不显示标题
             findViewById(R.id.appbar_act_webview).setVisibility(View.GONE);

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

@@ -10,7 +10,7 @@ import android.support.v7.widget.RecyclerView;
 import android.support.v7.widget.Toolbar;
 import android.text.TextUtils;
 import android.view.View;
-import android.webkit.WebView;
+import com.tencent.smtt.sdk.WebView;
 import android.widget.ImageView;
 import android.widget.ProgressBar;
 import android.widget.RatingBar;

+ 298 - 69
app/src/main/java/com/sheep/gamegroup/view/activity/ActFindInformation.java

@@ -1,15 +1,27 @@
 package com.sheep.gamegroup.view.activity;
 
 import android.app.Activity;
+import android.content.Context;
 import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.graphics.PixelFormat;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
+import android.view.WindowManager;
+
+import com.tencent.smtt.export.external.interfaces.IX5WebChromeClient;
+import com.tencent.smtt.sdk.WebChromeClient;
+import com.tencent.smtt.sdk.WebSettings;
+import com.tencent.smtt.sdk.WebView;
+import com.tencent.smtt.sdk.WebViewClient;
+import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.TextView;
 
@@ -28,6 +40,7 @@ import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.helper.TaskHelper;
 import com.sheep.gamegroup.util.TimeUtil;
@@ -62,7 +75,7 @@ import static com.sheep.gamegroup.util.UMConfigUtils.Event.FIND_SHARE;
  * Created by realicing on 2018/5/10.
  * realicing@sina.com
  */
-public class ActFindInformation extends BaseActivity implements Action1<Integer>{
+public class ActFindInformation extends BaseActivity implements Action1<Integer> {
     @Override
     protected int getLayoutId() {
         return R.layout.net_empty_fresh_list;
@@ -70,6 +83,19 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
 
     private int id;
 
+    private int k;
+    int width;
+    /**
+     * 视频全屏参数
+     */
+
+
+    protected final FrameLayout.LayoutParams COVER_SCREEN_PARAMS = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
+    private View customView;
+    private FrameLayout fullscreenContainer;
+    private IX5WebChromeClient.CustomViewCallback customViewCallback;
+
+
     @BindView(R.id.refresh)
     SwipeRefreshLayout refresh;
     @BindView(R.id.empty_view)
@@ -78,19 +104,21 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
     View check_net_ll;
     @BindView(R.id.view_list)
     RecyclerView view_list;
+    WebView webView;
+
     @Override
     public void initView() {
         id = getIntent().getIntExtra("id", 0);
         String title = getIntent().getStringExtra("title");
 
         TitleBarUtils.getInstance()
-                .setTitle(this, TextUtils.isEmpty(title) ? "详情" : title)
+                .setTitle(this, /*TextUtils.isEmpty(title) ? "详情" : title*/"详情")
                 .setTitleFinish(this)
                 .setRightImgBotton(this, R.mipmap.share, new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {
                         FIND_SHARE.onEvent("find_id", id);
-                        Jump2View.getInstance().tryShare(ActFindInformation.this,"find_share_url", "find_id", id);
+                        Jump2View.getInstance().tryShare(ActFindInformation.this, "find_share_url", "find_id", id);
                     }
                 });
 
@@ -105,16 +133,17 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
         });
 
         view_list.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
-        view_list.setAdapter(new AdbCommonRecycler<String>(SheepApp.getInstance(), list){
+        view_list.setAdapter(new AdbCommonRecycler<String>(SheepApp.getInstance(), list) {
 
             @Override
             public int getItemViewType(int position) {
                 return position;
             }
+
             @Override
             public int getViewIdByType(int type) {//type来源于 getItemViewType 返回的值
                 String item = list.get(type);
-                switch (item){
+                switch (item) {
                     case "top":
                         return R.layout.find_information_top;
                     case "bottom":
@@ -125,7 +154,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
 
             @Override
             public void convert(ViewHolder holder, final String item) {
-                switch (item){
+                switch (item) {
                     case "top":
                         loadTop(holder.itemView);
                         break;
@@ -133,39 +162,189 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
                         loadBottom((ViewGroup) holder.itemView);
                         break;
                 }
-            }});
+            }
+        });
+    }
+
+
+    public void initWebView() {
+        WebChromeClient wvcc = new WebChromeClient();
+        WebSettings webSettings = webView.getSettings();
+        webSettings.setJavaScriptEnabled(true);
+        webSettings.setUseWideViewPort(true); // 关键点
+        webSettings.setAllowFileAccess(true); // 允许访问文件
+        webSettings.setSupportZoom(true); // 支持缩放
+        webSettings.setLoadWithOverviewMode(true);//是否支持全屏
+        webSettings.setDomStorageEnabled(true);
+        webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); // 加载缓存内容
+        webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);// 自适应屏幕
+        getWindow().setFormat(PixelFormat.TRANSLUCENT);
+        webView.setWebChromeClient(wvcc);
+        WebViewClient wvc = new WebViewClient() {
+            @Override
+            public boolean shouldOverrideUrlLoading(WebView view, String url) {
+                 webView.loadUrl(url);
+                Jump2View.getInstance().goWeb(ActFindInformation.this, url);
+                return true;
+            }
+        };
+        webView.setWebChromeClient(new WebChromeClient() {
+
+            /**视频播放相关的方法*
+             *
+             */
+
+
+            @Override
+            public View getVideoLoadingProgressView() {
+                FrameLayout frameLayout = new FrameLayout(ActFindInformation.this);
+                frameLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
+                return frameLayout;
+            }
+
+            @Override
+            public void onShowCustomView(View view, IX5WebChromeClient.CustomViewCallback callback) {
+                showCustomView(view, callback);
+                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//设置横屏
+            }
+
+            @Override
+            public void onHideCustomView() {
+                hideCustomView();
+                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//设置竖屏
+            }
+        });
+        webView.setWebViewClient(wvc);
     }
 
+    /**
+     * 视频播放全屏
+     */
+
+    private void showCustomView(View view, IX5WebChromeClient.CustomViewCallback callback) {
+        // if a view already exists then immediately terminate the new one
+        if (customView != null) {
+            callback.onCustomViewHidden();
+            return;
+        }
+
+        ActFindInformation.this.getWindow().getDecorView();
+
+        FrameLayout decor = (FrameLayout) getWindow().getDecorView();
+        fullscreenContainer = new FullscreenHolder(ActFindInformation.this);
+        fullscreenContainer.addView(view, COVER_SCREEN_PARAMS);
+        decor.addView(fullscreenContainer, COVER_SCREEN_PARAMS);
+        customView = view;
+        setStatusBarVisibility(false);
+        customViewCallback = callback;
+    }
+
+    /**
+     * 隐藏视频全屏
+     */
+
+
+    private void hideCustomView() {
+        if (customView == null) {
+            return;
+        }
+
+        setStatusBarVisibility(true);
+        FrameLayout decor = (FrameLayout) getWindow().getDecorView();
+        decor.removeView(fullscreenContainer);
+        fullscreenContainer = null;
+        customView = null;
+        customViewCallback.onCustomViewHidden();
+        webView.setVisibility(View.VISIBLE);
+    }
+
+    /**
+     * 全屏容器界面
+     */
+
+
+    class FullscreenHolder extends FrameLayout {
+
+        public FullscreenHolder(Context ctx) {
+            super(ctx);
+            setBackgroundColor(ctx.getResources().getColor(android.R.color.black));
+        }
+
+        @Override
+        public boolean onTouchEvent(MotionEvent evt) {
+            switch (evt.getAction()) {
+                case MotionEvent.ACTION_POINTER_UP:
+                    break;
+            }
+            return true;
+        }
+    }
+
+    private void setStatusBarVisibility(boolean visible) {
+        int flag = visible ? 0 : WindowManager.LayoutParams.FLAG_FULLSCREEN;
+        getWindow().setFlags(flag, WindowManager.LayoutParams.FLAG_FULLSCREEN);
+        Log.i("bar------", visible + "");
+    }
+
+    @Override
+    public boolean onKeyUp(int keyCode, KeyEvent event) {
+        switch (keyCode) {
+            case KeyEvent.KEYCODE_BACK:
+/**回退键 事件处理 优先级:
+ 视频播放全屏 - 网页回退 - 关闭页面*/
+
+                if (customView != null) {
+                    hideCustomView();
+                } else if (webView.canGoBack()) {
+                    webView.goBack();
+                } else {
+                    finish();
+                }
+                return true;
+            default:
+                return super.onKeyUp(keyCode, event);
+        }
+    }
+
+
     private void loadTop(View itemView) {
-        TextView find_information_name = (TextView)itemView.findViewById(R.id.find_information_name);
-        TextView find_information_time = (TextView)itemView.findViewById(R.id.find_information_time);
-        TextView find_information_look = (TextView)itemView.findViewById(R.id.find_information_look);
+        TextView find_information_name = (TextView) itemView.findViewById(R.id.find_information_name);
+        TextView find_information_time = (TextView) itemView.findViewById(R.id.find_information_time);
+        TextView find_information_look = (TextView) itemView.findViewById(R.id.find_information_look);
         ViewUtil.setText(find_information_name, findItem.getTitle());
         ViewUtil.setText(find_information_time, String.format(Locale.CHINA, "发布时间:%s", TimeUtil.TimeStamp2Date(findItem.getCreated_at(), "yyyy-MM-dd HH:mm")));
         ViewUtil.setText(find_information_look, findItem.getClicks());
 
-        WebView find_information_content_wb = itemView.findViewById(R.id.find_information_content_wb);
-        ViewUtil.loadDataWithBaseURL(find_information_content_wb, findItem.getContent());
-        find_information_content_wb.setWebViewClient(new WebViewClient() {
+        webView = itemView.findViewById(R.id.find_information_content_wb);
+        initWebView();
+
+
+        ViewUtil.loadDataWithBaseURL(webView, findItem.getContent());
+        LogUtil.logI("结果为——-----" + findItem.getContent());
+       /* webView.setWebViewClient(new WebViewClient() {
             @Override
             public boolean shouldOverrideUrlLoading(WebView view, String url) {
                 Jump2View.getInstance().goWeb(ActFindInformation.this, url);
                 return true;
             }
-        });
+        });*/
+
 
     }
+
+
     private TaskHelper taskHelper = new TaskHelper(this);
     private ViewGroup bottomViewGroup;
+
     private void loadBottom(ViewGroup viewGroup) {
         bottomViewGroup = viewGroup;
-        if(taskHelper.hasTask()) {
+        if (taskHelper.hasTask()) {
             taskHelper.loadTask(viewGroup.getChildAt(0));
         } else {
             viewGroup.getChildAt(0).setVisibility(View.GONE);
         }
         viewGroup.getChildAt(1).setVisibility(taskHelper.hasTask() && findApp != null ? View.VISIBLE : View.GONE);
-        if(findApp != null) {
+        if (findApp != null) {
             loadGame(viewGroup.getChildAt(2));
         } else {
             viewGroup.getChildAt(2).setVisibility(View.GONE);
@@ -174,22 +353,22 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
 
     private void loadGame(View itemView) {
         itemView.setVisibility(View.VISIBLE);
-        ImageView find_information_game_icon = (ImageView)itemView.findViewById(R.id.find_information_game_icon);
-        TextView find_information_game_name = (TextView)itemView.findViewById(R.id.find_information_game_name);
-        TextView find_information_game_surplus = (TextView)itemView.findViewById(R.id.find_information_game_surplus);
-        TextView find_information_game_time = (TextView)itemView.findViewById(R.id.find_information_game_time);
-        TextView find_information_game_task_center = (TextView)itemView.findViewById(R.id.find_information_game_task_center);
+        ImageView find_information_game_icon = (ImageView) itemView.findViewById(R.id.find_information_game_icon);
+        TextView find_information_game_name = (TextView) itemView.findViewById(R.id.find_information_game_name);
+        TextView find_information_game_surplus = (TextView) itemView.findViewById(R.id.find_information_game_surplus);
+        TextView find_information_game_time = (TextView) itemView.findViewById(R.id.find_information_game_time);
+        TextView find_information_game_task_center = (TextView) itemView.findViewById(R.id.find_information_game_task_center);
         GlideImageLoader.setGameImage(find_information_game_icon, findApp.getIcon());
         ViewUtil.setText(find_information_game_name, findApp.getName());
         final boolean isNeedReservation = !findApp.isCanDonload();//这里认为只有两种状态:可下载与预约下载
         ViewUtil.setText(find_information_game_surplus);
-        if(isNeedReservation)
+        if (isNeedReservation)
             ViewUtil.setText(find_information_game_time, String.format(Locale.CHINA, "开放时间:%s", TimeUtil.TimeStamp2Date(findApp.getDownload_at(), "yyyy-MM-dd\u0020HH:mm")));
         else
-            ViewUtil.setText(find_information_game_time, String.format(Locale.CHINA, "厂商:%s\u0020包体大小:%sM", findApp.getManufacturer(),findApp.getPackage_size()));
+            ViewUtil.setText(find_information_game_time, String.format(Locale.CHINA, "厂商:%s\u0020包体大小:%sM", findApp.getManufacturer(), findApp.getPackage_size()));
         find_information_game_task_center.setVisibility(View.VISIBLE);
 
-        updateView(this,findApp, find_information_game_task_center);
+        updateView(this, findApp, find_information_game_task_center);
 
         itemView.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -205,23 +384,24 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
     }
 
     private List<String> list = ListUtil.emptyList();
+
     @Override
     public void initData() {
         empty_view.setVisibility(View.INVISIBLE);
         SysAppUtil.checkNet(new Action1<Integer>() {
             @Override
             public void call(Integer result) {
-                if(result != 0){//无网络
-                    if(check_net_ll != null)
+                if (result != 0) {//无网络
+                    if (check_net_ll != null)
                         check_net_ll.setVisibility(View.VISIBLE);
                 } else {
-                    if(check_net_ll != null)
+                    if (check_net_ll != null)
                         check_net_ll.setVisibility(View.GONE);
                 }
             }
         });
         FindItem data = DataUtil.getInstance().getCacheResult(ApiKey.articlesItem(id), FindItem.class);
-        if(data != null){
+        if (data != null) {
             loadFindItem(data);
         }
         SheepApp.getInstance().getNetComponent().getApiService().getFindDetail(id)
@@ -231,7 +411,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.articlesItem(id));
-                        if(isNewData) {
+                        if (isNewData) {
                             FindItem data = baseMessage.getData(FindItem.class);
                             loadFindItem(data);
                         }
@@ -246,17 +426,17 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
     }
 
     private void loadFindItem(FindItem data) {
-        if(data != null){
+        if (data != null) {
             taskHelper.clear();
             findItem = data;
             list.clear();
             list.add("top");
             list.add("bottom");
             notifyDataSetChanged();
-            if(findItem.getRelease_task_id() != 0){//包含任务
+            if (findItem.getRelease_task_id() != 0) {//包含任务
                 taskHelper.initAcceptedTask(ActFindInformation.this, findItem.getRelease_task_id());
             }
-            if(findItem.getApplication_id() != 0){//包含游戏
+            if (findItem.getApplication_id() != 0) {//包含游戏
                 initFindApp(findItem.getApplication_id());
             }
         } else {
@@ -265,9 +445,10 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
     }
 
     private FindApp findApp;
+
     private void initFindApp(int application_id) {
         FindApp cacheResult = DataUtil.getInstance().getCacheResult(ApiKey.applications(id), FindApp.class);
-        if(cacheResult != null){
+        if (cacheResult != null) {
             findApp = cacheResult;
             notifyDataSetChanged();
         }
@@ -278,7 +459,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.applications(id));
-                        if(isNewData) {
+                        if (isNewData) {
                             findApp = baseMessage.getData(FindApp.class);
                             notifyDataSetChanged();
                         } else {
@@ -296,7 +477,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
 
     private FindItem findItem;
 
-    private void notifyDataSetChanged(){
+    private void notifyDataSetChanged() {
         CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty());
         refresh.setRefreshing(false);
         view_list.getAdapter().notifyDataSetChanged();
@@ -304,19 +485,21 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
 
 
     private Map<String, TextView> downLoadTextViewMap = new HashMap<>();
+
     //获取任务对应的TextView来更新进度
     private TextView getTextViewByTask(DownloadTask task) {
         return getTextViewByKey(task.getKey());
     }
+
     private TextView getTextViewByKey(String key) {
-        if(downLoadTextViewMap.containsKey(key))
+        if (downLoadTextViewMap.containsKey(key))
             return downLoadTextViewMap.get(key);
         return null;
     }
 
     //更新按钮状态与添加点击事件
     private void updateView(Activity activity, FindApp findApp, TextView textView) {
-        if(findApp.isCanDonload()){//可下载
+        if (findApp.isCanDonload()) {//可下载
             downLoadTextViewMap.put(findApp.getDownload_link(), textView);
             downLoadTextViewMap.put(findApp.getPackage_name(), textView);
             findApp.getFindAppHelper().updateDownloadTaskView(activity, findApp, textView);
@@ -327,79 +510,91 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
 
     //下载状态监听
 
-    @Download.onPre void onPre(DownloadTask task) {
+    @Download.onPre
+    void onPre(DownloadTask task) {
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText("准备下载中");
         }
     }
 
-    @Download.onTaskStart void taskStart(DownloadTask task) {
+    @Download.onTaskStart
+    void taskStart(DownloadTask task) {
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText("开始下载中");
         }
     }
-    @Download.onTaskResume void taskResume(DownloadTask task) {
+
+    @Download.onTaskResume
+    void taskResume(DownloadTask task) {
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText("恢复下载中");
         }
     }
+
     //在这里处理任务执行中的状态,如进度进度条的刷新
-    @Download.onTaskRunning protected void running(DownloadTask task) {
+    @Download.onTaskRunning
+    protected void running(DownloadTask task) {
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText(String.format(Locale.CHINA, "%d%%", Math.abs(task.getPercent())));
         }
     }
 
-    @Download.onTaskStop void taskStop(DownloadTask task) {
+    @Download.onTaskStop
+    void taskStop(DownloadTask task) {
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText(CommonUtil.CONTINUE_DOWNLOAD);
         }
     }
 
-    @Download.onNoSupportBreakPoint void onNoSupportBreakPoint(DownloadTask task) {
+    @Download.onNoSupportBreakPoint
+    void onNoSupportBreakPoint(DownloadTask task) {
     }
 
-    @Download.onTaskCancel void taskCancel(DownloadTask task) {
+    @Download.onTaskCancel
+    void taskCancel(DownloadTask task) {
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText("已经取消");
         }
     }
 
-    @Download.onTaskFail void taskFail(DownloadTask task) {
+    @Download.onTaskFail
+    void taskFail(DownloadTask task) {
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText(CommonUtil.FAIL_DOWNLOAD);
         }
     }
 
-    @Download.onTaskComplete void taskComplete(DownloadTask task) {
+    @Download.onTaskComplete
+    void taskComplete(DownloadTask task) {
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText(CommonUtil.START_INSTALL);
         }
-        if(findApp != null && TextUtils.equals(task.getKey(), findApp.getDownload_link()))
+        if (findApp != null && TextUtils.equals(task.getKey(), findApp.getDownload_link()))
             findApp.updateState(DownloadTaskService.STATUS_FINISH);
     }
+
     @Subscribe
     public void onEventMainThread(Intent intent) {
-        if(intent != null && intent.getAction() != null && intent.getDataString() != null && intent.getDataString().contains("package:")){
-            String packageName = intent.getDataString().replace("package:","");
+        if (intent != null && intent.getAction() != null && intent.getDataString() != null && intent.getDataString().contains("package:")) {
+            String packageName = intent.getDataString().replace("package:", "");
 
             TextView textView = getTextViewByKey(packageName);
-            if(textView != null) {
-                switch (intent.getAction()){
+            if (textView != null) {
+                switch (intent.getAction()) {
                     case ACTION_PACKAGE_ADDED:
                         textView.setText(CommonUtil.GAME_OPEN);
                         break;
                     case ACTION_PACKAGE_REMOVED:
                         String path = PackageUtil.isExistsFile(packageName);
-                        if(TextUtils.isEmpty(path)) {
+                        if (TextUtils.isEmpty(path)) {
                             textView.setText(CommonUtil.START_DOWNLOAD);
                         } else {
                             textView.setText(CommonUtil.START_INSTALL);
@@ -408,14 +603,14 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
                 }
             }
 
-            if(findApp != null && TextUtils.equals(packageName, findApp.getPackage_names())){
-                switch (intent.getAction()){
+            if (findApp != null && TextUtils.equals(packageName, findApp.getPackage_names())) {
+                switch (intent.getAction()) {
                     case ACTION_PACKAGE_ADDED:
                         findApp.updateState(DownloadTaskService.STATUS_INSTALLED);
                         break;
                     case ACTION_PACKAGE_REMOVED:
                         String path = PackageUtil.isExistsFile(packageName);
-                        if(TextUtils.isEmpty(path)) {
+                        if (TextUtils.isEmpty(path)) {
                             findApp.updateState(DownloadTaskService.STATUS_INIT);
                         } else {
                             findApp.updateState(DownloadTaskService.STATUS_FINISH);
@@ -426,34 +621,68 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
         }
     }
 
+
     @Override
     protected void onResume() {
         super.onResume();
         taskHelper.onResume();
         Aria.download(this).unRegister();
+        try {
+            if (webView != null) {
+                webView.resumeTimers();
+                webView.onResume();
+                webView.getClass().getMethod("onResume").invoke(webView, (Object[]) null);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
     @Override
     protected void onDestroy() {
         super.onDestroy();
+        LogUtil.logI("释放资源");
         EventBus.getDefault().unregister(this);
-        taskHelper.clear();
+        taskHelper.destroy();
+        if (webView != null) {
+            webView.onPause();
+            webView.freeMemory();
+            webView.removeAllViews();
+            webView.destroy();
+            webView = null;
+        }
+        ActFindInformation.this.finish();
     }
 
     @Override
     public void call(Integer integer) {
-        switch (integer){
+        switch (integer) {
             case 1://刷新底部
                 loadBottom(bottomViewGroup);
                 break;
         }
     }
+
     @Subscribe
-    public void onEventMainThread(BigEvent event){
-        switch (event.getEventTypes()){
+    public void onEventMainThread(BigEvent event) {
+        switch (event.getEventTypes()) {
             case ONFRESH_TRYMAKEMANY_PAGE:
                 taskHelper.refreshTask();
                 break;
         }
     }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        if (webView != null) {
+            webView.onPause();
+            webView.pauseTimers();
+            try {
+                webView.getClass().getMethod("onPause").invoke(webView, (Object[]) null);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
 }

+ 13 - 16
app/src/main/java/com/sheep/gamegroup/view/activity/ActGameAgencyRecharge.java

@@ -65,22 +65,19 @@ public class ActGameAgencyRecharge extends BaseActivity {
         TitleBarUtils.getInstance()
                 .setTitleFinish(activity)
                 .setTitle(activity, "游戏充值")
-                .setShowRightTwoBtn(activity,
-                        R.mipmap.question_black_img,
-                        R.mipmap.search_black_img,
-                        new View.OnClickListener() {//问号
-                            @Override
-                            public void onClick(View v) {
-                                GAME_INSTEAD_OF_RECHARGE_HELP.onEvent();
-                                ViewUtil.showMsgDialog(activity, "充值请填写正确的游戏充值账号,角色信息,其他充值问题请联系客服。","充值帮助");
-                            }
-                        },
-                        new View.OnClickListener() {//搜索
-                            @Override
-                            public void onClick(View v) {
-                                Jump2View.getInstance().goGameSearch(activity, null);
-                            }
-                        });
+                .setRightSecondBtn(activity, R.mipmap.search_black_img, new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        Jump2View.getInstance().goGameSearch(activity, null);
+                    }
+                })
+                .setRightImgBotton(activity, R.mipmap.question_black_img, new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        GAME_INSTEAD_OF_RECHARGE_HELP.onEvent();
+                        ViewUtil.showMsgDialog(activity, "充值请填写正确的游戏充值账号,角色信息,其他充值问题请联系客服。","充值帮助");
+                    }
+                });
         setValue();//gridview data
         gridviewV();
     }

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

@@ -2,10 +2,10 @@ package com.sheep.gamegroup.view.activity;
 
 import android.os.Bundle;
 import android.view.View;
-import android.webkit.WebChromeClient;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
+import com.tencent.smtt.sdk.WebChromeClient;
+import com.tencent.smtt.sdk.WebSettings;
+import com.tencent.smtt.sdk.WebView;
+import com.tencent.smtt.sdk.WebViewClient;
 import android.widget.TextView;
 
 import com.kfzs.duanduan.BaseCompatActivity;

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

@@ -2,10 +2,10 @@ package com.sheep.gamegroup.view.activity;
 
 import android.os.Bundle;
 import android.view.View;
-import android.webkit.WebChromeClient;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
+import com.tencent.smtt.sdk.WebChromeClient;
+import com.tencent.smtt.sdk.WebSettings;
+import com.tencent.smtt.sdk.WebView;
+import com.tencent.smtt.sdk.WebViewClient;
 
 import com.kfzs.duanduan.BaseCompatActivity;
 import com.kfzs.duanduan.bean.KFIntentKeys;

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

@@ -2,7 +2,7 @@ package com.sheep.gamegroup.view.activity;
 
 import android.text.method.ScrollingMovementMethod;
 import android.view.View;
-import android.webkit.WebView;
+import com.tencent.smtt.sdk.WebView;
 import android.widget.TextView;
 
 import com.sheep.gamegroup.absBase.BaseActivity;

+ 11 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActMiDong.java

@@ -4,6 +4,7 @@ import android.app.Activity;
 import android.os.Bundle;
 import android.support.design.widget.TabLayout;
 import android.support.v4.view.ViewPager;
+import android.view.View;
 
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.EventTypes;
@@ -13,9 +14,11 @@ import com.mdad.sdk.mdsdk.AdManager;
 import com.mdad.sdk.mdsdk.AppDownloadListener;
 import com.mdad.sdk.mdsdk.RewardListener;
 import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.LogUtil;
+import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
@@ -54,7 +57,14 @@ public class ActMiDong extends BaseActivity {
         activity = this;
         TitleBarUtils.getInstance()
                 .setTitle(activity, "简单任务")
-                .setTitleFinish(activity);
+                .setTitleFinish(activity)
+                .setRightImgBotton(activity, R.mipmap.question_black_img, new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        ViewUtil.showMsgDialog(activity, new DialogConfig().setTitle("温馨提示").setBtnLeftText("我知道了")
+                                .setMsg("该栏目为现金任务,不参与好友提成。"));
+                    }
+                });
     }
 
     @Override

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

@@ -5,7 +5,7 @@ import android.support.annotation.Nullable;
 import android.support.design.widget.AppBarLayout;
 import android.support.v7.widget.Toolbar;
 import android.view.View;
-import android.webkit.WebView;
+import com.tencent.smtt.sdk.WebView;
 import android.widget.ImageView;
 import android.widget.RelativeLayout;
 import android.widget.TextView;

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

@@ -1,7 +1,7 @@
 package com.sheep.gamegroup.view.activity;
 
 import android.view.View;
-import android.webkit.WebView;
+import com.tencent.smtt.sdk.WebView;
 import android.widget.TextView;
 
 import com.sheep.gamegroup.absBase.BaseActivity;

+ 22 - 13
app/src/main/java/com/sheep/gamegroup/view/activity/ActWeb.java

@@ -11,13 +11,13 @@ import android.provider.MediaStore;
 import android.support.annotation.RequiresApi;
 import android.text.TextUtils;
 import android.view.View;
-import android.webkit.DownloadListener;
+import com.tencent.smtt.sdk.DownloadListener;
 import android.webkit.JavascriptInterface;
-import android.webkit.ValueCallback;
-import android.webkit.WebChromeClient;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
+import com.tencent.smtt.sdk.ValueCallback;
+import com.tencent.smtt.sdk.WebChromeClient;
+import com.tencent.smtt.sdk.WebSettings;
+import com.tencent.smtt.sdk.WebView;
+import com.tencent.smtt.sdk.WebViewClient;
 
 import com.kfzs.duanduan.BaseCompatActivity;
 import com.sheep.gamegroup.util.CommonUtil;
@@ -27,21 +27,18 @@ import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
-import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.yalantis.ucrop.util.FileUtils;
-import com.zhy.http.okhttp.OkHttpUtils;
-import com.zhy.http.okhttp.callback.FileCallBack;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 
 import butterknife.BindView;
 import butterknife.ButterKnife;
-import okhttp3.Call;
 
 import static com.kfzs.duanduan.bean.KFIntentKeys.EXTRA_WEBVIEW_NO_TITLE;
 
@@ -86,7 +83,7 @@ public class ActWeb extends BaseCompatActivity {
             e.printStackTrace();
         }
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-            webViewSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
+//            webViewSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
         }
         if (getIntent().hasExtra(EXTRA_WEBVIEW_NO_TITLE)) {//不显示标题
             findViewById(R.id.appbar_act_webview).setVisibility(View.GONE);
@@ -234,10 +231,22 @@ public class ActWeb extends BaseCompatActivity {
             @Override
             public boolean shouldOverrideUrlLoading(WebView view, String url) {
                 try {
-                    view.loadUrl(url);
+                    //微信H5支付核心代码
+                    if (url.startsWith("weixin://wap/pay?")) {
+                        Intent intent = new Intent();
+                        intent.setAction(Intent.ACTION_VIEW);
+                        intent.setData(Uri.parse(url));
+                        startActivity(intent);
+                        return true;
+                    } else {
+                        Map<String, String> extraHeaders = new HashMap<>();
+                        extraHeaders.put("Referer", "http://17xmy.com");
+                        view.loadUrl(url, extraHeaders);
+                    }
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
+
                 return true;
             }
 

+ 14 - 5
app/src/main/java/com/sheep/gamegroup/view/activity/ActXinwanWeb.java

@@ -5,17 +5,19 @@ import android.os.Build;
 import android.os.Bundle;
 import android.view.KeyEvent;
 import android.view.View;
-import android.webkit.WebChromeClient;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
+import com.tencent.smtt.sdk.WebChromeClient;
+import com.tencent.smtt.sdk.WebSettings;
+import com.tencent.smtt.sdk.WebView;
+import com.tencent.smtt.sdk.WebViewClient;
 import android.widget.TextView;
 
 import com.kfzs.duanduan.BaseCompatActivity;
+import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.XianWanEntity;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.DeviceIDUtil;
+import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.WebviewJs;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -65,6 +67,13 @@ public class ActXinwanWeb extends BaseCompatActivity {
                             activity.finish();
                         }
                     }
+                })
+                .setRightImgBotton(activity, R.mipmap.question_black_img, new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        ViewUtil.showMsgDialog(activity, new DialogConfig().setTitle("温馨提示").setBtnLeftText("我知道了")
+                                .setMsg("该栏目为现金任务,不参与好友提成。"));
+                    }
                 });
         tv_next.setVisibility(View.GONE);
         if(xianWanEntity == null){
@@ -74,7 +83,7 @@ public class ActXinwanWeb extends BaseCompatActivity {
         webViewSettings = mWebView.getSettings();
         webViewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-            webViewSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
+//            webViewSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
         }
         if (getIntent().hasExtra(EXTRA_WEBVIEW_NO_TITLE)) {//不显示标题
             findViewById(R.id.appbar_act_webview).setVisibility(View.GONE);

+ 21 - 400
app/src/main/java/com/sheep/gamegroup/view/activity/AskGetMoneyAct.java

@@ -1,435 +1,56 @@
 package com.sheep.gamegroup.view.activity;
 
 import android.app.Activity;
-import android.support.v4.view.ViewPager;
-import android.support.v4.widget.NestedScrollView;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.text.TextUtils;
-import android.util.SparseArray;
-import android.view.Gravity;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.webkit.WebView;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentTransaction;
 
-import com.kfzs.duanduan.fragment.FgtFriendExtractPage;
-import com.kfzs.duanduan.fragment.PagerAdapter;
+import com.kfzs.duanduan.fragment.FgtAskgetmoney;
 import com.sheep.gamegroup.absBase.BaseUMActivity;
-import com.sheep.gamegroup.di.components.DaggerAskGetMoneyComponent;
-import com.sheep.gamegroup.di.modules.AskGetMoneyModule;
-import com.sheep.gamegroup.model.entity.AskAward;
-import com.sheep.gamegroup.model.entity.AskTop;
-import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.DialogConfig;
-import com.sheep.gamegroup.model.entity.FriendAndAwardEntity;
-import com.sheep.gamegroup.model.entity.UserEntity;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.presenter.AskGetMoneyContract;
-import com.sheep.gamegroup.presenter.AskGetMoneyPresenter;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.DataUtil;
-import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.ViewHolder;
-import com.sheep.gamegroup.util.ViewUtil;
-import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.G;
-import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
-import com.sunfusheng.marqueeview.MarqueeView;
-import com.umeng.socialize.UMShareListener;
-import com.umeng.socialize.bean.SHARE_MEDIA;
-
-import java.util.List;
-import java.util.Locale;
-
-import javax.inject.Inject;
-
-import butterknife.BindView;
-import rx.android.schedulers.AndroidSchedulers;
-import rx.functions.Action1;
-import rx.schedulers.Schedulers;
 
 /**
  * Created by Administrator on 2018/3/19.
  */
 
-public class AskGetMoneyAct extends BaseUMActivity implements AskGetMoneyContract.View {
-
+public class AskGetMoneyAct extends BaseUMActivity{
 
-    @Inject
-    AskGetMoneyPresenter mPresenter;
-    @BindView(R.id.tv_size)
-    TextView tvSize;
-    @BindView(R.id.tv_money)
-    TextView tvMoney;
-    @BindView(R.id.friend_extract_vp)
-    ViewPager friend_extract_vp;
-    @BindView(R.id.friend_extract_page_tv)
-    TextView friend_extract_page_tv;
-    @BindView(R.id.friend_extract_last_page_tv)
-    TextView friend_extract_last_page_tv;
-    @BindView(R.id.friend_extract_next_page_tv)
-    TextView friend_extract_next_page_tv;
-    @BindView(R.id.ask_bg)
-    WebView ask_bg;
-    @BindView(R.id.ask_top_1)
-    View ask_top_1;
-    @BindView(R.id.ask_top_2)
-    View ask_top_2;
-    @BindView(R.id.ask_top5_not_you)
-    TextView ask_top5_not_you;
-    @BindView(R.id.ask_top5_list)
-    RecyclerView ask_top5_list;
-    @BindView(R.id.ask_award_info)
-    MarqueeView ask_award_info;
-    @BindView(R.id.ask_scroll_view)
-    NestedScrollView scrollView;
-    @BindView(R.id.empty_view)
-    View empty_view;
 
-    private FriendAndAwardEntity mEntity;
+    Activity activity;
 
     @Override
     protected int getLayoutId() {
-        return R.layout.x_ask_getmoney_act_layout;
+        return R.layout.personalcenter_act_layout;
     }
 
-    private Activity activity;
-
     @Override
     public void initView() {
         activity = this;
-        TitleBarUtils.getInstance()
-                .setTitle(this, "邀请赚钱")
-                .setTitleFinish(this);
-        DaggerAskGetMoneyComponent.builder().askGetMoneyModule(new AskGetMoneyModule(this))
-                .netComponent(SheepApp.get(this).getNetComponent())
-                .build()
-                .inject(this);
-        initFriendExtractList();
-        initAskTop5View();
-        String content = "<!DOCTYPEhtml>\n" +
-                "<html>\n" +
-                "  <head>\n" +
-                "    <title>HTML字符串</title>\n" +
-                "    <metahttp-equivmetahttp-equiv=\"content-type\" content=\"text/html;charset=utf-8\">\n" +
-                "    <meta name=\"viewport\" content=\"width=" + G.WIDTH + ", user-scalable=no\">\n" +
-                "    <style type=\"text/css\">\n" +
-                "      body {\n" +
-                "        margin: 0;\n" +
-                "        padding: 0;\n" +
-                "      }\n" +
-                "      img {\n" +
-                "        padding: 0;\n" +
-                "        margin: 0;\n" +
-                "      }\n" +
-                "    </style>\n" +
-                "  </head>\n" +
-                "  <body>\n" +
-                "    <img src=\"http://cdngame.kuaifazs.com/ask_bg2.png\" width=\"100%\">\n" +
-                "  </body>\n" +
-                "</html>";
-        ask_bg.getSettings().setDefaultTextEncodingName("UTF-8");
-        ask_bg.loadData(content, "text/html", "UTF-8");
-//                16,18,19
-        LinearLayout.LayoutParams layoutParams1 = (LinearLayout.LayoutParams) ask_top_1.getLayoutParams();
-        layoutParams1.height = G.WIDTH * 690 / 625;
-        ask_top_1.setLayoutParams(layoutParams1);
-        LinearLayout.LayoutParams layoutParams2 = (LinearLayout.LayoutParams) ask_top_2.getLayoutParams();
-        layoutParams2.height = G.WIDTH * 112 / 625;
-        ask_top_2.setLayoutParams(layoutParams2);
-        ask_top5_not_you.setVisibility(View.INVISIBLE);
-    }
-
-    private List<AskTop> list = ListUtil.emptyList();
-    private AdbCommonRecycler<AskTop> adapter;
-
-    private void initAskTop5View() {
-        list.add(null);
-        ask_top5_list.setLayoutManager(new LinearLayoutManager(activity));
-        //ask_top5_list 解决滑动不流畅问题
-        ask_top5_list.setHasFixedSize(true);
-        ask_top5_list.setNestedScrollingEnabled(false);
-        adapter = new AdbCommonRecycler<AskTop>(activity, list) {
-
-            @Override
-            public int getItemViewType(int position) {
-                return position;
-            }
-
-            @Override
-            public int getViewIdByType(int type) {
-                switch (type) {
-                    case 0:
-                        return R.layout.x_ask_top5_title;
-                    default:
-                        return R.layout.x_ask_top5_item;
-                }
-            }
-
-            @Override
-            public void convert(ViewHolder holder, final AskTop item) {
-                View itemView = holder.itemView;
-                int position = holder.getAdapterPosition();
-                if (position == 0) {
-                    return;
-                }
-                TextView x_ask_top5_item_user = itemView.findViewById(R.id.x_ask_top5_item_user);
-                TextView x_ask_top5_item_money = itemView.findViewById(R.id.x_ask_top5_item_money);
-                TextView x_ask_top5_item_award = itemView.findViewById(R.id.x_ask_top5_item_award);
-                ImageView ask_top5_item_iv = itemView.findViewById(R.id.ask_top5_item_iv);
-
-                if (item == null) {//空数据占位置
-                    itemView.setVisibility(View.INVISIBLE);
-                    return;
-                }
-                ViewUtil.setText(x_ask_top5_item_user, String.format(Locale.CHINA, "昵称\n%s", item.getNickname()));
-                ViewUtil.setText(x_ask_top5_item_money, String.format(Locale.CHINA, "%d", item.getSum_friend()));
-                ViewUtil.setText(x_ask_top5_item_award, item.getPrize());
-                switch (position) {
-                    case 1:
-                        ask_top5_item_iv.setImageResource(R.mipmap.ask_top_1);
-                        break;
-                    case 2:
-                        ask_top5_item_iv.setImageResource(R.mipmap.ask_top_2);
-                        break;
-                    case 3:
-                        ask_top5_item_iv.setImageResource(R.mipmap.ask_top_3);
-                        break;
-                }
-
-
-            }
-        };
-        ask_top5_list.setAdapter(adapter);
-    }
-
-    @Override
-    public void initListener() {
-        scrollView.setOnTouchListener(new View.OnTouchListener() {
-            @Override
-            public boolean onTouch(View v, MotionEvent event) {
-                switch (event.getAction()) {
-                    case MotionEvent.ACTION_DOWN:
-                        if (ask_award_info != null) {
-                            //开始滚动
-                            ask_award_info.stopFlipping();
-                        }
-                        break;
-                    case MotionEvent.ACTION_UP:
-                    default:
-                        if (ask_award_info != null) {
-                            //开始滚动
-                            ask_award_info.startFlipping();
-                        }
-                        break;
-                }
-                return false;
-            }
-        });
-    }
-
-    private UserEntity userEntity;
-
-    @Override
-    public void initData() {
-        showProgress();
-        mPresenter.getTask(null);
-        CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
-            @Override
-            public void call(UserEntity result) {
-                if (result != null)
-                    userEntity = result;
-            }
-        });
-        initAskTop5();
-    }
-
-    private void initAskTop5() {
-        SheepApp.getInstance().getNetComponent().getApiService().getInvitationTop(5)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        List<AskTop> newList = baseMessage.getDataList(AskTop.class);
-                        if (ListUtil.isEmpty(newList)) {
-                            return;
-                        }
-                        list.addAll(newList);
-                        notifyDataSetChanged();
-                        String userId = DataUtil.getInstance().getUserId();
-                        boolean hasMe = false;
-                        for (AskTop item : newList) {
-                            if (TextUtils.equals(userId, item.getUser_id())) {
-                                hasMe = true;
-                                break;
-                            }
-                        }
-                        ask_top5_not_you.setVisibility(hasMe ? View.INVISIBLE : View.VISIBLE);
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        notifyDataSetChanged();
-                        ask_top5_not_you.setVisibility(View.VISIBLE);
-                    }
-                });
-        SheepApp.getInstance().getNetComponent().getApiService().getInvitationTopRecord()
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        List<AskAward> newList = baseMessage.getDataList(AskAward.class);
-                        for (AskAward item : newList) {
-                            TextView moreView = (TextView) LayoutInflater.from(activity).inflate(R.layout.x_ask_award_item, null);
-                            moreView.setText(String.format(Locale.CHINA, "%s领取了%s", item.getNickname(), item.getPrize()));
-                            ask_award_info.addView(moreView);
-                        }
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-
-                    }
-                });
-    }
 
-    private void notifyDataSetChanged() {
-        CommonUtil.getInstance().updateEmptyView(empty_view, list.size() == 1, true);
-        while (list.size() < 5) {
-            list.add(null);
+        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
+        Bundle bundle = new Bundle();
+        Fragment fragment = getSupportFragmentManager().findFragmentByTag("tag");
+        if(fragment == null){
+            fragment = new FgtAskgetmoney();
+            fragment.setArguments(bundle);
+            transaction.add(R.id.frame_container, fragment, "tag");
+            transaction.commitAllowingStateLoss();
+        }else {
+            fragment.setArguments(bundle);
+            transaction.replace(R.id.frame_container, fragment);
+            transaction.commitAllowingStateLoss();
         }
-        adapter.notifyDataSetChanged();
-    }
-
-
-    @Override
-    public void NetSuccess(int code, String msg, String s) {
 
-    }
-
-    @Override
-    public void NetError(int code, String errorMsg) {
-        hideProgress();
-        G.showToast(errorMsg);
 
     }
 
     @Override
-    public void showTask(FriendAndAwardEntity entity) {
-        hideProgress();
-        mEntity = entity;
-        this.runOnUiThread(new Runnable() {
-            @Override
-            public void run() {
-                tvSize.setText(mEntity.getFriend_count() + "");
-                tvMoney.setText(mEntity.getAward());
-            }
-        });
-
-    }
-
-
-    private SparseArray<FgtFriendExtractPage> mTestFragments;
-    private int totalPage = 0;
-    public void setFriendExtractCount(int count, int page, int size) {
-        totalPage = ListUtil.getTotalPage(count, 5);
-        friend_extract_page_tv.setText(String.format(Locale.CHINA, "%d/%d", curPage, totalPage));
-        checkAddPage(page, size);
-    }
-
-    private void checkAddPage(int page, int size) {
-        if (curPage + 2 > page && size == FgtFriendExtractPage.per_page) {//已经到最后一页面,且数据是满的,可以添加一页面
-            int nextPage = page + 1;
-            if (mTestFragments.get(nextPage) == null) {
-//                if(BuildConfig.DEBUG) G.showToast("添加新的一页:" + nextPage);
-                mTestFragments.put(nextPage, FgtFriendExtractPage.newInstance(nextPage));
-                mPagerAdapter.notifyDataSetChanged();
-            } else {
-//                if(BuildConfig.DEBUG) G.showToast("不用添加新的一页:" + nextPage);
-            }
-        }
-        if (size > FgtFriendExtractPage.per_page) {
-            if (BuildConfig.DEBUG) G.showToast("页面" + page + "的数据为:" + size);
-        }
-    }
-
-    private int curPage = 1;
-    private PagerAdapter mPagerAdapter;
-
-    private void initFriendExtractList() {
-        mTestFragments = new SparseArray<>();
-        mTestFragments.put(1, FgtFriendExtractPage.newInstance(1));
-        mPagerAdapter = new PagerAdapter(getSupportFragmentManager(), mTestFragments);
-        friend_extract_vp.setAdapter(mPagerAdapter);
-        friend_extract_vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
-            @Override
-            public void onPageScrolled(int i, float v, int i1) {
-
-            }
-
-            @Override
-            public void onPageSelected(int i) {
-                curPage = i + 1;
-                friend_extract_page_tv.setText(String.format(Locale.CHINA, "%d/%d", curPage, totalPage));
-                checkAddPage(curPage, mTestFragments.get(curPage).getList().size());
-            }
-
-            @Override
-            public void onPageScrollStateChanged(int i) {
+    public void initListener() {
 
-            }
-        });
-        friend_extract_last_page_tv.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                friend_extract_vp.setCurrentItem(curPage - 2);
-            }
-        });
-        friend_extract_next_page_tv.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                friend_extract_vp.setCurrentItem(curPage);
-            }
-        });
     }
 
     @Override
-    protected void onStop() {
-        super.onStop();
-
-        if (ask_award_info != null) {
-            //停止滚动
-            ask_award_info.stopFlipping();
-        }
-    }
-
-    //显示分享对话框
-    public void showShareView(View view) {
-        String url = userEntity.getShareLink();
-        String description = mEntity.getShare_desc();
-        ViewUtil.showShareDialog(activity, url, description);
-    }
+    public void initData() {
 
-    //显示邀请好友排行榜top5的规则的对话框
-    public void showAstTop5Tip(View view) {
-        ViewUtil.showMsgDialog(activity, new DialogConfig().setTitle("活动说明")
-                .setMsg(".每天实时更新排行数据。\n" +
-                        ".根据当月已赚赏金(定向货币除外)和邀请人数进行排行\n" +
-                        ".每个月前5名可获取排行奖励。\n" +
-                        ".每个月月底最后一天24:00可公布结果,获奖的用户需通过“小绵羊领头羊”公众号发送获奖截图证明及收货信息,核对信息真实后,会第一时间发放!\n" +
-                        ".本活动最终解释权归成都橙风有量科技有限公司所有!")
-                .setMsgGravity(Gravity.START)
-                .setTheme(DialogConfig.THEME_PURPLE)
-                .setBtnLeftText("我知道了"));
     }
 }

+ 9 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/GamemakeMoneyAct.java

@@ -14,10 +14,12 @@ import android.widget.LinearLayout;
 import com.kfzs.duanduan.ActDownloadMgr;
 import com.kfzs.duanduan.event.BigEvent;
 import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.GridViewEntity;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.MyGridview;
 import com.sheep.gamegroup.util.UMConfigUtils;
+import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.view.adapter.AdpTryMakemoney;
 import com.sheep.gamegroup.view.adapter.AdpTrymakemoneyTabGridview;
 import com.sheep.gamegroup.view.fragment.FgtMyGame;
@@ -76,6 +78,13 @@ public class GamemakeMoneyAct extends BaseActivity {
         TitleBarUtils
                 .getInstance()
                 .setTitle(activity, title).setTitleFinish(activity)
+                .setRightSecondBtn(activity, R.mipmap.question_black_img, new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        ViewUtil.showMsgDialog(activity, new DialogConfig().setTitle("温馨提示").setBtnLeftText("我知道了")
+                                .setMsg("该栏目为日常福利,不可提现,不参与好友提成。"));
+                    }
+                })
                 .setRightImgBotton(activity, R.drawable.index_download, new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {

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

@@ -13,6 +13,7 @@ import com.sheep.gamegroup.presenter.LoginContract;
 import com.sheep.gamegroup.presenter.LoginPresenter;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -94,6 +95,7 @@ public class LoginAct extends BaseUMActivity implements LoginContract.View {
     private void goTelLogin() {
         LOGIN_PHONE.onEvent();
         String openId = SpUtils.getToken(getApplicationContext());
+        LogUtil.logI("手机号码登录--token----"+openId);
         if (!TextUtils.isEmpty(openId)) {
             Jump2View.getInstance().checkPhoneOrGoHomePage(this);
             finish();

+ 84 - 5
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.view.View;
 import android.widget.ImageView;
+import android.widget.PopupWindow;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSONObject;
-import com.bumptech.glide.Glide;
 import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 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.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
@@ -54,6 +55,10 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
 
     @BindView(R.id.personal_info_avatar)
     ImageView personal_info_avatar;
+    @BindView(R.id.tv_sex)
+    TextView tvSex;
+    @BindView(R.id.tv_birthday)
+    TextView tvBirthday;
 
 
     @Override
@@ -94,16 +99,88 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
         if (userEntity != null) {
             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) {
         if (userEntity == null) {
             G.showToast(R.string.loading_data);
             return;
         }
         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,TextUtils.isEmpty(userEntity.getBirthday())?"1990-01-01":userEntity.getBirthday());
+                break;*/
+            case R.id.tv_birthday:
+                ViewUtil.showDateDialog(PersonalInfoAct.this, tvBirthday,TextUtils.isEmpty(userEntity.getBirthday())?"1990-01-01":userEntity.getBirthday());
+                break;
             case R.id.personal_info_avatar_container://头像
                 showChooseDialog();
                 USER_INFO_AVATAR.onEvent();
@@ -180,11 +257,11 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
     protected void onResume() {
         super.onResume();
         UserEntity result = DataUtil.getInstance().getUserEntity();
-        if(result == null) {
+        if (result == null) {
             CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
                 @Override
                 public void call(UserEntity item) {
-                    if(item != null) {
+                    if (item != null) {
                         userEntity = item;
                         loadUserInfo();
                     }
@@ -197,10 +274,12 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
     }
 
     private void loadUserInfo() {
+        tvSex.setText((userEntity.getGender()==0)?"点击设置":(userEntity.getGender()==1?"男":"女"));
+        tvBirthday.setText((userEntity.getBirthday().substring(0,1)).equals("0")?"点击设置":userEntity.getBirthday().substring(0,10));
         personal_info_name.setText(userEntity.getNickname());
         personal_info_code.setText(userEntity.getInvitation_code());
 
-        GlideImageLoader.downloadAndSetImage(personal_info_qr, AppUtil.getQRLink(userEntity.getShareLink(DialogShare.FACE_TO_FACE), 90), 90);
+        GlideImageLoader.saveAndSetRqImage(personal_info_qr, AppUtil.getQRLink(userEntity.getShareLink(DialogShare.FACE_TO_FACE), 90), 90);
         GlideImageLoader.setAvatar(personal_info_avatar, userEntity.getAvatar());
         //账号与安全
 

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

@@ -27,6 +27,7 @@ import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.SelfCountDownTimer;
 import com.sheep.gamegroup.util.TestUtil;
@@ -89,16 +90,16 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
                 .phoneModule(new PhoneModule(this))
                 .build()
                 .inject(this);
-        if(TestUtil.isTest()){
+        if (TestUtil.isTest()) {
             phoneEtAccount.setInputType(InputType.TYPE_CLASS_TEXT);
             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
     public void initListener() {
-        selfCountDownTimer = new SelfCountDownTimer(60 * 1000, 1000,SelfCountDownTimer.FULL_SECOND) {
+        selfCountDownTimer = new SelfCountDownTimer(60 * 1000, 1000, SelfCountDownTimer.FULL_SECOND) {
             @Override
             public void onTimerRest() {
                 canGetCaptchaPhone = true;
@@ -123,14 +124,13 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
     public void initData() {
         if (showNotice == 0) {
             phoneTipTv.setVisibility(View.GONE);
-        }else if(showNotice == 1){
+        } else if (showNotice == 1) {
             phoneTipTv.setVisibility(View.GONE);
             phone_iv.setVisibility(View.GONE);
-        }else if(showNotice == 2){
+        } else if (showNotice == 2) {
             phoneTipTv.setVisibility(View.GONE);
             phone_iv.setVisibility(View.GONE);
-        }
-        else {
+        } else {
             phoneTipTv.setVisibility(View.VISIBLE);
 
         }
@@ -151,11 +151,11 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
             case R.id.phone_sure_tv:
                 etPhone = phoneEtAccount.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";
                     goMain(etPhone);
-                    if(!TextUtils.isEmpty(etPhone))
+                    if (!TextUtils.isEmpty(etPhone))
                         TestUtil.addUser(etPhone);
                     return;
                 }
@@ -175,6 +175,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
         }
         return true;
     }
+
     private boolean checkCodeInput() {
         if (TextUtils.isEmpty(etCode)) {
             G.showToast(getString(R.string.input_your_captcha));
@@ -190,27 +191,30 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
     /**
      * 获取验证码
      */
-    private void getCaptcha(){
+    private void getCaptcha() {
 
         if (!canGetCaptchaPhone) {
             return;
         }
-        if(!checkPhoneInput()){
+        if (!checkPhoneInput()) {
             return;
         }
         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;
         }
-        if(!checkCodeInput()){
+        if (!checkCodeInput()) {
             return;
         }
 
@@ -226,6 +230,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
 
     /**
      * 验证码获取失败
+     *
      * @param o
      */
     @Override
@@ -250,7 +255,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
         } catch (Exception e) {
             e.printStackTrace();
         }
-        if(loginEty != null) {
+        if (loginEty != null) {
             SpUtils.saveToken(activity, loginEty.getToken());
             DataUtil.getInstance().setUserEntity(loginEty.getUser());
         }
@@ -303,9 +308,9 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
      */
     @Override
     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);
-            if(inputMethodManager.isActive()){
+            if (inputMethodManager.isActive()) {
                 inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
                 return true;
             }
@@ -315,6 +320,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
 
 
     private void goMain(String openId) {
+        LogUtil.logI("goMain--token----"+openId);
         SpUtils.saveToken(getApplicationContext(), openId);
         Jump2View.getInstance().goHomePageView(this, null);
         ActivityManager.getInstance().endActivity(LoginAct.class);
@@ -324,7 +330,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
     @Override
     protected void onDestroy() {
         super.onDestroy();
-        if(selfCountDownTimer != null){
+        if (selfCountDownTimer != null) {
             selfCountDownTimer.cancel();
         }
     }

+ 7 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/SignCardAct.java

@@ -82,6 +82,13 @@ public class SignCardAct extends BaseActivity implements SignCardContract.View {
                 .getInstance()
                 .setTitle(activity, "每日打卡")
                 .setTitleFinish(activity)
+                .setRightSecondBtn(activity, R.mipmap.question_black_img, new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        ViewUtil.showMsgDialog(activity, new DialogConfig().setTitle("温馨提示").setBtnLeftText("我知道了")
+                                .setMsg("该栏目为日常活跃活动,收益可提现。"));
+                    }
+                })
                 .setRightBotton(activity, "战绩", 0, new View.OnClickListener() {
                     @Override
                     public void onClick(View v) {

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

@@ -120,6 +120,8 @@ public class SplashAct extends BaseActivity implements EasyPermissions.Permissio
                 case 0:
                     if(!isRequestCodePermissions && !isLoaddingData && timerIsFinish())
                         gotoNext();
+                    else
+                        sendHandlerMessages(100);
                     break;
                 case 1:
                     if(SysAppUtil.isNewSmallSheep(false)){//新版本只显示引导页面,不展示弹窗和开屏广告

+ 266 - 99
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java

@@ -8,10 +8,11 @@ import android.support.annotation.RequiresApi;
 import android.text.Html;
 import android.text.TextUtils;
 import android.view.View;
-import android.webkit.WebChromeClient;
-import android.webkit.WebResourceRequest;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
+
+import com.tencent.smtt.export.external.interfaces.WebResourceRequest;
+import com.tencent.smtt.sdk.WebChromeClient;
+import com.tencent.smtt.sdk.WebView;
+import com.tencent.smtt.sdk.WebViewClient;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.RelativeLayout;
@@ -56,6 +57,7 @@ import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.LocationUtils;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.MyListview;
 import com.sheep.gamegroup.util.SelfCountDownTimer;
@@ -167,6 +169,13 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     TextView end_of_time_tv;
     @BindView(R.id.num_tv)
     TextView num_tv;
+    @BindView(R.id.num_tv1)
+    TextView num_tv1;
+
+    @BindView(R.id.task_detail_reward)
+    TextView task_detail_reward;
+    @BindView(R.id.task_detail_cancel)
+    TextView task_detail_cancel;
 
     private Activity activity;
     @Inject
@@ -199,6 +208,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     }
 
     private boolean isFromTaskList = false;//是否是从任务记录界面过来
+
     @Override
     public void initView() {
         activity = this;
@@ -219,7 +229,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         detail_task_listview.setAdapter(adpTaskDetailChildListview);
         adpTaskDetailChildListview.notifyDataSetChanged();
         bottom_btn_layout.setVisibility(View.GONE);
-        if(DataUtil.IS_USE_SCREEN_SHOT) {
+        if (DataUtil.IS_USE_SCREEN_SHOT) {
             //如果要使用小绵羊截图方案,则在进入任务详情界面启动FloatShotScreenService,并获取截屏权限,并把intent data传递给FloatShotScreenService
             Jump2View.getInstance().startShotScreenFloat(SheepApp.getInstance(), null);
             DataUtil.getInstance().requestCapturePermission(activity, new Action1<Integer>() {
@@ -247,6 +257,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         detail_shrae_friend_layout.setVisibility(View.VISIBLE);
 
         taskEty = taskReleaseEty.getTask();
+        LogUtil.logI("taskType----->" + taskEty.getInspect_type());
         nameTv.setText(taskReleaseEty.getName() + "");
         priceTv.setText("+" + taskReleaseEty.getBonus() + "元");
         if (!taskReleaseEty.getDeadline().equals("永久")) {
@@ -256,6 +267,8 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         }
         num_tv.setText("剩" + taskReleaseEty.getLast_num() + "份");
 
+        TaskHelper.setTaskTagText(num_tv, taskReleaseEty);
+        TaskHelper.setNumText(num_tv1, taskReleaseEty);
 
         GlideImageLoader.setGameImage(iconIv, taskEty.getIcon());
 
@@ -282,9 +295,19 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
             detailTaskTv.setText("领取福利号");
             detailTaskTv.setBackground(activity.getResources().getDrawable(R.drawable.selector_button_full_main));
         }
+        //设置是否显示取消任务按钮
+        if(gettaskAcceptedEty != null && (gettaskAcceptedEty.getStatus() == 1 || gettaskAcceptedEty.getStatus() == 2) &&
+                taskEty.canCancelTask()){
+            task_detail_reward.setVisibility(View.GONE);
+            task_detail_cancel.setVisibility(View.VISIBLE);
+        } else {
+            task_detail_reward.setVisibility(View.VISIBLE);
+            task_detail_cancel.setVisibility(View.GONE);
+        }
         updateBottom();
     }
-    private void updateBottom(){
+
+    private void updateBottom() {
         bottom_btn_layout.setVisibility(View.VISIBLE);
         btnTaskItem.setVisibility(View.VISIBLE);
         btnUpImag.setVisibility(View.VISIBLE);
@@ -298,10 +321,9 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                 case 1001:
                     break;
                 default:
-                    setBottomState();
                     break;
             }
-        } else if(taskEty.isGameReservationCantDownload()){//游戏任务中还不可以下载的预约任务
+        } else if (taskEty.isGameReservationCantDownload()) {//游戏任务中还不可以下载的预约任务
             btnUpImag.setText("预约下载");
             btnTaskItem.setVisibility(View.GONE);
             btnUpImag.setVisibility(View.VISIBLE);
@@ -311,18 +333,88 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
             btnUpImag.setVisibility(View.GONE);
         }
         //2.6修改
-        if(btn_show)
+        if (btn_show)
             bottom_btn_layout.setVisibility(View.GONE);
 
         //任务已经下线
-        if(taskReleaseEty.getStatus() == 3 || taskReleaseEty.getStatus() == 4){
+        if (taskReleaseEty.getStatus() == 3 || taskReleaseEty.getStatus() == 4) {
             bottom_btn_layout.setVisibility(View.GONE);
         }
 
+        switch (taskEty.getTask_type()) {
+            case 1000://连续任务
+                if (taskEty.isAppAutoCommitTask()) {
+                    setBottomState2();
+                } else {//非应用自动审核的连续任务
+                    setSuccessionTaskBottomState();
+                }
+                break;
+            default:
+                setBottomState2();
+                break;
+        }
+        if (gettaskAcceptedEty != null){//只要有任务记录就获取下载状态
+            switch (taskEty.getTask_type()) {// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思 1000连续任务, 1002 1003游戏任务 1004 小米游戏任务
+                case 4://h5业务
+                case 2:
+                case 1001:
+                case 1000://连续任务
+                    break;
+                default://只要有任务记录就获取下载状态
+                    setBottomState();
+                    break;
+            }
+        }
+    }
+
+    /**
+     * 设置非自动审核的连续任务底部按钮的状态
+     */
+    private void setSuccessionTaskBottomState() {
+        int failChildPosition = taskEty.getFailChildPosition();//获取第一个审核失败子任务的位置
+        boolean hasChildFail = failChildPosition > -1;//有子任务审核失败
+        boolean hasChildRunning = taskEty.hasChildRunning();//有子任务正在进行
+        boolean hasChildCanAccepted = taskEty.hasChildCanAccepted();//有子任务处于可领取状态
+
+        if (!hasChildFail && !hasChildRunning && hasChildCanAccepted) {//没有审核失败的子任务和正在进行的子任务且有子任务处于可领取状态
+            bottom_btn_layout.setVisibility(View.VISIBLE);
+            btnTaskItem.setVisibility(View.VISIBLE);
+            btnUpImag.setVisibility(View.GONE);
+            btnTaskItem.setEnabled(true);
+            btnTaskItem.setText("领取任务");
+        } else if (hasChildRunning) {//有子任务正在进行
+            bottom_btn_layout.setVisibility(View.VISIBLE);
+            btnTaskItem.setVisibility(View.VISIBLE);
+            btnUpImag.setVisibility(View.VISIBLE);
+            btnTaskItem.setEnabled(true);
+            btnTaskItem.setText(CommonUtil.START_PLAY);
+            btnUpImag.setEnabled(true);
+            btnUpImag.setText("上传截图");
+
+            setBottomState();
+        } else if (hasChildFail) {
+            bottom_btn_layout.setVisibility(View.VISIBLE);
+            btnTaskItem.setVisibility(View.VISIBLE);
+            btnUpImag.setVisibility(View.VISIBLE);
+            btnTaskItem.setEnabled(true);
+            btnTaskItem.setText(CommonUtil.START_PLAY);
+
+            setBottomState();
+        } else {
+            setBottomState2();
+        }
+        if (hasChildFail) {
+            btnUpImag.setText(String.format(Locale.CHINA, "重新上传截图(第%d天)", failChildPosition + 1));
+        }
+    }
 
-        if(gettaskAcceptedEty != null){// && taskEty.getTask_type() == 1000) {//连续任务
-            if(!TextUtils.isEmpty(gettaskAcceptedEty.getScreenshots())) {
-//                detailTaskTv.setVisibility(View.VISIBLE);//不显示截图
+    /**
+     * 根据TaskAcceptedEty中的status来设置底部两个按钮的状态
+     */
+    private void setBottomState2() {
+        if (gettaskAcceptedEty != null) {// && taskEty.getTask_type() == 1000) {//连续任务
+            if (!TextUtils.isEmpty(gettaskAcceptedEty.getScreenshots())) {
+                //                detailTaskTv.setVisibility(View.VISIBLE);//不显示截图
             }
             switch (gettaskAcceptedEty.getStatus()) {
                 case 1://"已接受任务";
@@ -333,18 +425,18 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                     //审核失败
                     btnUpImag.setText("重新提交");
                     btnUpImag.setVisibility(View.VISIBLE);
-                    btnTaskItem.setVisibility(View.GONE);
+                    btnTaskItem.setVisibility(View.VISIBLE);
                     break;
                 //不可操作
                 case 7:// "提交审核";
                     bottom_btn_layout.setVisibility(View.GONE);
                     break;
                 case 3://完成任务
-                    if(!taskEty.isGameTask())
+                    if (!taskEty.isGameTask())
                         bottom_btn_layout.setVisibility(View.GONE);
                     break;
                 case 8://任务已经下线
-                    if(TextUtils.isEmpty(gettaskAcceptedEty.getScreenshots()) || gettaskAcceptedEty.getLower_num() > 0){//没有提交过截图或者已经提交过一次 下线失败后提交
+                    if (TextUtils.isEmpty(gettaskAcceptedEty.getScreenshots()) || gettaskAcceptedEty.getLower_num() > 0) {//没有提交过截图或者已经提交过一次 下线失败后提交
                         break;
                     } else {//提交过一次,但是审核失败或者没有审核就下线了
                         String sr = "重新提交(<font color='#e2271d'><big>最后一次机会</big></font>)";
@@ -354,7 +446,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                         break;
                     }
             }
-            if(taskEty.isGameReservationCantDownload()) {//游戏任务中还不可以下载的预约任务
+            if (taskEty.isGameReservationCantDownload()) {//游戏任务中还不可以下载的预约任务
                 btnUpImag.setText("即将开放");
                 btnUpImag.setEnabled(false);
                 btnUpImag.setVisibility(View.VISIBLE);
@@ -362,16 +454,18 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
             }
         }
     }
-    //设置底部按钮状态
+
+    /**
+     * 正在进行的任务的状态设置
+     */
     private void setBottomState() {
-        taskEty.setRunTask(1);
-        setBtnStr(taskEty, mDownloadTaskService, new Action1<Object>(){
+        setBtnStr(taskEty, mDownloadTaskService, new Action1<Object>() {
             @Override
             public void call(Object o) {
-                if(o instanceof Integer){
+                if (o instanceof Integer) {
                     type = (int) o;
-                    if(taskEty.isGameTask()) {//游戏任务
-                        switch (type){
+                    if (taskEty.isGameTask()) {//游戏任务
+                        switch (type) {
                             case DownloadTaskService.STATUS_INIT:
                                 btnUpImag.setVisibility(View.GONE);
                                 btnTaskItem.setText(CommonUtil.GAME_DOWNLOAD);
@@ -381,7 +475,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                                 btnTaskItem.setText(CommonUtil.GAME_INSTALL);
                                 break;
                             case DownloadTaskService.STATUS_INSTALLED:
-                                if (gettaskAcceptedEty.getStatus() ==3) {
+                                if (gettaskAcceptedEty.getStatus() == 3) {
                                     btnUpImag.setText(CommonUtil.GAME_RECHAGE);
                                     btnUpImag.setVisibility(View.VISIBLE);
                                     btnTaskItem.setText("启动游戏");
@@ -398,10 +492,6 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                                 btnUpImag.setVisibility(View.GONE);
                                 break;
                             case 2:
-                                if (taskEty.hasChildInReview()) {//只要有一个子任务在审核中,就不能进行其它操作
-                                    btnTaskItem.setEnabled(false);
-                                    btnTaskItem.setText("审核中");
-                                }
                                 if (type == DownloadTaskService.STATUS_INIT)
                                     btnUpImag.setVisibility(View.GONE);
                                 break;
@@ -412,9 +502,9 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                                 break;
                         }
                     }
-                } else if( o instanceof String){
+                } else if (o instanceof String) {
                     btnTaskItem.setText((String) o);
-                } else if( o instanceof Boolean){
+                } else if (o instanceof Boolean) {
                     btnTaskItem.setEnabled((Boolean) o);
                 }
             }
@@ -422,7 +512,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     }
 
     private void loadOld() {
-        if(taskEty.isOldTask()){
+        if (taskEty.isOldTask()) {
             detail_item_layout_2.setVisibility(View.VISIBLE);
             detail_item_layout_3.setVisibility(View.VISIBLE);
             detail_task_listview.setVisibility(View.VISIBLE);
@@ -487,7 +577,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                         buttonStr = CommonUtil.CONTINUE_DOWNLOAD;
                         break;
                     case DownloadTaskService.STATUS_FINISH:
-                        if(isExistApk){
+                        if (isExistApk) {
                             action1.call(DownloadTaskService.STATUS_FINISH);
                             buttonStr = CommonUtil.START_INSTALL;
                         } else {
@@ -518,12 +608,12 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
      */
     private DownloadTaskService mDownloadTaskService;
 
-    @OnClick({R.id.detail_task_tv, R.id.web_text, R.id.ll_infos, R.id.btn_task_item, R.id.btn_up_imag, R.id.detail_share_friend_tv})
+    @OnClick({R.id.detail_task_tv, R.id.web_text, R.id.ll_infos, R.id.btn_task_item, R.id.btn_up_imag, R.id.detail_share_friend_tv, R.id.task_detail_cancel})
     public void onViewClicked(View view) {
         try {
             switch (view.getId()) {
                 case R.id.detail_task_tv://查看任务截图
-                    if(taskEty.isGameTask() &&taskEty.isCan_receive_account()){
+                    if (taskEty.isGameTask() && taskEty.isCan_receive_account()) {
 
                         GAME_INSTEAD_OF_RECHARGE_GET.onEvent();
                         CommonUtil.getInstance()
@@ -607,40 +697,49 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                     }
                     break;
                 case R.id.btn_up_imag:
-                    if(gettaskAcceptedEty != null && gettaskAcceptedEty.getStatus() ==3 &&taskEty.isGameTask()){
-                        if(taskEty.getThird_task_id() != null){
+                    if (gettaskAcceptedEty != null && gettaskAcceptedEty.getStatus() == 3 && taskEty.isGameTask()) {
+                        if (taskEty.getThird_task_id() != null) {
                             ViewUtil.showGamePayAccount(activity, taskEty.getThird_task_id(), taskReleaseEty.getName());
                             return;
                         }
-                    }else if(taskEty.isGameTask()){
-                        if(taskEty.isGameReservationCantDownload()){
+                    } else if (taskEty.isGameTask()) {
+                        if (taskEty.isGameReservationCantDownload()) {
                             CommonUtil.getInstance().reservationGameTask(activity, taskReleaseEty, new Action1<Integer>() {
                                 @Override
                                 public void call(Integer integer) {
+                                    isFresh = true;
                                     freshData();
                                 }
                             });
                         } else {
                             accepteReceiveAward();
                         }
-                    }else if(taskEty.getInspect_type() == 3) {//应用自动审核任务
+                    } else if (taskEty.getInspect_type() == 3) {//应用自动审核任务
                         try {
                             checkAndCommitTask();
                         } catch (Exception e) {
                             e.printStackTrace();
                         }
                     } else {//截图任务
-                        if(DataUtil.IS_USE_SCREEN_SHOT) {//小绵羊截图方案
-                            File dir = DataUtil.getInstance().getScreenShotsDir(taskEty.getPackage_names());
-                            showChooseDialog(false, true, DEFAULT_MAX_COUNT, dir);
-                        } else {//用户手动截图方案
-                            showChooseDialog(false, true, DEFAULT_MAX_COUNT);
-                        }
-                        UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_UPLOAD_PICTURE);
+                        commitScreenShot();
                     }
                     break;
                 case R.id.detail_share_friend_tv:
-                    Jump2View.getInstance().tryShare(activity,"task_desc_url", "task_id", releaseTaskId);
+                    Jump2View.getInstance().tryShare(activity, "task_desc_url", "task_id", releaseTaskId);
+                    break;
+                case R.id.task_detail_cancel://尝试取消任务
+                    if(gettaskAcceptedEty != null && gettaskAcceptedEty.getId() > 0)
+                        取消任务(gettaskAcceptedEty.getId(), new Action1<Integer>() {
+                            @Override
+                            public void call(Integer integer) {
+                                hideProgress();
+                                gettaskAcceptedEty = null;
+                                taskReleaseEty = null;
+                                CommonUtil.getInstance().setTAskEnty(null);
+                                DataUtil.getInstance().setTaskListChanged();
+                                presenter.taskDesc(releaseTaskId);
+                            }
+                        });
                     break;
             }
         } catch (Exception e) {
@@ -650,19 +749,46 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     }
 
     /**
+     * 发起选择图片来上传截图
+     */
+    private void commitScreenShot() {
+        switch (taskEty.getTask_type()) {
+            case 1000://连续任务
+                commitScreenShotTaskId = taskEty.getCanCommitChildRelease_task_id();
+                break;
+            default:
+                commitScreenShotTaskId = taskReleaseEty.getAccepted_task_id() == 0 && gettaskAcceptedEty != null ? gettaskAcceptedEty.getId() : taskReleaseEty.getAccepted_task_id();
+                break;
+        }
+        if (commitScreenShotTaskId > 0) {
+            if (DataUtil.IS_USE_SCREEN_SHOT) {//小绵羊截图方案
+                File dir = DataUtil.getInstance().getScreenShotsDir(taskEty.getPackage_names());
+                showChooseDialog(false, true, DEFAULT_MAX_COUNT, dir);
+            } else {//用户手动截图方案
+                showChooseDialog(false, true, DEFAULT_MAX_COUNT);
+            }
+        } else {
+            G.showToast("暂无任务可以上传");
+        }
+        UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_UPLOAD_PICTURE);
+    }
+
+    /**
      * 尝试提交应用自动审核任务
      */
     private void checkAndCommitTask() {
-        if(taskEty != null && taskReleaseEty != null) {
-            if(TextUtils.isEmpty(taskEty.getPackage_names())){
+        if (taskEty != null && taskReleaseEty != null) {
+            if (TextUtils.isEmpty(taskEty.getPackage_names())) {
                 G.showToast(R.string.error_package_link);
                 return;
             }
             String gps = LocationUtils.getInstance().getLongitudeLatitude();
             JSONObject object = new JSONObject();
             object.put("gps", gps);
+
             long runTime = AppUsageManager.getInstance().getTotalTimeInForeground(taskEty.getPackage_names());
-            if(runTime <= 0){//时间小于等于0则不提交
+
+            if (runTime <= 0) {//时间小于等于0则不提交
                 G.showToast("该任务时长未达到,请继续去体验应用哦!");
                 return;
             }
@@ -670,8 +796,9 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
             MyDbManager.getInstance().removeAppRecord();//删除记录表 5.0及以下使用
             AutoTaskListUtil.getInstance().resetReceiveTaskTime();//重置比对时间  5.1及以上使用
 
-            object.put("task_time", runTime/1000);
+            object.put("task_time", runTime / 1000);
             object.put("release_task_id", taskReleaseEty.getId());
+            addTaskChildId(object, taskEty);
             SheepApp.getInstance().getNetComponent().getApiService().commitAutoTask(object)
                     .subscribeOn(Schedulers.io())
                     .observeOn(AndroidSchedulers.mainThread())
@@ -680,11 +807,11 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                         public void onNext(BaseMessage baseMessage) {
                             CommonUtil.getInstance().setTAskEnty(null);
                             String amount = taskReleaseEty.getBonus();
-                            try{
-                                Map h = JSON.parseObject(baseMessage.getData() +"");
+                            try {
+                                Map h = JSON.parseObject(baseMessage.getData() + "");
 
                                 amount = h.get("amount") + "";
-                            }catch (Exception e){
+                            } catch (Exception e) {
                                 e.printStackTrace();
                             }
 
@@ -695,6 +822,8 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                         @Override
                         public void onError(BaseMessage baseMessage) {
                             G.showToast("该任务时长未达到,请继续去体验应用哦!");
+                            //时间重置
+                            MyDbManager.getInstance().retAppUsageTime(taskEty.getPackage_names());
                         }
                     });
         } else {
@@ -703,6 +832,25 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     }
 
     /**
+     * 添加子任务id参数
+     *
+     * @param object
+     * @param taskEty
+     */
+    private void addTaskChildId(JSONObject object, TaskEty taskEty) {
+        switch (taskEty.getTask_type()) {
+            case 1000://连续任务
+                int task_child_id = taskEty.getCanAcceptedChildId();
+                if (task_child_id < 1) {
+                    G.showToast("暂无可以领取的任务");
+                    return;
+                }
+                object.put("task_child_id", task_child_id);
+                break;
+        }
+    }
+
+    /**
      * 任务进度
      */
     private void taskSchedule() {
@@ -716,8 +864,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                 } else if (PackageUtil.isAppInstalled(SheepApp.mContext, taskEty.getPackage_names())) {
                     llInfos.addView(getStep("APP下载", "已完成", 0));
                     llInfos.addView(getStep("完成任务", "进行中", 1));
-                }
-                else {
+                } else {
                     llInfos.addView(getStep("APP下载", "待完成", 2));
                 }
             } else {
@@ -760,14 +907,19 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
 //                            onGetNetImageUrl(data);
         dismissLoaddingDialog();
         G.showToast("提交成功,等待审核!");
-        if(DataUtil.IS_USE_SCREEN_SHOT) {//小绵羊截图方案:上传截图成功后删除之前的截图
+        if (DataUtil.IS_USE_SCREEN_SHOT) {//小绵羊截图方案:上传截图成功后删除之前的截图
             DataUtil.getInstance().clearScreenShots();
         }
 
-        if(isFromTaskList)//之前界面为任务记录界面,需要回调刷新任务记录列表
-            setResult(RESULT_OK);
         UMConfigUtils.finishTask();
-        finish();
+        if (taskEty.hasCommitLast(commitScreenShotTaskId)) {//非自动审核任务中的连续任务已经提交了最后一个子任务,或者普通任务提交截图成功
+            if (isFromTaskList)//之前界面为任务记录界面,需要回调刷新任务记录列表
+                setResult(RESULT_OK);
+            finish();
+        } else {
+            isFresh = true;
+            freshData();
+        }
     }
 
     @Override
@@ -804,11 +956,13 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
 
     }
 
+    private int commitScreenShotTaskId;
+
     @Override
     protected void onSetNetImageUrl(String data) {
         setLoaddingText("提交中");
         JSONObject jsonObject = new JSONObject();
-        jsonObject.put("id", taskReleaseEty.getAccepted_task_id() == 0 && gettaskAcceptedEty != null ? gettaskAcceptedEty.getId() : taskReleaseEty.getAccepted_task_id());
+        jsonObject.put("id", commitScreenShotTaskId);
         jsonObject.put("screenshots", data + "");
         jsonObject.put("remark", /*taskEty.getRemarks() +*/ "");
         jsonObject.put("package_name", taskEty.getPackage_names() + "");
@@ -825,30 +979,17 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
-        switch (requestCode){
+        switch (requestCode) {
             case 0:
                 if (resultCode == RESULT_OK) {
-                    if (taskReleaseEty.getAccepted_task_id() > 0) {
-                        showProgress(true);
-                        SheepApp.getInstance()
-                                .getNetComponent()
-                                .getApiService()
-                                .giveUpTask(taskReleaseEty.getAccepted_task_id())
-                                .subscribeOn(Schedulers.io())
-                                .observeOn(AndroidSchedulers.mainThread())
-                                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
-                                    @Override
-                                    public void onError(BaseMessage baseMessage) {
-                                        hideProgress();
-                                        G.showToast(baseMessage);
-                                    }
-
-                                    @Override
-                                    public void onNext(BaseMessage baseMessage) {
-                                        CommonUtil.getInstance().setTAskEnty(null);
-                                        acceptedTask();
-                                    }
-                                });
+                    if (taskReleaseEty != null && taskReleaseEty.getAccepted_task_id() > 0) {
+                        取消任务(taskReleaseEty.getAccepted_task_id(), new Action1<Integer>() {
+                            @Override
+                            public void call(Integer integer) {
+                                CommonUtil.getInstance().setTAskEnty(null);
+                                acceptedTask();
+                            }
+                        });
                     }
                 }
                 break;
@@ -862,6 +1003,29 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         }
     }
 
+    private void 取消任务(int id, final Action1<Integer> action1) {
+        showProgress(true);
+        SheepApp.getInstance()
+                .getNetComponent()
+                .getApiService()
+                .giveUpTask(id)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        hideProgress();
+                        G.showToast(baseMessage);
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        if(action1 != null)
+                            action1.call(1);
+                    }
+                });
+    }
+
     /**
      * 领取任务
      */
@@ -870,6 +1034,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         JSONObject object = new JSONObject();
         object.put("device_id", DeviceUtil.getDeviceId(activity));
         object.put("release_task_id", taskReleaseEty.getId());
+        addTaskChildId(object, taskEty);
         SheepApp.getInstance()
                 .getNetComponent()
                 .getApiService()
@@ -943,7 +1108,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                 int p = task.getPercent();    //任务进度百分比
                 String speed = task.getConvertSpeed();    //转换单位后的下载速度,单位转换需要在配置文件中打开
 //                long speed1 = task.getSpeed(); //原始byte长度速度
-                btnTaskItem.setText(String.format(Locale.CHINA, "%d%%",Math.abs(p)));
+                btnTaskItem.setText(String.format(Locale.CHINA, "%d%%", Math.abs(p)));
                 System.out.println("Aria p " + p + ", speed = " + speed);
             }
         } catch (Exception e) {
@@ -1004,7 +1169,8 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     @Override
     protected void onResume() {
         super.onResume();
-        if (taskReleaseEty == null){
+        if (taskReleaseEty == null || isFresh) {
+            isFresh = true;
             freshData();
         } else {
             updateBottom();
@@ -1015,16 +1181,17 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
      * 子任务模块显示
      */
     TaskdetailSonListviewAdp sonListviewAdp;
-    private void setSonVuewShow(){
+
+    private void setSonVuewShow() {
         boolean isSuccession = false;
         item_layout.setBackgroundResource(R.drawable.sp_bg_white_solid_top);
         detail_task_recyclerview.setVisibility(View.GONE);
         ems_game_layout.setVisibility(View.GONE);
         taskdetail_user_use_layout.setVisibility(View.GONE);
         taskdetail_explain_layout.setVisibility(View.GONE);
-        switch (taskEty.getTask_type()){
+        switch (taskEty.getTask_type()) {
             case 1000://连续任务
-                if(taskEty.getChild() != null && taskEty.getChild().size() > 0 && taskEty.getChild().get(0).getDescEntityList() != null){
+                if (taskEty.getChild() != null && taskEty.getChild().size() > 0 && taskEty.getChild().get(0).getDescEntityList() != null) {
                     detail_task_recyclerview.setVisibility(View.VISIBLE);
                     detail_item_layout_2.setVisibility(View.GONE);
                     detail_item_layout_3.setVisibility(View.GONE);
@@ -1037,7 +1204,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                     TaskHelper.setSelectFlag(taskEty);
                     detail_task_recyclerview.setAdapter(sonListviewAdp);
                     isSuccession = true;
-                }else {
+                } else {
 
                     isSuccession = false;
                 }
@@ -1060,11 +1227,11 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         }
 
         //非连续任务且非游戏任务且应用自动审核时长任务  使用TaskdetailSonListviewAdp显示单个任务详情
-        if(!isSuccession && !ListUtil.isEmpty(taskEty.getDescEntityList())){
+        if (!isSuccession && !ListUtil.isEmpty(taskEty.getDescEntityList())) {
             List<TaskChild> descEntityArrayList = new ArrayList<>();
             TaskChild taskChild = new TaskChild();
             taskChild.setDescEntityList(taskEty.getDescEntityList());
-            if(!taskEty.isGameTask() && !taskEty.isAppAutoCommitTask()) {
+            if (!taskEty.isGameTask() && !taskEty.isAppAutoCommitTask()) {
                 List<ScreenshotsEntity> listS = new ArrayList<>();
                 if (taskEty.getDescEntityList() != null && taskEty.getDescEntityList().size() > 0) {
                     listS.clear();
@@ -1094,7 +1261,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         }
 
         //截至时间
-        if(gettaskAcceptedEty != null &&taskReleaseEty != null && gettaskAcceptedEty.isIs_running() && gettaskAcceptedEty.getEnd_time() > 0){
+        if (gettaskAcceptedEty != null && taskReleaseEty != null && gettaskAcceptedEty.isIs_running() && gettaskAcceptedEty.getEnd_time() > 0) {
             CommonUtil.getInstance().getHashMap(end_of_time_tv);
 
             end_of_time_tv.setVisibility(View.VISIBLE);
@@ -1103,7 +1270,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
             selfCountDownTimer.start();
 
             CommonUtil.getInstance().addTimerHashMap(end_of_time_tv, selfCountDownTimer);
-        }else {
+        } else {
             end_of_time_tv.setVisibility(View.GONE);
         }
 
@@ -1113,7 +1280,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     /**
      * 领取奖励
      */
-    private void accepteReceiveAward(){
+    private void accepteReceiveAward() {
         showProgress();
         SheepApp.getInstance()
                 .getNetComponent()
@@ -1133,7 +1300,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                         hideProgress();
 //                        G.showToast(taskReleaseEty.getBonus() + "元");
                         ViewUtil.showMsgDialog(activity,
-                                "恭喜你获得"+taskReleaseEty.getBonus() + "元奖励",
+                                "恭喜你获得" + taskReleaseEty.getBonus() + "元奖励",
                                 "提示",
                                 true);
 //                        finish();
@@ -1147,16 +1314,16 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     /**
      * 获取接受的任务详情
      */
-    private void getAcceptedTaskDetail(final int releaseTaskId){
+    private void getAcceptedTaskDetail(final int releaseTaskId) {
         showProgress();
         CommonUtil.getInstance().getTaskAllDetail(releaseTaskId, new Action1<BaseMessage>() {
             @Override
             public void call(BaseMessage baseMessage) {
-                if(baseMessage.getCode() == 0)
+                if (baseMessage.getCode() == 0)
                     gettaskAcceptedEty = baseMessage.getData(TaskAcceptedEty.class);
-                if(gettaskAcceptedEty != null)
+                if (gettaskAcceptedEty != null)
                     taskReleaseEty = gettaskAcceptedEty.getRelease_task();
-                if(taskReleaseEty == null){
+                if (taskReleaseEty == null) {
                     initTaskReleaseEty();
                 } else {
                     hideProgress();

+ 5 - 8
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAddQQAct.java

@@ -6,26 +6,23 @@ import android.os.Bundle;
 import android.support.annotation.RequiresApi;
 import android.text.TextUtils;
 import android.view.View;
-import android.webkit.WebChromeClient;
-import android.webkit.WebResourceRequest;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
 import android.widget.LinearLayout;
-import android.widget.RelativeLayout;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.NewbieTask;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.UMConfigUtils;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
+import com.tencent.smtt.export.external.interfaces.WebResourceRequest;
+import com.tencent.smtt.sdk.WebChromeClient;
+import com.tencent.smtt.sdk.WebView;
+import com.tencent.smtt.sdk.WebViewClient;
 
 import butterknife.BindView;
 import butterknife.ButterKnife;

+ 5 - 10
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailCreditCardAct.java

@@ -6,40 +6,35 @@ import android.os.Bundle;
 import android.support.annotation.RequiresApi;
 import android.text.TextUtils;
 import android.view.View;
-import android.webkit.WebChromeClient;
-import android.webkit.WebResourceRequest;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
-import android.widget.RelativeLayout;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
 import com.kfzs.duanduan.datashare.DDProviderHelper;
 import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
+import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
-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.util.EntityUtils;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DeviceUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.MyListview;
 import com.sheep.gamegroup.util.TimeUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
+import com.tencent.smtt.export.external.interfaces.WebResourceRequest;
+import com.tencent.smtt.sdk.WebChromeClient;
+import com.tencent.smtt.sdk.WebView;
+import com.tencent.smtt.sdk.WebViewClient;
 
 import java.util.Locale;
 

+ 3 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/TaskListAct.java

@@ -132,6 +132,9 @@ public class TaskListAct extends BaseActivity implements TaskListContract.View {
         if(object instanceof BaseMessage){
             List<TaskAcceptedEty> releaseEtyList = ((BaseMessage) object).getDataList(TaskAcceptedEty.class);
             ListUtil.addAll(etyList, releaseEtyList);
+
+            if(!etyList.isEmpty())
+                etyList.add(null);//底部部分----我是有底线的
         }
         notifyDataSetChanged();
     }

+ 9 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/TryMakeMoneyact.java

@@ -10,7 +10,9 @@ import android.view.View;
 import com.kfzs.duanduan.ActDownloadMgr;
 import com.kfzs.duanduan.event.BigEvent;
 import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.util.UMConfigUtils;
+import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.view.adapter.AdpTryMakemoney;
 import com.sheep.gamegroup.view.fragment.FgtTryMakeMoney;
 import com.sheep.jiuyan.samllsheep.R;
@@ -60,6 +62,13 @@ public class TryMakeMoneyact extends BaseActivity {
         TitleBarUtils
                 .getInstance()
                 .setTitle(activity, title).setTitleFinish(activity)
+                .setRightSecondBtn(activity, R.mipmap.question_black_img, new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        ViewUtil.showMsgDialog(activity, new DialogConfig().setTitle("温馨提示").setBtnLeftText("我知道了")
+                                .setMsg("该栏目为现金任务,参与好友提成。"));
+                    }
+                })
                 .setRightImgBotton(activity, R.drawable.index_download, new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {

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

@@ -2,10 +2,10 @@ package com.sheep.gamegroup.view.activity;
 
 import android.text.TextUtils;
 import android.view.View;
-import android.webkit.WebChromeClient;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
+import com.tencent.smtt.sdk.WebChromeClient;
+import com.tencent.smtt.sdk.WebSettings;
+import com.tencent.smtt.sdk.WebView;
+import com.tencent.smtt.sdk.WebViewClient;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSONObject;

+ 7 - 18
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpHomeListGrideview.java

@@ -1,6 +1,7 @@
 package com.sheep.gamegroup.view.adapter;
 
 import android.content.Context;
+import android.graphics.drawable.Drawable;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -56,36 +57,24 @@ public class AdpHomeListGrideview extends BaseAdapter {
             holder = (ViewHolder) tag;
         }else {
             holder = new ViewHolder();
-            convertView = LayoutInflater.from(context).inflate(R.layout.adp_homelist_gridview, null);
-            holder.hot_tv = convertView.findViewById(R.id.hot_tv);
+            convertView = LayoutInflater.from(context).inflate(R.layout.adp_homelist_gridview_new, null);
+            holder.gridview_item_tag_tv = convertView.findViewById(R.id.gridview_item_tag_tv);
             holder.gridview_item_name_tv = convertView.findViewById(R.id.gridview_item_name_tv);
-            holder.gridview_item_detail_tv = convertView.findViewById(R.id.gridview_item_detail_tv);
             holder.gridview_item_icon_iv = convertView.findViewById(R.id.gridview_item_icon_iv);
             convertView.setTag(holder);
         }
         final HomeListEntity entity = getItem(position);
-        ViewUtil.setText(holder.hot_tv, entity.getTip());
-        holder.hot_tv.setVisibility(entity.hasTip()?View.VISIBLE: View.GONE);
-        holder.hot_tv.setTextColor(entity.getTipColor());
+        ViewUtil.newInstance().showGridviewStatues(context,holder.gridview_item_tag_tv, entity);
         ViewUtil.setText(holder.gridview_item_name_tv, entity.getTitle());
-        ViewUtil.setText(holder.gridview_item_detail_tv, entity.getDesc());
         Glide.with(context)
-                .load(entity.getIcon())
-                .apply(new RequestOptions().dontAnimate())
+                .load(entity.getId() == 0 ? Integer.valueOf(entity.getIcon()) : entity.getIcon())
+                .apply(new RequestOptions().dontAnimate().override(G.WIDTH / 4 /3, G.WIDTH /4 /3))
                 .into(holder.gridview_item_icon_iv);
-        convertView.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                UMConfigUtils.IdEvent.HOME_LIST.commit(entity.getId());
-                CommonUtil.getInstance()
-                        .goWhere(context, entity, "首页");
-            }
-        });
         return convertView;
     }
 
     class ViewHolder{
-        TextView gridview_item_name_tv, gridview_item_detail_tv, hot_tv;
+        TextView gridview_item_name_tv, gridview_item_tag_tv;
         ImageView gridview_item_icon_iv;
     }
 }

+ 5 - 0
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpTryMakemoney.java

@@ -26,6 +26,11 @@ public class AdpTryMakemoney extends FragmentStatePagerAdapter {
         mTitles.add(title);
     }
 
+    public void cleanListFragment(){
+        mListFragment.clear();
+        mTitles.clear();
+    }
+
     @Override
     public Fragment getItem(int position) {
         return (Fragment) mListFragment.get(position);

+ 33 - 13
app/src/main/java/com/sheep/gamegroup/view/adapter/NewbieTaskAdp.java

@@ -2,6 +2,7 @@ package com.sheep.gamegroup.view.adapter;
 
 import android.app.Activity;
 import android.content.Context;
+import android.os.Message;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -9,8 +10,12 @@ import android.widget.BaseAdapter;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import com.kfzs.duanduan.fragment.FgtSmallSheep;
 import com.sheep.gamegroup.model.entity.NewbieTask;
+import com.sheep.gamegroup.model.entity.UserEntity;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -53,14 +58,16 @@ public class NewbieTaskAdp extends BaseAdapter {
     public long getItemId(int position) {
         return 0;
     }
+
     private final static int[] ids = {R.drawable.newbie_task_2, R.drawable.newbie_task_3, R.drawable.newbie_task_4, R.drawable.newbie_task_5, R.drawable.icon, R.drawable.newbie_task_6};
+
     @Override
     public View getView(final int position, View convertView, ViewGroup parent) {
         Object tag = convertView == null ? null : convertView.getTag();
         ViewHolder holder;
-        if(tag instanceof ViewHolder){
+        if (tag instanceof ViewHolder) {
             holder = (ViewHolder) tag;
-        }else {
+        } else {
             holder = new ViewHolder();
             convertView = LayoutInflater.from(context).inflate(R.layout.newbie_task, null);
             holder.newbie_task_iv = convertView.findViewById(R.id.newbie_task_iv);
@@ -71,19 +78,19 @@ public class NewbieTaskAdp extends BaseAdapter {
         }
 
         final NewbieTask ety = (NewbieTask) getItem(position);
-        holder.newbie_task_iv.setImageResource(ids[(ety.getId()+ids.length-1)%ids.length]);
+        holder.newbie_task_iv.setImageResource(ids[(ety.getId() + ids.length - 1) % ids.length]);
         holder.newbie_task_name_tv.setText(ety.getName());
         holder.newbie_task_money_tv.setText(String.format(Locale.CHINESE, "+%.1f元", ety.getAmount()));
         holder.newbie_task_tv.setOnClickListener(new View.OnClickListener() {
 
             @Override
             public void onClick(View view) {
-                if(onClickListener != null)
+                if (onClickListener != null)
                     onClickListener.onClick(view);
                 doActionByTask(context, ety);
             }
         });
-        switch (ety.getStatus()){
+        switch (ety.getStatus()) {
             case 0:
                 holder.newbie_task_tv.setText("去完成");
                 break;
@@ -101,14 +108,15 @@ public class NewbieTaskAdp extends BaseAdapter {
         return convertView;
     }
 
-    class ViewHolder{
+    class ViewHolder {
         ImageView newbie_task_iv;
         TextView newbie_task_name_tv, newbie_task_money_tv, newbie_task_tv;
     }
-    public static void doActionByTask(Context context, NewbieTask task){
-        if(context instanceof Activity){
+
+    public static void doActionByTask(Context context, NewbieTask task) {
+        if (context instanceof Activity) {
             NEWBIE_TASK_ITEM.onEvent("id", task.getId(), "name", task.getName());
-            switch (task.getId()){
+            switch (task.getId()) {
                 case 1://了解小绵羊
                     Jump2View.getInstance().goUnderstandSheep(context, null);
                     break;
@@ -122,23 +130,35 @@ public class NewbieTaskAdp extends BaseAdapter {
                     Jump2View.getInstance().goTryplayView(context, null);
                     break;
                 case 5://注册账号并登录
-                    if(BuildConfig.DEBUG){
+                    if (BuildConfig.DEBUG) {
                         G.showToast("测试:服务器返回数据错误,这个任务可能没有完成?");
                     }
+                    isShow(context);
                     break;
                 case 6://加入官方QQ群
                     doActionByTaskQQ(context, task);
                     break;
             }
         } else {
-            if(BuildConfig.DEBUG)
+            if (BuildConfig.DEBUG)
                 G.showToast("测试:context必须继续Activity");
         }
     }
 
-    private static void doActionByTaskQQ(Context context,NewbieTask task) {
+    private static void isShow(Context context) {
+        UserEntity userEntity = DataUtil.getInstance().getUserEntity();
+        if (((userEntity.getNewbie_task_status() & 16) == 0) && userEntity.getIs_new() == 1) {
+            Message message = Message.obtain();
+            message.obj = context;
+            message.what = 7;
+            new FgtSmallSheep().mHanderl.sendMessage(message);
+            LogUtil.logI("sendmessage");
+        }
+    }
+
+    private static void doActionByTaskQQ(Context context, NewbieTask task) {
 
-        switch (task.getStatus()){
+        switch (task.getStatus()) {
             case 0://"去完成");
                 Jump2View.getInstance().goAddQQTaskDetail(context, task);
                 break;

+ 56 - 4
app/src/main/java/com/sheep/gamegroup/view/adapter/TaskListItemAdp.java

@@ -3,6 +3,7 @@ package com.sheep.gamegroup.view.adapter;
 import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -65,6 +66,9 @@ public class TaskListItemAdp extends BaseAdapter {
 
     @Override
     public View getView(int position, View convertView, ViewGroup parent) {
+        if(position == getCount()-1){
+            return LayoutInflater.from(context).inflate(R.layout.find_item_bottom, null);
+        }
         Object tag = convertView == null ? null : convertView.getTag();
         ViewHolder holder;
         if(tag instanceof ViewHolder){
@@ -77,6 +81,7 @@ public class TaskListItemAdp extends BaseAdapter {
             holder.price_tv = convertView.findViewById(R.id.price_tv);
             holder.icon_iv = convertView.findViewById(R.id.icon_iv);
             holder.detail_task_tv = convertView.findViewById(R.id.detail_task_tv);
+            holder.desc_tv = convertView.findViewById(R.id.desc_tv);
             convertView.setTag(holder);
         }
 
@@ -86,7 +91,22 @@ public class TaskListItemAdp extends BaseAdapter {
         }
         ViewUtil.setText(holder.name_tv, ety.getRelease_task().getName());
         ViewUtil.setText(holder.date_tv, TimeUtil.getDate(TimeUtil.FORMAT, NumberFormatUtils.parseLong(ety.getUpdate_time())));
-        holder.price_tv.setText(returnValue(ety));
+        String stateStr = "";
+        if(ety.getStatus() == 3){
+            stateStr = "+"+ ety.getRelease_task().getBonus() +"元";
+            holder.price_tv.setTextColor(context.getResources().getColor(R.color.txt_red));
+        }else {
+            stateStr = ety.getRelease_task().getBonus() +"元";
+            holder.price_tv.setTextColor(context.getResources().getColor(R.color.time_created));
+        }
+        holder.price_tv.setText(stateStr);
+        if(!TextUtils.isEmpty(ety.getRemarks())){
+            holder.desc_tv.setVisibility(View.VISIBLE);
+
+        }else {
+            holder.desc_tv.setVisibility(View.GONE);
+        }
+        holder.desc_tv.setText(TextUtils.isEmpty(ety.getRemarks())?"":"失败原因:"+ety.getRemarks());
         convertView.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -94,7 +114,7 @@ public class TaskListItemAdp extends BaseAdapter {
             }
         });
         TestUtil.setDebugDownLoad(context, convertView, ety.getRelease_task().getTask());
-        holder.detail_task_tv.setText(ety.getRemarks());
+        returnValue3(ety, holder.detail_task_tv);
         Glide.with(context)
                 .load(ety.getRelease_task().getTask().getIcon())
                 .apply(new RequestOptions().placeholder(R.mipmap.icon))
@@ -104,11 +124,11 @@ public class TaskListItemAdp extends BaseAdapter {
 
     class ViewHolder{
         ImageView icon_iv;
-        TextView name_tv, date_tv, price_tv,detail_task_tv;
+        TextView name_tv, date_tv, price_tv,detail_task_tv,desc_tv;
     }
 
     /**
-     * 1,已接受任务 2,正在进行中,3完成任务,4放弃任务,5任务失败,6审核失败,7提交审核
+     * 1,已接受任务 2,正在进行中,3完成任务,4放弃任务,5任务失败,6审核失败,7提交审核8任务已下线9连续任务
      * @return
      */
     private String returnValue(TaskAcceptedEty ety){
@@ -141,4 +161,36 @@ public class TaskListItemAdp extends BaseAdapter {
         }
         return stateStr;
     }
+    private String returnValue3(TaskAcceptedEty ety, TextView textView){
+        String stateStr = "已接受任务";
+        switch (ety.getStatus()){
+            default:
+            case 1://提交中
+            case 2:
+            case 7:
+                textView.setBackgroundResource(R.drawable.shape_blue_stroke_rectangle_10_radius);
+                textView.setTextColor(context.getResources().getColor(R.color.btn_color_main_stroke));
+                textView.setText("审核中");
+                break;
+            case 3://完成
+            case 9:
+                textView.setBackgroundResource(R.drawable.shape_gray_stroke_rectangle_10_radius);
+                textView.setTextColor(context.getResources().getColor(R.color.gray_CCCCCC));
+                textView.setText("已完成");
+                break;
+            case 4://失败
+            case 5:
+            case 8:
+                textView.setBackgroundResource(R.drawable.shape_gray_stroke_rectangle_10_radius);
+                textView.setTextColor(context.getResources().getColor(R.color.gray_CCCCCC));
+                textView.setText("任务失败");
+                break;
+            case 6:
+                textView.setBackgroundResource(R.drawable.shape_red_stroke_rectangle_10_radius);
+                textView.setTextColor(context.getResources().getColor(R.color.red_FD2D54));
+                textView.setText("重新提交");
+                break;
+        }
+        return stateStr;
+    }
 }

+ 33 - 24
app/src/main/java/com/sheep/gamegroup/view/adapter/TryMakeMoneyAdp.java

@@ -80,7 +80,8 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
     private Context context;
     private int from;// 1 来自主页
     private int type = 0;//0:推荐 1:热门 2:预约 3:游戏推荐
-    private int is_succession;//0:一般任务 1:连续任务
+    private String show_type;
+    private int is_succession;//0:一般任务 1:连续任务3:所有任务
 
     public TryMakeMoneyAdp(Context context) {
         super(context);
@@ -151,6 +152,9 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
     public void addType(int type){
         this.type = type;
     }
+    public void addShowType(String show_type){
+        this.show_type = show_type;
+    }
     /**
      * 传入is_succession
      */
@@ -570,15 +574,7 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
                 }
                 viewHolder.itemView.setTag(TAG_ID_TEMP, etyList.get(i).getId());
                 ((TextView) viewHolder.itemView.findViewById(R.id.item_name_tv)).setText(taskReleaseEty.getName() + "");
-                switch (from) {
-                    case 1://来自主页
-                        TaskHelper.setTaskTypeText((TextView) viewHolder.itemView.findViewById(R.id.item_num_tv), taskReleaseEty);
-                        TaskHelper.setNumText((TextView) viewHolder.itemView.findViewById(R.id.item_num_tv1), taskReleaseEty);
-                        break;
-                    default:
-                        TaskHelper.setNumText((TextView) viewHolder.itemView.findViewById(R.id.item_num_tv), taskReleaseEty);
-                        break;
-                }
+                setCommonViewData(viewHolder.itemView, taskReleaseEty);
                 ((TextView) viewHolder.itemView.findViewById(R.id.item_money)).setText("+" + taskReleaseEty.getBonus() + "元");
 
                 GlideImageLoader.setGameImage((ImageView) viewHolder.itemView.findViewById(R.id.item_icon_iv), taskEty.getIcon());
@@ -595,7 +591,7 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
                                 "截止时间:" + taskReleaseEty.getDeadline());
                     }
                 }
-                if (i == 0) {
+                if (i == 0 && TextUtils.isEmpty(show_type)) {
                     viewHolder.itemView.findViewById(R.id.task_top).setVisibility(View.VISIBLE);
                     if (isBegin == 1) {
                         ((ImageView) viewHolder.itemView.findViewById(R.id.item_title_iv)).setImageResource(R.mipmap.jijiangks);
@@ -709,6 +705,27 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
     }
 
     /**
+     * 一样相同组件与数据的设置
+     * @param itemView
+     * @param taskReleaseEty
+     */
+    private void setCommonViewData(View itemView, TaskReleaseEty taskReleaseEty) {
+        if(!TextUtils.isEmpty(show_type))
+            from = 1;
+        switch (from) {
+            case 1://来自主页
+                TaskHelper.setTaskTypeText((TextView) itemView.findViewById(R.id.item_num_tv), taskReleaseEty);
+                TaskHelper.setTaskTagText((TextView) itemView.findViewById(R.id.item_num_tv1), taskReleaseEty);
+                TaskHelper.setNumText((TextView) itemView.findViewById(R.id.item_num_tv2), taskReleaseEty);
+                break;
+            default:
+                TaskHelper.setTaskTagText((TextView) itemView.findViewById(R.id.item_num_tv), taskReleaseEty);
+                TaskHelper.setNumText((TextView) itemView.findViewById(R.id.item_num_tv1), taskReleaseEty);
+                break;
+        }
+    }
+
+    /**
      * 暂时这么处理,也许以后也是列表了
      * @param holder
      * @param etyList
@@ -756,15 +773,7 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
 
 
                 ((TextView)viewHolder.itemView.findViewById(R.id.item_name_tv)).setText(taskReleaseEty.getName()+"");
-                switch (from) {
-                    case 1://来自主页
-                        TaskHelper.setTaskTypeText((TextView) viewHolder.itemView.findViewById(R.id.item_num_tv), taskReleaseEty);
-                        TaskHelper.setNumText((TextView) viewHolder.itemView.findViewById(R.id.item_num_tv1), taskReleaseEty);
-                        break;
-                    default:
-                        TaskHelper.setNumText((TextView) viewHolder.itemView.findViewById(R.id.item_num_tv), taskReleaseEty);
-                        break;
-                }
+                setCommonViewData(viewHolder.itemView, taskReleaseEty);
                 ((TextView)viewHolder.itemView.findViewById(R.id.item_money)).setText("+"+ taskReleaseEty.getBonus() +"元");
                 if(!taskReleaseEty.getDeadline().equals("永久")){
                     ((TextView)viewHolder.itemView.findViewById(R.id.item_date_tv)).setText(
@@ -903,10 +912,10 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
     public boolean isEmpty() {
         switch (type){
             case 0://推荐任务
-
-                if(getmListDatas().get(0) != null
-                        && getmListDatas().get(0).getRecyleType() == RUN_TASK
-                        && ((List<TaskAcceptedEty>)getmListDatas().get(0).getDataObj()).size() > 0){
+                RecyleObj item;
+                if((item = ListUtil.getItem(getmListDatas(), 0)) != null
+                        && item.getRecyleType() == RUN_TASK
+                        && !ListUtil.isEmpty((List<TaskAcceptedEty>)item.getDataObj())){
                     return false;
                 }else {
                     return true;

+ 4 - 4
app/src/main/java/com/sheep/gamegroup/view/customview/WebViewForScrollView.java

@@ -1,9 +1,9 @@
 package com.sheep.gamegroup.view.customview;
 
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.View;
-import android.webkit.WebView;
+        import android.content.Context;
+        import android.util.AttributeSet;
+        import android.view.View;
+        import com.tencent.smtt.sdk.WebView;
 
 /**
  * WebViewForScrollView

+ 118 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtAskGetMoneyFriend.java

@@ -0,0 +1,118 @@
+package com.sheep.gamegroup.view.fragment;
+
+import android.app.Activity;
+import android.support.v4.view.ViewPager;
+import android.util.SparseArray;
+import android.view.View;
+import android.widget.TextView;
+
+import com.kfzs.duanduan.fragment.FgtFriendExtractPage;
+import com.kfzs.duanduan.fragment.PagerAdapter;
+import com.kfzs.duanduan.view.ViewPagerPlus;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.jiuyan.samllsheep.BuildConfig;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+import com.sheep.jiuyan.samllsheep.utils.G;
+
+import java.util.Locale;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+/**
+ * Created by ljy on 2018/8/17.
+ */
+
+public class FgtAskGetMoneyFriend extends BaseFragment {
+
+    @BindView(R.id.friend_extract_vp)
+    ViewPagerPlus friend_extract_vp;
+    @BindView(R.id.friend_extract_last_page_tv)
+    TextView friend_extract_last_page_tv;
+    @BindView(R.id.friend_extract_page_tv)
+    TextView friend_extract_page_tv;
+    @BindView(R.id.friend_extract_next_page_tv)
+    TextView friend_extract_next_page_tv;
+    private Activity activity;
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.fgt_askgetmoney_friend;
+    }
+
+    @Override
+    public void onViewCreated() {
+        ButterKnife.bind(this, mView);
+        activity = getActivity();
+
+        initView();
+    }
+
+    private void initView() {
+        initFriendExtractList();
+    }
+
+    private SparseArray<FgtFriendExtractPage> mTestFragments;
+    private int totalPage = 0;
+    public void setFriendExtractCount(int count, int page, int size) {
+        totalPage = ListUtil.getTotalPage(count, 5);
+        friend_extract_page_tv.setText(String.format(Locale.CHINA, "%d/%d", curPage, totalPage));
+        checkAddPage(page, size);
+    }
+
+    private void checkAddPage(int page, int size) {
+        if (curPage + 2 > page && size == FgtFriendExtractPage.per_page) {//已经到最后一页面,且数据是满的,可以添加一页面
+            int nextPage = page + 1;
+            if (mTestFragments.get(nextPage) == null) {
+//                if(BuildConfig.DEBUG) G.showToast("添加新的一页:" + nextPage);
+                mTestFragments.put(nextPage, FgtFriendExtractPage.newInstance(nextPage));
+                mPagerAdapter.notifyDataSetChanged();
+            } else {
+//                if(BuildConfig.DEBUG) G.showToast("不用添加新的一页:" + nextPage);
+            }
+        }
+        if (size > FgtFriendExtractPage.per_page) {
+            if (BuildConfig.DEBUG) G.showToast("页面" + page + "的数据为:" + size);
+        }
+    }
+    private int curPage = 1;
+    private PagerAdapter mPagerAdapter;
+    private void initFriendExtractList() {
+        mTestFragments = new SparseArray<>();
+        mTestFragments.put(1, FgtFriendExtractPage.newInstance(1));
+        mPagerAdapter = new PagerAdapter(getChildFragmentManager(), mTestFragments);
+        friend_extract_vp.setAdapter(mPagerAdapter);
+        friend_extract_vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+            @Override
+            public void onPageScrolled(int i, float v, int i1) {
+
+            }
+
+            @Override
+            public void onPageSelected(int i) {
+                curPage = i + 1;
+                friend_extract_page_tv.setText(String.format(Locale.CHINA, "%d/%d", curPage, totalPage));
+                checkAddPage(curPage, mTestFragments.get(curPage).getList().size());
+            }
+
+            @Override
+            public void onPageScrollStateChanged(int i) {
+
+            }
+        });
+        friend_extract_last_page_tv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                friend_extract_vp.setCurrentItem(curPage - 2);
+            }
+        });
+        friend_extract_next_page_tv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                friend_extract_vp.setCurrentItem(curPage);
+            }
+        });
+    }
+
+}

+ 219 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtAskGetMoneyRank.java

@@ -0,0 +1,219 @@
+package com.sheep.gamegroup.view.fragment;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.sheep.gamegroup.model.entity.AskAward;
+import com.sheep.gamegroup.model.entity.AskTop;
+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.util.SheepSubscriber;
+import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
+import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.TestUtil;
+import com.sheep.gamegroup.util.ViewHolder;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
+import com.sheep.gamegroup.view.dialog.DialogNewbieTaskList;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+
+import java.util.List;
+import java.util.Locale;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+import butterknife.Unbinder;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.functions.Action1;
+import rx.schedulers.Schedulers;
+
+import static com.sheep.gamegroup.util.UMConfigUtils.Event.NEWBIE_TASK;
+
+/**
+ * Created by ljy on 2018/8/17.
+ */
+
+public class FgtAskGetMoneyRank extends BaseFragment {
+    @BindView(R.id.ask_top5_title)
+    TextView askTop5Title;
+    @BindView(R.id.ask_top5_not_you)
+    TextView askTop5NotYou;
+    @BindView(R.id.ask_top3_tip)
+    ImageView askTop3Tip;
+    @BindView(R.id.empty_view_img)
+    ImageView emptyViewImg;
+    @BindView(R.id.empty_view_msg)
+    TextView emptyViewMsg;
+    @BindView(R.id.empty_view)
+    RelativeLayout emptyView;
+    @BindView(R.id.ask_top5_list)
+    RecyclerView askTop5List;
+
+    private Activity activity;
+    private List<AskTop> list = ListUtil.emptyList();
+    private AdbCommonRecycler<AskTop> adapter;
+    @Override
+    public int getLayoutId() {
+        return R.layout.fgt_askgetmoney_rank;
+    }
+
+    @Override
+    public void onViewCreated() {
+        ButterKnife.bind(this, mView);
+        activity = getActivity();
+
+        initView();
+    }
+
+    private void initView() {
+        initAskTop5View();
+        askTop5NotYou.setVisibility(View.INVISIBLE);
+        initData();
+    }
+    public void initData() {
+        showProgress();
+
+        initAskTop5();
+    }
+
+    private void initAskTop5View() {
+        list.clear();
+        list.add(null);
+        askTop5List.setLayoutManager(new LinearLayoutManager(activity));
+        //ask_top5_list 解决滑动不流畅问题
+        askTop5List.setHasFixedSize(true);
+        askTop5List.setNestedScrollingEnabled(false);
+        adapter = new AdbCommonRecycler<AskTop>(activity, list) {
+
+            @Override
+            public int getItemViewType(int position) {
+                return position;
+            }
+
+            @Override
+            public int getViewIdByType(int type) {
+                switch (type) {
+                    case 0:
+                        return R.layout.x_ask_top5_title;
+                    default:
+                        return R.layout.x_ask_top5_item;
+                }
+            }
+
+            @Override
+            public void convert(ViewHolder holder, final AskTop item) {
+                View itemView = holder.itemView;
+                int position = holder.getAdapterPosition();
+                if (position == 0) {
+                    return;
+                }
+                TextView x_ask_top5_item_user = itemView.findViewById(R.id.x_ask_top5_item_user);
+                TextView x_ask_top5_item_money = itemView.findViewById(R.id.x_ask_top5_item_money);
+                TextView x_ask_top5_item_award = itemView.findViewById(R.id.x_ask_top5_item_award);
+                ImageView ask_top5_item_iv = itemView.findViewById(R.id.ask_top5_item_iv);
+
+                if (item == null) {//空数据占位置
+                    itemView.setVisibility(View.INVISIBLE);
+                    return;
+                }
+                ViewUtil.setText(x_ask_top5_item_user, String.format(Locale.CHINA, "昵称\n%s", item.getNickname()));
+                ViewUtil.setText(x_ask_top5_item_money, String.format(Locale.CHINA, "%d", item.getSum_friend()));
+                ViewUtil.setText(x_ask_top5_item_award, item.getPrize());
+                switch (position) {
+                    case 1:
+                        ask_top5_item_iv.setImageResource(R.mipmap.ask_top_1);
+                        break;
+                    case 2:
+                        ask_top5_item_iv.setImageResource(R.mipmap.ask_top_2);
+                        break;
+                    case 3:
+                        ask_top5_item_iv.setImageResource(R.mipmap.ask_top_3);
+                        break;
+                }
+
+
+            }
+        };
+        askTop5List.setAdapter(adapter);
+    }
+    private void initAskTop5() {
+        SheepApp.getInstance().getNetComponent().getApiService().getInvitationTop(5)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        List<AskTop> newList = baseMessage.getDataList(AskTop.class);
+                        if (ListUtil.isEmpty(newList)) {
+                            return;
+                        }
+                        list.addAll(newList);
+                        notifyDataSetChanged();
+                        String userId = DataUtil.getInstance().getUserId();
+                        boolean hasMe = false;
+                        for (AskTop item : newList) {
+                            if (TextUtils.equals(userId, item.getUser_id())) {
+                                hasMe = true;
+                                break;
+                            }
+                        }
+                        askTop5NotYou.setVisibility(hasMe ? View.INVISIBLE : View.VISIBLE);
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        notifyDataSetChanged();
+                        askTop5NotYou.setVisibility(View.VISIBLE);
+                    }
+                });
+    }
+
+    private void notifyDataSetChanged() {
+        hideProgress();
+        CommonUtil.getInstance().updateEmptyView(emptyView, list.size() == 1, true);
+        while (list.size() < 5) {
+            list.add(null);
+        }
+        adapter.notifyDataSetChanged();
+    }
+
+    //显示邀请好友排行榜top5的规则的对话框
+    public void showAstTop5Tip() {
+        ViewUtil.showMsgDialog(activity, new DialogConfig().setTitle("活动说明")
+                .setMsg(".每天实时更新排行数据。\n" +
+                        ".根据当月已赚赏金(定向货币除外)和邀请人数进行排行\n" +
+                        ".每个月前5名可获取排行奖励。\n" +
+                        ".每个月月底最后一天24:00可公布结果,获奖的用户需通过“小绵羊领头羊”公众号发送获奖截图证明及收货信息,核对信息真实后,会第一时间发放!\n" +
+                        ".本活动最终解释权归成都橙风有量科技有限公司所有!")
+                .setMsgGravity(Gravity.START)
+                .setTheme(DialogConfig.THEME_PURPLE)
+                .setBtnLeftText("我知道了"));
+    }
+
+
+    @OnClick({R.id.ask_top3_tip
+    })
+    public void onViewClicked(View view) {
+        switch (view.getId()) {
+            case R.id.ask_top3_tip://提现
+                showAstTop5Tip();
+                break;
+        }
+    }
+}

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


Некоторые файлы не были показаны из-за большого количества измененных файлов