From c5f44333881c141e8791ceb9d373919260a5b4f7 Mon Sep 17 00:00:00 2001
From: nilupeng <qingingrunt2010@qq.com>
Date: Tue, 09 Aug 2022 04:51:36 +0000
Subject: [PATCH] 短信倒计时优化,其他优化
---
app/src/main/java/com/runt/open/mvvm/ui/splash/SplashActivity.java | 15 ++++++-
app/src/main/java/com/runt/open/mvvm/retrofit/utils/RetrofitUtils.java | 10 ++--
app/src/main/java/com/runt/open/mvvm/ui/login/LoginViewModel.java | 17 ++++++--
app/src/main/java/com/runt/open/mvvm/retrofit/api/LoginApiCenter.java | 3 +
app/src/main/java/com/runt/open/mvvm/data/Results.java | 3 +
app/src/main/java/com/runt/open/mvvm/retrofit/converter/GsonConverterFactory.java | 12 +++---
app/src/main/java/com/runt/open/mvvm/retrofit/converter/DecryptGsonResponseBodyConverter.java | 27 +------------
app/src/main/java/com/runt/open/mvvm/ui/login/RegisterLoginActivity.java | 12 +++--
8 files changed, 49 insertions(+), 50 deletions(-)
diff --git a/app/src/main/java/com/runt/open/mvvm/data/Results.java b/app/src/main/java/com/runt/open/mvvm/data/Results.java
index e5770af..ff2330d 100644
--- a/app/src/main/java/com/runt/open/mvvm/data/Results.java
+++ b/app/src/main/java/com/runt/open/mvvm/data/Results.java
@@ -13,6 +13,9 @@
public static class StringApiResult extends HttpApiResult<String> { }
+ //短信验证码
+ public static class SmsResult { public String sms; }
+
//资讯信息
public class Message {
public String id,title,content,cTime;
diff --git a/app/src/main/java/com/runt/open/mvvm/retrofit/api/LoginApiCenter.java b/app/src/main/java/com/runt/open/mvvm/retrofit/api/LoginApiCenter.java
index c41d848..6c5e50b 100644
--- a/app/src/main/java/com/runt/open/mvvm/retrofit/api/LoginApiCenter.java
+++ b/app/src/main/java/com/runt/open/mvvm/retrofit/api/LoginApiCenter.java
@@ -1,6 +1,7 @@
package com.runt.open.mvvm.retrofit.api;
import com.runt.open.mvvm.config.Configuration;
+import com.runt.open.mvvm.data.HttpApiResult;
import com.runt.open.mvvm.data.Results;
import io.reactivex.Observable;
@@ -36,7 +37,7 @@
@FormUrlEncoded
@POST
- Observable<Results.StringApiResult> getVerifyCode(@Url String url, @Field(Configuration.KEY_PHONE) String phone, @Field(Configuration.KEY_CODE) String code, @Field("time") String time);
+ Observable<HttpApiResult<Results.SmsResult>> getVerifyCode(@Url String url, @Field(Configuration.KEY_PHONE) String phone, @Field(Configuration.KEY_CODE) String code, @Field("time") String time);
/**
* 重置密码
diff --git a/app/src/main/java/com/runt/open/mvvm/retrofit/converter/DecryptGsonResponseBodyConverter.java b/app/src/main/java/com/runt/open/mvvm/retrofit/converter/DecryptGsonResponseBodyConverter.java
index 3e9ac2d..5d02452 100644
--- a/app/src/main/java/com/runt/open/mvvm/retrofit/converter/DecryptGsonResponseBodyConverter.java
+++ b/app/src/main/java/com/runt/open/mvvm/retrofit/converter/DecryptGsonResponseBodyConverter.java
@@ -17,8 +17,6 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
-import java.security.NoSuchAlgorithmException;
-import java.security.spec.InvalidKeySpecException;
import okhttp3.ResponseBody;
import retrofit2.Converter;
@@ -34,7 +32,6 @@
private final TypeAdapter<T> adapter;
private final Charset UTF_8 = Charset.forName("UTF-8");
private final boolean transHump;//驼峰转换
- private final String ENCRYPT = "encrypt";
public DecryptGsonResponseBodyConverter(Gson gson, TypeAdapter<T> adapter, boolean transHump) {
this.gson = gson;
@@ -47,13 +44,8 @@
String response = null;
try {
String val = new String(value.bytes(),UTF_8);
- response = decryptJsonStr(val);//解密
- } catch (NoSuchAlgorithmException | InvalidKeySpecException e) {
- e.printStackTrace();
- HttpApiResult apiResult = new HttpApiResult<>();
- apiResult.code = 412;
- apiResult.msg = "解密数据出错"+e.getMessage();
- response = new Gson().toJson(apiResult);
+ Log.e("Converter","val body:"+val);
+ response = transHump? GsonUtils.toHumpJson(val):val;
} catch (JSONException e) {
e.printStackTrace();
HttpApiResult apiResult = new HttpApiResult<>();
@@ -75,20 +67,5 @@
}
}
- /**
- * 解密json
- * @param body
- * @return
- * @throws Exception
- */
- protected String decryptJsonStr(String body) throws Exception {
- Log.e("Converter","decryptJsonStr body:"+body);
- /*if(body.indexOf("{") == 0) {
- JSONObject json = new JSONObject(body);
- body = json.toString();
- //body = RSAUtils.decrypt(json.getString(ENCRYPT), RSAUtils.getPublicKey(RSAUtils.PUBLIC_KEY));//
- }*/
- return transHump? GsonUtils.toHumpJson(body):body;
- }
}
diff --git a/app/src/main/java/com/runt/open/mvvm/retrofit/converter/DecryptGsonConverterFactory.java b/app/src/main/java/com/runt/open/mvvm/retrofit/converter/GsonConverterFactory.java
similarity index 78%
rename from app/src/main/java/com/runt/open/mvvm/retrofit/converter/DecryptGsonConverterFactory.java
rename to app/src/main/java/com/runt/open/mvvm/retrofit/converter/GsonConverterFactory.java
index 519ea76..c613f3e 100644
--- a/app/src/main/java/com/runt/open/mvvm/retrofit/converter/DecryptGsonConverterFactory.java
+++ b/app/src/main/java/com/runt/open/mvvm/retrofit/converter/GsonConverterFactory.java
@@ -17,26 +17,26 @@
*
* @purpose Created by Runt (qingingrunt2010@qq.com) on 2021-7-22.
*/
-public class DecryptGsonConverterFactory extends Converter.Factory {
+public class GsonConverterFactory extends Converter.Factory {
- public static DecryptGsonConverterFactory create() {
+ public static GsonConverterFactory create() {
return create(new Gson(),false);
}
- public static DecryptGsonConverterFactory create(boolean transHump) {
+ public static GsonConverterFactory create(boolean transHump) {
return create(new Gson(),transHump);
}
- public static DecryptGsonConverterFactory create(Gson gson,boolean transHump) {
- return new DecryptGsonConverterFactory(gson,transHump);
+ public static GsonConverterFactory create(Gson gson, boolean transHump) {
+ return new GsonConverterFactory(gson,transHump);
}
private final Gson gson;
private final boolean transHump;
- public DecryptGsonConverterFactory(Gson gson, boolean transHump) {
+ public GsonConverterFactory(Gson gson, boolean transHump) {
if (gson == null) throw new NullPointerException("gson == null");
this.gson = gson;
this.transHump = transHump;
diff --git a/app/src/main/java/com/runt/open/mvvm/retrofit/utils/RetrofitUtils.java b/app/src/main/java/com/runt/open/mvvm/retrofit/utils/RetrofitUtils.java
index 4110036..65e3440 100644
--- a/app/src/main/java/com/runt/open/mvvm/retrofit/utils/RetrofitUtils.java
+++ b/app/src/main/java/com/runt/open/mvvm/retrofit/utils/RetrofitUtils.java
@@ -5,7 +5,7 @@
import com.runt.open.mvvm.retrofit.Interceptor.EncryptInterceptor;
import com.runt.open.mvvm.retrofit.Interceptor.HttpLoggingInterceptor;
import com.runt.open.mvvm.retrofit.api.CommonApiCenter;
-import com.runt.open.mvvm.retrofit.converter.DecryptGsonConverterFactory;
+import com.runt.open.mvvm.retrofit.converter.GsonConverterFactory;
import com.runt.open.mvvm.retrofit.net.NetWorkListenear;
import java.util.Collections;
@@ -47,7 +47,7 @@
public <T> T getRetrofit(Class<T> clas) {
if(retrofit == null){
retrofit = getRetrofit(getOkHttpClient(logBuilder),
- new Retrofit.Builder().addConverterFactory(DecryptGsonConverterFactory.create(true))) ;
+ new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(true))) ;
}
if(!BuildConfig.DEBUG){//正式版 不打印log
return getUnLogRetrofit(clas);
@@ -62,7 +62,7 @@
public <T> T getUnHumpRetrofit(Class<T> clas) {
if(unHumpRetrofit == null){
unHumpRetrofit = getRetrofit(getOkHttpClient(logBuilder),
- new Retrofit.Builder().addConverterFactory(DecryptGsonConverterFactory.create())) ;
+ new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create())) ;
}
if(!BuildConfig.DEBUG){//正式版 不打印log
return getUnLogHumpRetorfit(clas);
@@ -77,7 +77,7 @@
public <T> T getUnLogRetrofit(Class<T> clas) {
if(unLogRetrofit == null){
unLogRetrofit = getRetrofit(getOkHttpClient(builder),
- new Retrofit.Builder().addConverterFactory(DecryptGsonConverterFactory.create(true))) ;
+ new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(true))) ;
}
return unLogRetrofit.create(clas);
}
@@ -89,7 +89,7 @@
public <T> T getUnLogHumpRetorfit(Class<T> clas) {
if(unLogHumpRetorfit == null){
unLogHumpRetorfit = getRetrofit(getOkHttpClient(builder),
- new Retrofit.Builder().addConverterFactory(DecryptGsonConverterFactory.create())) ;
+ new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create())) ;
}
return unLogHumpRetorfit.create(clas);
}
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/login/LoginViewModel.java b/app/src/main/java/com/runt/open/mvvm/ui/login/LoginViewModel.java
index b83f332..eaa678a 100644
--- a/app/src/main/java/com/runt/open/mvvm/ui/login/LoginViewModel.java
+++ b/app/src/main/java/com/runt/open/mvvm/ui/login/LoginViewModel.java
@@ -3,6 +3,7 @@
import androidx.lifecycle.MutableLiveData;
import com.runt.open.mvvm.base.model.BaseViewModel;
+import com.runt.open.mvvm.data.HttpApiResult;
import com.runt.open.mvvm.data.Results;
import com.runt.open.mvvm.retrofit.api.LoginApiCenter;
import com.runt.open.mvvm.retrofit.observable.HttpObserver;
@@ -26,7 +27,7 @@
}
MutableLiveData<Results.LoggedInUser> loginResult = new MutableLiveData<>();
- MutableLiveData<Results.StringApiResult> verifyResult = new MutableLiveData<>();
+ MutableLiveData<Integer> verifyResult = new MutableLiveData<>();
MutableLiveData<Results.StringApiResult> resetResult = new MutableLiveData<>();
MutableLiveData<Results.StringApiResult> registerResult = new MutableLiveData<>();
HttpObserver<Results.LoggedInUser> logginObserver = new HttpObserver<Results.LoggedInUser>(){
@@ -39,7 +40,7 @@
return loginResult;
}
- public MutableLiveData<Results.StringApiResult> getVerifyResult() {
+ public MutableLiveData<Integer> getVerifyResult() {
return verifyResult;
}
@@ -119,10 +120,16 @@
*/
public void getVerifyCode(String url,String phone){
String time = new Date().getTime()+"";
- httpObserverOnLoading(loginApi.getVerifyCode(url, phone, randomString(phone, time), time), new HttpObserver<Results.StringApiResult>(){
+ httpObserverOnLoading(loginApi.getVerifyCode(url, phone, randomString(phone, time), time), new HttpObserver<Results.SmsResult>(){
@Override
- protected void onSuccess(Results.StringApiResult data) {
- verifyResult.setValue(data);
+ protected void onSuccess(Results.SmsResult data) {
+ verifyResult.setValue(0);
+ }
+
+ @Override
+ protected void onFailed(HttpApiResult httpResult) {
+ super.onFailed(httpResult);
+ verifyResult.setValue(-1);
}
});
}
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/login/RegisterLoginActivity.java b/app/src/main/java/com/runt/open/mvvm/ui/login/RegisterLoginActivity.java
index 224b886..9fff38f 100644
--- a/app/src/main/java/com/runt/open/mvvm/ui/login/RegisterLoginActivity.java
+++ b/app/src/main/java/com/runt/open/mvvm/ui/login/RegisterLoginActivity.java
@@ -35,11 +35,13 @@
mBinding.txtRegister.setOnClickListener(onclick);
mBinding.txtPrivacy.setOnClickListener(onclick);
mBinding.editPhone.setText(getStringProjectPrefrence(Configuration.KEY_USERNAME));
- mViewModel.getVerifyResult().observe(this, stringApiResult -> {
- if(stringApiResult.code == 200){
-
+ mViewModel.getVerifyResult().observe(this, result -> {
+ if(result == 0){
+ putLongProjectPrefrence(VERIFY_CODE,new Date().getTime());
+ CodeTimer codeTimer = new CodeTimer(60000, 1000, mBinding.txtGetVerify);
+ codeTimer.startUp();
}else{
- showToast(stringApiResult.msg);
+
}
});
mViewModel.getLoginResult().observe(this, loggedInUser -> {
@@ -65,7 +67,7 @@
long getTime = getLongProjectPrefrence(VERIFY_CODE);
long cha = new Date().getTime() - getTime;
if(cha <1000*60){
- CodeTimer codeTimer = new CodeTimer(cha, 1000, mBinding.txtGetVerify);
+ CodeTimer codeTimer = new CodeTimer((60) * 1000-cha, 1000, mBinding.txtGetVerify);
codeTimer.startUp();
}
changeView();
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/splash/SplashActivity.java b/app/src/main/java/com/runt/open/mvvm/ui/splash/SplashActivity.java
index bb5fa8f..f422ab8 100644
--- a/app/src/main/java/com/runt/open/mvvm/ui/splash/SplashActivity.java
+++ b/app/src/main/java/com/runt/open/mvvm/ui/splash/SplashActivity.java
@@ -1,7 +1,9 @@
package com.runt.open.mvvm.ui.splash;
import android.content.Intent;
+import android.os.Build;
import android.os.Handler;
+import android.view.View;
import android.view.WindowManager;
import com.runt.open.mvvm.base.activities.BaseActivity;
@@ -20,9 +22,16 @@
final String TAG = "WelcomeActivity";
@Override
public void initViews() {
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_FULLSCREEN);//全屏
- hideBottomUIMenu();
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+ // 延伸显示区域到刘海
+ WindowManager.LayoutParams attributes = getWindow().getAttributes();
+ attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
+ getWindow().setAttributes(attributes);
+ }
+ // 设置页面全屏显示 隐藏底部导航
+ getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
+ | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+ | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
@Override
--
Gitblit v1.9.1