Commit 4a3165d6 by Wyh

3-12 自動登陸判斷移到啟動頁

parent 7d64d603
...@@ -9,6 +9,13 @@ import android.view.KeyEvent; ...@@ -9,6 +9,13 @@ import android.view.KeyEvent;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
...@@ -36,12 +43,6 @@ import com.tbruyelle.rxpermissions2.RxPermissions; ...@@ -36,12 +43,6 @@ import com.tbruyelle.rxpermissions2.RxPermissions;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView; import butterknife.BindView;
import butterknife.BindViews; import butterknife.BindViews;
import butterknife.OnClick; import butterknife.OnClick;
......
...@@ -16,6 +16,12 @@ import android.view.animation.DecelerateInterpolator; ...@@ -16,6 +16,12 @@ import android.view.animation.DecelerateInterpolator;
import android.view.animation.TranslateAnimation; import android.view.animation.TranslateAnimation;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.R; import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.ui.adapter.BasTextSectiontAdapter; import com.gingersoft.gsa.cloud.ui.adapter.BasTextSectiontAdapter;
import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean; import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean;
...@@ -34,11 +40,6 @@ import java.util.ArrayList; ...@@ -34,11 +40,6 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
/** /**
* 作者:ELEGANT_BIN * 作者:ELEGANT_BIN
* 版本:1.6.0 * 版本:1.6.0
...@@ -236,12 +237,15 @@ public class ChooseRestaurantDialog extends Dialog { ...@@ -236,12 +237,15 @@ public class ChooseRestaurantDialog extends Dialog {
} }
public ChooseRestaurantDialog build() { public ChooseRestaurantDialog build() {
if(mDialog != null){ if (mDialog != null) {
return mDialog; return mDialog;
} }
mDialog = new ChooseRestaurantDialog(mContext); mDialog = new ChooseRestaurantDialog(mContext);
View contentView = buildViews(); View contentView = buildViews();
mDialog.setContentView(contentView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, QMUIDisplayHelper.getScreenHeight(mContext))); mDialog.setContentView(contentView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, QMUIDisplayHelper.getScreenHeight(mContext)));
if(mDismissListener != null){
mDialog.setOnDismissListener(mDismissListener);
}
AndroidWorkaround.assistActivity(contentView); AndroidWorkaround.assistActivity(contentView);
return mDialog; return mDialog;
} }
...@@ -345,12 +349,18 @@ public class ChooseRestaurantDialog extends Dialog { ...@@ -345,12 +349,18 @@ public class ChooseRestaurantDialog extends Dialog {
} }
private OnItemClickListener mOnItemClickListener; private OnItemClickListener mOnItemClickListener;
private OnDismissListener mDismissListener;
public BottomListSheetBuilder setOnItemClickListener(OnItemClickListener onItemClickListener) { public BottomListSheetBuilder setOnItemClickListener(OnItemClickListener onItemClickListener) {
mOnItemClickListener = onItemClickListener; mOnItemClickListener = onItemClickListener;
return this; return this;
} }
public BottomListSheetBuilder setOnDismissListener(OnDismissListener mDismissListener) {
this.mDismissListener = mDismissListener;
return this;
}
public interface OnItemClickListener { public interface OnItemClickListener {
void onItemClick(ChooseRestaurantDialog dialog, SectionTextItem item, int position); void onItemClick(ChooseRestaurantDialog dialog, SectionTextItem item, int position);
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<application <application
android:name="com.gingersoft.gsa.cloud.base.application.GsaCloudApplication" android:name="com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"
android:allowBackup="true" android:allowBackup="true"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_logo"
android:label="@string/user_login_name" android:label="@string/user_login_name"
android:networkSecurityConfig="@xml/network_android" android:networkSecurityConfig="@xml/network_android"
android:roundIcon="@mipmap/ic_logo" android:roundIcon="@mipmap/ic_logo"
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<application <application
android:name="com.gingersoft.gsa.cloud.base.application.GsaCloudApplication" android:name="com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"
android:allowBackup="true" android:allowBackup="true"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_logo"
android:label="@string/user_login_name" android:label="@string/user_login_name"
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" android:supportsRtl="true"
......
package com.gingersoft.gsa.cloud.user.login.mvp.contract;
import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean;
import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView;
import java.util.List;
import io.reactivex.Observable;
import okhttp3.RequestBody;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/21/2019 16:23
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public interface BaseLoginContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
void loginSuccess(LoginBean info);
void startToSwitchServer();
void showChooseRestaurantDialog(List<LoginBean.DataBean.UserBean.BrandsBean> brandsBean,List<LoginBean.DataBean.UserBean.BrandsBean> brands);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
Observable<LoginBean> login(RequestBody requestBody);
}
}
package com.gingersoft.gsa.cloud.user.login.mvp.contract; package com.gingersoft.gsa.cloud.user.login.mvp.contract;
import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean;
import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView;
import com.tbruyelle.rxpermissions2.RxPermissions;
import io.reactivex.Observable;
import okhttp3.RequestBody;
/** /**
* ================================================ * ================================================
* Description: * Description:
...@@ -21,21 +12,19 @@ import okhttp3.RequestBody; ...@@ -21,21 +12,19 @@ import okhttp3.RequestBody;
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a> * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================ * ================================================
*/ */
public interface LoginContract { public interface LoginContract extends BaseLoginContract{
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息 //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView { interface View extends BaseLoginContract.View {
void loginSuccess(LoginBean info); // void loginSuccess(LoginBean info);
//
void loginOut(); // void startToSwitchServer();
void startToSwitchServer();
} }
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel { interface Model extends BaseLoginContract.Model {
Observable<LoginBean> login(RequestBody requestBody); // Observable<LoginBean> login(RequestBody requestBody);
//
Observable<Object> loginOut( RequestBody requestBody); // Observable<Object> loginOut( RequestBody requestBody);
} }
} }
package com.gingersoft.gsa.cloud.user.login.mvp.contract;
import android.content.Intent;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem;
import com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog;
import com.gingersoft.gsa.cloud.user.login.mvp.presenter.BaseLoginPresenter;
import com.gingersoft.gsa.cloud.user.login.mvp.ui.activity.SwitchServerActivity;
import com.jess.arms.base.BaseActivity;
import java.util.ArrayList;
import java.util.List;
public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends BaseActivity<P> implements BaseLoginContract.View {
@Override
public void loginSuccess(LoginBean info) {
saveLoginInfo(info);
}
@Override
public void startToSwitchServer() {
startActivity(new Intent(mContext, SwitchServerActivity.class));
}
private void saveLoginInfo(LoginBean loginBean) {
GsaCloudApplication.setBrandRestaurantInfos(mContext, "");
if (loginBean.getData() != null) {
GsaCloudApplication.setLoginToken(mContext, loginBean.getData().getToken());
if (loginBean.getData().getUser() != null) {
GsaCloudApplication.setMemberId(mContext, loginBean.getData().getUser().getUserId());
GsaCloudApplication.setMemberName(mContext, loginBean.getData().getUser().getUserName());
List<LoginBean.DataBean.UserBean.BrandsBean> brands = loginBean.getData().getUser().getBrands();
if (brands != null) {
String brandRestaurantInfos = JsonUtils.toJson(brands);
GsaCloudApplication.setBrandRestaurantInfos(mContext, brandRestaurantInfos);
}
int restaurantSize = 0;
List<LoginBean.DataBean.UserBean.BrandsBean> brandsBeans = new ArrayList<>();
if (loginBean.getData().getUser().getBrands() != null) {
restaurantSize = getRestaurantSize(loginBean.getData().getUser().getBrands());
brandsBeans.addAll(loginBean.getData().getUser().getBrands());
}
if (restaurantSize == 1) {
//只有一個品牌是直接進下載頁面
LoginBean.DataBean.UserBean.BrandsBean brandsBean = getOnlyBrand(loginBean.getData().getUser().getBrands());
LoginBean.DataBean.UserBean.BrandsBean.RestaurantsBean restaurantsBean = getOnlyRestaurant(loginBean.getData().getUser().getBrands());
if (brandsBean != null) {
saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), restaurantsBean.getRestaurantId(), restaurantsBean.getRestaurantName());
}
jumpDownloadActivity();
} else {
showChooseRestaurantDialog(brandsBeans,brands);
}
}
}
}
protected void ChooseRestaurantItemClick(List<LoginBean.DataBean.UserBean.BrandsBean> brands, ChooseRestaurantDialog dialog, SectionTextItem item) {
LoginBean.DataBean.UserBean.BrandsBean brandsBean = getBrandByRestaurantId(brands, item.getId());
if (brandsBean != null) {
saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), item.getId(), item.getText());
}
dialog.dismiss();
jumpDownloadActivity();
}
protected void saveBrandAndRestaurantInfo(int brandId, String brandName, int restaurantId, String restaurantName) {
GsaCloudApplication.setBrandId(mContext, brandId);
GsaCloudApplication.setBrandName(mContext, brandName);
GsaCloudApplication.setRestaurantId(mContext, restaurantId);
GsaCloudApplication.setRestaurantName(mContext, restaurantName);
}
private int getRestaurantSize(List<LoginBean.DataBean.UserBean.BrandsBean> brands) {
int size = 0;
for (int i = 0; i < brands.size(); i++) {
if (brands.get(i).getRestaurants() != null)
size += brands.get(i).getRestaurants().size();
}
return size;
}
private LoginBean.DataBean.UserBean.BrandsBean getOnlyBrand(List<LoginBean.DataBean.UserBean.BrandsBean> brands) {
for (int i = 0; i < brands.size(); i++) {
if (brands.get(i).getRestaurants() != null) {
for (int j = 0; j < brands.get(i).getRestaurants().size(); j++) {
return brands.get(i);
}
}
}
return null;
}
private LoginBean.DataBean.UserBean.BrandsBean.RestaurantsBean getOnlyRestaurant(List<LoginBean.DataBean.UserBean.BrandsBean> brands) {
for (int i = 0; i < brands.size(); i++) {
if (brands.get(i).getRestaurants() != null) {
for (int j = 0; j < brands.get(i).getRestaurants().size(); j++) {
return brands.get(i).getRestaurants().get(j);
}
}
}
return null;
}
private LoginBean.DataBean.UserBean.BrandsBean getBrandByRestaurantId(List<LoginBean.DataBean.UserBean.BrandsBean> brands, int restaurantId) {
for (int i = 0; i < brands.size(); i++) {
if (brands.get(i).getRestaurants() != null) {
for (int j = 0; j < brands.get(i).getRestaurants().size(); j++) {
if (brands.get(i).getRestaurants().get(j).getRestaurantId() == restaurantId) {
return brands.get(i);
}
}
}
}
return null;
}
private void jumpDownloadActivity() {
CC.obtainBuilder("Component.Download")
.setActionName("showDownloadActivity")
.build()
.call();
killMyself();
}
}
package com.gingersoft.gsa.cloud.user.login.mvp.contract; package com.gingersoft.gsa.cloud.user.login.mvp.contract;
import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel;
public interface WelcomeContract { public interface WelcomeContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息 //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView { interface View extends BaseLoginContract.View {
} }
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel { interface Model extends BaseLoginContract.Model {
} }
} }
...@@ -2,20 +2,17 @@ package com.gingersoft.gsa.cloud.user.login.mvp.model; ...@@ -2,20 +2,17 @@ package com.gingersoft.gsa.cloud.user.login.mvp.model;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.base.utils.constans.HttpsConstans;
import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean; import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean;
import com.gingersoft.gsa.cloud.user.login.mvp.contract.LoginContract;
import com.gingersoft.gsa.cloud.user.login.mvp.server.LoginService; import com.gingersoft.gsa.cloud.user.login.mvp.server.LoginService;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager; import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel; import com.jess.arms.mvp.BaseModel;
import com.jess.arms.di.scope.ActivityScope;
import javax.inject.Inject; import javax.inject.Inject;
import com.gingersoft.gsa.cloud.user.login.mvp.contract.LoginContract;
import io.reactivex.Observable; import io.reactivex.Observable;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody; import okhttp3.RequestBody;
...@@ -56,11 +53,4 @@ public class LoginModel extends BaseModel implements LoginContract.Model{ ...@@ -56,11 +53,4 @@ public class LoginModel extends BaseModel implements LoginContract.Model{
return mRepositoryManager.obtainRetrofitService(LoginService.class) return mRepositoryManager.obtainRetrofitService(LoginService.class)
.login(requestBody); .login(requestBody);
} }
@Override
public Observable<Object> loginOut(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(LoginService.class)
.loginOut(requestBody);
}
} }
\ No newline at end of file
...@@ -2,15 +2,18 @@ package com.gingersoft.gsa.cloud.user.login.mvp.model; ...@@ -2,15 +2,18 @@ package com.gingersoft.gsa.cloud.user.login.mvp.model;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean;
import com.gingersoft.gsa.cloud.user.login.mvp.contract.WelcomeContract;
import com.gingersoft.gsa.cloud.user.login.mvp.server.LoginService;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager; import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel; import com.jess.arms.mvp.BaseModel;
import com.jess.arms.di.scope.ActivityScope;
import javax.inject.Inject; import javax.inject.Inject;
import com.gingersoft.gsa.cloud.user.login.mvp.contract.WelcomeContract; import io.reactivex.Observable;
import okhttp3.RequestBody;
@ActivityScope @ActivityScope
...@@ -31,4 +34,10 @@ public class WelcomeModel extends BaseModel implements WelcomeContract.Model { ...@@ -31,4 +34,10 @@ public class WelcomeModel extends BaseModel implements WelcomeContract.Model {
this.mGson = null; this.mGson = null;
this.mApplication = null; this.mApplication = null;
} }
@Override
public Observable<LoginBean> login(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(LoginService.class)
.login(requestBody);
}
} }
\ No newline at end of file
package com.gingersoft.gsa.cloud.user.login.mvp.presenter;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean;
import com.gingersoft.gsa.cloud.user.login.mvp.contract.BaseLoginContract;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.RxLifecycleUtils;
import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody;
import okhttp3.RequestBody;
@ActivityScope
public class BaseLoginPresenter<M extends BaseLoginContract.Model, V extends BaseLoginContract.View> extends BasePresenter<BaseLoginContract.Model, BaseLoginContract.View> {
@Inject
RxErrorHandler mErrorHandler;
@Inject
Application mApplication;
@Inject
ImageLoader mImageLoader;
@Inject
AppManager mAppManager;
@Inject
public BaseLoginPresenter(BaseLoginContract.Model model, BaseLoginContract.View rootView) {
super(model, rootView);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mErrorHandler = null;
this.mAppManager = null;
this.mImageLoader = null;
this.mApplication = null;
}
public void login(String account, String pwd) {
if (account.equals("88888888") && pwd.equals("cc81081168")) {
mRootView.startToSwitchServer();
return;
}
RequestBody requestBody;
requestBody = new FormBody.Builder()
.add("userName", account.trim() + "")
.add("passWord", pwd.trim() + "")
.build();
mModel.login(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("登錄中..."))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<LoginBean>(mErrorHandler) {
@Override
public void onNext(@NonNull LoginBean info) {
if (info.isSuccess()) {
GsaCloudApplication.isLogin = true;
GsaCloudApplication.userName = info.getData().getUser().getUserName();
mRootView.showMessage("登陸成功");
mRootView.loginSuccess(info);
} else {
GsaCloudApplication.isLogin = false;
mRootView.showMessage(info.getErrMsg());
}
}
});
}
}
...@@ -2,30 +2,14 @@ package com.gingersoft.gsa.cloud.user.login.mvp.presenter; ...@@ -2,30 +2,14 @@ package com.gingersoft.gsa.cloud.user.login.mvp.presenter;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean;
import com.gingersoft.gsa.cloud.user.login.R;
import com.gingersoft.gsa.cloud.user.login.mvp.contract.LoginContract; import com.gingersoft.gsa.cloud.user.login.mvp.contract.LoginContract;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader; import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.PermissionUtil;
import com.jess.arms.utils.RxLifecycleUtils;
import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler; import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody;
import okhttp3.RequestBody;
/** /**
...@@ -41,7 +25,7 @@ import okhttp3.RequestBody; ...@@ -41,7 +25,7 @@ import okhttp3.RequestBody;
* ================================================ * ================================================
*/ */
@ActivityScope @ActivityScope
public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginContract.View> { public class LoginPresenter extends BaseLoginPresenter<LoginContract.Model, LoginContract.View> {
@Inject @Inject
RxErrorHandler mErrorHandler; RxErrorHandler mErrorHandler;
@Inject @Inject
...@@ -51,7 +35,6 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont ...@@ -51,7 +35,6 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont
@Inject @Inject
AppManager mAppManager; AppManager mAppManager;
@Inject @Inject
public LoginPresenter(LoginContract.Model model, LoginContract.View rootView) { public LoginPresenter(LoginContract.Model model, LoginContract.View rootView) {
super(model, rootView); super(model, rootView);
...@@ -66,76 +49,37 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont ...@@ -66,76 +49,37 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont
this.mApplication = null; this.mApplication = null;
} }
// public void login(String account, String pwd) {
public void login(String account, String pwd) { // if (account.equals("88888888") && pwd.equals("cc81081168")) {
if(account.equals("88888888") && pwd.equals("cc81081168")){ // mRootView.startToSwitchServer();
mRootView.startToSwitchServer(); // return;
return; // }
} // RequestBody requestBody;
RequestBody requestBody;
if (account.equals("")) {
requestBody = new FormBody.Builder()
.add("userName", "1")
.add("passWord", "123456")
.build();
// requestBody = new FormBody.Builder() // requestBody = new FormBody.Builder()
// .add("userName", "19901001") // .add("userName", account.trim() + "")
// .add("passWord", "123456") // .add("passWord", pwd.trim() + "")
// .build(); // .build();
} else { // mModel.login(requestBody)
requestBody = new FormBody.Builder() // .subscribeOn(Schedulers.io())
.add("userName", account.trim() + "") // .doOnSubscribe(disposable -> mRootView.showLoading("登錄中..."))
.add("passWord", pwd.trim() + "") // .subscribeOn(AndroidSchedulers.mainThread())
.build(); // .observeOn(AndroidSchedulers.mainThread())
} // .doAfterTerminate(() -> mRootView.hideLoading())
// .compose(RxLifecycleUtils.bindToLifecycle(mRootView))
mModel.login(requestBody) // .subscribe(new ErrorHandleSubscriber<LoginBean>(mErrorHandler) {
.subscribeOn(Schedulers.io()) //
.doOnSubscribe(disposable -> mRootView.showLoading("登錄中...")) // @Override
.subscribeOn(AndroidSchedulers.mainThread()) // public void onNext(@NonNull LoginBean info) {
.observeOn(AndroidSchedulers.mainThread()) // if (info.isSuccess()) {
.doAfterTerminate(() -> mRootView.hideLoading()) // GsaCloudApplication.isLogin = true;
.compose(RxLifecycleUtils.bindToLifecycle(mRootView)) // GsaCloudApplication.userName = info.getData().getUser().getUserName();
.subscribe(new ErrorHandleSubscriber<LoginBean>(mErrorHandler) { // mRootView.showMessage("登陸成功");
// mRootView.loginSuccess(info);
@Override // } else {
public void onNext(@NonNull LoginBean info) { // GsaCloudApplication.isLogin = false;
if (info != null && info.isSuccess()) { // mRootView.showMessage(info.getErrMsg());
GsaCloudApplication.isLogin = true; // }
GsaCloudApplication.userName = info.getData().getUser().getUserName(); // }
mRootView.showMessage("登陸成功"); // });
mRootView.loginSuccess(info); // }
} else {
GsaCloudApplication.isLogin = false;
mRootView.showMessage(info.getErrMsg());
}
}
});
}
public void loginOut() {
RequestBody requestBody = new FormBody.Builder()
.add("userName", "")
.add("passWord", "")
.build();
mModel.loginOut(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<Object>(mErrorHandler) {
@Override
public void onNext(@NonNull Object info) {
GsaCloudApplication.isLogin = false;
mRootView.loginOut();
}
});
}
} }
...@@ -6,7 +6,6 @@ import com.gingersoft.gsa.cloud.user.login.mvp.contract.WelcomeContract; ...@@ -6,7 +6,6 @@ import com.gingersoft.gsa.cloud.user.login.mvp.contract.WelcomeContract;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader; import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -14,7 +13,7 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler; ...@@ -14,7 +13,7 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler;
@ActivityScope @ActivityScope
public class WelcomePresenter extends BasePresenter<WelcomeContract.Model, WelcomeContract.View> { public class WelcomePresenter extends BaseLoginPresenter<WelcomeContract.Model, WelcomeContract.View> {
@Inject @Inject
RxErrorHandler mErrorHandler; RxErrorHandler mErrorHandler;
@Inject @Inject
......
...@@ -9,23 +9,31 @@ import androidx.annotation.NonNull; ...@@ -9,23 +9,31 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout;
import com.gingersoft.gsa.cloud.base.utils.constans.UserConstans;
import com.gingersoft.gsa.cloud.base.utils.encryption.Aes;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean;
import com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog;
import com.gingersoft.gsa.cloud.user.login.R; import com.gingersoft.gsa.cloud.user.login.R;
import com.gingersoft.gsa.cloud.user.login.di.component.DaggerWelcomeComponent; import com.gingersoft.gsa.cloud.user.login.di.component.DaggerWelcomeComponent;
import com.gingersoft.gsa.cloud.user.login.di.module.WelcomeModule; import com.gingersoft.gsa.cloud.user.login.di.module.WelcomeModule;
import com.gingersoft.gsa.cloud.user.login.mvp.contract.LoginInterfaceImpl;
import com.gingersoft.gsa.cloud.user.login.mvp.contract.WelcomeContract; import com.gingersoft.gsa.cloud.user.login.mvp.contract.WelcomeContract;
import com.gingersoft.gsa.cloud.user.login.mvp.presenter.WelcomePresenter; import com.gingersoft.gsa.cloud.user.login.mvp.presenter.WelcomePresenter;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import static com.jess.arms.utils.Preconditions.checkNotNull; import static com.jess.arms.utils.Preconditions.checkNotNull;
public class WelcomeActivity extends BaseActivity<WelcomePresenter> implements WelcomeContract.View { public class WelcomeActivity extends LoginInterfaceImpl<WelcomePresenter> implements WelcomeContract.View {
@BindView(R.id.content_view) @BindView(R.id.content_view)
ConstraintLayout contentView; ConstraintLayout contentView;
@Override @Override
public void setupActivityComponent(@NonNull AppComponent appComponent) { public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerWelcomeComponent //如找不到该类,请编译一下项目 DaggerWelcomeComponent //如找不到该类,请编译一下项目
...@@ -55,7 +63,12 @@ public class WelcomeActivity extends BaseActivity<WelcomePresenter> implements W ...@@ -55,7 +63,12 @@ public class WelcomeActivity extends BaseActivity<WelcomePresenter> implements W
@Override @Override
public void onAnimationEnd(Animation animation) { public void onAnimationEnd(Animation animation) {
startActivity(new Intent(mContext, LoginActivity.class)); // startActivity(new Intent(mContext, LoginActivity.class));
if ((boolean) SPUtils.get(mContext, UserConstans.AUTO_LOGIN, false)) {
//自動登陸
String pwd = Aes.aesDecrypt((String) SPUtils.get(mContext, UserConstans.LOGIN_PASSWORD, ""));
mPresenter.login(SPUtils.get(mContext, UserConstans.LOGIN_USERNAME, "") + "", pwd);
}
} }
@Override @Override
...@@ -117,4 +130,31 @@ public class WelcomeActivity extends BaseActivity<WelcomePresenter> implements W ...@@ -117,4 +130,31 @@ public class WelcomeActivity extends BaseActivity<WelcomePresenter> implements W
public void killMyself() { public void killMyself() {
finish(); finish();
} }
@Override
public void loginSuccess(LoginBean info) {
super.loginSuccess(info);
}
private boolean isChooseRestaurant = false;
@Override
public void showChooseRestaurantDialog(List<LoginBean.DataBean.UserBean.BrandsBean> brandsBeans, List<LoginBean.DataBean.UserBean.BrandsBean> brands) {
new ChooseRestaurantDialog.BottomListSheetBuilder(mContext)
.addBrandItems(brandsBeans)
.setOnItemClickListener((dialog, item, position) -> {
isChooseRestaurant = true;
ChooseRestaurantItemClick(brands, dialog, item);
})
.setOnDismissListener(dialog -> {
if (!isChooseRestaurant) {
//沒有選擇餐廳,就回到登陸頁面
startActivity(new Intent(mContext, LoginActivity.class));
}
killMyself();
})
.build()
.show();
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment