Explorar el Código

添加 幂动

liujiangyao hace 7 años
padre
commit
5e41c1e2c2

+ 3 - 0
app/build.gradle

@@ -256,6 +256,9 @@ dependencies {
 
     compile 'com.appsee:appsee-android:+'
 
+    //幂动科技
+    compile files('libs/mdsdk.jar')
+
 }
 static def releaseTime() {
     return new Date().format("MMddHHmm", TimeZone.getDefault())

BIN
app/libs/mdsdk.jar


+ 288 - 167
app/src/main/AndroidManifest.xml

@@ -16,11 +16,13 @@
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
-    <uses-permission android:name="android.permission.WRITE_SETTINGS"
-        tools:ignore="ProtectedPermissions"/>
+    <uses-permission
+        android:name="android.permission.WRITE_SETTINGS"
+        tools:ignore="ProtectedPermissions" />
     <uses-permission android:name="android.permission.VIBRATE" />
-    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
-        tools:ignore="ProtectedPermissions"/>
+    <uses-permission
+        android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
+        tools:ignore="ProtectedPermissions" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
 
@@ -31,27 +33,27 @@
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
     <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
-    <uses-permission android:name="android.permission.GET_TASKS" />
     <!--极光推送end-->
 
-    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.CAMERA" />
-    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
-    <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW"/>
-    <uses-permission android:name="android.permission.REQUEST_MEDIA_PROJECTION"/>
-    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
-    <uses-permission android:name="android.permission.INTERNET"/>
-    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
-    <uses-permission android:name="android.permission.GET_TASKS"/>
-    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
-    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"
-        tools:ignore="ProtectedPermissions"/>
-    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
+    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
+    <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
+    <uses-permission android:name="android.permission.REQUEST_MEDIA_PROJECTION" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+    <uses-permission android:name="android.permission.GET_TASKS" />
+    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
+    <uses-permission
+        android:name="android.permission.PACKAGE_USAGE_STATS"
+        tools:ignore="ProtectedPermissions" />
+    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
     <!--必须的权限配置-->
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
-    <uses-permission android:name="android.permission.READ_LOGS"
-        tools:ignore="ProtectedPermissions"/>
+    <uses-permission
+        android:name="android.permission.READ_LOGS"
+        tools:ignore="ProtectedPermissions" />
     <!--保存资源到SD卡-->
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <!-- 推荐的权限 -->
@@ -59,36 +61,37 @@
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
-    <uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
+    <uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
+    <uses-permission android:name="android.permission.ACCESS_SUPERUSER" />
 
     <permission
         android:name="android.permission.PACKAGE_USAGE_STATS"
-        tools:ignore="ProtectedPermissions"/>
+        tools:ignore="ProtectedPermissions" />
 
     <application
         android:name=".SheepApp"
         android:allowBackup="true"
+        android:fullBackupContent="@xml/backup_descriptor"
         android:icon="@mipmap/icon"
-        android:persistent="true"
         android:label="@string/app_name"
+        android:persistent="true"
         android:supportsRtl="true"
-        android:theme="@style/AppTheme"
-        android:fullBackupContent="@xml/backup_descriptor">
+        android:theme="@style/AppTheme">
 
         <activity
             android:name=".wxapi.WXEntryActivity"
             android:exported="true"
-            android:launchMode="singleTop"/>
+            android:launchMode="singleTop" />
         <activity
             android:name="com.sheep.gamegroup.view.activity.WebviewAct"
-            android:screenOrientation="portrait"/>
+            android:screenOrientation="portrait" />
 
-        <service android:name=".service.DownloadService"/>
+        <service android:name=".service.DownloadService" />
         <service
             android:name=".service.FloatService"
             android:enabled="true"
-            android:exported="true">
-        </service>
+            android:exported="true"></service>
+
         <provider
             android:name=".provider.SheepFileProvider"
             android:authorities="${applicationId}.fileprovider"
@@ -98,16 +101,15 @@
             <!-- 元数据 -->
             <meta-data
                 android:name="android.support.FILE_PROVIDER_PATHS"
-                android:resource="@xml/file_paths"/>
+                android:resource="@xml/file_paths" />
         </provider>
 
 
-
         <!--必须配置-->
         <activity
             android:name="com.tencent.bugly.beta.ui.BetaActivity"
             android:configChanges="keyboardHidden|orientation|screenSize|locale"
-            android:theme="@android:style/Theme.Translucent"/>
+            android:theme="@android:style/Theme.Translucent" />
 
         <!-- 必须配置 fileProvider, 注意: android:authorities="${applicationId}.fileProvider" 不要直接copy,设置为你的包名.fileProvider-->
         <provider
@@ -117,69 +119,83 @@
             android:grantUriPermissions="true">
             <meta-data
                 android:name="android.support.FILE_PROVIDER_PATHS"
-                android:resource="@xml/provider_paths"/>
+                android:resource="@xml/provider_paths" />
 
         </provider>
 
         <activity
             android:name="com.sheep.gamegroup.view.activity.PersionInfoAct"
-            android:screenOrientation="portrait">
-        </activity>
+            android:screenOrientation="portrait"></activity>
 
         <!--2.0-->
-        <activity android:name="com.sheep.gamegroup.view.activity.LoginAct"
-            android:theme="@style/FullScreenTheme"
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.LoginAct"
             android:launchMode="singleTask"
-            android:screenOrientation="portrait">
+            android:screenOrientation="portrait"
+            android:theme="@style/FullScreenTheme">
 
         </activity>
 
-       <activity android:name="com.sheep.gamegroup.view.activity.SplashAct"
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.SplashAct"
             android:screenOrientation="portrait"
-            android:theme="@style/SplashTheme"
-            >
+            android:theme="@style/SplashTheme">
 
             <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="android.intent.category.LAUNCHER"/>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
 
-        <activity android:name="com.sheep.gamegroup.view.activity.PhoneAct"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.PersonalCenterAct"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.WithdrawalAct"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.WithdrawalResultAct"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.BindOrChangeWeixinAct"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.TryMakeMoneyact"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.GamemakeMoneyAct"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.LieMakeMoneyAct"
-            android:launchMode="singleTask"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.HomePageAct"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.DialogActivity"
-            android:theme="@style/MyDialogActivityTheme"
-            />
-        <activity android:name="com.sheep.gamegroup.view.activity.TaskListAct"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.GameTaskOrderListAct"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.WithdrawalListAct"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ChangeTelAct"
-            android:screenOrientation="portrait"
-            android:launchMode="singleTask"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.TaskDetailAct"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.DialogToastAct"
-            android:theme="@style/MyDialogActivityTheme"
-            />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.PhoneAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.PersonalCenterAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.WithdrawalAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.WithdrawalResultAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.BindOrChangeWeixinAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.TryMakeMoneyact"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.GamemakeMoneyAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.LieMakeMoneyAct"
+            android:launchMode="singleTask" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.HomePageAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.DialogActivity"
+            android:theme="@style/MyDialogActivityTheme" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.TaskListAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.GameTaskOrderListAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.WithdrawalListAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ChangeTelAct"
+            android:launchMode="singleTask"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.TaskDetailAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.DialogToastAct"
+            android:theme="@style/MyDialogActivityTheme" />
 
         <!--半袋米首页-->
         <activity
@@ -238,6 +254,7 @@
                 <action android:name="android.intent.action.PACKAGE_ADDED" />
                 <action android:name="android.intent.action.PACKAGE_REMOVED" />
                 <action android:name="android.intent.action.PACKAGE_REPLACED" />
+
                 <data android:scheme="package" />
             </intent-filter>
         </receiver>
@@ -245,12 +262,14 @@
         <activity
             android:name="com.tencent.tauth.AuthActivity"
             android:launchMode="singleTask"
-            android:noHistory="true" >
+            android:noHistory="true">
 
             <intent-filter>
                 <action android:name="android.intent.action.VIEW" />
+
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.BROWSABLE" />
+
                 <data android:scheme="tencent101461115" />
             </intent-filter>
 
@@ -258,77 +277,119 @@
 
         <activity
             android:name="com.tencent.connect.common.AssistActivity"
-            android:screenOrientation="portrait"
-            android:configChanges="orientation|keyboardHidden|screenSize"/>
-
+            android:configChanges="orientation|keyboardHidden|screenSize"
+            android:screenOrientation="portrait" />
 
 
-        <activity android:name="com.sheep.gamegroup.view.activity.CommitWxAct"
-            android:windowSoftInputMode="stateVisible|adjustPan"
-            android:screenOrientation="portrait" />
-        <activity android:name="com.sheep.gamegroup.view.activity.ActGuideOnHook"
-            android:screenOrientation="portrait" />
-        <activity android:name="com.sheep.gamegroup.view.activity.CommitWxCodeAct"
-            android:windowSoftInputMode="stateVisible|adjustPan"
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.CommitWxAct"
+            android:screenOrientation="portrait"
+            android:windowSoftInputMode="stateVisible|adjustPan" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActGuideOnHook"
             android:screenOrientation="portrait" />
-        <activity android:name="com.sheep.gamegroup.view.activity.ActGuideDeblocked"
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.CommitWxCodeAct"
+            android:screenOrientation="portrait"
+            android:windowSoftInputMode="stateVisible|adjustPan" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActGuideDeblocked"
             android:screenOrientation="portrait" />
 
-        <activity android:name="com.sheep.gamegroup.view.activity.RealNameAuthenAct"
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.RealNameAuthenAct"
             android:screenOrientation="portrait" />
-        <activity android:name="com.sheep.gamegroup.view.activity.ChangeWxOrTelAct"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ReNameActivity"
-            android:windowSoftInputMode="stateVisible|adjustPan"
-            android:screenOrientation="portrait"/>
-        <activity android:name="me.iwf.photopicker.PhotoPickerActivity"
-            android:theme="@style/Theme.AppCompat.NoActionBar"
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ChangeWxOrTelAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ReNameActivity"
             android:screenOrientation="portrait"
-            />
+            android:windowSoftInputMode="stateVisible|adjustPan" />
+        <activity
+            android:name="me.iwf.photopicker.PhotoPickerActivity"
+            android:screenOrientation="portrait"
+            android:theme="@style/Theme.AppCompat.NoActionBar" />
 
-        <activity android:name="me.iwf.photopicker.PhotoPagerActivity"
-            android:theme="@style/Theme.AppCompat.NoActionBar"
+        <activity
+            android:name="me.iwf.photopicker.PhotoPagerActivity"
             android:screenOrientation="portrait"
-            />
+            android:theme="@style/Theme.AppCompat.NoActionBar" />
         <activity
             android:name="com.yalantis.ucrop.UCropActivity"
             android:screenOrientation="portrait"
-            android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
-
-        <activity android:name="com.sheep.gamegroup.view.activity.ActNewbieTaskList"  android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActUnderstandSheep"  android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActCreditCardTaskList" android:screenOrientation="portrait" />
-        <activity android:name="com.sheep.gamegroup.view.activity.ActCreditCardWeb" android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActXinwanWeb" android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.TaskDetailCreditCardAct" android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.TaskDetailAddQQAct" android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActWeb" android:screenOrientation="portrait" android:hardwareAccelerated="false"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActMyMoney" android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.FeedbackAct" android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActMainGame" android:screenOrientation="portrait"/>
+            android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
 
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActNewbieTaskList"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActUnderstandSheep"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActCreditCardTaskList"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActCreditCardWeb"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActXinwanWeb"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.TaskDetailCreditCardAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.TaskDetailAddQQAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActWeb"
+            android:hardwareAccelerated="false"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActMyMoney"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.FeedbackAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActMainGame"
+            android:screenOrientation="portrait" />
 
 
-        <activity android:name="com.sheep.gamegroup.view.activity.SignCardAct" android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.SignRankingsAct" android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.SignRecordAct" android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.SignRechargeAct" android:screenOrientation="portrait"/>
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.SignCardAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.SignRankingsAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.SignRecordAct"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.SignRechargeAct"
+            android:screenOrientation="portrait" />
 
 
         <!--appsee start-->
-        <meta-data android:name="com.appsee.ApiKey" android:value="${appsee_app_key}" />
+        <meta-data
+            android:name="com.appsee.ApiKey"
+            android:value="${appsee_app_key}" />
 
         <!--友盟start-->
         <meta-data
             android:name="UMENG_APPKEY"
-            android:value="${umeng_app_key}"/>
-        <meta-data android:value="xxx" android:name="UMENG_CHANNEL"/>
+            android:value="${umeng_app_key}" />
+        <meta-data
+            android:name="UMENG_CHANNEL"
+            android:value="xxx" />
 
 
         <!--极光推送-->
 
         <!-- For test only 测试状态通知栏,需要打开的Activity -->
-        <activity android:name="com.sheep.gamegroup.view.activity.MiddleAct" android:exported="false">
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.MiddleAct"
+            android:exported="false">
             <intent-filter>
                 <action android:name="jpush.testAction" />
                 <category android:name="jpush.testCategory" />
@@ -337,17 +398,17 @@
         <!-- Rich push 核心功能 since 2.0.6-->
         <activity
             android:name="cn.jpush.android.ui.PopWinActivity"
-            android:theme="@style/MyDialogStyle"
-            android:exported="false">
-        </activity>
+            android:exported="false"
+            android:theme="@style/MyDialogStyle"></activity>
         <!-- Required SDK核心功能-->
         <activity
             android:name="cn.jpush.android.ui.PushActivity"
             android:configChanges="orientation|keyboardHidden"
-            android:theme="@android:style/Theme.NoTitleBar"
-            android:exported="false">
+            android:exported="false"
+            android:theme="@android:style/Theme.NoTitleBar">
             <intent-filter>
                 <action android:name="cn.jpush.android.ui.PushActivity" />
+
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="${applicationId}" />
             </intent-filter>
@@ -357,8 +418,8 @@
         <!-- 可配置android:process参数将PushService放在其他进程中 -->
         <service
             android:name="cn.jpush.android.service.PushService"
-            android:process=":mult"
-            android:exported="false">
+            android:exported="false"
+            android:process=":mult">
             <intent-filter>
                 <action android:name="cn.jpush.android.intent.REGISTER" />
                 <action android:name="cn.jpush.android.intent.REPORT" />
@@ -368,10 +429,9 @@
         </service>
         <!-- since 3.0.9 Required SDK 核心功能-->
         <provider
-            android:authorities="${applicationId}.DataProvider"
             android:name="cn.jpush.android.service.DataProvider"
-            android:exported="false"
-            />
+            android:authorities="${applicationId}.DataProvider"
+            android:exported="false" />
 
 
         <!-- since 1.8.0 option 可选项。用于同一设备中不同应用的JPush服务相互拉起的功能。 -->
@@ -388,10 +448,9 @@
         </service>
         <!-- since 3.1.0 Required SDK 核心功能-->
         <provider
-            android:authorities="${applicationId}.DownloadProvider"
             android:name="cn.jpush.android.service.DownloadProvider"
-            android:exported="true"
-            />
+            android:authorities="${applicationId}.DownloadProvider"
+            android:exported="true" />
         <!-- Required SDK核心功能-->
         <receiver
             android:name="cn.jpush.android.service.PushReceiver"
@@ -415,13 +474,15 @@
         </receiver>
 
         <!-- Required SDK核心功能-->
-        <receiver android:name="cn.jpush.android.service.AlarmReceiver" android:exported="false"/>
+        <receiver
+            android:name="cn.jpush.android.service.AlarmReceiver"
+            android:exported="false" />
 
         <!-- User defined.  For test only  用户自定义的广播接收器-->
         <receiver
             android:name="com.sheep.gamegroup.receiver.SheepJpushReceiver"
-            android:exported="false"
-            android:enabled="true">
+            android:enabled="true"
+            android:exported="false">
             <intent-filter>
                 <action android:name="cn.jpush.android.intent.REGISTRATION" /> <!--Required  用户注册SDK的intent-->
                 <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> <!--Required  用户接收SDK消息的intent-->
@@ -436,13 +497,17 @@
         <receiver android:name="com.sheep.gamegroup.receiver.SheepJpushMessageReceiver">
             <intent-filter>
                 <action android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />
-                <category android:name="${applicationId}"/>
+                <category android:name="${applicationId}" />
             </intent-filter>
         </receiver>
 
         <!-- Required  . Enable it you can get statistics data with channel -->
-        <meta-data android:name="JPUSH_CHANNEL" android:value="developer-default"/>
-        <meta-data android:name="JPUSH_APPKEY" android:value="${jpush_appkey}" /> <!--  </>值来自开发者平台取得的AppKey-->
+        <meta-data
+            android:name="JPUSH_CHANNEL"
+            android:value="developer-default" />
+        <meta-data
+            android:name="JPUSH_APPKEY"
+            android:value="${jpush_appkey}" /> <!--  </>值来自开发者平台取得的AppKey-->
         <!--极光推送end-->
 
         <!-- div start-->
@@ -463,35 +528,91 @@
             android:configChanges="orientation|keyboardHidden|navigation|screenSize"
             android:exported="false"
             android:screenOrientation="behind"
-            android:windowSoftInputMode="adjustResize|stateHidden" >
-        </activity>
+            android:windowSoftInputMode="adjustResize|stateHidden"></activity>
 
         <!-- alipay 支付宝 sdk end -->
 
-        <activity android:name="com.sheep.gamegroup.view.activity.ActNotice"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActGuide"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActLoadH5"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActUserLabelList"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActNewAboutUs"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActInstallApkList"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActFindGame"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActFindInformation"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActReservation"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActGameAgencyRecharge"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActGameAccount"
-            android:screenOrientation="portrait"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.ActSearchGame"
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActNotice"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActGuide"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActLoadH5"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActUserLabelList"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActNewAboutUs"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActInstallApkList"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActFindGame"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActFindInformation"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActReservation"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActGameAgencyRecharge"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActGameAccount"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActSearchGame"
+            android:screenOrientation="portrait" />
+
+        <!--start幂动科技-->
+
+        <activity android:name="com.sheep.gamegroup.view.activity.ActMiDong"
             android:screenOrientation="portrait"/>
+
+        <service
+            android:name="com.mdad.sdk.mdsdk.monitor.MonitorService"
+            android:enabled="true"
+            android:priority="1000" />
+        <service
+            android:name="com.mdad.sdk.mdsdk.monitor.DetectionService"
+            android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
+            <intent-filter>
+                <action android:name="android.accessibilityservice.AccessibilityService" />
+            </intent-filter>
+            <meta-data
+                android:name="android.accessibilityservice"
+                android:resource="@xml/accessibility_config" />
+        </service>
+
+
+        <receiver
+            android:name="com.mdad.sdk.mdsdk.AppInstallReceiver"
+            android:enabled="true"
+            android:exported="true">
+            <intent-filter>
+                <action android:name="android.intent.action.PACKAGE_ADDED" />
+                <action android:name="android.intent.action.PACKAGE_REPLACED" />
+                <action android:name="android.intent.action.PACKAGE_REMOVED" />
+
+                <data android:scheme="package" />
+            </intent-filter>
+        </receiver>
+
+        <receiver
+            android:name="com.mdad.sdk.mdsdk.DownloadCompleteReceiver"
+            android:enabled="true"
+            android:exported="true">
+            <intent-filter>
+                <action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
+                <action android:name="android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED" />
+            </intent-filter>
+        </receiver>
+        <!--end幂动科技-->
     </application>
 
 

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

@@ -16,6 +16,7 @@ import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.react.TabsHelper;
 import com.kfzs.duanduan.utils.dlg.HelperUtils;
 import com.kfzs.duanduan.view.DialogStorageLow;
+import com.mdad.sdk.mdsdk.AdManager;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.model.entity.Container;
 import com.sheep.gamegroup.util.Jump2View;
@@ -67,6 +68,13 @@ public class ActMain extends BaseActivity {
 
         mImgDot = findViewById(R.id.img_download_manager_dot);
         tabsHelper.init();
+
+
+        /**
+         * 幂动科技
+         *  appId为应用id,开发者可联系后台获取
+         */
+        AdManager.getInstance(this).init(this, "40");
     }
 
     @Override

+ 4 - 59
app/src/main/java/com/kfzs/duanduan/fragment/FgtFind.java

@@ -14,6 +14,7 @@ import com.kfzs.duanduan.mine.GiftpackListAdapter;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.FindTag;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.jiuyan.samllsheep.R;
@@ -100,67 +101,11 @@ public class FgtFind extends BaseCompatFragment {
             }
         });
         pager.setCurrentItem(position);
-        reflex(indicator);
-    }
-    private int position = 0;//默认选中第一个
-
-    /**
-     * 通过反射调整tabLayout中下划线的宽度
-     * @param tabLayout
-     */
-    public void reflex(final TabLayout tabLayout){
-        //了解源码得知 线的宽度是根据 tabView的宽度来设置的
-        tabLayout.post(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    //拿到tabLayout的mTabStrip属性
-                    LinearLayout mTabStrip = (LinearLayout) tabLayout.getChildAt(0);
-
-//                    int dp10 = dip2px(tabLayout.getContext(), 10);
-                    int add = getResources().getDimensionPixelSize(R.dimen.content_padding_10);
-                    int count = mTabStrip.getChildCount();
-                    int fillCount = Math.min(5, count);//一屏的个数
-
-                    for (int i = 0; i < count; i++) {
-                        View tabView = mTabStrip.getChildAt(i);
-
-                        //拿到tabView的mTextView属性  tab的字数不固定一定用反射取mTextView
-                        Field mTextViewField = tabView.getClass().getDeclaredField("mTextView");
-                        mTextViewField.setAccessible(true);
-
-                        TextView mTextView = (TextView) mTextViewField.get(tabView);
-
-                        tabView.setPadding(0, 0, 0, 0);
-
-                        //因为我想要的效果是   字多宽线就多宽,所以测量mTextView的宽度
-                        int width = 0;
-                        width = mTextView.getWidth();
-                        if (width == 0) {
-                            mTextView.measure(0, 0);
-                            width = mTextView.getMeasuredWidth();
-                        }
-
-                        //设置tab左右间距为10dp  注意这里不能使用Padding 因为源码中线的宽度是根据 tabView的宽度来设置的
-                        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) tabView.getLayoutParams();
-                        params.width = width ;
-                        int margin = (G.WIDTH - fillCount*width - 2*add) / (fillCount*2);
-                        params.leftMargin = margin + (i == 0 ? add : 0);
-                        params.rightMargin = margin + (i + 1 == count ? add : 0);
-                        tabView.setLayoutParams(params);
-
-                        tabView.invalidate();
-                    }
-
-                } catch (NoSuchFieldException e) {
-                    e.printStackTrace();
-                } catch (IllegalAccessException e) {
-                    e.printStackTrace();
-                }
-            }
-        });
 
+        CommonUtil.getInstance()
+                .reflex(indicator, activity);
     }
+    private int position = 0;//默认选中第一个
 
 
 }

+ 239 - 0
app/src/main/java/com/kfzs/duanduan/fragment/FgtMiDong.java

@@ -0,0 +1,239 @@
+package com.kfzs.duanduan.fragment;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.widget.SwipeRefreshLayout;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSONArray;
+import com.kfzs.duanduan.BaseCompatFragment;
+import com.mdad.sdk.mdsdk.AdManager;
+import com.mdad.sdk.mdsdk.GetAdListListener;
+import com.mdad.sdk.mdsdk.RewardListener;
+import com.mdad.sdk.mdsdk.common.AdData;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.GameAgencyRechargePlatformEntity;
+import com.sheep.gamegroup.model.entity.RecyleObj;
+import com.sheep.gamegroup.model.entity.RecyleType;
+import com.sheep.gamegroup.model.entity.TaskReleaseEty;
+import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.SysAppUtil;
+import com.sheep.gamegroup.view.adapter.AdListAdapter;
+import com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.utils.G;
+
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import rx.functions.Action1;
+
+/**
+ * Created by ljy on 2018/7/19.
+ */
+
+public class FgtMiDong extends BaseCompatFragment {
+
+    @BindView(R.id.title)
+    View title;
+    @BindView(R.id.refresh)
+    SwipeRefreshLayout refresh;
+    @BindView(R.id.empty_view)
+    View empty_view;
+    @BindView(R.id.check_net_ll)
+    View check_net_ll;
+    @BindView(R.id.view_list)
+    RecyclerView recyclerview;
+    private int type;
+    private Activity activity;
+    private AdListAdapter adListAdapter;
+    private int pageNo = 1;
+    private int pageSize = 30;
+    private List<AdData> listData = ListUtil.emptyList();
+
+    public static FgtMiDong newInstance(int type){
+        FgtMiDong fgtMiDong = new FgtMiDong();
+        Bundle bundle = new Bundle();
+        bundle.putInt("type", type);
+        fgtMiDong.setArguments(bundle);
+        return fgtMiDong;
+    }
+
+    @Override
+    public void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        Bundle bundle = getArguments();
+        if(bundle != null){
+            type = bundle.getInt("type", 0);
+        }
+    }
+
+    @Override
+    protected void initView(Bundle savedInstanceState) {
+        setContentView(R.layout.net_empty_fresh_list_more);
+        activity = getActivity();
+        ButterKnife.bind(this, mContentView);
+        initView();
+        initData();
+    }
+    private void initView(){
+        title.setVisibility(View.GONE);
+        refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
+            @Override
+            public void onRefresh() {
+                initData();
+                refresh.setRefreshing(false);
+            }
+        });
+
+
+        /**
+         * recycle view
+         */
+        recyclerview.setLayoutManager(new LinearLayoutManager(activity));
+        adListAdapter = new AdListAdapter(activity, listData);
+        recyclerview.setAdapter(adListAdapter);
+
+        /**
+         * 任务完成回调
+         */
+        AdManager.getInstance(activity).setRewardListener(new RewardListener() {
+            @Override
+            public void doTaskSuccess(String packageName) {
+                // packageName 为所完成任务的包名
+                G.showToast(activity, packageName + "", Toast.LENGTH_SHORT);
+            }
+
+            @Override
+            public void doTaskFail(String error) {
+                G.showToast(activity, error + "", Toast.LENGTH_SHORT);
+            }
+        });
+        initListen();
+    }
+
+    private void initData(){
+        empty_view.setVisibility(View.INVISIBLE);
+        SysAppUtil.checkNet(new Action1<Integer>() {
+            @Override
+            public void call(Integer result) {
+                if(result != 0){//无网络
+                    if(check_net_ll != null)
+                        check_net_ll.setVisibility(View.VISIBLE);
+                } else {
+                    if(check_net_ll != null)
+                        check_net_ll.setVisibility(View.GONE);
+                }
+            }
+        });
+        loadData(false);
+    }
+
+    private void notifyDataSetChanged(){
+        if(ListUtil.isEmpty(listData) )
+            empty_view.setVisibility(View.VISIBLE);
+        else
+            empty_view.setVisibility(View.GONE);
+        refresh.setRefreshing(false);
+        adListAdapter.notifyDataSetChanged();
+    }
+
+    private void loadData(boolean isLoadMore) {
+        /**
+         * 异步获取普通任务,回调是在主线程,可以直接更新UI,加载更多的逻辑只需更新pageNo和pageSize即可。
+         */
+        if (isLoadMore)
+            pageNo++;
+        else
+            pageNo = 1;
+        if(type == 0){
+            AdManager.getInstance(activity).getAdListAsync(activity, new GetAdListListener() {
+                @Override
+                public void onLoadAdSuccess(List<AdData> list) {
+                    refresh.setRefreshing(false);
+                    if (list != null) {
+                        if(pageNo == 1)
+                            listData.clear();
+                        listData.addAll(list);
+                        adListAdapter.setData(listData);
+                        notifyDataSetChanged();
+                    }
+                }
+
+                @Override
+                public void onLoadAdFailure() {
+                    refresh.setRefreshing(false);
+                    G.showToast(activity, "网络异常,请稍后再试", Toast.LENGTH_SHORT);
+                    notifyDataSetChanged();
+                }
+
+                @Override
+                public void onAdEmpty() {
+                    G.showToast(activity, "暂无数据", Toast.LENGTH_SHORT);
+                    notifyDataSetChanged();
+
+                }
+            }, pageNo, pageSize);
+
+        }else {
+            /**
+             * 异步获取签到任务,回调是在主线程,可以直接更新UI,加载更多的逻辑只需更新pageNo和pageSize即可。
+             */
+            AdManager.getInstance(activity).getSignListAsync(activity, new GetAdListListener() {
+                @Override
+                public void onLoadAdSuccess(List<AdData> list) {
+                    refresh.setRefreshing(false);
+                    if (list != null && list.size() > 0) {
+                        if(pageNo == 1)
+                            listData.clear();
+                        listData.addAll(list);
+                        adListAdapter.setData(listData);
+                        notifyDataSetChanged();
+                    } else {
+                        G.showToast(activity, "暂无数据", Toast.LENGTH_SHORT);
+                    }
+                }
+
+                @Override
+                public void onLoadAdFailure() {
+                    refresh.setRefreshing(false);
+                    G.showToast(activity, "网络异常,请稍后再试", Toast.LENGTH_SHORT);
+                    notifyDataSetChanged();
+                }
+
+                @Override
+                public void onAdEmpty() {
+                    refresh.setRefreshing(false);
+                    G.showToast(activity, "暂无数据", Toast.LENGTH_SHORT);
+                    notifyDataSetChanged();
+
+                }
+            }, pageNo, pageSize);
+        }
+
+    }
+
+    private void initListen(){
+        recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
+            @Override
+            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
+                super.onScrollStateChanged(recyclerView, newState);
+                if(newState == RecyclerView.SCROLL_STATE_IDLE){//滑动到了底部
+                    if(listData.size() >= pageNo*pageSize){
+                        loadData(true);
+                    }else {
+//                        G.showToast("没有更多数据了");
+                    }
+
+                }
+            }
+        });
+    }
+}

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

@@ -8,12 +8,14 @@ import android.graphics.drawable.Drawable;
 import android.graphics.drawable.GradientDrawable;
 import android.os.Handler;
 import android.os.Message;
+import android.support.design.widget.TabLayout;
 import android.support.v7.app.AlertDialog;
 import android.text.Html;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
 import android.view.ViewTreeObserver;
+import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
@@ -1370,4 +1372,61 @@ public class CommonUtil {
         }
         return false;
     }
+    /**
+     * 通过反射调整tabLayout中下划线的宽度
+     * @param tabLayout
+     */
+    public void reflex(final TabLayout tabLayout, final Context context){
+        //了解源码得知 线的宽度是根据 tabView的宽度来设置的
+        tabLayout.post(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    //拿到tabLayout的mTabStrip属性
+                    LinearLayout mTabStrip = (LinearLayout) tabLayout.getChildAt(0);
+
+//                    int dp10 = dip2px(tabLayout.getContext(), 10);
+                    int add = context.getResources().getDimensionPixelSize(R.dimen.content_padding_10);
+                    int count = mTabStrip.getChildCount();
+                    int fillCount = Math.min(5, count);//一屏的个数
+
+                    for (int i = 0; i < count; i++) {
+                        View tabView = mTabStrip.getChildAt(i);
+
+                        //拿到tabView的mTextView属性  tab的字数不固定一定用反射取mTextView
+                        Field mTextViewField = tabView.getClass().getDeclaredField("mTextView");
+                        mTextViewField.setAccessible(true);
+
+                        TextView mTextView = (TextView) mTextViewField.get(tabView);
+
+                        tabView.setPadding(0, 0, 0, 0);
+
+                        //因为我想要的效果是   字多宽线就多宽,所以测量mTextView的宽度
+                        int width = 0;
+                        width = mTextView.getWidth();
+                        if (width == 0) {
+                            mTextView.measure(0, 0);
+                            width = mTextView.getMeasuredWidth();
+                        }
+
+                        //设置tab左右间距为10dp  注意这里不能使用Padding 因为源码中线的宽度是根据 tabView的宽度来设置的
+                        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) tabView.getLayoutParams();
+                        params.width = width ;
+                        int margin = (G.WIDTH - fillCount*width - 2*add) / (fillCount*2);
+                        params.leftMargin = margin + (i == 0 ? add : 0);
+                        params.rightMargin = margin + (i + 1 == count ? add : 0);
+                        tabView.setLayoutParams(params);
+
+                        tabView.invalidate();
+                    }
+
+                } catch (NoSuchFieldException e) {
+                    e.printStackTrace();
+                } catch (IllegalAccessException e) {
+                    e.printStackTrace();
+                }
+            }
+        });
+
+    }
 }

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

@@ -48,6 +48,7 @@ import com.sheep.gamegroup.view.activity.ActGuideDeblocked;
 import com.sheep.gamegroup.view.activity.ActGuideOnHook;
 import com.sheep.gamegroup.view.activity.ActLoadH5;
 import com.sheep.gamegroup.view.activity.ActMainGame;
+import com.sheep.gamegroup.view.activity.ActMiDong;
 import com.sheep.gamegroup.view.activity.ActMyMoney;
 import com.sheep.gamegroup.view.activity.ActNewAboutUs;
 import com.sheep.gamegroup.view.activity.ActNewbieTaskList;
@@ -113,6 +114,7 @@ import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.GAME_INSTEAD_OF_RECHARGE;
+import static com.sheep.gamegroup.util.UMConfigUtils.Event.MI_DONG_VIEW;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.RECHARGE;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.RECHARGE_QQ;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.SEARCH_GAME;
@@ -1421,4 +1423,12 @@ public class Jump2View {
         activity.startActivity(intent);
         SEARCH_GAME.onEvent();
     }
+    /**
+     * 幂动科技
+     */
+    public void goMiDong(Activity activity, Object o){
+        Intent intent = new Intent(activity, ActMiDong.class);
+        activity.startActivity(intent);
+        MI_DONG_VIEW.onEvent();
+    }
 }

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

@@ -283,7 +283,7 @@ public class TestUtil {
      * @param activity
      */
     public static void test(final Activity activity) {
-        final String[] items = {"测试可用金额","复制token","复制打点数据","游戏搜索","游戏帐号","游戏代充","尝试开启第三方应用使用情况","测试代理页面","第三方应用使用情况",
+        final String[] items = {"幂动科技","测试可用金额","复制token","复制打点数据","游戏搜索","游戏帐号","游戏代充","尝试开启第三方应用使用情况","测试代理页面","第三方应用使用情况",
                 "开启第三方应用使用情况","h5跳转","新手对话框","md5","空间不足提示框",
                 "显示已经安装应用列表","复制faq地址","复制代理地址","复制世界杯地址","任务游戏列表","世界杯活动","交通银行信用卡测试",
                 "浦发银行信用卡测试", "测试游戏模块","打卡成功提示","定向货币详情","进入绑定身份认证界面时的提示","提交身份认证时的提示", "检查标签",
@@ -303,6 +303,9 @@ public class TestUtil {
                                             }
                                         });
                                 break;
+                            case "幂动科技":
+                                Jump2View.getInstance().goMiDong(activity, "http://10.8.210.172:8081/#/?authorization=123123");
+                                break;
                             case "游戏帐号":
                                 Jump2View.getInstance().goGameAccount(activity, "http://10.8.210.172:8081/#/?authorization=123123");
                                 break;

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

@@ -151,6 +151,7 @@ public class UMConfigUtils {
         SHEEP_NEWBIE_TASK_UNDERSTAND_SHEEP_COMMIT("新手任务 -> 一分钟了解小绵羊界面 -> 点击我知道了"),//5117
         ORDER_MANAGER_CANCEL("订单管理 -> 取消支付"),//5118
         ORDER_MANAGER_PAY("订单管理 -> 立即支付"),//5119
+        MI_DONG_VIEW("幂动科技"),//5120
         ;
         private String tag;
 

+ 3 - 59
app/src/main/java/com/sheep/gamegroup/view/activity/ActGameAgencyRecharge.java

@@ -13,6 +13,7 @@ import com.kfzs.duanduan.fragment.FgtGameAgencyRecharge;
 import com.kfzs.duanduan.mine.GiftpackListAdapter;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.model.entity.GridViewEntity;
+import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.MyGridview;
 import com.sheep.gamegroup.util.ViewUtil;
@@ -134,69 +135,12 @@ public class ActGameAgencyRecharge extends BaseActivity {
             }
         });
         pager.setCurrentItem(position);
-        reflex(indicator);
+        CommonUtil.getInstance()
+            .reflex(indicator, activity);
     }
     private int position = 0;//默认选中第一个
 
     /**
-     * 通过反射调整tabLayout中下划线的宽度
-     * @param tabLayout
-     */
-    public void reflex(final TabLayout tabLayout){
-        //了解源码得知 线的宽度是根据 tabView的宽度来设置的
-        tabLayout.post(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    //拿到tabLayout的mTabStrip属性
-                    LinearLayout mTabStrip = (LinearLayout) tabLayout.getChildAt(0);
-
-//                    int dp10 = dip2px(tabLayout.getContext(), 10);
-                    int add = getResources().getDimensionPixelSize(R.dimen.content_padding_10);
-                    int count = mTabStrip.getChildCount();
-                    int fillCount = Math.min(5, count);//一屏的个数
-
-                    for (int i = 0; i < count; i++) {
-                        View tabView = mTabStrip.getChildAt(i);
-
-                        //拿到tabView的mTextView属性  tab的字数不固定一定用反射取mTextView
-                        Field mTextViewField = tabView.getClass().getDeclaredField("mTextView");
-                        mTextViewField.setAccessible(true);
-
-                        TextView mTextView = (TextView) mTextViewField.get(tabView);
-
-                        tabView.setPadding(0, 0, 0, 0);
-
-                        //因为我想要的效果是   字多宽线就多宽,所以测量mTextView的宽度
-                        int width = 0;
-                        width = mTextView.getWidth();
-                        if (width == 0) {
-                            mTextView.measure(0, 0);
-                            width = mTextView.getMeasuredWidth();
-                        }
-
-                        //设置tab左右间距为10dp  注意这里不能使用Padding 因为源码中线的宽度是根据 tabView的宽度来设置的
-                        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) tabView.getLayoutParams();
-                        params.width = width ;
-                        int margin = (G.WIDTH - fillCount*width - 2*add) / (fillCount*2);
-                        params.leftMargin = margin + (i == 0 ? add : 0);
-                        params.rightMargin = margin + (i + 1 == count ? add : 0);
-                        tabView.setLayoutParams(params);
-
-                        tabView.invalidate();
-                    }
-
-                } catch (NoSuchFieldException e) {
-                    e.printStackTrace();
-                } catch (IllegalAccessException e) {
-                    e.printStackTrace();
-                }
-            }
-        });
-
-    }
-
-    /**
      * gridview 赋值
      */
     private void setValue(){

+ 93 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/ActMiDong.java

@@ -0,0 +1,93 @@
+package com.sheep.gamegroup.view.activity;
+
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+import android.support.design.widget.TabLayout;
+import android.support.v4.view.ViewPager;
+import android.view.View;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.kfzs.duanduan.fragment.FgtMiDong;
+import com.kfzs.duanduan.mine.GiftpackListAdapter;
+import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
+
+import java.lang.reflect.Field;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+/**
+ * 幂动科技 任务
+ * Created by ljy on 2018/7/19.
+ */
+
+public class ActMiDong extends BaseActivity {
+    @BindView(R.id.indicator)
+    TabLayout indicator;
+    @BindView(R.id.pager)
+    ViewPager pager;
+    private GiftpackListAdapter mAdapter;
+
+    private Activity activity;
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.act_midong_layout;
+    }
+
+    @Override
+    public void initView() {
+        activity = this;
+        TitleBarUtils.getInstance()
+                .setTitle(activity, "幂动任务")
+                .setTitleFinish(activity);
+    }
+
+    @Override
+    public void initListener() {
+
+    }
+
+    @Override
+    public void initData() {
+        mAdapter = new GiftpackListAdapter(getSupportFragmentManager(), activity);
+        mAdapter.add(FgtMiDong.newInstance(0), "普通任务");
+        mAdapter.add(FgtMiDong.newInstance(1), "签到任务");
+        pager.setAdapter(mAdapter);
+        indicator.setupWithViewPager(pager);
+        pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+            @Override
+            public void onPageScrolled(int i, float v, int i1) {
+
+            }
+
+            @Override
+            public void onPageSelected(int i) {
+//                FIND_TAG.onEvent("find_tag_name", ListUtil.hasIndex(list, i - 1) ? list.get(i - 1).getName() : "全部");
+            }
+
+            @Override
+            public void onPageScrollStateChanged(int i) {
+
+            }
+        });
+        pager.setCurrentItem(0);
+
+        CommonUtil.getInstance()
+            .reflex(indicator, activity);
+    }
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        // TODO: add setContentView(...) invocation
+        ButterKnife.bind(this);
+    }
+}

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

@@ -0,0 +1,253 @@
+package com.sheep.gamegroup.view.adapter;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.graphics.Color;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.mdad.sdk.mdsdk.AdManager;
+import com.mdad.sdk.mdsdk.common.AdData;
+import com.sheep.jiuyan.samllsheep.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by hrs on 2018/6/6.
+ */
+
+public class AdListAdapter extends android.support.v7.widget.RecyclerView.Adapter<android.support.v7.widget.RecyclerView.ViewHolder> {
+
+    private boolean isSign = false;
+    private List<AdData> mList;
+    private Context mContext;
+    private final int TYPE_APP_LAYOUT = 0;
+    private final int TYPE_FOOTER_LAYOUT = 1;//底部加载更多动画样式
+    //上拉加载更多状态-默认为0
+    private int load_more_status = 0;
+
+    //上拉加载更多
+    public static final int PULLUP_LOAD_MORE = 0;
+    //正在加载中
+    public static final int LOADING_MORE = 1;
+    //加载完成
+    public static final int LOADING_FINISH = 2;
+
+    public AdListAdapter(Context context, List<AdData> list) {
+        this.mContext = context;
+        this.mList = new ArrayList<>();
+        if (list != null)
+            mList.addAll(list);
+    }
+
+    public AdListAdapter(Context context, List<AdData> list, boolean isSign) {
+        this.mContext = context;
+        this.mList = new ArrayList<>();
+        if (list != null)
+            mList.addAll(list);
+        this.isSign = isSign;
+    }
+
+    public void setData(List<AdData> list) {
+        mList.clear();
+        if (list != null)
+            mList.addAll(list);
+    }
+
+    public void removeData(String id) {
+        int pos = -1;
+        if (mList != null && mList.size() > 0) {
+            for (int i = 0; i < mList.size(); i++) {
+                AdData data = mList.get(i);
+                if (data.getId().equals(id)) {
+                    pos = i;
+                    break;
+                }
+            }
+            if (pos > -1) {
+                mList.remove(pos);
+                notifyDataSetChanged();
+            }
+        }
+    }
+
+    public void addData(List<AdData> list) {
+        if (list != null)
+            mList.addAll(list);
+    }
+
+    @Override
+    public android.support.v7.widget.RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        View view;
+        switch (viewType) {
+            case TYPE_APP_LAYOUT:
+                view = LayoutInflater.from(mContext).inflate(R.layout.wall_list_item, parent, false);
+//                view = LayoutInflater.from(mContext).inflate(R.layout.wall_list_item, parent, false);
+                return new AppViewHolder(view);
+            case TYPE_FOOTER_LAYOUT:
+                view = new TextView(mContext);
+                return new FootViewHolder(view);
+        }
+        return null;
+    }
+
+    @Override
+    public void onBindViewHolder(android.support.v7.widget.RecyclerView.ViewHolder holder, int position) {
+        if (holder instanceof FootViewHolder) {
+            FootViewHolder footViewHolder = (FootViewHolder) holder;
+            footViewHolder.foot_view_item_tv.setText("");
+        } else if (holder instanceof AppViewHolder) {
+            AppViewHolder appViewHolder = (AppViewHolder) holder;
+            if (mList != null && mList.size() > 0) {
+                final AdData data = mList.get(position);
+                if (data != null) {
+                    appViewHolder.mTitleTv.setText(data.getName());
+                    String description = data.getDescription();
+                    if (TextUtils.isEmpty(description))
+                        description = data.getSign_description();
+                    if (TextUtils.isEmpty(description))
+                        description = "";
+                    appViewHolder.mDesTv.setText(description);
+                    if (!TextUtils.isEmpty(data.getLogo())) {
+                        Glide.with(mContext).load(data.getLogo()).into(appViewHolder.mIconIv);
+                    }
+                    appViewHolder.mRewardTv.setText("+" + data.getPrice());
+                    String size = data.getSize();
+                    if (size == null)
+                        size = " ";
+                    if (!isSign) {
+                        if (isAppInstalled(mContext, data.getPackage_name())) {
+                            appViewHolder.mDownloadTv.setText("继续体验");
+                        } else {
+                            appViewHolder.mDownloadTv.setText("立即下载");
+                        }
+                    } else {
+                        String todayTask = data.getDate();
+                        if (todayTask!=null && todayTask.equals(TimeStamp2Date(System.currentTimeMillis(), "yyyy-MM-dd"))) {
+                            if (isAppInstalled(mContext, data.getPackage_name())) {
+                                appViewHolder.mDownloadTv.setText("继续体验");
+                            } else {
+                                appViewHolder.mDownloadTv.setText("立即下载");
+                            }
+                            appViewHolder.mDownloadTv.setEnabled(true);
+                            appViewHolder.mDownloadTv.setBackgroundColor(Color.parseColor("#d12121"));
+                        } else {
+                            appViewHolder.mDownloadTv.setEnabled(false);
+                            appViewHolder.mDownloadTv.setText("时间还没到喔");
+                            appViewHolder.mDownloadTv.setBackgroundColor(Color.parseColor("#cccccc"));
+                        }
+                    }
+                    if (!TextUtils.isEmpty(data.getTodayTask())) {
+                        appViewHolder.mDateTv.setText(data.getTodayTask());
+                        appViewHolder.mDateTv.setVisibility(View.VISIBLE);
+                    } else {
+                        appViewHolder.mDateTv.setVisibility(View.GONE);
+                    }
+                    appViewHolder.mDownloadTv.setOnClickListener(new View.OnClickListener() {
+
+                        @Override
+                        public void onClick(View view) {
+                            /**
+                             * 签到任务传1,非签到任务传0
+                             */
+                            AdManager.getInstance(mContext).openOrDownLoadApps((Activity) mContext, data, isSign ? 1 : 0);
+                        }
+                    });
+                }
+            }
+        }
+    }
+
+    // 将Unix时间戳转变为日期,如调用TimeStampToDate("1252639886", "yyyy-MM-dd
+    // HH:mm:ss")返回值:2009-11-09 11:31:26
+
+    public static String TimeStamp2Date(Long timestamp, String formats) {
+        String date = "";
+        try {
+            date = new java.text.SimpleDateFormat(formats).format(new java.util.Date(timestamp));
+
+        } catch (NumberFormatException e) {
+
+        }
+        return date;
+    }
+    @Override
+    public int getItemViewType(int position) {
+        // 最后一个item设置为footerView
+        if (position + 1 == getItemCount()) {
+            return TYPE_FOOTER_LAYOUT;
+        } else {
+            return TYPE_APP_LAYOUT;
+        }
+    }
+
+    public static boolean isAppInstalled(Context context, String packageName) {
+        if (TextUtils.isEmpty(packageName))
+            return false;
+        try {
+            ApplicationInfo info = context.getPackageManager().getApplicationInfo(packageName,
+                    PackageManager.GET_UNINSTALLED_PACKAGES);
+            if (info == null) {
+                return false;
+            } else {
+                return true;
+            }
+        } catch (PackageManager.NameNotFoundException e) {
+            return false;
+        }
+    }
+
+    @Override
+    public int getItemCount() {
+        if (mList == null) return 1;
+        return mList.size() + 1;
+    }
+
+    class AppViewHolder extends android.support.v7.widget.RecyclerView.ViewHolder {
+
+        View view;
+        TextView mTitleTv;
+        TextView mDesTv;
+        ImageView mIconIv;
+        TextView mSizeIv;
+        TextView mRewardTv;
+        TextView mDateTv;
+        TextView mTagTv;
+        TextView mDownloadTv;
+
+        public AppViewHolder(View itemView) {
+            super(itemView);
+            view = itemView;
+
+            mTitleTv = (TextView) itemView.findViewById(R.id.tv_title);//标题
+            mDesTv = (TextView) itemView.findViewById(R.id.tv_des);//标题
+            mRewardTv = (TextView) itemView.findViewById(R.id.tv_reward);//标题
+            mSizeIv = (TextView) itemView.findViewById(R.id.tv_size);//标题
+            mDateTv = (TextView) itemView.findViewById(R.id.tv_date);//标题
+            mTagTv = (TextView) itemView.findViewById(R.id.tv_tag);//标题
+            mDownloadTv = (TextView) itemView.findViewById(R.id.tv_download);//标题
+            mIconIv = (ImageView) itemView.findViewById(R.id.iv_icon);//标题
+
+        }
+    }
+
+    /**
+     * 底部FootView布局
+     */
+    public static class FootViewHolder extends android.support.v7.widget.RecyclerView.ViewHolder {
+        private TextView foot_view_item_tv;
+
+        public FootViewHolder(View view) {
+            super(view);
+            foot_view_item_tv = (TextView) view;
+        }
+    }
+}

+ 19 - 1
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGameAccount.java

@@ -8,6 +8,7 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
 import android.widget.TextView;
 
 import com.kfzs.duanduan.adp.AdpCommonRecy;
@@ -42,6 +43,7 @@ import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_GAME_ACCOUNT_LOO
 public class AdpGameAccount extends AdpCommonRecy<RecyleObj> {
 
     private Context context;
+    private int width;
     public AdpGameAccount(Context context) {
         super(context);
         this.context = context;
@@ -102,13 +104,29 @@ public class AdpGameAccount extends AdpCommonRecy<RecyleObj> {
                 if(item == null){
                     return;
                 }
-                TextView account_tv = holder.itemView.findViewById(R.id.account_tv);
+                final TextView account_tv = holder.itemView.findViewById(R.id.account_tv);
                 TextView state_tv = holder.itemView.findViewById(R.id.state_tv);
                 TextView look_tv = holder.itemView.findViewById(R.id.look_tv);
                 View line_view = holder.itemView.findViewById(R.id.line_view);
                 LinearLayout delete_layout = holder.itemView.findViewById(R.id.delete_layout);
 
+
+
                 account_tv.setText("账号:"+ CommonUtil.getInstance().returnStarData(item.getAccount(), 4, 2, 3));
+
+                account_tv.postDelayed(new Runnable() {
+                    @Override
+                    public void run() {
+                        RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) account_tv.getLayoutParams();
+                        int widths = account_tv.getMeasuredWidth();
+                        if(widths > width){
+                            width = widths;
+                        }
+                        layoutParams.width = width;
+                        layoutParams.height = RelativeLayout.LayoutParams.WRAP_CONTENT;
+                        account_tv.setLayoutParams(layoutParams);
+                    }
+                }, 10);
                 state_tv.setText(item.getTypeName());
                 look_tv.setOnClickListener(new View.OnClickListener() {
                     @Override

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

@@ -9,6 +9,7 @@ import android.util.DisplayMetrics;
 import com.appsee.Appsee;
 import com.kfzs.duanduan.ActMain;
 import com.kfzs.duanduan.react.SharedPreferences;
+import com.mdad.sdk.mdsdk.AdManager;
 import com.sheep.gamegroup.di.components.DaggerNetComponent;
 import com.sheep.gamegroup.di.components.NetComponent;
 import com.sheep.gamegroup.di.modules.NetModule;

+ 36 - 0
app/src/main/res/layout/act_midong_layout.xml

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:orientation="vertical"
+    android:background="@color/gray_F5F5F5">
+
+    <include
+        layout="@layout/title"/>
+
+    <android.support.design.widget.TabLayout
+        android:id="@+id/indicator"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:tabBackground="@android:color/transparent"
+        app:tabIndicatorHeight="4dp"
+        app:tabGravity="center"
+        app:tabIndicatorColor="#4bc1fe"
+        app:tabPadding="2dp"
+        app:tabMode="fixed"
+        app:tabSelectedTextColor="#4bc1fe"
+        app:tabTextColor="#444444"
+        app:tabTextAppearance="@style/SheepTabLayoutTextAppearance"
+        />
+
+    <android.support.v4.view.ViewPager
+        android:id="@+id/pager"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1"
+        android:paddingRight="@dimen/content_padding_15"
+        android:paddingTop="@dimen/content_padding_15"
+        android:paddingLeft="@dimen/content_padding_15"/>
+
+</LinearLayout>

+ 1 - 1
app/src/main/res/layout/act_my_money.xml

@@ -212,7 +212,7 @@
         android:layout_marginEnd="@dimen/content_padding_10"
         android:layout_marginStart="@dimen/content_padding_10"
         android:background="@drawable/shape_main_solid_rectangle_small_top"
-        app:tabGravity="fill"
+        app:tabGravity="center"
         app:tabIndicatorColor="#4bc1fe"
         app:tabIndicatorHeight="0dp"
         app:tabMode="fixed"

+ 35 - 0
app/src/main/res/layout/net_empty_fresh_list_more.xml

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/bg_gray">
+
+    <include
+        android:id="@+id/title"
+        layout="@layout/title"/>
+
+    <include
+        android:id="@+id/check_net_ll"
+        layout="@layout/check_net_view"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/title"/>
+
+    <include
+        android:id="@+id/empty_view"
+        layout="@layout/empty_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_below="@+id/check_net_ll" />
+    <com.sheep.gamegroup.util.SheepSwipeRefreshLayout
+        android:id="@+id/refresh"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_below="@+id/check_net_ll" >
+        <android.support.v7.widget.RecyclerView
+            android:id="@+id/view_list"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_margin="@dimen/content_padding_10"/>
+    </com.sheep.gamegroup.util.SheepSwipeRefreshLayout>
+</RelativeLayout>

+ 107 - 0
app/src/main/res/layout/wall_list_item.xml

@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+    <TextView
+        android:id="@+id/tv_date"
+        android:layout_width="match_parent"
+        android:layout_height="34dp"
+        android:background="#e3e6e9"
+        android:gravity="center_vertical"
+        android:paddingLeft="14dp"
+        android:textColor="#333333" />
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="15dp">
+
+        <ImageView
+            android:id="@+id/iv_icon"
+            android:layout_width="44dp"
+            android:layout_height="44dp"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="14dp" />
+
+        <TextView
+            android:id="@+id/tv_title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignTop="@id/iv_icon"
+            android:layout_marginLeft="68dp"
+            android:maxLength="14"
+            android:textColor="#3a3a3a"
+            android:textSize="15sp"
+            android:textStyle="bold"
+            tools:text="今日头条" />
+
+        <TextView
+            android:id="@+id/tv_size"
+            android:layout_width="48dp"
+            android:layout_height="15dp"
+            android:layout_alignBottom="@id/iv_icon"
+            android:layout_marginLeft="68dp"
+            android:gravity="center"
+            android:textColor="#bfbfbf"
+            android:textSize="10sp"
+            android:visibility="gone"
+            tools:text="30M" />
+
+        <TextView
+            android:id="@+id/tv_tag"
+            android:layout_width="48dp"
+            android:layout_height="15dp"
+            android:layout_alignBottom="@id/iv_icon"
+            android:layout_marginLeft="68dp"
+            android:gravity="center"
+            android:textColor="#eda6a6"
+            android:textSize="10sp"
+            android:visibility="gone"
+            tools:text="签到任务" />
+
+        <TextView
+            android:id="@+id/tv_reward"
+            android:layout_width="48dp"
+            android:layout_height="15dp"
+            android:layout_alignBottom="@id/iv_icon"
+            android:layout_marginLeft="68dp"
+            android:gravity="center"
+            android:textColor="#eda6a6"
+            android:textSize="12sp"
+            tools:text="11111111" />
+
+        <TextView
+            android:id="@+id/tv_download"
+            android:layout_width="80dp"
+            android:layout_height="26dp"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginRight="14dp"
+            android:background="#d12121"
+            android:gravity="center"
+            android:textColor="#ffffff"
+            android:textSize="12sp" />
+    </RelativeLayout>
+
+    <TextView
+        android:id="@+id/tv_des"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="14dp"
+        android:layout_marginRight="14dp"
+        android:layout_marginTop="15dp"
+        android:ellipsize="end"
+        android:maxLines="2"
+        android:textColor="#666666"
+        android:textSize="13sp"
+        tools:text="啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1px"
+        android:layout_marginTop="12dp"
+        android:background="#ececec" />
+</LinearLayout>

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

@@ -55,4 +55,6 @@
     <string name="warm_prompt_content_notice">注意:用户若删除游戏后,系统自动检测让其下载安装游戏。</string>
     <string name="get_game_task_success_dialog">%1$s账号:%2$s \n  密码请在个人中心查看\n  注意:登陆后请及时修改密码哟</string>
 
+
+    <string name="accessibility_description">需要权限判断任务是否成功</string>
 </resources>

+ 7 - 0
app/src/main/res/xml/accessibility_config.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
+    android:description="@string/accessibility_description"
+    android:accessibilityEventTypes="typeWindowStateChanged"
+    android:accessibilityFeedbackType="feedbackGeneric"
+    android:accessibilityFlags="flagIncludeNotImportantViews"
+    />