From 92f09807eeb57f0cb9a4686cde38834549b34962 Mon Sep 17 00:00:00 2001
From: nilupeng <qingingrunt2010@qq.com>
Date: Tue, 09 Aug 2022 11:00:15 +0000
Subject: [PATCH] Merge branch 'master' into page
---
app/src/main/java/com/runt/open/mvvm/base/activities/BaseActivity.java | 13 -
app/src/main/java/com/runt/open/mvvm/retrofit/api/LoginApiCenter.java | 5
app/src/main/res/drawable/ic_launcher_background.xml | 134 ++++++++--------
app/src/main/res/drawable/ic_home_black_24dp.xml | 9 +
app/src/main/res/mipmap-hdpi/ic_launcher_round.webp | 0
app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp | 0
app/src/main/res/drawable/ic_dashboard_black_24dp.xml | 9 +
app/src/main/java/com/runt/open/mvvm/ui/login/LoginViewModel.java | 30 ++-
app/src/main/java/com/runt/open/mvvm/ui/login/UserBean.java | 41 -----
app/src/main/java/com/runt/open/mvvm/retrofit/converter/GsonConverterFactory.java | 19 +-
app/src/main/res/drawable-v24/ic_launcher_foreground.xml | 30 +++
app/src/main/res/mipmap-xxhdpi/ic_launcher.webp | 0
app/build.gradle | 12 -
app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp | 0
app/src/main/res/layout/activity_splash.xml | 14 +
app/src/main/AndroidManifest.xml | 2
app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp | 0
app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml | 5
app/src/main/res/mipmap-xhdpi/ic_launcher.webp | 0
app/src/main/java/com/runt/open/mvvm/retrofit/observable/HttpObserver.java | 26 ++
app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml | 5
app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp | 0
/dev/null | 0
app/src/main/res/mipmap-mdpi/ic_launcher_round.webp | 0
app/src/main/res/drawable/ic_notifications_black_24dp.xml | 9 +
app/src/main/res/mipmap-hdpi/ic_launcher.webp | 0
app/src/main/java/com/runt/open/mvvm/retrofit/converter/GsonResponseBodyConverter.java | 85 ++++++++++
app/src/main/res/layout/activity_login.xml | 2
app/src/main/java/com/runt/open/mvvm/data/Results.java | 4
app/src/main/res/mipmap-mdpi/ic_launcher.webp | 0
app/src/main/java/com/runt/open/mvvm/ui/login/RegisterLoginActivity.java | 23 +-
31 files changed, 297 insertions(+), 180 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 306004b..085af32 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -18,7 +18,7 @@
buildTypes {
debug{
minifyEnabled false
- buildConfigField 'String','HOST_IP_ADDR','"http://192.168.110.116:8080/"'
+ buildConfigField 'String','HOST_IP_ADDR','"http://192.168.110.134:8080/"'
resValue "string", "app_name", "MVVM OPEN TEST"
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
@@ -38,14 +38,8 @@
}
android.applicationVariants.all { variant ->
variant.outputs.all {
- def viron
-
- if (buildType.name.equals('release')) {
- viron = "正式版";
- }else if (buildType.name.equals('debug')) {
- viron = "开发版";
- }
- outputFileName = "MVVM开源项目-" + viron + "-v" +
+ def viron = name
+ outputFileName = "MVVM-OPEN-" + viron + "-v" +
defaultConfig.versionName +"-" + defaultConfig.versionCode +"-" + new Date().format("MMddHHmm", TimeZone.getTimeZone("UTC"))+
".apk"
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f076df2..8b509b3 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -25,7 +25,7 @@
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<application
android:allowBackup="true"
- android:icon="@mipmap/app_icon"
+ android:icon="@mipmap/ic_launcher"
android:name=".MyApplication"
android:label="@string/app_name"
android:supportsRtl="true"
diff --git a/app/src/main/java/com/runt/open/mvvm/base/activities/BaseActivity.java b/app/src/main/java/com/runt/open/mvvm/base/activities/BaseActivity.java
index a7d4c8d..0b2b797 100644
--- a/app/src/main/java/com/runt/open/mvvm/base/activities/BaseActivity.java
+++ b/app/src/main/java/com/runt/open/mvvm/base/activities/BaseActivity.java
@@ -10,23 +10,18 @@
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
+import android.util.Log;
+import android.view.*;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
-
import androidx.annotation.ColorRes;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.ViewModelProvider;
import androidx.viewbinding.ViewBinding;
-
import com.permissionx.guolindev.PermissionX;
import com.runt.open.mvvm.MyApplication;
import com.runt.open.mvvm.R;
@@ -35,13 +30,12 @@
import com.runt.open.mvvm.listener.ResPonse;
import com.runt.open.mvvm.util.PreferencesUtils;
import com.runt.open.mvvm.widgets.TitleBarView;
+import dmax.dialog.SpotsDialog;
import java.io.File;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.util.Set;
-
-import dmax.dialog.SpotsDialog;
/**
* activity 封装
@@ -393,6 +387,7 @@
}
}
public void showToast(String message){
+ Log.i(TAG,"showToast "+message);
runOnUiThread(() -> Toast.makeText(mContext,message,Toast.LENGTH_SHORT).show());
}
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 ff2330d..572d453 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
@@ -1,15 +1,11 @@
package com.runt.open.mvvm.data;
-import com.runt.open.mvvm.ui.login.UserBean;
-
/**
* My father is Object, ites purpose of
*
* @purpose Created by Runt (qingingrunt2010@qq.com) on 2022/1/29.
*/
public class Results {
-
- public static class LoggedInUser extends HttpApiResult<UserBean> { }
public static class StringApiResult extends HttpApiResult<String> { }
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 6c5e50b..2c5b8d4 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
@@ -4,6 +4,7 @@
import com.runt.open.mvvm.data.HttpApiResult;
import com.runt.open.mvvm.data.Results;
+import com.runt.open.mvvm.ui.login.UserBean;
import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
@@ -22,7 +23,7 @@
*/
@FormUrlEncoded
@POST("login")
- Observable<Results.LoggedInUser> login(@Field(Configuration.KEY_PHONE) String phone, @Field("pass") String pass);
+ Observable<HttpApiResult<UserBean>> login(@Field(Configuration.KEY_PHONE) String phone, @Field("pass") String pass);
/**
* 验证码登录
@@ -32,7 +33,7 @@
*/
@FormUrlEncoded
@POST("loginCode")
- Observable<Results.LoggedInUser> loginByCode(@Field(Configuration.KEY_PHONE) String phone, @Field(Configuration.KEY_CODE) String code);
+ Observable<HttpApiResult<UserBean>> loginByCode(@Field(Configuration.KEY_PHONE) String phone, @Field(Configuration.KEY_CODE) String code);
@FormUrlEncoded
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
deleted file mode 100644
index 5d02452..0000000
--- a/app/src/main/java/com/runt/open/mvvm/retrofit/converter/DecryptGsonResponseBodyConverter.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package com.runt.open.mvvm.retrofit.converter;
-
-import android.util.Log;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonIOException;
-import com.google.gson.TypeAdapter;
-import com.google.gson.stream.JsonReader;
-import com.google.gson.stream.JsonToken;
-import com.runt.open.mvvm.data.HttpApiResult;
-import com.runt.open.mvvm.util.GsonUtils;
-
-import org.json.JSONException;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.nio.charset.Charset;
-
-import okhttp3.ResponseBody;
-import retrofit2.Converter;
-
-/**
- * My father is Object, ites purpose of 解密gson转换器
- *
- * @purpose Created by Runt (qingingrunt2010@qq.com) on 2021-7-22.
- */
-
-public class DecryptGsonResponseBodyConverter<T> implements Converter<ResponseBody, T> {
- private final Gson gson;
- private final TypeAdapter<T> adapter;
- private final Charset UTF_8 = Charset.forName("UTF-8");
- private final boolean transHump;//驼峰转换
-
- public DecryptGsonResponseBodyConverter(Gson gson, TypeAdapter<T> adapter, boolean transHump) {
- this.gson = gson;
- this.adapter = adapter;
- this.transHump = transHump;
- }
-
- @Override
- public T convert(ResponseBody value) throws IOException {
- String response = null;
- try {
- String val = new String(value.bytes(),UTF_8);
- Log.e("Converter","val body:"+val);
- response = transHump? GsonUtils.toHumpJson(val):val;
- } catch (JSONException e) {
- e.printStackTrace();
- HttpApiResult apiResult = new HttpApiResult<>();
- apiResult.code = 414;
- apiResult.msg = "非标准json";
- response = new Gson().toJson(apiResult);
- }catch (Exception e){
- JsonReader jsonReader = gson.newJsonReader(value.charStream());
- return adapter.read(jsonReader);
- } finally {
- InputStream inputStream = new ByteArrayInputStream(response.getBytes());
- JsonReader jsonReader = gson.newJsonReader(new InputStreamReader(inputStream, UTF_8));
- T result = adapter.read(jsonReader);
- if (jsonReader.peek() != JsonToken.END_DOCUMENT) {
- throw new JsonIOException("JSON document was not fully consumed.");
- }
- value.close();
- return result;
- }
- }
-
-
-}
diff --git a/app/src/main/java/com/runt/open/mvvm/retrofit/converter/GsonConverterFactory.java b/app/src/main/java/com/runt/open/mvvm/retrofit/converter/GsonConverterFactory.java
index c613f3e..f240d4f 100644
--- a/app/src/main/java/com/runt/open/mvvm/retrofit/converter/GsonConverterFactory.java
+++ b/app/src/main/java/com/runt/open/mvvm/retrofit/converter/GsonConverterFactory.java
@@ -1,16 +1,17 @@
package com.runt.open.mvvm.retrofit.converter;
import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
import com.google.gson.TypeAdapter;
import com.google.gson.reflect.TypeToken;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-
+import com.runt.open.mvvm.data.HttpApiResult;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.Converter;
import retrofit2.Retrofit;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
/**
* My father is Object, ites purpose of 解密gson转换
@@ -20,11 +21,11 @@
public class GsonConverterFactory extends Converter.Factory {
public static GsonConverterFactory create() {
- return create(new Gson(),false);
+ return create(false);
}
public static GsonConverterFactory create(boolean transHump) {
- return create(new Gson(),transHump);
+ return create(new GsonBuilder().setDateFormat("MMMM dd, yyyy, HH:mm:ss").create(),transHump);
}
@@ -43,10 +44,10 @@
}
@Override
- public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations,
+ public Converter<ResponseBody, ? extends HttpApiResult> responseBodyConverter(Type type, Annotation[] annotations,
Retrofit retrofit) {
- TypeAdapter<?> adapter = gson.getAdapter(TypeToken.get(type));
- return new DecryptGsonResponseBodyConverter<>(gson, adapter,transHump);
+ TypeAdapter<? extends HttpApiResult> adapter = (TypeAdapter<? extends HttpApiResult>) gson.getAdapter(TypeToken.get(type));
+ return new GsonResponseBodyConverter<>(gson, adapter,transHump);
}
@Override
diff --git a/app/src/main/java/com/runt/open/mvvm/retrofit/converter/GsonResponseBodyConverter.java b/app/src/main/java/com/runt/open/mvvm/retrofit/converter/GsonResponseBodyConverter.java
new file mode 100644
index 0000000..62b09f8
--- /dev/null
+++ b/app/src/main/java/com/runt/open/mvvm/retrofit/converter/GsonResponseBodyConverter.java
@@ -0,0 +1,85 @@
+package com.runt.open.mvvm.retrofit.converter;
+
+import android.util.Log;
+import com.google.gson.Gson;
+import com.google.gson.JsonIOException;
+import com.google.gson.JsonSyntaxException;
+import com.google.gson.TypeAdapter;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonToken;
+import com.runt.open.mvvm.data.HttpApiResult;
+import com.runt.open.mvvm.util.GsonUtils;
+import okhttp3.ResponseBody;
+import org.json.JSONException;
+import retrofit2.Converter;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+
+/**
+ * My father is Object, ites purpose of 解密gson转换器
+ *
+ * @purpose Created by Runt (qingingrunt2010@qq.com) on 2021-7-22.
+ */
+
+public class GsonResponseBodyConverter<T extends HttpApiResult> implements Converter<ResponseBody, T> {
+ private final Gson gson;
+ private final TypeAdapter<T> adapter;
+ private final Charset UTF_8 = Charset.forName("UTF-8");
+ private final boolean transHump;//驼峰转换
+
+ public GsonResponseBodyConverter(Gson gson, TypeAdapter<T> adapter, boolean transHump) {
+ this.gson = gson;
+ this.adapter = adapter;
+ this.transHump = transHump;
+ }
+
+ @Override
+ public T convert(ResponseBody value) throws IOException {
+ T result = null;
+ String response = null;
+ try {
+ String val = new String(value.bytes(),UTF_8);
+ Log.e("Converter","val body:"+val);
+ response = transHump? GsonUtils.toHumpJson(val):val;
+ result = readString(response);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ Log.e("Converter","Throwable 数据类型转换错误 "+e);
+ HttpApiResult apiResult = new HttpApiResult<>();
+ apiResult.data = response;
+ if(e instanceof JSONException){
+ Log.e("Converter","Throwable 非标准json "+e);
+ apiResult.code = 1014;
+ apiResult.msg = "非标准json";
+ }else if(e instanceof JsonSyntaxException){
+ Log.e("Converter","Throwable 数据类型转换错误 "+e);
+ apiResult.code = 1015;
+ apiResult.msg = "数据类型转换错误";
+ }else {
+ apiResult.code = 1016;
+ apiResult.msg = "类型转换错误"+e.getMessage();
+ Log.e("Converter","Throwable "+e);
+ }
+ response = new Gson().toJson(apiResult);
+ result = readString(response);
+ } finally {
+ value.close();
+ return result;
+ }
+ }
+
+ private T readString(String str) throws IOException {
+ InputStream inputStream = new ByteArrayInputStream(str.getBytes());
+ JsonReader jsonReader = gson.newJsonReader(new InputStreamReader(inputStream, UTF_8));
+ T result = adapter.read(jsonReader);
+ if (jsonReader.peek() != JsonToken.END_DOCUMENT) {
+ throw new JsonIOException("JSON document was not fully consumed.");
+ }
+ return result;
+ }
+
+}
diff --git a/app/src/main/java/com/runt/open/mvvm/retrofit/observable/HttpObserver.java b/app/src/main/java/com/runt/open/mvvm/retrofit/observable/HttpObserver.java
index a99f74e..c9e3760 100644
--- a/app/src/main/java/com/runt/open/mvvm/retrofit/observable/HttpObserver.java
+++ b/app/src/main/java/com/runt/open/mvvm/retrofit/observable/HttpObserver.java
@@ -1,9 +1,12 @@
package com.runt.open.mvvm.retrofit.observable;
import android.util.Log;
-
import com.google.gson.Gson;
+import com.runt.open.mvvm.base.activities.BaseActivity;
import com.runt.open.mvvm.data.HttpApiResult;
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
+import retrofit2.adapter.rxjava2.HttpException;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
@@ -11,15 +14,20 @@
import java.util.concurrent.TimeoutException;
import java.util.regex.Pattern;
-import io.reactivex.Observer;
-import io.reactivex.disposables.Disposable;
-import retrofit2.adapter.rxjava2.HttpException;
-
/**
* 网络请求观察
* Created by Administrator on 2021/11/11 0011.
*/
public abstract class HttpObserver<RESULT> implements Observer<HttpApiResult<RESULT>> {
+
+ BaseActivity activity;
+
+ public HttpObserver() {
+ }
+
+ public HttpObserver(BaseActivity activity) {
+ this.activity = activity;
+ }
final String TAG = "HttpObserver";
@@ -40,7 +48,6 @@
@Override
public void onError(Throwable e) {
- e.printStackTrace();
Log.e(TAG,"onError "+e.getMessage()+" "+hashCode());
int code = 600;
String msg = "网络请求失败,请检查网络或稍后重试";
@@ -66,6 +73,11 @@
protected abstract void onSuccess(RESULT data);
- protected void onFailed(HttpApiResult httpResult){}
+ protected void onFailed(HttpApiResult error){
+ Log.i(TAG,"onFailed "+activity);
+ if(activity != null){
+ activity.showToast(error.msg);
+ }
+ }
}
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 eaa678a..80addfe 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
@@ -1,19 +1,18 @@
package com.runt.open.mvvm.ui.login;
import androidx.lifecycle.MutableLiveData;
-
+import com.runt.open.mvvm.base.activities.BaseActivity;
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;
import com.runt.open.mvvm.retrofit.utils.RetrofitUtils;
+import io.reactivex.Observable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
-
-import io.reactivex.Observable;
/**
* Created by Administrator on 2021/11/15 0015.
@@ -26,17 +25,24 @@
loginApi = RetrofitUtils.getInstance().getRetrofit(LoginApiCenter.class);
}
- MutableLiveData<Results.LoggedInUser> loginResult = new MutableLiveData<>();
+ MutableLiveData<UserBean> loginResult = 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>(){
- @Override
- protected void onSuccess(Results.LoggedInUser data) {
- loginResult.setValue(data);
- }
- };
- public MutableLiveData<Results.LoggedInUser> getLoginResult() {
+ HttpObserver<UserBean> logginObserver;
+
+ @Override
+ public void onCreate(BaseActivity activity) {
+ super.onCreate(activity);
+ logginObserver = new HttpObserver<UserBean>(mActivity){
+ @Override
+ protected void onSuccess(UserBean data) {
+ loginResult.setValue(data);
+ }
+ };
+ }
+
+ public MutableLiveData<UserBean> getLoginResult() {
return loginResult;
}
@@ -51,7 +57,7 @@
*/
public void login(String username, String password) {
// can be launched in a separate asynchronous job
- final Observable<Results.LoggedInUser> userObservable = loginApi.login(username, password);
+ final Observable<HttpApiResult<UserBean>> userObservable = loginApi.login(username, password);
httpObserverOnLoading(userObservable,logginObserver);
}
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 9fff38f..eb3eb99 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
@@ -34,6 +34,7 @@
mBinding.txtLogin.setOnClickListener(onclick);
mBinding.txtRegister.setOnClickListener(onclick);
mBinding.txtPrivacy.setOnClickListener(onclick);
+ mBinding.button.setOnClickListener(onclick);
mBinding.editPhone.setText(getStringProjectPrefrence(Configuration.KEY_USERNAME));
mViewModel.getVerifyResult().observe(this, result -> {
if(result == 0){
@@ -45,20 +46,16 @@
}
});
mViewModel.getLoginResult().observe(this, loggedInUser -> {
- if(loggedInUser.code == 200){
- putBooleanProjectPrefrence(Configuration.IS_LOGIN,true);
- putStringProjectPrefrence(Configuration.KEY_USERNAME, mBinding.editPhone.getText().toString());
+ putBooleanProjectPrefrence(Configuration.IS_LOGIN,true);
+ putStringProjectPrefrence(Configuration.KEY_USERNAME, mBinding.editPhone.getText().toString());
- UserBean user = new Gson().fromJson(new Gson().toJson(loggedInUser.data) ,UserBean.class);
- UserBean.setUser(user);
- putStringProjectPrefrence(Configuration.KEY_TOKEN, user.getToken());
- MyLog.i("registerlogin",user.toString());
- showToast(R.string.login_success);
- setResult(RESULT_CODE_SUCESS);
- finish();
- }else{
- showToast(loggedInUser.msg);
- }
+ UserBean user = new Gson().fromJson(new Gson().toJson(loggedInUser) ,UserBean.class);
+ UserBean.setUser(user);
+ putStringProjectPrefrence(Configuration.KEY_TOKEN, user.getToken());
+ MyLog.i("registerlogin",user.toString());
+ showToast(R.string.login_success);
+ setResult(RESULT_CODE_SUCESS);
+ finish();
});
}
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/login/UserBean.java b/app/src/main/java/com/runt/open/mvvm/ui/login/UserBean.java
index ccb8082..6d3901f 100644
--- a/app/src/main/java/com/runt/open/mvvm/ui/login/UserBean.java
+++ b/app/src/main/java/com/runt/open/mvvm/ui/login/UserBean.java
@@ -50,20 +50,11 @@
/* 连续签到天数 */
private int sign;
- /** 用户类型(0推广,1店员,2商家,3广告商) **/
- private Integer type;
-
/** 上级管理者 **/
private String upuser;
/** 余额 **/
private BigDecimal balance;
-
- /** 会员等级(0普通用户,1会员) **/
- private Integer vlevel;
-
- /** 会员到期时间 **/
- private Date vtime;
/** 状态0通过,1审核中,-1封收益 , -2 限制支付 , -3限制广告 ,-4限制发送短信,-5永久限制发送短信,-6 限制登录 **/
private String status;
@@ -133,16 +124,6 @@
this.head = head;
}
-
- public Integer getType() {
- return type;
- }
-
- public void setType(Integer type) {
- this.type = type;
- }
-
-
public String getUpuser() {
return upuser;
}
@@ -159,25 +140,6 @@
public void setBalance(BigDecimal balance) {
this.balance = balance;
}
-
-
- public Integer getVlevel() {
- return vlevel;
- }
-
- public void setVlevel(Integer vlevel) {
- this.vlevel = vlevel;
- }
-
-
- public Date getVtime() {
- return vtime;
- }
-
- public void setVtime(Date vtime) {
- this.vtime = vtime;
- }
-
public String getStatus() {
return status;
@@ -264,11 +226,8 @@
", head='" + head + '\'' +
", coin=" + coin +
", sign=" + sign +
- ", type=" + type +
", upuser='" + upuser + '\'' +
", balance=" + balance +
- ", vlevel=" + vlevel +
- ", vtime=" + vtime +
", status=" + status +
", wechat='" + wechat + '\'' +
", qq='" + qq + '\'' +
diff --git a/app/src/main/java/com/runt/open/mvvm/ui/splash/SplashViewModel.java b/app/src/main/java/com/runt/open/mvvm/ui/splash/SplashViewModel.java
deleted file mode 100644
index 5d1c2c7..0000000
--- a/app/src/main/java/com/runt/open/mvvm/ui/splash/SplashViewModel.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.runt.open.mvvm.ui.splash;
-
-import android.os.Handler;
-
-import androidx.lifecycle.MutableLiveData;
-
-import com.runt.open.mvvm.base.model.BaseViewModel;
-
-import java.util.Date;
-
-/**
- * Created by Administrator on 2021/11/15 0015.
- */
-public class SplashViewModel extends BaseViewModel {
-
- final String TAG = "SplashViewModel";
- long cTime = new Date().getTime(),limitTime = 2000;
-
- private MutableLiveData<Integer> timeOut = new MutableLiveData<>();
-
-
- public MutableLiveData<Integer> getTimeOut() {
- return timeOut;
- }
-
- public void countdown(){
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- timeOut.setValue(0);
- }
- },limitTime);
- }
-
-
-}
diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:endX="85.84757"
+ android:endY="92.4963"
+ android:startX="42.9492"
+ android:startY="49.59793"
+ android:type="linear">
+ <item
+ android:color="#44000000"
+ android:offset="0.0" />
+ <item
+ android:color="#00000000"
+ android:offset="1.0" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:fillColor="#FFFFFF"
+ android:fillType="nonZero"
+ android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
+ android:strokeWidth="1"
+ android:strokeColor="#00000000" />
+</vector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_dashboard_black_24dp.xml b/app/src/main/res/drawable/ic_dashboard_black_24dp.xml
new file mode 100644
index 0000000..46fc8de
--- /dev/null
+++ b/app/src/main/res/drawable/ic_dashboard_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M3,13h8L11,3L3,3v10zM3,21h8v-6L3,15v6zM13,21h8L21,11h-8v10zM13,3v6h8L21,3h-8z" />
+</vector>
diff --git a/app/src/main/res/drawable/ic_home_black_24dp.xml b/app/src/main/res/drawable/ic_home_black_24dp.xml
new file mode 100644
index 0000000..f8bb0b5
--- /dev/null
+++ b/app/src/main/res/drawable/ic_home_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
+</vector>
diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
index e01dd84..07d5da9 100644
--- a/app/src/main/res/drawable/ic_launcher_background.xml
+++ b/app/src/main/res/drawable/ic_launcher_background.xml
@@ -2,169 +2,169 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
- android:viewportHeight="108"
- android:viewportWidth="108">
+ android:viewportWidth="108"
+ android:viewportHeight="108">
<path
- android:fillColor="#008577"
+ android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
</vector>
diff --git a/app/src/main/res/drawable/ic_notifications_black_24dp.xml b/app/src/main/res/drawable/ic_notifications_black_24dp.xml
new file mode 100644
index 0000000..78b75c3
--- /dev/null
+++ b/app/src/main/res/drawable/ic_notifications_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M12,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.89,2 2,2zM18,16v-5c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2z" />
+</vector>
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 9cc3693..28c5d9f 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -20,7 +20,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="50dp"
- android:src="@mipmap/app_icon"
+ android:src="@mipmap/ic_launcher"
android:adjustViewBounds="true"
app:layout_constraintTop_toBottomOf="@id/title_bar"
app:layout_constraintLeft_toLeftOf="parent"
diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml
index ad20990..9003eef 100644
--- a/app/src/main/res/layout/activity_splash.xml
+++ b/app/src/main/res/layout/activity_splash.xml
@@ -6,12 +6,16 @@
android:layout_height="match_parent"
android:orientation="vertical" >
- <ImageView
+
+ <TextView
+ android:text="MVVM\nOPEN"
+ android:textStyle="bold"
+ android:textSize="80dp"
+ android:letterSpacing="0.1"
+ android:textColor="@color/white"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:src="@mipmap/welcom"
- android:scaleType="centerCrop"
- />
-
+ android:gravity="center"
+ android:background="@drawable/ic_launcher_background" />
</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@drawable/ic_launcher_background" />
+ <foreground android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@drawable/ic_launcher_background" />
+ <foreground android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/ic_launcher.webp
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
Binary files differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
--- /dev/null
+++ b/app/src/main/res/mipmap-mdpi/ic_launcher.webp
Binary files differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
--- /dev/null
+++ b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/app_icon.png b/app/src/main/res/mipmap-xxhdpi/app_icon.png
deleted file mode 100644
index a3b089e..0000000
--- a/app/src/main/res/mipmap-xxhdpi/app_icon.png
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
--- /dev/null
+++ b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
--- /dev/null
+++ b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
--- /dev/null
+++ b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
--- /dev/null
+++ b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/welcom.png b/app/src/main/res/mipmap-xxxhdpi/welcom.png
deleted file mode 100644
index db9de44..0000000
--- a/app/src/main/res/mipmap-xxxhdpi/welcom.png
+++ /dev/null
Binary files differ
--
Gitblit v1.9.1