Ver código fonte

1、添加友盟
2、提交一些新增的界面和代码

liujiangyao 8 anos atrás
pai
commit
acbc7be8b5
55 arquivos alterados com 2148 adições e 55 exclusões
  1. 1 1
      .idea/misc.xml
  2. 21 9
      app/build.gradle
  3. 2 0
      app/proguard-rules.pro
  4. 13 1
      app/src/main/AndroidManifest.xml
  5. 16 0
      app/src/main/java/com/sheep/gamegroup/di/components/LoginComponent.java
  6. 17 0
      app/src/main/java/com/sheep/gamegroup/di/components/PersonalCenterComponent.java
  7. 22 0
      app/src/main/java/com/sheep/gamegroup/di/modules/LoginModule.java
  8. 24 0
      app/src/main/java/com/sheep/gamegroup/di/modules/PersonalCenterModule.java
  9. 16 0
      app/src/main/java/com/sheep/gamegroup/presenter/LoginContract.java
  10. 20 0
      app/src/main/java/com/sheep/gamegroup/presenter/LoginPresenter.java
  11. 16 0
      app/src/main/java/com/sheep/gamegroup/presenter/PersonalCenterContract.java
  12. 20 0
      app/src/main/java/com/sheep/gamegroup/presenter/PersonalCenterPresenter.java
  13. 97 0
      app/src/main/java/com/sheep/gamegroup/util/ActivityManager.java
  14. 75 8
      app/src/main/java/com/sheep/gamegroup/view/activity/LoginAct.java
  15. 87 0
      app/src/main/java/com/sheep/gamegroup/view/activity/PersonalCenterAct.java
  16. 124 9
      app/src/main/java/com/sheep/gamegroup/view/activity/SplashAct.java
  17. 30 0
      app/src/main/java/com/sheep/gamegroup/view/activity/TryMakeMoneyact.java
  18. 374 0
      app/src/main/java/com/sheep/gamegroup/view/customview/FlikerProgressBar.java
  19. 258 0
      app/src/main/java/com/sheep/gamegroup/view/customview/SProgress.java
  20. 66 0
      app/src/main/java/com/sheep/gamegroup/view/customview/TextProgressBar.java
  21. 29 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java
  22. 5 2
      app/src/main/java/com/sheep/jiuyan/samllsheep/adapter/DownListAdapter.java
  23. 38 13
      app/src/main/java/com/sheep/jiuyan/samllsheep/wxapi/WXEntryActivity.java
  24. 6 0
      app/src/main/res/drawable/login_bg_tv_selector.xml
  25. 14 0
      app/src/main/res/drawable/sp_bg_gradient_rectqangle_yellow.xml
  26. 13 0
      app/src/main/res/drawable/sp_bg_transparency_line_thite_radius_top.xml
  27. 10 0
      app/src/main/res/drawable/sp_bg_transparency_line_white.xml
  28. 8 0
      app/src/main/res/drawable/sp_bg_yellow.xml
  29. 13 0
      app/src/main/res/drawable/sp_rectangle_bg_transparency_line_yellow.xml
  30. 10 0
      app/src/main/res/drawable/sp_rectangle_bg_white_radius.xml
  31. 96 0
      app/src/main/res/layout/bind_phone_number_act_layout.xml
  32. 89 0
      app/src/main/res/layout/dowanload_item_dialog.xml
  33. 36 0
      app/src/main/res/layout/dowload_item_dialog.xml
  34. 18 3
      app/src/main/res/layout/down_item.xml
  35. 11 9
      app/src/main/res/layout/login_act_layout.xml
  36. 38 0
      app/src/main/res/layout/personalcenter_act_item.xml
  37. 196 0
      app/src/main/res/layout/personalcenter_act_layout.xml
  38. 16 0
      app/src/main/res/layout/try_makemoney_act_layout.xml
  39. 53 0
      app/src/main/res/layout/try_makemoney_item.xml
  40. 40 0
      app/src/main/res/layout/withdrawal_layout.xml
  41. 32 0
      app/src/main/res/layout/withdrawal_no_weixin_layout.xml
  42. BIN
      app/src/main/res/mipmap-xhdpi/flicker.png
  43. BIN
      app/src/main/res/mipmap-xhdpi/flicker_1.png
  44. BIN
      app/src/main/res/mipmap-xhdpi/left_arrow_img.png
  45. BIN
      app/src/main/res/mipmap-xhdpi/money_yang_img.png
  46. BIN
      app/src/main/res/mipmap-xhdpi/personalcenter_img.png
  47. BIN
      app/src/main/res/mipmap-xhdpi/task_write_img.png
  48. BIN
      app/src/main/res/mipmap-xxhdpi/left_arrow_img.png
  49. BIN
      app/src/main/res/mipmap-xxhdpi/personalcenter_img.png
  50. BIN
      app/src/main/res/mipmap-xxhdpi/task_write_img.png
  51. 23 0
      app/src/main/res/values/attrs.xml
  52. 6 0
      app/src/main/res/values/common.xml
  53. 13 0
      app/src/main/res/values/gamegroup_color.xml
  54. 35 0
      app/src/main/res/values/gamegroup_styles.xml
  55. 1 0
      app/src/main/res/values/strings.xml

+ 1 - 1
.idea/misc.xml

@@ -30,7 +30,7 @@
   <component name="ProjectPlainTextFileTypeManager">
     <file url="file://$PROJECT_DIR$/app/src/main/assets/poster.html" />
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">

+ 21 - 9
app/build.gradle

@@ -3,18 +3,25 @@ apply plugin: 'com.jakewharton.butterknife'
 
 
 android {
-    compileSdkVersion 26
-//    buildToolsVersion '27.0.2'
+    compileSdkVersion 27
+    buildToolsVersion '27.0.2'
     defaultConfig {
         applicationId "com.sheep.jiuyan.samllsheep"
         minSdkVersion 18
-        targetSdkVersion 26
+        targetSdkVersion 27
         versionCode 101001
         versionName "1.1.1"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
         ndk {
             abiFilters 'armeabi' , 'x86'//, 'armeabi-v7a', 'x86_64', 'arm64-v8a'
         }
+        jackOptions {
+            enabled true
+        }
+    }
+    compileOptions{
+        sourceCompatibility org.gradle.api.JavaVersion.VERSION_1_8
+        targetCompatibility org.gradle.api.JavaVersion.VERSION_1_8
     }
     signingConfigs {
         config {
@@ -35,7 +42,6 @@ android {
             signingConfig signingConfigs.config
         }
     }
-    buildToolsVersion '26.0.2'
 }
 
 repositories {
@@ -50,9 +56,9 @@ dependencies {
     //    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
     //        exclude group: 'com.android.support', module: 'support-annotations'
     //    })
-    compile 'com.android.support:appcompat-v7:26.0.2'
-    compile 'com.android.support:support-v4:26.0.2'
-    compile 'com.android.support:design:26.0.2'
+    compile 'com.android.support:appcompat-v7:27.0.2'
+    compile 'com.android.support:support-v4:27.0.2'
+    compile 'com.android.support:design:27.0.2'
     compile 'com.android.support.constraint:constraint-layout:1.0.2'
     testCompile 'junit:junit:4.12'
     //    compile 'com.shark:screencapture:1.0.0'
@@ -79,9 +85,11 @@ dependencies {
     compile 'com.jakewharton:butterknife:+'
     annotationProcessor 'com.jakewharton:butterknife-compiler:+'
     //dragger2
-    compile 'com.google.dagger:dagger:+'
-    compile 'com.google.dagger:dagger-compiler:+'
+//    compile 'com.google.dagger:dagger:+'
+//    compile 'com.google.dagger:dagger-compiler:+'
     provided 'org.glassfish:javax.annotation:+'
+    compile 'com.google.dagger:dagger:2.12'
+    annotationProcessor 'com.google.dagger:dagger-compiler:2.12'
     //retrofit
     compile 'com.squareup.retrofit2:retrofit:+'
     compile 'com.squareup.retrofit2:converter-gson:+'
@@ -97,4 +105,8 @@ dependencies {
     compile 'net.danlew:android.joda:2.9.3'
     compile 'com.orhanobut:logger:1.15'
 
+    //友盟
+    compile 'com.umeng.sdk:common:latest.integration'
+    compile 'com.umeng.sdk:analytics:latest.integration'
+
 }

+ 2 - 0
app/proguard-rules.pro

@@ -37,6 +37,8 @@
 -dontwarn com.tencent.bugly.**
 -keep public class com.tencent.bugly.**{*;}
 -keep class android.support.**{*;}
+#友盟
+-keep class com.umeng.commonsdk.** {*;}
 
 #指定代码的压缩级别
 -optimizationpasses 5

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

@@ -31,6 +31,11 @@
     <uses-permission android:name="android.permission.READ_LOGS" />
     <!--保存资源到SD卡-->
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <!-- 推荐的权限 -->
+    <!-- 添加如下权限,以便使用更多的第三方SDK和更精准的统计数据 -->
+    <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" />
 
     <permission
         android:name="android.permission.PACKAGE_USAGE_STATS"
@@ -178,7 +183,9 @@
                 <category android:name="android.intent.category.LAUNCHER"/>
             </intent-filter>
         </activity>
-        <activity android:name="com.sheep.gamegroup.view.activity.SplashAct" />
+
+        <!--2.0-->
+        <activity android:name="com.sheep.gamegroup.view.activity.LoginAct"/>
 
         <service android:name=".service.TopService"
                  android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
@@ -191,6 +198,11 @@
                 android:resource="@xml/accessibility"
                 />
         </service>
+
+        <!--友盟start-->
+        <meta-data android:value="xx" android:name="UMENG_APPKEY"/>
+        <meta-data android:value="xxx" android:name="UMENG_CHANNEL"/>
+        <!--友盟end-->
     </application>
 
 

+ 16 - 0
app/src/main/java/com/sheep/gamegroup/di/components/LoginComponent.java

@@ -0,0 +1,16 @@
+package com.sheep.gamegroup.di.components;
+
+import com.sheep.gamegroup.di.modules.LoginModule;
+import com.sheep.gamegroup.di.scopes.UserScope;
+import com.sheep.gamegroup.view.activity.LoginAct;
+
+import dagger.Component;
+
+/**
+ * Created by Administrator on 2018/3/10.
+ */
+@UserScope
+@Component(modules = LoginModule.class, dependencies = NetComponent.class)
+public interface LoginComponent {
+    void inject(LoginAct loginAct);
+}

+ 17 - 0
app/src/main/java/com/sheep/gamegroup/di/components/PersonalCenterComponent.java

@@ -0,0 +1,17 @@
+package com.sheep.gamegroup.di.components;
+
+import com.sheep.gamegroup.di.modules.PersonalCenterModule;
+import com.sheep.gamegroup.di.scopes.UserScope;
+import com.sheep.gamegroup.view.activity.PersonalCenterAct;
+
+
+import dagger.Component;
+
+/**
+ * Created by ljy on 2018/3/10.
+ */
+@UserScope
+@Component(modules = PersonalCenterModule.class,dependencies = NetComponent.class)
+public interface PersonalCenterComponent {
+    void inject(PersonalCenterAct personalCenterAct);
+}

+ 22 - 0
app/src/main/java/com/sheep/gamegroup/di/modules/LoginModule.java

@@ -0,0 +1,22 @@
+package com.sheep.gamegroup.di.modules;
+
+import com.sheep.gamegroup.presenter.LoginContract;
+
+import dagger.Module;
+import dagger.Provides;
+
+/**
+ * Created by Administrator on 2018/3/10.
+ */
+@Module
+public class LoginModule {
+    private LoginContract.View view;
+
+    public LoginModule(LoginContract.View view) {
+        this.view = view;
+    }
+    @Provides
+    public LoginContract.View provideView(){
+        return view;
+    }
+}

+ 24 - 0
app/src/main/java/com/sheep/gamegroup/di/modules/PersonalCenterModule.java

@@ -0,0 +1,24 @@
+package com.sheep.gamegroup.di.modules;
+
+import com.sheep.gamegroup.presenter.PersonalCenterContract;
+
+import javax.inject.Inject;
+
+import dagger.Module;
+import dagger.Provides;
+
+/**
+ * Created by ljy on 2018/3/10.
+ */
+@Module
+public class PersonalCenterModule {
+    private PersonalCenterContract.View view;
+
+    public PersonalCenterModule(PersonalCenterContract.View view) {
+        this.view = view;
+    }
+    @Provides
+    public PersonalCenterContract.View provideView(){
+        return view;
+    }
+}

+ 16 - 0
app/src/main/java/com/sheep/gamegroup/presenter/LoginContract.java

@@ -0,0 +1,16 @@
+package com.sheep.gamegroup.presenter;
+
+/**
+ * Created by Administrator on 2018/3/10.
+ */
+
+public interface LoginContract {
+
+    interface Presenter{
+
+    }
+
+    interface View{
+
+    }
+}

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

@@ -0,0 +1,20 @@
+package com.sheep.gamegroup.presenter;
+
+import com.sheep.gamegroup.model.api.ApiService;
+
+import javax.inject.Inject;
+
+/**
+ * Created by Administrator on 2018/3/10.
+ */
+
+public class LoginPresenter implements LoginContract.Presenter {
+    private LoginContract.View view;
+    private ApiService apiService;
+
+    @Inject
+    public LoginPresenter(LoginContract.View view, ApiService apiService) {
+        this.view = view;
+        this.apiService = apiService;
+    }
+}

+ 16 - 0
app/src/main/java/com/sheep/gamegroup/presenter/PersonalCenterContract.java

@@ -0,0 +1,16 @@
+package com.sheep.gamegroup.presenter;
+
+/**
+ * Created by ljy on 2018/3/10.
+ */
+
+public interface PersonalCenterContract {
+
+    interface Persenter{
+
+    }
+
+    interface View {
+
+    }
+}

+ 20 - 0
app/src/main/java/com/sheep/gamegroup/presenter/PersonalCenterPresenter.java

@@ -0,0 +1,20 @@
+package com.sheep.gamegroup.presenter;
+
+import com.sheep.gamegroup.model.api.ApiService;
+
+import javax.inject.Inject;
+
+/**
+ * Created by ljy on 2018/3/10.
+ */
+
+public class PersonalCenterPresenter implements PersonalCenterContract.Persenter {
+    private PersonalCenterContract.View view;
+    private ApiService apiService;
+
+    @Inject
+    public PersonalCenterPresenter(PersonalCenterContract.View view, ApiService apiService) {
+        this.view = view;
+        this.apiService = apiService;
+    }
+}

+ 97 - 0
app/src/main/java/com/sheep/gamegroup/util/ActivityManager.java

@@ -0,0 +1,97 @@
+package com.sheep.gamegroup.util;
+
+import android.app.Activity;
+
+import java.util.Stack;
+
+/**
+ * Created by ljy on 2018/3/12.
+ */
+
+public class ActivityManager {
+    /**
+     * activity的Stack
+     */
+    private static Stack<Activity> activityStack = new Stack<>();
+    private static ActivityManager activityManager;
+
+    public static ActivityManager getInstance(){
+        if(activityManager == null)
+            activityManager = new ActivityManager();
+        return activityManager;
+    }
+    /**
+     * 将activity移除stack
+     */
+    public void popActivity(Activity activity){
+        if (activity != null){
+            activityStack.remove(activity);
+        }
+    }
+    /**
+     * 结束制定activity
+     */
+    public void endActivity(Activity activity){
+        if(activity != null){
+            activity.finish();
+            activityStack.remove(activity);
+            activity = null;
+        }
+    }
+    /**
+     * 活的当前的activity(即最上层)
+     */
+    public Activity currentActivity(){
+        Activity activity = null;
+        if(!activityStack.empty()){
+            activity = activityStack.lastElement();
+        }
+        return activity;
+    }
+    /**
+     * 讲activity 推入栈内
+     */
+    public void pushActivity(Activity activity){
+        if (activityStack == null) {
+            activityStack = new Stack<>();
+        }
+        activityStack.add(activity);
+    }
+    /**
+     * 弹出class外的所有activity
+     */
+    public void popAllActivityExceptThis(Class<? extends Activity> cls){
+        while (true){
+            Activity activity = currentActivity();
+            if (activity == null) {
+                break;
+            }
+            if (activity.getClass().equals(cls)){
+                break;
+            }
+            popActivity(activity);
+        }
+    }
+    /**
+     * 结束除cls之外的所有activity,将执行结果都会清空stack
+     */
+    public void finishAllActivityExceptThis(Class<? extends Activity> cls){
+        while (!activityStack.empty()) {
+            Activity activity = currentActivity();
+            if(activity.getClass().equals(cls)){
+                popActivity(activity);
+            }else {
+                endActivity(activity);
+            }
+        }
+    }
+    /**
+     * 结束所有activity
+     */
+    public void finishAllActivity(){
+        while (!activityStack.empty()){
+            Activity activity = currentActivity();
+                endActivity(activity);
+        }
+    }
+}

+ 75 - 8
app/src/main/java/com/sheep/gamegroup/view/activity/LoginAct.java

@@ -1,19 +1,32 @@
 package com.sheep.gamegroup.view.activity;
 
+import android.app.Activity;
+import android.content.Intent;
+import android.content.res.Resources;
 import android.os.Bundle;
+import android.view.View;
 import android.widget.TextView;
 
+import com.sheep.gamegroup.di.components.DaggerLoginComponent;
+import com.sheep.gamegroup.di.components.LoginComponent;
+import com.sheep.gamegroup.di.modules.LoginModule;
+import com.sheep.gamegroup.presenter.LoginContract;
 import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.BaseActivity;
+import com.sheep.jiuyan.samllsheep.page.MainActivity;
+import com.sheep.jiuyan.samllsheep.wxapi.WXEntryActivity;
 
 import butterknife.BindView;
 import butterknife.ButterKnife;
+import butterknife.OnClick;
 
 /**
- * Created by Administrator on 2018/3/8.
+ * Created by ljy on 2018/3/8.
  */
 
-public class LoginAct extends BaseActivity {
+public class LoginAct extends BaseActivity implements LoginContract.View{
+    Activity activity;
     @BindView(R.id.weixin_login_tv)
     TextView weixinLoginTv;
     @BindView(R.id.tel_login_tv)
@@ -26,7 +39,14 @@ public class LoginAct extends BaseActivity {
 
     @Override
     public void initView() {
-
+        activity = this;
+        DaggerLoginComponent.builder()
+                .netComponent(SheepApp.get(this).getNetComponent())
+                .loginModule(new LoginModule(this))
+                .build()
+        .inject(this);
+        ButterKnife.bind(this);
+        setTvBg(R.id.weixin_login_tv);
     }
 
     @Override
@@ -39,10 +59,57 @@ public class LoginAct extends BaseActivity {
 
     }
 
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        // TODO: add setContentView(...) invocation
-        ButterKnife.bind(this);
+
+    @OnClick({R.id.weixin_login_tv, R.id.tel_login_tv})
+    public void onViewClicked(View view) {
+
+        setTvBg(view.getId());
+        switch (view.getId()) {
+            case R.id.weixin_login_tv:
+                goWeixin();
+                break;
+            case R.id.tel_login_tv:
+                goTelLogin();
+                break;
+        }
+    }
+
+    private void goTelLogin() {
+        Intent intent = new Intent(activity, WXEntryActivity.class);
+        startActivity(intent);
+//        finish();
+    }
+
+    private void goWeixin() {
+        Intent intent = new Intent(activity, WXEntryActivity.class);
+        startActivity(intent);
+//        finish();
+    }
+
+    /**
+     * 设置按钮背景
+     */
+    private void setTvBg(int select){
+        switch (select){
+            case R.id.weixin_login_tv:
+                weixinLoginTv.setBackgroundResource(R.drawable.sp_bg_transparency_line_white);
+                weixinLoginTv.setTextColor(getResources().getColor(R.color.white));
+                telLoginTv.setBackgroundColor(getResources().getColor(R.color.transparent));
+                telLoginTv.setTextColor(getResources().getColor(R.color.grgray));
+                break;
+            case R.id.tel_login_tv:
+                telLoginTv.setBackgroundResource(R.drawable.sp_bg_transparency_line_white);
+                telLoginTv.setTextColor(getResources().getColor(R.color.white));
+                weixinLoginTv.setBackgroundColor(getResources().getColor(R.color.transparent));
+                weixinLoginTv.setTextColor(getResources().getColor(R.color.grgray));
+                break;
+            default:
+                weixinLoginTv.setBackgroundResource(R.drawable.sp_bg_transparency_line_white);
+                weixinLoginTv.setTextColor(getResources().getColor(R.color.white));
+                telLoginTv.setBackgroundColor(getResources().getColor(R.color.transparent));
+                telLoginTv.setTextColor(getResources().getColor(R.color.grgray));
+                break;
+        }
+
     }
 }

+ 87 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/PersonalCenterAct.java

@@ -0,0 +1,87 @@
+package com.sheep.gamegroup.view.activity;
+
+import android.os.Bundle;
+import android.view.View;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.sheep.gamegroup.di.components.DaggerPersonalCenterComponent;
+import com.sheep.gamegroup.di.modules.PersonalCenterModule;
+import com.sheep.gamegroup.presenter.PersonalCenterContract;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.base.BaseActivity;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+
+/**
+ * Created by ljy on 2018/3/10.
+ */
+
+public class PersonalCenterAct extends BaseActivity implements PersonalCenterContract.View{
+    @BindView(R.id.my_price)
+    TextView myPrice;
+    @BindView(R.id.my_all_price)
+    TextView myAllPrice;
+    @BindView(R.id.withdrawal)
+    TextView withdrawal;
+    @BindView(R.id.account_safe_layout)
+    RelativeLayout accountSafeLayout;
+    @BindView(R.id.account_task_layout)
+    RelativeLayout accountTaskLayout;
+    @BindView(R.id.account_detail_layout)
+    RelativeLayout accountDetailLayout;
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.personalcenter_act_layout;
+    }
+
+    @Override
+    public void initView() {
+
+        DaggerPersonalCenterComponent.builder()
+                .netComponent(SheepApp.get(this).getNetComponent())
+                .personalCenterModule(new PersonalCenterModule(this))
+                .build()
+                .inject(this);
+
+    }
+
+    @Override
+    public void initListener() {
+
+    }
+
+    @Override
+    public void initData() {
+
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        // TODO: add setContentView(...) invocation
+        ButterKnife.bind(this);
+    }
+
+    @OnClick({R.id.my_price, R.id.my_all_price, R.id.withdrawal, R.id.account_safe_layout, R.id.account_task_layout, R.id.account_detail_layout})
+    public void onViewClicked(View view) {
+        switch (view.getId()) {
+            case R.id.my_price:
+                break;
+            case R.id.my_all_price:
+                break;
+            case R.id.withdrawal:
+                break;
+            case R.id.account_safe_layout:
+                break;
+            case R.id.account_task_layout:
+                break;
+            case R.id.account_detail_layout:
+                break;
+        }
+    }
+}

+ 124 - 9
app/src/main/java/com/sheep/gamegroup/view/activity/SplashAct.java

@@ -1,32 +1,48 @@
 package com.sheep.gamegroup.view.activity;
 
 import android.Manifest;
+import android.animation.Animator;
+import android.animation.ObjectAnimator;
 import android.app.Activity;
+import android.content.DialogInterface;
 import android.content.Intent;
+import android.net.Uri;
 import android.os.Bundle;
+import android.provider.Settings;
 import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import android.support.v7.app.AlertDialog;
 import android.text.TextUtils;
+import android.view.View;
+import android.widget.TextView;
 
+import com.sheep.gamegroup.di.components.DaggerSplashComponent;
+import com.sheep.gamegroup.di.modules.SplashModule;
 import com.sheep.gamegroup.presenter.SplashContract;
 import com.sheep.gamegroup.presenter.SplashPresenter;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.BaseActivity;
 import com.sheep.jiuyan.samllsheep.page.LoginActivity;
 import com.sheep.jiuyan.samllsheep.page.MainActivity;
-import com.sheep.jiuyan.samllsheep.page.SplashActivity;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
 import java.util.List;
 
 import javax.inject.Inject;
 
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+import pub.devrel.easypermissions.AfterPermissionGranted;
 import pub.devrel.easypermissions.EasyPermissions;
 
 /**
  * Created by ljy on 2018/3/9.
  */
 
-public class SplashAct extends BaseActivity implements SplashContract.View, EasyPermissions.PermissionCallbacks{
+public class SplashAct extends BaseActivity implements SplashContract.View, EasyPermissions.PermissionCallbacks {
+    @BindView(R.id.btn_join)
+    TextView btnJoin;
     private Activity activity;
 
     @Inject
@@ -43,19 +59,34 @@ public class SplashAct extends BaseActivity implements SplashContract.View, Easy
     };
 
     @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
+    protected void onStart() {
+        super.onStart();
+        requestCodePermissions();
+    }
 
+    @AfterPermissionGranted(PERMISSON_REQUESTCODE)
+    private void requestCodePermissions() {
+        if (!EasyPermissions.hasPermissions(this, needPermissions)) {
+            EasyPermissions.requestPermissions(this, "应用需要这些权限", PERMISSON_REQUESTCODE, needPermissions);
+        } else {
+//            setContentView(R.layout.splash_activity);
+            animWelcomeImage();
+        }
     }
 
     @Override
     protected int getLayoutId() {
-        return 0;
+        return R.layout.splash_activity;
     }
 
     @Override
     public void initView() {
 
+        DaggerSplashComponent.builder()
+                .netComponent(SheepApp.get(this).getNetComponent())
+                .splashModule(new SplashModule(this))
+                .build().inject(this);
+        activity = this;
     }
 
     @Override
@@ -70,25 +101,109 @@ public class SplashAct extends BaseActivity implements SplashContract.View, Easy
 
     @Override
     public void onPermissionsGranted(int i, @NonNull List<String> list) {
-
+        recreate();
     }
 
     @Override
     public void onPermissionsDenied(int i, @NonNull List<String> list) {
+        showMissingPermissionDialog();
+    }
+
+    private void showMissingPermissionDialog() {
+        AlertDialog.Builder builder = new AlertDialog.Builder(this);
+        builder.setTitle("提示");
+        builder.setMessage("当前应用缺少必要权限。请点击\"设置\"-\"权限\"-打开所需权限。");
+
+        // 拒绝, 退出应用
+        builder.setNegativeButton("取消",
+                new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        finish();
+                    }
+                });
+
+        builder.setPositiveButton("设置",
+                new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        startAppSettings();
+                    }
+                });
+
+        builder.setCancelable(false);
+
+        builder.show();
+    }
 
+    /**
+     * 启动应用的设置
+     */
+    private void startAppSettings() {
+        Intent intent = new Intent(
+                Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+        intent.setData(Uri.parse("package:" + getPackageName()));
+        startActivity(intent);
     }
 
-    private  void  goMain(){
+    private void goMain() {
         String openId = SpUtils.getOpenId(getApplicationContext());
         if (!TextUtils.isEmpty(openId)) {
             Intent intent = new Intent(activity, MainActivity.class);
             startActivity(intent);
             finish();
         } else {
-            Intent intent = new Intent(activity, LoginActivity.class);
+            Intent intent = new Intent(activity, LoginAct.class);
             startActivity(intent);
             finish();
         }
 
     }
+
+    private void animWelcomeImage() {
+        ObjectAnimator animator = ObjectAnimator.ofFloat(null, "translationX", -100F);
+        animator.setDuration(1500L).start();
+        animator.addListener(new Animator.AnimatorListener() {
+            @Override
+            public void onAnimationStart(Animator animation) {
+
+            }
+
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                goMain();
+            }
+
+            @Override
+            public void onAnimationCancel(Animator animation) {
+
+            }
+
+            @Override
+            public void onAnimationRepeat(Animator animation) {
+
+            }
+        });
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        // TODO: add setContentView(...) invocation
+        ButterKnife.bind(this);
+    }
+
+    @OnClick(R.id.btn_join)
+    public void onViewClicked(View view) {
+        switch (view.getId()){
+            case R.id.btn_join:
+                goMain();
+                break;
+        }
+    }
 }

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

@@ -0,0 +1,30 @@
+package com.sheep.gamegroup.view.activity;
+
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.base.BaseActivity;
+
+/**
+ * Created by ljy on 2018/3/10.
+ */
+
+public class TryMakeMoneyact extends BaseActivity {
+    @Override
+    protected int getLayoutId() {
+        return R.layout.try_makemoney_act_layout;
+    }
+
+    @Override
+    public void initView() {
+
+    }
+
+    @Override
+    public void initListener() {
+
+    }
+
+    @Override
+    public void initData() {
+
+    }
+}

+ 374 - 0
app/src/main/java/com/sheep/gamegroup/view/customview/FlikerProgressBar.java

@@ -0,0 +1,374 @@
+package com.sheep.gamegroup.view.customview;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.BitmapShader;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffXfermode;
+import android.graphics.Rect;
+import android.graphics.RectF;
+import android.graphics.Shader;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+
+import com.sheep.jiuyan.samllsheep.R;
+
+/**
+ * Created by chenliu on 2016/8/26.<br/>
+ * 描述:添加圆角支持 on 2016/11/11
+ * </br>
+ */
+public class FlikerProgressBar extends View implements Runnable{
+    private PorterDuffXfermode xfermode = new PorterDuffXfermode(PorterDuff.Mode.SRC_ATOP);
+
+    private int DEFAULT_HEIGHT_DP = 35;
+
+    private int borderWidth;
+
+    private float maxProgress = 100f;
+
+    private Paint textPaint;
+
+    private Paint bgPaint;
+
+    private Paint pgPaint;
+
+    private String progressText;
+
+    private Rect textRect;
+
+    private RectF bgRectf;
+
+    /**
+     * 左右来回移动的滑块
+     */
+    private Bitmap flikerBitmap;
+
+    /**
+     * 滑块移动最左边位置,作用是控制移动
+     */
+    private float flickerLeft;
+
+    /**
+     * 进度条 bitmap ,包含滑块
+     */
+    private Bitmap pgBitmap;
+
+    private Canvas pgCanvas;
+
+    /**
+     * 当前进度
+     */
+    private float progress;
+
+    private boolean isFinish;
+
+    private boolean isStop;
+
+    /**
+     * 下载中颜色
+     */
+    private int loadingColor;
+
+    /**
+     * 暂停时颜色
+     */
+    private int stopColor;
+
+    /**
+     * 进度文本、边框、进度条颜色
+     */
+    private int progressColor;
+
+    private int textSize;
+
+    private int radius;
+
+    private Thread thread;
+
+    BitmapShader bitmapShader;
+
+    public FlikerProgressBar(Context context) {
+        this(context, null, 0);
+    }
+
+    public FlikerProgressBar(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public FlikerProgressBar(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        initAttrs(attrs);
+    }
+
+    private void initAttrs(AttributeSet attrs) {
+        TypedArray ta = getContext().obtainStyledAttributes(attrs, R.styleable.FlikerProgressBar);
+        try {
+            textSize = (int) ta.getDimension(R.styleable.FlikerProgressBar_textSize, 12);
+            loadingColor = ta.getColor(R.styleable.FlikerProgressBar_loadingColor, Color.parseColor("#40c4ff"));
+            stopColor = ta.getColor(R.styleable.FlikerProgressBar_stopColor, Color.parseColor("#ff9800"));
+            radius = (int) ta.getDimension(R.styleable.FlikerProgressBar_radius, 0);
+            borderWidth = (int) ta.getDimension(R.styleable.FlikerProgressBar_borderWidth, 1);
+        } finally {
+            ta.recycle();
+        }
+    }
+
+    private void init() {
+        bgPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.DITHER_FLAG);
+        bgPaint.setStyle(Paint.Style.STROKE);
+        bgPaint.setStrokeWidth(borderWidth);
+
+        pgPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+        pgPaint.setStyle(Paint.Style.FILL);
+
+        textPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+        textPaint.setTextSize(textSize);
+
+        textRect = new Rect();
+        bgRectf = new RectF(borderWidth, borderWidth, getMeasuredWidth() - borderWidth, getMeasuredHeight() - borderWidth);
+
+        if(isStop){
+            progressColor = stopColor;
+        } else{
+            progressColor = loadingColor;
+        }
+
+        flikerBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.flicker);
+        flickerLeft = -flikerBitmap.getWidth();
+
+        initPgBimap();
+    }
+
+    private void initPgBimap() {
+        Log.e("getMeasuredWidth()-----","getMeasuredWidth():"+getMeasuredWidth()+"borderWidth:"+borderWidth);
+        Log.e("getMeasuredHeight()----","getMeasuredHeight():"+getMeasuredHeight()+"borderWidth:"+borderWidth);
+        pgBitmap = Bitmap.createBitmap(getMeasuredWidth() - borderWidth, getMeasuredHeight()==0?getMeasuredWidth():getMeasuredHeight() - borderWidth, Bitmap.Config.ARGB_8888);
+        pgCanvas = new Canvas(pgBitmap);
+        thread = new Thread(this);
+        thread.start();
+    }
+
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+        int widthSpecSize = MeasureSpec.getSize(widthMeasureSpec);
+        int heightSpecMode = MeasureSpec.getMode(heightMeasureSpec);
+        int heightSpecSize = MeasureSpec.getSize(heightMeasureSpec);
+        int height = 0;
+        switch (heightSpecMode){
+            case MeasureSpec.AT_MOST:
+                height = dp2px(DEFAULT_HEIGHT_DP);
+                break;
+            case MeasureSpec.EXACTLY:
+            case MeasureSpec.UNSPECIFIED:
+                height = heightSpecSize;
+                break;
+        }
+        setMeasuredDimension(widthSpecSize, height);
+
+        if(pgBitmap == null){
+            init();
+        }
+
+    }
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        super.onDraw(canvas);
+
+        //背景
+        drawBackGround(canvas);
+
+        //进度
+        drawProgress(canvas);
+
+         //进度text
+        drawProgressText(canvas);
+
+        //变色处理
+        drawColorProgressText(canvas);
+    }
+
+    /**
+     * 边框
+     * @param canvas
+     */
+    private void drawBackGround(Canvas canvas) {
+        bgPaint.setColor(progressColor);
+        //left、top、right、bottom不要贴着控件边,否则border只有一半绘制在控件内,导致圆角处线条显粗
+        canvas.drawRoundRect(bgRectf, radius, radius, bgPaint);
+    }
+
+    /**
+     * 进度
+     */
+    private void drawProgress(Canvas canvas) {
+        pgPaint.setColor(progressColor);
+
+        float right = (progress / maxProgress) * getMeasuredWidth();
+        pgCanvas.save(Canvas.CLIP_SAVE_FLAG);
+        pgCanvas.clipRect(0, 0, right, getMeasuredHeight());
+        pgCanvas.drawColor(progressColor);
+        pgCanvas.restore();
+
+        if(!isStop){
+            pgPaint.setXfermode(xfermode);
+            pgCanvas.drawBitmap(flikerBitmap, flickerLeft, 0, pgPaint);
+            pgPaint.setXfermode(null);
+        }
+
+        //控制显示区域
+        bitmapShader = new BitmapShader(pgBitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
+        pgPaint.setShader(bitmapShader);
+        canvas.drawRoundRect(bgRectf, radius, radius, pgPaint);
+    }
+
+    /**
+     * 进度提示文本
+     * @param canvas
+     */
+    private void drawProgressText(Canvas canvas) {
+        textPaint.setColor(progressColor);
+        progressText = getProgressText();
+        textPaint.getTextBounds(progressText, 0, progressText.length(), textRect);
+        int tWidth = textRect.width();
+        int tHeight = textRect.height();
+        float xCoordinate = (getMeasuredWidth() - tWidth) / 2;
+        float yCoordinate = (getMeasuredHeight() + tHeight) / 2;
+        canvas.drawText(progressText, xCoordinate, yCoordinate, textPaint);
+    }
+
+    /**
+     * 变色处理
+     * @param canvas
+     */
+    private void drawColorProgressText(Canvas canvas) {
+        textPaint.setColor(Color.WHITE);
+        int tWidth = textRect.width();
+        int tHeight = textRect.height();
+        float xCoordinate = (getMeasuredWidth() - tWidth) / 2;
+        float yCoordinate = (getMeasuredHeight() + tHeight) / 2;
+        float progressWidth = (progress / maxProgress) * getMeasuredWidth();
+        if(progressWidth > xCoordinate){
+            canvas.save(Canvas.CLIP_SAVE_FLAG);
+            float right = Math.min(progressWidth, xCoordinate + tWidth * 1.1f);
+            canvas.clipRect(xCoordinate, 0, right, getMeasuredHeight());
+            canvas.drawText(progressText, xCoordinate, yCoordinate, textPaint);
+            canvas.restore();
+        }
+    }
+
+    public void setProgress(float progress){
+        if(!isStop){
+            if(progress < maxProgress){
+                this.progress = progress;
+            } else {
+                this.progress = maxProgress;
+                finishLoad();
+            }
+            invalidate();
+        }
+    }
+
+    public void setStop(boolean stop) {
+        isStop = stop;
+        if(thread == null){
+            thread = new Thread(this);
+        }
+        if(isStop){
+            progressColor = stopColor;
+            thread.interrupt();
+        } else {
+            progressColor = loadingColor;
+            thread.start();
+        }
+        invalidate();
+    }
+
+    public void finishLoad() {
+        isFinish = true;
+        setStop(true);
+    }
+
+    public void toggle(){
+        if(!isFinish){
+            if(isStop){
+                setStop(false);
+            } else {
+                setStop(true);
+            }
+        }
+    }
+
+    @Override
+    public void run() {
+        int width = flikerBitmap.getWidth();
+        try {
+            while (!isStop && !thread.isInterrupted()){
+                flickerLeft += dp2px(5);
+                float progressWidth = (progress / maxProgress) * getMeasuredWidth();
+                if(flickerLeft >= progressWidth){
+                    flickerLeft = -width;
+                }
+                postInvalidate();
+                Thread.sleep(20);
+            }
+        }catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 重置
+     */
+    public void reset(){
+        setStop(true);
+        progress = 0;
+        isFinish = false;
+        isStop = false;
+        progressColor = loadingColor;
+        progressText = "";
+        flickerLeft = -flikerBitmap.getWidth();
+        initPgBimap();
+    }
+
+    public float getProgress() {
+        return progress;
+    }
+
+    public boolean isStop() {
+        return isStop;
+    }
+
+    public boolean isFinish() {
+        return isFinish;
+    }
+
+    private String getProgressText() {
+        String text= "";
+        if(!isFinish){
+            if(!isStop){
+                text = "下载中" + progress + "%";
+            } else {
+                text = "继续";
+            }
+        } else{
+            text = "下载完成";
+        }
+
+        return text;
+    }
+
+    private int dp2px(int dp){
+        float density = getContext().getResources().getDisplayMetrics().density;
+        return (int) (dp * density);
+    }
+}

+ 258 - 0
app/src/main/java/com/sheep/gamegroup/view/customview/SProgress.java

@@ -0,0 +1,258 @@
+/*
+ * Copyright (c) 2017. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+ * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan.
+ * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna.
+ * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus.
+ * Vestibulum commodo. Ut rhoncus gravida arcu.
+ */
+
+package com.sheep.gamegroup.view.customview;
+
+import android.animation.ValueAnimator;
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.LinearGradient;
+import android.graphics.Paint;
+import android.graphics.Path;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffXfermode;
+import android.graphics.Rect;
+import android.graphics.RectF;
+import android.graphics.Shader;
+import android.support.annotation.Nullable;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.View;
+import android.view.animation.AccelerateDecelerateInterpolator;
+
+
+import com.sheep.jiuyan.samllsheep.R;
+
+
+
+/**
+ * Created by S0005 on 2017/4/19.
+ */
+
+public class SProgress extends View {
+    public static final String TAG = "SProgress";
+    private int progressColor = 0xffff3030, progressendcolor = 0xffff6969, backColor = 0xffff8787, textColor = 0xffffffff;
+    private Paint bgpaint;
+    private Paint textPaint;
+    private Paint proPaint;
+    private float textsize = dp2px(9);
+    private float progress = 0;
+
+    private int maxDuring = 1600, minDuring = 500;
+
+    private int width = dp2px(40), height = dp2px(10);
+    private float textbaseline;
+
+    private float minProgress;
+    private RectF rectbg;
+    private RectF rectprogress;
+
+    private Rect padding = new Rect();
+    private Path path;
+
+
+    private int dp2px(float dp) {
+        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics());
+    }
+
+    public SProgress(Context context) {
+        this(context, null);
+    }
+
+    public SProgress(Context context, @Nullable AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public SProgress(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        obtainData(attrs);
+        init();
+    }
+
+    private void obtainData(AttributeSet attrs) {
+        TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.SProgress);
+        progressColor = a.getColor(R.styleable.SProgress_progressColor, progressColor);
+        progressendcolor = a.getColor(R.styleable.SProgress_progressendcolor, progressendcolor);
+        backColor = a.getColor(R.styleable.SProgress_backColor, backColor);
+        textColor = a.getColor(R.styleable.SProgress_textColor, textColor);
+        textsize = a.getDimension(R.styleable.SProgress_textsize, textsize);
+        minProgress = a.getFloat(R.styleable.SProgress_minProgress, 0);
+        float startprogress = a.getFloat(R.styleable.SProgress_startprogress, 0);
+        a.recycle();
+        Log.i(TAG, "obtainData: "+startprogress);
+        if(startprogress>0){
+            animatorToProgress(startprogress);
+        }
+    }
+
+    public float getProgress() {
+        return progress;
+    }
+
+    public SProgress setColor(int progressColor, int backColor, int textColor) {
+        setgradialColor(progressColor,progressColor,backColor,textColor);
+        return this;
+    }
+
+    public SProgress setgradialColor(int startprogressColor, int endprogresscolor, int backColor, int textColor) {
+        this.progressColor = startprogressColor;
+        this.progressendcolor = endprogresscolor;
+        this.backColor = backColor;
+        this.textColor = textColor;
+
+        textPaint.setColor(textColor);
+
+        proPaint.setColor(progressColor);
+        LinearGradient linearGradient = new LinearGradient(0, 0, width, height, progressColor, progressendcolor, Shader.TileMode.CLAMP);
+        proPaint.setShader(linearGradient);
+        bgpaint.setColor(backColor);
+        return this;
+    }
+
+    public SProgress setTextSize(float size) {
+        textsize = dp2px(size);
+        return this;
+    }
+
+    public SProgress setminprogress(float minprogress) {
+        this.minProgress = minprogress;
+        return this;
+    }
+
+    public SProgress setProgress(final float progress) {
+        if (progress > 100||progress<0)
+            throw new NumberFormatException("进度0-100");
+        SProgress.this.progress = progress < minProgress ? minProgress : progress;
+        invalidate();
+        return this;
+    }
+
+    public SProgress animatorToProgress(final float progress) {
+
+        Log.i(TAG, "setProgress: " + progress);
+        //最小位置不执行动画
+        if (progress > 100||progress<0)
+            throw new NumberFormatException("进度0-100");
+        post(new Runnable() {
+            @Override
+            public void run() {
+                if (SProgress.this.progress <= minProgress && progress <= minProgress) {
+                    SProgress.this.progress = progress;
+                    invalidate();
+                } else {
+                    startAnimator(progress);
+                }
+            }
+        });
+        return this;
+    }
+
+    private void startAnimator(float pors) {
+        ValueAnimator animator = ValueAnimator.ofFloat((progress < minProgress ? minProgress : progress), pors < minProgress ? minProgress : pors);
+        int i = (int) (pors - progress) * maxDuring / 100;
+        animator.setDuration(i < minDuring ? minDuring : i);
+        animator.setInterpolator(new AccelerateDecelerateInterpolator());
+        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+            @Override
+            public void onAnimationUpdate(ValueAnimator animation) {
+
+                //结束时显示原值带小数,中间变换显示不带小数
+
+                if (animation.getAnimatedFraction() == 1)
+                    progress = (float) animation.getAnimatedValue();
+                else
+                    progress = (int) ((float) animation.getAnimatedValue());
+                invalidate();
+            }
+        });
+        animator.start();
+    }
+
+    private void init() {
+       setLayerType(LAYER_TYPE_SOFTWARE,null);
+        bgpaint = new Paint();
+        bgpaint.setColor(backColor);
+        bgpaint.setAntiAlias(true);
+
+        proPaint = new Paint();
+        proPaint.setColor(progressColor);
+        LinearGradient linearGradient = new LinearGradient(0, 0, width, height, progressColor, progressendcolor, Shader.TileMode.CLAMP);
+        proPaint.setShader(linearGradient);
+        proPaint.setAntiAlias(true);
+
+        textPaint = new Paint();
+        textPaint.setColor(textColor);
+        textPaint.setAntiAlias(true);
+        textPaint.setTextSize(textsize);
+        textbaseline = getFontstart(textPaint);
+        rectbg = new RectF();
+        rectprogress = new RectF();
+    }
+
+    public float getFontstart(Paint paint) {
+        Paint.FontMetrics fm = paint.getFontMetrics();
+        return (fm.descent + fm.ascent) / 2 - fm.leading;
+    }
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+
+        rectbg.set(padding.left, padding.top, (float) width - padding.right, (float) height - padding.bottom);
+        canvas.drawRoundRect(rectbg, (height - padding.top-padding.bottom) / 2, (height - padding.top-padding.bottom) / 2, bgpaint);
+
+
+
+        if(path==null) {
+            path = new Path();
+            path.addRoundRect(rectbg,(height - padding.top-padding.bottom) / 2, (height - padding.top-padding.bottom) / 2,Path.Direction.CW);
+        }
+        int save = canvas.save();
+        canvas.clipPath(path);
+        rectprogress.set(padding.left, padding.top, padding.left + ((width - padding.left-padding.right) * (progress < minProgress ? minProgress : progress) / 100), height - padding.bottom);
+        canvas.drawRoundRect(rectprogress, (float) ((height - padding.top-padding.bottom) / 2), (float) ((height - padding.top-padding.bottom) / 2), proPaint);
+        canvas.restoreToCount(save);
+
+
+        float length = textPaint.measureText(getText(progress));
+
+        canvas.drawText(getText(progress), width / 2 - length / 2, height / 2 - textbaseline, textPaint);
+
+    }
+
+    private String getText(float progress) {
+        String progresstext = String.format(getResources().getString(R.string.sprogress_string), progress);
+        return progresstext.replace(".0", "");
+//        "已领" + progresstext.replace(".0", "") + "%"
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        int widthMode = MeasureSpec.getMode(widthMeasureSpec);
+        int heightMode = MeasureSpec.getMode(heightMeasureSpec);
+        int widthSize = MeasureSpec.getSize(widthMeasureSpec);
+        int heightSize = MeasureSpec.getSize(heightMeasureSpec);
+        if (widthMode == MeasureSpec.EXACTLY) {
+            width = widthSize;
+        } else {
+            width = Math.min(width, widthSize);
+        }
+
+        if (heightMode == MeasureSpec.EXACTLY) {
+            height = heightSize;
+        } else {
+            height = Math.min(heightSize, height);
+
+        }
+        padding.set(getPaddingLeft(), getPaddingTop(), getPaddingRight(), getPaddingBottom());
+        setMeasuredDimension(width, height);
+        path=null;
+
+    }
+}

+ 66 - 0
app/src/main/java/com/sheep/gamegroup/view/customview/TextProgressBar.java

@@ -0,0 +1,66 @@
+package com.sheep.gamegroup.view.customview;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Rect;
+import android.util.AttributeSet;
+import android.widget.ProgressBar;
+
+/**
+ * Created by ljy on 2018/3/12.
+ */
+
+public class TextProgressBar extends ProgressBar {
+    private String str;
+    private Paint mPaint;
+    public TextProgressBar(Context context) {
+        super(context);
+        initText();
+    }
+
+    public TextProgressBar(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        initText();
+    }
+
+    public TextProgressBar(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        initText();
+    }
+
+    public TextProgressBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+        initText();
+    }
+
+    @Override
+    public synchronized void setProgress(int progress) {
+        setText(progress);
+        super.setProgress(progress);
+    }
+
+    @Override
+    protected synchronized void onDraw(Canvas canvas) {
+        super.onDraw(canvas);
+        Rect rect = new Rect();
+        this.mPaint.getTextBounds(this.str, 0, this.str.length(), rect );
+        int x = getWidth() / 2 - rect.centerX();// 让字体处于中间位置
+        int y = getHeight() / 2 - rect.centerY();//让显示的字体处于中间位置
+        canvas.drawText(this.str, x, y, this.mPaint);
+    }
+
+    /**
+     *初始化,画笔
+     */
+    private void initText(){
+        this.mPaint = new Paint();
+        this.mPaint.setAntiAlias(true);//设置抗锯齿
+        this.mPaint.setColor(Color.WHITE);
+    }
+    private void setText(int propress){
+        int i = (int) ((propress *1.0f / this.getMax()) * 100);
+        this.str = String.valueOf(i) + "%";
+    }
+}

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

@@ -6,10 +6,14 @@ import android.os.Bundle;
 import android.util.DisplayMetrics;
 
 import com.liulishuo.filedownloader.FileDownloader;
+import com.sheep.gamegroup.di.components.DaggerNetComponent;
+import com.sheep.gamegroup.di.components.NetComponent;
+import com.sheep.gamegroup.di.modules.NetModule;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.tencent.bugly.Bugly;
 import com.tencent.mm.opensdk.openapi.IWXAPI;
 import com.tencent.mm.opensdk.openapi.WXAPIFactory;
+import com.umeng.commonsdk.UMConfigure;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -26,6 +30,12 @@ public class SheepApp extends BaseApplication {
 
     public static Map<String, Activity> mActivitys;
 
+    private NetComponent netComponent;
+
+    public static SheepApp get(Context context){
+        return (SheepApp) context.getApplicationContext();
+    }
+
     @Override
     public void onCreate() {
         super.onCreate();
@@ -36,6 +46,17 @@ public class SheepApp extends BaseApplication {
         registerActivityLifecycleCallbacks(activityLifecycleCallbacks);
         initGoble();
         Bugly.init(getApplicationContext(), Config.BUGLY_APPID, true);
+
+        //友盟
+        UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, "xxxxx");
+
+        initNet();
+    }
+
+    private void initNet() {
+        netComponent = DaggerNetComponent.builder()
+                .netModule(new NetModule())
+                .build();
     }
 
     private void regWx() {
@@ -90,4 +111,12 @@ public class SheepApp extends BaseApplication {
         }
     };
 
+    public NetComponent getNetComponent(){
+        return netComponent;
+    }
+
+    public static SheepApp getInstance(){
+        return mSheepApp;
+    }
+
 }

+ 5 - 2
app/src/main/java/com/sheep/jiuyan/samllsheep/adapter/DownListAdapter.java

@@ -12,6 +12,9 @@ import android.widget.TextView;
 import android.widget.Toast;
 
 import com.bumptech.glide.Glide;
+import com.sheep.gamegroup.view.customview.FlikerProgressBar;
+import com.sheep.gamegroup.view.customview.SProgress;
+import com.sheep.gamegroup.view.customview.TextProgressBar;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.download.DownloadInfo;
@@ -96,7 +99,7 @@ public class DownListAdapter extends BaseAdapter {
         private TextView tv_game_name;
         private ImageView iv_state;
         private ImageView iv_remove;
-        private ProgressBar pb_download;
+        private SProgress pb_download;
         private TextView tv_prorgess;
         private View ll_install;
 
@@ -105,7 +108,7 @@ public class DownListAdapter extends BaseAdapter {
             ImageView = (ImageView) view.findViewById(R.id.img_icon);
             tv_game_name = (TextView) view.findViewById(R.id.tv_game_name);
             iv_state = (ImageView) view.findViewById(R.id.iv_state);
-            pb_download = (ProgressBar) view.findViewById(R.id.pb_download);
+            pb_download = (SProgress) view.findViewById(R.id.pb_download);
             iv_remove = (ImageView) view.findViewById(R.id.iv_remove);
             tv_prorgess = (TextView) view.findViewById(R.id.tv_prorgess);
             ll_install = view.findViewById(R.id.ll_install);

+ 38 - 13
app/src/main/java/com/sheep/jiuyan/samllsheep/wxapi/WXEntryActivity.java

@@ -4,21 +4,28 @@ 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.modelmsg.SendAuth;
 import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
 
 import android.app.Activity;
+import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
+import android.util.Log;
 import android.widget.Toast;
 
 
 public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
 
+    Context mContext;
+    private String TAG = "WXEntryActivity";
+    private static final int RETURN_MSG_TYPE_LOGIN = 1; //登录
+    private static final int RETURN_MSG_TYPE_SHARE = 2; //分享
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-
+        mContext = this;
         //注意:
         //第三方开发者如果使用透明界面来实现WXEntryActivity,需要判断handleIntent的返回值,如果返回值为false,则说明入参不合法未被SDK处理,应finish当前透明界面,避免外部通过传递非法参数的Intent导致停留在透明界面,引起用户的疑惑
         try {
@@ -54,21 +61,39 @@ public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
 
     // 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法
     @Override
-    public void onResp(BaseResp resp) {
-        int result = 0;
-        Toast.makeText(this, "baseresp.getType = " + resp.getType(), Toast.LENGTH_SHORT).show();
-        switch (resp.errCode) {
-            case BaseResp.ErrCode.ERR_OK:
-                break;
-            case BaseResp.ErrCode.ERR_USER_CANCEL:
-                break;
+    public void onResp(BaseResp baseResp) {
+        Toast.makeText(this, "baseresp.getType = " + baseResp.getType(), Toast.LENGTH_SHORT).show();
+        Log.e(TAG, "error_code:---->" + baseResp.errCode);
+        int type = baseResp.getType(); //类型:分享还是登录
+        switch (baseResp.errCode) {
             case BaseResp.ErrCode.ERR_AUTH_DENIED:
+                //用户拒绝授权
+                Toast.makeText(mContext, "拒绝授权微信登录", Toast.LENGTH_SHORT).show();
+            case BaseResp.ErrCode.ERR_USER_CANCEL:
+                //用户取消
+                String message = "";
+                if (type == RETURN_MSG_TYPE_LOGIN) {
+                    message = "取消了微信登录";
+                } else if (type == RETURN_MSG_TYPE_SHARE) {
+                    message = "取消了微信分享";
+                }
+                Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
                 break;
-            case BaseResp.ErrCode.ERR_UNSUPPORT:
-                break;
-            default:
+            case BaseResp.ErrCode.ERR_OK:
+                //用户同意
+                if (type == RETURN_MSG_TYPE_LOGIN) {
+                    //用户换取access_token的code,仅在ErrCode为0时有效
+                    String code = ((SendAuth.Resp) baseResp).code;
+                    Log.e(TAG, "code:------>" + code);
+                    System.out.print(code + "--------------");
+
+                    //这里拿到了这个code,去做2次网络请求获取access_token和用户个人信息
+//                    WXLoginUtils().getWXLoginResult(code, this);
+
+                } else if (type == RETURN_MSG_TYPE_SHARE) {
+                    Toast.makeText(mContext, "微信分享成功", Toast.LENGTH_SHORT).show();
+                }
                 break;
         }
-        Toast.makeText(this, result, Toast.LENGTH_LONG).show();
     }
 }

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

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

+ 14 - 0
app/src/main/res/drawable/sp_bg_gradient_rectqangle_yellow.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+
+    <gradient
+        android:startColor="@color/white"
+        android:angle="-90"
+        android:centerY="50%"
+        android:centerColor="@color/txt_bg_yellow"
+        android:centerX="50%"
+        android:endColor="@color/black"/>
+    <corners
+        android:radius="100dp"/>
+</shape>

+ 13 - 0
app/src/main/res/drawable/sp_bg_transparency_line_thite_radius_top.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+
+    <solid
+        android:color="@color/transparent"/>
+    <stroke
+        android:width="1dp"
+        android:color="@color/white"/>
+    <corners
+        android:topLeftRadius="100dp"
+        android:topRightRadius="100dp"/>
+</shape>

+ 10 - 0
app/src/main/res/drawable/sp_bg_transparency_line_white.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <solid android:color="@color/transparent" />
+    <stroke
+        android:width="1dp"
+        android:color="@color/white"/>
+    <corners
+        android:radius="100dp"/>
+</shape>

+ 8 - 0
app/src/main/res/drawable/sp_bg_yellow.xml

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

+ 13 - 0
app/src/main/res/drawable/sp_rectangle_bg_transparency_line_yellow.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+
+    <solid
+        android:color="@color/transparent"/>
+
+    <stroke
+        android:width="1dp"
+        android:color="@color/txt_bg_yellow"/>
+
+    <corners android:radius="100dp"/>
+</shape>

+ 10 - 0
app/src/main/res/drawable/sp_rectangle_bg_white_radius.xml

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

+ 96 - 0
app/src/main/res/layout/bind_phone_number_act_layout.xml

@@ -0,0 +1,96 @@
+<?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"
+    android:orientation="vertical">
+
+    <ImageView
+        android:id="@+id/phone_iv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginLeft="100dp"
+        android:layout_marginRight="100dp"
+        android:src="@drawable/icon"
+        android:layout_marginTop="35dp"
+        android:layout_marginBottom="5dp"/>
+
+    <TextView
+        android:id="@+id/phone_tip_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="为了避免机器刷单,请绑定手机号后领取任务奖励"
+        android:textColor="@color/black_444444"
+        android:textSize="11dp"
+        android:layout_gravity="center_horizontal"/>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="12dp"
+        android:layout_marginRight="12dp"
+        android:layout_marginTop="40dp"
+        android:background="@drawable/sp_rectangle_bg_white_radius"
+        android:orientation="vertical">
+        <android.support.v7.widget.AppCompatEditText
+            android:id="@+id/phone_et_account"
+            style="@style/edt_style"
+            android:inputType="phone"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/edt_heigh_default"
+            android:layout_centerVertical="true"
+            android:layout_margin="@dimen/content_padding_small"
+            android:hint="请输入要绑定的手机号"
+            android:paddingLeft="@dimen/content_padding_big"
+            android:maxLength="11"/>
+
+        <LinearLayout
+            android:id="@+id/ll_code"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_margin="@dimen/content_padding_small"
+            android:orientation="horizontal"
+            >
+
+            <android.support.v7.widget.AppCompatEditText
+                android:id="@+id/phone_et_code"
+                style="@style/edt_style"
+                android:layout_width="0dp"
+                android:layout_height="@dimen/edt_heigh_default"
+                android:layout_weight="2"
+                android:hint="请输入验证码"
+                android:inputType="phone"
+                android:paddingLeft="@dimen/content_padding_big"
+                android:maxLength="6"
+                android:textSize="@dimen/text_size_3"/>
+            <TextView
+                android:id="@+id/phone_btn_code"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center|center_vertical"
+                android:layout_marginLeft="@dimen/content_padding"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:text="获取验证码"
+                android:textColor="@color/txt_bule"
+                />
+
+        </LinearLayout>
+    </LinearLayout>
+
+
+
+    <TextView
+        android:id="@+id/phone_sure_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:minHeight="45dp"
+        android:minWidth="225dp"
+        android:layout_marginTop="@dimen/layout_heigh_default"
+        android:gravity="center"
+        android:layout_gravity="center_horizontal"
+        android:text="确 定"
+        style="@style/sure_btn_style"/>
+
+
+</LinearLayout>

+ 89 - 0
app/src/main/res/layout/dowanload_item_dialog.xml

@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <android.support.constraint.ConstraintLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerInParent="true"
+        android:layout_marginLeft="65dp"
+        android:layout_marginRight="65dp">
+
+        <ImageView
+            android:id="@+id/dialog_item_icon_iv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/icon_lj"
+            tools:layout_editor_absoluteY="25dp"
+            tools:layout_editor_absoluteX="0dp" />
+        <TextView
+            android:id="@+id/dialog_item_name_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="无敌大航海"
+            style="@style/txt_big_style"
+            app:layout_constraintStart_toEndOf="@id/dialog_item_icon_iv"
+            app:layout_editor_absoluteY="8dp"
+            tools:layout_editor_absoluteY="33dp"
+            tools:layout_editor_absoluteX="72dp" />
+        <TextView
+            android:id="@+id/dialog_item_size_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="10M"
+            android:textSize="@dimen/text_size_12"
+            app:layout_constraintStart_toEndOf="@id/dialog_item_icon_iv"
+            app:layout_editor_absoluteY="35dp"
+            tools:layout_editor_absoluteY="60dp"
+            tools:layout_editor_absoluteX="72dp" />
+
+        <ListView
+            android:id="@+id/dialog_item_list"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            app:layout_constraintTop_toBottomOf="@+id/dialog_item_icon_iv"
+            android:scrollbars="none"
+            tools:layout_editor_absoluteX="0dp"
+            android:visibility="gone"/>
+        <com.sheep.gamegroup.view.customview.SProgress
+            android:id="@+id/start_stask_sprogress"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="5dp"
+            android:layout_toLeftOf="@+id/frentallystart"
+            android:padding="2dp"
+            app:backColor="@color/bg_gray"
+            app:minProgress="0"
+            app:progressColor="@color/txt_bg_yellow"
+            app:progressendcolor="#ffff6969"
+            app:startprogress="0"
+            app:textColor="#ffffffff"
+            app:textsize="18sp"
+            app:layout_constraintTop_toBottomOf="@+id/dialog_item_list"
+            tools:layout_editor_absoluteX="8dp"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintLeft_toLeftOf="parent"
+            android:minHeight="36dp"
+            android:minWidth="151dp"/>
+
+        <TextView
+            android:id="@+id/doalog_item_get_rewards_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:minHeight="36dp"
+            android:minWidth="151dp"
+            android:text="领取奖励"
+            android:textSize="18sp"
+            android:background="@drawable/sp_bg_gradient_rectqangle_yellow"
+            app:layout_constraintTop_toBottomOf="@+id/start_stask_sprogress"
+            android:gravity="center"
+            app:layout_constraintBaseline_toBaselineOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintLeft_toLeftOf="parent"/>
+
+    </android.support.constraint.ConstraintLayout>
+
+</RelativeLayout>

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

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+  <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:app="http://schemas.android.com/apk/res-auto"
+        xmlns:tools="http://schemas.android.com/tools"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <ImageView
+            android:id="@+id/dialog_item_icon_iv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/icon_lj"/>
+        <TextView
+            android:id="@+id/dialog_item_name_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="无敌大航海"
+            style="@style/txt_big_style"
+            app:layout_constraintStart_toEndOf="@id/dialog_item_icon_iv" />
+        <TextView
+            android:id="@+id/dialog_item_size_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="10M"
+            android:textSize="@dimen/text_size_12"
+            app:layout_constraintStart_toEndOf="@id/dialog_item_icon_iv"
+            app:layout_editor_absoluteY="35dp" />
+
+        <ListView
+            android:id="@+id/dialog_item_list"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:minHeight="20dp"
+            app:layout_constraintTop_toBottomOf="@id/dialog_item_icon_iv" />
+
+</android.support.constraint.ConstraintLayout>

+ 18 - 3
app/src/main/res/layout/down_item.xml

@@ -1,9 +1,24 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:orientation="vertical" android:layout_width="match_parent"
     android:layout_height="match_parent">
 
 
+    <com.sheep.gamegroup.view.customview.SProgress
+        android:id="@+id/pb_download"
+        android:layout_width="match_parent"
+        android:layout_height="42dp"
+        android:layout_marginTop="5dp"
+        android:layout_toLeftOf="@+id/frentallystart"
+        android:padding="2dp"
+        app:backColor="@color/bg_gray"
+        app:minProgress="0"
+        app:progressColor="@color/txt_bg_yellow"
+        app:progressendcolor="#ffff6969"
+        app:startprogress="0"
+        app:textColor="#ffffffff"
+        app:textsize="18sp" />
 
     <RelativeLayout
         android:layout_width="match_parent"
@@ -23,7 +38,7 @@
           android:id="@+id/ll_install"
           android:layout_toLeftOf="@+id/ll_btn"
           android:layout_width="match_parent"
-          android:layout_height="match_parent"
+          android:layout_height="wrap_content"
           android:orientation="vertical"
           android:layout_centerVertical="true"
           android:layout_marginLeft="10dp"
@@ -77,13 +92,13 @@
        </LinearLayout>
     </RelativeLayout>
 
-    <ProgressBar
+    <!--<com.sheep.gamegroup.view.customview.TextProgressBar
         android:id="@+id/pb_download"
         style="?android:attr/progressBarStyleHorizontal"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginLeft="10dp"
         android:layout_marginRight="10dp"
-        />
+        />-->
 
 </LinearLayout>

+ 11 - 9
app/src/main/res/layout/login_act_layout.xml

@@ -1,24 +1,26 @@
 <?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:layout_height="match_parent"
+    style="@style/login_layout"
+    android:background="@android:color/holo_blue_bright">
 
     <TextView
         android:id="@+id/weixin_login_tv"
-        android:layout_margin="20dp"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="微信登录"
-        android:layout_centerInParent="true"
-        style="@style/style_btn"/>
+        style="@style/login_btn"
+        android:layout_above="@+id/tel_login_tv"
+        android:focusedByDefault="true"/>
     <TextView
         android:id="@+id/tel_login_tv"
-        android:layout_margin="20dp"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:text="手机登录"
-        android:layout_below="@+id/weixin_login_tv"
-        android:layout_centerInParent="true"
-        style="@style/style_btn"/>
+        android:text="手机号登录"
+        android:layout_alignParentBottom="true"
+        style="@style/login_btn"
+        android:layout_marginBottom="100dp"
+        android:layout_marginTop="15dp"/>
 
 </RelativeLayout>

+ 38 - 0
app/src/main/res/layout/personalcenter_act_item.xml

@@ -0,0 +1,38 @@
+<?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="wrap_content"
+    android:layout_margin="12dp"
+    android:padding="15dp">
+
+    <ImageView
+        android:id="@+id/personalcenter_item_icon_iv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:src="@mipmap/personalcenter_img"
+        android:layout_marginRight="12dp"/>
+    <TextView
+        android:id="@+id/personalcenter_item_name_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="帐号安全"
+        android:lines="1"
+        android:layout_centerHorizontal="true"
+        android:layout_toRightOf="@+id/personalcenter_item_icon_iv"
+        android:textColor="@color/black"
+        android:textSize="14dp"/>
+    <ImageView
+        android:id="@+id/personalcenter_item_right_iv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:src="@mipmap/left_arrow_img"
+        android:layout_alignParentRight="true"
+        android:layout_marginLeft="12dp"/>
+    <TextView
+        android:id="@+id/personalcenter_item_line"
+        android:layout_width="match_parent"
+        android:layout_height="1sp"
+        android:textColor="@color/white_bg_line"
+        android:layout_alignParentBottom="true"/>
+
+</RelativeLayout>

+ 196 - 0
app/src/main/res/layout/personalcenter_act_layout.xml

@@ -0,0 +1,196 @@
+<?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"
+    android:background="@color/white_light"
+    android:orientation="vertical">
+
+    <include
+        layout="@layout/title" />
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@drawable/sp_rectangle_bg_white_radius"
+        android:layout_margin="12dp"
+        android:padding="15dp">
+        <TextView
+            android:id="@+id/withdrawal"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:minWidth="100dp"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:text="提 现"
+            android:textColor="@color/black"
+            android:textSize="20dp"
+            android:background="@drawable/sp_bg_yellow"
+            android:gravity="center"
+            android:padding="5dp"/>
+        <TextView
+            android:id="@+id/my_property"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="我的资产"
+            android:textColor="@color/black"
+            android:textSize="15dp"/>
+        <TextView
+            android:layout_below="@+id/my_property"
+            android:id="@+id/my_price"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="20.00 元"
+            android:textColor="@color/black"
+            android:textSize="25dp"
+            android:layout_marginTop="12dp"
+            android:layout_marginBottom="12dp"
+            android:layout_toLeftOf="@id/withdrawal"/>
+        <TextView
+            android:layout_below="@+id/my_price"
+            android:id="@+id/my_all_price"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="累计资产 60.00 元"
+            android:textColor="@color/black"
+            android:textSize="12dp"/>
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@drawable/sp_rectangle_bg_white_radius"
+        android:layout_margin="12dp"
+        android:paddingTop="15dp"
+        android:paddingRight="15dp"
+        android:paddingLeft="15dp"
+        android:paddingBottom="1dp">
+        <TextView
+            android:id="@+id/account_info_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="账户信息"
+            android:textColor="@color/black"
+            android:textSize="15dp"/>
+        <RelativeLayout
+            android:id="@+id/account_safe_layout"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/account_info_tv"
+            android:gravity="center">
+            <ImageView
+                android:id="@+id/personalcenter_item_icon_iv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@mipmap/personalcenter_img"
+                android:layout_marginRight="12dp"
+                android:layout_centerVertical="true"/>
+            <TextView
+                android:id="@+id/personalcenter_item_name_tv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="帐号安全"
+                android:lines="1"
+                android:textColor="@color/black"
+                android:textSize="14dp"
+                android:layout_centerVertical="true"
+                android:layout_alignBottom="@+id/personalcenter_item_icon_iv"
+                android:layout_toEndOf="@+id/personalcenter_item_icon_iv" />
+            <ImageView
+                android:id="@+id/personalcenter_item_right_iv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@mipmap/left_arrow_img"
+                android:layout_alignParentRight="true"
+                android:layout_marginLeft="12dp"
+                android:layout_centerVertical="true"/>
+            <TextView
+                android:layout_marginTop="25dp"
+                android:id="@+id/personalcenter_item_line"
+                android:layout_width="match_parent"
+                android:layout_height="1sp"
+                android:background="@color/white_bg_line"
+                android:layout_below="@+id/personalcenter_item_name_tv"/>
+        </RelativeLayout>
+        <RelativeLayout
+            android:id="@+id/account_task_layout"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/account_safe_layout"
+            android:layout_alignParentStart="true">
+            <ImageView
+                android:id="@+id/tast_item_icon_iv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@mipmap/personalcenter_img"
+                android:layout_marginRight="12dp"
+                android:layout_centerVertical="true"/>
+            <TextView
+                android:id="@+id/tast_item_name_tv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="任务记录"
+                android:lines="1"
+                android:textColor="@color/black"
+                android:textSize="14dp"
+                android:layout_alignBottom="@+id/tast_item_icon_iv"
+                android:layout_toEndOf="@+id/tast_item_icon_iv"
+                android:layout_centerVertical="true"/>
+            <ImageView
+                android:id="@+id/tast_item_right_iv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@mipmap/left_arrow_img"
+                android:layout_alignParentRight="true"
+                android:layout_marginLeft="12dp"
+                android:layout_centerVertical="true"/>
+            <TextView
+                android:layout_marginTop="25dp"
+                android:id="@+id/tast_item_line"
+                android:layout_width="match_parent"
+                android:layout_height="1sp"
+                android:background="@color/white_bg_line"
+                android:layout_below="@+id/tast_item_name_tv"/>
+        </RelativeLayout>
+        <RelativeLayout
+            android:id="@+id/account_detail_layout"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/account_task_layout">
+            <ImageView
+                android:id="@+id/detail_item_icon_iv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@mipmap/personalcenter_img"
+                android:layout_marginRight="12dp"
+                android:layout_centerVertical="true"/>
+            <TextView
+                android:id="@+id/detail_item_name_tv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="提现明细"
+                android:lines="1"
+                android:textColor="@color/black"
+                android:textSize="14dp"
+                android:layout_centerVertical="true"
+                android:layout_alignBottom="@+id/detail_item_icon_iv"
+                android:layout_toEndOf="@+id/detail_item_icon_iv" />
+            <ImageView
+                android:id="@+id/detail_item_right_iv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@mipmap/left_arrow_img"
+                android:layout_alignParentRight="true"
+                android:layout_marginLeft="12dp"
+                android:layout_centerVertical="true"/>
+            <TextView
+                android:layout_marginTop="25dp"
+                android:id="@+id/detail_item_line"
+                android:layout_width="match_parent"
+                android:layout_height="1sp"
+                android:background="@color/transparent"
+                android:layout_below="@+id/detail_item_name_tv"
+                android:visibility="visible"/>
+        </RelativeLayout>
+    </RelativeLayout>
+
+</LinearLayout>

+ 16 - 0
app/src/main/res/layout/try_makemoney_act_layout.xml

@@ -0,0 +1,16 @@
+<?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"
+    android:orientation="vertical"
+    android:background="@color/white_light">
+
+    <include
+        layout="@layout/title"/>
+
+    <android.support.v7.widget.RecyclerView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:padding="12dp"></android.support.v7.widget.RecyclerView>
+
+</LinearLayout>

+ 53 - 0
app/src/main/res/layout/try_makemoney_item.xml

@@ -0,0 +1,53 @@
+<?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"
+    android:orientation="vertical"
+    android:background="@drawable/sp_bg_transparency_line_thite_radius_top"
+    android:padding="12dp">
+    <TextView
+        android:id="@+id/item_title_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="进行中"
+        android:textColor="@color/black"
+        android:textSize="15dp"
+        android:layout_marginBottom="13dp"/>
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <ImageView
+            android:id="@+id/item_icon_iv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/icon_lj"/>
+        <TextView
+            android:id="@+id/item_anem_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="无敌大航海"
+            android:layout_alignTop="@+id/item_icon_iv"
+            android:layout_toEndOf="@+id/item_icon_iv"
+            android:layout_marginTop="6dp"
+            android:layout_marginStart="15dp"
+            android:layout_above="@+id/item_num_tv" />
+        <TextView
+            android:id="@+id/item_num_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="剩余1001份"
+            android:layout_below="@+id/item_money"
+            android:layout_alignStart="@+id/item_anem_tv"
+            android:layout_marginTop="8dp"/>
+        <TextView
+            android:id="@+id/item_money"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="+1.5元"
+            android:textSize="18dp"
+            android:textColor="@color/txt_red"
+            android:layout_centerVertical="true"
+            android:layout_alignParentRight="true"/>
+    </RelativeLayout>
+</LinearLayout>

+ 40 - 0
app/src/main/res/layout/withdrawal_layout.xml

@@ -0,0 +1,40 @@
+<?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="match_parent"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:orientation="vertical"
+    android:background="@color/bg_gray"
+    android:padding="@dimen/content_padding_15">
+
+    <android.support.constraint.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@drawable/sp_rectangle_bg_white_radius"
+        android:padding="@dimen/content_padding_20">
+        <TextView
+            android:id="@+id/withdrawal_wx_pre_notice_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="当前的提现绑定微信号为"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintLeft_toLeftOf="parent"/>
+        <TextView
+            android:id="@+id/weixin_name_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="微信帐号"
+            app:layout_constraintTop_toBottomOf="@id/withdrawal_wx_pre_notice_tv"
+            app:layout_constraintLeft_toLeftOf="@id/withdrawal_wx_pre_notice_tv"
+            android:layout_marginLeft="17dp"
+            android:layout_marginTop="6dp" />
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="更换"
+            app:layout_constraintStart_toEndOf="@id/weixin_name_tv"
+            app:layout_constraintLeft_toLeftOf="@id/weixin_name_tv"/>
+    </android.support.constraint.ConstraintLayout>
+
+</LinearLayout>

+ 32 - 0
app/src/main/res/layout/withdrawal_no_weixin_layout.xml

@@ -0,0 +1,32 @@
+<?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"
+    android:orientation="vertical">
+
+    <ImageView
+        android:id="@+id/withdrawal_notice_icon_iv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:src="@mipmap/ic_launcher_round"
+        android:layout_gravity="center"/>
+
+    <TextView
+        android:id="@+id/withdrawal_notice_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="未绑定微信号,无法入账到你的微信零钱"
+        android:textColor="@color/black_444444"
+        android:textSize="@dimen/text_size_2"
+        android:layout_gravity="center"/>
+
+    <TextView
+        android:id="@+id/withdrawal_bind_weixin_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        style="@style/txt_big_style"
+        android:text="立即绑定"
+        android:gravity="center"
+        android:layout_marginLeft="@dimen/content_padding_15"
+        android:background="@drawable/sp_bg_gradient_rectqangle_yellow"/>
+</LinearLayout>

BIN
app/src/main/res/mipmap-xhdpi/flicker.png


BIN
app/src/main/res/mipmap-xhdpi/flicker_1.png


BIN
app/src/main/res/mipmap-xhdpi/left_arrow_img.png


BIN
app/src/main/res/mipmap-xhdpi/money_yang_img.png


BIN
app/src/main/res/mipmap-xhdpi/personalcenter_img.png


BIN
app/src/main/res/mipmap-xhdpi/task_write_img.png


BIN
app/src/main/res/mipmap-xxhdpi/left_arrow_img.png


BIN
app/src/main/res/mipmap-xxhdpi/personalcenter_img.png


BIN
app/src/main/res/mipmap-xxhdpi/task_write_img.png


+ 23 - 0
app/src/main/res/values/attrs.xml

@@ -12,4 +12,27 @@
         <attr name="currNodeNO" format="integer"></attr>   <!-- 当前所到达的节点编号  0开始计算-->
         <attr name="currNodeState" format="integer"></attr>   <!-- 当前所到达的节点状态,0:失败  1:成功 -->
     </declare-styleable>
+
+    <declare-styleable name="FlikerProgressBar">
+        <attr name="textSize" format="dimension"/>
+
+        <attr name="loadingColor" format="color"/>
+
+        <attr name="stopColor" format="color"/>
+
+        <attr name="radius" format="dimension"/>
+
+        <attr name="borderWidth" format="dimension"/>
+
+    </declare-styleable>
+
+    <declare-styleable name="SProgress">
+        <attr name="progressColor" format="color"/>
+        <attr name="backColor" format="color"/>
+        <attr name="progressendcolor" format="color"/>
+        <attr name="textColor" format="color"/>
+        <attr name="textsize" format="dimension"/>
+        <attr name="minProgress" format="float"/>
+        <attr name="startprogress" format="float"/>
+    </declare-styleable>
 </resources>

+ 6 - 0
app/src/main/res/values/common.xml

@@ -27,6 +27,9 @@
     <dimen name="text_size_7">26sp</dimen>
     <dimen name="text_size_8">30sp</dimen>
     <dimen name="text_size_9">50sp</dimen>
+    <dimen name="text_size_12">12sp</dimen>
+    <dimen name="text_size_15">15sp</dimen>
+    <dimen name="text_size_25">25sp</dimen>
 
     <!--一般layout的高度-->
     <dimen name="layout_heigh_default">48dp</dimen>
@@ -63,6 +66,9 @@
     <dimen name="content_padding_small">6dp</dimen>
     <dimen name="content_padding">12dp</dimen>
     <dimen name="content_padding_big">18dp</dimen>
+    <dimen name="content_padding_10">10dp</dimen>
+    <dimen name="content_padding_15">15dp</dimen>
+    <dimen name="content_padding_20">20dp</dimen>
 
 
     <!--下面的tagid用于设置tag使用-->

+ 13 - 0
app/src/main/res/values/gamegroup_color.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="txt_black">#010101</color>
+    <color name="txt_bg_yellow">#FDBD24</color>
+    <color name="white_light">#F8F8F8</color>
+    <color name="black">#000000</color>
+    <color name="black_444444">#444444</color>
+    <color name="white_bg_line">#dfdfdf</color>
+    <color name="txt_red">#ff2d4b</color>
+    <color name="txt_bule">#4889ff</color>
+    <color name="bg_gray">#e3e1e1</color>
+
+</resources>

+ 35 - 0
app/src/main/res/values/gamegroup_styles.xml

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <style name="login_layout">
+        <item name="android:paddingLeft">90dp</item>
+        <item name="android:paddingRight">90dp</item>
+        <item name="android:amPmBackgroundColor">@color/blue</item>
+    </style>
+    <style name="login_btn" parent="android:Widget.Material.Light.Button.Borderless.Small">
+        <item name="android:minHeight">35dp</item>
+        <item name="android:textColor">@color/white</item>
+        <item name="android:textSize">20dp</item>
+    </style>
+
+    <style name="edt_style">
+        <item name="android:textSize">14sp</item>
+        <item name="android:paddingTop">6dp</item>
+        <item name="android:paddingBottom">6dp</item>
+        <item name="android:paddingLeft">8dp</item>
+        <item name="android:paddingRight">8dp</item>
+        <item name="android:textColorHint">@color/black_444444</item>
+        <item name="android:background">@drawable/sp_edt_background_common</item>
+    </style>
+
+    <style name="sure_btn_style">
+        <item name="android:padding">@dimen/content_padding_10</item>
+        <item name="android:textColor">@color/txt_black</item>
+        <item name="android:textSize">@dimen/text_size_25</item>
+        <item name="android:background">@drawable/sp_bg_yellow</item>
+    </style>
+    <style name="txt_big_style">
+        <item name="android:text">无敌大航海</item>
+        <item name="android:textSize">@dimen/text_size_15</item>
+        <item name="android:textColor">@color/txt_black</item>
+    </style>
+</resources>

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

@@ -5,4 +5,5 @@
     <string name="resume">继续</string>
     <string name="done">安装</string>
     <string name="accessibility_service_description">开启观察权限</string>
+    <string name="sprogress_string">当前进度%.1f%%</string>
 </resources>