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"> + + - + -