From bcf93604974e68b971af9978e299aa21fd313e8f Mon Sep 17 00:00:00 2001
From: fangshicai <1312964935@qq.com>
Date: Thu, 16 Jun 2022 20:02:42 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E7=99=BB=E5=BD=95=E5=92=8C?=
=?UTF-8?q?=E6=B3=A8=E5=86=8C=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/deploymentTargetDropDown.xml | 2 +-
.idea/misc.xml | 2 +-
app/build.gradle | 8 +
app/src/main/AndroidManifest.xml | 13 ++
.../main/java/com/android/MainActivity.java | 19 ---
.../com/android/activity/LoginActivity.java | 65 +++++--
app/src/main/java/com/android/bean/User.java | 64 ++++++-
.../java/com/android/model/LoginListener.java | 10 --
.../java/com/android/model/LoginModel.java | 5 -
.../com/android/model/LoginModelImpl.java | 60 -------
.../android/model/login/LoginListener.java | 14 ++
.../com/android/model/login/LoginModel.java | 8 +
.../android/model/login/LoginModelImpl.java | 158 ++++++++++++++++++
.../model/login/longinHttp_Interface.java | 38 +++++
.../android/model/longinHttp_Interface.java | 39 -----
.../com/android/utils/watcher/MyWatcher.java | 44 +++++
app/src/main/res/layout/activity_login.xml | 66 +++++++-
17 files changed, 447 insertions(+), 168 deletions(-)
delete mode 100644 app/src/main/java/com/android/model/LoginListener.java
delete mode 100644 app/src/main/java/com/android/model/LoginModel.java
delete mode 100644 app/src/main/java/com/android/model/LoginModelImpl.java
create mode 100644 app/src/main/java/com/android/model/login/LoginListener.java
create mode 100644 app/src/main/java/com/android/model/login/LoginModel.java
create mode 100644 app/src/main/java/com/android/model/login/LoginModelImpl.java
create mode 100644 app/src/main/java/com/android/model/login/longinHttp_Interface.java
delete mode 100644 app/src/main/java/com/android/model/longinHttp_Interface.java
create mode 100644 app/src/main/java/com/android/utils/watcher/MyWatcher.java
diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index e2e256a..d5b2e23 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -12,6 +12,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index ff3888f..9e439db 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -10,7 +10,7 @@
-
+
diff --git a/app/build.gradle b/app/build.gradle
index b8c7d72..7f42071 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -51,4 +51,12 @@ dependencies {
implementation 'com.squareup.retrofit2:adapter-rxjava3:2.9.0'
// 支持Gson解析
implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
+
+ //lombok
+ compileOnly 'org.projectlombok:lombok:1.18.24'
+ annotationProcessor 'org.projectlombok:lombok:1.18.24'
+
+ //material3
+ implementation 'com.google.android.material:material:1.5.0'
+
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6d80f3a..bf6b623 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -7,6 +7,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
responseData) {
+ public void onLoginSuccess(ResponseData responseData) {
this.responseData = responseData;
login();
}
- private void login() {
- if(responseData.getCode() == 200){
- Intent intent = new Intent(LoginActivity.this,HomePageActivity.class);
- startActivity(intent);
- }else {
- Toast.makeText(LoginActivity.this,"账号或密码错误",Toast.LENGTH_SHORT);
- }
+ @Override
+ public void onGetCodeSuccess(ResponseData responseData) {
+ Log.e(TAG,"onGetCodeSuccess"+responseData.getCode());
+
+ }
+
+ @Override
+ public void onRejisterSuccess(ResponseData responseData) {
+ Log.e(TAG,"onRejisterSuccess"+responseData.getCode());
}
@@ -75,4 +101,13 @@ public class LoginActivity extends AppCompatActivity implements LoginListener, V
public void onError() {
}
+
+ private void login() {
+ if(responseData.getCode() == 200){
+ Intent intent = new Intent(LoginActivity.this,HomePageActivity.class);
+ startActivity(intent);
+ }else {
+ Log.e("login",responseData.getMsg());
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/android/bean/User.java b/app/src/main/java/com/android/bean/User.java
index cfc36f0..c84f7e7 100644
--- a/app/src/main/java/com/android/bean/User.java
+++ b/app/src/main/java/com/android/bean/User.java
@@ -1,10 +1,24 @@
package com.android.bean;
+import com.google.gson.annotations.SerializedName;
+
+import java.util.Objects;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
public class User {
+ @SerializedName("id")
private Integer id;
- private String password;
private String userName;
+ private String code;
+ private String phone;
+ private String avatar;
+ private String appKey;
+ private Integer money;
public Integer getId() {
return id;
@@ -14,14 +28,6 @@ public class User {
this.id = id;
}
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
public String getUserName() {
return userName;
}
@@ -29,4 +35,44 @@ public class User {
public void setUserName(String userName) {
this.userName = userName;
}
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getAvatar() {
+ return avatar;
+ }
+
+ public void setAvatar(String avatar) {
+ this.avatar = avatar;
+ }
+
+ public String getAppKey() {
+ return appKey;
+ }
+
+ public void setAppKey(String appKey) {
+ this.appKey = appKey;
+ }
+
+ public Integer getMoney() {
+ return money;
+ }
+
+ public void setMoney(Integer money) {
+ this.money = money;
+ }
}
diff --git a/app/src/main/java/com/android/model/LoginListener.java b/app/src/main/java/com/android/model/LoginListener.java
deleted file mode 100644
index 6812722..0000000
--- a/app/src/main/java/com/android/model/LoginListener.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.android.model;
-
-import com.android.bean.ResponseData;
-import com.android.bean.User;
-
-public interface LoginListener {
- void onSuccess(ResponseData responseData);
- void onError();
-
-}
diff --git a/app/src/main/java/com/android/model/LoginModel.java b/app/src/main/java/com/android/model/LoginModel.java
deleted file mode 100644
index df288d9..0000000
--- a/app/src/main/java/com/android/model/LoginModel.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.android.model;
-
-public interface LoginModel {
- void longin(String account,String password,LoginListener loginListener);
-}
diff --git a/app/src/main/java/com/android/model/LoginModelImpl.java b/app/src/main/java/com/android/model/LoginModelImpl.java
deleted file mode 100644
index 620ff03..0000000
--- a/app/src/main/java/com/android/model/LoginModelImpl.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.android.model;
-
-import android.util.Log;
-import android.view.View;
-
-import com.android.bean.ResponseData;
-import com.android.bean.User;
-
-import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
-import io.reactivex.rxjava3.annotations.NonNull;
-import io.reactivex.rxjava3.core.Observable;
-import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposable;
-import io.reactivex.rxjava3.schedulers.Schedulers;
-import retrofit2.Retrofit;
-import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory;
-import retrofit2.converter.gson.GsonConverterFactory;
-
-public class LoginModelImpl implements LoginModel{
- private final static String TAG = "LoginModelImpl";
- @Override
- public void longin(String account,String password,final LoginListener loginListener) {
- Retrofit retrofit = new Retrofit.Builder()
- .baseUrl("http://47.107.52.7:88/member/")
- .addConverterFactory(GsonConverterFactory.create())
- .addCallAdapterFactory(RxJava3CallAdapterFactory.create())
- .build();
-
- longinHttp_Interface request = retrofit.create(longinHttp_Interface.class);
-
- Observable> observable =
- request.getObservableTest(password, account);
-
-
- observable
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(new Observer>() {
- @Override
- public void onSubscribe(@NonNull Disposable d) {
-
- }
-
- @Override
- public void onNext(@NonNull ResponseData userResponseData) {
- loginListener.onSuccess(userResponseData);
- }
-
- @Override
- public void onError(@NonNull Throwable e) {
-
- }
-
- @Override
- public void onComplete() {
-
- }
- });
- }
-}
diff --git a/app/src/main/java/com/android/model/login/LoginListener.java b/app/src/main/java/com/android/model/login/LoginListener.java
new file mode 100644
index 0000000..1046b18
--- /dev/null
+++ b/app/src/main/java/com/android/model/login/LoginListener.java
@@ -0,0 +1,14 @@
+package com.android.model.login;
+
+import com.android.bean.ResponseData;
+import com.android.bean.User;
+
+public interface LoginListener {
+ void onLoginSuccess(ResponseData responseData);
+ void onGetCodeSuccess(ResponseData responseData);
+ void onRejisterSuccess(ResponseData responseData);
+ void onError();
+
+
+
+}
diff --git a/app/src/main/java/com/android/model/login/LoginModel.java b/app/src/main/java/com/android/model/login/LoginModel.java
new file mode 100644
index 0000000..bb8daf8
--- /dev/null
+++ b/app/src/main/java/com/android/model/login/LoginModel.java
@@ -0,0 +1,8 @@
+package com.android.model.login;
+
+public interface LoginModel {
+ void longin(String account,String password,LoginListener loginListener);
+ void sendVerifyCode(String phoneNumber,LoginListener loginListener);
+ void registerUser(String phoneNumber,String code,LoginListener loginListener);
+
+}
diff --git a/app/src/main/java/com/android/model/login/LoginModelImpl.java b/app/src/main/java/com/android/model/login/LoginModelImpl.java
new file mode 100644
index 0000000..18a65ce
--- /dev/null
+++ b/app/src/main/java/com/android/model/login/LoginModelImpl.java
@@ -0,0 +1,158 @@
+package com.android.model.login;
+
+import android.util.Log;
+
+import com.android.bean.ResponseData;
+import com.android.bean.User;
+
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
+import io.reactivex.rxjava3.annotations.NonNull;
+import io.reactivex.rxjava3.core.Observable;
+import io.reactivex.rxjava3.core.Observer;
+import io.reactivex.rxjava3.disposables.Disposable;
+import io.reactivex.rxjava3.schedulers.Schedulers;
+import retrofit2.Retrofit;
+import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory;
+import retrofit2.converter.gson.GsonConverterFactory;
+
+public class LoginModelImpl implements LoginModel{
+ private final static String TAG = "LoginModelImpl";
+
+ /**
+ * 用户登录功能
+ * @param account 手机号
+ * @param phoneCode 验证码
+ * @param loginListener 反回数据给活动
+ */
+ @Override
+ public void longin(String account,String phoneCode,final LoginListener loginListener) {
+ Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl("http://47.107.52.7:88/member/")
+ .addConverterFactory(GsonConverterFactory.create())
+ .addCallAdapterFactory(RxJava3CallAdapterFactory.create())
+ .build();
+
+ longinHttp_Interface request = retrofit.create(longinHttp_Interface.class);
+
+ User user = new User();
+ user.setCode(phoneCode);
+ user.setPhone(account);
+ Log.e("TAG",phoneCode);
+ Log.e("TAG",account);
+
+ Observable> observable = request.login(user);
+ observable
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(@NonNull Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(@NonNull ResponseData userResponseData) {
+ loginListener.onLoginSuccess(userResponseData);
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ Log.e("onError",e.toString());
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ /**
+ * 获取验证码
+ * @param phoneNumber 手机号
+ */
+ @Override
+ public void sendVerifyCode(String phoneNumber,final LoginListener loginListener) {
+ Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl("http://47.107.52.7:88/member/")
+ .addCallAdapterFactory(RxJava3CallAdapterFactory.create())
+ .addConverterFactory(GsonConverterFactory.create())
+ .build();
+ longinHttp_Interface httpInterface = retrofit.create(longinHttp_Interface.class);
+
+ Observable> observable = httpInterface.sendCode(phoneNumber);
+ observable
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(@NonNull Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(@NonNull ResponseData stringResponseData) {
+ loginListener.onGetCodeSuccess(stringResponseData);
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ Log.d(TAG,"error");
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+
+
+ }
+
+ /**
+ * 用户注册
+ * @param phoneNumber
+ * @param code
+ */
+ @Override
+ public void registerUser(String phoneNumber, String code,final LoginListener loginListener) {
+ Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl("http://47.107.52.7:88/member/")
+ .addCallAdapterFactory(RxJava3CallAdapterFactory.create())
+ .addConverterFactory(GsonConverterFactory.create())
+ .build();
+ longinHttp_Interface httpInterface = retrofit.create(longinHttp_Interface.class);
+
+ User user = new User();
+ user.setPhone(phoneNumber);
+ user.setCode(code);
+ Observable> observable = httpInterface.register(user);
+ observable
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(@NonNull Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(@NonNull ResponseData stringResponseData) {
+ loginListener.onRejisterSuccess(stringResponseData);
+ Log.e(TAG,"注册成功");
+
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+
+ }
+}
diff --git a/app/src/main/java/com/android/model/login/longinHttp_Interface.java b/app/src/main/java/com/android/model/login/longinHttp_Interface.java
new file mode 100644
index 0000000..24421d1
--- /dev/null
+++ b/app/src/main/java/com/android/model/login/longinHttp_Interface.java
@@ -0,0 +1,38 @@
+package com.android.model.login;
+
+
+import com.android.bean.ResponseData;
+import com.android.bean.User;
+
+import io.reactivex.rxjava3.core.Observable;
+import retrofit2.Call;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.Headers;
+import retrofit2.http.POST;
+import retrofit2.http.Query;
+
+/*
+"http://47.107.52.7:88/member/photo/user/login?password=123456&username=fangshicai"
+ */
+public interface longinHttp_Interface {
+ //登录
+ @POST("tran/user/login")
+ @Headers({"appId:b34ac21286ae45938add627b418a4871",
+ "appSecret:67526def9de11d4a64f5e80e60ed3372eea69"})
+ Observable> login(@Body User user);
+
+ //获取验证码
+ @GET("tran/user/send")
+ @Headers({"appId:b34ac21286ae45938add627b418a4871",
+ "appSecret:67526def9de11d4a64f5e80e60ed3372eea69"})
+ Observable> sendCode(@Query("phone") String phone);
+
+ @POST("tran/user/register")
+ @Headers({"appId:b34ac21286ae45938add627b418a4871",
+ "appSecret:67526def9de11d4a64f5e80e60ed3372eea69"})
+ Observable> register(@Body User user);
+
+
+
+}
diff --git a/app/src/main/java/com/android/model/longinHttp_Interface.java b/app/src/main/java/com/android/model/longinHttp_Interface.java
deleted file mode 100644
index 7bc1d02..0000000
--- a/app/src/main/java/com/android/model/longinHttp_Interface.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.android.model;
-
-
-import com.android.bean.ResponseData;
-import com.android.bean.User;
-
-import io.reactivex.rxjava3.core.Observable;
-import retrofit2.Call;
-import retrofit2.http.Body;
-import retrofit2.http.GET;
-import retrofit2.http.Headers;
-import retrofit2.http.POST;
-import retrofit2.http.Query;
-
-/*
-"http://47.107.52.7:88/member/photo/user/login?password=123456&username=fangshicai"
- */
-public interface longinHttp_Interface {
- @GET("demo/login")
-// @FormUrlEncoded
- @Headers({"appId:46351c5d3fdd44a084167c7186772a2e","appSecret:21671c3772dd71d3340f3ae77355421aa335f"})
- Call> service(@Query("password") String password
- , @Query("username") String username
- );
-
- @POST("demo/create")
-// @FormUrlEncoded
- @Headers({"appId:46351c5d3fdd44a084167c7186772a2e","appSecret:21671c3772dd71d3340f3ae77355421aa335f"})
- Call> rejest(@Body User user);
-
-
- @GET("demo/login")
- @Headers({"appId:46351c5d3fdd44a084167c7186772a2e","appSecret:21671c3772dd71d3340f3ae77355421aa335f"})
- Observable> getObservableTest(@Query("password") String password
- , @Query("username") String username
- );
-
-
-}
diff --git a/app/src/main/java/com/android/utils/watcher/MyWatcher.java b/app/src/main/java/com/android/utils/watcher/MyWatcher.java
new file mode 100644
index 0000000..bd4effa
--- /dev/null
+++ b/app/src/main/java/com/android/utils/watcher/MyWatcher.java
@@ -0,0 +1,44 @@
+package com.android.utils.watcher;
+
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.widget.Button;
+
+import com.android.activity.LoginActivity;
+
+public class MyWatcher implements TextWatcher {
+
+ private Button getVerificationCode,registerButton;
+ private LoginActivity loginActivity;
+
+ public MyWatcher() {
+
+ }
+
+ public MyWatcher(Button getVerificationCode, Button registerButton, LoginActivity loginActivity) {
+ this.getVerificationCode = getVerificationCode;
+ this.registerButton = registerButton;
+ this.loginActivity = loginActivity;
+ }
+
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ //当号码大于11位时显示按钮
+ if(s.length()>=11){
+ getVerificationCode.setEnabled(true);
+ //注册按钮
+ registerButton.setOnClickListener(loginActivity);
+ }
+
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+
+ }
+}
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index f6907e5..9971116 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -5,30 +5,78 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.LoginActivity">
+
+
-
+
-