Ver código fonte

Merge branch 'sheep_develop' into sheep_develop_video_courage_for_test

# Conflicts:
#	app/src/main/res/layout/act_bottom_bar.xml
zeki 5 anos atrás
pai
commit
414fd0985d
100 arquivos alterados com 914 adições e 418 exclusões
  1. 1 0
      app/build.gradle
  2. 5 7
      app/src/developSheeptest/java/com/sheep/jiuyan/samllsheep/wxapi/WXEntryActivity.java
  3. 11 2
      app/src/main/AndroidManifest.xml
  4. 0 3
      app/src/main/java/com/sheep/gamegroup/di/modules/NetModule.java
  5. 1 1
      app/src/main/java/com/sheep/gamegroup/helper/TaskHelper.java
  6. 1 1
      app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java
  7. 6 4
      app/src/main/java/com/sheep/gamegroup/model/entity/ApkFileInfo.java
  8. 0 1
      app/src/main/java/com/sheep/gamegroup/model/entity/MiniPayResult.java
  9. 0 2
      app/src/main/java/com/sheep/gamegroup/module/ActAdJumper.java
  10. 0 3
      app/src/main/java/com/sheep/gamegroup/module/game/activity/ActGameGroupOrGameDetail.java
  11. 13 15
      app/src/main/java/com/sheep/gamegroup/module/guide/NewbieGuideHelper.java
  12. 0 24
      app/src/main/java/com/sheep/gamegroup/module/home/fragment/FgtHome.java
  13. 63 23
      app/src/main/java/com/sheep/gamegroup/module/home/fragment/FgtMainHeader.java
  14. 0 6
      app/src/main/java/com/sheep/gamegroup/module/login/ChangePasswordAct.java
  15. 7 1
      app/src/main/java/com/sheep/gamegroup/module/login/fragments/EditUserInfoFgt.java
  16. 9 1
      app/src/main/java/com/sheep/gamegroup/module/login/fragments/FindAccountFgt.java
  17. 12 9
      app/src/main/java/com/sheep/gamegroup/module/login/fragments/SignInFgt.java
  18. 14 11
      app/src/main/java/com/sheep/gamegroup/module/login/fragments/SignUpFgt.java
  19. 3 11
      app/src/main/java/com/sheep/gamegroup/module/pay/activity/SheepWXPayEntryActivity.java
  20. 18 6
      app/src/main/java/com/sheep/gamegroup/module/webview/fragment/FgtWebX5.java
  21. 5 0
      app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java
  22. 0 3
      app/src/main/java/com/sheep/gamegroup/util/DataUtil.java
  23. 11 16
      app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
  24. 26 0
      app/src/main/java/com/sheep/gamegroup/util/ProcessEventBroadCastReceiver.java
  25. 25 0
      app/src/main/java/com/sheep/gamegroup/util/ProcessEventBusUtil.java
  26. 12 15
      app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java
  27. 1 0
      app/src/main/java/com/sheep/gamegroup/view/activity/ActAudit.java
  28. 117 17
      app/src/main/java/com/sheep/gamegroup/view/activity/ActMain.java
  29. 1 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActMyMoney.java
  30. 2 0
      app/src/main/java/com/sheep/gamegroup/view/activity/MiddleSchemeAct.java
  31. 111 90
      app/src/main/java/com/sheep/gamegroup/view/activity/SplashAct.java
  32. 1 0
      app/src/main/java/com/sheep/gamegroup/view/activity/helper/AdHelper.java
  33. 0 2
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGcGameAppInfoList.java
  34. 70 0
      app/src/main/java/com/sheep/gamegroup/view/customview/BottomTabLayout.java
  35. 37 0
      app/src/main/java/com/sheep/gamegroup/view/customview/RecyclerItemDecoration.java
  36. 5 4
      app/src/main/java/com/sheep/gamegroup/view/customview/TouchFrameLayout.java
  37. 56 35
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMainAudit.java
  38. 111 81
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPersonalCenter.java
  39. 28 20
      app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java
  40. 0 1
      app/src/main/java/com/sheep/jiuyan/samllsheep/base/BaseFragment.java
  41. 1 1
      app/src/main/java/com/sheep/jiuyan/samllsheep/service/DownloadService.java
  42. 1 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/wxutil/WXAPIUtil.java
  43. 1 1
      app/src/main/res/color/selector_color_tab_home.xml
  44. BIN
      app/src/main/res/drawable-xhdpi/shouye.png
  45. BIN
      app/src/main/res/drawable-xhdpi/shouye_c.png
  46. BIN
      app/src/main/res/drawable-xhdpi/youxi.png
  47. BIN
      app/src/main/res/drawable-xhdpi/youxi_c.png
  48. BIN
      app/src/main/res/drawable-xxhdpi/shouye.png
  49. BIN
      app/src/main/res/drawable-xxhdpi/shouye_c.png
  50. BIN
      app/src/main/res/drawable-xxhdpi/youxi.png
  51. BIN
      app/src/main/res/drawable-xxhdpi/youxi_c.png
  52. BIN
      app/src/main/res/drawable-xxxhdpi/shouye.png
  53. BIN
      app/src/main/res/drawable-xxxhdpi/shouye_c.png
  54. BIN
      app/src/main/res/drawable-xxxhdpi/youxi.png
  55. BIN
      app/src/main/res/drawable-xxxhdpi/youxi_c.png
  56. 61 0
      app/src/main/res/drawable/anim_wxhb.xml
  57. 4 0
      app/src/main/res/drawable/bg_corner_10dp_bottom.xml
  58. 4 0
      app/src/main/res/drawable/bg_corner_10dp_top.xml
  59. 5 0
      app/src/main/res/drawable/bg_thumb_personal_scroll_bar.xml
  60. 7 0
      app/src/main/res/drawable/drawable_selector_item_click.xml
  61. 5 0
      app/src/main/res/drawable/fg_circle_white_default.xml
  62. 5 0
      app/src/main/res/drawable/fg_circle_white_press.xml
  63. 4 0
      app/src/main/res/drawable/fg_rect_black_default.xml
  64. 4 0
      app/src/main/res/drawable/fg_rect_black_press.xml
  65. 4 0
      app/src/main/res/drawable/fg_rect_default.xml
  66. 4 0
      app/src/main/res/drawable/fg_rect_press.xml
  67. BIN
      app/src/main/res/drawable/gif_bottom_game.gif
  68. BIN
      app/src/main/res/drawable/gif_bottom_home.gif
  69. BIN
      app/src/main/res/drawable/guide_1_2.png
  70. 5 0
      app/src/main/res/drawable/selector_forground_circle_white.xml
  71. 5 0
      app/src/main/res/drawable/selector_forground_rect_black.xml
  72. 5 0
      app/src/main/res/drawable/selector_forground_rect_white.xml
  73. 6 0
      app/src/main/res/drawable/thumb_personal_scroll_bar.xml
  74. BIN
      app/src/main/res/drawable/xjhb0000.png
  75. BIN
      app/src/main/res/drawable/xjhb0001.png
  76. BIN
      app/src/main/res/drawable/xjhb0002.png
  77. BIN
      app/src/main/res/drawable/xjhb0003.png
  78. BIN
      app/src/main/res/drawable/xjhb0004.png
  79. BIN
      app/src/main/res/drawable/xjhb0005.png
  80. BIN
      app/src/main/res/drawable/xjhb0006.png
  81. BIN
      app/src/main/res/drawable/xjhb0007.png
  82. BIN
      app/src/main/res/drawable/xjhb0008.png
  83. BIN
      app/src/main/res/drawable/xjhb0009.png
  84. BIN
      app/src/main/res/drawable/xjhb0010.png
  85. BIN
      app/src/main/res/drawable/xjhb0011.png
  86. BIN
      app/src/main/res/drawable/xjhb0012.png
  87. BIN
      app/src/main/res/drawable/xjhb0013.png
  88. BIN
      app/src/main/res/drawable/xjhb0014.png
  89. BIN
      app/src/main/res/drawable/xjhb0015.png
  90. BIN
      app/src/main/res/drawable/xjhb0016.png
  91. BIN
      app/src/main/res/drawable/xjhb0017.png
  92. BIN
      app/src/main/res/drawable/xjhb0018.png
  93. BIN
      app/src/main/res/drawable/xjhb0019.png
  94. BIN
      app/src/main/res/drawable/xjhb0020.png
  95. BIN
      app/src/main/res/drawable/xjhb0021.png
  96. BIN
      app/src/main/res/drawable/xjhb0022.png
  97. BIN
      app/src/main/res/drawable/xjhb0023.png
  98. BIN
      app/src/main/res/drawable/xjhb0024.png
  99. BIN
      app/src/main/res/drawable/xjhb0025.png
  100. 0 0
      app/src/main/res/drawable/xjhb0026.png

+ 1 - 0
app/build.gradle

@@ -180,6 +180,7 @@ dependencies {
     implementation(name: 'alipaySdk-15.5.9', ext: 'aar')
     implementation(name: 'ad_dk_sdk', ext: 'aar')
     implementation(name: 'klevinSDK', ext: 'aar')
+    //implementation(name: 'lygamewrapper-sheep-release', ext: 'aar')
 
     //其中latest.release指代最新版本号,也可以指定明确的版本号,例如1.2.0
     implementation 'com.tencent.bugly:nativecrashreport:3.3.1'

+ 5 - 7
app/src/developSheeptest/java/com/sheep/jiuyan/samllsheep/wxapi/WXEntryActivity.java

@@ -7,10 +7,7 @@ import android.util.Log;
 import com.alibaba.fastjson.JSONObject;
 import com.sheep.gamegroup.event.WXLoginAuthEvent;
 import com.sheep.gamegroup.model.entity.MiniPayResult;
-import com.sheep.gamegroup.util.ApiJSONUtil;
-import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.LogUtil;
-import com.sheep.gamegroup.util.QQUtil;
+import com.sheep.gamegroup.util.*;
 import com.sheep.jiuyan.samllsheep.Config;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.tencent.mm.opensdk.modelbase.BaseReq;
@@ -55,9 +52,9 @@ public class WXEntryActivity extends WXCallbackActivity {//implements IWXAPIEven
         if (resp instanceof SendAuth.Resp) {
             if (resp.errCode == BaseResp.ErrCode.ERR_OK) {
                 String code = ((SendAuth.Resp) resp).code;
-                EventBus.getDefault().post(new WXLoginAuthEvent(code));
+                  ProcessEventBusUtil.postEvent(this, new WXLoginAuthEvent(code));
             } else {
-                EventBus.getDefault().post(new WXLoginAuthEvent(null));
+                ProcessEventBusUtil.postEvent(this, new WXLoginAuthEvent(null));
             }
         } else if (resp instanceof WXLaunchMiniProgram.Resp) {
             WXLaunchMiniProgram.Resp miniResp = (WXLaunchMiniProgram.Resp) resp;
@@ -73,7 +70,8 @@ public class WXEntryActivity extends WXCallbackActivity {//implements IWXAPIEven
                 code = "9001";
                 pr.errCode = 1;
             }
-            EventBus.getDefault().post(pr);
+            ProcessEventBusUtil.postEvent(this, pr);
+            //EventBus.getDefault().post(pr);
             String frompackage = QQUtil.getWxPayFrom(SheepApp.getInstance(), result.prepayId);
             String outorderno = QQUtil.getWxPayOrderNo(SheepApp.getInstance(), result.prepayId);
             int fromorient = QQUtil.getWxPayOrient(SheepApp.getInstance(), result.prepayId);

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

@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
+
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:tools="http://schemas.android.com/tools"
           package="com.sheep.jiuyan.samllsheep">
@@ -104,6 +105,15 @@
                 android:name=".wxutil.WXUmengEntryActivity"
                 android:exported="true"
                 android:launchMode="singleTop"/>
+
+        <receiver android:name="com.sheep.gamegroup.util.ProcessEventBroadCastReceiver" android:enabled="true" android:exported="true">
+            <intent-filter>
+                <action android:name="flag">
+
+                </action>
+            </intent-filter>
+        </receiver>
+
         <activity
                 android:name=".wxapi.WXEntryActivity"
                 android:configChanges="keyboardHidden|navigation|orientation|screenSize"
@@ -276,7 +286,7 @@
         <activity
                 android:name="com.sheep.gamegroup.view.activity.ActAudit"
                 android:screenOrientation="portrait"
-                android:theme="@style/AppActionTheme"/>
+                android:theme="@style/AppTheme"/>
         <activity
                 android:name="com.sheep.gamegroup.view.activity.GameTaskOrderListAct"
                 android:screenOrientation="portrait"
@@ -464,7 +474,6 @@
                 android:name="com.sheep.gamegroup.view.activity.ActWebX5NewProcess"
                 android:configChanges="orientation|screenSize"
                 android:exported="true"
-                android:process=":webProcess"
                 android:screenOrientation="portrait"
                 android:theme="@style/AppActionTheme"/>
 

+ 0 - 3
app/src/main/java/com/sheep/gamegroup/di/modules/NetModule.java

@@ -1,13 +1,10 @@
 package com.sheep.gamegroup.di.modules;
 
-import android.util.Log;
-
 import com.sheep.gamegroup.model.api.ApiService;
 import com.sheep.gamegroup.model.api.StringConverterFactory;
 import com.sheep.gamegroup.model.cookie.CookieManager;
 import com.sheep.gamegroup.model.util.AddPublicParamsIntercept;
 import com.sheep.gamegroup.model.util.CacheInterceptor;
-import com.sheep.gamegroup.model.util.EntityUtils;
 import com.sheep.gamegroup.model.util.LogInterceptor;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.jiuyan.samllsheep.BuildConfig;

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

@@ -421,7 +421,7 @@ public class TaskHelper {
         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);
+        int padding = textView.getContext().getResources().getDimensionPixelSize(R.dimen.content_padding_1);
         textView.setPadding(4 * padding, padding, 4 * padding, padding);
     }
 

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

@@ -859,7 +859,7 @@ public interface ApiService {
     Observable<BaseMessage> commitIdEvent(@Body JSONObject jsonObject);
 
     /**
-     * 闲玩
+     * 闲玩、广告
      */
     @GET("app/common_config")
     Observable<BaseMessage> commonConfig(@Query("type_name") String type_name);

+ 6 - 4
app/src/main/java/com/sheep/gamegroup/model/entity/ApkFileInfo.java

@@ -3,15 +3,11 @@ package com.sheep.gamegroup.model.entity;
 import android.content.Context;
 import android.content.pm.PackageInfo;
 import android.text.TextUtils;
-
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.util.Md5Util;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
-
 import java.io.File;
 
-import rx.functions.Action1;
-
 /**
  * Created by realicing on 2018/11/9.
  * realicing@sina.com
@@ -29,12 +25,14 @@ public class ApkFileInfo {
     }
 
     private File file;
+
     public boolean existsPath() {
         file = new File(path);
         return file.exists();
     }
 
     private String packageName;
+
     public ApkFileInfo initPackageNameFromPath(Context context) {
         packageName = ApkUtils.getUnInstallApkPackageName(context, path);
         return this;
@@ -45,6 +43,7 @@ public class ApkFileInfo {
     }
 
     private boolean isAppInstalled;
+
     public boolean checkInstall(Context context) {
         isAppInstalled = PackageUtil.isAppInstalled(context, packageName);
         return isAppInstalled;
@@ -53,6 +52,7 @@ public class ApkFileInfo {
     public boolean isAppInstalled() {
         return isAppInstalled;
     }
+
     //是否 文件与安装的应用是否m签名d5相同
     private boolean isEqualsSignMd5;
 
@@ -62,6 +62,7 @@ public class ApkFileInfo {
 
     private PackageInfo appPackageInfo;
     private PackageInfo filePackageInfo;
+
     //检查文件与安装的应用是否m签名d5相同
     public boolean checkApkAndFileSignMd5() {
         String appSignMd5 = ApkUtils.getApkSignMd5StrByPackageName(packageName, packageInfo -> appPackageInfo = packageInfo);
@@ -70,6 +71,7 @@ public class ApkFileInfo {
         isEqualsSignMd5 = TextUtils.equals(fileSignMd5, appSignMd5);
         return isEqualsSignMd5;
     }
+
     //检查文件与安装的应用是否md5相同
     public boolean checkApkAndFileMd5() {
         return Md5Util.checkMD5(new File(appPackageInfo.applicationInfo.sourceDir), file);

+ 0 - 1
app/src/main/java/com/sheep/gamegroup/model/entity/MiniPayResult.java

@@ -1,7 +1,6 @@
 package com.sheep.gamegroup.model.entity;
 
 import com.alibaba.fastjson.JSONObject;
-import com.sheep.jiuyan.samllsheep.wxapi.WXEntryActivity;
 
 public class MiniPayResult {
     public String payResult;

+ 0 - 2
app/src/main/java/com/sheep/gamegroup/module/ActAdJumper.java

@@ -1,7 +1,5 @@
 package com.sheep.gamegroup.module;
 
-import android.app.Activity;
-
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.view.activity.helper.AdHelper;

+ 0 - 3
app/src/main/java/com/sheep/gamegroup/module/game/activity/ActGameGroupOrGameDetail.java

@@ -155,8 +155,6 @@ public class ActGameGroupOrGameDetail extends BaseActivity {
     View item_gc_game_app_list_bottom;
     @BindView(R.id.item_gc_game_app_list_rv)
     RecyclerView item_gc_game_app_list_rv;
-    @BindView(R.id.item_gc_game_app_list_top)
-    View item_gc_game_app_list_top;
     @BindView(R.id.item_gc_game_app_list_tv)
     TextView item_gc_game_app_list_tv;
 
@@ -206,7 +204,6 @@ public class ActGameGroupOrGameDetail extends BaseActivity {
         boolean isGameGroupNull = gameGroup == null;
         ViewUtil.setVisibility(gc_game_app_detail_game_list, !isGameGroupNull);
         ViewUtil.setVisibility(item_gc_game_app_list_bottom, !isGameGroupNull);
-        ViewUtil.setVisibility(item_gc_game_app_list_top, isGameGroupNull);
         ViewUtil.setVisibility(gc_game_app_detail_bt2, isGameGroupNull);
         ViewUtil.setVisibility(gc_game_app_detail_line, isGameGroupNull);
         if (isGameGroupNull) {

+ 13 - 15
app/src/main/java/com/sheep/gamegroup/module/guide/NewbieGuideHelper.java

@@ -1,15 +1,12 @@
 package com.sheep.gamegroup.module.guide;
 
 import android.app.Activity;
-import android.content.Context;
-import android.content.SharedPreferences;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.animation.AlphaAnimation;
 import android.view.animation.Animation;
-
 import com.app.hubert.guide.NewbieGuide;
 import com.app.hubert.guide.core.Builder;
 import com.app.hubert.guide.core.Controller;
@@ -20,26 +17,21 @@ import com.app.hubert.guide.model.GuidePage;
 import com.app.hubert.guide.model.HighLight;
 import com.app.hubert.guide.model.HighlightOptions;
 import com.app.hubert.guide.model.RelativeGuide;
-import com.app.hubert.guide.core.Controller;
 import com.kfzs.duanduan.cardview.ScreenUtil;
 import com.sheep.gamegroup.event.BigEvent;
 import com.sheep.gamegroup.event.EventTypes;
 import com.sheep.gamegroup.module.game.fragment.FgtGameCenter;
 import com.sheep.gamegroup.module.home.fragment.FgtHome;
 import com.sheep.gamegroup.module.home.fragment.FgtMainHeader;
-import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.view.activity.ActMain;
 import com.sheep.gamegroup.view.fragment.FgtPersonalCenter;
 import com.sheep.gamegroup.view.fragment.FgtSmallSheep;
 import com.sheep.jiuyan.samllsheep.R;
-
 import org.greenrobot.eventbus.EventBus;
 import org.xutils.common.util.LogUtil;
-
 import java.util.Arrays;
 import java.util.List;
-
 import static com.sheep.gamegroup.event.EventTypes.GUIDE_SWITCH_GAME;
 
 public class NewbieGuideHelper {
@@ -95,8 +87,11 @@ public class NewbieGuideHelper {
 
                     @Override
                     public void onRemoved(Controller controller) {
-                        if (!goon) return;
-                        Log.e(TAG, "NewbieGuide  onRemoved: ");
+                        if (!goon) {
+                            EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.GUIDE_SHOW_HOME));
+                            return;
+                        }
+                        Log.e(TAG, "NewbieGuide  onRemoved: "+type);
                         if (type == GUIDE_HOME) {
                             Jump2View.getInstance().goPersonnalCenterView(mActivity, "newbie");
                         } else if (type == GUIDE_USER) {
@@ -108,6 +103,8 @@ public class NewbieGuideHelper {
                             mActivity.finish();
                         } else if (type == GUIDE_GAME) {
                             EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_SHEEP_SHOW_NEW_USER_HONG_BAO));
+                        }else {
+                            EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.GUIDE_SHOW_HOME));
                         }
                     }
                 })
@@ -154,17 +151,17 @@ public class NewbieGuideHelper {
                 marginInfo.rightMargin -= ScreenUtil.dip2px(mActivity, 40);
             }
         };
-        RelativeGuide relativeGuide3 = new RelativeGuide(R.layout.newbie_guide_2_3, Gravity.TOP, 0) {
+        RelativeGuide relativeGuide3 = new RelativeGuide(R.layout.newbie_guide_2_3, Gravity.BOTTOM, 0) {
             @Override
             protected void offsetMargin(MarginInfo marginInfo, ViewGroup viewGroup, View view) {
-                marginInfo.bottomMargin -= ScreenUtil.dip2px(mActivity, 8);
-                marginInfo.leftMargin += ScreenUtil.dip2px(mActivity, 50);
+                marginInfo.leftMargin -= ScreenUtil.dip2px(mActivity, 200);
+                marginInfo.topMargin += ScreenUtil.dip2px(mActivity, 4);
             }
         };
         return GuidePage.newInstance()//创建一个实例
-                .addHighLightWithOptions(ActMain.tabBtn1.get(), HighLight.Shape.CIRCLE, new HighlightOptions.Builder().setRelativeGuide(relativeGuide3).useMaxSize(false).build())
+                .addHighLightWithOptions(FgtMainHeader.menuBtn.get(), HighLight.Shape.CIRCLE, new HighlightOptions.Builder().setRelativeGuide(relativeGuide3).useMaxSize(true).build())
                 //.addHighLightWithOptions(FgtMainHeader.msgRef.get(), HighLight.Shape.CIRCLE, new HighlightOptions.Builder().setRelativeGuide(relativeGuide2).useMaxSize(true).build())
-//                .addHighLightWithOptions(FgtHome.newsRef.get(), HighLight.Shape.OVAL, new HighlightOptions.Builder().setRelativeGuide(relativeGuide1).useMaxSize(false).setOffsetLeft(0.2f).setOffsetWidth(0.6f).build())
+                //.addHighLightWithOptions(FgtHome.newsRef.get(), HighLight.Shape.OVAL, new HighlightOptions.Builder().setRelativeGuide(relativeGuide1).useMaxSize(false).setOffsetLeft(0.2f).setOffsetWidth(0.6f).build())
                 .setEnterAnimation(enterAnimation)//进入动画
                 .setExitAnimation(exitAnimation);//退出动画;
     }
@@ -212,6 +209,7 @@ public class NewbieGuideHelper {
         return GuidePage.newInstance()//创建一个实例
                 .addHighLightWithOptions(FgtPersonalCenter.myMoneyRef.get(), HighLight.Shape.RECTANGLE, new HighlightOptions.Builder().setRelativeGuide(relativeGuide).build())
                 .setLayoutRes(R.layout.newbie_guide_cancel)
+                .setLayoutRes(R.layout.newbie_guide_cancel)
                 .setOnLayoutInflatedListener(new OnBackgroundListener())
                 .setEnterAnimation(enterAnimation)//进入动画
                 .setExitAnimation(exitAnimation);//退出动画

+ 0 - 24
app/src/main/java/com/sheep/gamegroup/module/home/fragment/FgtHome.java

@@ -1,49 +1,25 @@
 package com.sheep.gamegroup.module.home.fragment;
 
-import android.content.Intent;
-import android.graphics.Color;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentTransaction;
 import android.view.View;
-import android.widget.ImageView;
 import android.widget.TextView;
-
-import com.alibaba.fastjson.JSONObject;
-import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.sheep.gamegroup.event.BigEvent;
-import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.MessageUnReadEntity;
 import com.sheep.gamegroup.model.entity.UserEntity;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
-import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.ViewUtil;
-import com.sheep.gamegroup.view.activity.ActMsg;
-import com.sheep.gamegroup.view.dialog.DialogNotificationOfArrival;
 import com.sheep.gamegroup.view.fragment.FgtFind;
 import com.sheep.gamegroup.view.fragment.FgtPersonalCenter;
 import com.sheep.gamegroup.view.fragment.FgtSmallSheep;
 import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.BaseFragment;
-import com.sheep.jiuyan.samllsheep.utils.SpUtils;
-
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
-
 import java.lang.ref.WeakReference;
-import java.util.Locale;
-
 import butterknife.BindView;
-import butterknife.ButterKnife;
 import butterknife.OnClick;
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.schedulers.Schedulers;
-import rx.functions.Action1;
 
 public class FgtHome extends BaseFragment {
 

+ 63 - 23
app/src/main/java/com/sheep/gamegroup/module/home/fragment/FgtMainHeader.java

@@ -2,9 +2,7 @@ package com.sheep.gamegroup.module.home.fragment;
 
 import android.content.Intent;
 import android.graphics.Color;
-import android.os.Build;
 import android.os.Bundle;
-import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -52,19 +50,24 @@ public class FgtMainHeader extends BaseFragment {
     TextView tv_nickname;
     @BindView(R.id.tv_user_asset)
     TextView tv_user_asset;
-    @BindView(R.id.tv_msg_count)
-    TextView tv_msg_count;
-    @BindView(R.id.tv_download_count)
-    TextView tv_download_count;
     @BindView(R.id.iv_flag_vip)
     ImageView iv_flag_vip;
     @BindView(R.id.v_red_dot)
     View v_red_dot;
     @BindView(R.id.show_hide_pwd_btn)
     ImageView show_hide_pwd_btn;
-
     @BindView(R.id.iv_menu)
     View iv_menu;
+    @BindView(R.id.v_red_dot_menu)
+    View menuRedDotView;
+    @BindView(R.id.view_anchor)
+    View anchorView;
+
+    public static WeakReference<View> downloadRef;
+    public static WeakReference<View> msgRef;
+    public static WeakReference<View> menuBtn;
+    TextView tv_msg_count;
+    TextView tv_download_count;
 
     private UserEntity user;
 
@@ -108,6 +111,7 @@ public class FgtMainHeader extends BaseFragment {
     @Override
     public void onViewCreated(View view, Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
+        initMenuPopView();
         user = DataUtil.getInstance().getUserEntity();
         if (user != null) {
             showUserProfile();
@@ -128,7 +132,11 @@ public class FgtMainHeader extends BaseFragment {
                 iv_flag_vip.setImageResource(R.mipmap.level_vip_un);
             }
         }
-        ViewUtil.setText(tv_nickname, user.getNickname());
+        String s = user.getNickname();
+        if (s == null || s.isEmpty())
+            ViewUtil.setText(tv_nickname, "昵称");
+        else
+            ViewUtil.setText(tv_nickname, s);
     }
 
 
@@ -169,20 +177,29 @@ public class FgtMainHeader extends BaseFragment {
     }
 
     public void onMsgClick() {
+        menuPopWindow.dismiss();
 //        startActivity(new Intent(getActivity(), ActMsg.class));
         Jump2View.getInstance().goWeb(getActivity(), new WebParams(Config.getUrlByPath(Config.PATH_MESSAGE_HOME)).setTitle("消息中心").hideProgress());
     }
 
     public void onDownloadClick() {
+        menuPopWindow.dismiss();
         Jump2View.getInstance().goActDownloadManager(getActivity());
     }
 
     public void onScanQR() {
+        menuPopWindow.dismiss();
         if (!CameraUtil.checkCameraPermission(getActivity())) return;
         Intent intent = new Intent(getActivity(), ScanQRCodeActivity.class);
         getActivity().startActivityForResult(intent, Constant.INTENT_CAPTURE_QRCODE);
     }
 
+    //有无未读消息
+    boolean hasUnReadMessage = false;
+
+    //有无下载消息
+    boolean hasDownloadMessage = false;
+
     /**
      * 获取是否有未读消息并更新图标
      */
@@ -198,9 +215,13 @@ public class FgtMainHeader extends BaseFragment {
                     public void onNext(BaseMessage baseMessage) {
                         MessageUnReadEntity entity = baseMessage.getData(MessageUnReadEntity.class);
                         if (entity != null && entity.getNum() > 0) {
+                            hasUnReadMessage = true;
+                            updateMenuRedDot();
                             ViewUtil.setVisibility(tv_msg_count, true);
                             ViewUtil.setText(tv_msg_count, entity.getNum());
                         } else {
+                            hasUnReadMessage = false;
+                            updateMenuRedDot();
                             ViewUtil.setVisibility(tv_msg_count, false);
                         }
                     }
@@ -214,25 +235,32 @@ public class FgtMainHeader extends BaseFragment {
 
     private PopupWindow menuPopWindow;
 
+    private void initMenuPopView() {
+        View menuContentView = LayoutInflater.from(getContext()).inflate(R.layout.pop_home_menu, null, false);
+        menuPopWindow = new PopupWindow(menuContentView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+        menuPopWindow.setFocusable(true);
+        tv_msg_count = menuContentView.findViewById(R.id.tv_msg_count);
+        tv_download_count = menuContentView.findViewById(R.id.tv_download_count);
+        msgRef = new WeakReference<>(tv_msg_count);
+        downloadRef = new WeakReference<>(tv_download_count);
+        menuBtn = new WeakReference<>(iv_menu);
+        menuContentView.findViewById(R.id.cl_message).setOnClickListener(v -> {
+            onMsgClick();
+        });
+        menuContentView.findViewById(R.id.cl_scan).setOnClickListener(v -> {
+            onScanQR();
+        });
+        menuContentView.findViewById(R.id.cl_download).setOnClickListener(v -> {
+            onDownloadClick();
+        });
+        //menuPopWindow.showAsDropDown(anchorView, 0, 5);
+    }
+
     private void showOrHideMenuPop() {
-        if (menuPopWindow == null) {
-            View menuContentView = LayoutInflater.from(getContext()).inflate(R.layout.pop_home_menu, null, false);
-            menuPopWindow = new PopupWindow(menuContentView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
-            menuPopWindow.setFocusable(true);
-            menuContentView.findViewById(R.id.tv_msg).setOnClickListener(v -> {
-                onMsgClick();
-            });
-            menuContentView.findViewById(R.id.tv_scan).setOnClickListener(v -> {
-                onScanQR();
-            });
-            menuContentView.findViewById(R.id.tv_download_center).setOnClickListener(v -> {
-                onDownloadClick();
-            });
-        }
         if (menuPopWindow.isShowing()) {
             menuPopWindow.dismiss();
         } else {
-            menuPopWindow.showAsDropDown(iv_menu, 0, 5);
+            menuPopWindow.showAsDropDown(anchorView, 0, 5);
         }
     }
 
@@ -245,13 +273,25 @@ public class FgtMainHeader extends BaseFragment {
             }
         }
         if (runningCount > 0) {
+            hasDownloadMessage = true;
+            updateMenuRedDot();
             ViewUtil.setText(tv_download_count, runningCount + "");
             ViewUtil.setVisibility(tv_download_count, true);
         } else {
+            hasDownloadMessage = false;
+            updateMenuRedDot();
             ViewUtil.setVisibility(tv_download_count, false);
         }
     }
 
+    private void updateMenuRedDot() {
+        if (hasDownloadMessage || hasUnReadMessage) {
+            ViewUtil.setVisibility(menuRedDotView, true);
+        } else {
+            ViewUtil.setVisibility(menuRedDotView, false);
+        }
+    }
+
     @Subscribe
     public void onEventMainThread(BigEvent event) {
         switch (event.getEventTypes()) {

+ 0 - 6
app/src/main/java/com/sheep/gamegroup/module/login/ChangePasswordAct.java

@@ -1,13 +1,10 @@
 package com.sheep.gamegroup.module.login;
 
-import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
-import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentTransaction;
 import android.text.TextUtils;
-
 import com.alibaba.fastjson.JSONObject;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
@@ -19,15 +16,12 @@ import com.sheep.gamegroup.module.login.fragments.Captcha4ForgetFgt;
 import com.sheep.gamegroup.module.login.fragments.NewPasswordFgt;
 import com.sheep.gamegroup.module.login.fragments.NoPhoneTipFgt;
 import com.sheep.gamegroup.module.login.fragments.OldPasswordFgt;
-import com.sheep.gamegroup.module.login.fragments.SignInFgt;
 import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
-
 import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.schedulers.Schedulers;
 

+ 7 - 1
app/src/main/java/com/sheep/gamegroup/module/login/fragments/EditUserInfoFgt.java

@@ -23,6 +23,7 @@ import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.module.login.controller.LoginController;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
+import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.upfile.UpFileListener;
 import com.sheep.gamegroup.util.upfile.UpFileUtils;
 import com.sheep.jiuyan.samllsheep.R;
@@ -57,6 +58,8 @@ public class EditUserInfoFgt extends BaseFragment {
     TextView birthdayBox;
     @BindView(R.id.gender_box)
     RadioGroup genderRadio;
+    @BindView(R.id.tv_agreement)
+    TextView tvAgreement;
 
     private String newAvatar;
 
@@ -106,6 +109,9 @@ public class EditUserInfoFgt extends BaseFragment {
         } else {
             genderRadio.check(R.id.male_radio);
         }
+        tvAgreement.setOnClickListener(v -> {
+            Jump2View.getInstance().tryShowAgreement(SheepApp.getInstance().getCurrentActivity(), G::showToast);
+        });
     }
 
     @OnClick(R.id.birthday_box)
@@ -130,7 +136,7 @@ public class EditUserInfoFgt extends BaseFragment {
         dateDialog.show();
     }
 
-    @OnClick(R.id.submit_btn)
+    @OnClick({R.id.submit_btn})
     public void doSubmit() {
         if (TextUtils.isEmpty(nickNameBox.getText().toString().trim())) {
             G.shortToast("请输入昵称");

+ 9 - 1
app/src/main/java/com/sheep/gamegroup/module/login/fragments/FindAccountFgt.java

@@ -5,11 +5,13 @@ import android.support.v4.app.Fragment;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
+import android.view.KeyEvent;
 import android.view.View;
 import android.widget.EditText;
 import android.widget.ImageView;
 
 import com.sheep.gamegroup.module.login.controller.LoginController;
+import com.sheep.gamegroup.util.KeyEventUtil;
 import com.sheep.gamegroup.util.StringUtils;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.filter.InputFilterUtil;
@@ -31,7 +33,8 @@ public class FindAccountFgt extends BaseFragment {
     EditText phoneNumberBox;
     @BindView(R.id.text_delete_btn)
     ImageView textDeleteBtn;
-
+    @BindView(R.id.iv_back)
+    ImageView ibBack;
     public FindAccountFgt() {
         // Required empty public constructor
     }
@@ -68,6 +71,11 @@ public class FindAccountFgt extends BaseFragment {
         });
     }
 
+    @OnClick(R.id.iv_back)
+    public void doBack(View v){
+        KeyEventUtil.sendKeyDownUp(KeyEvent.KEYCODE_BACK);
+    }
+
     @OnClick(R.id.send_captcha_btn)
     public void doSendCaptcha(View v) {
         String phoneNum = phoneNumberBox.getText().toString().trim();

+ 12 - 9
app/src/main/java/com/sheep/gamegroup/module/login/fragments/SignInFgt.java

@@ -23,16 +23,13 @@ import com.sheep.gamegroup.greendao.DDProviderHelper;
 import com.sheep.gamegroup.greendao.download.Account;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.LoginEntity;
+import com.sheep.gamegroup.model.entity.WebParams;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.module.login.controller.LoginController;
-import com.sheep.gamegroup.util.ChannelContent;
-import com.sheep.gamegroup.util.DataUtil;
-import com.sheep.gamegroup.util.GlideImageLoader;
-import com.sheep.gamegroup.util.PreferenceUtils;
-import com.sheep.gamegroup.util.StringUtils;
-import com.sheep.gamegroup.util.UMConfigUtils;
+import com.sheep.gamegroup.util.*;
 import com.sheep.gamegroup.util.filter.InputFilterUtil;
 import com.sheep.gamegroup.view.customview.CountDownButton;
+import com.sheep.jiuyan.samllsheep.Config;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -80,8 +77,6 @@ public class SignInFgt extends AbsLoginFgt {
     TextView verifyBox;
     @BindView(R.id.captcha_code_view)
     ImageView verifyImageView;
-    @BindView(R.id.captcha_seperator)
-    View verifySeperator;
     @BindView(R.id.cb_remember_pwd)
     CheckBox cbRememberPwd;
 
@@ -110,12 +105,14 @@ public class SignInFgt extends AbsLoginFgt {
     @Override
     public void onViewCreated() {
         if (loginType == LoginController.PLATFORM_PHONE) {
+            cbRememberPwd.setVisibility(View.GONE);
             forAccountPwdContainer.setVisibility(View.GONE);
             forPhoneContainer.setVisibility(View.VISIBLE);
             loginTypeToggle.setSelected(true);
             loginTypeToggleIcon.setImageResource(R.drawable.zhanghao);
             loginTypeToggleText.setText("账号");
         } else {
+            cbRememberPwd.setVisibility(View.VISIBLE);
             forAccountPwdContainer.setVisibility(View.VISIBLE);
             forPhoneContainer.setVisibility(View.GONE);
             loginTypeToggle.setSelected(false);
@@ -223,7 +220,6 @@ public class SignInFgt extends AbsLoginFgt {
     public void getCaptchaImage() {
         verifyBox.setVisibility(View.VISIBLE);
         verifyImageView.setVisibility(View.VISIBLE);
-        verifySeperator.setVisibility(View.VISIBLE);
         SheepApp.getInstance().getNetComponent().getApiService().getImgCaptcha()
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
@@ -342,6 +338,13 @@ public class SignInFgt extends AbsLoginFgt {
     }
 
     public void doToggleLoginType(boolean flag) {
+        if(flag){
+            //手机号
+            cbRememberPwd.setVisibility(View.GONE);
+        }else {
+            //账号
+            cbRememberPwd.setVisibility(View.VISIBLE);
+        }
         loginTypeToggle.setSelected(flag);
         loginTypeToggleText.setText(flag ? "账号" : "手机号");
         loginTypeToggleIcon.setImageResource(flag ? R.drawable.zhanghao : R.drawable.shouji);

+ 14 - 11
app/src/main/java/com/sheep/gamegroup/module/login/fragments/SignUpFgt.java

@@ -6,6 +6,7 @@ import android.support.v4.app.Fragment;
 import android.text.TextUtils;
 import android.text.method.HideReturnsTransformationMethod;
 import android.text.method.PasswordTransformationMethod;
+import android.view.KeyEvent;
 import android.view.View;
 import android.widget.CheckBox;
 import android.widget.EditText;
@@ -16,12 +17,7 @@ import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.LoginEntity;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.module.login.controller.LoginController;
-import com.sheep.gamegroup.util.ChannelContent;
-import com.sheep.gamegroup.util.DataUtil;
-import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.PreferenceUtils;
-import com.sheep.gamegroup.util.StringUtils;
-import com.sheep.gamegroup.util.UMConfigUtils;
+import com.sheep.gamegroup.util.*;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.BaseFragment;
@@ -33,6 +29,8 @@ import butterknife.OnClick;
 import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.schedulers.Schedulers;
 
+import static com.sheep.gamegroup.module.login.controller.LoginController.PLATFORM_PHONE;
+
 /**
  * A simple {@link Fragment} subclass.
  */
@@ -64,13 +62,14 @@ public class SignUpFgt extends AbsLoginFgt {
     TextView registerToggleText;
     @BindView(R.id.tv_login_title)
     TextView tvLoginTitle;
-
+    @BindView(R.id.back_login_btn)
+    TextView tvBackLogin;
 
     //用户协议
     @BindView(R.id.tel_agreement_cb)
     CheckBox tel_agreement_cb;
 
-    private int registerType = LoginController.PLATFORM_PHONE;
+    private int registerType = PLATFORM_PHONE;
 
     public SignUpFgt() {
         // Required empty public constructor
@@ -104,6 +103,10 @@ public class SignUpFgt extends AbsLoginFgt {
             tvLoginTitle.setText("手机号注册");
             registerToggleIcon.setImageResource(R.drawable.zhanghao);
         }
+        tvBackLogin.setOnClickListener(v -> {
+            KeyEventUtil.sendKeyDownUp(KeyEvent.KEYCODE_BACK);
+            //mController.whenToLogin(PLATFORM_PHONE);
+        });
     }
 
     @OnClick(R.id.show_hide_pwd_btn)
@@ -166,7 +169,7 @@ public class SignUpFgt extends AbsLoginFgt {
 
     @OnClick(R.id.login_type_toggle)
     public void doToggleLoginType(View view) {
-        registerType = registerType == LoginController.PLATFORM_ACCOUNT ? LoginController.PLATFORM_PHONE : LoginController.PLATFORM_ACCOUNT;
+        registerType = registerType == LoginController.PLATFORM_ACCOUNT ? PLATFORM_PHONE : LoginController.PLATFORM_ACCOUNT;
         onViewCreated();
     }
 
@@ -174,7 +177,7 @@ public class SignUpFgt extends AbsLoginFgt {
     public void doRegister(View v) {
         if (registerType == LoginController.PLATFORM_ACCOUNT) {
             registerAccount();
-        } else if (registerType == LoginController.PLATFORM_PHONE) {
+        } else if (registerType == PLATFORM_PHONE) {
             registerPhone();
         }
     }
@@ -214,7 +217,7 @@ public class SignUpFgt extends AbsLoginFgt {
                                 SpUtils.saveToken(SheepApp.getInstance(), loginEty.getToken());
                                 DataUtil.getInstance().initUserEntity(loginEty.getUser());
                             }
-                            mController.whenLoginSuccess(LoginController.PLATFORM_PHONE, loginEty);
+                            mController.whenLoginSuccess(PLATFORM_PHONE, loginEty);
                         }
                     }
                 });

+ 3 - 11
app/src/main/java/com/sheep/gamegroup/module/pay/activity/SheepWXPayEntryActivity.java

@@ -2,23 +2,14 @@ package com.sheep.gamegroup.module.pay.activity;
 
 import android.app.Activity;
 import android.content.Intent;
-import android.net.Uri;
 import android.os.Bundle;
-import android.text.TextUtils;
-import android.util.Log;
-
-import com.sheep.gamegroup.util.ApiJSONUtil;
-import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.LogUtil;
-import com.sheep.gamegroup.util.QQUtil;
-import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.gamegroup.util.*;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.tencent.mm.opensdk.constants.ConstantsAPI;
 import com.tencent.mm.opensdk.modelbase.BaseReq;
 import com.tencent.mm.opensdk.modelbase.BaseResp;
 import com.tencent.mm.opensdk.modelpay.PayResp;
 import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
-
 import org.greenrobot.eventbus.EventBus;
 
 /**
@@ -78,8 +69,9 @@ public abstract class SheepWXPayEntryActivity extends Activity implements IWXAPI
             }
             result = String.valueOf(resp.errCode + 9000);//"9000" 代表支付成功
         }
-
+        //ProcessEventBusUtil.postEvent(this,resp);
         EventBus.getDefault().post(resp);
+
         PayResp payResp = (PayResp) resp;
         String frompackage = QQUtil.getWxPayFrom(SheepApp.getInstance(), payResp.prepayId);
         String outorderno = QQUtil.getWxPayOrderNo(SheepApp.getInstance(), payResp.prepayId);

+ 18 - 6
app/src/main/java/com/sheep/gamegroup/module/webview/fragment/FgtWebX5.java

@@ -50,13 +50,16 @@ import com.uuzuche.lib_zxing.activity.CodeUtils;
 import com.yalantis.ucrop.util.FileUtils;
 import com.zhy.http.okhttp.OkHttpUtils;
 import com.zhy.http.okhttp.callback.StringCallback;
+
 import java.io.File;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
+
 import butterknife.BindView;
 import cn.finalteam.rxgalleryfinal.utils.CameraUtil;
 import okhttp3.Call;
+
 import static android.app.Activity.RESULT_OK;
 
 /**
@@ -196,6 +199,7 @@ public class FgtWebX5 extends BaseFgtWebX5 {
         webSetting.setAllowFileAccess(true);
         webSetting.setAppCacheEnabled(true);
         webSetting.setDatabaseEnabled(true);
+        webSetting.setCacheMode(WebSettings.LOAD_DEFAULT);
         webSetting.setPluginState(WebSettings.PluginState.ON_DEMAND);
         /*webSetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
         webSetting.setLoadWithOverviewMode(true);
@@ -211,9 +215,9 @@ public class FgtWebX5 extends BaseFgtWebX5 {
         // webSetting.setRenderPriority(WebSettings.RenderPriority.HIGH);
 //        webSetting.setCacheMode(NetUtil.CAN_CONNECT_SERVICE ? WebSettings.LOAD_DEFAULT : WebSettings.LOAD_CACHE_ELSE_NETWORK);
 
-        if (TestUtil.isDev()) {
+        /*if (TestUtil.isDev()) {
             webSetting.setCacheMode(WebSettings.LOAD_NO_CACHE);
-        }
+        }*/
 
         // this.getSettingsExtension().setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY);//extension
         // settings 的设计
@@ -232,10 +236,15 @@ public class FgtWebX5 extends BaseFgtWebX5 {
         super.onDestroy();
     }
 
+    //消消乐游戏关键字
+    private static final String KEYWORD_XXL = "block_puzzle";
+
     public void onDetach() {
         if (mWebView != null) {
             try {
-                getGameUserInfo(false);
+                if (getWebUrl() != null && getWebUrl().contains(KEYWORD_XXL)) {
+                    getGameUserInfo(false);
+                }
                 if (mWebView.getParent() != null) {
                     ((ViewGroup) mWebView.getParent()).removeView(mWebView);
                 }
@@ -408,7 +417,8 @@ public class FgtWebX5 extends BaseFgtWebX5 {
             @Override
             public WebResourceResponse shouldInterceptRequest(WebView webView, String s) {
                 if (url.contains("h5.qzone.qq.com")) {
-                    if (s.equals("https://qzonestyle.gtimg.cn/qz-proj/qz-common/img/m-error/pic-error.png")) {
+                    if (s.equals("https://qzonestyle.gtimg.cn/qz-proj/qz-common/img/m-error/pic-error.png") || s.equals("https://qzonestyle.gtimg.cn/qz-proj/qz-common/page-error.css")) {
+                        //鱼死网破
                         needWxLogin = true;
                         kfzsJs.loginThirdPartApp("wx");
                     }
@@ -488,7 +498,9 @@ public class FgtWebX5 extends BaseFgtWebX5 {
                 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
                     CookieSyncManager.getInstance().sync();
                 }
-                getGameUserInfo(true);
+                if (getWebUrl().contains(KEYWORD_XXL)) {
+                    getGameUserInfo(true);
+                }
                 loadJs();
             }
         });
@@ -667,7 +679,7 @@ public class FgtWebX5 extends BaseFgtWebX5 {
                 if (!s.equals("null")) {
                     SharedPreferencesUtil.putData(KEY_GAME_USER_INFO, s);
                 } else {
-                    if(shouldLoad){
+                    if (shouldLoad) {
                         String oldUserInfo = (String) SharedPreferencesUtil.getData(KEY_GAME_USER_INFO, "");
                         if (oldUserInfo != null && !oldUserInfo.isEmpty()) {
                             String jsUrl = "window.localStorage.setItem('userInfo','" + oldUserInfo + "')";

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

@@ -5,6 +5,7 @@ import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.Color;
+import android.graphics.Typeface;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.GradientDrawable;
 import android.net.Uri;
@@ -1256,6 +1257,7 @@ public class CommonUtil {
                                                 context,
                                                 null);
                             } else {
+
                                 EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.ONFRESH_GAMETASK_ORDER_LIST_PAGE));
                                 G.showToast("充值成功!");
                             }
@@ -2350,16 +2352,19 @@ public class CommonUtil {
                         try {
                             List<SheepAd> ads = baseMessage.getDatas(SheepAd.class);
                             if (ads != null && ads.size() > 0) {
+                                Log.d("!!!!!!","拉到广告,闪屏页不为空");
                                 if (action != null) {
                                     action.call(ads.get(0));
                                 }
                             } else {
+                                Log.d("!!!!!!","拉到广告,闪屏页为空");
                                 if (action != null) {
                                     action.call(null);
                                 }
                             }
 
                         } catch (Exception e) {
+                            Log.d("!!!!!!","拉到广告,报了个错"+e.getMessage());
                             e.printStackTrace();
                             if (action != null)
                                 action.call(null);

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

@@ -6,8 +6,6 @@ import android.content.Intent;
 import android.media.projection.MediaProjectionManager;
 import android.os.Bundle;
 import android.text.TextUtils;
-import android.util.Log;
-
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.kfzs.duanduan.utils.NumberFormatUtils;
@@ -23,7 +21,6 @@ import com.sheep.jiuyan.samllsheep.service.FloatShotScreenService;
 import com.sheep.jiuyan.samllsheep.utils.FileUtil;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
-
 import org.afinal.simplecache.ACache;
 import org.afinal.simplecache.ApiKey;
 

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

@@ -83,13 +83,11 @@ import org.afinal.simplecache.DataKey;
 import org.greenrobot.eventbus.EventBus;
 import org.xutils.ex.DbException;
 import rx.functions.Action1;
-
 import java.io.File;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
-
 import static com.sheep.gamegroup.model.entity.TaskEty.*;
 import static com.sheep.gamegroup.module.game.activity.ActGameGroupOrGameDetail.AUTO_DOWNLOAD;
 import static com.sheep.gamegroup.module.game.activity.ActGameGroupOrGameDetail.KEY_HAS_WELFARE;
@@ -186,15 +184,17 @@ public class Jump2View {
         SheepApp.getInstance().clearGameAuthData();
         Intent intent = new Intent(context, LoginAct.class);
         intent.putExtra("where_from", from);
-        if (!(context instanceof Activity)) {
-            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
+        /*if (!(context instanceof Activity)) {
+
         } else if (!TextUtils.isEmpty(from)) {
             try {
                 ((Activity) context).finish();
             } catch (Exception e) {
                 e.printStackTrace();
             }
-        }
+        }*/
         context.startActivity(intent);
     }
 
@@ -211,7 +211,6 @@ public class Jump2View {
         }
     }
 
-
     /**
      * 跳到邀请赚钱页面
      *
@@ -224,7 +223,6 @@ public class Jump2View {
         UMConfigUtils.onEvent(UMConfigUtils.Event.SHEEP_TASK_INVITE);
     }
 
-
     /**
      * 跳到首页面前检查是否展示会长推广弹出框
      *
@@ -296,12 +294,9 @@ public class Jump2View {
      */
     public void checkOrGoHomePage(final Activity activity) {
         // todo checkOrGoHome
-        CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
-            @Override
-            public void call(UserEntity userEntity) {
-                if (userEntity != null && !TextUtils.isEmpty(userEntity.getShare_link())) {
-                    GlideImageLoader.saveAndSetRqImage(null, userEntity.getShareLink(ShareLinkConfig.FACE_TO_FACE), 800);
-                }
+        CommonUtil.getInstance().updateUserInfo(userEntity -> {
+            if (userEntity != null && !TextUtils.isEmpty(userEntity.getShare_link())) {
+                GlideImageLoader.saveAndSetRqImage(null, userEntity.getShareLink(ShareLinkConfig.FACE_TO_FACE), 800);
             }
         });
         checkLabel(activity, (baseMessage) -> {
@@ -933,7 +928,6 @@ public class Jump2View {
         }
     }
 
-
     /**
      * 跳到web页面
      *
@@ -969,8 +963,8 @@ public class Jump2View {
             return;
         }
         Intent intent;
+        //intent = new Intent(context, ActWebX5.class);
         if (SheepApp.getInstance().shouldOpenWebInNewProcess) {
-            //intent = new Intent(context, ActWebX5.class);
             intent = new Intent(context, ActWebX5NewProcess.class);
         } else {
             intent = new Intent(context, ActWebX5.class);
@@ -1053,6 +1047,7 @@ public class Jump2View {
     public void goH5Game(Context context, String url) {
         Uri uri = Uri.parse(url);
         String host = uri.getHost();
+        //FgtWebX5.saveWXToken(context, host, "", "dwfewdf");
         WebParams wp = new WebParams(url, "游戏");
         wp.setNeedJsInteract(true);
 //        wp.setJsUrl(Config.SMALL_STATION_URL + Config.STATION_SMALL_SHEEP_H5GAME + "/bridge.js");
@@ -1582,7 +1577,7 @@ public class Jump2View {
         goLoginView(SheepApp.getInstance().getCurrentActivity(), "other");
     }
 
-    public void gotoGuide(final Activity activity) {
+    public void gotoGuideOrMain(final Activity activity) {
         if (SysAppUtil.isNewSmallSheep()) {
             Intent intent = new Intent(activity, ActGuide.class);
             activity.startActivity(intent);

+ 26 - 0
app/src/main/java/com/sheep/gamegroup/util/ProcessEventBroadCastReceiver.java

@@ -0,0 +1,26 @@
+package com.sheep.gamegroup.util;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+import com.sheep.jiuyan.samllsheep.utils.G;
+import org.greenrobot.eventbus.EventBus;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+public class ProcessEventBroadCastReceiver extends BroadcastReceiver {
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        String eventJson = intent.getStringExtra("eventJson");
+        //G.showToast("~~~~~收到广播,json:" + eventJson);
+        try {
+            Object event = new JSONObject(eventJson);
+            EventBus.getDefault().post(event);
+            //G.showToast("发送了事件");
+        } catch (JSONException e) {
+            e.printStackTrace();
+            G.showToast("error" + e.getMessage());
+        }
+    }
+}

+ 25 - 0
app/src/main/java/com/sheep/gamegroup/util/ProcessEventBusUtil.java

@@ -0,0 +1,25 @@
+package com.sheep.gamegroup.util;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+/**
+ * 使用广播解决EventBus不能跨进程通讯的问题
+ */
+public class ProcessEventBusUtil {
+    public static void postEvent(Context context, Object event) {
+        Log.d("!!!", "开始发送事件");
+        /*//是主进程,直接发送EventBus事件
+        EventBus.getDefault().post(event);*/
+
+        //不是在主进程,使用跨进程广播
+        Intent intent = new Intent();
+        intent.putExtra("eventJson", GsonUtils.getGlobalGson().toJson(event));
+        intent.setAction("flag");
+        intent.setComponent(new ComponentName(context.getPackageName(), ProcessEventBroadCastReceiver.class.getName()));
+        context.sendBroadcast(intent);
+
+    }
+}

+ 12 - 15
app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java

@@ -208,21 +208,18 @@ public class KFZSJs {
 
     @JavascriptInterface
     public void gotoRecharge(final boolean forResult) {
-        activity.runOnUiThread(new Runnable() {
-            @Override
-            public void run() {
-                String url = iWeb.getWebUrl();
-                int start = url.indexOf("authorization=");
-                if (start < 0) {
-                    url = iWeb.getFirstUrl();
-                    start = url.indexOf("authorization=");
-                }
-                String token = url.substring(url.indexOf("=", start) + 1, url.indexOf("&", start));
-                if (forResult) {
-                    Jump2View.getInstance().goRechargeActForResult(activity, "内部H5", token);//进入充值绵羊币界面
-                } else {
-                    Jump2View.getInstance().goRechargeAct(activity, "内部H5", token);//进入充值绵羊币界面
-                }
+        activity.runOnUiThread(() -> {
+            String url = iWeb.getWebUrl();
+            int start = url.indexOf("authorization=");
+            if (start < 0) {
+                url = iWeb.getFirstUrl();
+                start = url.indexOf("authorization=");
+            }
+            String token = url.substring(url.indexOf("=", start) + 1, url.indexOf("&", start));
+            if (forResult) {
+                Jump2View.getInstance().goRechargeActForResult(activity, "内部H5", token);//进入充值绵羊币界面
+            } else {
+                Jump2View.getInstance().goRechargeAct(activity, "内部H5", token);//进入充值绵羊币界面
             }
         });
     }

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

@@ -4,6 +4,7 @@ import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.support.v4.app.Fragment;
 
+import android.view.WindowManager;
 import com.kfzs.duanduan.utils.StatusBarUtils;
 import com.sheep.gamegroup.absBase.BaseContainerActivity;
 import com.sheep.gamegroup.util.DataUtil;

+ 117 - 17
app/src/main/java/com/sheep/gamegroup/view/activity/ActMain.java

@@ -1,10 +1,13 @@
 package com.sheep.gamegroup.view.activity;
 
 import android.content.Intent;
+import android.graphics.drawable.AnimationDrawable;
 import android.graphics.drawable.Drawable;
 import android.os.Build;
 import android.os.Bundle;
 import android.support.annotation.Nullable;
+import android.support.constraint.ConstraintLayout;
+import android.support.graphics.drawable.Animatable2Compat;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentTransaction;
 import android.text.TextUtils;
@@ -12,6 +15,13 @@ import android.view.MotionEvent;
 import android.view.View;
 import android.widget.*;
 import com.alibaba.fastjson.JSONObject;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.DataSource;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
+import com.bumptech.glide.load.engine.GlideException;
+import com.bumptech.glide.load.resource.gif.GifDrawable;
+import com.bumptech.glide.request.RequestListener;
+import com.bumptech.glide.request.target.Target;
 import com.kfzs.duanduan.cardview.ScreenUtil;
 import com.kfzs.duanduan.utils.StatusBarUtils;
 import com.kfzs.duanduan.view.DialogStorageLow;
@@ -52,11 +62,16 @@ import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.uuzuche.lib_zxing.activity.CodeUtils;
 import com.youmi.android.offer.BaseActYmPermissionCheck;
+import io.reactivex.Completable;
+import io.reactivex.functions.Action;
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
 
 import java.io.File;
 import java.lang.ref.WeakReference;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
@@ -74,7 +89,6 @@ import static com.sheep.gamegroup.module.task.fragments.FgtVideoTaskBase.KEY_REL
 import static com.sheep.gamegroup.util.Constant.REQUEST_CODE_GOT_REWARDS;
 import static com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp.PUBLIC_TAG_PREFIX_TEXTVIEW_LIST;
 
-
 /**
  * Created by realicing on 2018/9/6.
  * realicing@sina.com
@@ -90,7 +104,7 @@ public class ActMain extends BaseActYmPermissionCheck {
     @BindView(R.id.tab_container)
     LinearLayout tab_container;
     @BindView(R.id.main_layout)
-    RelativeLayout main_layout;
+    ConstraintLayout main_layout;
     @BindView(R.id.main_header)
     View main_header;
 
@@ -165,6 +179,8 @@ public class ActMain extends BaseActYmPermissionCheck {
     @Override
     public void initView() {
         EventBus.getDefault().register(this);
+        resetBottomTabImage();
+        ((ImageView) (tab_container.getChildAt(0).findViewById(R.id.tab_1_iv))).setImageResource(R.drawable.shouye_c);
         initFragments();
         if (!TestUtil.isDev())
             CommonUtil.getInstance().initMiDong(this, DataUtil.getInstance().getUserId());
@@ -173,6 +189,7 @@ public class ActMain extends BaseActYmPermissionCheck {
         tabBtn2 = new WeakReference<>(findViewById(R.id.tab_3));
         frame_container.setHookView(main_header);
 
+
 //        final LottieAnimationView animView = findViewById(R.id.test_anim_view);
 //        animView.setOnClickListener(v->{
 //            if(animView.isAnimating()){
@@ -206,6 +223,7 @@ public class ActMain extends BaseActYmPermissionCheck {
     private Fragment[] mFragments = new Fragment[3];
 
     private void initFragments() {
+
         changeVisible(-1, lastPosition);
         //小绵羊3.4.10新增 判断用户是否是游戏用户,是的话默认打开游戏界面
         UserEntity userEntity = DataUtil.getInstance().getUserEntity();
@@ -246,29 +264,109 @@ public class ActMain extends BaseActYmPermissionCheck {
 //                transaction.hide(mFragments[index]);
 //            }
             View view = tab_container.getChildAt(index);
-            if (view instanceof TextView) {
+            /*if (view instanceof TextView) {
                 ((TextView) view).setText(mainTab.getStringId());
                 Drawable[] drawables = ((TextView) view).getCompoundDrawables();
                 if (drawables[1] != null) {
                     drawables[1].setBounds(0, 0, iconSize, iconSize);
-                    ((TextView) view).setCompoundDrawables(drawables[0], drawables[1], drawables[2],
-                            drawables[3]);
+                    ((TextView) view).setCompoundDrawables(drawables[0], drawables[1], drawables[2], drawables[3]);
                 }
-            }
+            }*/
             tabs.add(view);
             final int position = index;
-            view.setOnClickListener(v -> {
-                long currentTime = System.currentTimeMillis();
-                if (currentTime - lastClickTime > MIN_CLICK_DELAY_TIME) {
-                    lastClickTime = currentTime;
-                    switchFragment(position);
-                    checkWhichPage(position);
-                }
-            });
+            if (position != 1) {
+                view.setOnClickListener(v -> {
+                    long currentTime = System.currentTimeMillis();
+                    if ((currentTime - lastClickTime > MIN_CLICK_DELAY_TIME)) {
+                        int animResource = R.drawable.gif_bottom_home;
+                        int endResource = R.drawable.shouye_c;
+                        ImageView animTarget = view.findViewById(R.id.tab_1_iv);
+                        if (position == 0) {
+                            //首页
+                            animResource = R.drawable.gif_bottom_home;
+                            animTarget = view.findViewById(R.id.tab_1_iv);
+                            endResource = R.drawable.shouye_c;
+                        } else if (position == 2) {
+                            //游戏
+                            animResource = R.drawable.gif_bottom_game;
+                            animTarget = view.findViewById(R.id.tab_3_iv);
+                            endResource = R.drawable.youxi_c;
+                        }
+                        resetBottomTabImage();
+                        loadGifOnlyOnce(animResource, animTarget, endResource);
+                        lastClickTime = currentTime;
+                        switchFragment(position);
+                        checkWhichPage(position);
+                    }
+                });
+            }
             index++;
         }
+        findViewById(R.id.tab_2).setOnClickListener(v -> {
+            long currentTime = System.currentTimeMillis();
+            if ((currentTime - lastClickTime > MIN_CLICK_DELAY_TIME)) {
+                resetBottomTabImage();
+                playWXHBAnima((ImageView) v);
+                //loadGifOnlyOnce(R.drawable.gif_bottom_wxhb, (ImageView) v);
+                lastClickTime = currentTime;
+                switchFragment(1);
+                checkWhichPage(1);
+            }
+        });
         transaction.commitAllowingStateLoss();
-        tabs.get(lastPosition).setActivated(true);
+        //tabs.get(lastPosition).setActivated(true);
+    }
+
+    AnimationDrawable animationDrawable;
+
+    //播放微信红包动画
+    private void playWXHBAnima(ImageView imageView) {
+        animationDrawable = (AnimationDrawable) imageView.getBackground();
+        animationDrawable.stop();
+        animationDrawable.start();
+    }
+
+    //播放一次gif
+    private void loadGifOnlyOnce(int gifResource, ImageView targetView, int endResource) {
+        Glide.with(ActMain.this)
+                .load(gifResource)
+                .skipMemoryCache(true)
+                .listener(new RequestListener<Drawable>() {
+                    @Override
+                    public boolean onLoadFailed(@Nullable @org.jetbrains.annotations.Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
+                        return false;
+                    }
+
+                    @Override
+                    public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
+                        if (resource instanceof GifDrawable) {
+                            //加载一次
+                            ((GifDrawable) resource).setLoopCount(1);
+                            ((GifDrawable) resource).registerAnimationCallback(new Animatable2Compat.AnimationCallback() {
+                                @Override
+                                public void onAnimationStart(Drawable drawable) {
+                                    super.onAnimationStart(drawable);
+                                }
+
+                                @Override
+                                public void onAnimationEnd(Drawable drawable) {
+                                    super.onAnimationEnd(drawable);
+                                    targetView.setImageResource(endResource);
+                                }
+                            });
+                        }
+                        return false;
+                    }
+                })
+                .into(targetView);
+    }
+
+    //重置底部tab图片
+    private void resetBottomTabImage() {
+        tab_container.getChildAt(0).setActivated(false);
+        tab_container.getChildAt(2).setActivated(false);
+        ((ImageView) (tab_container.getChildAt(0).findViewById(R.id.tab_1_iv))).setImageResource(R.drawable.shouye);
+        ((ImageView) (tab_container.getChildAt(2).findViewById(R.id.tab_3_iv))).setImageResource(R.drawable.youxi);
     }
 
     public void switchFragment(int position) {
@@ -382,7 +480,6 @@ public class ActMain extends BaseActYmPermissionCheck {
         lastBackTime = System.currentTimeMillis();
     }
 
-
     private List<View> tabs = new ArrayList<>();
 
     private Container<Action1<Integer>> container = new Container<>();
@@ -551,7 +648,9 @@ public class ActMain extends BaseActYmPermissionCheck {
         CommonUtil.getInstance().onDestroy();
         if (container != null && container.getT() != null)
             container.setT(null);
-
+        if (null != animationDrawable && animationDrawable.isRunning()) {
+            animationDrawable.stop();
+        }
     }
 
     @Subscribe
@@ -610,4 +709,5 @@ public class ActMain extends BaseActYmPermissionCheck {
         return getSupportFragmentManager().findFragmentByTag("fragment_2");
     }
 
+
 }

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

@@ -146,7 +146,7 @@ public class ActMyMoney extends BaseActivity {
 //        indicator.addTab(indicator.newTab().setCustomView(tab_icon(tabNames[0], true)));
 //        indicator.addTab(indicator.newTab().setCustomView(tab_icon(tabNames[1], true)));
 //        indicator.addTab(indicator.newTab().setCustomView(tab_icon(tabNames[2], false)));
-//        viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(indicator));
+//        viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(indicator));`
         indicator.setupWithViewPager(viewPager);
         indicator.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager) {
             @Override

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

@@ -8,6 +8,7 @@ import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.text.TextUtils;
 
+import android.util.Log;
 import com.alibaba.fastjson.JSONObject;
 import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.sheep.gamegroup.model.api.BaseMessageConverter;
@@ -259,6 +260,7 @@ public class MiddleSchemeAct extends Activity {
                 Jump2View.getInstance().goH5Game(SheepApp.getInstance(), json);
                 break;
             case "clickad":
+                Log.d("!!!!!!","点了个广告");
                 Intent intent = new Intent(SheepApp.getInstance(), ActAdJumper.class);
                 intent.putExtra("ad_id", Integer.parseInt(json));
                 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

+ 111 - 90
app/src/main/java/com/sheep/gamegroup/view/activity/SplashAct.java

@@ -91,8 +91,10 @@ public class SplashAct extends BaseActivity {
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        Log.d("!!!!!!", "初始化Splash");
         hideSystemStatusBar();
         hideSystemNavBar();
+
         try {
             if (!isTaskRoot()) {
                 LogUtil.println("SheepApp SplashAct isTaskRoot");
@@ -105,24 +107,28 @@ public class SplashAct extends BaseActivity {
             ApiJSONUtil.postUserDeviceLog();
         }
         if (requestPermissions()) {
+            Log.d("!!!!!!", "有权限,去init");
             init();
         }
     }
 
     private void init() {
         if (SysAppUtil.isNotSupport(this)) return;
+        Log.d("!!!!!!", "开始init");
         SheepApp.getInstance().getNetComponent().getApiService().checkUserFirst()
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .onErrorResumeNext(new Observable<BaseMessage>() {
                     @Override
                     protected void subscribeActual(Observer<? super BaseMessage> observer) {
+                        Log.d("!!!!!!", "访问UserFirst出错");
                         //访问出错时,认为不是新设备
                         BaseMessage defaultBaseMessage = new BaseMessage();
                         defaultBaseMessage.setData(false);
                         observer.onNext(defaultBaseMessage);
                     }
                 })
+                .doOnSubscribe(disposable -> Log.d("!!!!!!", "开始CheckUserFirst"))
                 .doOnNext(baseMessage -> {
                     //是否为新设备
                     boolean isNewSmallSheep = baseMessage.getData(Boolean.class);
@@ -132,17 +138,22 @@ public class SplashAct extends BaseActivity {
                         });//只更新,不加载
                         sendHandlerMessages(2000);
                     } else {
+                        Log.d("!!!!!!", "开始拉广告");
                         //拉一次广告,并加载
                         fetchAdvertisement(() -> {
                             if (ad != null) {
+                                Log.d("!!!!!!", "拉到广告,不为空");
                                 if (ad.getAd_type() == AD_TYPE_SHEEP) {
+                                    Log.d("!!!!!!", "进入自己的广告");
                                     //是自己的广告,展示自己的广告
                                     loadSheepAdvertising();
                                 } else {
+                                    Log.d("!!!!!!", "进入SDK的广告");
                                     //SDK的广告,展示SDK的广告,并拉取一次广告并保存
                                     initSdkAdvertising(ad.getAd_type());
                                 }
                             } else {
+                                Log.d("!!!!!!", "拉到广告,为空");
                                 sendHandlerMessages(2000);
                             }
                         });
@@ -155,113 +166,126 @@ public class SplashAct extends BaseActivity {
      * 加载SDK的广告
      */
     private void initSdkAdvertising(int adType) {
+        Log.d("!!!!!!", String.valueOf(adType));
         if (adType == AD_SPLASH_TYPE_YKY) {
+            Log.d("!!!!!!", "加载游可盈广告");
             //游可盈
             launchYKYSplash();
         } else if (adType == AD_SPLASH_TYPE_YT) {
+            Log.d("!!!!!!", "加载优投广告");
             //优投
             launchYTSplash();
+        } else if(adType == AD_SPLASH_TYPE_ZK){
+            Log.d("!!!!!!", "加载掌酷广告");
+            //掌酷
+            launchZKSplash();
         }
     }
 
 
     //展示游可盈广告
     private void launchYKYSplash() {
-        String data = "{\"placements\":[{\"pos_id\":" + ad.getThird_ad_id() + ",\"ad_count\":1}]}";
-        //"{\"placements\":[{\"pos_id\":" + posId + ",\"ad_count\":1}]}";
-        KleinManager.getInstance().prepareAD(
-                getApplicationContext(),
-                data,
-                5000,
-                true,
-                new KleinResponseCallback() {
-                    @Override
-                    public void onSuccess(int i) {
-                        if (BuildConfig.DEBUG)
-                            Log.d("!!!!!Success", String.valueOf(i));
-                    }
+            String data = "{\"placements\":[{\"pos_id\":" + ad.getThird_ad_id() + ",\"ad_count\":1}]}";
+            //"{\"placements\":[{\"pos_id\":" + posId + ",\"ad_count\":1}]}";
+            KleinManager.getInstance().prepareAD(
+                    getApplicationContext(),
+                    data,
+                    5000,
+                    true,
+                    new KleinResponseCallback() {
+                        @Override
+                        public void onSuccess(int i) {
+                            if (BuildConfig.DEBUG)
+                                Log.d("!!!!!Success", String.valueOf(i));
+                        }
 
-                    @Override
-                    public void onFail(int i) {
-                        if (BuildConfig.DEBUG)
-                            Log.d("!!!!!Fail", String.valueOf(i));
-                        //拉取广告错误或超时,直接跳过
-                        sendHandlerMessages(0);
-                    }
+                        @Override
+                        public void onFail(int i) {
+                            if (BuildConfig.DEBUG)
+                                Log.d("!!!!!Fail", String.valueOf(i));
+                            //拉取广告错误或超时,直接跳过
+                            sendHandlerMessages(0);
+                        }
 
-                    @Override
-                    public void onEvent(int i) {
-                        if (BuildConfig.DEBUG)
-                            Log.d("!!!!!Event", String.valueOf(i));
-                        switch (i) {
-                            case KLSplashAdEvent_AdShowSucc:
-                                if (!aded && ad != null) {
-                                    AdHelper.stat(ad.getAd_id(), 1, ad.getAd_type());
-                                    aded = true;
-                                }
-                                break;
-                            case KLSplashAdEvent_AdTap:
-                                AdHelper.stat(ad.getAd_id(), 2, ad.getAd_type());
-                                break;
-                            case KLSplashAdEvent_AdPlayCompletion:
-                            case KLSplashAdEvent_AdShowFinish:
-                            case KLSplashAdEvent_AdSkip:
-                                sendHandlerMessages(0);
-                                break;
+                        @Override
+                        public void onEvent(int i) {
+                            if (BuildConfig.DEBUG)
+                                Log.d("!!!!!Event", String.valueOf(i));
+                            switch (i) {
+                                case KLSplashAdEvent_AdShowSucc:
+                                    if (!aded && ad != null) {
+                                        AdHelper.stat(ad.getAd_id(), 1, ad.getAd_type());
+                                        aded = true;
+                                    }
+                                    break;
+                                case KLSplashAdEvent_AdTap:
+                                    AdHelper.stat(ad.getAd_id(), 2, ad.getAd_type());
+                                    break;
+                                case KLSplashAdEvent_AdPlayCompletion:
+                                case KLSplashAdEvent_AdShowFinish:
+                                case KLSplashAdEvent_AdSkip:
+                                    sendHandlerMessages(0);
+                                    break;
+                            }
                         }
                     }
-                }
-        );
+            );
     }
 
     //展示优投开屏广告(新增boolean state:false----定值) 重要 mForceGoMain跳转主页 请参照此方法调用,否则可能导致广告展示链路断开 导致收益下降!!!
     private void launchYTSplash() {
-        flSplashYT.setVisibility(View.VISIBLE);
-        new SplashEngine(SplashAct.this, false, new SplashEngine.SplashAdCallBack() {
-            @Override
-            public void onSplashClick() {
-                Log.i("jasmine-ad", "点击广告");
-                AdHelper.stat(ad.getAd_id(), 2, ad.getAd_type());
-                //sendHandlerMessages(0);
-            }
+            if (flSplashYT != null)
+                flSplashYT.setVisibility(View.VISIBLE);
+            new SplashEngine(SplashAct.this, false, new SplashEngine.SplashAdCallBack() {
+                @Override
+                public void onSplashClick() {
+                    Log.i("jasmine-ad", "点击广告");
+                    AdHelper.stat(ad.getAd_id(), 2, ad.getAd_type());
+                    //sendHandlerMessages(0);
+                }
 
-            @Override
-            public void onSplashDismissed() {
-                Log.i("jasmine-ad", "广告关闭");
-                next();
-            }
+                @Override
+                public void onSplashDismissed() {
+                    Log.i("jasmine-ad", "广告关闭");
+                    next();
+                }
 
-            @Override
-            public void onSplashError(String err, boolean isTimeout) {
-                Log.i("jasmine-ad", "展示广告异常:" + err);
-                next();
-            }
+                @Override
+                public void onSplashError(String err, boolean isTimeout) {
+                    Log.i("jasmine-ad", "展示广告异常:" + err);
+                    next();
+                }
 
-            @Override
-            public void onSplashShow() {
-                Log.i("jasmine-ad", "展示广告");
-                yt_splash_skip_view.setVisibility(View.VISIBLE);
-                if (!aded && ad != null) {
-                    AdHelper.stat(ad.getAd_id(), 1, ad.getAd_type());
-                    aded = true;
+                @Override
+                public void onSplashShow() {
+                    Log.i("jasmine-ad", "展示广告");
+                    yt_splash_skip_view.setVisibility(View.VISIBLE);
+                    if (!aded && ad != null) {
+                        AdHelper.stat(ad.getAd_id(), 1, ad.getAd_type());
+                        aded = true;
+                    }
+                    //mHasLoaded = true;
+                    //mHandler.removeCallbacksAndMessages(null);
                 }
-                //mHasLoaded = true;
-                mHandler.removeCallbacksAndMessages(null);
-            }
 
-            @Override
-            public void onSplashPresent() {
-                Log.i("jasmine-ad", "广告数据加载");
-                if (splash_image_view != null)
-                    splash_image_view.setVisibility(View.GONE); // 广告展示后一定要把预设的开屏图片隐藏起来
-            }
+                @Override
+                public void onSplashPresent() {
+                    Log.i("jasmine-ad", "广告数据加载");
+                    if (splash_image_view != null)
+                        splash_image_view.setVisibility(View.GONE); // 广告展示后一定要把预设的开屏图片隐藏起来
+                }
 
-            @Override
-            public void onSplashLoad() {
-                Log.i("Jasmine-ad", "拉取广告");
-            }
+                @Override
+                public void onSplashLoad() {
+                    Log.i("Jasmine-ad", "拉取广告");
+                }
 
-        }).launchSplash(flSplashYT, 5 * 1000);
+            }).launchSplash(flSplashYT, 5 * 1000);
+
+    }
+
+    //展示掌酷广告
+    private void launchZKSplash(){
 
     }
 
@@ -281,6 +305,7 @@ public class SplashAct extends BaseActivity {
     //从服务端拉取广告信息
     private void fetchAdvertisement(Action action) {
         CommonUtil.getInstance().refreshAds((ret, list) -> {
+            Log.d("!!!!!!", "拉了一次广告");
             if (ret) {
                 ad = DDProviderHelper.getInstance().getSheepAd(SheepAd.FORM_SPLASH);
                 try {
@@ -363,7 +388,7 @@ public class SplashAct extends BaseActivity {
     };
 
     private void gotoNext() {
-        SkinUtil.changeSkin(s -> Jump2View.getInstance().gotoGuide(this));
+        SkinUtil.changeSkin(s -> Jump2View.getInstance().gotoGuideOrMain(this));
     }
 
     @Override
@@ -433,11 +458,7 @@ public class SplashAct extends BaseActivity {
         if (permissions.size() > 0) {
             String[] permissionArrays = new String[permissions.size()];
             permissionArrays = permissions.toArray(permissionArrays);
-            ActivityCompat.requestPermissions(
-                    this,
-                    permissionArrays,
-                    1111
-            );
+            ActivityCompat.requestPermissions(this, permissionArrays, 1111);
         }
         return result;
     }
@@ -445,8 +466,10 @@ public class SplashAct extends BaseActivity {
     //权限获取后的回调
     @Override
     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
-        if (requestPermissions()) init();
-
+        if (requestCode == 1111 && requestPermissions()) {
+            Log.d("!!!!!!", "权限回调,requestCode" + requestCode);
+            init();
+        }
     }
 
     @Override
@@ -462,8 +485,6 @@ public class SplashAct extends BaseActivity {
             next();
         }
         mForceGoMain = true;
-
-
     }
 
     @Override

+ 1 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/helper/AdHelper.java

@@ -27,6 +27,7 @@ public class AdHelper {
     public static int AD_TYPE_SHEEP = 1; //广告类型:小绵羊平台自己的广告
     public static int AD_SPLASH_TYPE_YKY = 2; //广告类型:游可盈的广告
     public static int AD_SPLASH_TYPE_YT = 3; //广告类型:优投的广告
+    public static int AD_SPLASH_TYPE_ZK = 4; //广告类型:掌酷的广告
 
     // 返回true 为apk下载
     public static boolean goAdLink(Context context, SheepAd advertising) {

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

@@ -28,13 +28,11 @@ public class AdpGcGameAppInfoList extends BaseQuickAdapter<GameInfoList, BaseVie
 
     @Override
     public void convert(BaseViewHolder viewHolder, final GameInfoList itemList) {
-        View item_gc_game_app_list_top = viewHolder.itemView.findViewById(R.id.item_gc_game_app_list_top);
         View item_gc_game_app_list_bottom = viewHolder.itemView.findViewById(R.id.item_gc_game_app_list_bottom);
         TextView item_gc_game_app_list_tv = viewHolder.itemView.findViewById(R.id.item_gc_game_app_list_tv);
         TextView item_gc_game_app_list_more_tv = viewHolder.itemView.findViewById(R.id.item_gc_game_app_list_more_tv);
         RecyclerView recyclerView = viewHolder.itemView.findViewById(R.id.item_gc_game_app_list_rv);
 
-        ViewUtil.setVisibility(item_gc_game_app_list_top, itemList.isShowTopLine());
         ViewUtil.setVisibility(item_gc_game_app_list_bottom, itemList.isShowBottomLine());
         ViewUtil.setText(item_gc_game_app_list_tv, itemList.getName());
         itemList.setMoreViewOnClickListener(item_gc_game_app_list_more_tv);

+ 70 - 0
app/src/main/java/com/sheep/gamegroup/view/customview/BottomTabLayout.java

@@ -0,0 +1,70 @@
+package com.sheep.gamegroup.view.customview;
+
+import android.content.Context;
+import android.graphics.*;
+import android.graphics.drawable.GradientDrawable;
+import android.os.Build;
+import android.util.AttributeSet;
+import android.widget.LinearLayout;
+import androidx.annotation.Nullable;
+import com.uuzuche.lib_zxing.DisplayUtil;
+
+public class BottomTabLayout extends LinearLayout {
+
+    private static final float CENTER_RADIUS = 30;
+
+    public BottomTabLayout(Context context) {
+        super(context);
+        init();
+    }
+
+    public BottomTabLayout(Context context, @Nullable AttributeSet attrs) {
+        super(context, attrs);
+        init();
+    }
+
+    public BottomTabLayout(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        init();
+    }
+
+    private void init() {
+        GradientDrawable gradientDrawable = new GradientDrawable();
+        gradientDrawable.setColor(Color.TRANSPARENT);
+        setBackground(gradientDrawable);
+    }
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        super.onDraw(canvas);
+        Paint paint = new Paint();
+        Path path = new Path();
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+            int backgroundColor = getBackgroundTintList().getDefaultColor();
+            paint.setColor(backgroundColor);
+        }
+        float radius = DisplayUtil.dip2px(getContext(), CENTER_RADIUS);
+        path.moveTo(0, radius);
+        path.lineTo(getWidth() / 2 - radius, radius);
+
+        /*RectF rectF = new RectF(getWidth() / 2 - radius, 0, getWidth() / 2 + radius, 2 * radius);
+        path.arcTo(rectF, 180, 180, false);*/
+
+        path.cubicTo(getWidth() / 2 - radius / 2, radius / 4, getWidth() / 2 + radius / 2, radius / 4, getWidth() / 2 + radius, radius);
+
+        path.moveTo(getWidth() / 2 + radius, radius);
+        path.lineTo(getWidth(), radius);
+        path.lineTo(getWidth(), getHeight());
+        path.lineTo(0, getHeight());
+        path.lineTo(0, radius);
+        path.close();
+        //连接的外边缘以圆弧的方式相交
+        paint.setStrokeJoin(Paint.Join.ROUND);
+        //线条结束处绘制一个半圆
+        paint.setStrokeCap(Paint.Cap.ROUND);
+        paint.setStrokeWidth(DisplayUtil.dip2px(getContext(), 2));
+        paint.setShadowLayer(2, 0f, 0f, Color.LTGRAY);
+        paint.setStyle(Paint.Style.FILL_AND_STROKE);
+        canvas.drawPath(path, paint);
+    }
+}

+ 37 - 0
app/src/main/java/com/sheep/gamegroup/view/customview/RecyclerItemDecoration.java

@@ -0,0 +1,37 @@
+package com.sheep.gamegroup.view.customview;
+
+import android.graphics.Rect;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+
+public class RecyclerItemDecoration extends RecyclerView.ItemDecoration {
+
+    private int itemSpaceLeft;
+    private int itemSpaceCenter;
+    private int itemNum;
+
+    public RecyclerItemDecoration(int itemSpaceLeft, int itemSpaceCenter, int itemNum) {
+        this.itemSpaceLeft = itemSpaceLeft;
+        this.itemSpaceCenter = itemSpaceCenter;
+        this.itemNum = itemNum;
+    }
+
+    @Override
+    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
+        int position = parent.getResources().getDisplayMetrics().widthPixels;
+        //int position = parent.getChildAdapterPosition(view);
+        if (parent.getChildCount() > 0) {
+            if (position % itemNum == 0) {                  //最左边Item
+                outRect.left = itemSpaceLeft;
+                outRect.right = itemSpaceCenter / 5;
+            } else if (position % itemNum == itemNum - 1) { //最右边Item
+                outRect.left = itemSpaceCenter / 5;
+                outRect.right = itemSpaceLeft;
+            } else {                                        //中间Item
+                outRect.left = itemSpaceCenter / 5;
+                outRect.right = itemSpaceCenter / 5;
+            }
+        }
+    }
+}
+

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

@@ -1,6 +1,7 @@
 package com.sheep.gamegroup.view.customview;
 
 import android.content.Context;
+import android.support.constraint.ConstraintLayout;
 import android.support.v4.view.MotionEventCompat;
 import android.util.AttributeSet;
 import android.util.Log;
@@ -59,11 +60,11 @@ public class TouchFrameLayout extends FrameLayout {
     public void moveHook(float distance) {
         if (hookView != null) {
             if (distance > 0) {
-                ((RelativeLayout.LayoutParams) getLayoutParams()).topMargin = max;
+                ((ConstraintLayout.LayoutParams) getLayoutParams()).topMargin = max;
                 hookView.setVisibility(VISIBLE);
             } else {
                 hookView.setVisibility(GONE);
-                ((RelativeLayout.LayoutParams) getLayoutParams()).topMargin = min;
+                ((ConstraintLayout.LayoutParams) getLayoutParams()).topMargin = min;
             }
         }
     }
@@ -90,7 +91,7 @@ public class TouchFrameLayout extends FrameLayout {
                 veloctiy.computeCurrentVelocity(1000);
                 float distance = ev.getRawY() - startY;
                 if (distance > 0) {
-                    if (((RelativeLayout.LayoutParams) getLayoutParams()).topMargin == max) {
+                    if (((ConstraintLayout.LayoutParams) getLayoutParams()).topMargin == max) {
                         break;
                     } else {
 //                        if (Math.abs(startX - ev.getRawX()) < Math.abs(startY - ev.getRawY()) && Math.abs(veloctiy.getYVelocity()) > 5000) {
@@ -100,7 +101,7 @@ public class TouchFrameLayout extends FrameLayout {
                         }
                     }
                 } else {
-                    if (((RelativeLayout.LayoutParams) getLayoutParams()).topMargin == min) {
+                    if (((ConstraintLayout.LayoutParams) getLayoutParams()).topMargin == min) {
                         break;
                     } else {
                         if (Math.abs(startX - ev.getRawX()) < Math.abs(startY - ev.getRawY())) {

+ 56 - 35
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMainAudit.java

@@ -1,35 +1,27 @@
 package com.sheep.gamegroup.view.fragment;
 
 import android.app.Activity;
+import android.graphics.Typeface;
 import android.os.Bundle;
 import android.support.design.widget.TabLayout;
 import android.support.v4.view.ViewPager;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
 import android.widget.TextView;
-
 import com.sheep.gamegroup.event.BigEvent;
-import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.TaskAuditEntity;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
-import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.view.activity.ActMain;
 import com.sheep.gamegroup.view.adapter.TitleFragmentListAdapter;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.base.BaseFragment;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
-
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
-
 import butterknife.BindView;
-import rx.functions.Action1;
 
 /**
  * Created by ljy on 2018/8/20.
@@ -48,7 +40,7 @@ public class FgtMainAudit extends BaseFragment {
     ViewPager pager;
     private Activity activity;
 
-//    public static final String[] tabNames = {"审核中", "任务成功", "任务失败"};
+    //    public static final String[] tabNames = {"审核中", "任务成功", "任务失败"};
     private TitleFragmentListAdapter mAdapter;
 
     public static FgtMainAudit newInstance(int index) {
@@ -60,14 +52,17 @@ public class FgtMainAudit extends BaseFragment {
     }
 
     public FgtMainAudit() {
+
     }
+
     private Integer curPosition = 0;
+
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
         Bundle bundle = getArguments();
         if (bundle != null) {
             Integer position = DataUtil.getObject(bundle, Integer.class);
-            if(position != null){
+            if (position != null) {
                 curPosition = position;
             }
         }
@@ -87,7 +82,7 @@ public class FgtMainAudit extends BaseFragment {
         } catch (Exception e) {
             e.printStackTrace();
         }
-        if(activity instanceof ActMain){
+        if (activity instanceof ActMain) {
             TitleBarUtils.getInstance()
                     .setTitle(getActivity(), "审核中心")
                     .setTitleListen(getActivity(), 0, null);
@@ -102,33 +97,57 @@ public class FgtMainAudit extends BaseFragment {
 
     public void initData() {
 
-        CommonUtil.getInstance().staticAudit(new Action1<BaseMessage>() {
-            @Override
-            public void call(BaseMessage o) {
-                try {
-                    TaskAuditEntity taskAuditEntity = o.getData(TaskAuditEntity.class);
-                    if (taskAuditEntity != null) {
-                        String audit_total_audit = String.format(activity.getResources().getString(R.string.audit_total_audit), taskAuditEntity.getAudit_count());
-                        String audit_total_complete = String.format(activity.getResources().getString(R.string.audit_total_complete), taskAuditEntity.getFinish_count());
-                        String audit_total_money = String.format(activity.getResources().getString(R.string.audit_total_money), taskAuditEntity.getFinish_cash());
-                        String audit_total_welfare = String.format(activity.getResources().getString(R.string.audit_total_welfare), taskAuditEntity.getWelfare_award());
-
-                        if (numberTv == null)
-                            return;
-                        numberTv.setText(audit_total_audit + "");
-                        auditTotalCompleteTv.setText(audit_total_complete + "");
-                        auditTotalMoneyTv.setText(audit_total_money + "");
-                    }
-                } catch (Exception e) {
-                    e.printStackTrace();
+        CommonUtil.getInstance().staticAudit(o -> {
+            try {
+                TaskAuditEntity taskAuditEntity = o.getData(TaskAuditEntity.class);
+                if (taskAuditEntity != null) {
+                    String audit_total_audit = taskAuditEntity.getAudit_count();
+                    String audit_total_complete = String.format(activity.getResources().getString(R.string.audit_total_complete), taskAuditEntity.getFinish_count());
+                    String audit_total_money = String.format(activity.getResources().getString(R.string.audit_total_money), taskAuditEntity.getFinish_cash());
+                    String audit_total_welfare = String.format(activity.getResources().getString(R.string.audit_total_welfare), taskAuditEntity.getWelfare_award());
+
+                    if (numberTv == null)
+                        return;
+                    numberTv.setText(audit_total_audit + "");
+                    auditTotalCompleteTv.setText(audit_total_complete + "");
+                    auditTotalMoneyTv.setText(audit_total_money + "");
                 }
+            } catch (Exception e) {
+                e.printStackTrace();
             }
         });
     }
 
     private void new_tab() {
         pager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(indicator));
-        indicator.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(pager));
+        //indicator.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(pager));
+        indicator.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
+            @Override
+            public void onTabSelected(TabLayout.Tab tab) {
+                View view = tab.getCustomView();
+                if (null == view) {
+                    tab.setCustomView(R.layout.custom_tab_layout_text);
+                }
+                TextView textView = tab.getCustomView().findViewById(android.R.id.text1);
+                textView.setTextColor(indicator.getTabTextColors());
+                textView.setTypeface(Typeface.DEFAULT_BOLD);
+            }
+
+            @Override
+            public void onTabUnselected(TabLayout.Tab tab) {
+                View view = tab.getCustomView();
+                if (null == view) {
+                    tab.setCustomView(R.layout.custom_tab_layout_text);
+                }
+                TextView textView = tab.getCustomView().findViewById(android.R.id.text1);
+                textView.setTypeface(Typeface.DEFAULT);
+            }
+
+            @Override
+            public void onTabReselected(TabLayout.Tab tab) {
+
+            }
+        });
         pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
             @Override
             public void onPageScrolled(int i, float v, int i1) {
@@ -138,7 +157,6 @@ public class FgtMainAudit extends BaseFragment {
             @Override
             public void onPageSelected(int i) {
                 curPosition = i;
-
             }
 
             @Override
@@ -151,16 +169,18 @@ public class FgtMainAudit extends BaseFragment {
         CommonUtil.getInstance().reflex(indicator, activity);
         pager.setCurrentItem(curPosition);
     }
+
     public static final int POSITION_ACTIVITY = 0;
     public static final int POSITION_SUCCESS = 1;
     public static final int POSITION_FAILED = 2;
+
     protected void initView() {
         mAdapter = new TitleFragmentListAdapter(getChildFragmentManager());
         mAdapter.add(FgtAudit.newInstance(POSITION_ACTIVITY + 1), getString(R.string.auditing));
         mAdapter.add(FgtAudit.newInstance(POSITION_SUCCESS + 1), getString(R.string.task_success));
         mAdapter.add(FgtAudit.newInstance(POSITION_FAILED + 1), getString(R.string.task_failed));
         FgtAudit fgtAudit = (FgtAudit) mAdapter.getItem(curPosition);
-        if(fgtAudit != null){
+        if (fgtAudit != null) {
             fgtAudit.setFirstPage(true);
         }
 
@@ -180,9 +200,10 @@ public class FgtMainAudit extends BaseFragment {
     }
 
     public void setCurrentItem(int item, boolean smoothScroll) {
-        if(pager != null)
+        if (pager != null)
             pager.setCurrentItem(item, smoothScroll);
     }
+
     @Subscribe
     public void onEventMainThread(BigEvent event) {
         switch (event.getEventTypes()) {

+ 111 - 81
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPersonalCenter.java

@@ -2,9 +2,9 @@ package com.sheep.gamegroup.view.fragment;
 
 import android.app.ActionBar;
 import android.app.Activity;
-import android.content.Intent;
 import android.graphics.Color;
 import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.GradientDrawable;
 import android.os.Handler;
 import android.os.Message;
 import android.support.v7.widget.LinearLayoutManager;
@@ -26,7 +26,6 @@ import com.sheep.gamegroup.module.home.adapter.AdpHomeList;
 import com.sheep.gamegroup.util.*;
 import com.sheep.gamegroup.util.share.ShareLinkConfig;
 import com.sheep.gamegroup.view.activity.PersonalCenterAct;
-import com.sheep.gamegroup.view.activity.ReNameActivity;
 import com.sheep.jiuyan.samllsheep.Config;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -34,6 +33,7 @@ import com.sheep.jiuyan.samllsheep.base.BaseFragment;
 import com.sheep.jiuyan.samllsheep.bean.UserCenterModule;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
+import com.uuzuche.lib_zxing.DisplayUtil;
 import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.schedulers.Schedulers;
 import org.afinal.simplecache.ACache;
@@ -77,14 +77,12 @@ public class FgtPersonalCenter extends BaseFragment {
     View pc_mm_red_dot_v;
     @BindView(R.id.personalcenter_item_price_tv)
     TextView personalcenter_item_price_tv;
-    @BindView(R.id.proxy_service_layout)
-    View proxy_service_layout;
-    @BindView(R.id.proxy_service_layout_line)
-    View proxy_service_layout_line;
-    @BindView(R.id.version_item_tv)
+    @BindView(R.id.indicator)
+    SeekBar seekBar_indicator;
+    /*@BindView(R.id.version_item_tv)
     TextView version_item_tv;
     @BindView(R.id.personal_center_version_new)
-    View personal_center_version_new;
+    View personal_center_version_new;*/
     @BindView(R.id.iv_redpackage)
     ImageView ivRedpackage;
     @BindView(R.id.ibtn_baseactivity_right)
@@ -107,14 +105,6 @@ public class FgtPersonalCenter extends BaseFragment {
     LinearLayout moduleLayout;
     @BindView(R.id.my_module_list)
     RecyclerView moduleList;
-    @BindView(R.id.fgt_person_center_my_focus_line)
-    View fgt_person_center_my_focus_line;
-    @BindView(R.id.fgt_person_center_my_focus)
-    View fgt_person_center_my_focus;
-    @BindView(R.id.fgt_pc_item_vip_v)
-    View fgt_pc_item_vip_v;
-    @BindView(R.id.fgt_pc_item_vip_ll)
-    View fgt_pc_item_vip_ll;
     @BindView(R.id.vip_flag_view)
     ImageView vipFlagView;
     @BindView(R.id.tip_vip)
@@ -123,24 +113,12 @@ public class FgtPersonalCenter extends BaseFragment {
     TextView beVipBtn;
     @BindView(R.id.voucher_red_dot)
     View voucher_red_dot;
-    @BindView(R.id.fgt_pc_item_my_pet_v)
-    View fgt_pc_item_my_pet_v;
-    @BindView(R.id.fgt_pc_item_my_game_v)
-    View fgt_pc_item_my_game_v;
-    @BindView(R.id.my_pet_layout)
-    View my_pet_layout;
     @BindView(R.id.my_game_layout)
     View my_game_layout;
-    @BindView(R.id.fgt_pc_item_my_card_v)
-    View fgt_pc_item_my_card_v;
     @BindView(R.id.my_card_layout)
     View my_card_layout;
     @BindView(R.id.login_name_tv)
     TextView loginNameTv;
-    @BindView(R.id.shop_assist_layout)
-    View shop_assist_layout;
-    @BindView(R.id.fgt_pc_item_shop_assist_v)
-    View fgt_pc_item_shop_assist_v;
 
     public UserEntity userEntity;
     private String faqUrl;
@@ -212,38 +190,37 @@ public class FgtPersonalCenter extends BaseFragment {
         ViewUtil.setVisibilityBlock(audit_success_oval, false);
         ViewUtil.setText(audit_failed, getString(R.string.audit_failed, ViewUtil.INDENT));
         ViewUtil.setVisibilityBlock(audit_failed_oval, false);
-        initUserModuleItemView();
         //是否显示我的关注
-        ViewUtil.setVisibility(fgt_person_center_my_focus_line, !TestUtil.isLTVersion3_4_5());
-        ViewUtil.setVisibility(fgt_person_center_my_focus, !TestUtil.isLTVersion3_4_5());
+        //ViewUtil.setVisibility(fgt_person_center_my_focus_line, !TestUtil.isLTVersion3_4_5());
+        //ViewUtil.setVisibility(fgt_person_center_my_focus, !TestUtil.isLTVersion3_4_5());
     }
 
     private void initData() {
         //代理
-//        CommonUtil.getInstance().getAgencyState(activity, new Action1<BaseMessage>() {
-//            @Override
-//            public void call(BaseMessage baseMessage) {
-//                try {
-//                    if (baseMessage != null) {
-//                        AgentEntity agentEntity = baseMessage.getData(AgentEntity.class);
-//                        if (agentEntity != null && agentEntity.getIs_banned() == 0) {
-//                            //设置是否显示代理服务
-//                            proxy_service_layout_line.setVisibility(View.VISIBLE);
-//                            proxy_service_layout.setVisibility(View.VISIBLE);
-//                        }
+// CommonUtil.getInstance().getAgencyState(activity, new Action1<BaseMessage>() {
+//     @Override
+//     public void call(BaseMessage baseMessage) {
+//         try {
+//             if (baseMessage != null) {
+//                 AgentEntity agentEntity = baseMessage.getData(AgentEntity.class);
+//                 if (agentEntity != null && agentEntity.getIs_banned() == 0) {
+//                     //设置是否显示代理服务
+//                     proxy_service_layout_line.setVisibility(View.VISIBLE);
+//                     proxy_service_layout.setVisibility(View.VISIBLE);
+//                 }
 //
-//                    }
-//                } catch (Exception e) {
-//                    e.printStackTrace();
-//                }
-//            }
-//        });
+//             }
+//         } catch (Exception e) {
+//             e.printStackTrace();
+//         }
+//     }
+// });
         initUserInfo();
         String newVersionUrl = ACache.get(SheepApp.getInstance()).getAsString("version_url");
-        personal_center_version_new.setVisibility(TextUtils.isEmpty(newVersionUrl) ? View.GONE : View.VISIBLE);
+        //personal_center_version_new.setVisibility(TextUtils.isEmpty(newVersionUrl) ? View.GONE : View.VISIBLE);
         String appVersionName = ApkUtils.getCurrentPkgVersionName(SheepApp.getInstance());
-        version_item_tv.setText("小绵羊V");
-        version_item_tv.append(appVersionName);
+        /*version_item_tv.setText("小绵羊V");
+        version_item_tv.append(appVersionName);*/
         //获取未查看的任务成功或失败的记录
         SheepApp.getInstance().getNetComponent().getApiService().getUserTaskExistsNew()
                 .subscribeOn(Schedulers.io())
@@ -271,7 +248,59 @@ public class FgtPersonalCenter extends BaseFragment {
         initUserModuleItem();
         initMyPetState();
         ViewUtil.setVisibility(my_card_layout, true);
-        ViewUtil.setVisibility(fgt_pc_item_my_card_v, true);
+        //ViewUtil.setVisibility(fgt_pc_item_my_card_v, true);
+    }
+
+    private void initSeekBar() {
+        seekBar_indicator.setThumbOffset(0);
+        seekBar_indicator.setProgress(0);
+        //GradientDrawable gradientDrawable =(GradientDrawable) seekBar.getThumb();
+        //gradientDrawable.setSize(1440/(strings.size()/2),5);
+        //final GradientDrawable mGroupDrawable = (GradientDrawable) seekBar.getThumb();
+        //mGroupDrawable.setSize(1000,5);
+        //显示区域的高度。
+        int extent = moduleList.computeHorizontalScrollExtent();
+        //整体的高度,注意是整体,包括在显示区域之外的。
+        int range = moduleList.computeHorizontalScrollRange();
+        //已经向下滚动的距离,为0时表示已处于顶部。
+        int offset = moduleList.computeHorizontalScrollOffset();
+        //int screenWidth = this.getWindowManager().getDefaultDisplay().getWidth();
+        //int tt =screenWidth/2;
+        //seekBar.setMax(tt+100);
+        moduleList.addOnScrollListener(new RecyclerView.OnScrollListener() {
+            @Override
+            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
+                super.onScrolled(recyclerView, dx, dy);
+                //显示区域的高度。
+                int extent = moduleList.computeHorizontalScrollExtent();
+                //整体的高度,注意是整体,包括在显示区域之外的。
+                int range = moduleList.computeHorizontalScrollRange();
+                //已经向下滚动的距离,为0时表示已处于顶部。
+                int offset = moduleList.computeHorizontalScrollOffset();
+                //Log.i("dx------",range+"****"+extent+"****"+offset);
+                //此处获取seekbar的getThumb,就是可以滑动的小的滚动游标
+                GradientDrawable gradientDrawable =(GradientDrawable) seekBar_indicator.getThumb();
+                //根据列表的个数,动态设置游标的大小,设置游标的时候,progress进度的颜色设置为和seekbar的颜色设置的一样的,所以就不显示进度了。
+                //gradientDrawable.setSize(extent/(userCenterModuleList.size()/2),5);
+                //设置可滚动区域
+                seekBar_indicator.setMax(range-extent);
+                if (dx==0){
+                    seekBar_indicator.setProgress(0);
+                }else if (dx>0){
+//                    int ss = (int)(tt/2.3f);
+                    //Log.i("dx------","右滑");
+                    seekBar_indicator.setProgress(offset);
+                }else if (dx<0){
+                    //Log.i("dx------","左滑");
+                    seekBar_indicator.setProgress(offset);
+                }
+            }
+            @Override
+            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
+                super.onScrollStateChanged(recyclerView, newState);
+            }
+
+        });
     }
 
     private void initMyPetState() {
@@ -283,14 +312,14 @@ public class FgtPersonalCenter extends BaseFragment {
                     public void onNext(BaseMessage baseMessage) {
                         Mission result = baseMessage.getData(Mission.class);
                         boolean hasPet = result != null && result.getId() > 0;
-                        ViewUtil.setVisibility(my_pet_layout, hasPet);
-                        ViewUtil.setVisibility(fgt_pc_item_my_pet_v, hasPet);
+                        //ViewUtil.setVisibility(my_pet_layout, hasPet);
+                        //ViewUtil.setVisibility(fgt_pc_item_my_pet_v, hasPet);
                     }
 
                     @Override
                     public void onError(BaseMessage baseMessage) {
-                        ViewUtil.setVisibility(my_pet_layout, false);
-                        ViewUtil.setVisibility(fgt_pc_item_my_pet_v, false);
+                        //ViewUtil.setVisibility(my_pet_layout, false);
+                        //ViewUtil.setVisibility(fgt_pc_item_my_pet_v, false);
                     }
                 });
     }
@@ -300,12 +329,13 @@ public class FgtPersonalCenter extends BaseFragment {
     private List<UserCenterModule> userCenterModuleList = ListUtil.emptyList();
 
     //初始化用户中心模块界面
-    private void initUserModuleItemView() {
+    private void initUserModuleItemView(int itemCount) {
         LinearLayoutManager manager = new LinearLayoutManager(SheepApp.getInstance(), LinearLayoutManager.HORIZONTAL, false);
         moduleList.setHasFixedSize(true);
         moduleList.setNestedScrollingEnabled(false);
         moduleList.setLayoutManager(manager);
-        int w = (int) ((ScreenUtil.getScreenWidth(getActivity()) - ScreenUtil.dip2px(getContext(), 10)) / 4.5);
+        if (itemCount > 4) itemCount = 4;
+        int w = ((ScreenUtil.getScreenWidth(getActivity()) - DisplayUtil.dip2px(getContext(),32))/ itemCount);
         AdpHomeList<UserCenterModule> adapter = new AdpHomeList<>(R.layout.item_my_list_but3, w, userCenterModuleList);
         adapter.bindToRecyclerView(moduleList);
         adapter.setOnItemClickListener((adapter1, view, position) -> CommonUtil.getInstance().goNative(SheepApp.getInstance().getCurrentActivity(), ListUtil.getItem(userCenterModuleList, position), "个人中心"));
@@ -322,6 +352,8 @@ public class FgtPersonalCenter extends BaseFragment {
         if (!ListUtil.isEmpty(newList)) {
             userCenterModuleList.clear();
             userCenterModuleList.addAll(newList);
+            initSeekBar();
+            initUserModuleItemView(userCenterModuleList.size());
             ViewUtil.notifyDataSetChanged(moduleList);
             ViewUtil.setVisibility(moduleLayout, true);
         } else {
@@ -359,7 +391,7 @@ public class FgtPersonalCenter extends BaseFragment {
                 if (userEntity != null) {
                     FgtPersonalCenter.this.userEntity = userEntity;
                     //3.4.5个人中心隐藏邀请码相关功能
-//                    ivRedpackage.setVisibility(userEntity.isKfzsPackageUser() ? View.GONE : View.VISIBLE);
+//             ivRedpackage.setVisibility(userEntity.isKfzsPackageUser() ? View.GONE : View.VISIBLE);
                     initWidget();
                 }
             }
@@ -367,8 +399,8 @@ public class FgtPersonalCenter extends BaseFragment {
     }
 
     private void initWidget() {
-        ViewUtil.setVisibility(shop_assist_layout, userEntity.isShopAssist());
-        ViewUtil.setVisibility(fgt_pc_item_shop_assist_v, userEntity.isShopAssist());
+        //ViewUtil.setVisibility(shop_assist_layout, userEntity.isShopAssist());
+        //ViewUtil.setVisibility(fgt_pc_item_shop_assist_v, userEntity.isShopAssist());
         ViewUtil.setText(personalcenter_item_price_tv, String.format(Locale.CHINA, "%s\u0020元", NumberFormatUtils.retainMost2W(userEntity.getBalance())));
         ViewUtil.setText(nameTv, userEntity.getNickname());
         ViewUtil.setText(sheepNumTv, String.format(Locale.CHINA, "绵羊号:%s", userEntity.getInvitation_code()));
@@ -400,7 +432,7 @@ public class FgtPersonalCenter extends BaseFragment {
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
                     @Override
                     public void onError(BaseMessage baseMessage) {
-//                        LogUtil.logI("0------" + new Gson().toJson(baseMessage));
+//                 LogUtil.logI("0------" + new Gson().toJson(baseMessage));
                         G.showToast(baseMessage.getMsg());
                     }
 
@@ -495,22 +527,20 @@ public class FgtPersonalCenter extends BaseFragment {
 
     @OnClick({R.id.icon_img_iv, R.id.account_detail_layout, R.id.personalcenter_item_price_ic,
             R.id.personalcenter_item_price_tag, R.id.personalcenter_item_price_tv,
-            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.fgt_pc_item_gift_ll,
-            R.id.version_layout, R.id.order_layout, R.id.proxy_game_account_layout,
-            R.id.audit_activity_cl, R.id.audit_success_cl, R.id.audit_failed_cl, R.id.fgt_person_center_cart,
-            R.id.iv_redpackage, R.id.fgt_person_center_my_focus, R.id.fgt_pc_item_vip_ll,
-            R.id.voucher_layout, R.id.my_pet_layout, R.id.my_card_layout, R.id.vip_layout,
-            R.id.login_name_tv, R.id.edit_nickname_view, R.id.my_game_layout, R.id.shop_assist_layout
+            R.id.feedbook_layout, R.id.recommend_friend_layout, R.id.faq_layout, R.id.fgt_pc_item_gift_ll,
+            R.id.version_layout, R.id.order_layout, R.id.audit_activity_cl, R.id.audit_success_cl,
+            R.id.audit_failed_cl, R.id.fgt_person_center_cart, R.id.iv_redpackage, R.id.voucher_layout,
+            R.id.my_card_layout, R.id.vip_layout, R.id.login_name_tv,
+            R.id.my_game_layout, R.id.fgt_person_center_my_focus
     })
     public void onViewClicked(View view) {
         switch (view.getId()) {
-            case R.id.edit_nickname_view://审核中心
+            /*case R.id.edit_nickname_view://个人信息
                 Intent i = new Intent(getActivity(), ReNameActivity.class);
                 i.putExtra("name", userEntity.getNickname());
                 startActivity(i);
                 USER_INFO_NAME.onEvent();
-                break;
+                break;*/
             case R.id.audit_activity_cl://审核中心
                 Jump2View.getInstance().goAuditTastList(activity, FgtMainAudit.POSITION_ACTIVITY);
                 break;
@@ -532,16 +562,16 @@ public class FgtPersonalCenter extends BaseFragment {
             case R.id.account_detail_layout://个人资料
                 Jump2View.getInstance().goPersionInfo(activity, null);
                 break;
-            case R.id.my_pet_layout://我的宠物
-//                Jump2View.getInstance().goWeb(activity, Config.getUrlByPath(Config.PATH_MY_PET), "我的宠物");
-                break;
+            /*case R.id.my_pet_layout://我的宠物
+//         Jump2View.getInstance().goWeb(activity, Config.getUrlByPath(Config.PATH_MY_PET), "我的宠物");
+                break;*/
             case R.id.my_game_layout://我的游戏
                 Jump2View.getInstance().goWeb(activity, Config.getUrlByPath(Config.PATH_GAME_SHOP_MY_GAME), "我的游戏");
                 break;
             case R.id.my_card_layout://我的卡包
                 Jump2View.getInstance().goWeb(activity, Config.getUrlByPath(Config.PATH_MY_CARD), "我的卡包");
                 break;
-            case R.id.fgt_pc_item_vip_ll://VIP
+            //case R.id.fgt_pc_item_vip_ll://VIP
             case R.id.vip_layout://VIP
                 Jump2View.getInstance().gotoVip(activity);
                 break;
@@ -550,7 +580,7 @@ public class FgtPersonalCenter extends BaseFragment {
             case R.id.personalcenter_item_price_tv://我的资产
                 Jump2View.getInstance().goMyMoney(activity, null);
                 break;
-            case R.id.account_task_layout://任务记录
+/*            case R.id.account_task_layout://任务记录
                 Jump2View.getInstance().goAuditTastList(activity, null);
                 break;
             case R.id.proxy_service_layout://代理
@@ -562,7 +592,7 @@ public class FgtPersonalCenter extends BaseFragment {
                         G.showToast(R.string.loading_data);
                 });
                 USER_AGENT.onEvent();
-                break;
+                break;*/
             case R.id.faq_layout://FAQ帮助
                 CommonUtil.getInstance().getConfigValue("faqurl", (url) -> {
                     faqUrl = url;
@@ -589,9 +619,9 @@ public class FgtPersonalCenter extends BaseFragment {
             case R.id.order_layout://订单管理
                 Jump2View.getInstance().goGameTaskOrderList(activity);
                 break;
-            case R.id.proxy_game_account_layout://游戏账号
+            /*case R.id.proxy_game_account_layout://游戏账号
                 Jump2View.getInstance().goGameAccount(activity, null);
-                break;
+                break;*/
             case R.id.fgt_person_center_my_focus://我的关注
                 Jump2View.getInstance().goActMyFocus();
                 break;
@@ -610,9 +640,9 @@ public class FgtPersonalCenter extends BaseFragment {
                     G.shortToast("设置登录密码后不可修改登录名");
                 }
                 break;
-            case R.id.shop_assist_layout:
+            /*case R.id.shop_assist_layout:
                 Jump2View.getInstance().gotoYYShopAssist(getContext());
-                break;
+                break;*/
             case R.id.fgt_pc_item_gift_ll:
                 Jump2View.getInstance().goMyWelfare(getActivity(), true);
                 break;

+ 28 - 20
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -7,7 +7,6 @@ import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.StrictMode;
-import android.support.annotation.RequiresApi;
 import android.support.multidex.MultiDex;
 import android.support.multidex.MultiDexApplication;
 import android.text.TextUtils;
@@ -58,7 +57,9 @@ import com.tencent.smtt.sdk.WebView;
 import com.umeng.commonsdk.UMConfigure;
 import com.umeng.socialize.PlatformConfig;
 import com.youmi.android.offer.YmConfig;
+import io.reactivex.Observable;
 import io.reactivex.ObservableSource;
+import io.reactivex.Observer;
 import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.functions.Function;
 import io.reactivex.schedulers.Schedulers;
@@ -73,8 +74,6 @@ import ren.yale.android.cachewebviewlib.WebViewCacheInterceptorInst;
 import ren.yale.android.cachewebviewlib.config.CacheExtensionConfig;
 import tv.danmaku.ijk.media.exo2.Exo2PlayerManager;
 
-import static com.sheep.gamegroup.util.AppUtil.getCurProcessName;
-
 /**
  * Created by kemllor on 2017/12/21.
  */
@@ -190,10 +189,10 @@ public class SheepApp extends MultiDexApplication {
     public void onCreate() {
 //        configStrictMode();
         super.onCreate();
+        Log.d("!!!!!!", "初始化APP");
         SharedPreferencesUtil.getInstance(this, "cache");
         mSheepApp = this;
         connectAddress = ConnectAddress.sheep.getDefaultConnectAddress();
-
         boolean isNotSupport = Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR1;
         ContextHolder.setContext(this);
 
@@ -216,11 +215,11 @@ public class SheepApp extends MultiDexApplication {
         /*Rx兜底策略*/
         RxJavaPlugins.setErrorHandler(throwable -> Log.e("RxThrowable", throwable.getMessage()));
 
-
         if (AppUtil.isMainProcess(this)) {
             /*三方广告SDK接入,点客、游可盈、优投等*/
             initThirdAd();
         }
+
     }
 
     /**
@@ -261,7 +260,8 @@ public class SheepApp extends MultiDexApplication {
                 .subscribe(new SheepSubscriber<BaseMessage>(this) {
                     @Override
                     public void onError(BaseMessage baseMessage) {
-                        G.showToast(baseMessage.getMsg() + "");
+                        if (BuildConfig.DEBUG)
+                            G.showToast("获取三方广告配置失败" + baseMessage.getMsg());
                     }
 
                     @Override
@@ -290,7 +290,7 @@ public class SheepApp extends MultiDexApplication {
 
     }
 
-    //加载游可盈广告
+    //初始化游可盈广告
     private void initYKYAd(String appId) {
         //游可盈广告初始化
         KleinManager.getInstance().initKleinAdSDK(
@@ -322,7 +322,7 @@ public class SheepApp extends MultiDexApplication {
 
     }
 
-    //加载优投广告
+    //初始化优投广告
     private void initYTAd(String appId, String adId) {
         JasmineEngine.getInstance(this).init(
                 appId,
@@ -331,7 +331,6 @@ public class SheepApp extends MultiDexApplication {
                     @Override
                     public void initSuccess() {
                         LogUtils2.info("initSuccess");
-
                     }
 
                     @Override
@@ -341,6 +340,11 @@ public class SheepApp extends MultiDexApplication {
                 });
     }
 
+    //初始化掌酷广告
+    private void initZKAd() {
+
+    }
+
     /**
      * https://bugly.qq.com/v2/crash-reporting/crashes/0dd998212c/21541?pid=1
      * #21541 android.os.FileUriExposedException
@@ -646,18 +650,22 @@ public class SheepApp extends MultiDexApplication {
 
         @Override
         public void onActivityStarted(Activity activity) {
-            mActivityCount++;
-            if (!UMConfigUtils.isNotNeedAct(activity))
-                UMConfigUtils.onPageStart(activity);
-            if (mActivityCount > 0) {
-                if (!notStop) {
-                    notStop = true;
-                    LogUtil.println("SheepApp onActivityStarted", activity.getClass().getSimpleName(), mActivityCount);
-                    if (!UMConfigUtils.isNotNeedAct(activity))
-                        UMConfigUtils.Event.SHEEP_STARTED.onEvent();
-                    Jump2View.getInstance().startListenerShotService(activity);
-                    Jump2View.getInstance().startShotScreenFloat(activity, false);
+            try {
+                mActivityCount++;
+                if (!UMConfigUtils.isNotNeedAct(activity))
+                    UMConfigUtils.onPageStart(activity);
+                if (mActivityCount > 0) {
+                    if (!notStop) {
+                        notStop = true;
+                        LogUtil.println("SheepApp onActivityStarted", activity.getClass().getSimpleName(), mActivityCount);
+                        if (!UMConfigUtils.isNotNeedAct(activity))
+                            UMConfigUtils.Event.SHEEP_STARTED.onEvent();
+                        Jump2View.getInstance().startListenerShotService(activity);
+                        Jump2View.getInstance().startShotScreenFloat(activity, false);
+                    }
                 }
+            } catch (Exception e) {
+                e.printStackTrace();
             }
         }
 

+ 0 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/base/BaseFragment.java

@@ -65,7 +65,6 @@ public abstract class BaseFragment extends RxFragment {
 
     }
 
-
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

+ 1 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/service/DownloadService.java

@@ -213,7 +213,7 @@ public class DownloadService extends Service {
                                     EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.DOWNLOAD_COMPLETE).setData(downLoadInfo));
                                 }
                                 ApkUtils.installApk(getApplicationContext(), task.getFile().getAbsolutePath());
-                                DownloadNotification.progress(task.getUrl(), -1l);
+                                DownloadNotification.progress(task.getUrl(), -1L);
                                 checkMd(downLoadInfo, task);
                             }
                             break;

+ 1 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/wxutil/WXAPIUtil.java

@@ -20,6 +20,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import okhttp3.Call;
+import org.greenrobot.eventbus.EventBus;
 
 public class WXAPIUtil {
 

+ 1 - 1
app/src/main/res/color/selector_color_tab_home.xml

@@ -2,7 +2,7 @@
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 
     <item android:state_enabled="false" android:color="@color/main_tab" />
-    <item android:state_activated="true" android:color="#fb8b01" />
+    <item android:state_activated="true" android:color="#2ebef2" />
     <item android:state_focused="true" android:color="#fb8b01" />
     <item android:state_checked="true" android:color="#fb8b01"/>
     <item android:state_selected="true" android:color="#fb8b01"/>

BIN
app/src/main/res/drawable-xhdpi/shouye.png


BIN
app/src/main/res/drawable-xhdpi/shouye_c.png


BIN
app/src/main/res/drawable-xhdpi/youxi.png


BIN
app/src/main/res/drawable-xhdpi/youxi_c.png


BIN
app/src/main/res/drawable-xxhdpi/shouye.png


BIN
app/src/main/res/drawable-xxhdpi/shouye_c.png


BIN
app/src/main/res/drawable-xxhdpi/youxi.png


BIN
app/src/main/res/drawable-xxhdpi/youxi_c.png


BIN
app/src/main/res/drawable-xxxhdpi/shouye.png


BIN
app/src/main/res/drawable-xxxhdpi/shouye_c.png


BIN
app/src/main/res/drawable-xxxhdpi/youxi.png


BIN
app/src/main/res/drawable-xxxhdpi/youxi_c.png


+ 61 - 0
app/src/main/res/drawable/anim_wxhb.xml

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true">
+    <item android:drawable="@drawable/xjhb0000" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0001" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0002" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0003" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0004" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0005" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0006" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0007" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0008" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0009" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0010" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0011" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0012" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0013" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0014" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0015" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0016" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0017" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0018" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0019" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0020" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0021" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0022" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0023" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0024" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0025" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0026" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0027" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0028" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0029" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0030" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0031" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0032" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0033" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0034" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0035" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0036" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0037" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0038" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0039" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0040" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0041" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0042" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0043" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0044" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0045" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0046" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0047" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0048" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0049" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0040" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0051" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0052" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0053" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0054" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0055" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0056" android:duration="40"/>
+    <item android:drawable="@drawable/xjhb0057" android:duration="40"/>
+</animation-list>

+ 4 - 0
app/src/main/res/drawable/bg_corner_10dp_bottom.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp"/>
+</shape>

+ 4 - 0
app/src/main/res/drawable/bg_corner_10dp_top.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:topLeftRadius="10dp" android:topRightRadius="10dp"/>
+</shape>

+ 5 - 0
app/src/main/res/drawable/bg_thumb_personal_scroll_bar.xml

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

+ 7 - 0
app/src/main/res/drawable/drawable_selector_item_click.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:drawable="@color/black_half" android:state_pressed="true"/>
+    <item android:drawable="@null" android:state_pressed="false"/>
+
+</selector>

+ 5 - 0
app/src/main/res/drawable/fg_circle_white_default.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape android:shape="oval" xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#00FFFFFF"/>
+    <size android:width="8dp" android:height="8dp"/>
+</shape>

+ 5 - 0
app/src/main/res/drawable/fg_circle_white_press.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape android:shape="oval" xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#59FFFFFF"/>
+    <size android:width="8dp" android:height="8dp"/>
+</shape>

+ 4 - 0
app/src/main/res/drawable/fg_rect_black_default.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#00FFFFFF"/>
+</shape>

+ 4 - 0
app/src/main/res/drawable/fg_rect_black_press.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#43000000"/>
+</shape>

+ 4 - 0
app/src/main/res/drawable/fg_rect_default.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#00FFFFFF"/>
+</shape>

+ 4 - 0
app/src/main/res/drawable/fg_rect_press.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#59FFFFFF"/>
+</shape>

BIN
app/src/main/res/drawable/gif_bottom_game.gif


BIN
app/src/main/res/drawable/gif_bottom_home.gif


BIN
app/src/main/res/drawable/guide_1_2.png


+ 5 - 0
app/src/main/res/drawable/selector_forground_circle_white.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/fg_circle_white_press" android:state_pressed="true"/>
+    <item android:drawable="@drawable/fg_circle_white_default" android:state_pressed="false"/>
+</selector>

+ 5 - 0
app/src/main/res/drawable/selector_forground_rect_black.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/fg_rect_black_press" android:state_pressed="true"/>
+    <item android:drawable="@drawable/fg_rect_black_default" android:state_pressed="false"/>
+</selector>

+ 5 - 0
app/src/main/res/drawable/selector_forground_rect_white.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/fg_rect_press" android:state_pressed="true"/>
+    <item android:drawable="@drawable/fg_rect_default" android:state_pressed="false"/>
+</selector>

+ 6 - 0
app/src/main/res/drawable/thumb_personal_scroll_bar.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:radius="8dp"/>
+    <solid android:color="#2EBEF2"/>
+    <size android:width="14dp" android:height="2dp"/>
+</shape>

BIN
app/src/main/res/drawable/xjhb0000.png


BIN
app/src/main/res/drawable/xjhb0001.png


BIN
app/src/main/res/drawable/xjhb0002.png


BIN
app/src/main/res/drawable/xjhb0003.png


BIN
app/src/main/res/drawable/xjhb0004.png


BIN
app/src/main/res/drawable/xjhb0005.png


BIN
app/src/main/res/drawable/xjhb0006.png


BIN
app/src/main/res/drawable/xjhb0007.png


BIN
app/src/main/res/drawable/xjhb0008.png


BIN
app/src/main/res/drawable/xjhb0009.png


BIN
app/src/main/res/drawable/xjhb0010.png


BIN
app/src/main/res/drawable/xjhb0011.png


BIN
app/src/main/res/drawable/xjhb0012.png


BIN
app/src/main/res/drawable/xjhb0013.png


BIN
app/src/main/res/drawable/xjhb0014.png


BIN
app/src/main/res/drawable/xjhb0015.png


BIN
app/src/main/res/drawable/xjhb0016.png


BIN
app/src/main/res/drawable/xjhb0017.png


BIN
app/src/main/res/drawable/xjhb0018.png


BIN
app/src/main/res/drawable/xjhb0019.png


BIN
app/src/main/res/drawable/xjhb0020.png


BIN
app/src/main/res/drawable/xjhb0021.png


BIN
app/src/main/res/drawable/xjhb0022.png


BIN
app/src/main/res/drawable/xjhb0023.png


BIN
app/src/main/res/drawable/xjhb0024.png


BIN
app/src/main/res/drawable/xjhb0025.png


+ 0 - 0
app/src/main/res/drawable/xjhb0026.png


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff