Explorar el Código

Merge branch 'sheep_develop' into 2.8

liujiangyao hace 7 años
padre
commit
a95cb22127
Se han modificado 100 ficheros con 6453 adiciones y 1648 borrados
  1. 2 1
      .gitignore
  2. 2 6
      app/build.gradle
  3. BIN
      app/libs/com.kfzs.safe.aar
  4. 4 1
      app/src/main/AndroidManifest.xml
  5. 3 2
      app/src/main/java/com/kfzs/duanduan/ActDownloadMgr.java
  6. 5 4
      app/src/main/java/com/kfzs/duanduan/ActWeb.java
  7. 0 334
      app/src/main/java/com/kfzs/duanduan/PicBottomSheetActivity.java
  8. 2 0
      app/src/main/java/com/kfzs/duanduan/event/EventTypes.java
  9. 276 0
      app/src/main/java/com/kfzs/duanduan/fragment/FgtAskgetmoney.java
  10. 45 13
      app/src/main/java/com/kfzs/duanduan/fragment/FgtFind.java
  11. 2 1
      app/src/main/java/com/kfzs/duanduan/fragment/FgtFindChild.java
  12. 10 9
      app/src/main/java/com/kfzs/duanduan/fragment/FgtFriendExtractPage.java
  13. 175 17
      app/src/main/java/com/kfzs/duanduan/fragment/FgtPersonalCenter.java
  14. 287 0
      app/src/main/java/com/kfzs/duanduan/fragment/FgtRouser.java
  15. 343 29
      app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java
  16. 9 0
      app/src/main/java/com/kfzs/duanduan/mine/GiftpackListAdapter.java
  17. 82 0
      app/src/main/java/com/kfzs/duanduan/mine/ShenheAdapter.java
  18. 10 8
      app/src/main/java/com/kfzs/duanduan/react/MainTab.java
  19. 8 0
      app/src/main/java/com/kfzs/duanduan/react/TabsHelper.java
  20. 5 6
      app/src/main/java/com/kfzs/duanduan/utils/net/APIRequest.java
  21. 6 8
      app/src/main/java/com/kfzs/duanduan/utils/net/APIRequestV2.java
  22. 1 1
      app/src/main/java/com/kfzs/duanduan/view/ViewPagerAutoHeigh.java
  23. 2 5
      app/src/main/java/com/sheep/gamegroup/absBase/AbsChooseImageActivity.java
  24. 148 0
      app/src/main/java/com/sheep/gamegroup/dateview/DataPickerDialog.java
  25. 284 0
      app/src/main/java/com/sheep/gamegroup/dateview/DatePickerDialog.java
  26. 202 0
      app/src/main/java/com/sheep/gamegroup/dateview/DateUtil.java
  27. 12 0
      app/src/main/java/com/sheep/gamegroup/dateview/LoopListener.java
  28. 25 0
      app/src/main/java/com/sheep/gamegroup/dateview/LoopRunnable.java
  29. 64 0
      app/src/main/java/com/sheep/gamegroup/dateview/LoopTimerTask.java
  30. 403 0
      app/src/main/java/com/sheep/gamegroup/dateview/LoopView.java
  31. 32 0
      app/src/main/java/com/sheep/gamegroup/dateview/LoopViewGestureListener.java
  32. 61 0
      app/src/main/java/com/sheep/gamegroup/dateview/MTimer.java
  33. 35 0
      app/src/main/java/com/sheep/gamegroup/dateview/MessageHandler.java
  34. 56 0
      app/src/main/java/com/sheep/gamegroup/dateview/MyTimerTask.java
  35. 128 0
      app/src/main/java/com/sheep/gamegroup/dateview/TimePickerDialog.java
  36. 97 71
      app/src/main/java/com/sheep/gamegroup/helper/TaskHelper.java
  37. 150 39
      app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java
  38. 14 22
      app/src/main/java/com/sheep/gamegroup/model/api/BaseMessageConverter.java
  39. 22 0
      app/src/main/java/com/sheep/gamegroup/model/api/RedPackageMoney.java
  40. 38 0
      app/src/main/java/com/sheep/gamegroup/model/entity/CashAwarsEntity.java
  41. 9 0
      app/src/main/java/com/sheep/gamegroup/model/entity/Friend.java
  42. 22 2
      app/src/main/java/com/sheep/gamegroup/model/entity/HomeListEntity.java
  43. 634 0
      app/src/main/java/com/sheep/gamegroup/model/entity/RobTask.java
  44. 154 0
      app/src/main/java/com/sheep/gamegroup/model/entity/RouserArticlesEntity.java
  45. 92 0
      app/src/main/java/com/sheep/gamegroup/model/entity/RouserEntity.java
  46. 23 2
      app/src/main/java/com/sheep/gamegroup/model/entity/TaskAcceptedEty.java
  47. 47 0
      app/src/main/java/com/sheep/gamegroup/model/entity/TaskAuditEntity.java
  48. 12 3
      app/src/main/java/com/sheep/gamegroup/model/entity/TaskChild.java
  49. 167 11
      app/src/main/java/com/sheep/gamegroup/model/entity/TaskEty.java
  50. 19 0
      app/src/main/java/com/sheep/gamegroup/model/entity/TaskReleaseEty.java
  51. 50 19
      app/src/main/java/com/sheep/gamegroup/model/entity/UserEntity.java
  52. 46 28
      app/src/main/java/com/sheep/gamegroup/model/entity/Version.java
  53. 0 1
      app/src/main/java/com/sheep/gamegroup/model/util/CacheInterceptor.java
  54. 2 0
      app/src/main/java/com/sheep/gamegroup/presenter/LoginPresenter.java
  55. 1 0
      app/src/main/java/com/sheep/gamegroup/presenter/PhoneContract.java
  56. 52 8
      app/src/main/java/com/sheep/gamegroup/presenter/PhonePresenter.java
  57. 1 1
      app/src/main/java/com/sheep/gamegroup/presenter/TaskListPresenter.java
  58. 1 1
      app/src/main/java/com/sheep/gamegroup/presenter/TryMakeMoneyPresenter.java
  59. 34 3
      app/src/main/java/com/sheep/gamegroup/usage/AppUsageManager.java
  60. 204 3
      app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java
  61. 10 2
      app/src/main/java/com/sheep/gamegroup/util/DataUtil.java
  62. 39 4
      app/src/main/java/com/sheep/gamegroup/util/GlideImageLoader.java
  63. 16 5
      app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
  64. 39 2
      app/src/main/java/com/sheep/gamegroup/util/LogUtil.java
  65. 1 0
      app/src/main/java/com/sheep/gamegroup/util/MyDbManager.java
  66. 30 0
      app/src/main/java/com/sheep/gamegroup/util/NestedScrollView.java
  67. 4 1
      app/src/main/java/com/sheep/gamegroup/util/TestUtil.java
  68. 477 83
      app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java
  69. 54 0
      app/src/main/java/com/sheep/gamegroup/view/activity/ActAudit.java
  70. 13 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActCreditCardTaskList.java
  71. 6 5
      app/src/main/java/com/sheep/gamegroup/view/activity/ActCreditCardWeb.java
  72. 1 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActFindGame.java
  73. 298 69
      app/src/main/java/com/sheep/gamegroup/view/activity/ActFindInformation.java
  74. 13 16
      app/src/main/java/com/sheep/gamegroup/view/activity/ActGameAgencyRecharge.java
  75. 4 4
      app/src/main/java/com/sheep/gamegroup/view/activity/ActGuideDeblocked.java
  76. 4 4
      app/src/main/java/com/sheep/gamegroup/view/activity/ActGuideOnHook.java
  77. 1 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActLoadH5.java
  78. 11 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActMiDong.java
  79. 1 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActNewAboutUs.java
  80. 1 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActNotice.java
  81. 22 13
      app/src/main/java/com/sheep/gamegroup/view/activity/ActWeb.java
  82. 14 5
      app/src/main/java/com/sheep/gamegroup/view/activity/ActXinwanWeb.java
  83. 21 400
      app/src/main/java/com/sheep/gamegroup/view/activity/AskGetMoneyAct.java
  84. 9 0
      app/src/main/java/com/sheep/gamegroup/view/activity/GamemakeMoneyAct.java
  85. 2 0
      app/src/main/java/com/sheep/gamegroup/view/activity/LoginAct.java
  86. 84 5
      app/src/main/java/com/sheep/gamegroup/view/activity/PersonalInfoAct.java
  87. 28 22
      app/src/main/java/com/sheep/gamegroup/view/activity/PhoneAct.java
  88. 7 0
      app/src/main/java/com/sheep/gamegroup/view/activity/SignCardAct.java
  89. 2 0
      app/src/main/java/com/sheep/gamegroup/view/activity/SplashAct.java
  90. 496 285
      app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java
  91. 5 8
      app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAddQQAct.java
  92. 5 10
      app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailCreditCardAct.java
  93. 3 0
      app/src/main/java/com/sheep/gamegroup/view/activity/TaskListAct.java
  94. 9 0
      app/src/main/java/com/sheep/gamegroup/view/activity/TryMakeMoneyact.java
  95. 4 4
      app/src/main/java/com/sheep/gamegroup/view/activity/WebviewAct.java
  96. 7 18
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpHomeListGrideview.java
  97. 5 0
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpTryMakemoney.java
  98. 34 13
      app/src/main/java/com/sheep/gamegroup/view/adapter/NewbieTaskAdp.java
  99. 53 5
      app/src/main/java/com/sheep/gamegroup/view/adapter/TaskListItemAdp.java
  100. 0 0
      app/src/main/java/com/sheep/gamegroup/view/adapter/TryMakeMoneyAdp.java

+ 2 - 1
.gitignore

@@ -8,4 +8,5 @@
 /captures
 /captures
 .externalNativeBuild
 .externalNativeBuild
 /.idea
 /.idea
-/kfzslibrary
+/kfzslibrary
+/banner

+ 2 - 6
app/build.gradle

@@ -150,7 +150,7 @@ dependencies {
     compile 'org.xutils:xutils:3.5.0'
     compile 'org.xutils:xutils:3.5.0'
     compile 'com.mylhyl:acp:1.1.7'
     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'
     compile 'com.github.huburt-Hu:NewbieGuide:v1.2.0'
     debugCompile 'com.android.support:multidex:1.0.1'
     debugCompile 'com.android.support:multidex:1.0.1'
 
 
@@ -271,11 +271,7 @@ android.applicationVariants.all {
         variant.outputs.each {
         variant.outputs.each {
             output ->
             output ->
                 if(buildType.name == "release") {
                 if(buildType.name == "release") {
-                    if (productFlavors[0].name == "sheep") {
-                        output.outputFile = new File(output.outputFile.parent, productFlavors[0].name + "_" + buildType.name + "_v" + android.defaultConfig.versionName + "_" + android.defaultConfig.versionCode + "-${releaseTime()}.apk")
-                    } else {
-                        output.outputFile = new File(output.outputFile.parent, productFlavors[0].name + "_" + buildType.name +".apk")
-                    }
+                    output.outputFile = new File(output.outputFile.parent, productFlavors[0].name + "_" + buildType.name + "_v" + android.defaultConfig.versionName + "_" + android.defaultConfig.versionCode + "-${releaseTime()}.apk")
                 }
                 }
 
 
         }
         }

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


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

@@ -191,6 +191,8 @@
             android:launchMode="singleTask"/>
             android:launchMode="singleTask"/>
         <activity android:name="com.sheep.gamegroup.view.activity.TaskListAct"
         <activity android:name="com.sheep.gamegroup.view.activity.TaskListAct"
             android:screenOrientation="portrait"/>
             android:screenOrientation="portrait"/>
+        <activity android:name="com.sheep.gamegroup.view.activity.ActAudit"
+            android:screenOrientation="portrait"/>
         <activity android:name="com.sheep.gamegroup.view.activity.GameTaskOrderListAct"
         <activity android:name="com.sheep.gamegroup.view.activity.GameTaskOrderListAct"
             android:screenOrientation="portrait"/>
             android:screenOrientation="portrait"/>
         <activity android:name="com.sheep.gamegroup.view.activity.WithdrawalListAct"
         <activity android:name="com.sheep.gamegroup.view.activity.WithdrawalListAct"
@@ -561,7 +563,8 @@
         <activity android:name="com.sheep.gamegroup.view.activity.ActFindGame"
         <activity android:name="com.sheep.gamegroup.view.activity.ActFindGame"
             android:screenOrientation="portrait"/>
             android:screenOrientation="portrait"/>
         <activity android:name="com.sheep.gamegroup.view.activity.ActFindInformation"
         <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"
         <activity android:name="com.sheep.gamegroup.view.activity.ActReservation"
             android:screenOrientation="portrait"/>
             android:screenOrientation="portrait"/>
         <activity android:name="com.sheep.gamegroup.view.activity.ActGameAgencyRecharge"
         <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.utils.dlg.TitleBarUtils;
 import com.kfzs.duanduan.view.DialogStorageLow;
 import com.kfzs.duanduan.view.DialogStorageLow;
 import com.kfzs.duanduan.view.KFProgressButton;
 import com.kfzs.duanduan.view.KFProgressButton;
+import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 
 
@@ -56,7 +57,7 @@ public class ActDownloadMgr extends BaseCompatActivity {
     ListView lvDownloadMgr;
     ListView lvDownloadMgr;
 
 
     @BindView(R.id.empty_view)
     @BindView(R.id.empty_view)
-    View tvEmptyView;
+    View empty_view;
 
 
     /**
     /**
      * Download manager list view data's adapter
      * Download manager list view data's adapter
@@ -409,7 +410,7 @@ public class ActDownloadMgr extends BaseCompatActivity {
     }
     }
 
 
     private void showDownloadTaskList(boolean isShow) {
     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);
         lvDownloadMgr.setVisibility(!isShow ? View.GONE : View.VISIBLE);
     }
     }
     @Download.onPre void onPre(DownloadTask task) {
     @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.text.TextUtils;
 import android.util.Log;
 import android.util.Log;
 import android.view.View;
 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.JavascriptInterface;
-import android.webkit.WebChromeClient;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
 import android.widget.ImageButton;
 import android.widget.ImageButton;
 import android.widget.TextView;
 import android.widget.TextView;
 
 

+ 0 - 334
app/src/main/java/com/kfzs/duanduan/PicBottomSheetActivity.java

@@ -1,334 +0,0 @@
-package com.kfzs.duanduan;
-
-import android.Manifest;
-import android.annotation.TargetApi;
-import android.app.Activity;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.net.Uri;
-import android.os.Build;
-import android.os.Environment;
-import android.os.Handler;
-import android.os.Message;
-import android.provider.MediaStore;
-import android.support.annotation.IdRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.annotation.StringRes;
-import android.support.v4.app.ActivityCompat;
-import android.text.TextUtils;
-import android.widget.ImageView;
-
-import com.flipboard.bottomsheet.BottomSheetLayout;
-import com.flipboard.bottomsheet.commons.ImagePickerSheetView;
-
-import java.io.File;
-import java.io.IOException;
-import java.lang.ref.WeakReference;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-
-/**
- * <pre>
- *     sinlov
- *
- *     /\__/\
- *    /`    '\
- *  ≈≈≈ 0  0 ≈≈≈ Hello world!
- *    \  --  /
- *   /        \
- *  /          \
- * |            |
- *  \  ||  ||  /
- *   \_oo__oo_/≡≡≡≡≡≡≡≡o
- *
- * </pre>
- * Created by sinlov on 17/3/30.
- */
-public abstract class PicBottomSheetActivity extends BaseCompatActivity {
-
-    private static final int REQUEST_STORAGE = 9525;
-    private static final int REQUEST_IMAGE_CAPTURE = REQUEST_STORAGE + 1;
-    private static final int REQUEST_LOAD_IMAGE = REQUEST_IMAGE_CAPTURE + 1;
-
-    private static int what;
-    protected static PicBottomSheetHandler picBottomSheetHandler;
-
-    protected BottomSheetLayout bottomSheetLayout;
-    private Uri callBackImageUri = null;
-    private String chooseTitleString;
-
-//    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
-//    @Override
-//    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
-//        super.onCreate(savedInstanceState, persistentState);
-//    }
-
-    protected void initPicBottomSheetHandler() {
-        picBottomSheetHandler = new PicBottomSheetHandler(this);
-    }
-
-    protected void initBottomSheetLayoutByID(@IdRes int bottomSheetID, @StringRes int titleStringID) {
-        bottomSheetLayout = findViewById(bottomSheetID);
-        chooseTitleString = getString(titleStringID);
-        if (bottomSheetLayout != null || !TextUtils.isEmpty(chooseTitleString)) {
-            bottomSheetLayout.setPeekOnDismiss(true);
-        } else {
-            throw new IllegalArgumentException("in this activity you are not use right ID" +
-                    " at setting initBottomSheetLayoutByID(id)!");
-        }
-    }
-
-    protected abstract boolean showSheetImageView(ImageView imageView, Uri imageUri, int size);
-
-    protected abstract void callBackSelectedImageUriByBottomSheet(Uri selectedImageUri);
-
-
-    /**
-     * You can send message for {@link #safeHandleCallBack(WeakReference, int, Object)}
-     *
-     * @param what int
-     * @param obj  object
-     */
-    protected void sendSafeHandle(int what, Object obj) {
-        setInstanceWhat(what);
-        picBottomSheetHandler.obtainMessage(what, obj).sendToTarget();
-    }
-
-    /**
-     * you can use this tCallBack to do safe handler things by method {@link #sendSafeHandle(int, Object)}
-     *
-     * @param wrAct WeakReference
-     * @param what  int
-     * @param obj   object
-     */
-    public abstract void safeHandleCallBack(WeakReference<PicBottomSheetActivity> wrAct, int what, Object obj);
-
-    protected boolean callSheetImageViewPop() {
-        boolean needsPermission = checkNeedsPermission();
-        if (needsPermission) {
-            requestStoragePermission();
-        } else {
-            showSheetView();
-        }
-        return needsPermission;
-    }
-
-    protected static void setWhat(int what) {
-        PicBottomSheetActivity.what = what;
-    }
-
-
-    public static class PicBottomSheetHandler extends Handler {
-
-        private static WeakReference<PicBottomSheetActivity> wrActivity;
-
-        /**
-         * set target Activity to Weak reference and the customize handler be recycle timely.
-         *
-         * @param wrActivity WeakActivity
-         */
-        public PicBottomSheetHandler(PicBottomSheetActivity wrActivity) {
-            PicBottomSheetHandler.wrActivity = new WeakReference<PicBottomSheetActivity>(wrActivity);
-        }
-
-        public WeakReference<PicBottomSheetActivity> get() {
-            return wrActivity;
-        }
-
-        @Override
-        public void handleMessage(Message msg) {
-            super.handleMessage(msg);
-            PicBottomSheetActivity ba = wrActivity.get();
-            Object obj = msg.obj;
-            if (null != ba && null != obj) {
-                ba.safeHandleCallBack(wrActivity, what, obj);
-            }
-        }
-    }
-
-    private void setInstanceWhat(int what) {
-        setWhat(what);
-    }
-
-
-    private boolean checkNeedsPermission() {
-        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN && ActivityCompat.checkSelfPermission(PicBottomSheetActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED;
-    }
-
-    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
-    private void requestStoragePermission() {
-        if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
-            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_STORAGE);
-        } else {
-            // Eh, prompt anyway
-            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_STORAGE);
-        }
-    }
-
-    @TargetApi(Build.VERSION_CODES.M)
-    @Override
-    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
-        if (requestCode == REQUEST_STORAGE) {
-            if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
-                showSheetView();
-            } else {
-                // Permission denied
-                showToast("Sheet is useless without access to external storage : ");
-            }
-        } else {
-            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
-        }
-    }
-
-    /**
-     * Show an {@link ImagePickerSheetView}
-     */
-    private void showSheetView() {
-        ImagePickerSheetView sheetView = new ImagePickerSheetView.Builder(this)
-                .setMaxItems(30)
-                .setShowCameraOption(createCameraIntent() != null)
-                .setShowPickerOption(createPickIntent() != null)
-                .setImageProvider(new ImagePickerSheetView.ImageProvider() {
-                    @Override
-                    public void onProvideImage(ImageView imageView, Uri imageUri, int size) {
-                        boolean isSetting = showSheetImageView(imageView, imageUri, size);
-                        if (!isSetting) {
-                            throw new IllegalArgumentException("you are not use showSheetImageView() and return true!");
-                        }
-                    }
-                })
-                .setOnTileSelectedListener(new ImagePickerSheetView.OnTileSelectedListener() {
-                    @Override
-                    public void onTileSelected(ImagePickerSheetView.ImagePickerTile selectedTile) {
-                        bottomSheetLayout.dismissSheet();
-                        if (selectedTile.isCameraTile()) {
-                            dispatchTakePictureIntent();
-                        } else if (selectedTile.isPickerTile()) {
-                            startActivityForResult(createPickIntent(), REQUEST_LOAD_IMAGE);
-                        } else if (selectedTile.isImageTile()) {
-                            callBackSelectedImageUriByBottomSheet(selectedTile.getImageUri());
-                        } else {
-                            genericError();
-                        }
-                    }
-                })
-                .setTitle(chooseTitleString)
-                .create();
-        if (bottomSheetLayout != null) {
-            bottomSheetLayout.showWithSheetView(sheetView);
-        } else {
-            throw new IllegalArgumentException("in this activity you are not setting initBottomSheetLayoutByID(id) at Layout!");
-        }
-    }
-
-    /**
-     * For images captured from the camera, we need to create a File first to tell the camera
-     * where to store the image.
-     *
-     * @return the File created for the image to be store under.
-     */
-    private File createImageFile() throws IOException {
-        // Create an image file name
-        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
-        String imageFileName = "JPEG_" + timeStamp + "_";
-        File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
-        File imageFile = File.createTempFile(
-                imageFileName,  /* prefix */
-                ".jpg",         /* suffix */
-                storageDir      /* directory */
-        );
-
-        // Save a file: path for use with ACTION_VIEW intents
-        callBackImageUri = Uri.fromFile(imageFile);
-        return imageFile;
-    }
-
-    /**
-     * This checks to see if there is a suitable activity to handle the `ACTION_PICK` intent
-     * and returns it if found. {@link Intent#ACTION_PICK} is for picking an image from an external app.
-     *
-     * @return A prepared intent if found.
-     */
-    @Nullable
-    private Intent createPickIntent() {
-        Intent picImageIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
-        if (picImageIntent.resolveActivity(getPackageManager()) != null) {
-            return picImageIntent;
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * This checks to see if there is a suitable activity to handle the {@link MediaStore#ACTION_IMAGE_CAPTURE}
-     * intent and returns it if found. {@link MediaStore#ACTION_IMAGE_CAPTURE} is for letting another app take
-     * a picture from the camera and store it in a file that we specify.
-     *
-     * @return A prepared intent if found.
-     */
-    @Nullable
-    private Intent createCameraIntent() {
-        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
-        if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
-            return takePictureIntent;
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * This utility function combines the camera intent creation and image file creation, and
-     * ultimately fires the intent.
-     *
-     * @see {@link #createCameraIntent()}
-     * @see {@link #createImageFile()}
-     */
-    private void dispatchTakePictureIntent() {
-        Intent takePictureIntent = createCameraIntent();
-        // Ensure that there's a camera activity to handle the intent
-        if (takePictureIntent != null) {
-            // Create the File where the photo should go
-            try {
-                File imageFile = createImageFile();
-                takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imageFile));
-                startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
-            } catch (IOException e) {
-                // Error occurred while creating the File
-                genericError("Could not create imageFile for camera");
-            }
-        }
-    }
-
-    @Override
-    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
-        super.onActivityResult(requestCode, resultCode, data);
-        if (resultCode == Activity.RESULT_OK) {
-            Uri selectedImage = null;
-            if (requestCode == REQUEST_LOAD_IMAGE && data != null) {
-                selectedImage = data.getData();
-                if (selectedImage == null) {
-                    genericError();
-                }
-            } else if (requestCode == REQUEST_IMAGE_CAPTURE) {
-                // Do something with imagePath
-                selectedImage = callBackImageUri;
-            }
-
-            if (selectedImage != null) {
-                callBackSelectedImageUriByBottomSheet(selectedImage);
-            } else {
-                genericError();
-            }
-        }
-    }
-
-    private void genericError() {
-        genericError(null);
-    }
-
-    private void genericError(String message) {
-        showToast(message == null ? "Something went wrong." : message);
-    }
-}

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

@@ -41,4 +41,6 @@ public enum EventTypes {
     REFRESH_MING_DONG,//刷新界面
     REFRESH_MING_DONG,//刷新界面
 
 
     REFRESH_XIAOMI_GAME_LIST,//刷新界面
     REFRESH_XIAOMI_GAME_LIST,//刷新界面
+    FGT_SHEEP_REFRESH_H , //刷新fgtSmallSheep高度
+    FGT_SHEEP_SHOW_NEW_USER_HONG_BAO , //显示红包
 }
 }

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

@@ -0,0 +1,276 @@
+package com.kfzs.duanduan.fragment;
+
+import android.annotation.SuppressLint;
+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.kfzs.duanduan.ActMain;
+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();
+        if(activity instanceof ActMain){
+            TitleBarUtils.getInstance()
+                    .setTitle(mContentView, "邀请赚钱")
+                    .setTitleListen(mContentView,0,null);
+        }else {
+            TitleBarUtils.getInstance()
+                    .setTitle(mContentView, "邀请赚钱")
+                    .setTitleFinish(mContentView, activity);
+        }
+        unbinder = ButterKnife.bind(this, mContentView);
+
+
+        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/yaoqingzq_bg.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();
+    }
+
+    @SuppressLint("ClickableViewAccessibility")
+    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;
+        }
+    }
+}

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

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

@@ -316,8 +316,8 @@ public class FgtFindChild extends BaseCompatFragment {
             ListUtil.addAll(list, newList);
             ListUtil.addAll(list, newList);
             if(!list.isEmpty())
             if(!list.isEmpty())
                 list.add(null);//底部部分----我是有底线的
                 list.add(null);//底部部分----我是有底线的
-            notifyDataSetChanged();
         }
         }
+        notifyDataSetChanged();
     }
     }
 
 
     private void notifyDataSetChanged(){
     private void notifyDataSetChanged(){
@@ -467,5 +467,6 @@ public class FgtFindChild extends BaseCompatFragment {
     public void onDestroy() {
     public void onDestroy() {
         super.onDestroy();
         super.onDestroy();
         EventBus.getDefault().unregister(this);
         EventBus.getDefault().unregister(this);
+        Aria.download(this).unRegister();
     }
     }
 }
 }

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

@@ -1,6 +1,7 @@
 package com.kfzs.duanduan.fragment;
 package com.kfzs.duanduan.fragment;
 
 
 import android.app.Activity;
 import android.app.Activity;
+import android.support.v4.app.Fragment;
 import android.view.View;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewGroup;
 import android.widget.LinearLayout;
 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.TimeUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.view.activity.AskGetMoneyAct;
 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.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.BaseFragment;
 import com.sheep.jiuyan.samllsheep.base.BaseFragment;
@@ -42,11 +44,11 @@ public class FgtFriendExtractPage extends BaseFragment {
 
 
     private List<Friend> list = new ArrayList<>();
     private List<Friend> list = new ArrayList<>();
 
 
-    private Activity activity;
+    private Fragment activity;
     @Override
     @Override
     public void onViewCreated() {
     public void onViewCreated() {
         ButterKnife.bind(this, mView);
         ButterKnife.bind(this, mView);
-        activity = getActivity();
+        activity = getParentFragment();
         initData();
         initData();
     }
     }
 
 
@@ -68,11 +70,11 @@ public class FgtFriendExtractPage extends BaseFragment {
                 TextView friend_item_id = (TextView) view.getChildAt(j++);
                 TextView friend_item_id = (TextView) view.getChildAt(j++);
                 friend_item_id.setText(friend.getInvitation_code());
                 friend_item_id.setText(friend.getInvitation_code());
                 TextView friend_item_name = (TextView) view.getChildAt(j++);
                 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++);
                 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);
                 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 {
             } else {
                 line.setVisibility(View.INVISIBLE);
                 line.setVisibility(View.INVISIBLE);
                 view.setVisibility(View.INVISIBLE);
                 view.setVisibility(View.INVISIBLE);
@@ -96,11 +98,11 @@ public class FgtFriendExtractPage extends BaseFragment {
                     public void onNext(BaseMessage baseMessage) {
                     public void onNext(BaseMessage baseMessage) {
                         List<Friend> friendList = baseMessage.getDatas(Friend.class);
                         List<Friend> friendList = baseMessage.getDatas(Friend.class);
                         if(friendList == null) {
                         if(friendList == null) {
-                            baseMessage.setMsg("您还没有邀请到好友");
+//                            baseMessage.setMsg("您还没有邀请到好友");
                             onError(baseMessage);
                             onError(baseMessage);
                         } else {
                         } 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);
                             list.addAll(friendList);
                             notifyDataSetChanged();
                             notifyDataSetChanged();
@@ -110,7 +112,6 @@ public class FgtFriendExtractPage extends BaseFragment {
 
 
                     @Override
                     @Override
                     public void onError(BaseMessage baseMessage) {
                     public void onError(BaseMessage baseMessage) {
-                        G.showToast(baseMessage);
                         CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty(), true);
                         CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty(), true);
                         isLoadding = false;
                         isLoadding = false;
                     }
                     }

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

@@ -1,27 +1,42 @@
 package com.kfzs.duanduan.fragment;
 package com.kfzs.duanduan.fragment;
 
 
+import android.app.ActionBar;
 import android.app.Activity;
 import android.app.Activity;
 import android.graphics.Color;
 import android.graphics.Color;
+import android.graphics.drawable.BitmapDrawable;
 import android.os.Bundle;
 import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
 import android.text.TextUtils;
 import android.text.TextUtils;
+import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.ImageView;
+import android.widget.PopupWindow;
+import android.widget.RelativeLayout;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
+import com.alibaba.fastjson.JSONObject;
+import com.google.gson.Gson;
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.kfzs.duanduan.utils.ApkUtils;
+import com.sheep.gamegroup.model.api.RedPackageMoney;
 import com.sheep.gamegroup.model.entity.AgentEntity;
 import com.sheep.gamegroup.model.entity.AgentEntity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.entity.UserEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.SysAppUtil;
+import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.view.activity.PersonalCenterAct;
 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.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -35,12 +50,16 @@ import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.ButterKnife;
 import butterknife.OnClick;
 import butterknife.OnClick;
 import butterknife.Unbinder;
 import butterknife.Unbinder;
+import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.functions.Action1;
+import rx.schedulers.Schedulers;
 
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_AGENT;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_AGENT;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_FAQ;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_FAQ;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_SHARE;
 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.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;
     TextView version_item_tv;
     @BindView(R.id.personal_center_version_new)
     @BindView(R.id.personal_center_version_new)
     View personal_center_version_new;
     View personal_center_version_new;
+    @BindView(R.id.iv_redpackage)
+    ImageView ivRedpackage;
     Unbinder unbinder;
     Unbinder unbinder;
 
 
-    private UserEntity userEntity;
+    public UserEntity userEntity;
     private String faqUrl;
     private String faqUrl;
     private String agentUrl;
     private String agentUrl;
 
 
     private Activity activity;
     private Activity activity;
+
     @Override
     @Override
     protected void initView(Bundle savedInstanceState) {
     protected void initView(Bundle savedInstanceState) {
         setContentView(R.layout.fgt_personalcenter_layout);
         setContentView(R.layout.fgt_personalcenter_layout);
         activity = getActivity();
         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) {
         if (activity instanceof PersonalCenterAct) {
             mContentView.findViewById(R.id.txt_baseactivity_title).setVisibility(View.VISIBLE);
             mContentView.findViewById(R.id.txt_baseactivity_title).setVisibility(View.VISIBLE);
             mContentView.findViewById(R.id.img_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>() {
         CommonUtil.getInstance().getAgencyState(activity, new Action1<BaseMessage>() {
             @Override
             @Override
             public void call(BaseMessage baseMessage) {
             public void call(BaseMessage baseMessage) {
-                try{
-                    if (baseMessage != null){
+                try {
+                    if (baseMessage != null) {
                         AgentEntity agentEntity = baseMessage.getData(AgentEntity.class);
                         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_line.setVisibility(View.VISIBLE);
                             proxy_service_layout.setVisibility(View.VISIBLE);
                             proxy_service_layout.setVisibility(View.VISIBLE);
                         }
                         }
 
 
                     }
                     }
-                }catch (Exception e){
+                } catch (Exception e) {
                     e.printStackTrace();
                     e.printStackTrace();
                 }
                 }
             }
             }
@@ -145,11 +168,137 @@ public class FgtPersonalCenter extends BaseCompatFragment {
         // TODO: inflate a fragment view
         // TODO: inflate a fragment view
         View rootView = super.onCreateView(inflater, container, savedInstanceState);
         View rootView = super.onCreateView(inflater, container, savedInstanceState);
         unbinder = ButterKnife.bind(this, rootView);
         unbinder = ButterKnife.bind(this, rootView);
-
         return rootView;
         return rootView;
     }
     }
 
 
     @Override
     @Override
+    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+        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(activity, getView(), baseMessage);
+                        if (popupWindow.isShowing()) {
+                            popupWindow.dismiss();
+                        }
+
+                    }
+                });
+    }
+
+
+    /**
+     * 邀请成功后在个人资料显示领红包弹窗
+     *
+     * @param mActivity 当前Activity
+     */
+    public void showRedPackageAfterInvitation(final Activity mActivity, View viewAnchor, BaseMessage baseMessage) {
+        if(viewAnchor == null){
+            return;
+        }
+        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);
+        try {
+            popupWindow.showAtLocation(viewAnchor, Gravity.CENTER, 0, 0);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        popupWindow.setOnDismissListener(new ViewUtil.PopDismissListener(mActivity));
+        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() {
     public void onDestroyView() {
         super.onDestroyView();
         super.onDestroyView();
         unbinder.unbind();
         unbinder.unbind();
@@ -158,11 +307,20 @@ public class FgtPersonalCenter extends BaseCompatFragment {
     @OnClick({R.id.icon_img_iv, R.id.account_detail_layout, R.id.personalcenter_price_layout,
     @OnClick({R.id.icon_img_iv, R.id.account_detail_layout, R.id.personalcenter_price_layout,
             R.id.account_task_layout, R.id.proxy_service_layout, R.id.feedbook_layout,
             R.id.account_task_layout, R.id.proxy_service_layout, R.id.feedbook_layout,
             R.id.recommend_friend_layout, R.id.faq_layout, R.id.reservation_layout, R.id.version_layout,
             R.id.recommend_friend_layout, R.id.faq_layout, R.id.reservation_layout, R.id.version_layout,
-            R.id.change_layout, R.id.order_layout, R.id.proxy_game_account_layout
+            R.id.change_layout, R.id.order_layout, R.id.proxy_game_account_layout,
+            R.id.iv_redpackage
     })
     })
     public void onViewClicked(View view) {
     public void onViewClicked(View view) {
         switch (view.getId()) {
         switch (view.getId()) {
+            case R.id.iv_redpackage://邀请成功后有可领红包
+                ViewUtil.changeRedPackage(getActivity(), getView(), FgtPersonalCenter.this);
+                break;
             case R.id.icon_img_iv://图片
             case R.id.icon_img_iv://图片
+                if (TestUtil.isTest()) {
+                    TestUtil.test(activity);
+                } else
+                    Jump2View.getInstance().goPersionInfo(activity, null);
+                break;
             case R.id.account_detail_layout://个人资料
             case R.id.account_detail_layout://个人资料
                 Jump2View.getInstance().goPersionInfo(activity, null);
                 Jump2View.getInstance().goPersionInfo(activity, null);
                 break;
                 break;
@@ -170,10 +328,10 @@ public class FgtPersonalCenter extends BaseCompatFragment {
                 Jump2View.getInstance().goMyMoney(activity, null);
                 Jump2View.getInstance().goMyMoney(activity, null);
                 break;
                 break;
             case R.id.account_task_layout://任务记录
             case R.id.account_task_layout://任务记录
-                Jump2View.getInstance().goTaskList2View(activity, null);
+                Jump2View.getInstance().goAuditTastList(activity, null);
                 break;
                 break;
             case R.id.proxy_service_layout://代理
             case R.id.proxy_service_layout://代理
-                CommonUtil.getInstance().initUrlConfigByNet("agenturl", new Action1<String>(){
+                CommonUtil.getInstance().initUrlConfigByNet("agenturl", new Action1<String>() {
                     @Override
                     @Override
                     public void call(String url) {
                     public void call(String url) {
                         agentUrl = url;
                         agentUrl = url;
@@ -186,7 +344,7 @@ public class FgtPersonalCenter extends BaseCompatFragment {
                 USER_AGENT.onEvent();
                 USER_AGENT.onEvent();
                 break;
                 break;
             case R.id.faq_layout://FAQ帮助
             case R.id.faq_layout://FAQ帮助
-                CommonUtil.getInstance().initUrlConfigByNet("faqurl", new Action1<String>(){
+                CommonUtil.getInstance().initUrlConfigByNet("faqurl", new Action1<String>() {
                     @Override
                     @Override
                     public void call(String url) {
                     public void call(String url) {
                         faqUrl = url;
                         faqUrl = url;
@@ -206,7 +364,7 @@ public class FgtPersonalCenter extends BaseCompatFragment {
                 break;
                 break;
             case R.id.recommend_friend_layout://推荐给好友
             case R.id.recommend_friend_layout://推荐给好友
                 if (userEntity != null) {
                 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();
                 USER_SHARE.onEvent();
                 break;
                 break;

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

@@ -0,0 +1,287 @@
+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.AdapterView;
+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.Arrays;
+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(";");
+                    final 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;
+                            }
+                        });
+                        home_list_gridview_gv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+                            @Override
+                            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                                try{
+                                    PhotoPreview.builder()
+                                            .setPhotos( new ArrayList<>(Arrays.asList(images1)))
+                                            .setCurrentItem(position)
+                                            .setShowDeleteButton(false)
+                                            .start( activity, 101);
+
+                                }catch (Exception e){
+                                    e.printStackTrace();
+                                }
+                            }
+                        });
+                    }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{
+                                    PhotoPreview.builder()
+                                            .setPhotos( new ArrayList<>(Arrays.asList(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();
+    }
+}

+ 343 - 29
app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java

@@ -1,40 +1,53 @@
 package com.kfzs.duanduan.fragment;
 package com.kfzs.duanduan.fragment;
 
 
+import android.annotation.SuppressLint;
+import android.app.ActionBar;
 import android.app.Activity;
 import android.app.Activity;
 import android.content.Context;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.DialogInterface;
 import android.graphics.Color;
 import android.graphics.Color;
+import android.graphics.drawable.BitmapDrawable;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Looper;
 import android.os.Message;
 import android.os.Message;
+import android.support.annotation.RequiresApi;
+import android.support.design.widget.TabLayout;
+import android.support.v4.view.ViewPager;
 import android.support.v4.widget.NestedScrollView;
 import android.support.v4.widget.NestedScrollView;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.app.AlertDialog;
 import android.support.v7.app.AlertDialog;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.text.TextUtils;
+import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewGroup;
+import android.widget.AdapterView;
 import android.widget.ImageView;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.LinearLayout;
+import android.widget.PopupWindow;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
 import com.bumptech.glide.request.RequestOptions;
+import com.google.gson.Gson;
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.react.ConfigUtil;
 import com.kfzs.duanduan.react.ConfigUtil;
 import com.kfzs.duanduan.react.SharedPreferences;
 import com.kfzs.duanduan.react.SharedPreferences;
 import com.kfzs.duanduan.utils.NumberFormatUtils;
 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.components.DaggerSmallSheepComponent;
 import com.sheep.gamegroup.di.modules.SmallSheepModule;
 import com.sheep.gamegroup.di.modules.SmallSheepModule;
 import com.sheep.gamegroup.di.modules.TryMakeMoneyModule;
 import com.sheep.gamegroup.di.modules.TryMakeMoneyModule;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.BulletinEnty;
 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.Ext;
 import com.sheep.gamegroup.model.entity.HomeListEntity;
 import com.sheep.gamegroup.model.entity.HomeListEntity;
 import com.sheep.gamegroup.model.entity.MoreDataEntity;
 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.entity.UserEntity;
 import com.sheep.gamegroup.model.util.AutoTaskListUtil;
 import com.sheep.gamegroup.model.util.AutoTaskListUtil;
 import com.sheep.gamegroup.model.util.EntityUtils;
 import com.sheep.gamegroup.model.util.EntityUtils;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.presenter.SmallSheepContract;
 import com.sheep.gamegroup.presenter.SmallSheepContract;
 import com.sheep.gamegroup.presenter.SmallSheepPresenter;
 import com.sheep.gamegroup.presenter.SmallSheepPresenter;
 import com.sheep.gamegroup.presenter.TryMakeMoneyContract;
 import com.sheep.gamegroup.presenter.TryMakeMoneyContract;
@@ -56,6 +70,7 @@ import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.MyGridview;
 import com.sheep.gamegroup.util.MyGridview;
 import com.sheep.gamegroup.util.MyListview;
 import com.sheep.gamegroup.util.MyListview;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.SysAppUtil;
@@ -65,11 +80,14 @@ import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.view.activity.NotificationsUtils;
 import com.sheep.gamegroup.view.activity.NotificationsUtils;
 import com.sheep.gamegroup.view.adapter.AdpHomeListGrideview;
 import com.sheep.gamegroup.view.adapter.AdpHomeListGrideview;
 import com.sheep.gamegroup.view.adapter.AdpHomeListListview;
 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.adapter.TryMakeMoneyAdp;
 import com.sheep.gamegroup.view.dialog.DialogNewbieTaskList;
 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.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sunfusheng.marqueeview.MarqueeView;
 import com.sunfusheng.marqueeview.MarqueeView;
 import com.youth.banner.Banner;
 import com.youth.banner.Banner;
 import com.youth.banner.BannerConfig;
 import com.youth.banner.BannerConfig;
@@ -92,9 +110,12 @@ import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.ButterKnife;
 import butterknife.OnClick;
 import butterknife.OnClick;
 import butterknife.Unbinder;
 import butterknife.Unbinder;
+import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.functions.Action1;
+import rx.schedulers.Schedulers;
 
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.NEWBIE_TASK;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.NEWBIE_TASK;
+import static com.sheep.gamegroup.util.ViewUtil.backgroundAlpha;
 
 
 public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContract.View, TryMakeMoneyContract.View {
 public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContract.View, TryMakeMoneyContract.View {
 
 
@@ -146,6 +167,25 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     View check_net_ll;
     View check_net_ll;
     @BindView(R.id.bg_newbie_task)
     @BindView(R.id.bg_newbie_task)
     ImageView bg_newbie_task;
     ImageView bg_newbie_task;
+    @BindView(R.id.view_rob_duty)
+    View viewRobDuty;
+    @BindView(R.id.iv_rob_duty)
+    ImageView ivDuty;
+    @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;
+    @BindView(R.id.bottom_line_text)
+    TextView bottom_line_text;
+
 
 
     @Inject
     @Inject
     SmallSheepPresenter pagePresenter;
     SmallSheepPresenter pagePresenter;
@@ -168,10 +208,12 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     private List<HomeListEntity> homeListEntitysListview = new ArrayList<>();
     private List<HomeListEntity> homeListEntitysListview = new ArrayList<>();
     private AdpHomeListGrideview adpHomeListGrideview;
     private AdpHomeListGrideview adpHomeListGrideview;
     private AdpHomeListListview adpHomeListListview;
     private AdpHomeListListview adpHomeListListview;
+    private TaskReleaseEty taskEty;
+    private AdpTryMakemoney adpViewPagerDetail;
 
 
     private static final int LIST_COUNT = 2;//tryMakeMoneyAdp 总共有2条数据
     private static final int LIST_COUNT = 2;//tryMakeMoneyAdp 总共有2条数据
     private static final RecyleObj NULL = RecyleObj.make(RecyleType.NONE, null);//空数据
     private static final RecyleObj NULL = RecyleObj.make(RecyleType.NONE, null);//空数据
-    Handler mHanderl = new Handler(Looper.getMainLooper()) {
+    public Handler mHanderl = new Handler(Looper.getMainLooper()) {
         @Override
         @Override
         public void handleMessage(Message msg) {
         public void handleMessage(Message msg) {
             super.handleMessage(msg);
             super.handleMessage(msg);
@@ -182,6 +224,8 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                 case 1:
                 case 1:
                     tryMakeMoneyAdp.clear();
                     tryMakeMoneyAdp.clear();
                     if(!ListUtil.isEmpty(allTaskAcceptedTaskList)){
                     if(!ListUtil.isEmpty(allTaskAcceptedTaskList)){
+                        if(recyclerview_line != null)
+                            recyclerview_line.setVisibility(View.VISIBLE);
                         tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, allTaskAcceptedTaskList));
                         tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, allTaskAcceptedTaskList));
                     }
                     }
                     if(!ListUtil.isEmpty(releaseEtyLists)) {
                     if(!ListUtil.isEmpty(releaseEtyLists)) {
@@ -190,11 +234,56 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                     tryMakeMoneyAdp.notifyDataSetChanged();
                     tryMakeMoneyAdp.notifyDataSetChanged();
                     checkAndInitView();
                     checkAndInitView();
                     break;
                     break;
+                case 2:
+                    FgtTryMakeMoney item = (FgtTryMakeMoney) adpViewPagerDetail.getItem(curPosition);
+                    if(mViewPager == null || item == null){
+                        return;
+                    }
+                    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));
+                    mViewPager.setLayoutParams(params);
+                    break;
+                case 7:
+                    isShowRedPackages(activity);
+                    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 (userEntity == null) {
+            userEntity = DataUtil.getInstance().getUserEntity();
+        }
+        if(userEntity == null){
+            return;
+        }
+        if (SpUtils.getFirst("first"+userEntity.getId())) {
+            return;
+        }
+        SpUtils.saveFirst("first"+userEntity.getId(), true);
+        if (((userEntity.getNewbie_task_status() & 16) == 0) && userEntity.getIs_new() == 1) {
+            showRedPackage(getContext());
+        }
+    }
+
     @Override
     @Override
     protected void initView(Bundle savedInstanceState) {
     protected void initView(Bundle savedInstanceState) {
         setContentView(R.layout.homepage_act_layout);
         setContentView(R.layout.homepage_act_layout);
@@ -211,6 +300,8 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         }
         }
         //每次进入主页都刷新一下url配置信息
         //每次进入主页都刷新一下url配置信息
         CommonUtil.getInstance().initUrlConfigByNet(null, null);
         CommonUtil.getInstance().initUrlConfigByNet(null, null);
+        isShowRedPackage();
+        bottom_line_text.setText("我是有底线的,双占我回到顶部");
     }
     }
 
 
 
 
@@ -227,8 +318,41 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         LinearLayout.LayoutParams bannerLayoutParams = (LinearLayout.LayoutParams) banner.getLayoutParams();
         LinearLayout.LayoutParams bannerLayoutParams = (LinearLayout.LayoutParams) banner.getLayoutParams();
         bannerLayoutParams.height = G.WIDTH * 25 / 72;
         bannerLayoutParams.height = G.WIDTH * 25 / 72;
         banner.setLayoutParams(bannerLayoutParams);
         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() {
     private void loadUserInfo() {
 
 
@@ -246,7 +370,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 
 
     }
     }
 
 
-
+    @SuppressLint("ClickableViewAccessibility")
     public void initListener() {
     public void initListener() {
         scrollView.setOnTouchListener(new View.OnTouchListener() {
         scrollView.setOnTouchListener(new View.OnTouchListener() {
             @Override
             @Override
@@ -278,6 +402,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             }
             }
         });
         });
 
 
+
         refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
         refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
             @Override
             @Override
             public void onRefresh() {
             public void onRefresh() {
@@ -311,11 +436,11 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             loadUserInfo();
             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 +480,20 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             boolean isShowQB = false;
             boolean isShowQB = false;
             boolean isShowMd = false;
             boolean isShowMd = false;
             for (int i = 0; i < homeListEntitys.size(); i++) {
             for (int i = 0; i < homeListEntitys.size(); i++) {
-                if (i < 4) {
+                /*if (i < 4) {
                     homeListEntitysGridview.add(homeListEntitys.get(i));
                     homeListEntitysGridview.add(homeListEntitys.get(i));
                 } else {
                 } else {
                     homeListEntitysListview.add(homeListEntitys.get(i));
                     homeListEntitysListview.add(homeListEntitys.get(i));
-                }
+                }*/
+                homeListEntitysGridview.add(homeListEntitys.get(i));
                 if (homeListEntitys.get(i).getJump().equals("6")) {//6Q币充值
                 if (homeListEntitys.get(i).getJump().equals("6")) {//6Q币充值
                     isShowQB = !isShowQB;
                     isShowQB = !isShowQB;
                 }
                 }
                 if (homeListEntitys.get(i).getJump().equals("14")) {//幂动科技
                 if (homeListEntitys.get(i).getJump().equals("14")) {//幂动科技
                     isShowMd = !isShowMd;
                     isShowMd = !isShowMd;
-                    CommonUtil.getInstance().initMiDong(activity, DataUtil.getInstance().getUserId());
                 }
                 }
             }
             }
+            addNewTask();
             SheepApp.getInstance().setShowQB(isShowQB);
             SheepApp.getInstance().setShowQB(isShowQB);
             SheepApp.getInstance().setShowMidong(isShowMd);
             SheepApp.getInstance().setShowMidong(isShowMd);
             adpHomeListGrideview.notifyDataSetChanged();
             adpHomeListGrideview.notifyDataSetChanged();
@@ -413,8 +539,35 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         pagePresenter.slideshow(null);//轮播
         pagePresenter.slideshow(null);//轮播
         pagePresenter.homeList();//首页list
         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
      * recyclerview
      */
      */
@@ -436,6 +589,23 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         adpHomeListGrideview = new AdpHomeListGrideview(homeListEntitysGridview, activity);
         adpHomeListGrideview = new AdpHomeListGrideview(homeListEntitysGridview, activity);
         home_list_gridview_listview.setAdapter(adpHomeListListview);
         home_list_gridview_listview.setAdapter(adpHomeListListview);
         home_list_gridview_gv.setAdapter(adpHomeListGrideview);
         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) {
+                HomeListEntity homeListEntity= ListUtil.getItem(homeListEntitysGridview, position);
+                if(homeListEntity == null){
+                    return;
+                }
+                UMConfigUtils.IdEvent.HOME_LIST.commit(homeListEntity.getId());
+                if("-2".equals(homeListEntity.getJump())){
+                    setValueList(!homeListEntity.isSelect());
+                }else {
+                    CommonUtil.getInstance()
+                            .goWhere(activity, homeListEntity, "首页");
+                }
+            }
+        });
     }
     }
 
 
     private void refreshTaskList() {
     private void refreshTaskList() {
@@ -452,12 +622,13 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                                 0,
                                 0,
                                  "-1",
                                  "-1",
                                 3));
                                 3));
-        tryMakeMoneyPresenter.releaseTask(parameEty);
+//        tryMakeMoneyPresenter.releaseTask(parameEty);
     }
     }
 
 
 
 
-    @OnClick({R.id.recharge, R.id.withdrawal,
-            R.id.newbie_task, R.id.icon_img_iv, R.id.user_layout
+    @OnClick({R.id.recharge, R.id.withdrawal, R.id.view_rob_duty,
+            R.id.newbie_task, R.id.icon_img_iv, R.id.user_layout,
+            R.id.bottom_line
     })
     })
     public void onViewClicked(View view) {
     public void onViewClicked(View view) {
         switch (view.getId()) {
         switch (view.getId()) {
@@ -480,6 +651,12 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             case R.id.recharge://充值
             case R.id.recharge://充值
                 Jump2View.getInstance().goRechargeAct(activity, "首页");
                 Jump2View.getInstance().goRechargeAct(activity, "首页");
                 break;
                 break;
+            case R.id.view_rob_duty://抢任务弹框
+                ViewUtil.showRobDutyDialog(getActivity(), getView());
+                break;
+            case R.id.bottom_line://我是有底线的,双占我回到顶部
+                scrollView.fullScroll(NestedScrollView.FOCUS_UP);
+                break;
         }
         }
     }
     }
 
 
@@ -518,14 +695,18 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         G.showToast("取消任务成功");
         G.showToast("取消任务成功");
         CommonUtil.getInstance().setTAskEnty(null);
         CommonUtil.getInstance().setTAskEnty(null);
         refreshTaskList();
         refreshTaskList();
+        FgtTryMakeMoney item = (FgtTryMakeMoney) adpViewPagerDetail.getItem(0);//因为放弃了任务,所以刷新可以接收的任务列表
+        item.refreshData();
     }
     }
 
 
     @Override
     @Override
     public void giveUpTaskFailView(Object o) {
     public void giveUpTaskFailView(Object o) {
 
 
     }
     }
+
     private int is_succession = 3;//所有
     private int is_succession = 3;//所有
     private int show_game_task = 1;//包含游戏任务
     private int show_game_task = 1;//包含游戏任务
+
     @Override
     @Override
     public void returnTaskTaskUpdataView(Object object) {
     public void returnTaskTaskUpdataView(Object object) {
         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.new_run_task(is_succession, show_game_task));
         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.new_run_task(is_succession, show_game_task));
@@ -533,8 +714,10 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             BaseMessage baseMessage = (BaseMessage) object;
             BaseMessage baseMessage = (BaseMessage) object;
             allTaskAcceptedTaskList = baseMessage.getDataList(TaskAcceptedEty.class);
             allTaskAcceptedTaskList = baseMessage.getDataList(TaskAcceptedEty.class);
             AutoTaskListUtil.getInstance().loadList(allTaskAcceptedTaskList);
             AutoTaskListUtil.getInstance().loadList(allTaskAcceptedTaskList);
-            mHanderl.sendEmptyMessage(1);
+        } else {
+            allTaskAcceptedTaskList.clear();
         }
         }
+        mHanderl.sendEmptyMessage(1);
     }
     }
 
 
     @Override
     @Override
@@ -554,6 +737,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             e.printStackTrace();
             e.printStackTrace();
             G.showToast(" 网络错误!");
             G.showToast(" 网络错误!");
         }
         }
+        allTaskAcceptedTaskList.clear();
         mHanderl.sendEmptyMessage(1);
         mHanderl.sendEmptyMessage(1);
     }
     }
 
 
@@ -604,6 +788,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                 banner.setVisibility(View.GONE);
                 banner.setVisibility(View.GONE);
             } else {
             } else {
                 slideshowEtyLists.clear();
                 slideshowEtyLists.clear();
+                slideshowTitleList.clear();
                 for (SlideshowEty slideshowEty : slideshowEtyList) {
                 for (SlideshowEty slideshowEty : slideshowEtyList) {
                     slideshowEty.setObjects(CommonUtil.getInstance().getValue(slideshowEty.getExt()));
                     slideshowEty.setObjects(CommonUtil.getInstance().getValue(slideshowEty.getExt()));
                     slideshowEtyLists.add(slideshowEty);
                     slideshowEtyLists.add(slideshowEty);
@@ -651,19 +836,20 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                 boolean isShowQB = false;
                 boolean isShowQB = false;
                 boolean isShowMd = false;
                 boolean isShowMd = false;
                 for (int i = 0; i < homeListEntitys.size(); i++) {
                 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币充值
                     if (homeListEntitys.get(i).getJump().equals("6")) {//6Q币充值
                         isShowQB = !isShowQB;
                         isShowQB = !isShowQB;
                     }
                     }
                     if (homeListEntitys.get(i).getJump().equals("14")) {//幂动科技
                     if (homeListEntitys.get(i).getJump().equals("14")) {//幂动科技
                         isShowMd = !isShowMd;
                         isShowMd = !isShowMd;
-                        CommonUtil.getInstance().initMiDong(activity, DataUtil.getInstance().getUserId());
                     }
                     }
                 }
                 }
+                addNewTask();
                 SheepApp.getInstance().setShowQB(isShowQB);
                 SheepApp.getInstance().setShowQB(isShowQB);
                 SheepApp.getInstance().setShowMidong(isShowMd);
                 SheepApp.getInstance().setShowMidong(isShowMd);
                 adpHomeListGrideview.notifyDataSetChanged();
                 adpHomeListGrideview.notifyDataSetChanged();
@@ -690,7 +876,9 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         home_list_gridview_layout.setVisibility(View.GONE);
         home_list_gridview_layout.setVisibility(View.GONE);
 
 
     }
     }
+
     private int onResumeCount = 0;
     private int onResumeCount = 0;
+
     @Override
     @Override
     public void onResume() {
     public void onResume() {
         super.onResume();
         super.onResume();
@@ -711,11 +899,9 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         }
         }
         if(DataUtil.getInstance().isTaskListChange(getClass()))//数据变化才刷新
         if(DataUtil.getInstance().isTaskListChange(getClass()))//数据变化才刷新
             refreshTaskList();
             refreshTaskList();
-        if(onResumeCount == 0)//第一次才调用
-            Jump2View.getInstance().tryShowNewbieTask(activity, userEntity, newbie_task);
-        onResumeCount++;
     }
     }
 
 
+
     @Override
     @Override
     public void onPause() {
     public void onPause() {
         super.onPause();
         super.onPause();
@@ -765,6 +951,12 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             case ONFRESH_FGT_FAMLLSHEEP:
             case ONFRESH_FGT_FAMLLSHEEP:
                 mHanderl.sendEmptyMessage(1);
                 mHanderl.sendEmptyMessage(1);
                 break;
                 break;
+            case FGT_SHEEP_REFRESH_H:
+                mHanderl.sendEmptyMessage(2);
+                break;
+            case FGT_SHEEP_SHOW_NEW_USER_HONG_BAO:
+                mHanderl.sendEmptyMessage(7);
+                break;
         }
         }
     }
     }
 
 
@@ -815,6 +1007,8 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     }
     }
 
 
     private void bindBanner() {
     private void bindBanner() {
+        //结束轮播
+        banner.stopAutoPlay();
         banner.setVisibility(View.VISIBLE);
         banner.setVisibility(View.VISIBLE);
         //设置图片加载器
         //设置图片加载器
         banner.setImageLoader(new ImageLoader() {
         banner.setImageLoader(new ImageLoader() {
@@ -940,12 +1134,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
      * 公共
      * 公共
      */
      */
     private void inviteNotice(final List<BulletinEnty> bulletinEntyList) {
     private void inviteNotice(final List<BulletinEnty> bulletinEntyList) {
-        homepageItemNoticeLayout.setVisibility(View.VISIBLE);
-//        List<String> infoList = new ArrayList<>();
-//        for(BulletinEnty bulletinEnty: bulletinEntyList){
-//            infoList.add(bulletinEnty.getContent()+"");
-//        }
-//        homepageItemNoticeMv.startWithList(infoList, R.anim.anim_left_in,R.anim.anim_right_out);
+        homepageItemNoticeLayout.setVisibility(View.GONE);
         homepageItemNoticeMv.removeAllViews();
         homepageItemNoticeMv.removeAllViews();
         for (final BulletinEnty entity : bulletinEntyList) {
         for (final BulletinEnty entity : bulletinEntyList) {
             StringBuilder sb = new StringBuilder();
             StringBuilder sb = new StringBuilder();
@@ -1016,4 +1205,129 @@ 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);
+        try {
+            popupWindow.showAtLocation(viewAnchor, Gravity.CENTER, 0, 0);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        popupWindow.setOnDismissListener(new ViewUtil.PopDismissListener(mActivity));
+        tvMoney.setText("1.8");
+        tvNew.setText("新人红包");
+        tvGetRedPackage.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                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();
+                        }
+                        CommonUtil.getInstance().updateUserInfo(null);
+                    }
+                });
+    }
+    /**
+     * 新手任务
+     */
+    private void addNewTask(){
+
+        if(onResumeCount == 0 && CommonUtil.getInstance().addNewTask(activity,userEntity) && homeListEntitysGridview != null)//第一次才调用
+        {
+            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.setJump("-2");
+            homeListEntity.setSelect(flag);
+            if (flag) {
+                homeListEntity.setTitle("收起模块");
+                homeListEntity.setDesc("收起模块");
+                homeListEntity.setIcon(R.mipmap.homepage_chakangd_click+"");
+            } else {
+                homeListEntity.setTitle("查看更多");
+                homeListEntity.setDesc("查看更多");
+                homeListEntity.setIcon(R.mipmap.homepage_chakangd+"");
+            }
+            homeListEntitysGridview.set(7, homeListEntity);
+        }
+        adpHomeListGrideview.notifyDataSetChanged();
+    }
 }
 }

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

@@ -1,9 +1,16 @@
 package com.kfzs.duanduan.mine;
 package com.kfzs.duanduan.mine;
 
 
+import android.annotation.SuppressLint;
 import android.content.Context;
 import android.content.Context;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentPagerAdapter;
 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.jiuyan.samllsheep.R;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
@@ -47,4 +54,6 @@ public class GiftpackListAdapter extends FragmentPagerAdapter {
     public CharSequence getPageTitle(int position) {
     public CharSequence getPageTitle(int position) {
         return (CharSequence) mTitles.get(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 android.support.v4.app.Fragment;
 
 
 import com.kfzs.duanduan.ActMain;
 import com.kfzs.duanduan.ActMain;
+import com.kfzs.duanduan.fragment.FgtAskgetmoney;
 import com.kfzs.duanduan.fragment.FgtFind;
 import com.kfzs.duanduan.fragment.FgtFind;
 import com.kfzs.duanduan.fragment.FgtPersonalCenter;
 import com.kfzs.duanduan.fragment.FgtPersonalCenter;
 import com.kfzs.duanduan.fragment.FgtSmallSheep;
 import com.kfzs.duanduan.fragment.FgtSmallSheep;
+import com.sheep.gamegroup.view.fragment.FgtMainAudit;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 
 
 /**
 /**
@@ -14,7 +16,7 @@ import com.sheep.jiuyan.samllsheep.R;
  */
  */
 
 
 public enum MainTab {
 public enum MainTab {
-    FgtSmallSheep(R.string.mine_hoggerel) {
+    FgtSmallSheep(R.string.main_tab_make_money) {
         @Override
         @Override
         public Fragment getFragment() {
         public Fragment getFragment() {
             return new FgtSmallSheep();
             return new FgtSmallSheep();
@@ -24,28 +26,28 @@ public enum MainTab {
             return R.drawable.drawable_selector_task;
             return R.drawable.drawable_selector_task;
         }
         }
     },
     },
-    /*FgtMainGame(R.string.tab_viewpager_gamestore) {
+    FgtMainAudit(R.string.main_tab_audit) {
         @Override
         @Override
         public Fragment getFragment() {
         public Fragment getFragment() {
-            return new FgtMainGame();
+            return new FgtMainAudit();
         }
         }
 
 
         @Override
         @Override
         public int getDrawableId() {
         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
         @Override
         public Fragment getFragment() {
         public Fragment getFragment() {
-            return new FgtMainCategory();
+            return new FgtAskgetmoney();
         }
         }
 
 
         @Override
         @Override
         public int getDrawableId() {
         public int getDrawableId() {
-            return R.drawable.drawable_selector_class;
+            return R.drawable.drawable_selector_askgetmoney;
         }
         }
-    },*/
+    },
     Fgt_Find(R.string.main_tab_find) {
     Fgt_Find(R.string.main_tab_find) {
         @Override
         @Override
         public Fragment getFragment() {
         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.adp.ViewPagerFragmentAdapter;
 import com.kfzs.duanduan.fragment.FgtPersonalCenter;
 import com.kfzs.duanduan.fragment.FgtPersonalCenter;
 import com.kfzs.duanduan.fragment.FgtSmallSheep;
 import com.kfzs.duanduan.fragment.FgtSmallSheep;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.DrawablesHelper;
 import com.sheep.gamegroup.util.DrawablesHelper;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.util.UMConfigUtils;
+import com.sheep.gamegroup.view.fragment.FgtMainAudit;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
@@ -105,8 +107,10 @@ public class TabsHelper {
                         view_pager_container.setCurrentItem(position, false);
                         view_pager_container.setCurrentItem(position, false);
                         int sheepPosition = MainTab.FgtSmallSheep.ordinal();
                         int sheepPosition = MainTab.FgtSmallSheep.ordinal();
                         int personnalPosition = MainTab.FgtPersonnalCenter.ordinal();
                         int personnalPosition = MainTab.FgtPersonnalCenter.ordinal();
+                        int auditPosition = MainTab.FgtMainAudit.ordinal();
                         FgtSmallSheep fgtSmallSheep = (FgtSmallSheep) fragmentList.get(sheepPosition);
                         FgtSmallSheep fgtSmallSheep = (FgtSmallSheep) fragmentList.get(sheepPosition);
                         FgtPersonalCenter personnalCenter = (FgtPersonalCenter) fragmentList.get(personnalPosition);
                         FgtPersonalCenter personnalCenter = (FgtPersonalCenter) fragmentList.get(personnalPosition);
+                        FgtMainAudit auditFgt = (FgtMainAudit) fragmentList.get(auditPosition);
                         if(position == sheepPosition){
                         if(position == sheepPosition){
                             fgtSmallSheep.onResume();
                             fgtSmallSheep.onResume();
                         } else {
                         } else {
@@ -115,6 +119,9 @@ public class TabsHelper {
                         if(position == personnalPosition){
                         if(position == personnalPosition){
                             personnalCenter.onResume();
                             personnalCenter.onResume();
                         }
                         }
+                        if(position == auditPosition){
+                            auditFgt.onResume();
+                        }
                         checkWhichPage(position);
                         checkWhichPage(position);
                     }
                     }
 
 
@@ -176,6 +183,7 @@ public class TabsHelper {
     private int lastPosition = MainTab.FgtSmallSheep.ordinal();//默认选中小绵羊
     private int lastPosition = MainTab.FgtSmallSheep.ordinal();//默认选中小绵羊
 
 
     private void initViewPager() {
     private void initViewPager() {
+        LogUtil.logI("fragmentList.size---"+fragmentList.size());
         ViewPagerFragmentAdapter mViewPagerFragmentAdapter = new ViewPagerFragmentAdapter(activity.getSupportFragmentManager(), fragmentList);
         ViewPagerFragmentAdapter mViewPagerFragmentAdapter = new ViewPagerFragmentAdapter(activity.getSupportFragmentManager(), fragmentList);
         view_pager_container.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
         view_pager_container.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
 
 

+ 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.Response;
 import com.android.volleyplus.toolbox.HttpHeaderParser;
 import com.android.volleyplus.toolbox.HttpHeaderParser;
 import com.google.protobuf.InvalidProtocolBufferException;
 import com.google.protobuf.InvalidProtocolBufferException;
-import com.kfzs.appstore.utils.string.HexUtils;
 import com.kfzs.duanduan.KFZSApp;
 import com.kfzs.duanduan.KFZSApp;
 import com.kfzs.duanduan.bll.UrlBll;
 import com.kfzs.duanduan.bll.UrlBll;
 import com.kfzs.duanduan.datashare.DDProviderHelper;
 import com.kfzs.duanduan.datashare.DDProviderHelper;
@@ -22,6 +21,7 @@ import java.util.Map;
 
 
 import go.kfzssafe.Kfzssafe;
 import go.kfzssafe.Kfzssafe;
 
 
+
 /**
 /**
  * <pre>
  * <pre>
  *     sinlov
  *     sinlov
@@ -66,8 +66,7 @@ public class APIRequest extends Request<ApiResponseOuterClass.ApiResponse> {
     @Override
     @Override
     public byte[] getBody() throws AuthFailureError {
     public byte[] getBody() throws AuthFailureError {
         if (null != bodyByte) {
         if (null != bodyByte) {
-            String hexStr = HexUtils.bytes2HexStr(Kfzssafe.XByteEncode(bodyByte));
-            return hexStr.getBytes();
+            return Kfzssafe.xByteEncode(bodyByte);
         } else {
         } else {
             return super.getBody();
             return super.getBody();
         }
         }
@@ -78,9 +77,7 @@ public class APIRequest extends Request<ApiResponseOuterClass.ApiResponse> {
         try {
         try {
             String hexString = new String(networkResponse.data,
             String hexString = new String(networkResponse.data,
                     HttpHeaderParser.parseCharset(networkResponse.headers));
                     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));
             return Response.success(apiResponse, HttpHeaderParser.parseCacheHeaders(networkResponse));
         } catch (UnsupportedEncodingException e) {
         } catch (UnsupportedEncodingException e) {
             return Response.error(new ParseError(e));
             return Response.error(new ParseError(e));
@@ -88,6 +85,8 @@ public class APIRequest extends Request<ApiResponseOuterClass.ApiResponse> {
             return Response.error(new ParseError(e));
             return Response.error(new ParseError(e));
         } catch (NumberFormatException e) {
         } catch (NumberFormatException e) {
             return Response.error(new ParseError(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.Request;
 import com.android.volleyplus.Response;
 import com.android.volleyplus.Response;
 import com.android.volleyplus.toolbox.HttpHeaderParser;
 import com.android.volleyplus.toolbox.HttpHeaderParser;
-import com.kfzs.appstore.utils.string.HexUtils;
 import com.kfzs.duanduan.KFZSApp;
 import com.kfzs.duanduan.KFZSApp;
+import com.kfzs.duanduan.bean.BaseMsg;
 import com.kfzs.duanduan.bll.UrlBll;
 import com.kfzs.duanduan.bll.UrlBll;
 import com.kfzs.duanduan.datashare.DDProviderHelper;
 import com.kfzs.duanduan.datashare.DDProviderHelper;
 import com.kfzs.duanduan.db.DataSave;
 import com.kfzs.duanduan.db.DataSave;
-import com.kfzs.duanduan.bean.BaseMsg;
 
 
 import java.io.UnsupportedEncodingException;
 import java.io.UnsupportedEncodingException;
 import java.util.HashMap;
 import java.util.HashMap;
@@ -23,6 +22,7 @@ import java.util.Map;
 
 
 import go.kfzssafe.Kfzssafe;
 import go.kfzssafe.Kfzssafe;
 
 
+
 /**
 /**
  * <pre>
  * <pre>
  *     sinlov
  *     sinlov
@@ -65,8 +65,7 @@ public class APIRequestV2 extends Request<BaseMsg> {
     @Override
     @Override
     public byte[] getBody() throws AuthFailureError {
     public byte[] getBody() throws AuthFailureError {
         if (null != bodyByte) {
         if (null != bodyByte) {
-            String hexStr = HexUtils.bytes2HexStr(Kfzssafe.XByteEncode(bodyByte));
-            return hexStr.getBytes();
+            return Kfzssafe.xByteEncode(bodyByte);
         } else {
         } else {
             return super.getBody();
             return super.getBody();
         }
         }
@@ -77,10 +76,7 @@ public class APIRequestV2 extends Request<BaseMsg> {
         try {
         try {
             String hexString = new String(networkResponse.data,
             String hexString = new String(networkResponse.data,
                     HttpHeaderParser.parseCharset(networkResponse.headers));
                     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));
             return Response.success(apiResponse, HttpHeaderParser.parseCacheHeaders(networkResponse));
         } catch (UnsupportedEncodingException e) {
         } catch (UnsupportedEncodingException e) {
             return Response.error(new ParseError(e));
             return Response.error(new ParseError(e));
@@ -88,6 +84,8 @@ public class APIRequestV2 extends Request<BaseMsg> {
             return Response.error(new ParseError(e));
             return Response.error(new ParseError(e));
         } catch (NumberFormatException e) {
         } catch (NumberFormatException e) {
             return Response.error(new ParseError(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);
             View child = getChildAt(i);
             child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
             child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
             int h = child.getMeasuredHeight();
             int h = child.getMeasuredHeight();
-            mHeight[i] = h;
+            mHeight[i] = h < 300 ? 300:h;
             Log.e("-----------child" + i, "minHeight:" + h);
             Log.e("-----------child" + i, "minHeight:" + h);
         }
         }
         heightMeasureSpec = MeasureSpec.makeMeasureSpec(mHeight[getCurrentItem()], MeasureSpec.EXACTLY);
         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 android.text.TextUtils;
 
 
 import com.alibaba.fastjson.JSON;
 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.UpFileListener;
 import com.kfzs.duanduan.react.upfile.UpFileUtils;
 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.model.entity.UploadResult;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.view.dialog.DialogProgress;
 import com.sheep.gamegroup.view.dialog.DialogProgress;
@@ -18,7 +18,6 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
-import go.kfzssafe.Kfzssafe;
 import me.iwf.photopicker.PhotoPicker;
 import me.iwf.photopicker.PhotoPicker;
 
 
 /**
 /**
@@ -185,9 +184,7 @@ public abstract class AbsChooseImageActivity extends BaseActivity implements UpF
             json = msg;
             json = msg;
         } else {
         } else {
             try {
             try {
-                byte[] bytes = HexUtils.hexStr2Bytes(msg);
-                byte[] byteDecode = Kfzssafe.XByteDecode(bytes);
-                json = new String(byteDecode);
+                json = BaseMessageConverter.decrypt(msg);
             } catch (Exception e) {
             } catch (Exception e) {
                 e.printStackTrace();
                 e.printStackTrace();
                 return null;
                 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 {
 public class TaskHelper {
     private Action1<Integer> action1;
     private Action1<Integer> action1;
-    public TaskHelper(Action1<Integer> action1){
+
+    public TaskHelper(Action1<Integer> action1) {
         this.action1 = action1;
         this.action1 = action1;
     }
     }
 
 
     private TaskAcceptedEty taskAcceptedEty;
     private TaskAcceptedEty taskAcceptedEty;
     private int release_task_id;
     private int release_task_id;
     private Activity activity;
     private Activity activity;
+
     public void initAcceptedTask(Activity activity, final int release_task_id) {
     public void initAcceptedTask(Activity activity, final int release_task_id) {
         this.activity = activity;
         this.activity = activity;
         this.release_task_id = release_task_id;
         this.release_task_id = release_task_id;
@@ -71,7 +73,9 @@ public class TaskHelper {
                     }
                     }
                 });
                 });
     }
     }
+
     private TaskReleaseEty taskReleaseEty;
     private TaskReleaseEty taskReleaseEty;
+
     private void initTask(int release_task_id) {
     private void initTask(int release_task_id) {
         SheepApp.getInstance().getNetComponent().getApiService().taskDesc(release_task_id)
         SheepApp.getInstance().getNetComponent().getApiService().taskDesc(release_task_id)
                 .subscribeOn(Schedulers.io())
                 .subscribeOn(Schedulers.io())
@@ -80,7 +84,7 @@ public class TaskHelper {
                     @Override
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                     public void onNext(BaseMessage baseMessage) {
                         taskReleaseEty = baseMessage.getData(TaskReleaseEty.class);
                         taskReleaseEty = baseMessage.getData(TaskReleaseEty.class);
-                        if(action1 != null)
+                        if (action1 != null)
                             action1.call(1);//刷新界面
                             action1.call(1);//刷新界面
 
 
                     }
                     }
@@ -90,7 +94,9 @@ public class TaskHelper {
                     }
                     }
                 });
                 });
     }
     }
+
     private OrienteeringDetail orienteeringDetail;
     private OrienteeringDetail orienteeringDetail;
+
     private void initGameTask(final View itemView, String third_task_id) {
     private void initGameTask(final View itemView, String third_task_id) {
         SheepApp.getInstance().getNetComponent().getApiService().getMyGame(third_task_id)
         SheepApp.getInstance().getNetComponent().getApiService().getMyGame(third_task_id)
                 .subscribeOn(Schedulers.io())
                 .subscribeOn(Schedulers.io())
@@ -114,25 +120,26 @@ public class TaskHelper {
     }
     }
 
 
     private RxjavaCountDownTimer timer;
     private RxjavaCountDownTimer timer;
+
     public void loadTask(final View itemView) {
     public void loadTask(final View itemView) {
         itemView.setVisibility(View.VISIBLE);
         itemView.setVisibility(View.VISIBLE);
-        if(taskReleaseEty == null){
+        if (taskReleaseEty == null) {
             return;
             return;
         }
         }
         final TaskEty taskEty = taskReleaseEty.getTask();
         final TaskEty taskEty = taskReleaseEty.getTask();
-        if(taskEty == null){
+        if (taskEty == null) {
             return;
             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_task.setVisibility(View.VISIBLE);
             find_information_game_task0.setVisibility(View.VISIBLE);
             find_information_game_task0.setVisibility(View.VISIBLE);
             find_information_game_yuan.setVisibility(View.INVISIBLE);
             find_information_game_yuan.setVisibility(View.INVISIBLE);
@@ -145,14 +152,14 @@ public class TaskHelper {
             find_information_game_task.setOnClickListener(new View.OnClickListener() {
             find_information_game_task.setOnClickListener(new View.OnClickListener() {
                 @Override
                 @Override
                 public void onClick(View view) {
                 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() {
             itemView.setOnClickListener(new View.OnClickListener() {
                 @Override
                 @Override
                 public void onClick(View view) {
                 public void onClick(View view) {
                     reloadDataType = 1;//回来后将刷新界面数据 taskAcceptedEty
                     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);
                     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_task_end_time.setVisibility(View.GONE);
                 find_information_game_yuan.setGravity(Gravity.END);
                 find_information_game_yuan.setGravity(Gravity.END);
                 String[] remarks = new String[0];
                 String[] remarks = new String[0];
-                if(!TextUtils.isEmpty(taskEty.getRemarks())) {
+                if (!TextUtils.isEmpty(taskEty.getRemarks())) {
                     remarks = taskEty.getRemarks().split(";");
                     remarks = taskEty.getRemarks().split(";");
                 }
                 }
                 find_information_game_time.setText(remarks.length > 0 ? remarks[0] : "");
                 find_information_game_time.setText(remarks.length > 0 ? remarks[0] : "");
@@ -195,11 +202,11 @@ public class TaskHelper {
             case 1003://游戏任务
             case 1003://游戏任务
             default:
             default:
                 find_information_game_yuan.setGravity(Gravity.CENTER);
                 find_information_game_yuan.setGravity(Gravity.CENTER);
-                if(taskAcceptedEty != null){
+                if (taskAcceptedEty != null) {
                     switch (taskAcceptedEty.getStatus()) {
                     switch (taskAcceptedEty.getStatus()) {
                         case 1://"已接受任务";
                         case 1://"已接受任务";
                         case 2:// "正在进行中";
                         case 2:// "正在进行中";
-                            if(taskReleaseEty.getDeadline().equals("永久")){
+                            if (taskReleaseEty.getDeadline().equals("永久")) {
                                 find_information_game_task_end_time.setVisibility(View.GONE);
                                 find_information_game_task_end_time.setVisibility(View.GONE);
                             } else {
                             } else {
                                 find_information_game_task_end_time.setVisibility(View.VISIBLE);
                                 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.setVisibility(View.VISIBLE);
                             find_information_game_task.setText("已经完成");
                             find_information_game_task.setText("已经完成");
                             find_information_game_task.setEnabled(false);
                             find_information_game_task.setEnabled(false);
-                            if(taskEty.isGameTask()){
+                            if (taskEty.isGameTask()) {
                                 initGameTask(itemView, taskEty.getThird_task_id());
                                 initGameTask(itemView, taskEty.getThird_task_id());
                             }
                             }
                             break;
                             break;
@@ -279,12 +286,12 @@ public class TaskHelper {
                             find_information_game_task.setVisibility(View.GONE);
                             find_information_game_task.setVisibility(View.GONE);
                             break;
                             break;
                     }
                     }
-                } else if(taskReleaseEty.isOffline()){//任务已经下线
+                } else if (taskReleaseEty.isOffline()) {//任务已经下线
                     find_information_game_task_end_time.setVisibility(View.GONE);
                     find_information_game_task_end_time.setVisibility(View.GONE);
                     find_information_game_task.setVisibility(View.VISIBLE);
                     find_information_game_task.setVisibility(View.VISIBLE);
                     find_information_game_task.setText("已经下线");
                     find_information_game_task.setText("已经下线");
                     find_information_game_task.setEnabled(false);
                     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_end_time.setVisibility(View.GONE);
                     find_information_game_task.setVisibility(View.VISIBLE);
                     find_information_game_task.setVisibility(View.VISIBLE);
                     find_information_game_task.setText("任务已抢光");
                     find_information_game_task.setText("任务已抢光");
@@ -325,33 +332,42 @@ public class TaskHelper {
         taskReleaseEty = null;
         taskReleaseEty = null;
         initTask(release_task_id);
         initTask(release_task_id);
     }
     }
+
     private int reloadDataType;//0 不刷新数据 1刷新 taskAcceptedEty
     private int reloadDataType;//0 不刷新数据 1刷新 taskAcceptedEty
+
     public void onResume() {
     public void onResume() {
-        switch (reloadDataType){
+        switch (reloadDataType) {
             case 1:
             case 1:
                 refreshTask();
                 refreshTask();
                 break;
                 break;
         }
         }
     }
     }
+
     /**
     /**
      * 清理计时器
      * 清理计时器
      */
      */
     public void clear() {
     public void clear() {
-        if(timer != null)
+        if (timer != null)
             timer.clear();
             timer.clear();
         timer = null;
         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();
     private DownloadHelper downloadHelper = new DownloadHelper();
@@ -363,6 +379,7 @@ public class TaskHelper {
 
 
     /**
     /**
      * 设置剩余份数文本
      * 设置剩余份数文本
+     *
      * @param textView
      * @param textView
      * @param taskReleaseEty
      * @param taskReleaseEty
      */
      */
@@ -370,78 +387,87 @@ public class TaskHelper {
         textView.setVisibility(View.VISIBLE);
         textView.setVisibility(View.VISIBLE);
         ViewUtil.setText(textView, String.format(Locale.CHINA, "剩余%s份", taskReleaseEty.getLast_num()));
         ViewUtil.setText(textView, String.format(Locale.CHINA, "剩余%s份", taskReleaseEty.getLast_num()));
     }
     }
+
     /**
     /**
      * 设置游戏类型文本
      * 设置游戏类型文本
+     *
      * @param textView
      * @param textView
      * @param taskReleaseEty
      * @param taskReleaseEty
      */
      */
     public static void setTaskTypeText(TextView textView, TaskReleaseEty taskReleaseEty) {
     public static void setTaskTypeText(TextView textView, TaskReleaseEty taskReleaseEty) {
+        textView.setVisibility(View.VISIBLE);
         String[] textColor = getTaskTypeTextColor(taskReleaseEty.getTask());
         String[] textColor = getTaskTypeTextColor(taskReleaseEty.getTask());
         ViewUtil.setColorMapText(textView, String.format(Locale.CHINA, "%s", textColor[0]), textColor[0], textColor[1]);
         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);
         textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 9);
         int padding = textView.getContext().getResources().getDimensionPixelSize(R.dimen.content_padding_2);
         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 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 1002:
             case 1003:
             case 1003:
             case 1004:
             case 1004:
-                return R.drawable.shape_green_stroke_rectangle;
+                return new String[]{"游戏任务", "#4889FF"};//已经修改为一种颜色了
             case 1000:
             case 1000:
-                return R.drawable.shape_red_stroke_rectangle;
+                return new String[]{"连续任务", "#4889FF"};
             default:
             default:
-                return R.drawable.shape_yellow_stroke_rectangle;
+                return new String[]{"试玩任务", "#4889FF"};
         }
         }
     }
     }
 
 
     /**
     /**
      * 设置当前子任务为选中状态
      * 设置当前子任务为选中状态
+     * 1、 任务未开启时——即将开启
+     * 2、 任务未领取时——可领取
+     * 3、 任务已领取待完成时——进行中
+     * 4、 任务已提交待审核——待审核
+     * 5、 任务审核通过——已完成
+     * 6、 任务审核失败——审核失败
+     * 7、任务已过期未完成——已过期
+     *
      * @param taskEty
      * @param taskEty
      */
      */
     public static void setSelectFlag(TaskEty taskEty) {
     public static void setSelectFlag(TaskEty taskEty) {
         List<TaskChild> taskChildList;
         List<TaskChild> taskChildList;
-        if(taskEty == null || ListUtil.isEmpty(taskChildList = taskEty.getChild()))
+        if (taskEty == null || ListUtil.isEmpty(taskChildList = taskEty.getChild()))
             return;
             return;
         TaskChild selectTaskChild = null;
         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 2:
                 case 3:
                 case 3:
-                case 4:
-                case 6:
+                case 6://找到可领取或者进行中或者审核失败则直接退出循环
                     selectTaskChild = taskChild;
                     selectTaskChild = taskChild;
                     break outFor;
                     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);
             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);
     Call<Object> getTimeInfoPostForm(@FieldMap Map<String, String> map);
 
 
     /**
     /**
-     *
      * @param jsonObject
      * @param jsonObject
      * @return
      * @return
      */
      */
@@ -45,25 +44,36 @@ public interface ApiService {
     Observable<BaseMessage> loginByCaptcha(@Body JSONObject jsonObject);
     Observable<BaseMessage> loginByCaptcha(@Body JSONObject jsonObject);
 
 
     /**
     /**
+     * @return ,
+     * 主页抢任务
+     */
+    @GET("app/release_task/commend_task/")
+    Observable<BaseMessage> getNewTask(@Query("order") int order);
+
+    /**
      * 获取用户信息
      * 获取用户信息
      */
      */
     @GET("app/user/get_info/")
     @GET("app/user/get_info/")
     Observable<BaseMessage> getInfo();
     Observable<BaseMessage> getInfo();
+
     /**
     /**
      * 获取用户的已经挂机微信
      * 获取用户的已经挂机微信
      */
      */
     @GET("app/wechat/")
     @GET("app/wechat/")
     Observable<BaseMessage> getWebchat();
     Observable<BaseMessage> getWebchat();
+
     /**
     /**
      * 提交用户的微信账号与密码
      * 提交用户的微信账号与密码
      */
      */
     @POST("app/wechat/")
     @POST("app/wechat/")
     Observable<BaseMessage> postWebchat(@Body JSONObject jsonObject);
     Observable<BaseMessage> postWebchat(@Body JSONObject jsonObject);
+
     /**
     /**
      * 提交用户的微信账号与密码
      * 提交用户的微信账号与密码
      */
      */
     @PUT("app/wechat/{id}")
     @PUT("app/wechat/{id}")
     Observable<BaseMessage> putWebchat(@Path("id") int id, @Body JSONObject jsonObject);
     Observable<BaseMessage> putWebchat(@Path("id") int id, @Body JSONObject jsonObject);
+
     /**
     /**
      * 获取微信挂机功能是否开启
      * 获取微信挂机功能是否开启
      */
      */
@@ -89,7 +99,7 @@ public interface ApiService {
      * 获取任务记录列表
      * 获取任务记录列表
      */
      */
     @GET("app/accepted_task/")
     @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/")
     @GET("app/accepted_task/new_run_task/")
     Observable<BaseMessage> returnTask(@Query("is_succession") int is_succession, @Query("show_game_task") int show_game_task);
     Observable<BaseMessage> returnTask(@Query("is_succession") int is_succession, @Query("show_game_task") int show_game_task);
+
     /**
     /**
      * 自动提交时长任务
      * 自动提交时长任务
-     *
-     "gps": "string",
-     "release_task_id": 0,
-     "task_time": 0
+     * <p>
+     * "gps": "string",
+     * "release_task_id": 0,
+     * "task_time": 0
      */
      */
     @POST("app/accepted_task/auto_check/")
     @POST("app/accepted_task/auto_check/")
     Observable<BaseMessage> commitAutoTask(@Body JSONObject param);
     Observable<BaseMessage> commitAutoTask(@Body JSONObject param);
@@ -121,6 +132,7 @@ public interface ApiService {
                                         @Query("platform") int platform, @Query("is_hot") int is_hot,
                                         @Query("platform") int platform, @Query("is_hot") int is_hot,
                                         @Query("is_recommend") int is_recommend, @Query("about_to_begin") int about_to_begin,
                                         @Query("is_recommend") int is_recommend, @Query("about_to_begin") int about_to_begin,
                                         @Query("task_type") String task_type, @Query("is_succession") int is_succession);
                                         @Query("task_type") String task_type, @Query("is_succession") int is_succession);
+
     /**
     /**
      * 搜索游戏
      * 搜索游戏
      */
      */
@@ -131,38 +143,37 @@ public interface ApiService {
                                         @Query("task_type") String task_type, @Query("is_succession") int is_succession, @Query("name") String name);
                                         @Query("task_type") String task_type, @Query("is_succession") int is_succession, @Query("name") String name);
 
 
 
 
-
     /**
     /**
      * 邀请赚钱
      * 邀请赚钱
      */
      */
     @GET("app/auth/login_by_we_chat")
     @GET("app/auth/login_by_we_chat")
     Observable<BaseMessage> askMakeMoney(@Body String jsonObject);
     Observable<BaseMessage> askMakeMoney(@Body String jsonObject);
+
     /**
     /**
      * 用户提现记录
      * 用户提现记录
      */
      */
     @GET("app/withdraw/")
     @GET("app/withdraw/")
-    Observable<BaseMessage> goWithdrawal(@Query("page") int page, @Query("per_page") int per_page, @Query("start_time ") String start_time , @Query("end_time ") String end_time );
-
+    Observable<BaseMessage> goWithdrawal(@Query("page") int page, @Query("per_page") int per_page, @Query("start_time") String start_time, @Query("end_time") String end_time);
 
 
 
 
     /**
     /**
      * 微信登录
      * 微信登录
+     *
      * @param jsonObject
      * @param jsonObject
      */
      */
     @POST("app/auth/login_by_we_chat")
     @POST("app/auth/login_by_we_chat")
     Observable<BaseMessage> LoginByWX(@Body com.alibaba.fastjson.JSONObject jsonObject);
     Observable<BaseMessage> LoginByWX(@Body com.alibaba.fastjson.JSONObject jsonObject);
 
 
 
 
-
     /**
     /**
      * qq登录
      * qq登录
+     *
      * @param jsonObject
      * @param jsonObject
      */
      */
     @POST("app/auth/login_by_qq")
     @POST("app/auth/login_by_qq")
     Observable<BaseMessage> LoginByQQ(@Body com.alibaba.fastjson.JSONObject jsonObject);
     Observable<BaseMessage> LoginByQQ(@Body com.alibaba.fastjson.JSONObject jsonObject);
 
 
 
 
-
     @GET("app/user/friend_count_and_award")
     @GET("app/user/friend_count_and_award")
     Observable<BaseMessage> FriendCountAndAward();
     Observable<BaseMessage> FriendCountAndAward();
 
 
@@ -179,23 +190,38 @@ public interface ApiService {
     Observable<BaseMessage> giveTaskStatue(@Path("id") int id);
     Observable<BaseMessage> giveTaskStatue(@Path("id") int id);
 
 
 
 
-
+    /**
+     * @param jsonObject
+     * @return
+     */
     @PUT("app/user/change_base_info")
     @PUT("app/user/change_base_info")
-    Observable<BaseMessage> changeBaseInfo (@Body com.alibaba.fastjson.JSONObject jsonObject);
+    Observable<BaseMessage> changeBaseInfo(@Body com.alibaba.fastjson.JSONObject jsonObject);
 
 
     /**
     /**
+     * @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")
     @POST("app/user/switch_phone")
     Observable<BaseMessage> switchPhone(@Body JSONObject jsonObject);
     Observable<BaseMessage> switchPhone(@Body JSONObject jsonObject);
 
 
 
 
-
     /**
     /**
      * 更换手机号
      * 更换手机号
      */
      */
     @PUT("app/user/bind_all_real_info")
     @PUT("app/user/bind_all_real_info")
     Observable<BaseMessage> bindALl(@Body JSONObject jsonObject);
     Observable<BaseMessage> bindALl(@Body JSONObject jsonObject);
+
     /**
     /**
      * 绑定手机号
      * 绑定手机号
      */
      */
@@ -206,23 +232,26 @@ public interface ApiService {
      * 实时动态
      * 实时动态
      */
      */
     @GET("app/user/award_detail")
     @GET("app/user/award_detail")
-    Observable<BaseMessage> awardDetail(@Query("page") int page,@Query("per_page") int per_page);
+    Observable<BaseMessage> awardDetail(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
     /**
      * 发送绑定手机号短信,只传mobile
      * 发送绑定手机号短信,只传mobile
      */
      */
     @POST("app/user/sms_for_bind_mobile")
     @POST("app/user/sms_for_bind_mobile")
     Observable<BaseMessage> smsBindMobile(@Body JSONObject jsonObject);
     Observable<BaseMessage> smsBindMobile(@Body JSONObject jsonObject);
+
     /**
     /**
      * 修改任务进度
      * 修改任务进度
      */
      */
     @GET("app/accepted_task/status")
     @GET("app/accepted_task/status")
-    Observable<BaseMessage> taskStatus(@Query("id") int id,@Query("screenshots") String screenshots,
-        @Query("remark") String remark,@Query("package_name") String package_name,@Query("status") String status);
+    Observable<BaseMessage> taskStatus(@Query("id") int id, @Query("screenshots") String screenshots,
+                                       @Query("remark") String remark, @Query("package_name") String package_name, @Query("status") String status);
 //    @GET("app/accepted_task/status")
 //    @GET("app/accepted_task/status")
 //    Observable<BaseMessage> taskStatus(@Body JSONObject jsonObject);
 //    Observable<BaseMessage> taskStatus(@Body JSONObject jsonObject);
 
 
     /**
     /**
-     *下载任务回调
+     * 下载任务回调
+     *
      * @param jsonObject
      * @param jsonObject
      * @return
      * @return
      */
      */
@@ -231,6 +260,7 @@ public interface ApiService {
 
 
     /**
     /**
      * 获取可用余额
      * 获取可用余额
+     *
      * @return
      * @return
      */
      */
     @GET("app/user/get_can_withdraw_amount")
     @GET("app/user/get_can_withdraw_amount")
@@ -238,8 +268,10 @@ public interface ApiService {
 
 
     @GET("loan/userRecord")
     @GET("loan/userRecord")
     Observable<BaseMessage> userRecord();
     Observable<BaseMessage> userRecord();
+
     @GET("loan/getYinkerLoanUrl")
     @GET("loan/getYinkerLoanUrl")
     Observable<BaseMessage> getYinkerLoanUrl();
     Observable<BaseMessage> getYinkerLoanUrl();
+
     @GET("loan/getYinkerRepaymentUrl")
     @GET("loan/getYinkerRepaymentUrl")
     Observable<BaseMessage> getYinkerRepaymentUrl();
     Observable<BaseMessage> getYinkerRepaymentUrl();
 
 
@@ -252,17 +284,22 @@ public interface ApiService {
 
 
     @GET("app/newbie_task")
     @GET("app/newbie_task")
     Observable<BaseMessage> getNewbieTask();
     Observable<BaseMessage> getNewbieTask();
+
     @PUT("app/newbie_task")
     @PUT("app/newbie_task")
     Observable<BaseMessage> putNewbieTask(@Body JSONObject jsonObject);
     Observable<BaseMessage> putNewbieTask(@Body JSONObject jsonObject);
+
     @POST("app/newbie_task/learn_finish")
     @POST("app/newbie_task/learn_finish")
     Observable<BaseMessage> appNewbieTaskLearnFinish();
     Observable<BaseMessage> appNewbieTaskLearnFinish();
 
 
     @GET("app/user/friend_list")
     @GET("app/user/friend_list")
     Observable<BaseMessage> getUserFriendList(@Query("page") int page, @Query("per_page") int per_page);
     Observable<BaseMessage> getUserFriendList(@Query("page") int page, @Query("per_page") int per_page);
+
     @GET("app/release_task/credit_card")
     @GET("app/release_task/credit_card")
     Observable<BaseMessage> getReleaseTaskCreditCard();
     Observable<BaseMessage> getReleaseTaskCreditCard();
+
     @POST("app/accepted_task/credit_card")
     @POST("app/accepted_task/credit_card")
     Observable<BaseMessage> releaseTaskCreditCard(@Body JSONObject jsonObject);
     Observable<BaseMessage> releaseTaskCreditCard(@Body JSONObject jsonObject);
+
     @PUT("app/accepted_task/{id}/credit_card")
     @PUT("app/accepted_task/{id}/credit_card")
     Observable<BaseMessage> releaseTaskCreditCard(@Path("id") int id, @Body JSONObject jsonObject);
     Observable<BaseMessage> releaseTaskCreditCard(@Path("id") int id, @Body JSONObject jsonObject);
 
 
@@ -277,6 +314,7 @@ public interface ApiService {
      */
      */
     @GET("app/bulletin")
     @GET("app/bulletin")
     Observable<BaseMessage> bulletin(@Query("page") int page, @Query("per_page") int per_page);
     Observable<BaseMessage> bulletin(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
     /**
      * 获取微信辅助h5链接
      * 获取微信辅助h5链接
      */
      */
@@ -288,8 +326,10 @@ public interface ApiService {
      */
      */
     @GET("app/release_task/{id}/desc")
     @GET("app/release_task/{id}/desc")
     Observable<BaseMessage> taskDesc(@Path("id") int id);
     Observable<BaseMessage> taskDesc(@Path("id") int id);
+
     @GET("app/credit/{id}")
     @GET("app/credit/{id}")
     Observable<BaseMessage> getCredit(@Path("id") int id);
     Observable<BaseMessage> getCredit(@Path("id") int id);
+
     @POST("app/newbie_task/add_qq")
     @POST("app/newbie_task/add_qq")
     Observable<BaseMessage> newbieTaskAddQq(@Body JSONObject jsonObject);
     Observable<BaseMessage> newbieTaskAddQq(@Body JSONObject jsonObject);
 
 
@@ -314,11 +354,13 @@ public interface ApiService {
      */
      */
     @GET("app/user/my_assets")
     @GET("app/user/my_assets")
     Observable<BaseMessage> getMyAssets();
     Observable<BaseMessage> getMyAssets();
+
     /**
     /**
      * 充值记录
      * 充值记录
      */
      */
     @GET("app/recharge/recharge_balance_log")
     @GET("app/recharge/recharge_balance_log")
     Observable<BaseMessage> getRechargeBalanceLog(@Query("page") int page, @Query("per_page") int per_page);
     Observable<BaseMessage> getRechargeBalanceLog(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
     /**
      * 充值q币记录
      * 充值q币记录
      */
      */
@@ -330,6 +372,7 @@ public interface ApiService {
 
 
     /**
     /**
      * 获取下发充值类型
      * 获取下发充值类型
+     *
      * @param page
      * @param page
      * @return
      * @return
      */
      */
@@ -338,6 +381,7 @@ public interface ApiService {
 
 
     /**
     /**
      * 充值
      * 充值
+     *
      * @param jsonObject
      * @param jsonObject
      * @return
      * @return
      */
      */
@@ -347,6 +391,7 @@ public interface ApiService {
 
 
     /**
     /**
      * 绵羊币充值
      * 绵羊币充值
+     *
      * @param parame
      * @param parame
      * @return
      * @return
      */
      */
@@ -378,6 +423,7 @@ public interface ApiService {
      */
      */
     @GET("app/user/agreement/")
     @GET("app/user/agreement/")
     Observable<BaseMessage> getAgreement();
     Observable<BaseMessage> getAgreement();
+
     /**
     /**
      * 提交协议
      * 提交协议
      */
      */
@@ -448,11 +494,13 @@ public interface ApiService {
      */
      */
     @GET("app/punch/punch_and_sign_count")
     @GET("app/punch/punch_and_sign_count")
     Observable<BaseMessage> getPunchAndSignCount();
     Observable<BaseMessage> getPunchAndSignCount();
+
     /**
     /**
      * 获取广告类型 1:开屏广告 2:弹窗广告
      * 获取广告类型 1:开屏广告 2:弹窗广告
      */
      */
     @GET("app/advertising/advertisements")
     @GET("app/advertising/advertisements")
     Observable<BaseMessage> getAdvertising(@Query("type") int type);
     Observable<BaseMessage> getAdvertising(@Query("type") int type);
+
     /**
     /**
      * 新功能介绍
      * 新功能介绍
      */
      */
@@ -464,51 +512,61 @@ public interface ApiService {
      */
      */
     @GET("app/user/check_label")
     @GET("app/user/check_label")
     Observable<BaseMessage> checkLabel();
     Observable<BaseMessage> checkLabel();
+
     /**
     /**
      * 查询标签列表
      * 查询标签列表
      */
      */
     @GET("app/user/label")
     @GET("app/user/label")
     Observable<BaseMessage> getLabelList();
     Observable<BaseMessage> getLabelList();
+
     /**
     /**
      * 查询标签列表
      * 查询标签列表
      */
      */
     @POST("app/user/label")
     @POST("app/user/label")
     Observable<BaseMessage> postLabelList(@Body JSONObject jsonObject);
     Observable<BaseMessage> postLabelList(@Body JSONObject jsonObject);
+
     /**
     /**
      * 关于我们
      * 关于我们
      */
      */
     @GET("app/about_us/new_about_us")
     @GET("app/about_us/new_about_us")
     Observable<BaseMessage> getNewAboutUs();
     Observable<BaseMessage> getNewAboutUs();
+
     /**
     /**
      * 获取定向消费游戏列表
      * 获取定向消费游戏列表
      */
      */
     @GET("app/game_consumption/my_games")
     @GET("app/game_consumption/my_games")
     Observable<BaseMessage> getMyGames(@Query("page") int page, @Query("per_page") int per_page);
     Observable<BaseMessage> getMyGames(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
     /**
      * 获取定向消费游戏
      * 获取定向消费游戏
      */
      */
     @GET("app/game_consumption/my_game/{id}")
     @GET("app/game_consumption/my_game/{id}")
     Observable<BaseMessage> getMyGame(@Path("id") String third_task_id);
     Observable<BaseMessage> getMyGame(@Path("id") String third_task_id);
+
     /**
     /**
      * 获取正在运行的游戏任务
      * 获取正在运行的游戏任务
      */
      */
     @GET("app/accepted_task/run_game_task")
     @GET("app/accepted_task/run_game_task")
     Observable<BaseMessage> run_game_task();
     Observable<BaseMessage> run_game_task();
+
     /**
     /**
      * 领取游戏任务奖励
      * 领取游戏任务奖励
      */
      */
     @PUT("app/accepted_task/receive_award/{id}")
     @PUT("app/accepted_task/receive_award/{id}")
     Observable<BaseMessage> receive_award(@Path("id") int id);
     Observable<BaseMessage> receive_award(@Path("id") int id);
+
     /**
     /**
      * 游戏消费下单
      * 游戏消费下单
      */
      */
     @POST("app/game_consumption")
     @POST("app/game_consumption")
     Observable<BaseMessage> game_consumption(@Body JSONObject jsonObject);
     Observable<BaseMessage> game_consumption(@Body JSONObject jsonObject);
+
     /**
     /**
      * 能用的绵羊币金额
      * 能用的绵羊币金额
      */
      */
     @GET("app/game_consumption/can_user_sheep_amount")
     @GET("app/game_consumption/can_user_sheep_amount")
     Observable<BaseMessage> can_user_sheep_amount(@Query("amount") int amount, @Query("game_id") String game_id);
     Observable<BaseMessage> can_user_sheep_amount(@Query("amount") int amount, @Query("game_id") String game_id);
+
     /**
     /**
      * url配置
      * url配置
      */
      */
@@ -517,12 +575,15 @@ public interface ApiService {
 
 
     /**
     /**
      * 充值订单列表
      * 充值订单列表
+     *
      * @return
      * @return
      */
      */
     @GET("app/game_consumption/orders")
     @GET("app/game_consumption/orders")
     Observable<BaseMessage> getConsumptionOrders(@Query("page") int page, @Query("per_page") int per_page);
     Observable<BaseMessage> getConsumptionOrders(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
     /**
      * 再次充值 或 放弃充值
      * 再次充值 或 放弃充值
+     *
      * @return
      * @return
      */
      */
     @PUT("app/game_consumption/order/{id}")
     @PUT("app/game_consumption/order/{id}")
@@ -530,12 +591,15 @@ public interface ApiService {
 
 
     /**
     /**
      * 获取最新版本信息
      * 获取最新版本信息
+     *
      * @return
      * @return
      */
      */
     @GET("app/version/new_version")
     @GET("app/version/new_version")
     Observable<BaseMessage> getNewVersion(@Query("type") int type);
     Observable<BaseMessage> getNewVersion(@Query("type") int type);
+
     /**
     /**
      * 获取接收任务详情
      * 获取接收任务详情
+     *
      * @return
      * @return
      */
      */
     @GET("app/accepted_task/detail/{id}")
     @GET("app/accepted_task/detail/{id}")
@@ -552,11 +616,13 @@ public interface ApiService {
      */
      */
     @GET("app/common_config")
     @GET("app/common_config")
     Observable<BaseMessage> commonConfig(@Query("type_name") String type_name);
     Observable<BaseMessage> commonConfig(@Query("type_name") String type_name);
+
     /**
     /**
      * 获取用户当前代理信息
      * 获取用户当前代理信息
      */
      */
     @GET("app/agent/region")
     @GET("app/agent/region")
     Observable<BaseMessage> agentRegion();
     Observable<BaseMessage> agentRegion();
+
     /**
     /**
      * 收支明细
      * 收支明细
      */
      */
@@ -569,66 +635,78 @@ public interface ApiService {
      */
      */
     @GET("app/find/articles_tags/list")
     @GET("app/find/articles_tags/list")
     Observable<BaseMessage> getFindTagList();
     Observable<BaseMessage> getFindTagList();
+
     /**
     /**
      * 发现模块列表
      * 发现模块列表
      */
      */
     @GET("app/find/articles/list")
     @GET("app/find/articles/list")
     Observable<BaseMessage> getFindList(@Query("page") int page, @Query("per_page") int per_page, @Query("tag_id") int id);
     Observable<BaseMessage> getFindList(@Query("page") int page, @Query("per_page") int per_page, @Query("tag_id") int id);
+
     /**
     /**
      * 发现内容详情
      * 发现内容详情
      */
      */
     @GET("app/find/articles")
     @GET("app/find/articles")
     Observable<BaseMessage> getFindDetail(@Query("id") int id);
     Observable<BaseMessage> getFindDetail(@Query("id") int id);
+
     /**
     /**
      * 应用评分
      * 应用评分
      * {
      * {
-     "application_id": 0,
-     "score": 0,
-     "user_id": 0
-     }
+     * "application_id": 0,
+     * "score": 0,
+     * "user_id": 0
+     * }
      */
      */
     @POST("app/find/applications/score")
     @POST("app/find/applications/score")
     Observable<BaseMessage> commitAppScore(@Body JSONObject jsonObject);
     Observable<BaseMessage> commitAppScore(@Body JSONObject jsonObject);
+
     /**
     /**
      * 获取应用详情
      * 获取应用详情
      */
      */
     @GET("app/find/applications")
     @GET("app/find/applications")
     Observable<BaseMessage> getAppDetail(@Query("id") int id);
     Observable<BaseMessage> getAppDetail(@Query("id") int id);
+
     /**
     /**
      * 应用 各评分人数
      * 应用 各评分人数
      */
      */
     @GET("app/find/applications/score_num")
     @GET("app/find/applications/score_num")
     Observable<BaseMessage> getAppScoreNum(@Query("id") int id);
     Observable<BaseMessage> getAppScoreNum(@Query("id") int id);
+
     /**
     /**
      * 应用我的评分
      * 应用我的评分
      */
      */
     @GET("app/find/applications/my_score")
     @GET("app/find/applications/my_score")
     Observable<BaseMessage> getMyAppScore(@Query("id") int id);
     Observable<BaseMessage> getMyAppScore(@Query("id") int id);
+
     /**
     /**
      * 应用 下载/预约 时先调用此接口生成记录
      * 应用 下载/预约 时先调用此接口生成记录
      */
      */
     @GET("app/find/applications/downloads")
     @GET("app/find/applications/downloads")
     Observable<BaseMessage> recordAppDownloads(@Query("id") int id);
     Observable<BaseMessage> recordAppDownloads(@Query("id") int id);
+
     /**
     /**
      * 取消  应用 下载/预约
      * 取消  应用 下载/预约
      */
      */
     @DELETE("app/find/applications/downloads")
     @DELETE("app/find/applications/downloads")
     Observable<BaseMessage> deleteDownloads(@Query("id") int id);
     Observable<BaseMessage> deleteDownloads(@Query("id") int id);
+
     /**
     /**
      * 获取预约未下载数量
      * 获取预约未下载数量
      */
      */
     @GET("app/find/applications/downloads/status")
     @GET("app/find/applications/downloads/status")
     Observable<BaseMessage> getFindAppDownloadsStatus();
     Observable<BaseMessage> getFindAppDownloadsStatus();
+
     /**
     /**
      * 获取预约下载列表
      * 获取预约下载列表
      */
      */
     @GET("app/find/applications/downloads_list")
     @GET("app/find/applications/downloads_list")
     Observable<BaseMessage> getFindAppReservationList(@Query("page") int page, @Query("per_page") int per_page);
     Observable<BaseMessage> getFindAppReservationList(@Query("page") int page, @Query("per_page") int per_page);
+
     /**
     /**
      * 发现点击统计
      * 发现点击统计
      */
      */
     @GET("app/find/add_clicks")
     @GET("app/find/add_clicks")
     Observable<BaseMessage> getFindItemAddClicks(@Query("id") int id);
     Observable<BaseMessage> getFindItemAddClicks(@Query("id") int id);
+
     /**
     /**
      * 首页list
      * 首页list
      */
      */
@@ -636,79 +714,84 @@ public interface ApiService {
     Observable<BaseMessage> getHomeListItem(@Path("id") int id);
     Observable<BaseMessage> getHomeListItem(@Path("id") int id);
 
 
     /**
     /**
-     *获取游戏任务下拉列表
+     * 获取游戏任务下拉列表
      */
      */
     @GET("app/release_task/recharge_game_List")
     @GET("app/release_task/recharge_game_List")
     Observable<BaseMessage> rechargeGameList(@Query("task_type") int task_type, @Query("name") String name);
     Observable<BaseMessage> rechargeGameList(@Query("task_type") int task_type, @Query("name") String name);
 
 
     /**
     /**
-     *领取游戏账号
+     * 领取游戏账号
      */
      */
     @PUT("app/game_account/{task_id}")
     @PUT("app/game_account/{task_id}")
     Observable<BaseMessage> gameAccountManager(@Path("task_id") int task_id);
     Observable<BaseMessage> gameAccountManager(@Path("task_id") int task_id);
 
 
     /**
     /**
-     *
-     创建游戏账号
+     * 创建游戏账号
      */
      */
     @POST("app/game_account/add")
     @POST("app/game_account/add")
     Observable<BaseMessage> addGameAccount(@Body JSONObject jsonObject);
     Observable<BaseMessage> addGameAccount(@Body JSONObject jsonObject);
 
 
     /**
     /**
-     *
-     删除游戏账号
+     * 删除游戏账号
      */
      */
     @DELETE("app/game_account/del/{id}")
     @DELETE("app/game_account/del/{id}")
     Observable<BaseMessage> delGameAccount(@Path("id") int id);
     Observable<BaseMessage> delGameAccount(@Path("id") int id);
 
 
     /**
     /**
-     *编辑游戏账号密码
+     * 编辑游戏账号密码
      */
      */
     @PUT("app/game_account/edit")
     @PUT("app/game_account/edit")
     Observable<BaseMessage> editGameAccount(@Body JSONObject jsonObject);
     Observable<BaseMessage> editGameAccount(@Body JSONObject jsonObject);
+
     /**
     /**
-     *查询游戏账号详情
+     * 查询游戏账号详情
      */
      */
     @GET("app/game_account/detail/{id}")
     @GET("app/game_account/detail/{id}")
     Observable<BaseMessage> getGameAccountDetail(@Path("id") int id);
     Observable<BaseMessage> getGameAccountDetail(@Path("id") int id);
+
     /**
     /**
-     *获取平台对应的游戏
+     * 获取平台对应的游戏
      * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
      * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
      */
      */
     @GET("app/game_account/game/list")
     @GET("app/game_account/game/list")
     Observable<BaseMessage> getGameList(@Query("game_type") int game_type);
     Observable<BaseMessage> getGameList(@Query("game_type") int game_type);
+
     /**
     /**
-     *查询游戏账号
+     * 查询游戏账号
      * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
      * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
      */
      */
     @GET("app/game_account/account/list")
     @GET("app/game_account/account/list")
     Observable<BaseMessage> getGameAccountList(@Query("game_type") int game_type, @Query("account") String account, @Query("task_id") int task_id);
     Observable<BaseMessage> getGameAccountList(@Query("game_type") int game_type, @Query("account") String account, @Query("task_id") int task_id);
+
     /**
     /**
-     *查询所有游戏账号
+     * 查询所有游戏账号
      * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
      * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
      */
      */
     @GET("app/game_account/all/list")
     @GET("app/game_account/all/list")
     Observable<BaseMessage> getGameAccountAllList();
     Observable<BaseMessage> getGameAccountAllList();
+
     /**
     /**
-     *获取计算可用定向消费券的数据
+     * 获取计算可用定向消费券的数据
      */
      */
     @GET("app/game_consumption/voucher_and_ratio")
     @GET("app/game_consumption/voucher_and_ratio")
     Observable<BaseMessage> getVoucherAndRatio(@Query("game_id") String game_id);
     Observable<BaseMessage> getVoucherAndRatio(@Query("game_id") String game_id);
+
     /**
     /**
-     *获取任务
+     * 获取任务
      */
      */
     @GET("app/release_task/game_task")
     @GET("app/release_task/game_task")
-    Observable<BaseMessage> releaseGameTask(@Query("page") int page, @Query("per_page") int per_page,@Query("is_hot") int is_hot, @Query("task_type") String task_type, @Query("name") String name);
+    Observable<BaseMessage> releaseGameTask(@Query("page") int page, @Query("per_page") int per_page, @Query("is_hot") int is_hot, @Query("task_type") String task_type, @Query("name") String name);
+
     /**
     /**
-     *获取小米游戏列表
+     * 获取小米游戏列表
      * platform 1:安卓 2:IOS
      * platform 1:安卓 2:IOS
      * download_type  1:非预约下载 2:预约下载
      * download_type  1:非预约下载 2:预约下载
      */
      */
     @GET("app/xiaomi/list")
     @GET("app/xiaomi/list")
-    Observable<BaseMessage> xiaomiGameList(@Query("page") int page, @Query("per_page") int per_page,@Query("platform") int platform , @Query("download_type") int download_type, @Query("name") String name);
+    Observable<BaseMessage> xiaomiGameList(@Query("page") int page, @Query("per_page") int per_page, @Query("platform") int platform, @Query("download_type") int download_type, @Query("name") String name);
 
 
     /**
     /**
-     *领取小米游戏账号
+     * 领取小米游戏账号
      */
      */
     @POST("app/xiaomi/Receive")
     @POST("app/xiaomi/Receive")
     Observable<BaseMessage> receiveXiaomiAccount(@Body JSONObject id);
     Observable<BaseMessage> receiveXiaomiAccount(@Body JSONObject id);
@@ -718,9 +801,37 @@ public interface ApiService {
      */
      */
     @GET("app/user/invitation_top")
     @GET("app/user/invitation_top")
     Observable<BaseMessage> getInvitationTop(@Query("top") int top);//top默认为5,可以不传
     Observable<BaseMessage> getInvitationTop(@Query("top") int top);//top默认为5,可以不传
+
     /**
     /**
      * 获取邀请用户进两月礼物发放记录
      * 获取邀请用户进两月礼物发放记录
      */
      */
     @GET("app/user/invitation_top_record")
     @GET("app/user/invitation_top_record")
     Observable<BaseMessage> getInvitationTopRecord();
     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.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
-import com.kfzs.appstore.utils.string.HexUtils;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.util.LogUtil;
 
 
 import java.io.IOException;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.HashMap;
@@ -32,41 +30,35 @@ public class BaseMessageConverter implements Converter<ResponseBody, BaseMessage
 
 
     /**
     /**
      * 加密
      * 加密
-     * @param requestJson
+     *
+     * @param data
      * @return
      * @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
      * @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");
             map.put("msg", "0-byte body");
             return JSON.toJSONString(map);
             return JSON.toJSONString(map);
         }
         }
-        if(respenseJson.startsWith("{")){
-            return respenseJson;
+        if (data.startsWith("{")) {
+            return data;
         }
         }
         try {
         try {
-            byte[] bytes = HexUtils.hexStr2Bytes(respenseJson);
-            byte[] byteDecode = Kfzssafe.XByteDecode(bytes);
-            return new String(byteDecode);
+            return Kfzssafe.xDecodeS2S(data);
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             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);
             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 String parent_code;
 
 
     private int create_time;
     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){
     public void setAward_amount(String award_amount){
         this.award_amount = 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;
 package com.sheep.gamegroup.model.entity;
 
 
+import android.text.TextUtils;
+
 /**
 /**
  * 首页list
  * 首页list
  * Created by ljy on 2018/5/10.
  * Created by ljy on 2018/5/10.
@@ -10,7 +12,7 @@ public class HomeListEntity {
     private String Desc;//	string描述
     private String Desc;//	string描述
     private String Icon;//	string图标地址
     private String Icon;//	string图标地址
     private int Id;//	integer ($int64)
     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 Order;//	integer ($int64)排序,默认99,越小越靠前
     private String Title;//	string标题
     private String Title;//	string标题
     private int Type;//	integer ($int64)类型(0不跳转,1h5,2原生)
     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 int IsHot;//	   int	  `orm:"column(is_hot);null" description:"是否是热门标签 0:不是 1:是"`
     private String UpdateTime;//	integer ($int64)更新时间
     private String UpdateTime;//	integer ($int64)更新时间
     private String Url;//	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() {
     public String getUrl() {
         return Url;
         return Url;
@@ -45,7 +65,7 @@ public class HomeListEntity {
     }
     }
 
 
     public String getIcon() {
     public String getIcon() {
-        return Icon;
+        return TextUtils.isEmpty(Icon)?"0":Icon;
     }
     }
 
 
     public void setIcon(String icon) {
     public void setIcon(String icon) {

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 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;
+    }
+}

+ 23 - 2
app/src/main/java/com/sheep/gamegroup/model/entity/TaskAcceptedEty.java

@@ -14,6 +14,7 @@ public class TaskAcceptedEty implements Serializable{
     private int release_task_id;// 0,
     private int release_task_id;// 0,
     private String remarks;// "string",
     private String remarks;// "string",
     private String screenshots;// "string",
     private String screenshots;// "string",
+    private int cash_task;// 1.现金任务 2福利任务
     private int status =1;// 0,--------1,已接受任务 2,正在进行中,3完成任务,4放弃任务,5任务失败,6审核失败,7提交审核,8任务已下线,9至少完成了一个任务了
     private int status =1;// 0,--------1,已接受任务 2,正在进行中,3完成任务,4放弃任务,5任务失败,6审核失败,7提交审核,8任务已下线,9至少完成了一个任务了
     private String uid;// 0,
     private String uid;// 0,
     private String update_time;// 0
     private String update_time;// 0
@@ -128,6 +129,14 @@ public class TaskAcceptedEty implements Serializable{
         this.lower_num = lower_num;
         this.lower_num = lower_num;
     }
     }
 
 
+    public int getCash_task() {
+        return cash_task;
+    }
+
+    public void setCash_task(int cash_task) {
+        this.cash_task = cash_task;
+    }
+
     @Override
     @Override
     public boolean equals(Object obj) {
     public boolean equals(Object obj) {
         return obj instanceof TaskAcceptedEty &&
         return obj instanceof TaskAcceptedEty &&
@@ -135,8 +144,20 @@ public class TaskAcceptedEty implements Serializable{
     }
     }
 
 
 
 
-
-
+    /**
+     * 获取任务标签:现金或者福利
+     * 1.现金任务 2福利任务
+     * @return
+     */
+    public String getCashText(){
+        switch (cash_task){
+            case 1:
+                return "现金";
+            case 2:
+            default:
+                return "福利";
+        }
+    }
     public boolean isIs_running() {
     public boolean isIs_running() {
         return status == 1 || status == 2;
         return status == 1 || status == 2;
     }
     }

+ 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 EndTime;//1530115200,
     private String Desc;//"<p>阿斯顿发射的发</p>",
     private String Desc;//"<p>阿斯顿发射的发</p>",
     private String Amount;//1,
     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 task_id;//161,
     private String Time;//0,
     private String Time;//0,
     private String Name;//"212312311111111",
     private String Name;//"212312311111111",
@@ -148,11 +149,11 @@ public class TaskChild implements Serializable {
         Amount = amount;
         Amount = amount;
     }
     }
 
 
-    public String getId() {
+    public int getId() {
         return Id;
         return Id;
     }
     }
 
 
-    public void setId(String id) {
+    public void setId(int id) {
         Id = id;
         Id = id;
     }
     }
 
 
@@ -188,6 +189,14 @@ public class TaskChild implements Serializable {
         TaskType = taskType;
         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字段
      * 重组desc字段
      * @param 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;
 package com.sheep.gamegroup.model.entity;
 
 
+import android.support.annotation.IntDef;
 import android.text.TextUtils;
 import android.text.TextUtils;
 
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
@@ -8,6 +9,8 @@ import com.sheep.gamegroup.model.api.IDownload;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.ListUtil;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.List;
 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畅思
         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字段
      * 重组desc字段
      * @param 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 {
+    }
+    /**
+     * 根据状态获取当前第一个子任务
+     *
+     1、 任务未开启时——即将开启
+     2、 任务未领取时——可领取
+     3、 任务已领取待完成时——进行中
+     4、 任务已提交待审核——待审核
+     5、 任务审核通过——已完成
+     6、 任务审核失败——审核失败
+     7、任务已过期未完成——已过期
+     * @return
+     */
+    public TaskChild getCanCommitChild(@STATUS int status) {
+        if(!ListUtil.isEmpty(child)){
+            for (TaskChild taskChild : child) {
+                if(status == taskChild.getStatus()){
+                    return taskChild;
+                }
+            }
+        }
+        return null;
+    }
+    /**
+     * 获取当前第一个可提交子任务的already_accepted_task_id
+     *
+     1、 任务未开启时——即将开启
+     2、 任务未领取时——可领取
+     3、 任务已领取待完成时——进行中
+     4、 任务已提交待审核——待审核
+     5、 任务审核通过——已完成
+     6、 任务审核失败——审核失败
+     7、任务已过期未完成——已过期
+     * @return
+     */
+    public int getCanCommitChildRelease_task_id() {
+        //先找审核失败的子任务
+        TaskChild commitScreenShotTask = getCanCommitChild(TaskEty.STATUS_FAIL);
+        if(commitScreenShotTask == null){
+        //再找进行中的子任务
+            commitScreenShotTask = getCanCommitChild(TaskEty.STATUS_RUNNING);
+        }
+        return commitScreenShotTask == null ? -1 : commitScreenShotTask.getAlready_accepted_task_id();
+    }
+
+    /**
+     * 有子任务可以接受
+     * @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 deadline;// 0,
     private String duration;// 0,
     private String duration;// 0,
     private int id;// 0,
     private int id;// 0,
+    private int cash_task;// 0,
     private String last_num;// 0,
     private String last_num;// 0,
     private String name;//private String string",
     private String name;//private String string",
     private String online_time;// 0,
     private String online_time;// 0,
@@ -243,12 +244,30 @@ public class TaskReleaseEty implements Serializable{
         this.task = task;
         this.task = task;
     }
     }
 
 
+    public int getCash_task() {
+        return cash_task;
+    }
+
+    public void setCash_task(int cash_task) {
+        this.cash_task = cash_task;
+    }
 
 
     @Override
     @Override
     public boolean equals(Object obj) {
     public boolean equals(Object obj) {
         return obj instanceof TaskReleaseEty && ((TaskReleaseEty) obj).getId() == id;
         return obj instanceof TaskReleaseEty && ((TaskReleaseEty) obj).getId() == id;
     }
     }
 
 
+
+
+    public String getCashOrWelfare(){
+        switch (cash_task){
+            case 2:
+                return "福利";
+            case 1:
+            default:
+                return "现金";
+        }
+    }
     /**
     /**
      * 任务是否下线
      * 任务是否下线
      * @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;//实名认证次数
     private int certification_count;//实名认证次数
     @Column(name = "must_bind_mobile")
     @Column(name = "must_bind_mobile")
     private int must_bind_mobile;//是否必须绑定手机号 0不是 1是
     private int must_bind_mobile;//是否必须绑定手机号 0不是 1是
+    @Column(name = "gender")
+    private int gender;
+    @Column(name = "birthday")
+    private String birthday;
+    @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() {
     public String getWx_nickname() {
         return wx_nickname;
         return wx_nickname;
@@ -107,7 +147,7 @@ public class UserEntity implements Serializable {
     }
     }
 
 
     public String getBalance() {
     public String getBalance() {
-        return balance == null?"0":balance;
+        return balance == null ? "0" : balance;
     }
     }
 
 
     public void setBalance(String balance) {
     public void setBalance(String balance) {
@@ -131,7 +171,7 @@ public class UserEntity implements Serializable {
     }
     }
 
 
     public String getTotal_asset() {
     public String getTotal_asset() {
-        return total_asset == null?"0":total_asset;
+        return total_asset == null ? "0" : total_asset;
     }
     }
 
 
     public void setTotal_asset(String total_asset) {
     public void setTotal_asset(String total_asset) {
@@ -291,22 +331,10 @@ public class UserEntity implements Serializable {
     }
     }
 
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
     public boolean isNewRegistUser() {//新注册用户
     public boolean isNewRegistUser() {//新注册用户
         return TextUtils.equals(create_time, last_login_time);
         return TextUtils.equals(create_time, last_login_time);
     }
     }
+
     //没有实名认证
     //没有实名认证
     public boolean notCertification() {
     public boolean notCertification() {
         return TextUtils.isEmpty(getReal_name()) || TextUtils.isEmpty(getId_number());
         return TextUtils.isEmpty(getReal_name()) || TextUtils.isEmpty(getId_number());
@@ -314,17 +342,20 @@ public class UserEntity implements Serializable {
 
 
     /**
     /**
      * 老用户选择绑定手机号
      * 老用户选择绑定手机号
+     *
      * @return
      * @return
      */
      */
-    public boolean canBindMobile(){
+    public boolean canBindMobile() {
         return must_bind_mobile == 0 && TextUtils.isEmpty(mobile);
         return must_bind_mobile == 0 && TextUtils.isEmpty(mobile);
     }
     }
+
     //测试服用测试分享链接,正式服用正式的
     //测试服用测试分享链接,正式服用正式的
-    public String getShareLink(@DialogShare.SHARE_TYPE String type){
+    public String getShareLink(@DialogShare.SHARE_TYPE String type) {
         return CommonUtil.getInstance().jointString(getShareLink(), type);
         return CommonUtil.getInstance().jointString(getShareLink(), type);
     }
     }
+
     //测试服用测试分享链接,正式服用正式的
     //测试服用测试分享链接,正式服用正式的
-    public String getShareLink(){//测试服对应的下载地址为http://10.8.230.17:7776/newsheep?id=32778005
-        return TestUtil.isSheep() ? getShare_link() : "http://10.8.210.230:8902/share.html?invitation_code="+getInvitation_code();
+    public String getShareLink() {//测试服对应的下载地址为http://10.8.230.17:7776/newsheep?id=32778005
+        return TestUtil.isSheep() ? getShare_link() : "http://10.8.210.230:8902/share.html?invitation_code=" + getInvitation_code();
     }
     }
 }
 }

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

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

+ 0 - 1
app/src/main/java/com/sheep/gamegroup/model/util/CacheInterceptor.java

@@ -30,7 +30,6 @@ import okio.BufferedSource;
  */
  */
 public class CacheInterceptor implements Interceptor {
 public class CacheInterceptor implements Interceptor {
     private static final Charset UTF8 = Charset.forName("UTF-8");
     private static final Charset UTF8 = Charset.forName("UTF-8");
-    public static final int DEFAULT_SAVE_TIME = 300;//单位秒
 
 
     public Response intercept(Chain chain) throws IOException {
     public Response intercept(Chain chain) throws IOException {
         Request request = chain.request();
         Request request = chain.request();

+ 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.ChannelContent;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.FastJsonUtils;
 import com.sheep.gamegroup.util.FastJsonUtils;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.PreferenceUtils;
 import com.sheep.gamegroup.util.PreferenceUtils;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
 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);
             loginEty =FastJsonUtils.toBean( JSONObject.toJSONString(baseMessage.getData()),LoginEntity.class);
             SpUtils.saveToken(SheepApp.mContext, loginEty.getToken());
             SpUtils.saveToken(SheepApp.mContext, loginEty.getToken());
             DataUtil.getInstance().setUserEntity(loginEty.getUser());
             DataUtil.getInstance().setUserEntity(loginEty.getUser());
+            LogUtil.logI("token--------"+loginEty.getToken());
         }
         }
         view.NetSuccess(1,"登录成功", EntityUtils.getUserCode(loginEty));
         view.NetSuccess(1,"登录成功", EntityUtils.getUserCode(loginEty));
         TestUtil.saveUser(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{
     interface Presenter{
 
 
         void getCaptcha(String telphone) throws JSONException;
         void getCaptcha(String telphone) throws JSONException;
+        boolean getCaptchaa(String telphone) throws JSONException;
         void loginByCaptcha(String telphone, String code);
         void loginByCaptcha(String telphone, String code);
 
 
         void switchPhone(JSONObject object);
         void switchPhone(JSONObject object);

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

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

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

@@ -27,7 +27,7 @@ public class TaskListPresenter implements TaskListContract.Presenter {
 
 
     @Override
     @Override
     public void acceptedTask(int page, int pre_page) {
     public void acceptedTask(int page, int pre_page) {
-        apiService.acceptedTask(page, pre_page)
+        apiService.acceptedTask(page, pre_page, 0)
                 .subscribeOn(Schedulers.io())
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
                 .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
     @Override
     public void acceptedTask(RequestParameEty o) {
     public void acceptedTask(RequestParameEty o) {
-        apiService.acceptedTask(o.getPage(), o.getPer_page())
+        apiService.acceptedTask(o.getPage(), o.getPer_page(), 0)
                 .subscribeOn(Schedulers.io())
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
                 .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.AppRecord;
 import com.sheep.gamegroup.model.entity.AppUsage;
 import com.sheep.gamegroup.model.entity.AppUsage;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 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.model.util.AutoTaskListUtil;
 import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.ListUtil;
 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.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
 
+import java.util.Calendar;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.TreeMap;
 import java.util.TreeMap;
 
 
+import static android.content.Context.USAGE_STATS_SERVICE;
+
 /**
 /**
  * Created by realicing on 2018/6/27.
  * Created by realicing on 2018/6/27.
  * realicing@sina.com
  * realicing@sina.com
@@ -132,7 +137,7 @@ public class AppUsageManager {
     public  boolean needOpenLookAppUsageStatsPermisson(boolean isSaveData){
     public  boolean needOpenLookAppUsageStatsPermisson(boolean isSaveData){
         if(android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP){   // 如果大于等于5.1 再做判断
         if(android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP){   // 如果大于等于5.1 再做判断
             long time = System.currentTimeMillis();
             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;
             List<UsageStats> queryUsageStats = usageStatsManager != null ? usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, 0, time) : null;
             boolean isEmpty = ListUtil.isEmpty(queryUsageStats);
             boolean isEmpty = ListUtil.isEmpty(queryUsageStats);
             if(!isEmpty && isSaveData){
             if(!isEmpty && isSaveData){
@@ -215,7 +220,7 @@ public class AppUsageManager {
     public long getTotalTimeInForeground(AppUsage appUsage) {
     public long getTotalTimeInForeground(AppUsage appUsage) {
         String packageName = appUsage.getPackageName();
         String packageName = appUsage.getPackageName();
         if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP){
         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();
             long time = System.currentTimeMillis();
             if(mUsageStatsManager != null) {
             if(mUsageStatsManager != null) {
                 List<UsageStats> usageStatsList = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, AutoTaskListUtil.getInstance().getReceiveTaskTime(), time);
                 List<UsageStats> usageStatsList = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, AutoTaskListUtil.getInstance().getReceiveTaskTime(), time);
@@ -290,7 +295,7 @@ public class AppUsageManager {
 
 
     public void println() {
     public void println() {
         if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP){
         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();
             long time = System.currentTimeMillis();
             if(mUsageStatsManager != null) {
             if(mUsageStatsManager != null) {
                 List<UsageStats> usageStatsList = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, AutoTaskListUtil.getInstance().getReceiveTaskTime(), time);
                 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;
+    }
 }
 }

+ 204 - 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.Html;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.util.Log;
 import android.util.Log;
+import android.util.TypedValue;
 import android.view.View;
 import android.view.View;
 import android.view.ViewTreeObserver;
 import android.view.ViewTreeObserver;
 import android.widget.ImageView;
 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.FindApp;
 import com.sheep.gamegroup.model.entity.GameAccountEntity;
 import com.sheep.gamegroup.model.entity.GameAccountEntity;
 import com.sheep.gamegroup.model.entity.HomeListEntity;
 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.TaskChild;
 import com.sheep.gamegroup.model.entity.TaskDescEntity;
 import com.sheep.gamegroup.model.entity.TaskDescEntity;
 import com.sheep.gamegroup.model.entity.TaskEty;
 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.model.util.SheepSubscriber;
 import com.sheep.gamegroup.usage.AppUsageManager;
 import com.sheep.gamegroup.usage.AppUsageManager;
 import com.sheep.gamegroup.view.activity.GameTaskOrderListAct;
 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.gamegroup.view.dialog.DialogShare;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
@@ -68,15 +75,18 @@ import com.zhy.http.okhttp.callback.FileCallBack;
 
 
 import org.afinal.simplecache.ApiKey;
 import org.afinal.simplecache.ApiKey;
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.EventBus;
+import org.xutils.ex.DbException;
 
 
 import java.io.File;
 import java.io.File;
 import java.lang.reflect.Field;
 import java.lang.reflect.Field;
 import java.net.HttpURLConnection;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.net.URL;
 import java.security.MessageDigest;
 import java.security.MessageDigest;
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Calendar;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Locale;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Map;
 import java.util.Set;
 import java.util.Set;
@@ -87,6 +97,7 @@ import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 import rx.schedulers.Schedulers;
 
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.LINK_SHARE;
 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.QR_COPY;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.XIAOMI_GAME_RECEIVE;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.XIAOMI_GAME_RECEIVE;
 import static com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp.PUBLIC_TAG_PREFIX_TEXTVIEW_LIST;
 import static com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp.PUBLIC_TAG_PREFIX_TEXTVIEW_LIST;
@@ -113,6 +124,8 @@ public class CommonUtil {
     public static String GAME_DOWNLOAD = "下载游戏";
     public static String GAME_DOWNLOAD = "下载游戏";
     public static String GAME_INSTALL = "安装游戏";
     public static String GAME_INSTALL = "安装游戏";
     public static String GAME_OPEN = "开始试玩";
     public static String GAME_OPEN = "开始试玩";
+    public static String GAME_RESERVATION = "预约游戏";
+    public static String TASK_OFFLINE = "任务已下线";
     private static CommonUtil commonUtil;
     private static CommonUtil commonUtil;
 
 
     public static CommonUtil getInstance() {
     public static CommonUtil getInstance() {
@@ -407,6 +420,11 @@ public class CommonUtil {
     public void goNative(Context context, HomeListEntity entity, String from) {
     public void goNative(Context context, HomeListEntity entity, String from) {
 
 
         switch (Integer.valueOf(entity.getJump())) {
         switch (Integer.valueOf(entity.getJump())) {
+            case -1://新手任务
+
+                DialogNewbieTaskList.tryShowDialog((Activity) context);
+                NEWBIE_TASK.onEvent();
+                break;
             case 1://试玩赚钱
             case 1://试玩赚钱
 
 
                 Jump2View.getInstance().goTryplayView(context, null);
                 Jump2View.getInstance().goTryplayView(context, null);
@@ -454,10 +472,10 @@ public class CommonUtil {
             case 12://闲玩任务
             case 12://闲玩任务
                 Jump2View.getInstance().goXianwanWeb(context, null, null);
                 Jump2View.getInstance().goXianwanWeb(context, null, null);
                 break;
                 break;
-            case 13://游戏代充
+            case 13://游戏代充(游戏充值)
                 Jump2View.getInstance().goGameRecharge((Activity) context, null);
                 Jump2View.getInstance().goGameRecharge((Activity) context, null);
                 break;
                 break;
-            case 14://幂动科技
+            case 14://幂动科技(简单任务)
                 Jump2View.getInstance().goMiDong((Activity) context, null);
                 Jump2View.getInstance().goMiDong((Activity) context, null);
                 break;
                 break;
             case 15://小米游戏列表
             case 15://小米游戏列表
@@ -633,7 +651,7 @@ public class CommonUtil {
                 state = " (已完成 )";
                 state = " (已完成 )";
                 break;
                 break;
             case 6:
             case 6:
-                state = " (审核失败)";
+                state = " (审核失败,请重新上传截图)";
                 break;
                 break;
             case 7:
             case 7:
                 state = " (已过期 )";
                 state = " (已过期 )";
@@ -1754,4 +1772,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) {
+
+                    }
+                });
+    }
 }
 }

+ 10 - 2
app/src/main/java/com/sheep/gamegroup/util/DataUtil.java

@@ -206,7 +206,12 @@ public class DataUtil {
         if (BuildConfig.XXTEA_ENCRYPT) {
         if (BuildConfig.XXTEA_ENCRYPT) {
             cacheData = BaseMessageConverter.decrypt(cacheData);
             cacheData = BaseMessageConverter.decrypt(cacheData);
         }
         }
-        return JSON.parseObject(cacheData, BaseMessage.class).getDataList(classT);
+        try {
+            return JSON.parseObject(cacheData, BaseMessage.class).getDataList(classT);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ListUtil.emptyList();
+        }
     }
     }
 
 
 
 
@@ -221,7 +226,7 @@ public class DataUtil {
     }
     }
 
 
     public boolean isNewData(String key) {
     public boolean isNewData(String key) {
-        return !TextUtils.equals(aCache.getAsString(ApiKey.oldEqualsNew(key)), "yes");//新老数据不同,说明是新数据
+        return !TextUtils.equals(aCache.getAsString(ApiKey.oldEqualsNew(SheepApp.getInstance().getConnectAddress().getAppUrl() + "v1/" + key)), "yes");//新老数据不同,说明是新数据
     }
     }
 
 
     //-----------------------------------------缓存数据部分-----------------------------------------------------结束
     //-----------------------------------------缓存数据部分-----------------------------------------------------结束
@@ -398,6 +403,9 @@ public class DataUtil {
         }
         }
         return null;
         return null;
     }
     }
+    public static boolean 是官方包吗(){
+        return "kfzs".equals(ChannelContent.getInstance().getChannel_name());
+    }
 //    //正在运行的任务
 //    //正在运行的任务
 //    List<TaskAcceptedEty> taskAcceptedEtyList = ListUtil.emptyList();
 //    List<TaskAcceptedEty> taskAcceptedEtyList = ListUtil.emptyList();
 //    public void addTaskAcceptedEtyList(List<TaskAcceptedEty> list) {
 //    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;
 package com.sheep.gamegroup.util;
 
 
 import android.content.Intent;
 import android.content.Intent;
+import android.graphics.Bitmap;
 import android.graphics.Color;
 import android.graphics.Color;
 import android.net.Uri;
 import android.net.Uri;
 import android.text.TextUtils;
 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.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 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.OkHttpUtils;
 import com.zhy.http.okhttp.callback.FileCallBack;
 import com.zhy.http.okhttp.callback.FileCallBack;
 
 
@@ -80,10 +82,17 @@ public class GlideImageLoader {
                 .into(imageView);
                 .into(imageView);
     }
     }
     public static void setGameImage(ImageView imageView, String url) {
     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) {
     public static void setGameImage(ImageView imageView, String url, int radius) {
         Glide.with(SheepApp.getInstance())
         Glide.with(SheepApp.getInstance())
@@ -92,6 +101,32 @@ public class GlideImageLoader {
                 .into(imageView);
                 .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) {
     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>() {
         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.net.Uri;
 import android.os.Bundle;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.Gravity;
 import android.view.Gravity;
 import android.view.View;
 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.WebviewEntity;
 import com.sheep.gamegroup.model.entity.XianWanEntity;
 import com.sheep.gamegroup.model.entity.XianWanEntity;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 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.ActCreditCardTaskList;
 import com.sheep.gamegroup.view.activity.ActCreditCardWeb;
 import com.sheep.gamegroup.view.activity.ActCreditCardWeb;
 import com.sheep.gamegroup.view.activity.ActFindGame;
 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.G;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
 
-import org.afinal.simplecache.ACache;
 import org.xutils.ex.DbException;
 import org.xutils.ex.DbException;
 
 
 import java.io.File;
 import java.io.File;
@@ -254,11 +255,11 @@ public class Jump2View {
             public void call(UserEntity userEntity) {
             public void call(UserEntity userEntity) {
                 if(userEntity != null && !TextUtils.isEmpty(userEntity.getShare_link())) {
                 if(userEntity != null && !TextUtils.isEmpty(userEntity.getShare_link())) {
                     //PersionInfoAct.java与AskGetMoneyAct.java中分享二维码时的图片预下载
                     //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()
                 if(userEntity != null && userEntity.canBindMobile()
-                    //&& !BuildConfig.DEBUG
+                    && !BuildConfig.DEBUG
                         ){//老用户没有绑定手机号
                         ){//老用户没有绑定手机号
                     Jump2View.getInstance().goBindPhone(activity, 2);
                     Jump2View.getInstance().goBindPhone(activity, 2);
                     return;
                     return;
@@ -280,11 +281,11 @@ public class Jump2View {
             public void call(UserEntity userEntity) {
             public void call(UserEntity userEntity) {
                 if(userEntity != null && !TextUtils.isEmpty(userEntity.getShare_link())) {
                 if(userEntity != null && !TextUtils.isEmpty(userEntity.getShare_link())) {
                     //PersionInfoAct.java与AskGetMoneyAct.java中分享二维码时的图片预下载
                     //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()
                 if(userEntity != null && userEntity.canBindMobile()
-//                        && !BuildConfig.DEBUG
+                        && !BuildConfig.DEBUG
                         ){//老用户没有绑定手机号
                         ){//老用户没有绑定手机号
                     Jump2View.getInstance().goBindPhone(activity, 1);
                     Jump2View.getInstance().goBindPhone(activity, 1);
                     return;
                     return;
@@ -1178,6 +1179,7 @@ public class Jump2View {
     }
     }
     public void gotoMain(Activity activity) {
     public void gotoMain(Activity activity) {
         String openId = SpUtils.getToken(SheepApp.getInstance());
         String openId = SpUtils.getToken(SheepApp.getInstance());
+        LogUtil.logI("GOTOMIAN_____TOKEN----"+openId);
         if (!TextUtils.isEmpty(openId)) {
         if (!TextUtils.isEmpty(openId)) {
             checkOrGoHomePage(activity);
             checkOrGoHomePage(activity);
         } else {
         } else {
@@ -1446,6 +1448,7 @@ public class Jump2View {
             G.showToast("敬请期待");
             G.showToast("敬请期待");
             return;
             return;
         }
         }
+        CommonUtil.getInstance().initMiDong(activity, DataUtil.getInstance().getUserId());
         if(SheepApp.getInstance().isInitMidong()){
         if(SheepApp.getInstance().isInitMidong()){
             Intent intent = new Intent(activity, ActMiDong.class);
             Intent intent = new Intent(activity, ActMiDong.class);
             activity.startActivity(intent);
             activity.startActivity(intent);
@@ -1460,4 +1463,12 @@ public class Jump2View {
         activity.startActivity(intent);
         activity.startActivity(intent);
         XIAOMI_GAME_LIST.onEvent();
         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;
 package com.sheep.gamegroup.util;
 
 
+import android.util.Log;
+
 /**
 /**
  * Created by realicing on 2018/5/12.
  * Created by realicing on 2018/5/12.
  * realicing@sina.com
  * realicing@sina.com
  */
  */
 public class LogUtil {
 public class LogUtil {
+
+    /**
+     * isDebug ,debug环境下设成true,方便查看日志,release环境下设成false,减少打印信息的输出,
+     */
+    private static boolean isDebug = true;
+
     public static void println(Object... msgs) {
     public static void println(Object... msgs) {
-        if(TestUtil.isTest()) {
+        if (TestUtil.isTest()) {
             for (int i = 0; i < msgs.length; i++) {
             for (int i = 0; i < msgs.length; i++) {
-                if(i != 0) {
+                if (i != 0) {
                     System.out.print(" ");
                     System.out.print(" ");
                 }
                 }
                 System.out.print(msgs[i]);
                 System.out.print(msgs[i]);
@@ -16,4 +24,33 @@ public class LogUtil {
             System.out.println();
             System.out.println();
         }
         }
     }
     }
+
+    /**
+     * @param message 需要打印的String,
+     *                调用系统的Log.i(?,?);
+     */
+    public static void logI(String message){
+        if (isDebug){
+            Log.i("LOGI",message);
+        }
+    }
+    /**
+     * @param message 需要打印的String,
+     *                  调用系统的Log.e(?,?);
+     */
+    public static void logE(String message){
+        if (isDebug){
+            Log.e("LOGE",message);
+        }
+    }
+    /**
+     * @param message 需要打印的String,
+     *                  调用系统的Log.d(?,?);
+     */
+    public static void logD(String message){
+        if (isDebug){
+            Log.d("LOGD",message);
+        }
+    }
+
 }
 }

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

@@ -153,6 +153,7 @@ public class MyDbManager {
         AppUsage appUsage = getAppUsage(packageName);
         AppUsage appUsage = getAppUsage(packageName);
         return appUsage == null ? 0 : appUsage.getTotalTimeInForeground();
         return appUsage == null ? 0 : appUsage.getTotalTimeInForeground();
     }
     }
+
     public AppUsage getAppUsage(String packageName){
     public AppUsage getAppUsage(String packageName){
         try{
         try{
             return db.selector(AppUsage.class)
             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
      * @param activity
      */
      */
     public static void test(final Activity 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","空间不足提示框",
                 "开启第三方应用使用情况","h5跳转","新手对话框","md5","空间不足提示框",
                 "显示已经安装应用列表","复制faq地址","复制代理地址","复制世界杯地址","任务游戏列表","世界杯活动","交通银行信用卡测试",
                 "显示已经安装应用列表","复制faq地址","复制代理地址","复制世界杯地址","任务游戏列表","世界杯活动","交通银行信用卡测试",
@@ -297,6 +297,9 @@ public class TestUtil {
                     @Override
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
                     public void onClick(DialogInterface dialog, int which) {
                         switch (items[which]) {
                         switch (items[which]) {
+                            case "审核中心":
+                                Jump2View.getInstance().goAuditTastList(activity, null);
+                                break;
                             case "loading":
                             case "loading":
                                 DialogLoading.showDialog(activity);
                                 DialogLoading.showDialog(activity);
                                 break;
                                 break;

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

@@ -1,12 +1,15 @@
 package com.sheep.gamegroup.util;
 package com.sheep.gamegroup.util;
 
 
+import android.app.ActionBar;
 import android.app.Activity;
 import android.app.Activity;
+import android.app.Dialog;
 import android.app.ProgressDialog;
 import android.app.ProgressDialog;
 import android.content.Context;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.Bitmap;
 import android.graphics.Color;
 import android.graphics.Color;
+import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.Drawable;
 import android.media.MediaPlayer;
 import android.media.MediaPlayer;
 import android.net.Uri;
 import android.net.Uri;
@@ -18,27 +21,50 @@ import android.support.v7.widget.RecyclerView;
 import android.text.Html;
 import android.text.Html;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.text.method.ScrollingMovementMethod;
 import android.text.method.ScrollingMovementMethod;
+import android.util.DisplayMetrics;
+import android.util.TypedValue;
+import android.view.Display;
 import android.view.Gravity;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View;
 import android.view.Window;
 import android.view.Window;
 import android.view.WindowManager;
 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.ImageView;
 import android.widget.LinearLayout;
 import android.widget.LinearLayout;
+import android.widget.PopupWindow;
 import android.widget.TextView;
 import android.widget.TextView;
 import android.widget.VideoView;
 import android.widget.VideoView;
 
 
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.RequestBuilder;
 import com.bumptech.glide.RequestBuilder;
 import com.bumptech.glide.request.RequestOptions;
 import com.bumptech.glide.request.RequestOptions;
+import com.google.gson.Gson;
+import com.kfzs.duanduan.fragment.FgtPersonalCenter;
+import com.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.Advertising;
+import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.Container;
 import com.sheep.gamegroup.model.entity.Container;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.GameAccountEntity;
 import com.sheep.gamegroup.model.entity.GameAccountEntity;
+import com.sheep.gamegroup.model.entity.HomeListEntity;
 import com.sheep.gamegroup.model.entity.PayEntity;
 import com.sheep.gamegroup.model.entity.PayEntity;
+import com.sheep.gamegroup.model.entity.RobTask;
+import com.sheep.gamegroup.model.entity.TaskEty;
+import com.sheep.gamegroup.model.entity.TaskReleaseEty;
+import com.sheep.gamegroup.model.entity.UserEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.glide.RoundedCornersTransformation;
 import com.sheep.gamegroup.util.glide.RoundedCornersTransformation;
+import com.sheep.gamegroup.view.activity.PersonalInfoAct;
 import com.sheep.gamegroup.view.activity.SplashAct;
 import com.sheep.gamegroup.view.activity.SplashAct;
+import com.sheep.gamegroup.view.activity.TaskDetailAct;
 import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
 import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
 import com.sheep.gamegroup.view.dialog.DialogAddAccount;
 import com.sheep.gamegroup.view.dialog.DialogAddAccount;
 import com.sheep.gamegroup.view.dialog.DialogModifyAccount;
 import com.sheep.gamegroup.view.dialog.DialogModifyAccount;
@@ -50,6 +76,7 @@ import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
 
 import org.afinal.simplecache.ACache;
 import org.afinal.simplecache.ACache;
 
 
@@ -60,8 +87,11 @@ import java.io.IOException;
 import java.util.List;
 import java.util.List;
 import java.util.Locale;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Map;
+import java.util.Random;
 
 
+import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.functions.Action1;
+import rx.schedulers.Schedulers;
 
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.AD_TOAST;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.AD_TOAST;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.QR_COPY;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.QR_COPY;
@@ -73,11 +103,14 @@ import static com.sheep.gamegroup.util.UMConfigUtils.Event.QR_SHARE;
  * realicing@sina.com
  * realicing@sina.com
  */
  */
 public class ViewUtil {
 public class ViewUtil {
+
     public static final int REQUEST_CODE_TASK_LIST = 110;
     public static final int REQUEST_CODE_TASK_LIST = 110;
     private static ViewUtil viewUtil;
     private static ViewUtil viewUtil;
+    static int result = 0;
+    static RobTask mRobTask;
 
 
-    public static ViewUtil newInstance(){
-        if(viewUtil == null){
+    public static ViewUtil newInstance() {
+        if (viewUtil == null) {
             viewUtil = new ViewUtil();
             viewUtil = new ViewUtil();
         }
         }
         return viewUtil;
         return viewUtil;
@@ -98,7 +131,8 @@ public class ViewUtil {
         final ImageView iv_qr = view.findViewById(R.id.iv_qr);
         final ImageView iv_qr = view.findViewById(R.id.iv_qr);
         View save_pic = view.findViewById(R.id.save_pic);
         View save_pic = view.findViewById(R.id.save_pic);
         ImageView iv_qr_small = view.findViewById(R.id.iv_qr_small);
         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)
         Glide.with(activity)
                 .load(R.drawable.icon)
                 .load(R.drawable.icon)
                 .apply(new RequestOptions().override(G.WIDTH / 8))
                 .apply(new RequestOptions().override(G.WIDTH / 8))
@@ -135,6 +169,314 @@ 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);
+        ViewUtil.setDefaultText(tvTitel);
+        ViewUtil.setDefaultText(tvDutyMoney);
+        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);
+        try {
+            popupWindow.showAtLocation(viewAnchor, Gravity.CENTER, 0, 0);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        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", false);
+                intent.putExtra("is_from_task_list", false);
+                intent.putExtra("task_id", mRobTask.getM().getId());
+                mActivity.startActivity(intent);
+
+            }
+        });
+        ivClose.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                popupWindow.dismiss();
+            }
+        });
+
+    }
+
+    /**
+     * 设置默认方块文本
+     * @param textView
+     */
+    public static void setDefaultText(TextView textView) {
+        String text = textView.getText().toString();
+        int length = TextUtils.isEmpty(text) ? Math.abs(new Random().nextInt(7)) : text.length();
+        StringBuilder stringBuilder = new StringBuilder();
+        for (int i = 0; i < length; i++) {
+            stringBuilder.append("\u2588");
+        }
+        textView.setText(stringBuilder);
+    }
+
+
+    /**
+     * 兑换红包弹窗
+     *
+     * @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);
+        try {
+            popupWindow.showAtLocation(viewAnchor, Gravity.CENTER, 0, 0);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        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);
+        try {
+            popupWindow.showAtLocation(viewAnchor, Gravity.BOTTOM, 0, 0);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        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
      * @param activity
@@ -159,7 +501,7 @@ public class ViewUtil {
         if (!TextUtils.isEmpty(link))
         if (!TextUtils.isEmpty(link))
             tv_link.setText(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() {
         dialog_close.setOnClickListener(new View.OnClickListener() {
             @Override
             @Override
             public void onClick(View v) {
             public void onClick(View v) {
@@ -249,14 +591,14 @@ public class ViewUtil {
         return null;
         return null;
     }
     }
 
 
-    public static void setH5Text(TextView textView,WebView webView, String content) {
-        if(textView == null || webView == null){
+    public static void setH5Text(TextView textView, WebView webView, String content) {
+        if (textView == null || webView == null) {
             return;
             return;
         }
         }
-        if(ViewUtil.isH5Content(content)){
+        if (ViewUtil.isH5Content(content)) {
             webView.loadDataWithBaseURL(null, content, "text/html", "utf-8", null);
             webView.loadDataWithBaseURL(null, content, "text/html", "utf-8", null);
             textView.setVisibility(View.GONE);
             textView.setVisibility(View.GONE);
-        } else if(content.startsWith("<p>")){
+        } else if (content.startsWith("<p>")) {
             ViewUtil.loadDataWithBaseURL(webView, content);
             ViewUtil.loadDataWithBaseURL(webView, content);
             textView.setVisibility(View.GONE);
             textView.setVisibility(View.GONE);
         } else {
         } else {
@@ -274,8 +616,8 @@ public class ViewUtil {
     }
     }
 
 
     public static void setH5Text(TextView textView, String content) {
     public static void setH5Text(TextView textView, String content) {
-        if(textView != null) {
-            if(TextUtils.isEmpty(content)){
+        if (textView != null) {
+            if (TextUtils.isEmpty(content)) {
                 textView.setText("");
                 textView.setText("");
                 return;
                 return;
             }
             }
@@ -302,6 +644,7 @@ public class ViewUtil {
     public static AlertDialog showMsgDialog(final Context context, String msg, String title) {
     public static AlertDialog showMsgDialog(final Context context, String msg, String title) {
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setBtnLeftText("知道了"));
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setBtnLeftText("知道了"));
     }
     }
+
     public static AlertDialog showMsgDialog(final Context context, String msg, String title, String leftBtn, String rightBtn,
     public static AlertDialog showMsgDialog(final Context context, String msg, String title, String leftBtn, String rightBtn,
                                             View.OnClickListener onClickListener, View.OnClickListener onRightClickListener, View.OnClickListener onCloseClickListener) {
                                             View.OnClickListener onClickListener, View.OnClickListener onRightClickListener, View.OnClickListener onCloseClickListener) {
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setBtnLeftText(leftBtn)
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setBtnLeftText(leftBtn)
@@ -310,10 +653,12 @@ public class ViewUtil {
                 .setBtnRightOnClickListener(onRightClickListener)
                 .setBtnRightOnClickListener(onRightClickListener)
                 .setBtnCloseOnClickListener(onCloseClickListener));
                 .setBtnCloseOnClickListener(onCloseClickListener));
     }
     }
-    public static AlertDialog showMsgDialog(final Context context, String msg, String title,boolean isFinish) {
+
+    public static AlertDialog showMsgDialog(final Context context, String msg, String title, boolean isFinish) {
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setFinish(isFinish).setBtnLeftText("知道了"));
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setFinish(isFinish).setBtnLeftText("知道了"));
     }
     }
 
 
+
     public static AlertDialog showMsgDialog(Context context, final DialogConfig dialogConfig) {
     public static AlertDialog showMsgDialog(Context context, final DialogConfig dialogConfig) {
         final Context mContext = context == null ? ActivityManager.getInstance().currentActivity() : context;
         final Context mContext = context == null ? ActivityManager.getInstance().currentActivity() : context;
         String title = dialogConfig.getTitle();
         String title = dialogConfig.getTitle();
@@ -328,7 +673,7 @@ public class ViewUtil {
         View dialog_parent = View.inflate(mContext, R.layout.dialog_parent, null);
         View dialog_parent = View.inflate(mContext, R.layout.dialog_parent, null);
         final AlertDialog dialog = new AlertDialog.Builder(mContext, mContext instanceof Activity ? R.style.MyDialogActivityTheme : R.style.AppTheme_Dialog_Alert).setView(dialog_parent).create();
         final AlertDialog dialog = new AlertDialog.Builder(mContext, mContext instanceof Activity ? R.style.MyDialogActivityTheme : R.style.AppTheme_Dialog_Alert).setView(dialog_parent).create();
         TextView dialog_title = dialog_parent.findViewById(R.id.dialog_title);
         TextView dialog_title = dialog_parent.findViewById(R.id.dialog_title);
-        switch (dialogConfig.getTheme()){//设置按钮风格
+        switch (dialogConfig.getTheme()) {//设置按钮风格
             case DialogConfig.THEME_PURPLE:
             case DialogConfig.THEME_PURPLE:
                 dialog_title.setBackgroundResource(R.drawable.shape_purple_solid_rectangle_top);
                 dialog_title.setBackgroundResource(R.drawable.shape_purple_solid_rectangle_top);
                 break;
                 break;
@@ -340,7 +685,7 @@ public class ViewUtil {
             dialog_title.setText(title);
             dialog_title.setText(title);
 
 
         final TextView dialog_msg = view.findViewById(R.id.dialog_msg);
         final TextView dialog_msg = view.findViewById(R.id.dialog_msg);
-        if(dialog_msg != null) {
+        if (dialog_msg != null) {
             if (TextUtils.isEmpty(msg)) {
             if (TextUtils.isEmpty(msg)) {
                 dialog_msg.setVisibility(View.GONE);
                 dialog_msg.setVisibility(View.GONE);
             } else {
             } else {
@@ -356,24 +701,24 @@ public class ViewUtil {
         }
         }
 
 
         final WebView dialog_msg_wv = view.findViewById(R.id.dialog_msg_wv);
         final WebView dialog_msg_wv = view.findViewById(R.id.dialog_msg_wv);
-        if(dialog_msg_wv != null) {
+        if (dialog_msg_wv != null) {
             ViewUtil.loadDataWithBaseURL(dialog_msg_wv, msg);
             ViewUtil.loadDataWithBaseURL(dialog_msg_wv, msg);
         }
         }
 
 
         TextView dialog_msg_more = view.findViewById(R.id.dialog_msg_more);
         TextView dialog_msg_more = view.findViewById(R.id.dialog_msg_more);
-        if(dialog_msg_more != null) {
+        if (dialog_msg_more != null) {
             if (TextUtils.isEmpty(msgMore)) {
             if (TextUtils.isEmpty(msgMore)) {
                 dialog_msg_more.setVisibility(View.GONE);
                 dialog_msg_more.setVisibility(View.GONE);
             } else {
             } else {
                 dialog_msg_more.setVisibility(View.VISIBLE);
                 dialog_msg_more.setVisibility(View.VISIBLE);
                 dialog_msg_more.setText(msgMore);
                 dialog_msg_more.setText(msgMore);
-                if(dialogConfig.getMsgMoreColor() > 0)
+                if (dialogConfig.getMsgMoreColor() > 0)
                     dialog_msg_more.setTextColor(mContext.getResources().getColor(dialogConfig.getMsgMoreColor()));
                     dialog_msg_more.setTextColor(mContext.getResources().getColor(dialogConfig.getMsgMoreColor()));
             }
             }
         }
         }
 
 
         TextView dialog_tip = view.findViewById(R.id.dialog_tip);
         TextView dialog_tip = view.findViewById(R.id.dialog_tip);
-        if(dialog_tip != null) {
+        if (dialog_tip != null) {
             if (TextUtils.isEmpty(tip)) {
             if (TextUtils.isEmpty(tip)) {
                 dialog_tip.setVisibility(View.GONE);
                 dialog_tip.setVisibility(View.GONE);
             } else {
             } else {
@@ -384,8 +729,8 @@ public class ViewUtil {
 
 
         TextView dialog_btn_left = view.findViewById(R.id.dialog_btn_left);
         TextView dialog_btn_left = view.findViewById(R.id.dialog_btn_left);
         boolean isLeftBtnShow = btnLeftText != null || btnLeftOnClickListener != null;
         boolean isLeftBtnShow = btnLeftText != null || btnLeftOnClickListener != null;
-        if(dialog_btn_left != null) {
-            switch (dialogConfig.getTheme()){//设置按钮风格
+        if (dialog_btn_left != null) {
+            switch (dialogConfig.getTheme()) {//设置按钮风格
                 case DialogConfig.THEME_PURPLE:
                 case DialogConfig.THEME_PURPLE:
                     dialog_btn_left.setBackgroundResource(R.drawable.selector_button_full_purple);
                     dialog_btn_left.setBackgroundResource(R.drawable.selector_button_full_purple);
                     dialog_btn_left.setTextColor(Color.WHITE);
                     dialog_btn_left.setTextColor(Color.WHITE);
@@ -408,8 +753,8 @@ public class ViewUtil {
 
 
         TextView dialog_btn_right = view.findViewById(R.id.dialog_btn_right);
         TextView dialog_btn_right = view.findViewById(R.id.dialog_btn_right);
         boolean isRigthBtnShow = btnRightText != null || btnRightOnClickListener != null;
         boolean isRigthBtnShow = btnRightText != null || btnRightOnClickListener != null;
-        if(dialog_btn_right != null) {
-            switch (dialogConfig.getTheme()){//设置按钮风格
+        if (dialog_btn_right != null) {
+            switch (dialogConfig.getTheme()) {//设置按钮风格
                 case DialogConfig.THEME_PURPLE:
                 case DialogConfig.THEME_PURPLE:
                     dialog_btn_right.setBackgroundResource(R.drawable.selector_button_full_purple);
                     dialog_btn_right.setBackgroundResource(R.drawable.selector_button_full_purple);
                     dialog_btn_right.setTextColor(Color.WHITE);
                     dialog_btn_right.setTextColor(Color.WHITE);
@@ -430,16 +775,16 @@ public class ViewUtil {
         }
         }
 
 
         View dialog_btn_center = view.findViewById(R.id.dialog_btn_center);
         View dialog_btn_center = view.findViewById(R.id.dialog_btn_center);
-        if(dialog_btn_center != null) {
+        if (dialog_btn_center != null) {
             dialog_btn_center.setVisibility(isLeftBtnShow && isRigthBtnShow ? View.VISIBLE : View.GONE);
             dialog_btn_center.setVisibility(isLeftBtnShow && isRigthBtnShow ? View.VISIBLE : View.GONE);
         }
         }
 
 
-        if(dialog_close != null) {
+        if (dialog_close != null) {
             if (dialogConfig.isCancelable())//
             if (dialogConfig.isCancelable())//
                 dialog_close.setOnClickListener(new View.OnClickListener() {
                 dialog_close.setOnClickListener(new View.OnClickListener() {
                     @Override
                     @Override
                     public void onClick(View v) {
                     public void onClick(View v) {
-                        if(btnCloseOnClickListener != null){
+                        if (btnCloseOnClickListener != null) {
                             btnCloseOnClickListener.onClick(v);
                             btnCloseOnClickListener.onClick(v);
                         }
                         }
                         dialog.dismiss();
                         dialog.dismiss();
@@ -452,7 +797,7 @@ public class ViewUtil {
             @Override
             @Override
             public void onDismiss(DialogInterface dialog) {
             public void onDismiss(DialogInterface dialog) {
                 try {
                 try {
-                    if(dialogConfig.isFinish()) {
+                    if (dialogConfig.isFinish()) {
                         if (mContext instanceof Activity) {
                         if (mContext instanceof Activity) {
                             ((Activity) mContext).finish();
                             ((Activity) mContext).finish();
                         }
                         }
@@ -463,10 +808,10 @@ public class ViewUtil {
             }
             }
         });
         });
 
 
-        if(!(mContext instanceof Activity) && dialog.getWindow() != null) {
+        if (!(mContext instanceof Activity) && dialog.getWindow() != null) {
             dialog.getWindow().setType(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ? WindowManager.LayoutParams.TYPE_PHONE : WindowManager.LayoutParams.TYPE_TOAST);
             dialog.getWindow().setType(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ? WindowManager.LayoutParams.TYPE_PHONE : WindowManager.LayoutParams.TYPE_TOAST);
         }
         }
-        if(!dialogConfig.isCancelable())
+        if (!dialogConfig.isCancelable())
             dialog.setCancelable(false);
             dialog.setCancelable(false);
         try {
         try {
             dialog.show();
             dialog.show();
@@ -478,32 +823,33 @@ public class ViewUtil {
 
 
     /**
     /**
      * 通过map来设置字体颜色
      * 通过map来设置字体颜色
+     *
      * @param textView
      * @param textView
      * @param msg
      * @param msg
      * @param colorMsgMap key为文本,value为要设置的颜色(#FF0000)
      * @param colorMsgMap key为文本,value为要设置的颜色(#FF0000)
      */
      */
     public static void setColorMapText(TextView textView, String msg, Map<String, String> colorMsgMap) {
     public static void setColorMapText(TextView textView, String msg, Map<String, String> colorMsgMap) {
-        if(textView == null){
+        if (textView == null) {
             return;
             return;
         }
         }
-        if(TextUtils.isEmpty(msg)){
+        if (TextUtils.isEmpty(msg)) {
             textView.setText("");
             textView.setText("");
         }
         }
-        if(colorMsgMap.isEmpty()) {
+        if (colorMsgMap.isEmpty()) {
             textView.setText(msg);
             textView.setText(msg);
         } else {
         } else {
             int index = 0;
             int index = 0;
             for (Map.Entry<String, String> entry : colorMsgMap.entrySet()) {
             for (Map.Entry<String, String> entry : colorMsgMap.entrySet()) {
                 String key = entry.getKey();
                 String key = entry.getKey();
                 String value = entry.getValue();//例如红色 #FF0000
                 String value = entry.getValue();//例如红色 #FF0000
-                if(!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value) && msg.contains(key) && value.length() == 7){
+                if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value) && msg.contains(key) && value.length() == 7) {
                     int length = msg.length();
                     int length = msg.length();
-                    if(index < length){
+                    if (index < length) {
                         int position = msg.indexOf(key, index);
                         int position = msg.indexOf(key, index);
                         String start = msg.substring(0, position);
                         String start = msg.substring(0, position);
                         String middle = getHtmlText(key, value);
                         String middle = getHtmlText(key, value);
                         String end = msg.substring(position + key.length());
                         String end = msg.substring(position + key.length());
-                        index = (start+middle).length();
+                        index = (start + middle).length();
                         msg = start + middle + end;
                         msg = start + middle + end;
                     }
                     }
                 }
                 }
@@ -511,38 +857,40 @@ public class ViewUtil {
             textView.setText(Html.fromHtml(msg));
             textView.setText(Html.fromHtml(msg));
         }
         }
     }
     }
+
     /**
     /**
      * 通过map来设置字体颜色
      * 通过map来设置字体颜色
+     *
      * @param textView
      * @param textView
      * @param msg
      * @param msg
-     * @param items key为文本,value为要设置的颜色(#FF0000)
+     * @param items    key为文本,value为要设置的颜色(#FF0000)
      */
      */
-    public static void setColorMapText(TextView textView, String msg, String...items) {
-        if(textView == null){
+    public static void setColorMapText(TextView textView, String msg, String... items) {
+        if (textView == null) {
             return;
             return;
         }
         }
-        if(TextUtils.isEmpty(msg)){
+        if (TextUtils.isEmpty(msg)) {
             textView.setText("");
             textView.setText("");
         }
         }
-        if(items == null || items.length < 1 || items.length % 2 == 1) {
+        if (items == null || items.length < 1 || items.length % 2 == 1) {
             textView.setText(msg);
             textView.setText(msg);
         } else {
         } else {
             int index = 0;
             int index = 0;
             for (int i = 0; i + 1 < items.length; ) {
             for (int i = 0; i + 1 < items.length; ) {
                 String key = items[i];
                 String key = items[i];
-                String value = items[i+1];//例如红色 #FF0000
-                if(!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value) && msg.contains(key) && value.length() == 7){
+                String value = items[i + 1];//例如红色 #FF0000
+                if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value) && msg.contains(key) && value.length() == 7) {
                     int length = msg.length();
                     int length = msg.length();
-                    if(index < length){
+                    if (index < length) {
                         int position = msg.indexOf(key, index);
                         int position = msg.indexOf(key, index);
                         String start = msg.substring(0, position);
                         String start = msg.substring(0, position);
                         String middle = getHtmlText(key, value);
                         String middle = getHtmlText(key, value);
                         String end = msg.substring(position + key.length());
                         String end = msg.substring(position + key.length());
-                        index = (start+middle).length();
+                        index = (start + middle).length();
                         msg = start + middle + end;
                         msg = start + middle + end;
                     }
                     }
                 }
                 }
-                i+=2;
+                i += 2;
             }
             }
             textView.setText(Html.fromHtml(msg));
             textView.setText(Html.fromHtml(msg));
         }
         }
@@ -550,7 +898,8 @@ public class ViewUtil {
 
 
     /**
     /**
      * 获取html格式并带颜色的文字
      * 获取html格式并带颜色的文字
-     * @param text 文字
+     *
+     * @param text  文字
      * @param color 颜色
      * @param color 颜色
      * @return
      * @return
      */
      */
@@ -573,12 +922,12 @@ public class ViewUtil {
 
 
             ACache aCache = ACache.get(SheepApp.getInstance());
             ACache aCache = ACache.get(SheepApp.getInstance());
             String wh = aCache.getAsString(advertising.getDisplay_src());
             String wh = aCache.getAsString(advertising.getDisplay_src());
-            if(!TextUtils.isEmpty(wh) && wh.contains(";")) {
+            if (!TextUtils.isEmpty(wh) && wh.contains(";")) {
                 String[] items = wh.split(";");
                 String[] items = wh.split(";");
                 dialog_center_ll.setMinimumWidth(Integer.parseInt(items[0]));
                 dialog_center_ll.setMinimumWidth(Integer.parseInt(items[0]));
                 dialog_center_ll.setMinimumHeight(Integer.parseInt(items[1]));
                 dialog_center_ll.setMinimumHeight(Integer.parseInt(items[1]));
             }
             }
-            dialog_center_ll.setPadding(0,activity.getResources().getDimensionPixelSize(R.dimen.content_padding_54),0,activity.getResources().getDimensionPixelSize(R.dimen.content_padding_15));
+            dialog_center_ll.setPadding(0, activity.getResources().getDimensionPixelSize(R.dimen.content_padding_54), 0, activity.getResources().getDimensionPixelSize(R.dimen.content_padding_15));
 
 
             ImageView ad_iv = view.findViewById(R.id.ad_iv);
             ImageView ad_iv = view.findViewById(R.id.ad_iv);
             VideoView ad_video_view = view.findViewById(R.id.ad_video_view);
             VideoView ad_video_view = view.findViewById(R.id.ad_video_view);
@@ -591,9 +940,9 @@ public class ViewUtil {
 //            ad_video_view.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,G.WIDTH*4/7));
 //            ad_video_view.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,G.WIDTH*4/7));
             if (advertising.isImage()) {
             if (advertising.isImage()) {
                 RequestBuilder<Drawable> builder = Glide.with(activity).load(advertising.getDisplay_src());
                 RequestBuilder<Drawable> builder = Glide.with(activity).load(advertising.getDisplay_src());
-                if(TextUtils.isEmpty(advertising.getDesc())) {//没有标题时 去掉下面的边距 并给图片左下理右下添加图角
+                if (TextUtils.isEmpty(advertising.getDesc())) {//没有标题时 去掉下面的边距 并给图片左下理右下添加图角
                     builder.apply(new RequestOptions().transform(new RoundedCornersTransformation(activity.getResources().getDimensionPixelSize(R.dimen.content_padding_36), 0, RoundedCornersTransformation.CornerType.BOTTOM)));
                     builder.apply(new RequestOptions().transform(new RoundedCornersTransformation(activity.getResources().getDimensionPixelSize(R.dimen.content_padding_36), 0, RoundedCornersTransformation.CornerType.BOTTOM)));
-                    dialog_center_ll.setPadding(0,activity.getResources().getDimensionPixelSize(R.dimen.content_padding_54),0, 0);
+                    dialog_center_ll.setPadding(0, activity.getResources().getDimensionPixelSize(R.dimen.content_padding_54), 0, 0);
                 }
                 }
                 builder.into(ad_iv);
                 builder.into(ad_iv);
                 ad_video_view.setVisibility(View.GONE);
                 ad_video_view.setVisibility(View.GONE);
@@ -613,13 +962,13 @@ public class ViewUtil {
                 videoView.setVideoURI(uri);
                 videoView.setVideoURI(uri);
                 videoView.start();
                 videoView.start();
                 videoView.requestFocus();
                 videoView.requestFocus();
-                if(container != null){
+                if (container != null) {
                     container.setT(new Action1<Integer>() {
                     container.setT(new Action1<Integer>() {
                         @Override
                         @Override
                         public void call(Integer integer) {
                         public void call(Integer integer) {
-                            if(integer == 1){//onResume
+                            if (integer == 1) {//onResume
                                 videoView.resume();
                                 videoView.resume();
-                            } else if(integer == 2){//onPause
+                            } else if (integer == 2) {//onPause
                                 videoView.pause();
                                 videoView.pause();
                             }
                             }
                         }
                         }
@@ -680,7 +1029,7 @@ public class ViewUtil {
                     Jump2View.getInstance().tryShowReservation(activity);
                     Jump2View.getInstance().tryShowReservation(activity);
                 }
                 }
             });
             });
-            if(TextUtils.isEmpty(advertising.getDesc())) {
+            if (TextUtils.isEmpty(advertising.getDesc())) {
                 ad_msg.setVisibility(View.GONE);
                 ad_msg.setVisibility(View.GONE);
             } else {
             } else {
                 ad_msg.setText(advertising.getDesc());
                 ad_msg.setText(advertising.getDesc());
@@ -692,6 +1041,7 @@ public class ViewUtil {
             }
             }
         }
         }
     }
     }
+
     //显示定向货币详情
     //显示定向货币详情
     public static void showOrienteeringDetails(Activity activity) {
     public static void showOrienteeringDetails(Activity activity) {
         new DialogOrienteeringDetails(activity).showOrienteeringDetails();
         new DialogOrienteeringDetails(activity).showOrienteeringDetails();
@@ -700,98 +1050,109 @@ public class ViewUtil {
     /**
     /**
      * game 充值
      * game 充值
      */
      */
-    public static void showGamePayAccount(Activity activity,String gameId, String gameName){
+    public static void showGamePayAccount(Activity activity, String gameId, String gameName) {
         PayEntity payEntity = new PayEntity();
         PayEntity payEntity = new PayEntity();
         payEntity.setGame_id(gameId);
         payEntity.setGame_id(gameId);
         payEntity.setGame_name(gameName);
         payEntity.setGame_name(gameName);
-        newInstance().showGamePayAccount(activity,payEntity);
+        newInstance().showGamePayAccount(activity, payEntity);
     }
     }
-    public void showGamePayAccount(Activity activity,PayEntity payEntity){
-        new DialogPayAccount(activity,payEntity).showPayaccount();
+
+    public void showGamePayAccount(Activity activity, PayEntity payEntity) {
+        new DialogPayAccount(activity, payEntity).showPayaccount();
     }
     }
-    public static void showGamePay(Activity activity, PayEntity payEntity){
+
+    public static void showGamePay(Activity activity, PayEntity payEntity) {
         new DialogPayGame(activity, payEntity).showPayGame();
         new DialogPayGame(activity, payEntity).showPayGame();
     }
     }
 
 
     /**
     /**
      * 用户详情
      * 用户详情
      */
      */
-    public void showGameAccountDetail(Activity activity, int id){
+    public void showGameAccountDetail(Activity activity, int id) {
         new DialogModifyAccount(activity, id).showAddAccount();
         new DialogModifyAccount(activity, id).showAddAccount();
     }
     }
+
     /**
     /**
      * 用户详情
      * 用户详情
      */
      */
-    public void showGameAccountDetail(Activity activity, GameAccountEntity item){
+    public void showGameAccountDetail(Activity activity, GameAccountEntity item) {
         new DialogModifyAccount(activity, item).showAddAccount();
         new DialogModifyAccount(activity, item).showAddAccount();
     }
     }
 
 
 
 
     /**
     /**
      * 分享
      * 分享
+     *
      * @param activity
      * @param activity
      * @param url
      * @param url
      */
      */
-    public void showShare(Activity activity, String url, String description){
+    public void showShare(Activity activity, String url, String description) {
         new DialogShare(activity, url, description).showShare();
         new DialogShare(activity, url, description).showShare();
     }
     }
 
 
     public static void centerImage(ImageView imageView, String pictures) {
     public static void centerImage(ImageView imageView, String pictures) {
-        if(imageView != null && !TextUtils.isEmpty(pictures)){
-            if(pictures.contains(";")){
+        if (imageView != null && !TextUtils.isEmpty(pictures)) {
+            if (pictures.contains(";")) {
                 pictures = pictures.split(";")[0];
                 pictures = pictures.split(";")[0];
             }
             }
             GlideImageLoader.centerImage(imageView, pictures);
             GlideImageLoader.centerImage(imageView, pictures);
         }
         }
     }
     }
+
     public static void setImage(ImageView imageView, String pictures) {
     public static void setImage(ImageView imageView, String pictures) {
-        if(imageView != null && !TextUtils.isEmpty(pictures)){
-            if(pictures.contains(";")){
+        if (imageView != null && !TextUtils.isEmpty(pictures)) {
+            if (pictures.contains(";")) {
                 pictures = pictures.split(";")[0];
                 pictures = pictures.split(";")[0];
             }
             }
             GlideImageLoader.setImage(imageView, pictures);
             GlideImageLoader.setImage(imageView, pictures);
         }
         }
     }
     }
+
     public static void setImage(ImageView imageView, String pictures, int radius) {
     public static void setImage(ImageView imageView, String pictures, int radius) {
-        if(imageView != null && !TextUtils.isEmpty(pictures)){
-            if(pictures.contains(";")){
+        if (imageView != null && !TextUtils.isEmpty(pictures)) {
+            if (pictures.contains(";")) {
                 pictures = pictures.split(";")[0];
                 pictures = pictures.split(";")[0];
             }
             }
             GlideImageLoader.roundedCornersImage(imageView, pictures, radius);
             GlideImageLoader.roundedCornersImage(imageView, pictures, radius);
         }
         }
     }
     }
+
     public static void setTextTime(TextView textView, long time, String format) {
     public static void setTextTime(TextView textView, long time, String format) {
-        if(textView != null){
+        if (textView != null) {
             textView.setText(TimeUtil.TimeStamp2Date(time, format));
             textView.setText(TimeUtil.TimeStamp2Date(time, format));
         }
         }
     }
     }
+
     public static void setText(TextView textView) {
     public static void setText(TextView textView) {
-        if(textView != null){
+        if (textView != null) {
             textView.setText("");
             textView.setText("");
         }
         }
     }
     }
 
 
     public static void setText(TextView textView, String msg) {
     public static void setText(TextView textView, String msg) {
-        if(textView != null){
+        if (textView != null) {
             textView.setText(TextUtils.isEmpty(msg) ? "" : msg);
             textView.setText(TextUtils.isEmpty(msg) ? "" : msg);
         }
         }
 
 
     }
     }
+
     public static final String INDENT = "\u3000";//用特殊字符显示空白的缩进字符
     public static final String INDENT = "\u3000";//用特殊字符显示空白的缩进字符
+
     public static void setText(TextView textView, String msg, int indent) {
     public static void setText(TextView textView, String msg, int indent) {
-        if(textView != null){
+        if (textView != null) {
             textView.setText(addIndent(msg, indent));
             textView.setText(addIndent(msg, indent));
         }
         }
 
 
     }
     }
+
     //在msg前面添加空格
     //在msg前面添加空格
     public static String addIndent(String msg, int indent) {
     public static String addIndent(String msg, int indent) {
-        if(indent > 0){
+        if (indent > 0) {
             StringBuilder stringBuilder = new StringBuilder();
             StringBuilder stringBuilder = new StringBuilder();
             for (int i = 0; i < indent; i++) {
             for (int i = 0; i < indent; i++) {
                 stringBuilder.append(INDENT);
                 stringBuilder.append(INDENT);
             }
             }
-            if(!TextUtils.isEmpty(msg))
+            if (!TextUtils.isEmpty(msg))
                 stringBuilder.append(msg);
                 stringBuilder.append(msg);
             return stringBuilder.toString();
             return stringBuilder.toString();
         }
         }
@@ -803,9 +1164,10 @@ public class ViewUtil {
      */
      */
 
 
     protected ProgressDialog mPd;
     protected ProgressDialog mPd;
-    public void  showProgress(Activity activity){
+
+    public void showProgress(Activity activity) {
         try {
         try {
-            if(mPd!=null){
+            if (mPd != null) {
                 hideProgress(activity);
                 hideProgress(activity);
             }
             }
             mPd = new ProgressDialog(activity);
             mPd = new ProgressDialog(activity);
@@ -819,9 +1181,10 @@ public class ViewUtil {
             e.printStackTrace();
             e.printStackTrace();
         }
         }
     }
     }
-    public void  showProgress(Activity activity, boolean cancel){
+
+    public void showProgress(Activity activity, boolean cancel) {
         try {
         try {
-            if(mPd!=null){
+            if (mPd != null) {
                 hideProgress(activity);
                 hideProgress(activity);
             }
             }
             mPd = new ProgressDialog(activity);
             mPd = new ProgressDialog(activity);
@@ -837,11 +1200,11 @@ public class ViewUtil {
     }
     }
 
 
 
 
-    public void  hideProgress(Activity activity){
+    public void hideProgress(Activity activity) {
         activity.runOnUiThread(new Runnable() {
         activity.runOnUiThread(new Runnable() {
             @Override
             @Override
             public void run() {
             public void run() {
-                if(mPd!=null){
+                if (mPd != null) {
                     mPd.dismiss();
                     mPd.dismiss();
                 }
                 }
             }
             }
@@ -852,11 +1215,11 @@ public class ViewUtil {
     /**
     /**
      * 添加游戏账户
      * 添加游戏账户
      */
      */
-    public void showAddAccount(Activity activity, Action1<Integer> action1){
+    public void showAddAccount(Activity activity, Action1<Integer> action1) {
         new DialogAddAccount(activity).showAddAccount(action1);
         new DialogAddAccount(activity).showAddAccount(action1);
     }
     }
 
 
-    public static void showShareDialog(final Activity activity, final String url, final String description){
+    public static void showShareDialog(final Activity activity, final String url, final String description) {
         View dialog_parent = View.inflate(activity, R.layout.ask_to_share, null);
         View dialog_parent = View.inflate(activity, R.layout.ask_to_share, null);
         final AlertDialog dialog = new AlertDialog.Builder(activity, R.style.AppTheme_Dialog_Alert)
         final AlertDialog dialog = new AlertDialog.Builder(activity, R.style.AppTheme_Dialog_Alert)
                 .setView(dialog_parent)
                 .setView(dialog_parent)
@@ -915,7 +1278,7 @@ public class ViewUtil {
         try {
         try {
             dialog.show();
             dialog.show();
             Window window = dialog.getWindow();
             Window window = dialog.getWindow();
-            if(window != null) {
+            if (window != null) {
                 window.setGravity(Gravity.BOTTOM);
                 window.setGravity(Gravity.BOTTOM);
                 WindowManager.LayoutParams params = window.getAttributes();
                 WindowManager.LayoutParams params = window.getAttributes();
                 params.width = G.WIDTH > G.HEIGHT ? G.HEIGHT : G.WIDTH;
                 params.width = G.WIDTH > G.HEIGHT ? G.HEIGHT : G.WIDTH;
@@ -925,7 +1288,38 @@ public class ViewUtil {
             e.printStackTrace();
             e.printStackTrace();
         }
         }
     }
     }
-    public static String getNetImgByName(String name){
+
+    public static String getNetImgByName(String name) {
         return String.format(Locale.CHINA, "http://cdngame.kuaifazs.com/%s.png", name);
         return String.format(Locale.CHINA, "http://cdngame.kuaifazs.com/%s.png", name);
     }
     }
+
+    /**
+     * 标签类型(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;
 package com.sheep.gamegroup.view.activity;
 
 
+import android.app.Activity;
 import android.support.design.widget.TabLayout;
 import android.support.design.widget.TabLayout;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.Fragment;
 import android.support.v4.view.ViewPager;
 import android.support.v4.view.ViewPager;
+import android.view.View;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.kfzs.duanduan.fragment.FgtCreditCardProgressQuery;
 import com.kfzs.duanduan.fragment.FgtCreditCardProgressQuery;
@@ -10,8 +12,10 @@ import com.kfzs.duanduan.fragment.FgtCreditCardTaskList;
 import com.kfzs.duanduan.mine.GiftpackListAdapter;
 import com.kfzs.duanduan.mine.GiftpackListAdapter;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.CreditCardProgressQuery;
 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.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.util.UMConfigUtils;
+import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
@@ -43,9 +47,17 @@ public class ActCreditCardTaskList extends AbsChooseImageActivity {
 
 
     @Override
     @Override
     public void initView() {
     public void initView() {
+        final Activity activity = this;
         TitleBarUtils.getInstance()
         TitleBarUtils.getInstance()
                 .setTitle(this,"办卡赚钱")
                 .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 = new GiftpackListAdapter(getSupportFragmentManager(), getApplicationContext());
         mAdapter.add(new FgtCreditCardTaskList(), "任务列表");
         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.Build;
 import android.os.Bundle;
 import android.os.Bundle;
 import android.view.View;
 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 android.widget.TextView;
 
 
 import com.kfzs.duanduan.BaseCompatActivity;
 import com.kfzs.duanduan.BaseCompatActivity;
 import com.sheep.gamegroup.model.entity.CreditCard;
 import com.sheep.gamegroup.model.entity.CreditCard;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.WebviewJs;
 import com.sheep.gamegroup.util.WebviewJs;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -56,7 +57,7 @@ public class ActCreditCardWeb extends BaseCompatActivity {
         webViewSettings = mWebView.getSettings();
         webViewSettings = mWebView.getSettings();
         webViewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
         webViewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
         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)) {//不显示标题
         if (getIntent().hasExtra(EXTRA_WEBVIEW_NO_TITLE)) {//不显示标题
             findViewById(R.id.appbar_act_webview).setVisibility(View.GONE);
             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.support.v7.widget.Toolbar;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.view.View;
 import android.view.View;
-import android.webkit.WebView;
+import com.tencent.smtt.sdk.WebView;
 import android.widget.ImageView;
 import android.widget.ImageView;
 import android.widget.ProgressBar;
 import android.widget.ProgressBar;
 import android.widget.RatingBar;
 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;
 package com.sheep.gamegroup.view.activity;
 
 
 import android.app.Activity;
 import android.app.Activity;
+import android.content.Context;
 import android.content.Intent;
 import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.graphics.PixelFormat;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.text.TextUtils;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.View;
 import android.view.ViewGroup;
 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.ImageView;
 import android.widget.TextView;
 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.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.helper.TaskHelper;
 import com.sheep.gamegroup.helper.TaskHelper;
 import com.sheep.gamegroup.util.TimeUtil;
 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.
  * Created by realicing on 2018/5/10.
  * realicing@sina.com
  * realicing@sina.com
  */
  */
-public class ActFindInformation extends BaseActivity implements Action1<Integer>{
+public class ActFindInformation extends BaseActivity implements Action1<Integer> {
     @Override
     @Override
     protected int getLayoutId() {
     protected int getLayoutId() {
         return R.layout.net_empty_fresh_list;
         return R.layout.net_empty_fresh_list;
@@ -70,6 +83,19 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
 
 
     private int id;
     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)
     @BindView(R.id.refresh)
     SwipeRefreshLayout refresh;
     SwipeRefreshLayout refresh;
     @BindView(R.id.empty_view)
     @BindView(R.id.empty_view)
@@ -78,19 +104,21 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
     View check_net_ll;
     View check_net_ll;
     @BindView(R.id.view_list)
     @BindView(R.id.view_list)
     RecyclerView view_list;
     RecyclerView view_list;
+    WebView webView;
+
     @Override
     @Override
     public void initView() {
     public void initView() {
         id = getIntent().getIntExtra("id", 0);
         id = getIntent().getIntExtra("id", 0);
         String title = getIntent().getStringExtra("title");
         String title = getIntent().getStringExtra("title");
 
 
         TitleBarUtils.getInstance()
         TitleBarUtils.getInstance()
-                .setTitle(this, TextUtils.isEmpty(title) ? "详情" : title)
+                .setTitle(this, /*TextUtils.isEmpty(title) ? "详情" : title*/"详情")
                 .setTitleFinish(this)
                 .setTitleFinish(this)
                 .setRightImgBotton(this, R.mipmap.share, new View.OnClickListener() {
                 .setRightImgBotton(this, R.mipmap.share, new View.OnClickListener() {
                     @Override
                     @Override
                     public void onClick(View view) {
                     public void onClick(View view) {
                         FIND_SHARE.onEvent("find_id", id);
                         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.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
-        view_list.setAdapter(new AdbCommonRecycler<String>(SheepApp.getInstance(), list){
+        view_list.setAdapter(new AdbCommonRecycler<String>(SheepApp.getInstance(), list) {
 
 
             @Override
             @Override
             public int getItemViewType(int position) {
             public int getItemViewType(int position) {
                 return position;
                 return position;
             }
             }
+
             @Override
             @Override
             public int getViewIdByType(int type) {//type来源于 getItemViewType 返回的值
             public int getViewIdByType(int type) {//type来源于 getItemViewType 返回的值
                 String item = list.get(type);
                 String item = list.get(type);
-                switch (item){
+                switch (item) {
                     case "top":
                     case "top":
                         return R.layout.find_information_top;
                         return R.layout.find_information_top;
                     case "bottom":
                     case "bottom":
@@ -125,7 +154,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
 
 
             @Override
             @Override
             public void convert(ViewHolder holder, final String item) {
             public void convert(ViewHolder holder, final String item) {
-                switch (item){
+                switch (item) {
                     case "top":
                     case "top":
                         loadTop(holder.itemView);
                         loadTop(holder.itemView);
                         break;
                         break;
@@ -133,39 +162,189 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
                         loadBottom((ViewGroup) holder.itemView);
                         loadBottom((ViewGroup) holder.itemView);
                         break;
                         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) {
     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_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_time, String.format(Locale.CHINA, "发布时间:%s", TimeUtil.TimeStamp2Date(findItem.getCreated_at(), "yyyy-MM-dd HH:mm")));
         ViewUtil.setText(find_information_look, findItem.getClicks());
         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
             @Override
             public boolean shouldOverrideUrlLoading(WebView view, String url) {
             public boolean shouldOverrideUrlLoading(WebView view, String url) {
                 Jump2View.getInstance().goWeb(ActFindInformation.this, url);
                 Jump2View.getInstance().goWeb(ActFindInformation.this, url);
                 return true;
                 return true;
             }
             }
-        });
+        });*/
+
 
 
     }
     }
+
+
     private TaskHelper taskHelper = new TaskHelper(this);
     private TaskHelper taskHelper = new TaskHelper(this);
     private ViewGroup bottomViewGroup;
     private ViewGroup bottomViewGroup;
+
     private void loadBottom(ViewGroup viewGroup) {
     private void loadBottom(ViewGroup viewGroup) {
         bottomViewGroup = viewGroup;
         bottomViewGroup = viewGroup;
-        if(taskHelper.hasTask()) {
+        if (taskHelper.hasTask()) {
             taskHelper.loadTask(viewGroup.getChildAt(0));
             taskHelper.loadTask(viewGroup.getChildAt(0));
         } else {
         } else {
             viewGroup.getChildAt(0).setVisibility(View.GONE);
             viewGroup.getChildAt(0).setVisibility(View.GONE);
         }
         }
         viewGroup.getChildAt(1).setVisibility(taskHelper.hasTask() && findApp != null ? View.VISIBLE : View.GONE);
         viewGroup.getChildAt(1).setVisibility(taskHelper.hasTask() && findApp != null ? View.VISIBLE : View.GONE);
-        if(findApp != null) {
+        if (findApp != null) {
             loadGame(viewGroup.getChildAt(2));
             loadGame(viewGroup.getChildAt(2));
         } else {
         } else {
             viewGroup.getChildAt(2).setVisibility(View.GONE);
             viewGroup.getChildAt(2).setVisibility(View.GONE);
@@ -174,22 +353,22 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
 
 
     private void loadGame(View itemView) {
     private void loadGame(View itemView) {
         itemView.setVisibility(View.VISIBLE);
         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());
         GlideImageLoader.setGameImage(find_information_game_icon, findApp.getIcon());
         ViewUtil.setText(find_information_game_name, findApp.getName());
         ViewUtil.setText(find_information_game_name, findApp.getName());
         final boolean isNeedReservation = !findApp.isCanDonload();//这里认为只有两种状态:可下载与预约下载
         final boolean isNeedReservation = !findApp.isCanDonload();//这里认为只有两种状态:可下载与预约下载
         ViewUtil.setText(find_information_game_surplus);
         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")));
             ViewUtil.setText(find_information_game_time, String.format(Locale.CHINA, "开放时间:%s", TimeUtil.TimeStamp2Date(findApp.getDownload_at(), "yyyy-MM-dd\u0020HH:mm")));
         else
         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);
         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() {
         itemView.setOnClickListener(new View.OnClickListener() {
             @Override
             @Override
@@ -205,23 +384,24 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
     }
     }
 
 
     private List<String> list = ListUtil.emptyList();
     private List<String> list = ListUtil.emptyList();
+
     @Override
     @Override
     public void initData() {
     public void initData() {
         empty_view.setVisibility(View.INVISIBLE);
         empty_view.setVisibility(View.INVISIBLE);
         SysAppUtil.checkNet(new Action1<Integer>() {
         SysAppUtil.checkNet(new Action1<Integer>() {
             @Override
             @Override
             public void call(Integer result) {
             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);
                         check_net_ll.setVisibility(View.VISIBLE);
                 } else {
                 } else {
-                    if(check_net_ll != null)
+                    if (check_net_ll != null)
                         check_net_ll.setVisibility(View.GONE);
                         check_net_ll.setVisibility(View.GONE);
                 }
                 }
             }
             }
         });
         });
         FindItem data = DataUtil.getInstance().getCacheResult(ApiKey.articlesItem(id), FindItem.class);
         FindItem data = DataUtil.getInstance().getCacheResult(ApiKey.articlesItem(id), FindItem.class);
-        if(data != null){
+        if (data != null) {
             loadFindItem(data);
             loadFindItem(data);
         }
         }
         SheepApp.getInstance().getNetComponent().getApiService().getFindDetail(id)
         SheepApp.getInstance().getNetComponent().getApiService().getFindDetail(id)
@@ -231,7 +411,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
                     @Override
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                     public void onNext(BaseMessage baseMessage) {
                         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.articlesItem(id));
                         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.articlesItem(id));
-                        if(isNewData) {
+                        if (isNewData) {
                             FindItem data = baseMessage.getData(FindItem.class);
                             FindItem data = baseMessage.getData(FindItem.class);
                             loadFindItem(data);
                             loadFindItem(data);
                         }
                         }
@@ -246,17 +426,17 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
     }
     }
 
 
     private void loadFindItem(FindItem data) {
     private void loadFindItem(FindItem data) {
-        if(data != null){
+        if (data != null) {
             taskHelper.clear();
             taskHelper.clear();
             findItem = data;
             findItem = data;
             list.clear();
             list.clear();
             list.add("top");
             list.add("top");
             list.add("bottom");
             list.add("bottom");
             notifyDataSetChanged();
             notifyDataSetChanged();
-            if(findItem.getRelease_task_id() != 0){//包含任务
+            if (findItem.getRelease_task_id() != 0) {//包含任务
                 taskHelper.initAcceptedTask(ActFindInformation.this, findItem.getRelease_task_id());
                 taskHelper.initAcceptedTask(ActFindInformation.this, findItem.getRelease_task_id());
             }
             }
-            if(findItem.getApplication_id() != 0){//包含游戏
+            if (findItem.getApplication_id() != 0) {//包含游戏
                 initFindApp(findItem.getApplication_id());
                 initFindApp(findItem.getApplication_id());
             }
             }
         } else {
         } else {
@@ -265,9 +445,10 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
     }
     }
 
 
     private FindApp findApp;
     private FindApp findApp;
+
     private void initFindApp(int application_id) {
     private void initFindApp(int application_id) {
         FindApp cacheResult = DataUtil.getInstance().getCacheResult(ApiKey.applications(id), FindApp.class);
         FindApp cacheResult = DataUtil.getInstance().getCacheResult(ApiKey.applications(id), FindApp.class);
-        if(cacheResult != null){
+        if (cacheResult != null) {
             findApp = cacheResult;
             findApp = cacheResult;
             notifyDataSetChanged();
             notifyDataSetChanged();
         }
         }
@@ -278,7 +459,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
                     @Override
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                     public void onNext(BaseMessage baseMessage) {
                         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.applications(id));
                         boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.applications(id));
-                        if(isNewData) {
+                        if (isNewData) {
                             findApp = baseMessage.getData(FindApp.class);
                             findApp = baseMessage.getData(FindApp.class);
                             notifyDataSetChanged();
                             notifyDataSetChanged();
                         } else {
                         } else {
@@ -296,7 +477,7 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
 
 
     private FindItem findItem;
     private FindItem findItem;
 
 
-    private void notifyDataSetChanged(){
+    private void notifyDataSetChanged() {
         CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty());
         CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty());
         refresh.setRefreshing(false);
         refresh.setRefreshing(false);
         view_list.getAdapter().notifyDataSetChanged();
         view_list.getAdapter().notifyDataSetChanged();
@@ -304,19 +485,21 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
 
 
 
 
     private Map<String, TextView> downLoadTextViewMap = new HashMap<>();
     private Map<String, TextView> downLoadTextViewMap = new HashMap<>();
+
     //获取任务对应的TextView来更新进度
     //获取任务对应的TextView来更新进度
     private TextView getTextViewByTask(DownloadTask task) {
     private TextView getTextViewByTask(DownloadTask task) {
         return getTextViewByKey(task.getKey());
         return getTextViewByKey(task.getKey());
     }
     }
+
     private TextView getTextViewByKey(String key) {
     private TextView getTextViewByKey(String key) {
-        if(downLoadTextViewMap.containsKey(key))
+        if (downLoadTextViewMap.containsKey(key))
             return downLoadTextViewMap.get(key);
             return downLoadTextViewMap.get(key);
         return null;
         return null;
     }
     }
 
 
     //更新按钮状态与添加点击事件
     //更新按钮状态与添加点击事件
     private void updateView(Activity activity, FindApp findApp, TextView textView) {
     private void updateView(Activity activity, FindApp findApp, TextView textView) {
-        if(findApp.isCanDonload()){//可下载
+        if (findApp.isCanDonload()) {//可下载
             downLoadTextViewMap.put(findApp.getDownload_link(), textView);
             downLoadTextViewMap.put(findApp.getDownload_link(), textView);
             downLoadTextViewMap.put(findApp.getPackage_name(), textView);
             downLoadTextViewMap.put(findApp.getPackage_name(), textView);
             findApp.getFindAppHelper().updateDownloadTaskView(activity, findApp, 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);
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText("准备下载中");
             textView.setText("准备下载中");
         }
         }
     }
     }
 
 
-    @Download.onTaskStart void taskStart(DownloadTask task) {
+    @Download.onTaskStart
+    void taskStart(DownloadTask task) {
         TextView textView = getTextViewByTask(task);
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText("开始下载中");
             textView.setText("开始下载中");
         }
         }
     }
     }
-    @Download.onTaskResume void taskResume(DownloadTask task) {
+
+    @Download.onTaskResume
+    void taskResume(DownloadTask task) {
         TextView textView = getTextViewByTask(task);
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText("恢复下载中");
             textView.setText("恢复下载中");
         }
         }
     }
     }
+
     //在这里处理任务执行中的状态,如进度进度条的刷新
     //在这里处理任务执行中的状态,如进度进度条的刷新
-    @Download.onTaskRunning protected void running(DownloadTask task) {
+    @Download.onTaskRunning
+    protected void running(DownloadTask task) {
         TextView textView = getTextViewByTask(task);
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText(String.format(Locale.CHINA, "%d%%", Math.abs(task.getPercent())));
             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);
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText(CommonUtil.CONTINUE_DOWNLOAD);
             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);
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText("已经取消");
             textView.setText("已经取消");
         }
         }
     }
     }
 
 
-    @Download.onTaskFail void taskFail(DownloadTask task) {
+    @Download.onTaskFail
+    void taskFail(DownloadTask task) {
         TextView textView = getTextViewByTask(task);
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText(CommonUtil.FAIL_DOWNLOAD);
             textView.setText(CommonUtil.FAIL_DOWNLOAD);
         }
         }
     }
     }
 
 
-    @Download.onTaskComplete void taskComplete(DownloadTask task) {
+    @Download.onTaskComplete
+    void taskComplete(DownloadTask task) {
         TextView textView = getTextViewByTask(task);
         TextView textView = getTextViewByTask(task);
-        if(textView != null) {
+        if (textView != null) {
             textView.setText(CommonUtil.START_INSTALL);
             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);
             findApp.updateState(DownloadTaskService.STATUS_FINISH);
     }
     }
+
     @Subscribe
     @Subscribe
     public void onEventMainThread(Intent intent) {
     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);
             TextView textView = getTextViewByKey(packageName);
-            if(textView != null) {
-                switch (intent.getAction()){
+            if (textView != null) {
+                switch (intent.getAction()) {
                     case ACTION_PACKAGE_ADDED:
                     case ACTION_PACKAGE_ADDED:
                         textView.setText(CommonUtil.GAME_OPEN);
                         textView.setText(CommonUtil.GAME_OPEN);
                         break;
                         break;
                     case ACTION_PACKAGE_REMOVED:
                     case ACTION_PACKAGE_REMOVED:
                         String path = PackageUtil.isExistsFile(packageName);
                         String path = PackageUtil.isExistsFile(packageName);
-                        if(TextUtils.isEmpty(path)) {
+                        if (TextUtils.isEmpty(path)) {
                             textView.setText(CommonUtil.START_DOWNLOAD);
                             textView.setText(CommonUtil.START_DOWNLOAD);
                         } else {
                         } else {
                             textView.setText(CommonUtil.START_INSTALL);
                             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:
                     case ACTION_PACKAGE_ADDED:
                         findApp.updateState(DownloadTaskService.STATUS_INSTALLED);
                         findApp.updateState(DownloadTaskService.STATUS_INSTALLED);
                         break;
                         break;
                     case ACTION_PACKAGE_REMOVED:
                     case ACTION_PACKAGE_REMOVED:
                         String path = PackageUtil.isExistsFile(packageName);
                         String path = PackageUtil.isExistsFile(packageName);
-                        if(TextUtils.isEmpty(path)) {
+                        if (TextUtils.isEmpty(path)) {
                             findApp.updateState(DownloadTaskService.STATUS_INIT);
                             findApp.updateState(DownloadTaskService.STATUS_INIT);
                         } else {
                         } else {
                             findApp.updateState(DownloadTaskService.STATUS_FINISH);
                             findApp.updateState(DownloadTaskService.STATUS_FINISH);
@@ -426,34 +621,68 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
         }
         }
     }
     }
 
 
+
     @Override
     @Override
     protected void onResume() {
     protected void onResume() {
         super.onResume();
         super.onResume();
         taskHelper.onResume();
         taskHelper.onResume();
         Aria.download(this).unRegister();
         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
     @Override
     protected void onDestroy() {
     protected void onDestroy() {
         super.onDestroy();
         super.onDestroy();
+        LogUtil.logI("释放资源");
         EventBus.getDefault().unregister(this);
         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
     @Override
     public void call(Integer integer) {
     public void call(Integer integer) {
-        switch (integer){
+        switch (integer) {
             case 1://刷新底部
             case 1://刷新底部
                 loadBottom(bottomViewGroup);
                 loadBottom(bottomViewGroup);
                 break;
                 break;
         }
         }
     }
     }
+
     @Subscribe
     @Subscribe
-    public void onEventMainThread(BigEvent event){
-        switch (event.getEventTypes()){
+    public void onEventMainThread(BigEvent event) {
+        switch (event.getEventTypes()) {
             case ONFRESH_TRYMAKEMANY_PAGE:
             case ONFRESH_TRYMAKEMANY_PAGE:
                 taskHelper.refreshTask();
                 taskHelper.refreshTask();
                 break;
                 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()
         TitleBarUtils.getInstance()
                 .setTitleFinish(activity)
                 .setTitleFinish(activity)
                 .setTitle(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
         setValue();//gridview data
         gridviewV();
         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.os.Bundle;
 import android.view.View;
 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 android.widget.TextView;
 
 
 import com.kfzs.duanduan.BaseCompatActivity;
 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.os.Bundle;
 import android.view.View;
 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.BaseCompatActivity;
 import com.kfzs.duanduan.bean.KFIntentKeys;
 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.text.method.ScrollingMovementMethod;
 import android.view.View;
 import android.view.View;
-import android.webkit.WebView;
+import com.tencent.smtt.sdk.WebView;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
 import com.sheep.gamegroup.absBase.BaseActivity;
 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.os.Bundle;
 import android.support.design.widget.TabLayout;
 import android.support.design.widget.TabLayout;
 import android.support.v4.view.ViewPager;
 import android.support.v4.view.ViewPager;
+import android.view.View;
 
 
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.EventTypes;
 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.AppDownloadListener;
 import com.mdad.sdk.mdsdk.RewardListener;
 import com.mdad.sdk.mdsdk.RewardListener;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.LogUtil;
+import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
@@ -54,7 +57,14 @@ public class ActMiDong extends BaseActivity {
         activity = this;
         activity = this;
         TitleBarUtils.getInstance()
         TitleBarUtils.getInstance()
                 .setTitle(activity, "幂动任务")
                 .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
     @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.design.widget.AppBarLayout;
 import android.support.v7.widget.Toolbar;
 import android.support.v7.widget.Toolbar;
 import android.view.View;
 import android.view.View;
-import android.webkit.WebView;
+import com.tencent.smtt.sdk.WebView;
 import android.widget.ImageView;
 import android.widget.ImageView;
 import android.widget.RelativeLayout;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 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;
 package com.sheep.gamegroup.view.activity;
 
 
 import android.view.View;
 import android.view.View;
-import android.webkit.WebView;
+import com.tencent.smtt.sdk.WebView;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
 import com.sheep.gamegroup.absBase.BaseActivity;
 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.support.annotation.RequiresApi;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.view.View;
 import android.view.View;
-import android.webkit.DownloadListener;
+import com.tencent.smtt.sdk.DownloadListener;
 import android.webkit.JavascriptInterface;
 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.kfzs.duanduan.BaseCompatActivity;
 import com.sheep.gamegroup.util.CommonUtil;
 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.gamegroup.util.TestUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 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.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.yalantis.ucrop.util.FileUtils;
 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.File;
 import java.io.IOException;
 import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 
 
 import butterknife.BindView;
 import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.ButterKnife;
-import okhttp3.Call;
 
 
 import static com.kfzs.duanduan.bean.KFIntentKeys.EXTRA_WEBVIEW_NO_TITLE;
 import static com.kfzs.duanduan.bean.KFIntentKeys.EXTRA_WEBVIEW_NO_TITLE;
 
 
@@ -86,7 +83,7 @@ public class ActWeb extends BaseCompatActivity {
             e.printStackTrace();
             e.printStackTrace();
         }
         }
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
         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)) {//不显示标题
         if (getIntent().hasExtra(EXTRA_WEBVIEW_NO_TITLE)) {//不显示标题
             findViewById(R.id.appbar_act_webview).setVisibility(View.GONE);
             findViewById(R.id.appbar_act_webview).setVisibility(View.GONE);
@@ -234,10 +231,22 @@ public class ActWeb extends BaseCompatActivity {
             @Override
             @Override
             public boolean shouldOverrideUrlLoading(WebView view, String url) {
             public boolean shouldOverrideUrlLoading(WebView view, String url) {
                 try {
                 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) {
                 } catch (Exception e) {
                     e.printStackTrace();
                     e.printStackTrace();
                 }
                 }
+
                 return true;
                 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.os.Bundle;
 import android.view.KeyEvent;
 import android.view.KeyEvent;
 import android.view.View;
 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 android.widget.TextView;
 
 
 import com.kfzs.duanduan.BaseCompatActivity;
 import com.kfzs.duanduan.BaseCompatActivity;
+import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.XianWanEntity;
 import com.sheep.gamegroup.model.entity.XianWanEntity;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.DeviceIDUtil;
 import com.sheep.gamegroup.util.DeviceIDUtil;
+import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.WebviewJs;
 import com.sheep.gamegroup.util.WebviewJs;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -65,6 +67,13 @@ public class ActXinwanWeb extends BaseCompatActivity {
                             activity.finish();
                             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);
         tv_next.setVisibility(View.GONE);
         if(xianWanEntity == null){
         if(xianWanEntity == null){
@@ -74,7 +83,7 @@ public class ActXinwanWeb extends BaseCompatActivity {
         webViewSettings = mWebView.getSettings();
         webViewSettings = mWebView.getSettings();
         webViewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
         webViewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
         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)) {//不显示标题
         if (getIntent().hasExtra(EXTRA_WEBVIEW_NO_TITLE)) {//不显示标题
             findViewById(R.id.appbar_act_webview).setVisibility(View.GONE);
             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;
 package com.sheep.gamegroup.view.activity;
 
 
 import android.app.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.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.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.
  * 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
     @Override
     protected int getLayoutId() {
     protected int getLayoutId() {
-        return R.layout.x_ask_getmoney_act_layout;
+        return R.layout.personalcenter_act_layout;
     }
     }
 
 
-    private Activity activity;
-
     @Override
     @Override
     public void initView() {
     public void initView() {
         activity = this;
         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
     @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
     @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.ActDownloadMgr;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.BigEvent;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.GridViewEntity;
 import com.sheep.gamegroup.model.entity.GridViewEntity;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.MyGridview;
 import com.sheep.gamegroup.util.MyGridview;
 import com.sheep.gamegroup.util.UMConfigUtils;
 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.AdpTryMakemoney;
 import com.sheep.gamegroup.view.adapter.AdpTrymakemoneyTabGridview;
 import com.sheep.gamegroup.view.adapter.AdpTrymakemoneyTabGridview;
 import com.sheep.gamegroup.view.fragment.FgtMyGame;
 import com.sheep.gamegroup.view.fragment.FgtMyGame;
@@ -76,6 +78,13 @@ public class GamemakeMoneyAct extends BaseActivity {
         TitleBarUtils
         TitleBarUtils
                 .getInstance()
                 .getInstance()
                 .setTitle(activity, title).setTitleFinish(activity)
                 .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() {
                 .setRightImgBotton(activity, R.drawable.index_download, new View.OnClickListener() {
                     @Override
                     @Override
                     public void onClick(View view) {
                     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.presenter.LoginPresenter;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -94,6 +95,7 @@ public class LoginAct extends BaseUMActivity implements LoginContract.View {
     private void goTelLogin() {
     private void goTelLogin() {
         LOGIN_PHONE.onEvent();
         LOGIN_PHONE.onEvent();
         String openId = SpUtils.getToken(getApplicationContext());
         String openId = SpUtils.getToken(getApplicationContext());
+        LogUtil.logI("手机号码登录--token----"+openId);
         if (!TextUtils.isEmpty(openId)) {
         if (!TextUtils.isEmpty(openId)) {
             Jump2View.getInstance().checkPhoneOrGoHomePage(this);
             Jump2View.getInstance().checkPhoneOrGoHomePage(this);
             finish();
             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.text.TextUtils;
 import android.view.View;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.ImageView;
+import android.widget.PopupWindow;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
-import com.bumptech.glide.Glide;
 import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.entity.UserEntity;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.AppUtil;
 import com.sheep.gamegroup.util.AppUtil;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.DataUtil;
@@ -54,6 +55,10 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
 
 
     @BindView(R.id.personal_info_avatar)
     @BindView(R.id.personal_info_avatar)
     ImageView personal_info_avatar;
     ImageView personal_info_avatar;
+    @BindView(R.id.tv_sex)
+    TextView tvSex;
+    @BindView(R.id.tv_birthday)
+    TextView tvBirthday;
 
 
 
 
     @Override
     @Override
@@ -94,16 +99,88 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
         if (userEntity != null) {
         if (userEntity != null) {
             loadUserInfo();
             loadUserInfo();
         }
         }
+
     }
     }
 
 
+    /**
+     * 上传性别
+     *
+     * @param sex         ,
+     * @param popupWindow ,
+     */
+    public void upLoadSex(final int sex, final PopupWindow popupWindow) {
+        JSONObject j = new JSONObject();
+        j.put("gender", sex);
+        SheepApp.getInstance().getNetComponent().getApiService().changeBaseInfo(j)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast(baseMessage.getMsg());
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        if (baseMessage != null) {
+                            CommonUtil.getInstance().getUserInfo(SheepApp.mContext);
+                            popupWindow.dismiss();
+                            tvSex.setText(sex == 1 ? "男" : "女");
+                            G.showToast("修改成功!");
+                        } else {
+                            G.showToast("修改失败!");
+                        }
+
+                    }
+                });
+    }
+
+    public void upLoadBirthday(final String birthday) {
+        JSONObject j = new JSONObject();
+        j.put("birthday",birthday+"T00:00:00Z");
+        SheepApp.getInstance().getNetComponent().getApiService().changeBaseInfo(j)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast(baseMessage.getMsg());
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        if (baseMessage != null) {
+                            CommonUtil.getInstance().getUserInfo(SheepApp.mContext);
+                            G.showToast("修改成功!");
+                        } else {
+                            G.showToast("修改失败!");
+                        }
+
+                    }
+                });
+    }
+
+    @OnClick({R.id.personal_info_avatar_container, R.id.personal_info_name_container, R.id.personal_info_qr_container, R.id.personal_info_phone_container, R.id.personal_info_wx_container,
+            R.id.personal_info_authentication_container, R.id.llayout_sex, R.id.llayout_birthday})
 
 
-    @OnClick({R.id.personal_info_avatar_container, R.id.personal_info_name_container, R.id.personal_info_qr_container, R.id.personal_info_phone_container, R.id.personal_info_wx_container, R.id.personal_info_authentication_container})
     public void onClick(View view) {
     public void onClick(View view) {
         if (userEntity == null) {
         if (userEntity == null) {
             G.showToast(R.string.loading_data);
             G.showToast(R.string.loading_data);
             return;
             return;
         }
         }
         switch (view.getId()) {
         switch (view.getId()) {
+            case R.id.llayout_sex://用户性别
+                ViewUtil.choiceSex(PersonalInfoAct.this, getCurrentFocus());
+                break;
+//            case R.id.tv_sex://用户性别
+//                ViewUtil.choiceSex(PersonalInfoAct.this, getCurrentFocus());
+//                break;
+            case R.id.llayout_birthday://用户生日
+                ViewUtil.showDateDialog(PersonalInfoAct.this, tvBirthday,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://头像
             case R.id.personal_info_avatar_container://头像
                 showChooseDialog();
                 showChooseDialog();
                 USER_INFO_AVATAR.onEvent();
                 USER_INFO_AVATAR.onEvent();
@@ -180,11 +257,11 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
     protected void onResume() {
     protected void onResume() {
         super.onResume();
         super.onResume();
         UserEntity result = DataUtil.getInstance().getUserEntity();
         UserEntity result = DataUtil.getInstance().getUserEntity();
-        if(result == null) {
+        if (result == null) {
             CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
             CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
                 @Override
                 @Override
                 public void call(UserEntity item) {
                 public void call(UserEntity item) {
-                    if(item != null) {
+                    if (item != null) {
                         userEntity = item;
                         userEntity = item;
                         loadUserInfo();
                         loadUserInfo();
                     }
                     }
@@ -197,10 +274,12 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
     }
     }
 
 
     private void loadUserInfo() {
     private void loadUserInfo() {
+        tvSex.setText((userEntity.getGender()==0)?"点击设置":(userEntity.getGender()==1?"男":"女"));
+        tvBirthday.setText((userEntity.getBirthday().substring(0,1)).equals("0")?"点击设置":userEntity.getBirthday().substring(0,10));
         personal_info_name.setText(userEntity.getNickname());
         personal_info_name.setText(userEntity.getNickname());
         personal_info_code.setText(userEntity.getInvitation_code());
         personal_info_code.setText(userEntity.getInvitation_code());
 
 
-        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());
         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.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.SelfCountDownTimer;
 import com.sheep.gamegroup.util.SelfCountDownTimer;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.TestUtil;
@@ -89,16 +90,16 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
                 .phoneModule(new PhoneModule(this))
                 .phoneModule(new PhoneModule(this))
                 .build()
                 .build()
                 .inject(this);
                 .inject(this);
-        if(TestUtil.isTest()){
+        if (TestUtil.isTest()) {
             phoneEtAccount.setInputType(InputType.TYPE_CLASS_TEXT);
             phoneEtAccount.setInputType(InputType.TYPE_CLASS_TEXT);
             phoneEtAccount.setFilters(new InputFilter[]{new InputFilter.LengthFilter(1000)});
             phoneEtAccount.setFilters(new InputFilter[]{new InputFilter.LengthFilter(1000)});
         }
         }
-        GlideImageLoader.centerImage( phone_iv, "http://cdngame.kuaifazs.com/icon_phone.png");
+        GlideImageLoader.centerImage(phone_iv, "http://cdngame.kuaifazs.com/icon_phone.png");
     }
     }
 
 
     @Override
     @Override
     public void initListener() {
     public void initListener() {
-        selfCountDownTimer = new SelfCountDownTimer(60 * 1000, 1000,SelfCountDownTimer.FULL_SECOND) {
+        selfCountDownTimer = new SelfCountDownTimer(60 * 1000, 1000, SelfCountDownTimer.FULL_SECOND) {
             @Override
             @Override
             public void onTimerRest() {
             public void onTimerRest() {
                 canGetCaptchaPhone = true;
                 canGetCaptchaPhone = true;
@@ -123,14 +124,13 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
     public void initData() {
     public void initData() {
         if (showNotice == 0) {
         if (showNotice == 0) {
             phoneTipTv.setVisibility(View.GONE);
             phoneTipTv.setVisibility(View.GONE);
-        }else if(showNotice == 1){
+        } else if (showNotice == 1) {
             phoneTipTv.setVisibility(View.GONE);
             phoneTipTv.setVisibility(View.GONE);
             phone_iv.setVisibility(View.GONE);
             phone_iv.setVisibility(View.GONE);
-        }else if(showNotice == 2){
+        } else if (showNotice == 2) {
             phoneTipTv.setVisibility(View.GONE);
             phoneTipTv.setVisibility(View.GONE);
             phone_iv.setVisibility(View.GONE);
             phone_iv.setVisibility(View.GONE);
-        }
-        else {
+        } else {
             phoneTipTv.setVisibility(View.VISIBLE);
             phoneTipTv.setVisibility(View.VISIBLE);
 
 
         }
         }
@@ -151,11 +151,11 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
             case R.id.phone_sure_tv:
             case R.id.phone_sure_tv:
                 etPhone = phoneEtAccount.getText().toString().trim();
                 etPhone = phoneEtAccount.getText().toString().trim();
                 etCode = phoneEtCode.getText().toString().trim();
                 etCode = phoneEtCode.getText().toString().trim();
-                if(TestUtil.isTest() && TextUtils.isEmpty(etCode)){
-                    if(TextUtils.isEmpty(etPhone))
+                if (TestUtil.isTest() && TextUtils.isEmpty(etCode)) {
+                    if (TextUtils.isEmpty(etPhone))
                         etPhone = "13626@395a75211751465f54789a7f459089bd";
                         etPhone = "13626@395a75211751465f54789a7f459089bd";
                     goMain(etPhone);
                     goMain(etPhone);
-                    if(!TextUtils.isEmpty(etPhone))
+                    if (!TextUtils.isEmpty(etPhone))
                         TestUtil.addUser(etPhone);
                         TestUtil.addUser(etPhone);
                     return;
                     return;
                 }
                 }
@@ -175,6 +175,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
         }
         }
         return true;
         return true;
     }
     }
+
     private boolean checkCodeInput() {
     private boolean checkCodeInput() {
         if (TextUtils.isEmpty(etCode)) {
         if (TextUtils.isEmpty(etCode)) {
             G.showToast(getString(R.string.input_your_captcha));
             G.showToast(getString(R.string.input_your_captcha));
@@ -190,27 +191,30 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
     /**
     /**
      * 获取验证码
      * 获取验证码
      */
      */
-    private void getCaptcha(){
+    private void getCaptcha() {
 
 
         if (!canGetCaptchaPhone) {
         if (!canGetCaptchaPhone) {
             return;
             return;
         }
         }
-        if(!checkPhoneInput()){
+        if (!checkPhoneInput()) {
             return;
             return;
         }
         }
         selfCountDownTimer.reset(SelfCountDownTimer.FULL_SECOND);
         selfCountDownTimer.reset(SelfCountDownTimer.FULL_SECOND);
-        phonePresenter.getCaptcha(etPhone);
-        canGetCaptchaPhone = false;
-        selfCountDownTimer.start();
+        canGetCaptchaPhone = true;
+        if (phonePresenter.getCaptchaa(etPhone)) {//成功获取验证码后,开启倒计时
+            selfCountDownTimer.start();
+        }
+
     }
     }
+
     /**
     /**
      * 登录
      * 登录
      */
      */
-    private void loginByPhoneGaptcha(){
-        if(!checkPhoneInput()){
+    private void loginByPhoneGaptcha() {
+        if (!checkPhoneInput()) {
             return;
             return;
         }
         }
-        if(!checkCodeInput()){
+        if (!checkCodeInput()) {
             return;
             return;
         }
         }
 
 
@@ -226,6 +230,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
 
 
     /**
     /**
      * 验证码获取失败
      * 验证码获取失败
+     *
      * @param o
      * @param o
      */
      */
     @Override
     @Override
@@ -250,7 +255,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
         }
         }
-        if(loginEty != null) {
+        if (loginEty != null) {
             SpUtils.saveToken(activity, loginEty.getToken());
             SpUtils.saveToken(activity, loginEty.getToken());
             DataUtil.getInstance().setUserEntity(loginEty.getUser());
             DataUtil.getInstance().setUserEntity(loginEty.getUser());
         }
         }
@@ -303,9 +308,9 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
      */
      */
     @Override
     @Override
     public boolean dispatchKeyEvent(KeyEvent event) {
     public boolean dispatchKeyEvent(KeyEvent event) {
-        if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER){
+        if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
             InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
             InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
-            if(inputMethodManager.isActive()){
+            if (inputMethodManager.isActive()) {
                 inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
                 inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
                 return true;
                 return true;
             }
             }
@@ -315,6 +320,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
 
 
 
 
     private void goMain(String openId) {
     private void goMain(String openId) {
+        LogUtil.logI("goMain--token----"+openId);
         SpUtils.saveToken(getApplicationContext(), openId);
         SpUtils.saveToken(getApplicationContext(), openId);
         Jump2View.getInstance().goHomePageView(this, null);
         Jump2View.getInstance().goHomePageView(this, null);
         ActivityManager.getInstance().endActivity(LoginAct.class);
         ActivityManager.getInstance().endActivity(LoginAct.class);
@@ -324,7 +330,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
     @Override
     @Override
     protected void onDestroy() {
     protected void onDestroy() {
         super.onDestroy();
         super.onDestroy();
-        if(selfCountDownTimer != null){
+        if (selfCountDownTimer != null) {
             selfCountDownTimer.cancel();
             selfCountDownTimer.cancel();
         }
         }
     }
     }

+ 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()
                 .getInstance()
                 .setTitle(activity, "每日打卡")
                 .setTitle(activity, "每日打卡")
                 .setTitleFinish(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() {
                 .setRightBotton(activity, "战绩", 0, new View.OnClickListener() {
                     @Override
                     @Override
                     public void onClick(View v) {
                     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:
                 case 0:
                     if(!isRequestCodePermissions && !isLoaddingData && timerIsFinish())
                     if(!isRequestCodePermissions && !isLoaddingData && timerIsFinish())
                         gotoNext();
                         gotoNext();
+                    else
+                        sendHandlerMessages(100);
                     break;
                     break;
                 case 1:
                 case 1:
                     if(SysAppUtil.isNewSmallSheep(false)){//新版本只显示引导页面,不展示弹窗和开屏广告
                     if(SysAppUtil.isNewSmallSheep(false)){//新版本只显示引导页面,不展示弹窗和开屏广告

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 496 - 285
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java


+ 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.support.annotation.RequiresApi;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.view.View;
 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.LinearLayout;
-import android.widget.RelativeLayout;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.NewbieTask;
 import com.sheep.gamegroup.model.entity.NewbieTask;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.util.UMConfigUtils;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 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.G;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 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.BindView;
 import butterknife.ButterKnife;
 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.support.annotation.RequiresApi;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.view.View;
 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.ImageView;
 import android.widget.LinearLayout;
 import android.widget.LinearLayout;
-import android.widget.RelativeLayout;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
 import com.bumptech.glide.request.RequestOptions;
 import com.kfzs.duanduan.datashare.DDProviderHelper;
 import com.kfzs.duanduan.datashare.DDProviderHelper;
 import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 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.BaseMessage;
-import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
 import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.model.entity.TaskReleaseEty;
 import com.sheep.gamegroup.model.entity.TaskReleaseEty;
 import com.sheep.gamegroup.model.util.EntityUtils;
 import com.sheep.gamegroup.model.util.EntityUtils;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DeviceUtil;
 import com.sheep.gamegroup.util.DeviceUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.MyListview;
 import com.sheep.gamegroup.util.MyListview;
 import com.sheep.gamegroup.util.TimeUtil;
 import com.sheep.gamegroup.util.TimeUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.util.UMConfigUtils;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 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.G;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 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;
 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){
         if(object instanceof BaseMessage){
             List<TaskAcceptedEty> releaseEtyList = ((BaseMessage) object).getDataList(TaskAcceptedEty.class);
             List<TaskAcceptedEty> releaseEtyList = ((BaseMessage) object).getDataList(TaskAcceptedEty.class);
             ListUtil.addAll(etyList, releaseEtyList);
             ListUtil.addAll(etyList, releaseEtyList);
+
+            if(!etyList.isEmpty())
+                etyList.add(null);//底部部分----我是有底线的
         }
         }
         notifyDataSetChanged();
         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.ActDownloadMgr;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.BigEvent;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.util.UMConfigUtils;
 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.AdpTryMakemoney;
 import com.sheep.gamegroup.view.fragment.FgtTryMakeMoney;
 import com.sheep.gamegroup.view.fragment.FgtTryMakeMoney;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
@@ -60,6 +62,13 @@ public class TryMakeMoneyact extends BaseActivity {
         TitleBarUtils
         TitleBarUtils
                 .getInstance()
                 .getInstance()
                 .setTitle(activity, title).setTitleFinish(activity)
                 .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() {
                 .setRightImgBotton(activity, R.drawable.index_download, new View.OnClickListener() {
                     @Override
                     @Override
                     public void onClick(View view) {
                     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.text.TextUtils;
 import android.view.View;
 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 android.widget.TextView;
 
 
 import com.alibaba.fastjson.JSONObject;
 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;
 package com.sheep.gamegroup.view.adapter;
 
 
 import android.content.Context;
 import android.content.Context;
+import android.graphics.drawable.Drawable;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewGroup;
@@ -56,36 +57,24 @@ public class AdpHomeListGrideview extends BaseAdapter {
             holder = (ViewHolder) tag;
             holder = (ViewHolder) tag;
         }else {
         }else {
             holder = new ViewHolder();
             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_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);
             holder.gridview_item_icon_iv = convertView.findViewById(R.id.gridview_item_icon_iv);
             convertView.setTag(holder);
             convertView.setTag(holder);
         }
         }
         final HomeListEntity entity = getItem(position);
         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_name_tv, entity.getTitle());
-        ViewUtil.setText(holder.gridview_item_detail_tv, entity.getDesc());
         Glide.with(context)
         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);
                 .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;
         return convertView;
     }
     }
 
 
     class ViewHolder{
     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;
         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);
         mTitles.add(title);
     }
     }
 
 
+    public void cleanListFragment(){
+        mListFragment.clear();
+        mTitles.clear();
+    }
+
     @Override
     @Override
     public Fragment getItem(int position) {
     public Fragment getItem(int position) {
         return (Fragment) mListFragment.get(position);
         return (Fragment) mListFragment.get(position);

+ 34 - 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.app.Activity;
 import android.content.Context;
 import android.content.Context;
+import android.os.Message;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewGroup;
@@ -9,12 +10,20 @@ import android.widget.BaseAdapter;
 import android.widget.ImageView;
 import android.widget.ImageView;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
+import com.kfzs.duanduan.event.BigEvent;
+import com.kfzs.duanduan.event.EventTypes;
+import com.kfzs.duanduan.fragment.FgtSmallSheep;
 import com.sheep.gamegroup.model.entity.NewbieTask;
 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.Jump2View;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
 
+import org.greenrobot.eventbus.EventBus;
+
 import java.util.List;
 import java.util.List;
 import java.util.Locale;
 import java.util.Locale;
 
 
@@ -53,14 +62,16 @@ public class NewbieTaskAdp extends BaseAdapter {
     public long getItemId(int position) {
     public long getItemId(int position) {
         return 0;
         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};
     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
     @Override
     public View getView(final int position, View convertView, ViewGroup parent) {
     public View getView(final int position, View convertView, ViewGroup parent) {
         Object tag = convertView == null ? null : convertView.getTag();
         Object tag = convertView == null ? null : convertView.getTag();
         ViewHolder holder;
         ViewHolder holder;
-        if(tag instanceof ViewHolder){
+        if (tag instanceof ViewHolder) {
             holder = (ViewHolder) tag;
             holder = (ViewHolder) tag;
-        }else {
+        } else {
             holder = new ViewHolder();
             holder = new ViewHolder();
             convertView = LayoutInflater.from(context).inflate(R.layout.newbie_task, null);
             convertView = LayoutInflater.from(context).inflate(R.layout.newbie_task, null);
             holder.newbie_task_iv = convertView.findViewById(R.id.newbie_task_iv);
             holder.newbie_task_iv = convertView.findViewById(R.id.newbie_task_iv);
@@ -71,19 +82,19 @@ public class NewbieTaskAdp extends BaseAdapter {
         }
         }
 
 
         final NewbieTask ety = (NewbieTask) getItem(position);
         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_name_tv.setText(ety.getName());
         holder.newbie_task_money_tv.setText(String.format(Locale.CHINESE, "+%.1f元", ety.getAmount()));
         holder.newbie_task_money_tv.setText(String.format(Locale.CHINESE, "+%.1f元", ety.getAmount()));
         holder.newbie_task_tv.setOnClickListener(new View.OnClickListener() {
         holder.newbie_task_tv.setOnClickListener(new View.OnClickListener() {
 
 
             @Override
             @Override
             public void onClick(View view) {
             public void onClick(View view) {
-                if(onClickListener != null)
+                if (onClickListener != null)
                     onClickListener.onClick(view);
                     onClickListener.onClick(view);
                 doActionByTask(context, ety);
                 doActionByTask(context, ety);
             }
             }
         });
         });
-        switch (ety.getStatus()){
+        switch (ety.getStatus()) {
             case 0:
             case 0:
                 holder.newbie_task_tv.setText("去完成");
                 holder.newbie_task_tv.setText("去完成");
                 break;
                 break;
@@ -101,14 +112,15 @@ public class NewbieTaskAdp extends BaseAdapter {
         return convertView;
         return convertView;
     }
     }
 
 
-    class ViewHolder{
+    class ViewHolder {
         ImageView newbie_task_iv;
         ImageView newbie_task_iv;
         TextView newbie_task_name_tv, newbie_task_money_tv, newbie_task_tv;
         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());
             NEWBIE_TASK_ITEM.onEvent("id", task.getId(), "name", task.getName());
-            switch (task.getId()){
+            switch (task.getId()) {
                 case 1://了解小绵羊
                 case 1://了解小绵羊
                     Jump2View.getInstance().goUnderstandSheep(context, null);
                     Jump2View.getInstance().goUnderstandSheep(context, null);
                     break;
                     break;
@@ -122,23 +134,32 @@ public class NewbieTaskAdp extends BaseAdapter {
                     Jump2View.getInstance().goTryplayView(context, null);
                     Jump2View.getInstance().goTryplayView(context, null);
                     break;
                     break;
                 case 5://注册账号并登录
                 case 5://注册账号并登录
-                    if(BuildConfig.DEBUG){
+                    if (BuildConfig.DEBUG) {
                         G.showToast("测试:服务器返回数据错误,这个任务可能没有完成?");
                         G.showToast("测试:服务器返回数据错误,这个任务可能没有完成?");
                     }
                     }
+                    isShow(context);
                     break;
                     break;
                 case 6://加入官方QQ群
                 case 6://加入官方QQ群
                     doActionByTaskQQ(context, task);
                     doActionByTaskQQ(context, task);
                     break;
                     break;
             }
             }
         } else {
         } else {
-            if(BuildConfig.DEBUG)
+            if (BuildConfig.DEBUG)
                 G.showToast("测试:context必须继续Activity");
                 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) {
+            EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_SHEEP_SHOW_NEW_USER_HONG_BAO));
+            LogUtil.logI("sendmessage");
+        }
+    }
+
+    private static void doActionByTaskQQ(Context context, NewbieTask task) {
 
 
-        switch (task.getStatus()){
+        switch (task.getStatus()) {
             case 0://"去完成");
             case 0://"去完成");
                 Jump2View.getInstance().goAddQQTaskDetail(context, task);
                 Jump2View.getInstance().goAddQQTaskDetail(context, task);
                 break;
                 break;

+ 53 - 5
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.app.Activity;
 import android.content.Context;
 import android.content.Context;
 import android.content.Intent;
 import android.content.Intent;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewGroup;
@@ -65,6 +66,9 @@ public class TaskListItemAdp extends BaseAdapter {
 
 
     @Override
     @Override
     public View getView(int position, View convertView, ViewGroup parent) {
     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();
         Object tag = convertView == null ? null : convertView.getTag();
         ViewHolder holder;
         ViewHolder holder;
         if(tag instanceof ViewHolder){
         if(tag instanceof ViewHolder){
@@ -77,6 +81,7 @@ public class TaskListItemAdp extends BaseAdapter {
             holder.price_tv = convertView.findViewById(R.id.price_tv);
             holder.price_tv = convertView.findViewById(R.id.price_tv);
             holder.icon_iv = convertView.findViewById(R.id.icon_iv);
             holder.icon_iv = convertView.findViewById(R.id.icon_iv);
             holder.detail_task_tv = convertView.findViewById(R.id.detail_task_tv);
             holder.detail_task_tv = convertView.findViewById(R.id.detail_task_tv);
+            holder.desc_tv = convertView.findViewById(R.id.desc_tv);
             convertView.setTag(holder);
             convertView.setTag(holder);
         }
         }
 
 
@@ -85,8 +90,16 @@ public class TaskListItemAdp extends BaseAdapter {
             return convertView;
             return convertView;
         }
         }
         ViewUtil.setText(holder.name_tv, ety.getRelease_task().getName());
         ViewUtil.setText(holder.name_tv, ety.getRelease_task().getName());
-        ViewUtil.setText(holder.name_tv, TimeUtil.getDate(TimeUtil.FORMAT, NumberFormatUtils.parseLong(ety.getUpdate_time())));
-        holder.price_tv.setText(returnValue(ety));
+        ViewUtil.setText(holder.date_tv, TimeUtil.getDate(TimeUtil.FORMAT, NumberFormatUtils.parseLong(ety.getUpdate_time())));
+        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);
         convertView.setOnClickListener(new View.OnClickListener() {
         convertView.setOnClickListener(new View.OnClickListener() {
             @Override
             @Override
             public void onClick(View v) {
             public void onClick(View v) {
@@ -94,7 +107,7 @@ public class TaskListItemAdp extends BaseAdapter {
             }
             }
         });
         });
         TestUtil.setDebugDownLoad(context, convertView, ety.getRelease_task().getTask());
         TestUtil.setDebugDownLoad(context, convertView, ety.getRelease_task().getTask());
-        holder.detail_task_tv.setText(ety.getRemarks());
+        returnValue3(ety, holder.detail_task_tv,holder.desc_tv);
         Glide.with(context)
         Glide.with(context)
                 .load(ety.getRelease_task().getTask().getIcon())
                 .load(ety.getRelease_task().getTask().getIcon())
                 .apply(new RequestOptions().placeholder(R.mipmap.icon))
                 .apply(new RequestOptions().placeholder(R.mipmap.icon))
@@ -104,11 +117,11 @@ public class TaskListItemAdp extends BaseAdapter {
 
 
     class ViewHolder{
     class ViewHolder{
         ImageView icon_iv;
         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
      * @return
      */
      */
     private String returnValue(TaskAcceptedEty ety){
     private String returnValue(TaskAcceptedEty ety){
@@ -141,4 +154,39 @@ public class TaskListItemAdp extends BaseAdapter {
         }
         }
         return stateStr;
         return stateStr;
     }
     }
+    private String returnValue3(TaskAcceptedEty ety, TextView textView, TextView desc_tv){
+        desc_tv.setVisibility(View.GONE);
+        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("重新提交");
+                desc_tv.setVisibility(View.VISIBLE);
+                desc_tv.setText(TextUtils.isEmpty(ety.getRemarks())?"":"失败原因:"+ety.getRemarks());
+                break;
+        }
+        return stateStr;
+    }
 }
 }

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


Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio