Commit 4a3165d6 by Wyh

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

parent 7d64d603
......@@ -9,6 +9,13 @@ import android.view.KeyEvent;
import android.view.View;
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.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
......@@ -36,12 +43,6 @@ import com.tbruyelle.rxpermissions2.RxPermissions;
import java.util.ArrayList;
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.BindViews;
import butterknife.OnClick;
......
......@@ -16,6 +16,12 @@ import android.view.animation.DecelerateInterpolator;
import android.view.animation.TranslateAnimation;
import android.widget.FrameLayout;
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.ui.adapter.BasTextSectiontAdapter;
import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean;
......@@ -34,11 +40,6 @@ import java.util.ArrayList;
import java.util.List;
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
* 版本:1.6.0
......@@ -236,12 +237,15 @@ public class ChooseRestaurantDialog extends Dialog {
}
public ChooseRestaurantDialog build() {
if(mDialog != null){
if (mDialog != null) {
return mDialog;
}
mDialog = new ChooseRestaurantDialog(mContext);
View contentView = buildViews();
mDialog.setContentView(contentView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, QMUIDisplayHelper.getScreenHeight(mContext)));
if(mDismissListener != null){
mDialog.setOnDismissListener(mDismissListener);
}
AndroidWorkaround.assistActivity(contentView);
return mDialog;
}
......@@ -345,12 +349,18 @@ public class ChooseRestaurantDialog extends Dialog {
}
private OnItemClickListener mOnItemClickListener;
private OnDismissListener mDismissListener;
public BottomListSheetBuilder setOnItemClickListener(OnItemClickListener onItemClickListener) {
mOnItemClickListener = onItemClickListener;
return this;
}
public BottomListSheetBuilder setOnDismissListener(OnDismissListener mDismissListener) {
this.mDismissListener = mDismissListener;
return this;
}
public interface OnItemClickListener {
void onItemClick(ChooseRestaurantDialog dialog, SectionTextItem item, int position);
......
......@@ -15,7 +15,7 @@
<application
android:name="com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:icon="@mipmap/ic_logo"
android:label="@string/user_login_name"
android:networkSecurityConfig="@xml/network_android"
android:roundIcon="@mipmap/ic_logo"
......
......@@ -14,7 +14,7 @@
<application
android:name="com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:icon="@mipmap/ic_logo"
android:label="@string/user_login_name"
android:roundIcon="@mipmap/ic_launcher_round"
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;
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:
......@@ -21,21 +12,19 @@ import okhttp3.RequestBody;
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public interface LoginContract {
public interface LoginContract extends BaseLoginContract{
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
void loginSuccess(LoginBean info);
void loginOut();
void startToSwitchServer();
interface View extends BaseLoginContract.View {
// void loginSuccess(LoginBean info);
//
// void startToSwitchServer();
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
Observable<LoginBean> login(RequestBody requestBody);
Observable<Object> loginOut( RequestBody requestBody);
interface Model extends BaseLoginContract.Model {
// Observable<LoginBean> login(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;
import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel;
public interface WelcomeContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
interface View extends BaseLoginContract.View {
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
interface Model extends BaseLoginContract.Model {
}
}
......@@ -2,20 +2,17 @@ package com.gingersoft.gsa.cloud.user.login.mvp.model;
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.user.login.mvp.contract.LoginContract;
import com.gingersoft.gsa.cloud.user.login.mvp.server.LoginService;
import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;
import com.jess.arms.di.scope.ActivityScope;
import javax.inject.Inject;
import com.gingersoft.gsa.cloud.user.login.mvp.contract.LoginContract;
import io.reactivex.Observable;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
......@@ -56,11 +53,4 @@ public class LoginModel extends BaseModel implements LoginContract.Model{
return mRepositoryManager.obtainRetrofitService(LoginService.class)
.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;
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.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;
import com.jess.arms.di.scope.ActivityScope;
import javax.inject.Inject;
import com.gingersoft.gsa.cloud.user.login.mvp.contract.WelcomeContract;
import io.reactivex.Observable;
import okhttp3.RequestBody;
@ActivityScope
......@@ -31,4 +34,10 @@ public class WelcomeModel extends BaseModel implements WelcomeContract.Model {
this.mGson = 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;
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.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.ArmsUtils;
import com.jess.arms.utils.PermissionUtil;
import com.jess.arms.utils.RxLifecycleUtils;
import java.util.List;
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;
/**
......@@ -41,7 +25,7 @@ import okhttp3.RequestBody;
* ================================================
*/
@ActivityScope
public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginContract.View> {
public class LoginPresenter extends BaseLoginPresenter<LoginContract.Model, LoginContract.View> {
@Inject
RxErrorHandler mErrorHandler;
@Inject
......@@ -51,7 +35,6 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont
@Inject
AppManager mAppManager;
@Inject
public LoginPresenter(LoginContract.Model model, LoginContract.View rootView) {
super(model, rootView);
......@@ -66,76 +49,37 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont
this.mApplication = null;
}
public void login(String account, String pwd) {
if(account.equals("88888888") && pwd.equals("cc81081168")){
mRootView.startToSwitchServer();
return;
}
RequestBody requestBody;
if (account.equals("")) {
requestBody = new FormBody.Builder()
.add("userName", "1")
.add("passWord", "123456")
.build();
// requestBody = new FormBody.Builder()
// .add("userName", "19901001")
// .add("passWord", "123456")
// .build();
} else {
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 != null && info.isSuccess()) {
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();
}
});
}
// 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());
// }
// }
// });
// }
}
......@@ -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.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter;
import javax.inject.Inject;
......@@ -14,7 +13,7 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler;
@ActivityScope
public class WelcomePresenter extends BasePresenter<WelcomeContract.Model, WelcomeContract.View> {
public class WelcomePresenter extends BaseLoginPresenter<WelcomeContract.Model, WelcomeContract.View> {
@Inject
RxErrorHandler mErrorHandler;
@Inject
......
......@@ -9,23 +9,31 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
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.di.component.DaggerWelcomeComponent;
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.presenter.WelcomePresenter;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import java.util.List;
import butterknife.BindView;
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)
ConstraintLayout contentView;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerWelcomeComponent //如找不到该类,请编译一下项目
......@@ -55,7 +63,12 @@ public class WelcomeActivity extends BaseActivity<WelcomePresenter> implements W
@Override
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
......@@ -117,4 +130,31 @@ public class WelcomeActivity extends BaseActivity<WelcomePresenter> implements W
public void killMyself() {
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