From 118e25c4fd58179732aae3aac4594ffe105ef2f4 Mon Sep 17 00:00:00 2001
From: Administrator <15805828761@163.com>
Date: Wed, 7 Mar 2018 18:09:29 +0800
Subject: [PATCH] no message
---
.idea/modules.xml | 1 +
app/src/main/AndroidManifest.xml | 35 +++++++++++++++++++++++++++++++++++
app/src/main/java/com/shunzhi/parent/AppConfig.java | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/src/main/java/com/shunzhi/parent/AppContext.java | 26 ++++++++++++++++++++++++++
app/src/main/java/com/shunzhi/parent/api/LoginRegisterApi.java | 34 ++++++++++++++++++++++++++++++++++
app/src/main/java/com/shunzhi/parent/model/loginandregister/LoginAndRegisterModel.java | 11 ++++++++---
app/src/main/java/com/shunzhi/parent/model/loginandregister/loginAndRegisterModel.java | 37 -------------------------------------
app/src/main/java/com/shunzhi/parent/presenter/loginandregister/LoginAndRegisterPresenter.java | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
app/src/main/java/com/shunzhi/parent/ui/MainActivity.java | 6 +-----
app/src/main/java/com/shunzhi/parent/ui/fragment/loginandregistfragment/LoginAndRegistFragment.java | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------
app/src/main/res/layout/fragment_login_and_regist.xml | 7 ++++++-
mvpsdk/src/main/java/com/share/mvpsdk/helper/RetrofitCreateHelper.java | 32 ++++++++++++++++++++++++++++++--
mvpsdk/src/main/java/com/share/mvpsdk/utils/StringUtils.java | 27 +++++++++++++++++++++++++++
13 files changed, 415 insertions(+), 64 deletions(-)
create mode 100644 app/src/main/java/com/shunzhi/parent/AppConfig.java
create mode 100644 app/src/main/java/com/shunzhi/parent/AppContext.java
create mode 100644 app/src/main/java/com/shunzhi/parent/api/LoginRegisterApi.java
delete mode 100644 app/src/main/java/com/shunzhi/parent/model/loginandregister/loginAndRegisterModel.java
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 69c30e2..78c505d 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -5,6 +5,7 @@
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5f3d13a..98b0483 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,6 +2,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/java/com/shunzhi/parent/AppConfig.java b/app/src/main/java/com/shunzhi/parent/AppConfig.java
new file mode 100644
index 0000000..dbbd67e
--- /dev/null
+++ b/app/src/main/java/com/shunzhi/parent/AppConfig.java
@@ -0,0 +1,82 @@
+package com.shunzhi.parent;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Environment;
+import android.preference.PreferenceManager;
+import android.text.TextUtils;
+
+import java.io.File;
+
+/**
+ * Created by Administrator on 2018/3/7 0007.
+ */
+
+public class AppConfig {
+ //保存键值对
+ public static String SCHOOL_ID = "school_id";
+ public static String LOGIN_NAME = "login_name";
+ public static String LOGIN_PWD = "login_pwd";
+ public static String ACCESS_TOKEN = "access_token";
+
+ //默认日志保存的路径
+ public final static String DEFAULT_SAVE_LOG_PATH = Environment
+ .getExternalStorageDirectory()
+ + File.separator
+ + "Eboardmenwei"
+ + File.separator
+ + "logs"
+ + File.separator;
+
+
+
+ private static AppConfig appConfig = null;
+ private static Context mContext = null;
+
+ public static AppConfig getAppConfig(Context context) {
+ if (appConfig == null) {
+ appConfig = new AppConfig();
+ mContext = context;
+ }
+ return appConfig;
+ }
+
+
+
+
+
+
+
+ //默认下载保存的路径
+ public final static String DEFAULT_SAVE_DOWNLOAD_PATH = Environment
+ .getExternalStorageDirectory()
+ + File.separator
+ + "Eboard"
+ + File.separator
+ + "download"
+ + File.separator;
+
+ //得到保存的值
+ public String get(String key) {
+ return getSharedPreferences(mContext).getString(key, null);
+ }
+
+ private SharedPreferences getSharedPreferences(Context context) {
+ return PreferenceManager.getDefaultSharedPreferences(context);
+ }
+
+ //保存键值对
+ public void set(Context context, String key, String value) {
+ SharedPreferences.Editor editor = getSharedPreferences(context).edit();
+ if (TextUtils.isEmpty(value)) {
+ editor.putString(key, value);
+ } else {
+ editor.putString(key, value.trim());
+ }
+ editor.commit();
+ }
+
+
+
+
+}
diff --git a/app/src/main/java/com/shunzhi/parent/AppContext.java b/app/src/main/java/com/shunzhi/parent/AppContext.java
new file mode 100644
index 0000000..461ec86
--- /dev/null
+++ b/app/src/main/java/com/shunzhi/parent/AppContext.java
@@ -0,0 +1,26 @@
+package com.shunzhi.parent;
+
+import com.share.mvpsdk.global.GlobalApplication;
+
+/**
+ * Created by Administrator on 2018/3/7 0007.
+ */
+
+public class AppContext extends GlobalApplication {
+ private static AppContext appContext;
+
+
+ @Override
+ public void onCreate() {
+ appContext=this;
+ super.onCreate();
+ }
+
+ public static AppContext getInstance() {
+ return appContext;
+ }
+
+
+
+
+}
diff --git a/app/src/main/java/com/shunzhi/parent/api/LoginRegisterApi.java b/app/src/main/java/com/shunzhi/parent/api/LoginRegisterApi.java
new file mode 100644
index 0000000..792f80b
--- /dev/null
+++ b/app/src/main/java/com/shunzhi/parent/api/LoginRegisterApi.java
@@ -0,0 +1,34 @@
+package com.shunzhi.parent.api;
+
+import com.google.gson.JsonObject;
+
+import io.reactivex.Observable;
+import retrofit2.http.Field;
+import retrofit2.http.FormUrlEncoded;
+import retrofit2.http.POST;
+
+/**
+ * Created by Administrator on 2018/3/7 0007.
+ */
+
+public interface LoginRegisterApi {
+ String url="http://campus.myjxt.com/";
+
+
+ @FormUrlEncoded
+ @POST("Token")
+ Observable loginResult(
+ @Field("grant_type") String grant_type, @Field("username") String username
+ , @Field("password") String password);
+
+ @FormUrlEncoded
+ @POST("api/Account/CurrentInfo")
+ Observable registerResult(
+ @Field("grant_type") String grant_type, @Field("username") String username
+ , @Field("idcode") String idCode,@Field("password") String password);
+
+ @FormUrlEncoded
+ @POST("api/Account/CurrentInfo")
+ Observable getUserInfo(@Field("grant_type") String grant_type);
+
+}
diff --git a/app/src/main/java/com/shunzhi/parent/model/loginandregister/LoginAndRegisterModel.java b/app/src/main/java/com/shunzhi/parent/model/loginandregister/LoginAndRegisterModel.java
index 3fffc94..4a99bca 100644
--- a/app/src/main/java/com/shunzhi/parent/model/loginandregister/LoginAndRegisterModel.java
+++ b/app/src/main/java/com/shunzhi/parent/model/loginandregister/LoginAndRegisterModel.java
@@ -2,6 +2,9 @@ package com.shunzhi.parent.model.loginandregister;
import com.google.gson.JsonObject;
import com.share.mvpsdk.base.BaseModel;
+import com.share.mvpsdk.helper.RetrofitCreateHelper;
+import com.share.mvpsdk.helper.RxHelper;
+import com.shunzhi.parent.api.LoginRegisterApi;
import com.shunzhi.parent.contract.loginandregister.LoginAndRegisterContract;
import io.reactivex.Observable;
@@ -20,13 +23,15 @@ public class LoginAndRegisterModel extends BaseModel implements LoginAndRegiste
@Override
- public Observable getLoginResult(String loginName, String loginPed) {
- return null;
+ public Observable getLoginResult(String loginName, String loginPwd) {
+ return RetrofitCreateHelper.loginApi(LoginRegisterApi.class,LoginRegisterApi.url).loginResult("password",loginName,loginPwd)
+ .compose(RxHelper.rxSchedulerHelper());
}
@Override
public Observable getRegisterResult(String adminName, String idCode, String password) {
- return null;
+ return RetrofitCreateHelper.createApi(LoginRegisterApi.class,LoginRegisterApi.url).registerResult("idcode",adminName,idCode,password)
+ .compose(RxHelper.rxSchedulerHelper());
}
@Override
diff --git a/app/src/main/java/com/shunzhi/parent/model/loginandregister/loginAndRegisterModel.java b/app/src/main/java/com/shunzhi/parent/model/loginandregister/loginAndRegisterModel.java
deleted file mode 100644
index 3fffc94..0000000
--- a/app/src/main/java/com/shunzhi/parent/model/loginandregister/loginAndRegisterModel.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.shunzhi.parent.model.loginandregister;
-
-import com.google.gson.JsonObject;
-import com.share.mvpsdk.base.BaseModel;
-import com.shunzhi.parent.contract.loginandregister.LoginAndRegisterContract;
-
-import io.reactivex.Observable;
-
-/**
- * Created by Administrator on 2018/3/6 0006.
- */
-
-public class LoginAndRegisterModel extends BaseModel implements LoginAndRegisterContract.ILoginModel {
-
-
-
- public static LoginAndRegisterModel newInstance() {
- return new LoginAndRegisterModel();
- }
-
-
- @Override
- public Observable getLoginResult(String loginName, String loginPed) {
- return null;
- }
-
- @Override
- public Observable getRegisterResult(String adminName, String idCode, String password) {
- return null;
- }
-
- @Override
- public Observable getidCodeResult(String phoneNumber) {
- return null;
- }
-
-}
diff --git a/app/src/main/java/com/shunzhi/parent/presenter/loginandregister/LoginAndRegisterPresenter.java b/app/src/main/java/com/shunzhi/parent/presenter/loginandregister/LoginAndRegisterPresenter.java
index 1e1b737..2372e3a 100644
--- a/app/src/main/java/com/shunzhi/parent/presenter/loginandregister/LoginAndRegisterPresenter.java
+++ b/app/src/main/java/com/shunzhi/parent/presenter/loginandregister/LoginAndRegisterPresenter.java
@@ -2,39 +2,110 @@ package com.shunzhi.parent.presenter.loginandregister;
import android.text.TextUtils;
+import com.google.gson.JsonObject;
+import com.share.mvpsdk.helper.RetrofitCreateHelper;
import com.share.mvpsdk.utils.ToastUtils;
+import com.shunzhi.parent.AppConfig;
+import com.shunzhi.parent.AppContext;
import com.shunzhi.parent.contract.loginandregister.LoginAndRegisterContract;
import com.shunzhi.parent.model.loginandregister.LoginAndRegisterModel;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import io.reactivex.functions.Consumer;
+
/**
* Created by Administrator on 2018/3/6 0006.
*/
public class LoginAndRegisterPresenter extends LoginAndRegisterContract.LoginPresenter {
+
+ public static final String REGEX_MOBILE = "^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$";
+
@Override
- public void loginResult(String loginName, String loginPwd) {
- if (TextUtils.isEmpty(loginName)){
- ToastUtils.showToast("登录名不能为空");
+ public void loginResult(final String loginName, final String loginPwd) {
+ if (!isMate(loginName, REGEX_MOBILE)) {
+ ToastUtils.showToast("请输入正确的手机号!!");
return;
- }else if(TextUtils.isEmpty(loginPwd)){
- ToastUtils.showToast("密码不能为空");
+ }
+
+ if (mIModel == null || mIView == null) {
return;
}
+ mRxManager.register(mIModel.getLoginResult(loginName, loginPwd).subscribe(new Consumer() {
+ @Override
+ public void accept(JsonObject jsonObject) throws Exception {
+ if (jsonObject != null && !TextUtils.isEmpty(jsonObject.get("access_token").getAsString())) {
+ AppConfig.getAppConfig(AppContext.getInstance()).set(AppContext.getInstance()
+ , AppConfig.ACCESS_TOKEN, jsonObject.get("access_token").getAsString());
+ AppConfig.getAppConfig(AppContext.getInstance()).set(AppContext.getInstance(), AppConfig.LOGIN_NAME,loginName);
+ AppConfig.getAppConfig(AppContext.getInstance()).set(AppContext.getInstance(), AppConfig.LOGIN_PWD, loginPwd);
+ RetrofitCreateHelper.getInstance().setAuthorization("Bearer "+jsonObject.get("access_token").getAsString());
+ getUserInfo();
+ } else {
+ ToastUtils.showToast(jsonObject.get("error").getAsString());
+ }
+ }
+ }, new Consumer() {
+ @Override
+ public void accept(Throwable throwable) throws Exception {
+ ToastUtils.showToast(throwable.getMessage());
+ }
+ }));
}
@Override
public void registerResult(String adminName, String idCode, String password) {
+ if (!isMate(adminName, REGEX_MOBILE)) {
+ ToastUtils.showToast("请输入正确的手机号!!");
+ return;
+ }
+ if (mIModel == null || mIView == null) {
+ return;
+ }
+ mIView.getUserInfo();
+ mRxManager.register(mIModel.getRegisterResult(adminName, idCode, password).subscribe(new Consumer() {
+ @Override
+ public void accept(JsonObject jsonObject) throws Exception {
+ //TODO 注册成功返回
+ }
+ }, new Consumer() {
+ @Override
+ public void accept(Throwable throwable) throws Exception {
+ ToastUtils.showToast(throwable.getMessage());
+ }
+ }));
+
}
@Override
public void idCodeResult(String phoneNumber) {
- if(TextUtils.isEmpty(phoneNumber)){
- ToastUtils.showToast("请先输入手机号");
+ if (!isMate(phoneNumber, REGEX_MOBILE)) {
+ ToastUtils.showToast("请输入正确的手机号!!");
+ return;
+ }
+ if (mIModel == null || mIView == null) {
return;
}
+ mRxManager.register(mIModel.getidCodeResult(phoneNumber).subscribe(new Consumer() {
+ @Override
+ public void accept(JsonObject jsonObject) throws Exception {
+ //TODO 获取验证码返回
+
+
+ }
+ }, new Consumer() {
+ @Override
+ public void accept(Throwable throwable) throws Exception {
+ ToastUtils.showToast(throwable.getMessage());
+ }
+ }));
+
+
}
@Override
@@ -52,4 +123,11 @@ public class LoginAndRegisterPresenter extends LoginAndRegisterContract.LoginPre
public void onStart() {
}
+
+
+ public boolean isMate(String str, String rulStr) {
+ Pattern pattern = Pattern.compile(rulStr);
+ Matcher matcher = pattern.matcher(str);
+ return matcher.matches();
+ }
}
diff --git a/app/src/main/java/com/shunzhi/parent/ui/MainActivity.java b/app/src/main/java/com/shunzhi/parent/ui/MainActivity.java
index 9ddb266..bc5e940 100644
--- a/app/src/main/java/com/shunzhi/parent/ui/MainActivity.java
+++ b/app/src/main/java/com/shunzhi/parent/ui/MainActivity.java
@@ -1,13 +1,9 @@
package com.shunzhi.parent.ui;
-import android.support.annotation.NonNull;
-import android.support.design.widget.BottomNavigationView;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import android.support.design.widget.BottomNavigationView;
-import com.share.mvpsdk.base.BasePresenter;
import com.share.mvpsdk.base.activity.BaseCompatActivity;
-import com.share.mvpsdk.base.activity.BaseMVPCompatActivity;
import com.share.mvpsdk.helper.BottomNavigationViewHelper;
import com.shunzhi.parent.R;
diff --git a/app/src/main/java/com/shunzhi/parent/ui/fragment/loginandregistfragment/LoginAndRegistFragment.java b/app/src/main/java/com/shunzhi/parent/ui/fragment/loginandregistfragment/LoginAndRegistFragment.java
index 02e859b..49cf4d1 100644
--- a/app/src/main/java/com/shunzhi/parent/ui/fragment/loginandregistfragment/LoginAndRegistFragment.java
+++ b/app/src/main/java/com/shunzhi/parent/ui/fragment/loginandregistfragment/LoginAndRegistFragment.java
@@ -1,19 +1,30 @@
package com.shunzhi.parent.ui.fragment.loginandregistfragment;
+import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.util.Log;
+import android.view.Gravity;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.EditText;
+import android.widget.ImageView;
import android.widget.LinearLayout;
+import android.widget.PopupWindow;
import android.widget.TextView;
import com.makeramen.roundedimageview.RoundedImageView;
import com.share.mvpsdk.base.BasePresenter;
import com.share.mvpsdk.base.fragment.BaseMVPCompatFragment;
+import com.share.mvpsdk.utils.ToastUtils;
import com.shunzhi.parent.R;
import com.shunzhi.parent.contract.loginandregister.LoginAndRegisterContract;
import com.shunzhi.parent.presenter.loginandregister.LoginAndRegisterPresenter;
+import com.shunzhi.parent.ui.activity.LoginAndRegistActivity;
public class LoginAndRegistFragment extends BaseMVPCompatFragment
@@ -22,8 +33,10 @@ public class LoginAndRegistFragment extends BaseMVPCompatFragment
@@ -43,6 +44,7 @@
android:layout_height="50dp"
android:background="@null"
android:hint="请输入手机号码"
+ android:maxLength="11"
android:textColorHint="@color/hintTextColor"
android:textSize="@dimen/sp_16" />
@@ -113,7 +115,9 @@
android:layout_height="50dp"
android:layout_weight="1"
android:background="@null"
- android:hint="请设置密码:6~8个字符"
+ android:hint="请设置密码:6~16个字符"
+ android:maxLength="16"
+ android:inputType="textPassword"
android:textColorHint="@color/hintTextColor"
android:textSize="@dimen/sp_16" />
@@ -144,6 +148,7 @@
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:text="注册"
+ android:enabled="false"
android:textColor="@color/white"
android:textSize="@dimen/sp_16" />
diff --git a/mvpsdk/src/main/java/com/share/mvpsdk/helper/RetrofitCreateHelper.java b/mvpsdk/src/main/java/com/share/mvpsdk/helper/RetrofitCreateHelper.java
index 178d58e..01715fc 100644
--- a/mvpsdk/src/main/java/com/share/mvpsdk/helper/RetrofitCreateHelper.java
+++ b/mvpsdk/src/main/java/com/share/mvpsdk/helper/RetrofitCreateHelper.java
@@ -1,10 +1,10 @@
package com.share.mvpsdk.helper;
-
import com.share.mvpsdk.helper.okhttp.CacheInterceptor;
import com.share.mvpsdk.helper.okhttp.HttpCache;
import com.share.mvpsdk.helper.okhttp.TrustManager;
+import com.share.mvpsdk.utils.StringUtils;
import java.util.concurrent.TimeUnit;
@@ -22,6 +22,8 @@ import retrofit2.converter.gson.GsonConverterFactory;
public class RetrofitCreateHelper {
private static final int TIMEOUT_READ = 20;
private static final int TIMEOUT_CONNECTION = 10;
+ private static String Authorization="",token="";
+ private static RetrofitCreateHelper retrofitCreateHelper=null;
private static final HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor()
.setLevel(HttpLoggingInterceptor.Level.BODY);
private static CacheInterceptor cacheInterceptor = new CacheInterceptor();
@@ -42,8 +44,16 @@ public class RetrofitCreateHelper {
//失败重连
.retryOnConnectionFailure(true)
.build();
-
+ public static RetrofitCreateHelper getInstance(){
+ if (null==retrofitCreateHelper){
+ synchronized (RetrofitCreateHelper.class){
+ if (null==retrofitCreateHelper)retrofitCreateHelper=new RetrofitCreateHelper();
+ }
+ }
+ return retrofitCreateHelper;
+ }
public static T createApi(Class clazz, String url) {
+ Authorization=token;
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(url)
.client(okHttpClient)
@@ -52,5 +62,23 @@ public class RetrofitCreateHelper {
.build();
return retrofit.create(clazz);
}
+
+ public static T loginApi(Class clazz, String url) {
+ Authorization= StringUtils.getSign();
+ Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl(url)
+ .client(okHttpClient)
+ .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
+ .addConverterFactory(GsonConverterFactory.create())
+ .build();
+ return retrofit.create(clazz);
+ }
+ public void setAuthorization(String Authorization){
+ this.token=Authorization;
+ }
+
+
+
+
}
diff --git a/mvpsdk/src/main/java/com/share/mvpsdk/utils/StringUtils.java b/mvpsdk/src/main/java/com/share/mvpsdk/utils/StringUtils.java
index 57486fa..6643c8a 100644
--- a/mvpsdk/src/main/java/com/share/mvpsdk/utils/StringUtils.java
+++ b/mvpsdk/src/main/java/com/share/mvpsdk/utils/StringUtils.java
@@ -1,6 +1,7 @@
package com.share.mvpsdk.utils;
import android.text.TextUtils;
+import android.util.Base64;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -122,4 +123,30 @@ public class StringUtils {
}
return true;
}
+
+ private final static String appSecret = "f71467cfd98d";
+ public static String getSign(){
+ String sign = "";
+ try {
+ String clientid = MD5(System.currentTimeMillis() + new int[(int) (Math.random() * 100)].toString());
+ sign = "Basic " + Base64.encodeToString((clientid + ":" + MD5(clientid + appSecret)).getBytes("ASCII"), Base64.NO_WRAP);
+ } catch (Exception err) {
+ err.printStackTrace();
+ }
+ return sign;
+ }
+
+ public static String MD5(String str) {
+ try {
+ java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
+ byte[] array = md.digest(str.getBytes("utf-8"));
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < array.length; ++i) {
+ sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1, 3));
+ }
+ return sb.toString().toUpperCase();
+ } catch (Exception e) {
+ }
+ return "";
+ }
}
--
libgit2 0.21.0