xiongxiaohe 8 anni fa
parent
commit
fdb1c5fbf1
53 ha cambiato i file con 1323 aggiunte e 212 eliminazioni
  1. 5 1
      app/src/main/AndroidManifest.xml
  2. 62 0
      app/src/main/assets/poster.html
  3. 6 6
      app/src/main/java/com/sheep/jiuyan/samllsheep/Config.java
  4. 2 1
      app/src/main/java/com/sheep/jiuyan/samllsheep/adapter/DownListAdapter.java
  5. 37 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/base/BaseActivity.java
  6. 33 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/base/BaseFragment.java
  7. 55 16
      app/src/main/java/com/sheep/jiuyan/samllsheep/floatwindow/FloatService.java
  8. 1 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/net/NetManager.java
  9. 1 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/net/SheepCallback.java
  10. 34 31
      app/src/main/java/com/sheep/jiuyan/samllsheep/net/Url.java
  11. 28 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/AskFriendActivity.java
  12. 7 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/BindWxActivity.java
  13. 55 1
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/GameDetailActivity.java
  14. 9 1
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/InputWXAccountActivity.java
  15. 21 35
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/LoginActivity.java
  16. 49 2
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/MainActivity.java
  17. 9 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/MoneyHistroyActivity.java
  18. 8 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/NewUserGuideActivity.java
  19. 49 16
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/RegisterActivity.java
  20. 233 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/ResetPWDActivity.java
  21. 24 6
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/ShotScreenActivity.java
  22. 56 58
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/SplashActivity.java
  23. 24 1
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/TaskRecordActivity.java
  24. 20 1
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/UserCenterActivity.java
  25. 8 3
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/WXAccountActivity.java
  26. 45 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/WebActivity.java
  27. 12 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/WithdrawActivity.java
  28. 10 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/WithdrawRecordActivity.java
  29. 8 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/WxAccountDetail.java
  30. 5 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/XDownLoadActivity.java
  31. 24 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/page/fragment/FgtMainPageTask.java
  32. 3 2
      app/src/main/java/com/sheep/jiuyan/samllsheep/service/TopService.java
  33. 1 14
      app/src/main/java/com/sheep/jiuyan/samllsheep/utils/OpenService.java
  34. 82 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/utils/PermissionFloatWindowUtils.java
  35. 2 2
      app/src/main/java/com/sheep/jiuyan/samllsheep/utils/PremissUtils.java
  36. 9 4
      app/src/main/java/com/sheep/jiuyan/samllsheep/utils/SpUtils.java
  37. 15 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/utils/StringUtils.java
  38. BIN
      app/src/main/res/drawable-hdpi/loading.png
  39. BIN
      app/src/main/res/drawable-hdpi/loading1.png
  40. BIN
      app/src/main/res/drawable-xhdpi/loading.png
  41. BIN
      app/src/main/res/drawable-xhdpi/loading1.png
  42. BIN
      app/src/main/res/drawable-xxhdpi/loading.png
  43. BIN
      app/src/main/res/drawable-xxhdpi/loading1.png
  44. 12 0
      app/src/main/res/drawable/bg_edit_code.xml
  45. 8 0
      app/src/main/res/drawable/load_animal.xml
  46. 66 0
      app/src/main/res/layout/activity_ask_friend.xml
  47. 14 0
      app/src/main/res/layout/dialog_layout.xml
  48. 11 0
      app/src/main/res/layout/login_actvity.xml
  49. 8 11
      app/src/main/res/layout/register_activity.xml
  50. 17 0
      app/src/main/res/layout/reset_pwd_activity.xml
  51. 84 0
      app/src/main/res/layout/reset_pwd_layout.xml
  52. 49 0
      app/src/main/res/layout/set_pwd_layout.xml
  53. 2 0
      app/src/main/res/values/colors.xml

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

@@ -20,7 +20,6 @@
     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
     <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
     <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
-
     <permission
         android:name="android.permission.PACKAGE_USAGE_STATS"
         tools:ignore="ProtectedPermissions"/>
@@ -119,6 +118,11 @@
             android:screenOrientation="portrait"/>
 
         <activity
+            android:name=".page.ResetPWDActivity"
+            android:screenOrientation="portrait"/>
+
+
+        <activity
             android:name=".page.AskFriendActivity"
             android:screenOrientation="portrait"/>
         <activity

+ 62 - 0
app/src/main/assets/poster.html

@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>小绵羊</title>
+    <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0">
+    <style>
+        hmtl, body {
+            margin: 0;
+            padding: 0;
+        }
+        #imgInvitation{
+            position: relative;
+            margin-top: 70%;
+        }
+        #imgInvitation p{
+            margin: 0;
+            text-align: center;
+            font-size: 1em;
+            color: #ff6048;
+        }
+        #imgInvitation #Invitation{
+            width: 29vw;
+            margin: auto;
+            display: block;
+        }
+        #imgInvitation #imgicon{
+            width: 6vw;
+            margin: auto;
+            display: block;
+            position: relative;
+            top: -10vh;
+        }
+    </style>
+</head>
+<body>
+    <div>
+        <img style="position: absolute;top: 0;z-index: -2" width="100%" src="img/fenxiang_bg.png"/>
+        <div id="imgInvitation">
+            <p><b>邀请码</b></p>
+            <p><b>728392</b></p>
+            <img id="Invitation" src="http://pan.baidu.com/share/qrcode?w=300&h=300&url=http://staticcdn.kuaifazs.com/upload/game/201802/02/c0/68/qrXn9G.html?inviteCode=728392" alt="">
+            <img id="imgicon" src="img/icon.png"/>
+        </div>
+    </div>
+</body>
+<script src="https://qiniu.kuaifazs.com/jquery-2.1.1.min.js"></script>
+<script>
+    $(function () {
+      window.PublicJavaScript.getCode();
+      function showCode(Link) {
+        alert(Link)
+      }
+    })
+
+ function display_alert()
+  {
+     alert("I am an alert box!!")
+  }
+
+</script>
+</html>

+ 6 - 6
app/src/main/java/com/sheep/jiuyan/samllsheep/Config.java

@@ -5,28 +5,28 @@ package com.sheep.jiuyan.samllsheep;
  */
 
 public class Config {
-    static Config mConfig = new Config();
+    private  final static Config mConfig = new Config();
 
     private Config() {
 
     }
-
     public static Config instance() {
         return mConfig;
     }
-
     //        public String mBaseUrl = "http://10.8.220.132:8088";
     //    public String mBaseUrl = "http://10.8.220.130:8088";
     //        public String mBaseUrl = "http://10.8.220.213:8088";
     //    public String mBaseUrl = "http://10.8.220.130:8088";
-        public String mBaseUrl = "http://10.8.220.6:8088";
-
+//       public String mBaseUrl = "http://10.8.220.6:8088";
+    public String mBaseUrl = "http://10.8.220.132:8088";
 //    public String mBaseUrl = "http://api.task.bandaimi.com";
-    //      public String mBaseUrl = "http://test.ss.shouyouquan.com";
+//    public String mBaseUrl = "http://test.ss.shouyouquan.com";
     public final static String WX_APPID = "wx3c0376c4fcc8b723";
     public final static String BUGLY_APPID = "0dd998212c";
+
     public String[] mUrlList = new String[]{"http://10.8.220.213:8088", "http://10.8.220.132:8088", "http://test.ss.shouyouquan.com", "http://10.8.220.130:8088", "http://api.task.bandaimi.com"};
     public void setBaseUrl(String url) {
         this.mBaseUrl = url;
     }
+
 }

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

@@ -39,7 +39,7 @@ public class DownListAdapter extends BaseAdapter {
     public DownListAdapter(Context context) {
         mContext = context;
         mInflater = LayoutInflater.from(mContext);
-        downloadManager = DownloadManager.getInstance();
+
     }
 
     @Override
@@ -263,6 +263,7 @@ public class DownListAdapter extends BaseAdapter {
                             file.delete();
                         }
                         notifyDataSetChanged();
+                        refresh();
                     } catch (DbException e) {
                         Toast.makeText(x.app(), "移除任务失败", Toast.LENGTH_LONG).show();
                     }

+ 37 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/base/BaseActivity.java

@@ -1,12 +1,16 @@
 package com.sheep.jiuyan.samllsheep.base;
 
 import android.app.Activity;
+import android.app.ProgressDialog;
 import android.content.Intent;
 import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.View;
 
 import com.sheep.jiuyan.samllsheep.BuildConfig;
+import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.event.FloatMsg;
 import com.readystatesoftware.chuck.Chuck;
@@ -18,6 +22,10 @@ import org.greenrobot.eventbus.EventBus;
  */
 
 public abstract class BaseActivity extends AppActivity {
+
+    protected ProgressDialog  mPd;
+
+
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -28,6 +36,35 @@ public abstract class BaseActivity extends AppActivity {
 
     }
 
+    protected void  showProgress(){
+        if(mPd!=null){
+            hideProgress();
+        }
+        mPd = new ProgressDialog(this);
+//        View view= LayoutInflater.from(this).inflate(R.layout.dialog_layout,null);
+//        mPd.setContentView(view);//自己定义布局
+        mPd.setMessage("数据加载中...");
+        mPd.setCancelable(true);//能否够被取消
+//        mPd.setProgressStyle(ProgressDialog.STYLE_SPINNER);//圆环风格
+        mPd.show();
+    }
+
+
+    protected void  hideProgress(){
+        if(mPd!=null){
+            mPd.dismiss();
+        }
+
+    }
+
+
+
+
+
+
+
+
+
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         /*if (BuildConfig.DEBUG)

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

@@ -1,5 +1,6 @@
 package com.sheep.jiuyan.samllsheep.base;
 
+import android.app.ProgressDialog;
 import android.os.Bundle;
 import android.support.annotation.IdRes;
 import android.support.annotation.Nullable;
@@ -24,12 +25,44 @@ public abstract class BaseFragment extends Fragment {
      */
     protected boolean mIsFirstInit = true;
 
+    protected ProgressDialog mPd;
+
+
+
+    protected void  showProgress(){
+        if(mPd!=null){
+            hideProgress();
+        }
+        mPd = new ProgressDialog(getActivity());
+//        View view= LayoutInflater.from(this).inflate(R.layout.dialog_layout,null);
+//        mPd.setContentView(view);//自己定义布局
+        mPd.setMessage("数据加载中...");
+        mPd.setCancelable(true);//能否够被取消
+//        mPd.setProgressStyle(ProgressDialog.STYLE_SPINNER);//圆环风格
+        mPd.show();
+    }
+
+
+    protected void  hideProgress(){
+        if(mPd!=null){
+            mPd.dismiss();
+        }
+
+    }
+
+
+
+
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setRetainInstance(true);
     }
 
+
+
+
+
     /**
      * 注意用 mIsFirstInit 判断,防止重复加载
      *

+ 55 - 16
app/src/main/java/com/sheep/jiuyan/samllsheep/floatwindow/FloatService.java

@@ -1,12 +1,16 @@
 package com.sheep.jiuyan.samllsheep.floatwindow;
 
 import android.app.Activity;
+import android.app.AlertDialog;
 import android.app.Service;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.graphics.PixelFormat;
 import android.graphics.Point;
+import android.os.Build;
 import android.os.IBinder;
+import android.provider.Settings;
 import android.support.v4.app.ActivityCompat;
 import android.text.TextUtils;
 import android.util.Log;
@@ -22,6 +26,7 @@ import android.widget.Toast;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.event.FloatMsg;
+import com.sheep.jiuyan.samllsheep.page.GameDetailActivity;
 import com.sheep.jiuyan.samllsheep.page.MainActivity;
 import com.sheep.jiuyan.samllsheep.page.ShotScreenActivity;
 import com.sheep.jiuyan.samllsheep.page.SplashActivity;
@@ -70,19 +75,34 @@ public class FloatService extends Service implements View.OnClickListener {
         createToucher();
     }
 
+
+
+
     private void createToucher() {
         //赋值WindowManager&LayoutParam.
         params = new WindowManager.LayoutParams();
-        mWm = (WindowManager) getApplication().getSystemService(Context.WINDOW_SERVICE);
+        if(mWm==null) {
+            mWm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
+        }
         //设置type.系统提示型窗口,一般都在应用程序窗口之上.
-        params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
         //设置效果为背景透明.
         params.format = PixelFormat.RGBA_8888;
         //设置flags.不可聚焦及不可使用按钮对悬浮窗进行操控.
         params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                 | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
+//
+//        //设置窗口初始停靠位置.
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+            //  大于等于 24 即为 7.0 及以上执行内容
+            Log.e("qx", "7.0");
+            params.type = WindowManager.LayoutParams.TYPE_PHONE; // 7.1
+        } else {
+            //  低于 24 即为 7.0 以下执行内容
+            params.type = WindowManager.LayoutParams.TYPE_TOAST;   // 4.4
+            Log.e("qx", "4.4");
+
+        }
 
-        //设置窗口初始停靠位置.
         params.gravity = Gravity.LEFT | Gravity.TOP;
         params.x = 0;
         params.y = DeviceInfo.dip2px(getApplicationContext(), 25);
@@ -157,6 +177,22 @@ public class FloatService extends Service implements View.OnClickListener {
         super.onDestroy();
     }
 
+
+
+    /**
+     * 前往开启辅助服务界面
+     */
+    private void goAccess() {
+        Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        startActivity(intent);
+
+        Intent intent2 = new Intent(this, TopService.class);
+        startService(intent2);
+
+    }
+
+
     @Override
     public void onClick(View v) {
         Intent intent;
@@ -166,23 +202,26 @@ public class FloatService extends Service implements View.OnClickListener {
             mRight.setVisibility(View.GONE);
             closeActivitys();
             String pkg = PackageUtil.getLauncherTopApp(getApplicationContext());
+
             if (TextUtils.isEmpty(pkg)) {
-                if (new OpenService().checkAccessibility(this)) {
-                    Intent intent2 = new Intent(this, TopService.class);
-                    startService(intent2);
-                } else {
-                    Toast.makeText(this, "未开启辅助功能任务提交有可能失败", Toast.LENGTH_LONG).show();
-                    return;
-                }
                 pkg = TopService.PackName;
             }
             if (TextUtils.isEmpty(pkg)) {
-                Toast.makeText(this, "自动截屏失败,已为你跳转到手动截图界面上传", Toast.LENGTH_LONG).show();
-//                intent = new Intent(FloatService.this, ShotScreenActivity.class);
-//                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-//                intent.putExtra("pkg", pkg);
-//                startActivity(intent);
-                return;
+                if (!new OpenService().isAccessibilitySettingsOn(this)) {
+                    AlertDialog.Builder  builder=    new AlertDialog.Builder(this)
+                            .setTitle("温馨提示!")
+                            .setMessage("亲!要赚钱需要手动开启小绵羊辅助功能哟!")
+                            .setPositiveButton("去开启", new DialogInterface.OnClickListener() {
+                                @Override
+                                public void onClick(DialogInterface dialog, int which) {
+                                    goAccess();
+                                }
+                            });
+                    builder.setCancelable(false);
+                    builder.show();
+                    return ;
+                }
+
             }
             intent = new Intent(FloatService.this, ShotScreenActivity.class);
             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

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

@@ -45,6 +45,7 @@ public class NetManager {
 
 
     public static void get(String url, Map<String, String> parma, Context context, SheepCallback callback) {
+
         if (parma != null) {
             String param = "";
             for (Map.Entry<String, String> el : parma.entrySet()) {

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

@@ -75,6 +75,7 @@ public abstract class SheepCallback<T> implements Callback {
     public abstract void success(T t);
 
     public void failure(IOException e) {
+
     }
 
     private static Type getSuperclassTypeParameter(Class<?> subclass) {

+ 34 - 31
app/src/main/java/com/sheep/jiuyan/samllsheep/net/Url.java

@@ -6,66 +6,69 @@ import com.sheep.jiuyan.samllsheep.Config;
  * Created by kemllor on 2017/12/14.
  */
 
-public class Url {
+public interface Url {
     //上传图片&提交任务
-    public static String UPLOAD_IMG = Config.instance().mBaseUrl + "/v1/up/";
+     String UPLOAD_IMG = Config.instance().mBaseUrl + "/v1/up/";
     //获取任务列表
-    public static String PUBLISH_TASKS = Config.instance().mBaseUrl + "/v1/task_publish/getTasks/";
+    String PUBLISH_TASKS = Config.instance().mBaseUrl + "/v1/task_publish/getTasks/";
     //绑定微信
-    public static String BIND_WX = Config.instance().mBaseUrl + "/v1/user/bindWx";
+     String BIND_WX = Config.instance().mBaseUrl + "/v1/user/bindWx";
     //获取机器人
-    public static String BIND_ROBOT = Config.instance().mBaseUrl + "/v1/user/getRobot";
+   String BIND_ROBOT = Config.instance().mBaseUrl + "/v1/user/getRobot";
     //用户信息
-    public static String USER_INFO = Config.instance().mBaseUrl + "/v1/user/getUserInfo";
+    String USER_INFO = Config.instance().mBaseUrl + "/v1/user/getUserInfo";
     //提交记录
-    public static String USER_COMMIT = Config.instance().mBaseUrl + "/v1/user/getDoneTask";
+    String USER_COMMIT = Config.instance().mBaseUrl + "/v1/user/getDoneTask";
     //是否接受任务
-    public static String USER_CHECK_REGISTER = Config.instance().mBaseUrl + "/v1/task_publish/getRegisterTask";
+   String USER_CHECK_REGISTER = Config.instance().mBaseUrl + "/v1/task_publish/getRegisterTask";
     //接受任务
-    public static String USER_REGISTER_TASK = Config.instance().mBaseUrl + "/v1/task_publish/registerTask";
+     String USER_REGISTER_TASK = Config.instance().mBaseUrl + "/v1/task_publish/registerTask";
     //进行中的任务
-    public static String USER_PULL_TASK = Config.instance().mBaseUrl + "/v1/task_publish/getDoingTask";
+    String USER_PULL_TASK = Config.instance().mBaseUrl + "/v1/task_publish/getDoingTask";
     //提现记录
-    public static String USER_WITHDRAW_RECORD = Config.instance().mBaseUrl + "/v1/withDraw/getHistroyCommit";
+    String USER_WITHDRAW_RECORD = Config.instance().mBaseUrl + "/v1/withDraw/getHistroyCommit";
     //提现
-    public static String USER_WITHDRAW = Config.instance().mBaseUrl + "/v1/withDraw/withDraw";
+     String USER_WITHDRAW = Config.instance().mBaseUrl + "/v1/withDraw/withDraw";
     //新手任务
-    public static String WXTASK = Config.instance().mBaseUrl + "/v1/task_publish/getWxTask";
+     String WXTASK = Config.instance().mBaseUrl + "/v1/task_publish/getWxTask";
     //资金记录
-    public static String MONEYRECORD = Config.instance().mBaseUrl + "/v1/user/getMoneyRecord";
+    String MONEYRECORD = Config.instance().mBaseUrl + "/v1/user/getMoneyRecord";
     //任务数量
-    public static String GET_TASK_COUNT = Config.instance().mBaseUrl + "/v1/user/getTaskCount";
+     String GET_TASK_COUNT = Config.instance().mBaseUrl + "/v1/user/getTaskCount";
     //微信列表
-    public static String WXACCOUNT = Config.instance().mBaseUrl + "/v1/user/userChildWxList";
+     String WXACCOUNT = Config.instance().mBaseUrl + "/v1/user/userChildWxList";
     //微信任务列表
-    public static String TASK_LIST = Config.instance().mBaseUrl + "/v1/user/getChildTaskList";
+     String TASK_LIST = Config.instance().mBaseUrl + "/v1/user/getChildTaskList";
     //提交微信
-    public static String COMMIT_WXACCOUNT = Config.instance().mBaseUrl + "/v1/user/commitWx";
+     String COMMIT_WXACCOUNT = Config.instance().mBaseUrl + "/v1/user/commitWx";
 
-    public static String BINGACCOUNT = Config.instance().mBaseUrl + "/v1/user/register";
+     String BINGACCOUNT = Config.instance().mBaseUrl + "/v1/user/register";
     //微信指导
-    public static String REQUEST_HOOK = Config.instance().mBaseUrl + "/static/index.html";
+      String REQUEST_HOOK = Config.instance().mBaseUrl + "/static/index.html";
     //提供微信号页面
-    public static String ADD_CHILD_WX = Config.instance().mBaseUrl + "/static/apply3.html";
+     String ADD_CHILD_WX = Config.instance().mBaseUrl + "/static/apply3.html";
     //任务引导
-    public static String TASK_GUIDE = Config.instance().mBaseUrl + "/static/task_guidance.html";
+     String TASK_GUIDE = Config.instance().mBaseUrl + "/static/task_guidance.html";
     //登录好玩
-    public static String LOGIN = Config.instance().mBaseUrl + "/v1/user/login";
+    String LOGIN = Config.instance().mBaseUrl + "/v1/user/login";
     //授权
-    public static String REGISTER_SHEEP = Config.instance().mBaseUrl + "/v1/user/register";
+     String REGISTER_SHEEP = Config.instance().mBaseUrl + "/v1/user/register";
     //注册好玩
-    public static String REGISTER_HW = Config.instance().mBaseUrl + "/v1/user/registerHw";
+     String REGISTER_HW = Config.instance().mBaseUrl + "/v1/user/registerHw";
     //邀请链接
-    public static String USER_INVITE_URL = Config.instance().mBaseUrl + "/v1/user/getInviteUrl";
+    String USER_INVITE_URL = Config.instance().mBaseUrl + "/v1/user/getInviteUrl";
     //新手任务
-    public static String NEW_USER_TASK_LIST = Config.instance().mBaseUrl + "/v1/newbie/";
+     String NEW_USER_TASK_LIST = Config.instance().mBaseUrl + "/v1/newbie/";
     //好友信息
-    public static String USER_INVITE_INFO = Config.instance().mBaseUrl + "/v1/search/statistics";
+     String USER_INVITE_INFO = Config.instance().mBaseUrl + "/v1/search/statistics";
     //是否完成新手任务
-    public static String USER_ISFINISH_NEW_TASK = Config.instance().mBaseUrl + "/v1/newbie/can_receive";
+     String USER_ISFINISH_NEW_TASK = Config.instance().mBaseUrl + "/v1/newbie/can_receive";
     //获取完成新手任务礼包
-    public static String GET_NEW_TASK_RED = Config.instance().mBaseUrl + "/v1/newbie/receive";
+     String GET_NEW_TASK_RED = Config.instance().mBaseUrl + "/v1/newbie/receive";
     //新手任务奖励
-    public static String GET_NEW_TASK_MONEY = Config.instance().mBaseUrl + "/v1/newbie/know_the_sheep";
+     String GET_NEW_TASK_MONEY = Config.instance().mBaseUrl + "/v1/newbie/know_the_sheep";
+      //重置密码中的发送验证码
+     String  GET_RESET_PWD_CODE=Config.instance().mBaseUrl + "/v1/findPwd";
+
 
 }

+ 28 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/page/AskFriendActivity.java

@@ -47,6 +47,7 @@ public class AskFriendActivity extends BaseActivity implements View.OnClickListe
     private TextView tv_proportion_size;
     private RelativeLayout rl_emw;
     private RelativeLayout rl_link;
+    private RelativeLayout rl_face;
 
     private String shareLink;
     private TextView tv_today_size;
@@ -64,6 +65,7 @@ public class AskFriendActivity extends BaseActivity implements View.OnClickListe
         tv_proportion_size = (TextView) findViewById(R.id.tv_proportion_size);
         rl_emw = (RelativeLayout) findViewById(R.id.rl_emw);
         rl_link = (RelativeLayout) findViewById(R.id.rl_link);
+        rl_face=(RelativeLayout) findViewById(R.id.rl_face);
         TitleBarUtils.getInstance().setTitle(this, "邀请好友").setTitleFinish(this);
 
     }
@@ -72,6 +74,7 @@ public class AskFriendActivity extends BaseActivity implements View.OnClickListe
     public void initListener() {
         rl_emw.setOnClickListener(this);
         rl_link.setOnClickListener(this);
+        rl_face.setOnClickListener(this);
     }
 
     @Override
@@ -81,11 +84,13 @@ public class AskFriendActivity extends BaseActivity implements View.OnClickListe
     }
 
     private void getInviteInfo() {
+        showProgress();
         HashMap<String, String> map = new HashMap<>();
         map.put("wx_open_id", SpUtils.getOpenId(this));
         NetManager.get(Url.USER_INVITE_INFO, map, getApplicationContext(), new SheepCallback<UerInviteInfo>(this) {
             @Override
             public void success(UerInviteInfo uerInviteInfo) {
+                 hideProgress();
                 if (uerInviteInfo != null && uerInviteInfo.getUser() != null) {
                     tv_reward_size.setText(uerInviteInfo.getUser().getCommission());
                     tv_friend_size.setText(uerInviteInfo.getUser().getInviteNum());
@@ -93,18 +98,35 @@ public class AskFriendActivity extends BaseActivity implements View.OnClickListe
                     tv_today_size.setText(uerInviteInfo.getUser().getTodayNum());
                 }
             }
+
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+            }
         });
+
+
+
     }
 
     private void getShareLink() {
+        showProgress();
         HashMap<String, String> map = new HashMap<>();
         map.put("wx_open_id", SpUtils.getOpenId(this));
         NetManager.get(Url.USER_INVITE_URL, map, getApplicationContext(), new SheepCallback<InviteUrl>(this) {
             @Override
             public void success(InviteUrl o) {
+                hideProgress();
                 if (o != null)
                     shareLink = o.getUrl();
             }
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+            }
+
         });
     }
 
@@ -118,6 +140,12 @@ public class AskFriendActivity extends BaseActivity implements View.OnClickListe
             case R.id.rl_link:
                 showLink();
                 break;
+            case R.id.rl_face:
+                Intent i=new  Intent(this,WebActivity.class);
+                i.putExtra(WebActivity.INTENT_URL,"file:///android_asset/poster.html");
+                i.putExtra(WebActivity.INTENT_TITLE,"ditui");
+                startActivity(i);
+                break;
         }
     }
 

+ 7 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/page/BindWxActivity.java

@@ -44,14 +44,17 @@ public class BindWxActivity extends BaseActivity implements View.OnClickListener
 
     @Override
     public void initData() {
+        showProgress();
         NetManager.get(Url.BIND_ROBOT, null, getApplicationContext(), new SheepCallback<String>(this) {
             @Override
             public void success(String robot) {
+                hideProgress();
                 mRobot.setText(String.format("添加好友->佣金发放号:%s", robot));
             }
 
             @Override
             public void failure(IOException e) {
+                hideProgress();
                 Toast.makeText(BindWxActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
             }
         });
@@ -72,18 +75,22 @@ public class BindWxActivity extends BaseActivity implements View.OnClickListener
         if (TextUtils.isEmpty(openId)) {
             //            startActivity(new Intent(this, LoginActivity.class));
         } else {
+
             HashMap<String, String> map = new HashMap<>();
             map.put("wx_id", wxId);
             map.put("wx_open_id", openId);
+            showProgress();
             NetManager.get(Url.BIND_WX, map, getApplicationContext(), new SheepCallback<String>(this) {
                 @Override
                 public void success(String s) {
+                    hideProgress();
                     Toast.makeText(BindWxActivity.this, s, Toast.LENGTH_SHORT).show();
                     finish();
                 }
 
                 @Override
                 public void failure(IOException e) {
+                    hideProgress();
                     Toast.makeText(BindWxActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                 }
             });

+ 55 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/page/GameDetailActivity.java

@@ -5,7 +5,9 @@ import android.content.DialogInterface;
 import android.content.Intent;
 import android.database.Cursor;
 import android.net.Uri;
+import android.os.Build;
 import android.provider.MediaStore;
+import android.support.annotation.RequiresApi;
 import android.support.v7.app.AlertDialog;
 import android.text.Html;
 import android.text.TextUtils;
@@ -99,6 +101,7 @@ public class GameDetailActivity extends BaseActivity {
         });
         mWebText.getSettings().setJavaScriptEnabled(true);
         mWebText.setWebViewClient(new WebViewClient() {
+            @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
             @Override
             public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                 view.loadUrl(request.getUrl().toString());
@@ -149,15 +152,18 @@ public class GameDetailActivity extends BaseActivity {
     }
 
     private void checkIsRegisterTask() {
+        showProgress();
         HashMap<String, String> map = new HashMap<>();
         map.put("wx_open_id", SpUtils.getOpenId(this));
         map.put("publish_id", mTask.getId() + "");
         NetManager.get(Url.USER_CHECK_REGISTER, map, getApplicationContext(), new SheepCallback<String>(this) {
             @Override
             public void success(String ok) {
+                hideProgress();
                 if (TextUtils.equals(ok, "ok")) {
                     uploadImag();
                 } else {
+
                     showRecommitDialog("用户同时只能领取一个任务,是否领取此任务?");
                 }
                 mBtnUpImag.setEnabled(true);
@@ -165,7 +171,9 @@ public class GameDetailActivity extends BaseActivity {
 
             @Override
             public void failure(IOException e) {
+                hideProgress();
                 mBtnUpImag.setEnabled(true);
+
             }
         });
     }
@@ -182,9 +190,11 @@ public class GameDetailActivity extends BaseActivity {
         map.put("wx_open_id", SpUtils.getOpenId(this));
         map.put("task_id", task.getId() + "");
         map.put("imei", new DeviceUtils(getApplicationContext()).getIMEI());
+        showProgress();
         NetManager.get(Url.USER_REGISTER_TASK, map, getApplicationContext(), new SheepCallback<String>(this) {
             @Override
             public void success(String o) {
+                hideProgress();
                 String pkg = task.getTask().getPkg();
                 if (!TextUtils.isEmpty(pkg)) {
                     boolean installed = PackageUtil.isAppInstalled(getApplicationContext(), pkg);
@@ -199,6 +209,12 @@ public class GameDetailActivity extends BaseActivity {
                     Toast.makeText(GameDetailActivity.this, "任务已经领取,快去完成吧", Toast.LENGTH_SHORT).show();
                 }
             }
+
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+            }
         });
 
     }
@@ -225,6 +241,30 @@ public class GameDetailActivity extends BaseActivity {
     }
 
 
+
+    private void  showNotDoingTask(){
+
+        if(!TextUtils.isEmpty(SpUtils.getImagePath(this))){
+
+           new android.app.AlertDialog.Builder(this)
+                    .setTitle("温馨提示!")
+                    .setMessage("亲!还有未上传的截图哟!是否去上传?")
+                    .setPositiveButton("确定", new DialogInterface.OnClickListener() {
+                        @Override
+                        public void onClick(DialogInterface dialog, int which) {
+                            commitTask(SpUtils.getImagePath(GameDetailActivity.this));
+                        }
+                    }).setNegativeButton("取消",null).show();
+
+
+        }
+
+
+
+
+    }
+
+
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
@@ -252,10 +292,12 @@ public class GameDetailActivity extends BaseActivity {
         parma.put("task_pkg", topApp);
         parma.put("publish_id", mTask.getId() + "");
         parma.put("wx_open_id", SpUtils.getOpenId(this));
+        showProgress();
         NetManager.upload(Url.UPLOAD_IMG, parma, new File(path), getApplicationContext(), new SheepCallback<String>(this) {
             @Override
             public void success(String s) {
-
+                hideProgress();
+                SpUtils.setImagePath(GameDetailActivity.this,"");
                 Toast.makeText(GameDetailActivity.this, s, Toast.LENGTH_SHORT).show();
                 if(mPb!=null) {
                     mPb.setVisibility(View.GONE);
@@ -264,6 +306,7 @@ public class GameDetailActivity extends BaseActivity {
 
             @Override
             public void failure(IOException e) {
+                hideProgress();
                 if(mPb!=null) {
                     mPb.setVisibility(View.GONE);
                 }
@@ -302,9 +345,11 @@ public class GameDetailActivity extends BaseActivity {
         }
         HashMap<String, String> map = new HashMap<>();
         map.put("wx_open_id", SpUtils.getOpenId(SheepApp.mContext));
+        showProgress();
         NetManager.get(Url.USER_PULL_TASK, map, SheepApp.mContext, new SheepCallback<TaskPublish>(GameDetailActivity.this) {
             @Override
             public void success(final TaskPublish taskPublish) {
+                hideProgress();
                 if (taskPublish != null) {
                     int thisId = mTask.getId();
                     int pullId = taskPublish.getId();
@@ -328,7 +373,16 @@ public class GameDetailActivity extends BaseActivity {
             public void otherCode(int code, String string) {
                 mLlInfos.addView(getStep("领取任务", "待完成", 2));
             }
+
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+            }
         });
+
+        showNotDoingTask();
+
     }
 
 

+ 9 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/page/InputWXAccountActivity.java

@@ -16,6 +16,7 @@ import com.sheep.jiuyan.samllsheep.net.Url;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
+import java.io.IOException;
 import java.util.HashMap;
 
 /**
@@ -121,14 +122,21 @@ public class InputWXAccountActivity extends BaseActivity implements View.OnClick
         map.put("ps_2", et_pwd_2.getText().toString());
         map.put("ps_3", et_pwd_3.getText().toString());
         map.put("ps_4", et_pwd_4.getText().toString());
-
+        showProgress();
         NetManager.get(Url.COMMIT_WXACCOUNT, map, getApplicationContext(), new SheepCallback<String>(this) {
 
 
             @Override
             public void success(String s) {
+                hideProgress();
                   Toast.makeText(InputWXAccountActivity.this,"数据上传成功",Toast.LENGTH_LONG).show();
             }
+
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+            }
         });
     }
 

+ 21 - 35
app/src/main/java/com/sheep/jiuyan/samllsheep/page/LoginActivity.java

@@ -43,10 +43,12 @@ public class LoginActivity extends BaseActivity {
     protected int getLayoutId() {
         return R.layout.login_actvity;
     }
-
-
     @Override
     public void initData() {
+        Intent i=getIntent();
+        if(i!=null&&i.hasExtra("phone")){
+            mEtAccount.setText(i.getStringExtra("phone"));
+        }
     }
 
     private EditText mEtAccount;
@@ -54,6 +56,8 @@ public class LoginActivity extends BaseActivity {
     private ImageView mImgLogin;
     private TextView mTvWx;
     private TextView mTvRegister;
+    private TextView mTvForgetPwd;
+
 
     private void findViews() {
         mEtAccount = (EditText) findViewById(R.id.et_account);
@@ -61,37 +65,13 @@ public class LoginActivity extends BaseActivity {
         mImgLogin = (ImageView) findViewById(R.id.img_login);
         mTvWx = (TextView) findViewById(R.id.tv_wx);
         mTvRegister = (TextView) findViewById(R.id.tv_register);
+        mTvForgetPwd = (TextView) findViewById(R.id.tv_forget_pwd);
     }
 
 
     @Override
     public void initView() {
         findViews();
-
-        if (Build.VERSION.SDK_INT >= 23) {
-            if (!Settings.canDrawOverlays(LoginActivity.this)||!PremissUtils.hasPermission(LoginActivity.this)) {
-                new AlertDialog.Builder(this)
-                        .setTitle("温馨提示!")
-                        .setMessage("亲!要赚钱需要手动开启悬浮框和在其他上层显示权限 请逐一开启哟!")
-                        .setPositiveButton("去开启", new DialogInterface.OnClickListener() {
-                            @RequiresApi(api = Build.VERSION_CODES.M)
-                            @Override
-                            public void onClick(DialogInterface dialog, int which) {
-
-                                if(!Settings.canDrawOverlays(LoginActivity.this)){
-                                    Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
-                                    startActivity(intent);
-                                }
-                                if(!PremissUtils.hasPermission(LoginActivity.this)){
-                                    PremissUtils.openUsageAccessPage(LoginActivity.this);
-                                }
-
-                            }
-
-                        })
-                        .show();
-            }
-        }
     }
 
     @Override
@@ -111,14 +91,16 @@ public class LoginActivity extends BaseActivity {
                 loginFromHw();
             }
         });
-       /* if (BuildConfig.DEBUG)
-            mTvRegister.setOnLongClickListener(new View.OnLongClickListener() {
-                @Override
-                public boolean onLongClick(View v) {
-                    initDialog();
-                    return true;
-                }
-            });*/
+
+        mTvForgetPwd.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent(LoginActivity.this, ResetPWDActivity.class);
+                startActivity(intent);
+                finish();
+            }
+        });
+
     }
 
     private void initDialog() {
@@ -172,6 +154,7 @@ public class LoginActivity extends BaseActivity {
         HashMap<String, String> map = new HashMap<>();
         map.put("account", account);
         map.put("pwd", psw);
+        showProgress();
         NetManager.post(Url.LOGIN, map, getApplicationContext(), new SheepCallback<String>(LoginActivity.this) {
             @Override
             public void success(String o) {
@@ -180,6 +163,7 @@ public class LoginActivity extends BaseActivity {
                 NetManager.get(Url.REGISTER_SHEEP, map, getApplicationContext(), new SheepCallback<BindUserEntiey>(LoginActivity.this) {
                     @Override
                     public void success(BindUserEntiey o) {
+                        hideProgress();
                         SpUtils.login(LoginActivity.this, o.getOpenId());
                         Intent intent = new Intent(LoginActivity.this, MainActivity.class);
                         startActivity(intent);
@@ -188,6 +172,7 @@ public class LoginActivity extends BaseActivity {
 
                     @Override
                     public void failure(IOException e) {
+                        hideProgress();
                         String message = e.getMessage();
                         if (message.contains("参数错误")) {
                             message = message.replace("参数错误", "");
@@ -201,6 +186,7 @@ public class LoginActivity extends BaseActivity {
 
             @Override
             public void failure(IOException e) {
+                hideProgress();
                 Toast.makeText(LoginActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                 mTvWx.setEnabled(true);
             }

+ 49 - 2
app/src/main/java/com/sheep/jiuyan/samllsheep/page/MainActivity.java

@@ -9,6 +9,7 @@ import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.SystemClock;
+import android.provider.Settings;
 import android.support.annotation.Nullable;
 import android.support.design.widget.AppBarLayout;
 import android.support.design.widget.TextInputEditText;
@@ -42,6 +43,7 @@ import com.sheep.jiuyan.samllsheep.base.BaseActivity;
 import com.sheep.jiuyan.samllsheep.download.DownloadManager;
 import com.sheep.jiuyan.samllsheep.event.MainTab;
 import com.sheep.jiuyan.samllsheep.event.NewUserDialog;
+import com.sheep.jiuyan.samllsheep.floatwindow.FloatService;
 import com.sheep.jiuyan.samllsheep.floatwindow.FloatWindow;
 import com.sheep.jiuyan.samllsheep.net.NetManager;
 import com.sheep.jiuyan.samllsheep.net.SheepCallback;
@@ -50,7 +52,10 @@ import com.sheep.jiuyan.samllsheep.page.adapter.AdpMainPageViewPager;
 import com.sheep.jiuyan.samllsheep.page.fragment.FgtMainPageOffline;
 import com.sheep.jiuyan.samllsheep.page.fragment.FgtMainPageTask;
 import com.sheep.jiuyan.samllsheep.page.view.RappTabLayout;
+import com.sheep.jiuyan.samllsheep.service.TopService;
 import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.OpenService;
+import com.sheep.jiuyan.samllsheep.utils.PremissUtils;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.StringUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
@@ -77,7 +82,6 @@ import static android.support.v4.view.ViewPager.SCROLL_STATE_IDLE;
 * file: MainActivity.class
 */
 public class MainActivity extends BaseActivity {
-
     private RappTabLayout mRappTabLayout;
     private ViewPager mViewPager;
     private AdpMainPageViewPager mAdpMainPageViewPager;
@@ -95,6 +99,8 @@ public class MainActivity extends BaseActivity {
     private TextView mTvRedMoney;
     private View mView;
 
+
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         Intent intent = getIntent();
@@ -104,6 +110,39 @@ public class MainActivity extends BaseActivity {
         }
         super.onCreate(savedInstanceState);
         EventBus.getDefault().register(this);
+        startOpenXFK();
+        goToQX();
+
+}
+
+
+
+
+    private  void  goToQX(){
+        if (Build.VERSION.SDK_INT >= 23) {
+            boolean has = PremissUtils.hasPermission(MainActivity.this);
+            if (!has) {
+                AlertDialog.Builder  builder=  new AlertDialog.Builder(this)
+                        .setTitle("温馨提示!")
+                        .setMessage("亲!要赚钱需要手动开启读取其他应用权限功能哟!")
+
+                        .setPositiveButton("去开启", new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                PremissUtils.openUsageAccessPage(MainActivity.this);
+                            }
+                        });
+                builder.setCancelable(false);
+                builder .show();
+            }
+        }
+
+    }
+
+
+    private  void  startOpenXFK(){
+        Intent intent = new Intent(MainActivity.this, FloatService.class);
+        startService(intent);
     }
 
     @Override
@@ -343,7 +382,6 @@ if (BuildConfig.DEBUG)
         super.onResume();
         if (DownloadManager.getInstance().getDownloadListCount() > 0) {
             btn.setImageResource(R.drawable.icon_download_red);
-
         } else {
             btn.setImageResource(R.drawable.icon_download);
         }
@@ -431,4 +469,13 @@ if (BuildConfig.DEBUG)
         }
         last = System.currentTimeMillis();
     }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+         if(PremissUtils.MY_PERMISSIONS_REQUEST_PACKAGE_USAGE_STATS==requestCode){
+             goToQX();
+         }
+
+    }
 }

+ 9 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/page/MoneyHistroyActivity.java

@@ -20,6 +20,7 @@ import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
+import java.io.IOException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -66,11 +67,19 @@ public class MoneyHistroyActivity extends BaseActivity {
     private void getTask() {
         final HashMap<String, String> map = new HashMap<>();
         map.put("wx_open_id", SpUtils.getOpenId(this));
+        showProgress();
         NetManager.get(Url.MONEYRECORD, map, getApplicationContext(), new SheepCallback<List<MoneyRecord>>(this) {
             @Override
             public void success(List<MoneyRecord> orders) {
+                hideProgress();
                 showView(orders);
             }
+
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+            }
         });
     }
 

+ 8 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/page/NewUserGuideActivity.java

@@ -84,9 +84,11 @@ public class NewUserGuideActivity extends BaseActivity {
         HashMap<String, String> map = new HashMap<>();
         map.put("open_id", SpUtils.getOpenId(this));
         map.put("task_id", "" + id);
+        showProgress();
         NetManager.postForm(Url.GET_NEW_TASK_MONEY, map, getApplicationContext(), new SheepCallback<String>(this) {
             @Override
             public void success(String s) {
+                hideProgress();
                 if (TextUtils.equals(s, "OK")) {
                     initData();
                     Toast.makeText(NewUserGuideActivity.this, "获取奖励(^.^)", Toast.LENGTH_SHORT).show();
@@ -95,6 +97,9 @@ public class NewUserGuideActivity extends BaseActivity {
 
             @Override
             public void failure(IOException e) {
+                hideProgress();
+                Toast.makeText(NewUserGuideActivity.this,"数据请求失败",Toast.LENGTH_LONG).show();
+
             }
         });
     }
@@ -116,10 +121,12 @@ public class NewUserGuideActivity extends BaseActivity {
     public void initData() {
         HashMap<String, String> map = new HashMap<>();
         map.put("open_id", SpUtils.getOpenId(this));
+        showProgress();
         NetManager.get(Url.NEW_USER_TASK_LIST, map, getApplicationContext(), new SheepCallback<List<NewUserTask>>(this) {
 
             @Override
             public void success(List<NewUserTask> newUserTasks) {
+                hideProgress();
                 mAdapter.clear();
                 mAdapter.addAll(newUserTasks);
                 mAdapter.notifyDataSetChanged();
@@ -127,6 +134,7 @@ public class NewUserGuideActivity extends BaseActivity {
 
             @Override
             public void failure(IOException e) {
+                hideProgress();
             }
         });
 

+ 49 - 16
app/src/main/java/com/sheep/jiuyan/samllsheep/page/RegisterActivity.java

@@ -2,6 +2,7 @@ package com.sheep.jiuyan.samllsheep.page;
 
 import android.content.Intent;
 import android.os.Handler;
+import android.support.v7.widget.AppCompatEditText;
 import android.text.TextUtils;
 import android.view.View;
 import android.widget.EditText;
@@ -15,6 +16,7 @@ import com.sheep.jiuyan.samllsheep.net.SheepCallback;
 import com.sheep.jiuyan.samllsheep.net.Url;
 import com.sheep.jiuyan.samllsheep.page.entry.BindUserEntiey;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
+import com.sheep.jiuyan.samllsheep.utils.StringUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
 import java.io.IOException;
@@ -28,14 +30,16 @@ import okhttp3.Call;
 
 public class RegisterActivity extends BaseActivity {
 
-    private EditText mEtAccount;
-    private EditText mEtCode;
+    private AppCompatEditText mEtAccount;
+    private AppCompatEditText mEtCode;
     private TextView mBtnCode;
-    private EditText mEtPsw;
-    private EditText mEtInvite;
+    private AppCompatEditText mEtPsw;
+    private AppCompatEditText mEtInvite;
     private TextView mTvWx;
 
 
+    private  boolean  isSendCodeSuccess=false;
+
     @Override
     protected int getLayoutId() {
         return R.layout.register_activity;
@@ -48,11 +52,11 @@ public class RegisterActivity extends BaseActivity {
 
 
     private void findViews() {
-        mEtAccount = (EditText) findViewById(R.id.et_account);
-        mEtCode = (EditText) findViewById(R.id.et_code);
+        mEtAccount = (AppCompatEditText) findViewById(R.id.et_account);
+        mEtCode = (AppCompatEditText) findViewById(R.id.et_code);
         mBtnCode = (TextView) findViewById(R.id.btn_code);
-        mEtPsw = (EditText) findViewById(R.id.et_psw);
-        mEtInvite = (EditText) findViewById(R.id.et_invite);
+        mEtPsw = (AppCompatEditText) findViewById(R.id.et_psw);
+        mEtInvite = (AppCompatEditText) findViewById(R.id.et_invite);
         mTvWx = (TextView) findViewById(R.id.tv_wx);
     }
 
@@ -65,7 +69,6 @@ public class RegisterActivity extends BaseActivity {
                 register();
             }
         });
-
         mBtnCode.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -86,7 +89,13 @@ public class RegisterActivity extends BaseActivity {
         mBtnCode.setEnabled(false);
         String moble = mEtAccount.getText().toString().trim();
         if (TextUtils.isEmpty(moble)) {
-            Toast.makeText(this, "请输入手机号", Toast.LENGTH_SHORT).show();
+            mEtAccount.setError("请输入手机号");
+            mBtnCode.setEnabled(true);
+
+            return;
+        }
+        if(!StringUtils.checkMobileNum(moble)){
+            mEtAccount.setError("请填写正确的手机号码");
             mBtnCode.setEnabled(true);
             return;
         }
@@ -96,6 +105,8 @@ public class RegisterActivity extends BaseActivity {
         NetManager.post(Url.REGISTER_HW, map, getApplicationContext(), new SheepCallback<String>(RegisterActivity.this) {
             @Override
             public void success(String o) {
+
+                isSendCodeSuccess=true;
                 Toast.makeText(RegisterActivity.this, "验证码已发送", Toast.LENGTH_SHORT).show();
                 mTime = 60;
                 handler.postDelayed(runnable, 1000);
@@ -103,6 +114,7 @@ public class RegisterActivity extends BaseActivity {
 
             @Override
             public void failure(IOException e) {
+
                 mBtnCode.setEnabled(true);
                 String message = e.getMessage();
                 if (message.contains("参数错误")) {
@@ -138,35 +150,55 @@ public class RegisterActivity extends BaseActivity {
         String code = mEtCode.getText().toString().trim();
         String inviteCode = mEtInvite.getText().toString().trim();
         if (TextUtils.isEmpty(moble)) {
-            Toast.makeText(this, "请输入手机号", Toast.LENGTH_SHORT).show();
+            mTvWx.setEnabled(true);
+            mEtAccount.setError("请输入手机号");
+            return;
+        }
+
+        if(!StringUtils.checkMobileNum(moble)){
+            mEtAccount.setError("请填写正确的手机号码");
             mTvWx.setEnabled(true);
             return;
         }
+
         if (TextUtils.isEmpty(code)) {
-            Toast.makeText(this, "请输入验证码", Toast.LENGTH_SHORT).show();
             mTvWx.setEnabled(true);
+            mEtCode.setError("请输入验证码");
             return;
         }
-        if (TextUtils.isEmpty(psw)) {
-            Toast.makeText(this, "请输入密码", Toast.LENGTH_SHORT).show();
+        if (code.length()!=6) {
             mTvWx.setEnabled(true);
+            mEtCode.setError("请填写6位手机验证码");
             return;
         }
 
+        if (TextUtils.isEmpty(psw)) {
+            mTvWx.setEnabled(true);
+            mEtPsw.setError("请输入密码");
+            return;
+        }
+        if (psw.length()<6) {
+            mTvWx.setEnabled(true);
+            mEtPsw.setError("密码长度必须大于6位");
+            return;
+        }
         HashMap<String, String> map = new HashMap<>();
         map.put("mobile", moble);
         map.put("psw", psw);
         map.put("code", code);
         map.put("step", "2");
         map.put("invite", inviteCode);
+        showProgress();
         NetManager.post(Url.REGISTER_HW, map, getApplicationContext(), new SheepCallback<String>(RegisterActivity.this) {
             @Override
             public void success(String token) {
+                hideProgress();
                 loginAuto(token);
             }
 
             @Override
             public void failure(IOException e) {
+                hideProgress();
                 String message = e.getMessage();
                 if (message.contains("参数错误")) {
                     message = message.replace("参数错误", "");
@@ -181,24 +213,25 @@ public class RegisterActivity extends BaseActivity {
     private void loginAuto(String token) {
         HashMap<String, String> map = new HashMap<>();
         map.put("token", token);
+        showProgress();
         NetManager.get(Url.REGISTER_SHEEP, map, getApplicationContext(), new SheepCallback<BindUserEntiey>(RegisterActivity.this) {
             @Override
             public void success(BindUserEntiey o) {
+                hideProgress();
                 SpUtils.login(RegisterActivity.this, o.getOpenId());
                 Intent intent = new Intent(RegisterActivity.this, MainActivity.class);
                 intent.putExtra("tag", "once");
                 startActivity(intent);
                 finish();
             }
-
             @Override
             public void failure(IOException e) {
+                hideProgress();
                 Toast.makeText(RegisterActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                 mTvWx.setEnabled(true);
             }
         });
     }
-
     @Override
     public void initData() {
 

+ 233 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/page/ResetPWDActivity.java

@@ -0,0 +1,233 @@
+package com.sheep.jiuyan.samllsheep.page;
+import android.content.Intent;
+import android.os.Handler;
+import android.support.v7.widget.AppCompatEditText;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.base.BaseActivity;
+import com.sheep.jiuyan.samllsheep.net.NetManager;
+import com.sheep.jiuyan.samllsheep.net.SheepCallback;
+import com.sheep.jiuyan.samllsheep.net.Url;
+import com.sheep.jiuyan.samllsheep.utils.StringUtils;
+
+import java.io.IOException;
+import java.util.HashMap;
+
+
+/**
+ * Created by Administrator on 2018/2/5.
+ */
+
+public class ResetPWDActivity extends BaseActivity  implements View.OnClickListener{
+
+    private TextView  mTvNext;
+    private  RelativeLayout rl_rset_pwd;
+    private  RelativeLayout rl_set_pwd;
+
+    private AppCompatEditText et_account;
+    private AppCompatEditText et_psw;
+    private TextView  tv_send;
+
+    private AppCompatEditText et_pwd1;
+    private AppCompatEditText et_pwd2;
+    private TextView tv_submit;
+    private int mTime = 0;
+    private String mPhone;
+
+    private Handler handler = new Handler();
+    Runnable runnable = new Runnable() {
+        @Override
+        public void run() {
+            mTime--;
+            if (mTime <= 0) {
+                tv_send.setText("重新发送");
+                tv_send.setEnabled(true);
+            } else {
+                tv_send.setText("重新发送(" + mTime + ")");
+                handler.postDelayed(this, 1000);
+            }
+        }
+    };
+
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.reset_pwd_activity;
+    }
+
+    @Override
+    public void initView() {
+        mTvNext=(TextView)findViewById(R.id.tv_next);
+        rl_rset_pwd=(RelativeLayout)findViewById(R.id.rl_rset_pwd);
+        rl_set_pwd=(RelativeLayout)findViewById(R.id.rl_set_pwd);
+        et_account=(AppCompatEditText)findViewById(R.id.et_account);
+        et_psw=(AppCompatEditText)findViewById(R.id.et_psw);
+        et_pwd1=(AppCompatEditText)findViewById(R.id.et_pwd1);
+        et_pwd2=(AppCompatEditText)findViewById(R.id.et_pwd2);
+        tv_send=(TextView)findViewById(R.id.tv_send);
+        tv_submit=(TextView)findViewById(R.id.tv_submit);
+    }
+
+    @Override
+    public void initListener() {
+        mTvNext.setOnClickListener(this);
+        tv_send.setOnClickListener(this);
+        tv_submit.setOnClickListener(this);
+    }
+    @Override
+    public void initData() {
+
+
+    }
+
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()){
+            case R.id.tv_next:
+                goNext();
+                break;
+            case R.id.tv_send:
+                sendCode();
+                break;
+            case R.id.tv_submit:
+                reSetPWD();
+                break;
+        }
+    }
+    private  void  hideSetPWD(){
+        rl_set_pwd.setVisibility(View.VISIBLE);
+        rl_rset_pwd.setVisibility(View.GONE);
+    }
+
+    private  void  sendCode(){
+        String moble = et_account.getText().toString().trim();
+        if (TextUtils.isEmpty(moble)) {
+            et_account.setError("请输入手机号");
+            tv_send.setEnabled(true);
+
+            return;
+        }
+        if(!StringUtils.checkMobileNum(moble)){
+            et_account.setError("请填写正确的手机号码");
+            tv_send.setEnabled(true);
+            return;
+        }
+        HashMap<String, String> map = new HashMap<>();
+        map.put("Account", moble);
+        map.put("Step", "1");
+        NetManager.post(Url.GET_RESET_PWD_CODE, map, getApplicationContext(), new SheepCallback<String>(ResetPWDActivity.this) {
+            @Override
+            public void success(String o) {
+
+                Toast.makeText(ResetPWDActivity.this, "验证码已发送", Toast.LENGTH_SHORT).show();
+                mTime = 60;
+                handler.postDelayed(runnable, 1000);
+            }
+
+            @Override
+            public void failure(IOException e) {
+                tv_send.setEnabled(true);
+                String message = e.getMessage();
+                if (message.contains("参数错误")) {
+                    message = message.replace("参数错误", "");
+                }
+                message = message.trim();
+                Toast.makeText(ResetPWDActivity.this, message, Toast.LENGTH_SHORT).show();
+            }
+        });
+
+    }
+
+
+    private  void  reSetPWD(){
+        String pw1 = et_pwd1.getText().toString().trim();
+        String pw2 = et_pwd2.getText().toString().trim();
+        if (TextUtils.isEmpty(pw1)) {
+            et_pwd1.setError("请输入密码");
+            return;
+        }
+
+        if (TextUtils.isEmpty(pw2)) {
+            et_pwd2.setError("请再次输入密码");
+            return;
+        }
+        if(!pw1.equals(pw2)){
+            et_pwd2.setError("密码不一致");
+            return;
+        }
+
+        HashMap<String, String> map = new HashMap<>();
+        map.put("Account", mPhone);
+        map.put("Step", "2");
+        map.put("NewPass", pw1);
+        showProgress();
+        NetManager.post(Url.GET_RESET_PWD_CODE, map, getApplicationContext(), new SheepCallback<String>(ResetPWDActivity.this) {
+            @Override
+            public void success(String o) {
+                hideProgress();
+                Toast.makeText(ResetPWDActivity.this, "密码修复成功,请重新登录", Toast.LENGTH_SHORT).show();
+                Intent i=new  Intent(ResetPWDActivity.this,LoginActivity.class);
+                i.putExtra("phone",mPhone);
+                startActivity(i);
+
+            }
+
+            @Override
+            public void failure(IOException e) {
+                hideProgress();
+                tv_send.setEnabled(true);
+                String message = e.getMessage();
+                if (message.contains("参数错误")) {
+                    message = message.replace("参数错误", "");
+                }
+                message = message.trim();
+                Toast.makeText(ResetPWDActivity.this, message, Toast.LENGTH_SHORT).show();
+            }
+        });
+
+
+
+
+    }
+
+    private  void  goNext(){
+
+        String moble = et_account.getText().toString().trim();
+        if (TextUtils.isEmpty(moble)) {
+            et_account.setError("请输入手机号");
+            return;
+        }
+
+        if(!StringUtils.checkMobileNum(moble)){
+            et_account.setError("请填写正确的手机号码");
+            return;
+        }
+
+        String  code=et_psw.getText().toString().trim();
+        if (TextUtils.isEmpty(code)) {
+            et_psw.setError("请输入验证码");
+            return;
+        }
+        if (code.length()!=6) {
+            et_psw.setError("请填写6位手机验证码");
+            return;
+        }
+        mPhone=et_account.getText().toString().trim();
+        hideSetPWD();
+
+
+
+    }
+
+
+
+
+
+
+}

+ 24 - 6
app/src/main/java/com/sheep/jiuyan/samllsheep/page/ShotScreenActivity.java

@@ -1,7 +1,9 @@
 package com.sheep.jiuyan.samllsheep.page;
 
 import android.app.Activity;
+import android.app.AlertDialog;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
@@ -36,12 +38,8 @@ import static java.security.AccessController.getContext;
  */
 
 public class ShotScreenActivity extends Activity {
-
     public static final int REQUEST_MEDIA_PROJECTION = 0x2893;
-    private Bitmap mBitmap;
     private String mPath;
-
-
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -88,12 +86,32 @@ public class ShotScreenActivity extends Activity {
         }
     }
 
-    private void commitTask(String path) {
+    private void commitTask(final String path) {
         String topApp = "";
-        Intent intent = getIntent();
+       final Intent intent = getIntent();
         if (intent != null) {
             topApp = intent.getStringExtra("pkg");
         }
+        if(TextUtils.isEmpty(topApp)){
+            AlertDialog.Builder  builder=    new AlertDialog.Builder(this)
+                    .setTitle("自动上传失败!")
+                    .setMessage("亲!请到任务列表选择你当前的任务 手动上传哟!")
+                    .setPositiveButton("去上传!", new DialogInterface.OnClickListener() {
+                        @Override
+                        public void onClick(DialogInterface dialog, int which) {
+                             Intent    intent = new Intent(getApplicationContext(), MainActivity.class);
+                             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                             startActivity(intent);
+                             SpUtils.setImagePath(ShotScreenActivity.this,path);
+                        }
+                    });
+            builder.setCancelable(false);
+            builder.show();
+            return ;
+
+        }
+
+
         HashMap<String, String> parma = new HashMap<>();
         parma.put("task_pkg", topApp);
         parma.put("wx_open_id", SpUtils.getOpenId(this));

+ 56 - 58
app/src/main/java/com/sheep/jiuyan/samllsheep/page/SplashActivity.java

@@ -4,14 +4,10 @@ import android.Manifest;
 import android.app.AlertDialog;
 import android.content.DialogInterface;
 import android.content.Intent;
-import android.os.Build;
 import android.os.Handler;
-import android.os.SystemClock;
-import android.provider.Settings;
 import android.text.TextUtils;
 import android.view.View;
 import android.widget.FrameLayout;
-import android.widget.TextView;
 import android.widget.Toast;
 
 import com.mylhyl.acp.Acp;
@@ -19,10 +15,8 @@ import com.mylhyl.acp.AcpListener;
 import com.mylhyl.acp.AcpOptions;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.base.BaseActivity;
-import com.sheep.jiuyan.samllsheep.floatwindow.FloatService;
-import com.sheep.jiuyan.samllsheep.floatwindow.FloatWindow;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
-import com.sheep.jiuyan.samllsheep.utils.PremissUtils;
+import com.sheep.jiuyan.samllsheep.utils.PermissionFloatWindowUtils;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
 import java.util.List;
@@ -31,9 +25,8 @@ import java.util.List;
  * Created by kemllor on 2018/1/24.
  */
 
-public class SplashActivity extends BaseActivity  implements View.OnClickListener {
+public class SplashActivity extends BaseActivity {
 
-    private FrameLayout fl;
 
     @Override
     protected int getLayoutId() {
@@ -42,18 +35,18 @@ public class SplashActivity extends BaseActivity  implements View.OnClickListene
 
     @Override
     public void initView() {
-        fl=(FrameLayout)findViewById(R.id.fl);
     }
 
     @Override
     public void initListener() {
-        fl.setOnClickListener(this);
-        findViewById(R.id.btn_join).setOnClickListener(this);
+
+
     }
 
     @Override
     public void initData() {
-        getSA();
+        OpenXFK();
+
     }
 
     /**
@@ -61,8 +54,7 @@ public class SplashActivity extends BaseActivity  implements View.OnClickListene
      */
     private void getSA() {
 
-
-        Acp.getInstance(this).request(new AcpOptions.Builder()
+             Acp.getInstance(this).request(new AcpOptions.Builder()
                         .setPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE
                                 ,Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE
                         )
@@ -72,6 +64,12 @@ public class SplashActivity extends BaseActivity  implements View.OnClickListene
                     public void onGranted() {
                         ClassFileHelper.getInstance().createSDDirection();
 
+                        new Handler().postDelayed(new Runnable() {
+                            @Override
+                            public void run() {
+                                goMain();
+                            }
+                        },2000);
                     }
 
                     @Override
@@ -80,35 +78,9 @@ public class SplashActivity extends BaseActivity  implements View.OnClickListene
 
                     }
                 });
-        if (Build.VERSION.SDK_INT >= 23) {
-            if (Settings.canDrawOverlays(SplashActivity.this)) {
-                Intent intent = new Intent(SplashActivity.this, FloatService.class);
-                startService(intent);
-            } else {
-                //若没有权限,提示获取.
-                showPremissSet();
-            }
-        } else {
-            Intent intent = new Intent(SplashActivity.this, FloatService.class);
-            startService(intent);
-        }
 
     }
 
-    @Override
-    public void onClick(View v) {
-        switch (v.getId()){
-            case R.id.fl:
-            case R.id.btn_join:
-                goMain();
-             break;
-
-
-}
-
-
-
-    }
 
     private  void  goMain(){
         String openId = SpUtils.getOpenId(getApplicationContext());
@@ -124,27 +96,53 @@ public class SplashActivity extends BaseActivity  implements View.OnClickListene
 
     }
 
-    private  void  showPremissSet(){
 
-        new AlertDialog.Builder(this)
-                .setTitle("温馨提示!")
-                .setMessage("亲!要赚钱需要手动在其他上层显示权限和有权查看其他应用权限 请逐一开启哟!")
-                .setPositiveButton("去开启", new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface dialog, int which) {
-                        Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
-                        startActivity(intent);
-                        if (Build.VERSION.SDK_INT >= 23) {
-                            boolean has = PremissUtils.hasPermission(SplashActivity.this);
-                            if (!has) {
-                                PremissUtils.openUsageAccessPage(SplashActivity.this);
-                            }
+    private  void  OpenXFK(){
+        // 增加权限
+        final PermissionFloatWindowUtils permissionFloatWindowUtils = PermissionFloatWindowUtils.getInstance();
+        boolean checkResult = permissionFloatWindowUtils.checkCanShowFloatWindow(this);
+        if (!checkResult) {
+            final AlertDialog alertDialog = new AlertDialog.Builder(this)
+                    .setTitle("温馨提示!")
+                    .setMessage("需要开启悬浮框权限才能参与赚钱哟!")
+                    .setPositiveButton("去开启", new DialogInterface.OnClickListener() {
+                        @Override
+                        public void onClick(DialogInterface dialogInterface, int i) {
+                            permissionFloatWindowUtils.grantShowFloatWindowPermission(SplashActivity.this);
                         }
-                    }
+                    })
+                    .setCancelable(false)
+                    .create();
+            alertDialog.setCanceledOnTouchOutside(false);
+            alertDialog.show();
+        }else{
+            getSA();
+        }
+
+
+    }
+
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if(requestCode==PermissionFloatWindowUtils.REQUEST_OVERLAY_PERMISSION){
+            if(resultCode==1){
+                OpenXFK();
+            }else{
+                getSA();
+            }
+
+
+        }
+
 
-                })
-                .show();
     }
 
 
+
+
+
+
+
 }

+ 24 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/page/TaskRecordActivity.java

@@ -26,6 +26,7 @@ import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.zhy.adapter.abslistview.CommonAdapter;
 import com.zhy.adapter.abslistview.ViewHolder;
 
+import java.io.IOException;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -84,15 +85,23 @@ public class TaskRecordActivity extends BaseActivity {
         if (commit.getStatus() == 3) {
             HashMap<String, String> map = new HashMap<>();
             map.put("wx_open_id", SpUtils.getOpenId(this));
+            showProgress();
             NetManager.get(Url.USER_CHECK_REGISTER, map, getApplicationContext(), new SheepCallback<String>(this) {
                 @Override
                 public void success(String ok) {
+                    hideProgress();
                     if (TextUtils.equals(ok, "ok")) {
                         startRecommitTask(commit);
                     } else {
                         showRecommitDialog("你有任务正在进行,是否取消,接受新任务?", commit);
                     }
                 }
+
+                @Override
+                public void failure(IOException e) {
+                    super.failure(e);
+                    hideProgress();
+                }
             });
         }
     }
@@ -122,9 +131,11 @@ public class TaskRecordActivity extends BaseActivity {
         map.put("wx_open_id", SpUtils.getOpenId(this));
         map.put("task_id", commit.getTaskPublishId() + "");
         map.put("imei", new DeviceUtils(getApplicationContext()).getIMEI());
+        showProgress();
         NetManager.get(Url.USER_REGISTER_TASK, map, getApplicationContext(), new SheepCallback<String>(this) {
             @Override
             public void success(String o) {
+                hideProgress();
                 String pkg = commit.getTask().getPkg();
                 if (!TextUtils.isEmpty(pkg)) {
                     boolean installed = PackageUtil.isAppInstalled(getApplicationContext(), pkg);
@@ -142,6 +153,12 @@ public class TaskRecordActivity extends BaseActivity {
                     Toast.makeText(TaskRecordActivity.this, "任务已经重新激活,快去完成吧", Toast.LENGTH_SHORT).show();
                 }
             }
+
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+            }
         });
 
     }
@@ -180,9 +197,11 @@ public class TaskRecordActivity extends BaseActivity {
         HashMap<String, String> map = new HashMap<>();
         map.put("wx_open_id", SpUtils.getOpenId(this));
         map.put("date", date);
+        showProgress();
         NetManager.get(Url.USER_COMMIT, map, getApplicationContext(), new SheepCallback<List<Commit>>(this) {
             @Override
             public void success(List<Commit> commits) {
+                hideProgress();
                 mCommits = commits;
                 if (mAdapter == null)
                     mLvTask.setAdapter(mAdapter = new CommonAdapter<Commit>(TaskRecordActivity.this, R.layout.task_record_item, commits) {
@@ -237,7 +256,11 @@ public class TaskRecordActivity extends BaseActivity {
                 }
             }
 
-
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+            }
         });
     }
 

+ 20 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/page/UserCenterActivity.java

@@ -19,6 +19,7 @@ import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.StringUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
+import java.io.IOException;
 import java.util.HashMap;
 
 import de.hdodenhof.circleimageview.CircleImageView;
@@ -75,9 +76,11 @@ public class UserCenterActivity extends BaseActivity implements View.OnClickList
     public void initData() {
         HashMap<String, String> map = new HashMap<>();
         map.put("wx_open_id", SpUtils.getOpenId(this));
+        showProgress();
         NetManager.get(Url.USER_INFO, map, getApplicationContext(), new SheepCallback<User>(this) {
             @Override
             public void success(User user) {
+                hideProgress();
                 mUser = user;
                 G.mUser = user;
                 mTvNick.setText(user.getNickName());
@@ -85,7 +88,23 @@ public class UserCenterActivity extends BaseActivity implements View.OnClickList
                 mTvCode.setText("我的邀请码  " + user.getInvitationCode());
                 Glide.with(getApplicationContext()).load(user.getIcon()).placeholder(R.drawable.icon).dontAnimate().into(mImgIcon);
             }
-        });
+
+                    @Override
+                    public void failure(IOException e) {
+                        super.failure(e);
+                        hideProgress();
+
+                    }
+                }
+
+
+
+        );
+
+
+
+
+
     }
 
     @Override

+ 8 - 3
app/src/main/java/com/sheep/jiuyan/samllsheep/page/WXAccountActivity.java

@@ -14,6 +14,7 @@ import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.zhy.adapter.abslistview.CommonAdapter;
 import com.zhy.adapter.abslistview.ViewHolder;
 
+import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 
@@ -73,18 +74,22 @@ public class WXAccountActivity extends BaseActivity {
             }
         };
         mLv.setAdapter(mAdapter);
-
     }
-
-
     private void getTask() {
         final HashMap<String, String> map = new HashMap<>();
         map.put("wx_open_id", SpUtils.getOpenId(this));
+        showProgress();
         NetManager.get(Url.WXACCOUNT, map, getApplicationContext(), new SheepCallback<List<WXAccount>>(this) {
             @Override
             public void success(List<WXAccount> orders) {
+                hideProgress();
                 showView(orders);
             }
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+            }
         });
     }
 

+ 45 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/page/WebActivity.java

@@ -22,6 +22,7 @@ import com.sheep.jiuyan.samllsheep.event.NewUserDialog;
 import com.sheep.jiuyan.samllsheep.net.NetManager;
 import com.sheep.jiuyan.samllsheep.net.SheepCallback;
 import com.sheep.jiuyan.samllsheep.net.Url;
+import com.sheep.jiuyan.samllsheep.page.entry.InviteUrl;
 import com.sheep.jiuyan.samllsheep.page.entry.WXAccount;
 import com.sheep.jiuyan.samllsheep.page.view.SlowlyProgressBar;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -47,6 +48,8 @@ public class WebActivity extends BaseActivity {
     public final static String INTENT_NEW_USER = "INTENT_NEW_USER";//新手引导
     public final static String TASK_COUNT = "TASK_COUNT";//任务完成数
     private SlowlyProgressBar slowlyProgressBar;
+    private String  mLinkUrl;
+
     @Override
     protected int getLayoutId() {
         return R.layout.web_activity;
@@ -105,6 +108,12 @@ public class WebActivity extends BaseActivity {
         if (getIntent().hasExtra(INTENT_LOAD_JS)) {
             mWeb.addJavascriptInterface(new PublicJavaScript(), "PublicJavaScript");
         }
+        if(getIntent().getStringExtra(INTENT_TITLE).equals("ditui")){
+            TitleBarUtils.getInstance().setShowOrHide(this,false);
+            mWeb.addJavascriptInterface(new PublicJavaScript(), "PublicJavaScript");
+            getShareLink();
+        }
+
     }
 
 
@@ -134,16 +143,19 @@ public class WebActivity extends BaseActivity {
             map.put("wx_1", user);
             map.put("ps_1", pass);
             map.put("phone", phone);
+            showProgress();
             NetManager.get(Url.COMMIT_WXACCOUNT, map, WebActivity.this,
                     new SheepCallback<String>(WebActivity.this) {
                         @Override
                         public void success(String string) {
+                            hideProgress();
                             G.showToast("申请成功!");
                             finish();
                         }
 
                         @Override
                         public void failure(IOException e) {
+                            hideProgress();
                             Toast.makeText(WebActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                         }
                     });
@@ -158,9 +170,42 @@ public class WebActivity extends BaseActivity {
         public void setTitle(String title) {
             TitleBarUtils.getInstance().setTitle(WebActivity.this, title);
         }
+
+        @JavascriptInterface
+        public void getCode() {
+            String url = "javascript:display_alert()";
+            mWeb.loadUrl(url);
+        }
+
+
+    }
+
+
+    private void getShareLink() {
+        HashMap<String, String> map = new HashMap<>();
+        map.put("wx_open_id", SpUtils.getOpenId(this));
+        showProgress();
+        NetManager.get(Url.USER_INVITE_URL, map, getApplicationContext(), new SheepCallback<InviteUrl>(this) {
+            @Override
+            public void success(InviteUrl o) {
+                hideProgress();
+                if (o != null)
+                    mLinkUrl = o.getUrl();
+            }
+
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+
+            }
+        });
     }
 
 
+
+
+
     @Override
     public void initListener() {
     }

+ 12 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/page/WithdrawActivity.java

@@ -21,6 +21,7 @@ import com.sheep.jiuyan.samllsheep.page.entry.User;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
+import java.io.IOException;
 import java.util.HashMap;
 
 /**
@@ -53,13 +54,21 @@ public class WithdrawActivity extends BaseActivity implements View.OnClickListen
 
     @Override
     public void initData() {
+        showProgress();
         HashMap<String, String> map = new HashMap<>();
         map.put("wx_open_id", SpUtils.getOpenId(this));
         NetManager.get(Url.USER_INFO, map, getApplicationContext(), new SheepCallback<User>(this) {
             @Override
             public void success(User user) {
+                hideProgress();
                 mMoney.setText(String.format("账户余额:%s", user.getBalance()));
             }
+
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+            }
         });
     }
 
@@ -95,14 +104,17 @@ public class WithdrawActivity extends BaseActivity implements View.OnClickListen
             HashMap<String, String> map = new HashMap<>();
             map.put("money", mMoneys[mAdapter.checked] + "");
             map.put("wx_open_id", SpUtils.getOpenId(this));
+            showProgress();
             NetManager.get(Url.USER_WITHDRAW, map, getApplicationContext(), new SheepCallback<String>(this) {
                 @Override
                 public void success(String o) {
+                    hideProgress();
                     showMsgDialog(o);
                 }
 
                 @Override
                 public void otherCode(int code, String string) {
+                    hideProgress();
                     if (code == 406) {
                         startActivity(new Intent(WithdrawActivity.this, BindWxActivity.class));
                         return;

+ 10 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/page/WithdrawRecordActivity.java

@@ -17,6 +17,7 @@ import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import com.zhy.adapter.abslistview.CommonAdapter;
 import com.zhy.adapter.abslistview.ViewHolder;
 
+import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 
@@ -50,9 +51,11 @@ public class WithdrawRecordActivity extends BaseActivity {
     public void initData() {
         final HashMap<String, String> map = new HashMap<>();
         map.put("wx_open_id", SpUtils.getOpenId(this));
+        showProgress();
         NetManager.get(Url.USER_WITHDRAW_RECORD, map, getApplicationContext(), new SheepCallback<List<Order>>(this) {
             @Override
             public void success(List<Order> orders) {
+                hideProgress();
                 mAdapter = new CommonAdapter<Order>(WithdrawRecordActivity.this, R.layout.withdraw_record_item, orders) {
                     @Override
                     protected void convert(ViewHolder viewHolder, Order item, int position) {
@@ -89,6 +92,13 @@ public class WithdrawRecordActivity extends BaseActivity {
                 };
                 mLvRecord.setAdapter(mAdapter);
             }
+
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+
+            }
         });
     }
 }

+ 8 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/page/WxAccountDetail.java

@@ -131,9 +131,11 @@ public class WxAccountDetail extends BaseActivity {
         HashMap<String, String> map = new HashMap<>();
         map.put("wx_open_id", SpUtils.getOpenId(SheepApp.mContext));
         map.put("wx_id", id);
+        showProgress();
         NetManager.get(Url.TASK_LIST, map, this, new SheepCallback<List<WxDetailList>>(this) {
             @Override
             public void success(List<WxDetailList> tasks) {
+                hideProgress();
                 if (mAdpWxDetailList != null) {
                     mAdpWxDetailList.clear();
                 }
@@ -142,6 +144,12 @@ public class WxAccountDetail extends BaseActivity {
                     mAdpWxDetailList.notifyDataSetChanged();
                 }
             }
+
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+            }
         });
     }
 

+ 5 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/page/XDownLoadActivity.java

@@ -76,6 +76,11 @@ public class XDownLoadActivity extends BaseActivity {
                 PackageUtil.installApk(getApplicationContext(), mApkPath.getAbsolutePath());
             }
         }
+
+        if(DownloadManager.getInstance().getDownloadListCount()<=0){
+
+        }
+
         mAdapter = new DownListAdapter(this);
         lv.setAdapter(mAdapter);
     }

+ 24 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/page/fragment/FgtMainPageTask.java

@@ -144,15 +144,23 @@ public class FgtMainPageTask extends BaseFragment {
     private void checkUserTask() {
         HashMap<String, String> map = new HashMap<>();
         map.put("wx_open_id", SpUtils.getOpenId(SheepApp.mContext));
+        showProgress();
         NetManager.get(Url.USER_CHECK_REGISTER, map, SheepApp.mContext, new SheepCallback<String>(getActivity()) {
             @Override
             public void success(String ok) {
+                hideProgress();
                 if (TextUtils.equals(ok, "ok")) {
                     showDialog("是否接受任务?");
                 } else {
                     showDialog("你有任务正在进行,是否取消,接受新任务?");
                 }
             }
+
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+            }
         });
     }
 
@@ -184,9 +192,11 @@ public class FgtMainPageTask extends BaseFragment {
         map.put("wx_open_id", SpUtils.getOpenId(SheepApp.mContext));
         map.put("task_id", mClickItem.getId() + "");
         map.put("imei", new DeviceUtils(getContext()).getIMEI());
+        showProgress();
         NetManager.get(Url.USER_REGISTER_TASK, map, SheepApp.mContext, new SheepCallback<String>(getActivity()) {
             @Override
             public void success(String o) {
+                hideProgress();
                 initData(false);
                 String pkg = mClickItem.getTask().getPkg();
                 if (!TextUtils.isEmpty(pkg))
@@ -199,6 +209,12 @@ public class FgtMainPageTask extends BaseFragment {
                     }
 
             }
+
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+            }
         });
     }
 
@@ -363,12 +379,20 @@ public class FgtMainPageTask extends BaseFragment {
                 mTlDoing.setVisibility(View.GONE);
             }
         });
+        showProgress();
         NetManager.get(Url.GET_TASK_COUNT, map, SheepApp.mContext, new SheepCallback<TaskCount>(getActivity()) {
             @Override
             public void success(TaskCount count) {
+                hideProgress();
                 mTaskHistory.setText(count.getTaskCount() + "");
                 mTaskSucc.setText(count.getTodayCount() + "");
             }
+
+            @Override
+            public void failure(IOException e) {
+                super.failure(e);
+                hideProgress();
+            }
         });
     }
 }

+ 3 - 2
app/src/main/java/com/sheep/jiuyan/samllsheep/service/TopService.java

@@ -3,6 +3,7 @@ package com.sheep.jiuyan.samllsheep.service;
 
 import android.accessibilityservice.AccessibilityService;
 import android.view.accessibility.AccessibilityEvent;
+import android.widget.Toast;
 
 /**
  * Created by Administrator on 2018/1/18.
@@ -13,14 +14,14 @@ public class TopService  extends AccessibilityService {
 
     @Override
     public void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) {
-
         if(accessibilityEvent.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) {
+
             PackName=accessibilityEvent.getPackageName().toString();
         }
     }
-
     @Override
     public void onInterrupt() {
 
+
     }
 }

+ 1 - 14
app/src/main/java/com/sheep/jiuyan/samllsheep/utils/OpenService.java

@@ -13,24 +13,11 @@ import android.widget.Toast;
 
 public class OpenService {
 
-    public boolean checkAccessibility(Context context) {
-        // 判断辅助功能是否开启
-        if (!isAccessibilitySettingsOn(context)) {
-            // 引导至辅助功能设置页面
-            context. startActivity(
-                    new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)
-                            .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
-            );
-            Toast.makeText(context, "请先开启小绵羊的辅助功能", Toast.LENGTH_LONG).show();
-            return false;
-        }
-        return true;
-    }
     /**
      * @return
      * 判断是否开启辅助功能
      */
-    private boolean isAccessibilitySettingsOn(Context context) {
+    public  boolean isAccessibilitySettingsOn(Context context) {
         int accessibilityEnabled = 0;
         try {
             accessibilityEnabled = Settings.Secure.getInt(context.getContentResolver(),

+ 82 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/utils/PermissionFloatWindowUtils.java

@@ -0,0 +1,82 @@
+package com.sheep.jiuyan.samllsheep.utils;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.media.projection.MediaProjectionManager;
+import android.net.Uri;
+import android.os.Build;
+import android.provider.Settings;
+
+/**
+ * <pre>
+ *     sinlov
+ *
+ *     /\__/\
+ *    /`    '\
+ *  ≈≈≈ 0  0 ≈≈≈ Hello world!
+ *    \  --  /
+ *   /        \
+ *  /          \
+ * |            |
+ *  \  ||  ||  /
+ *   \_oo__oo_/≡≡≡≡≡≡≡≡o
+ *
+ * </pre>
+ * Created by sinlov on 17/2/11.
+ */
+public class PermissionFloatWindowUtils {
+    public static final int REQUEST_OVERLAY_PERMISSION = 9088;
+    private static PermissionFloatWindowUtils instance;
+
+    /**
+     * if your Android SDK version great than M {API 23} can be use {@link Settings#canDrawOverlays(Context)}
+     *
+     * @param act {@link Activity}
+     * @return can show float window or not!
+     */
+    public boolean checkCanShowFloatWindow(Activity act) {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+            return Settings.canDrawOverlays(act);
+        } else {
+            return true;
+        }
+    }
+
+    /**
+     * If your Android SDK verison less M{API 23}, this method will crash your APP!
+     *
+     * @param act {@link Activity}
+     */
+    public void grantShowFloatWindowPermission(Activity act) {
+        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
+            throw new RuntimeException("you Android sdk version is below M {API23}, not need grant this permission");
+        } else {
+            if (!Settings.canDrawOverlays(act)) {
+                Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
+                        Uri.parse("package:" + act.getPackageName()));
+                act.startActivityForResult(intent, REQUEST_OVERLAY_PERMISSION);
+            }
+        }
+    }
+
+    private void requestCapturePermission(Activity act) {
+        MediaProjectionManager mediaProjectionManager = (MediaProjectionManager)
+                act.getSystemService(Context.MEDIA_PROJECTION_SERVICE);
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+            act.startActivityForResult(
+                    mediaProjectionManager.createScreenCaptureIntent(),
+                    REQUEST_OVERLAY_PERMISSION);
+        }
+    }
+
+    public static PermissionFloatWindowUtils getInstance() {
+        if (null == instance) {
+            instance = new PermissionFloatWindowUtils();
+        }
+        return instance;
+    }
+
+    private PermissionFloatWindowUtils() {
+    }
+}

+ 2 - 2
app/src/main/java/com/sheep/jiuyan/samllsheep/utils/PremissUtils.java

@@ -24,12 +24,12 @@ public class PremissUtils {
         return checkOpNoThrow == 0;
     }
 
-    public static boolean openUsageAccessPage(Context context) {
+    public static boolean openUsageAccessPage(Activity context) {
         if (context == null) {
             return false;
         }
         try {
-            context.startActivity(new Intent("android.settings.USAGE_ACCESS_SETTINGS"));
+            context.startActivityForResult(new Intent("android.settings.USAGE_ACCESS_SETTINGS"),MY_PERMISSIONS_REQUEST_PACKAGE_USAGE_STATS);
             return true;
         } catch (Exception e) {
             return false;

+ 9 - 4
app/src/main/java/com/sheep/jiuyan/samllsheep/utils/SpUtils.java

@@ -29,17 +29,22 @@ public class SpUtils {
     }
 
 
-    public static void setPackAgeName(Context context, String vaule) {
+    public static void setImagePath(Context context, String vaule) {
         SharedPreferences user = context.getSharedPreferences("user", Context.MODE_PRIVATE);
         SharedPreferences.Editor editor = user.edit();
-        editor.putString("package", vaule);
+        editor.putString("imagepath", vaule);
         editor.apply();
     }
 
 
-    public static String getPackAgeName(Context context) {
+    public static String getImagePath(Context context) {
         SharedPreferences user = context.getSharedPreferences("user", Context.MODE_PRIVATE);
-        return user.getString("package", "");
+        return user.getString("imagepath", "");
     }
 
+
+
+
+
+
 }

+ 15 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/utils/StringUtils.java

@@ -5,6 +5,8 @@ import android.text.TextUtils;
 import java.text.DecimalFormat;
 import java.text.NumberFormat;
 import java.text.ParseException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * Created by Administrator on 2018/1/31.
@@ -34,4 +36,17 @@ public class StringUtils {
     }
 
 
+    public static boolean checkMobileNum(String mobiles) {
+        Pattern p = Pattern
+                .compile("^((13[0-9])|(15[^4,\\D])|(18[0,0-9])|(17[0,3,5,6,7,8])|14[5,6,8,7,9])\\d{8}$");
+        Matcher m = p.matcher(mobiles);
+        return m.matches();
+
+    }
+
+
+
+
+
+
 }

BIN
app/src/main/res/drawable-hdpi/loading.png


BIN
app/src/main/res/drawable-hdpi/loading1.png


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


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


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


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


+ 12 - 0
app/src/main/res/drawable/bg_edit_code.xml

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

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

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+    <animation-list
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:oneshot="false"
+        >
+       <item android:drawable="@drawable/loading" android:duration="150"/>
+        <item android:drawable="@drawable/loading1" android:duration="150"/>
+    </animation-list>

+ 66 - 0
app/src/main/res/layout/activity_ask_friend.xml

@@ -429,6 +429,72 @@
 
 
         </RelativeLayout>
+
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1px"
+            android:layout_marginLeft="15dp"
+            android:layout_marginRight="15dp"
+            android:background="@color/line"
+            />
+
+        <RelativeLayout
+            android:id="@+id/rl_face"
+            android:layout_width="match_parent"
+            android:layout_height="80dp"
+
+            >
+
+            <ImageView
+                android:id="@+id/ic_face"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentLeft="true"
+                android:layout_centerVertical="true"
+                android:layout_marginLeft="20dp"
+                android:src="@drawable/icon_ewm"
+                />
+
+            <TextView
+                android:id="@+id/tv_face"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="12dp"
+                android:layout_marginTop="20dp"
+                android:layout_toRightOf="@id/ic_face"
+                android:text="面对面邀请"
+                android:textColor="@color/black_light"
+                android:textSize="16sp"
+                />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@id/tv_face"
+                android:layout_marginLeft="12dp"
+                android:layout_marginTop="5dp"
+                android:layout_toRightOf="@id/ic_face"
+                android:text="最好玩的推广方式"
+                android:textColor="@color/black_light"
+                android:textSize="12sp"
+
+                />
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentRight="true"
+                android:layout_centerVertical="true"
+                android:layout_marginRight="15dp"
+                android:src="@drawable/icon_jiantou3"
+
+                />
+
+
+        </RelativeLayout>
+
+
     </LinearLayout>
 
 

+ 14 - 0
app/src/main/res/layout/dialog_layout.xml

@@ -0,0 +1,14 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="center_vertical"
+    android:padding="10dp"
+    android:orientation="horizontal">
+
+    <ProgressBar
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerInParent="true"
+        android:indeterminateDrawable="@drawable/load_animal" />
+
+</RelativeLayout>

+ 11 - 0
app/src/main/res/layout/login_actvity.xml

@@ -40,6 +40,7 @@
             android:background="@drawable/sp_edt_background_login"
             android:hint="请输入帐号"
             android:paddingLeft="20dp"
+            android:inputType="phone"
             android:textColor="@color/black_text_deep"
             android:textSize="@dimen/text_size_3"/>
 
@@ -57,6 +58,16 @@
             android:textColor="@color/black_text_deep"
             android:textSize="@dimen/text_size_3"/>
 
+        <TextView
+            android:id="@+id/tv_forget_pwd"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/edt_heigh_default"
+            android:layout_below="@id/et_psw"
+            android:gravity="center"
+            android:text="忘记密码?"
+            android:layout_alignParentRight="true"
+            android:layout_marginRight="18dp"
+            android:textSize="@dimen/text_size_2"/>
 
         <ImageView
             android:id="@+id/img_login"

+ 8 - 11
app/src/main/res/layout/register_activity.xml

@@ -28,9 +28,7 @@
             android:textColor="@color/orange_text_light"
             android:textSize="@dimen/text_size_4"/>
 
-
-
-        <EditText
+        <android.support.v7.widget.AppCompatEditText
             android:id="@+id/et_account"
             style="style_edt"
             android:inputType="phone"
@@ -41,6 +39,7 @@
             android:background="@drawable/sp_edt_background_login"
             android:hint="请输入手机号"
             android:paddingLeft="@dimen/content_padding_big"
+            android:maxLength="11"
             android:textSize="@dimen/text_size_3"/>
 
         <LinearLayout
@@ -52,7 +51,7 @@
             android:orientation="horizontal"
             >
 
-            <EditText
+            <android.support.v7.widget.AppCompatEditText
                 android:id="@+id/et_code"
                 style="style_edt"
                 android:layout_width="0dp"
@@ -60,9 +59,10 @@
                 android:layout_weight="2"
                 android:background="@drawable/sp_edt_background_login"
                 android:hint="请输入验证码"
+                android:inputType="phone"
                 android:paddingLeft="@dimen/content_padding_big"
+                android:maxLength="6"
                 android:textSize="@dimen/text_size_3"/>
-
             <TextView
                 android:id="@+id/btn_code"
                 android:layout_width="0dp"
@@ -79,8 +79,7 @@
 
         </LinearLayout>
 
-
-        <EditText
+        <android.support.v7.widget.AppCompatEditText
             android:id="@+id/et_psw"
             style="style_edt"
             android:layout_width="match_parent"
@@ -92,8 +91,7 @@
             android:inputType="textPassword"
             android:paddingLeft="@dimen/content_padding_big"
             android:textSize="@dimen/text_size_3"/>
-
-        <EditText
+        <android.support.v7.widget.AppCompatEditText
             android:id="@+id/et_invite"
             style="style_edt"
             android:layout_width="match_parent"
@@ -104,9 +102,9 @@
             android:hint="请输入邀请码(选填)"
             android:inputType="number"
             android:paddingLeft="@dimen/content_padding_big"
+            android:maxLength="6"
             android:textSize="@dimen/text_size_3"/>
 
-
         <TextView
             android:id="@+id/tv_wx"
             style="@style/style_btn"
@@ -120,6 +118,5 @@
             android:text="注 册"
             android:textSize="@dimen/text_size_4"/>
 
-
     </RelativeLayout>
 </FrameLayout>

+ 17 - 0
app/src/main/res/layout/reset_pwd_activity.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+             android:layout_width="match_parent"
+             android:layout_height="match_parent"
+             android:focusableInTouchMode="true"
+             android:orientation="vertical">
+
+    <ImageView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:scaleType="centerCrop"
+        android:src="@drawable/login_bg"/>
+
+    <include layout="@layout/reset_pwd_layout"></include>
+
+    <include layout="@layout/set_pwd_layout"></include>
+</FrameLayout>

+ 84 - 0
app/src/main/res/layout/reset_pwd_layout.xml

@@ -0,0 +1,84 @@
+<?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:orientation="vertical"
+        android:id="@+id/rl_rset_pwd"
+        android:paddingLeft="@dimen/content_padding"
+        android:paddingRight="@dimen/content_padding">
+
+        <android.support.v7.widget.AppCompatEditText
+            android:id="@+id/et_account"
+            style="style_edt"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/edt_heigh_default"
+            android:layout_centerVertical="true"
+            android:layout_margin="@dimen/content_padding_small"
+            android:background="@drawable/sp_edt_background_login"
+            android:hint="请输入手机号"
+            android:paddingLeft="20dp"
+            android:inputType="phone"
+            android:textColor="@color/black_text_deep"
+            android:textSize="@dimen/text_size_3"/>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/edt_heigh_default"
+            android:orientation="horizontal"
+            android:background="@drawable/sp_edt_background_login"
+            android:layout_below="@id/et_account"
+            android:id="@+id/ll_code"
+            android:layout_margin="@dimen/content_padding_small"
+            >
+            <android.support.v7.widget.AppCompatEditText
+                android:id="@+id/et_psw"
+                style="style_edt"
+                android:layout_width="0dp"
+                android:layout_height="@dimen/edt_heigh_default"
+                android:hint="请输入验证码"
+                android:inputType="phone"
+                android:paddingLeft="20dp"
+                android:textColor="@color/black_text_deep"
+                android:textSize="@dimen/text_size_3"
+                 android:background="@null"
+                android:layout_weight="3"
+                />
+
+             <TextView
+                 android:layout_weight="1"
+                 android:layout_width="0dp"
+                 android:layout_height="match_parent"
+                 android:background="@drawable/bg_edit_code"
+                 android:text="获取验证码"
+                 android:textSize="11dp"
+                 android:gravity="center"
+                 android:padding="10dp"
+                 android:id="@+id/tv_send"
+                 />
+
+        </LinearLayout>
+
+        <ImageView
+            android:id="@+id/img_login"
+            android:layout_width="50dp"
+            android:layout_height="50dp"
+            android:layout_centerInParent="true"
+            android:layout_gravity="center"
+            android:src="@drawable/wx_logo"
+            android:visibility="gone"/>
+
+        <TextView
+            android:id="@+id/tv_next"
+            style="@style/style_btn"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/edt_heigh_default"
+            android:layout_below="@id/ll_code"
+            android:layout_marginLeft="@dimen/content_padding_small"
+            android:layout_marginRight="@dimen/content_padding_small"
+            android:layout_marginTop="@dimen/layout_heigh_default"
+            android:gravity="center"
+            android:text="下一步"
+            android:textSize="@dimen/text_size_4"/>
+
+    </RelativeLayout>

+ 49 - 0
app/src/main/res/layout/set_pwd_layout.xml

@@ -0,0 +1,49 @@
+<?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:orientation="vertical"
+        android:id="@+id/rl_set_pwd"
+        android:visibility="gone"
+        android:paddingLeft="@dimen/content_padding"
+        android:paddingRight="@dimen/content_padding">
+    <android.support.v7.widget.AppCompatEditText
+            android:id="@+id/et_pwd1"
+            style="style_edt"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/edt_heigh_default"
+            android:layout_centerVertical="true"
+            android:layout_margin="@dimen/content_padding_small"
+            android:background="@drawable/sp_edt_background_login"
+            android:hint="请输入密码"
+            android:inputType="textPassword"
+            android:paddingLeft="20dp"
+            android:textColor="@color/black_text_deep"
+            android:textSize="@dimen/text_size_3"/>
+    <android.support.v7.widget.AppCompatEditText
+            android:id="@+id/et_pwd2"
+            style="style_edt"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/edt_heigh_default"
+            android:layout_below="@id/et_pwd1"
+            android:layout_margin="@dimen/content_padding_small"
+            android:background="@drawable/sp_edt_background_login"
+            android:hint="再次输入密码"
+            android:inputType="textPassword"
+            android:paddingLeft="20dp"
+            android:textColor="@color/black_text_deep"
+            android:textSize="@dimen/text_size_3"/>
+        <TextView
+            android:id="@+id/tv_submit"
+            style="@style/style_btn"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/edt_heigh_default"
+            android:layout_below="@id/et_pwd2"
+            android:layout_marginLeft="@dimen/content_padding_small"
+            android:layout_marginRight="@dimen/content_padding_small"
+            android:layout_marginTop="@dimen/layout_heigh_default"
+            android:gravity="center"
+            android:text="提 交"
+            android:textSize="@dimen/text_size_4"/>
+    </RelativeLayout>

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

@@ -21,4 +21,6 @@
     <color name="line">#aeacac</color>
 
     <color name="et_bg">#dfdddd</color>
+
+    <color name="bbb">#f7dc0f</color>
 </resources>