提交 bbbb3fe6 authored 作者: lgd's avatar lgd

1.用户登录业务逻辑,首页bottom

2.//TODO erp用户激活,忘记密码测试,bat,mes,消息,我的,刷新token
上级 73293dee
...@@ -62,7 +62,7 @@ dependencies { ...@@ -62,7 +62,7 @@ dependencies {
//ok网络框架拦截器 //ok网络框架拦截器
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0' implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0'
implementation 'com.github.valdio:SerializableCookieJar:1.0.0' implementation 'com.github.franmontiel:PersistentCookieJar:v1.0.1'
//retrofit依赖 //retrofit依赖
implementation 'com.squareup.retrofit2:retrofit:2.5.0' implementation 'com.squareup.retrofit2:retrofit:2.5.0'
//rxjava依赖 //rxjava依赖
...@@ -93,7 +93,7 @@ dependencies { ...@@ -93,7 +93,7 @@ dependencies {
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-18' implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-18'
implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0-alpha-18' implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0-alpha-18'
//base //base
implementation 'flexible.xd:android-base:1.1.4' implementation 'flexible.xd:android-base:1.1.6'
implementation 'com.yanzhenjie.nohttp:nohttp:1.1.11' implementation 'com.yanzhenjie.nohttp:nohttp:1.1.11'
implementation 'com.jakewharton:butterknife:10.2.1' implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1' annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
...@@ -101,4 +101,5 @@ dependencies { ...@@ -101,4 +101,5 @@ dependencies {
implementation 'com.tencent.bugly:crashreport:2.8.6' implementation 'com.tencent.bugly:crashreport:2.8.6'
implementation 'com.alibaba:fastjson:1.2.54' implementation 'com.alibaba:fastjson:1.2.54'
implementation 'com.github.tbruyelle:rxpermissions:0.10.2' implementation 'com.github.tbruyelle:rxpermissions:0.10.2'
implementation 'com.ashokvarma.android:bottom-navigation-bar:2.2.0'
} }
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
android:theme="@style/FlexibleTheme.Base" android:theme="@style/FlexibleTheme.Base"
android:usesCleartextTraffic="true"> android:usesCleartextTraffic="true">
<activity <activity
android:name=".ui.login.LoginActivity" android:name=".ui.activity.MainActivity"
android:configChanges="keyboardHidden|orientation" android:configChanges="keyboardHidden|orientation"
android:launchMode="singleTask" android:launchMode="singleTask"
android:theme="@style/Work.Base" android:theme="@style/Work.Base"
...@@ -23,7 +23,15 @@ ...@@ -23,7 +23,15 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity <activity
android:name=".ui.login.ErpActivationTwoActivity" android:name=".ui.activity.login.LoginActivity"
android:configChanges="keyboardHidden|orientation"
android:label=" "
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.activity.login.ErpActivationTwoActivity"
android:configChanges="keyboardHidden|orientation" android:configChanges="keyboardHidden|orientation"
android:label=" " android:label=" "
android:launchMode="singleTop" android:launchMode="singleTop"
...@@ -31,7 +39,7 @@ ...@@ -31,7 +39,7 @@
android:theme="@style/Work.Base" android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" /> android:windowSoftInputMode="adjustPan" />
<activity <activity
android:name=".ui.login.ErpActivationOneActivity" android:name=".ui.activity.login.ErpActivationOneActivity"
android:configChanges="keyboardHidden|orientation" android:configChanges="keyboardHidden|orientation"
android:label=" " android:label=" "
android:launchMode="singleTop" android:launchMode="singleTop"
...@@ -39,7 +47,7 @@ ...@@ -39,7 +47,7 @@
android:theme="@style/Work.Base" android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" /> android:windowSoftInputMode="adjustPan" />
<activity <activity
android:name=".ui.login.RegisterFirstActivity" android:name=".ui.activity.login.RegisterFirstActivity"
android:configChanges="keyboardHidden|orientation" android:configChanges="keyboardHidden|orientation"
android:label=" " android:label=" "
android:launchMode="singleTop" android:launchMode="singleTop"
...@@ -48,7 +56,7 @@ ...@@ -48,7 +56,7 @@
android:windowSoftInputMode="adjustResize" /> android:windowSoftInputMode="adjustResize" />
<activity <activity
android:name=".ui.login.UserRegisterOneActivity" android:name=".ui.activity.login.UserRegisterOneActivity"
android:configChanges="keyboardHidden|orientation" android:configChanges="keyboardHidden|orientation"
android:label=" " android:label=" "
android:launchMode="singleTop" android:launchMode="singleTop"
...@@ -56,7 +64,7 @@ ...@@ -56,7 +64,7 @@
android:theme="@style/Work.Base" android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" /> android:windowSoftInputMode="adjustPan" />
<activity <activity
android:name=".ui.login.UserRegisterTwoActivity" android:name=".ui.activity.login.UserRegisterTwoActivity"
android:configChanges="keyboardHidden|orientation" android:configChanges="keyboardHidden|orientation"
android:label=" " android:label=" "
android:launchMode="singleTop" android:launchMode="singleTop"
...@@ -65,7 +73,7 @@ ...@@ -65,7 +73,7 @@
android:windowSoftInputMode="adjustPan" /> android:windowSoftInputMode="adjustPan" />
<activity <activity
android:name=".ui.login.UserRegisterThreeActivity" android:name=".ui.activity.login.UserRegisterThreeActivity"
android:configChanges="keyboardHidden|orientation" android:configChanges="keyboardHidden|orientation"
android:label="完善资料" android:label="完善资料"
android:launchMode="singleTop" android:launchMode="singleTop"
...@@ -74,7 +82,7 @@ ...@@ -74,7 +82,7 @@
android:windowSoftInputMode="adjustPan" /> android:windowSoftInputMode="adjustPan" />
<activity <activity
android:name=".ui.login.ForgetOneActivity" android:name=".ui.activity.login.ForgetOneActivity"
android:configChanges="keyboardHidden|orientation" android:configChanges="keyboardHidden|orientation"
android:label=" " android:label=" "
android:launchMode="singleTop" android:launchMode="singleTop"
...@@ -82,7 +90,7 @@ ...@@ -82,7 +90,7 @@
android:theme="@style/Work.Base" android:theme="@style/Work.Base"
android:windowSoftInputMode="adjustPan" /> android:windowSoftInputMode="adjustPan" />
<activity <activity
android:name=".ui.login.ForgetTwoActivity" android:name=".ui.activity.login.ForgetTwoActivity"
android:configChanges="keyboardHidden|orientation" android:configChanges="keyboardHidden|orientation"
android:label=" " android:label=" "
android:launchMode="singleTop" android:launchMode="singleTop"
......
...@@ -5,6 +5,8 @@ import android.app.Application; ...@@ -5,6 +5,8 @@ import android.app.Application;
import com.scwang.smartrefresh.header.BezierCircleHeader; import com.scwang.smartrefresh.header.BezierCircleHeader;
import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.wd.workoffice.R; import com.wd.workoffice.R;
import com.wd.workoffice.retrofit.ApiService;
import com.wd.workoffice.util.UserKeeper;
import cn.jpush.android.api.JPushInterface; import cn.jpush.android.api.JPushInterface;
import flexible.xd.android_base.base.BaseApp; import flexible.xd.android_base.base.BaseApp;
...@@ -37,7 +39,7 @@ public class WorkApp extends BaseApp { ...@@ -37,7 +39,7 @@ public class WorkApp extends BaseApp {
RtfHelper.getInstance().init(ApiService.DOMAIN, chain -> { RtfHelper.getInstance().init(ApiService.DOMAIN, chain -> {
Request original = chain.request(); Request original = chain.request();
Request request = original.newBuilder() Request request = original.newBuilder()
// .header("Authorization", UserKeeper.getInstance().getToken()) .header("Authorization", UserKeeper.getInstance().getToken())
.method(original.method(), original.body()) .method(original.method(), original.body())
.build(); .build();
......
...@@ -2,18 +2,32 @@ package com.wd.workoffice.app; ...@@ -2,18 +2,32 @@ package com.wd.workoffice.app;
import flexible.xd.android_base.base.BaseFragment; import flexible.xd.android_base.base.BaseFragment;
import flexible.xd.android_base.mvpBase.IBaseView;
import me.jessyan.autosize.AutoSize; import me.jessyan.autosize.AutoSize;
/** /**
* Created by flexible on 2018/6/6. * Created by flexible on 2018/6/6.
*/ */
public abstract class WorkBaseFg extends BaseFragment { public abstract class WorkBaseFg extends BaseFragment implements IBaseView {
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
AutoSize.autoConvertDensity(getActivity(), 375, true); AutoSize.autoConvertDensity(getActivity(), 375, true);
} }
@Override
public void showLoading() {
isLoad(true);
}
@Override
public void hideLoading() {
isLoad(false);
}
@Override
public void onError(String message) {
toast(message);
}
} }
package com.wd.workoffice.bean; package com.wd.workoffice.bean;
import com.google.gson.annotations.SerializedName;
import com.wd.workoffice.app.BaseBean;
import java.util.List;
/** /**
* author : flexible * author : flexible
......
package com.wd.workoffice.bean;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class TokenBean {
/**
* access_token : f0c3a0fc9bf24f1aa4b7f511f1381d33
* token_type : bearer
* refresh_token : 300881ed-3bad-4a2a-ae8c-7a477e82c891
* expires_in : 86399
* userId : 703
* nickName : 冷广德
* username : flexible1
*/
private String access_token;
private String token_type;
private String refresh_token;
private int expires_in;
private int userId;
private String nickName;
private String username;
public String getAccess_token() {
return access_token;
}
public void setAccess_token(String access_token) {
this.access_token = access_token;
}
public String getToken_type() {
return token_type;
}
public void setToken_type(String token_type) {
this.token_type = token_type;
}
public String getRefresh_token() {
return refresh_token;
}
public void setRefresh_token(String refresh_token) {
this.refresh_token = refresh_token;
}
public int getExpires_in() {
return expires_in;
}
public void setExpires_in(int expires_in) {
this.expires_in = expires_in;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
...@@ -3,8 +3,8 @@ package com.wd.workoffice.contract; ...@@ -3,8 +3,8 @@ package com.wd.workoffice.contract;
import com.wd.workoffice.app.BaseBean; import com.wd.workoffice.app.BaseBean;
import flexible.xd.android_base.mvpBase.IBaseModel; import flexible.xd.android_base.mvpBase.IBaseModel;
import flexible.xd.android_base.mvpBase.IBasePresenter;
import flexible.xd.android_base.mvpBase.IBaseView; import flexible.xd.android_base.mvpBase.IBaseView;
import flexible.xd.android_base.mvpBase.IPresenter;
import io.reactivex.Observable; import io.reactivex.Observable;
/** /**
...@@ -25,7 +25,7 @@ public interface ForgetOneContract { ...@@ -25,7 +25,7 @@ public interface ForgetOneContract {
void verifySuccess(); void verifySuccess();
} }
interface Presenter extends IPresenter<View> { interface Presenter extends IBasePresenter<View> {
void getCode(String phone, String type); void getCode(String phone, String type);
void verifyCode(String phone, String verifyCode, String type); void verifyCode(String phone, String verifyCode, String type);
......
...@@ -5,9 +5,10 @@ import com.wd.workoffice.app.BaseBean; ...@@ -5,9 +5,10 @@ import com.wd.workoffice.app.BaseBean;
import java.util.Map; import java.util.Map;
import flexible.xd.android_base.mvpBase.IBaseModel; import flexible.xd.android_base.mvpBase.IBaseModel;
import flexible.xd.android_base.mvpBase.IBasePresenter;
import flexible.xd.android_base.mvpBase.IBaseView; import flexible.xd.android_base.mvpBase.IBaseView;
import flexible.xd.android_base.mvpBase.IPresenter;
import io.reactivex.Observable; import io.reactivex.Observable;
import retrofit2.Call;
/** /**
* author : flexible * author : flexible
...@@ -18,7 +19,7 @@ public interface LoginContract { ...@@ -18,7 +19,7 @@ public interface LoginContract {
interface Model extends IBaseModel { interface Model extends IBaseModel {
Observable<BaseBean> getCode(String phone, String type); Observable<BaseBean> getCode(String phone, String type);
Observable<BaseBean> login(String type,Map<String,Object> param); Call<BaseBean> login(String type, Map<String,Object> param);
} }
interface View extends IBaseView { interface View extends IBaseView {
...@@ -27,7 +28,7 @@ public interface LoginContract { ...@@ -27,7 +28,7 @@ public interface LoginContract {
void loginSuccess(); void loginSuccess();
} }
interface Presenter extends IPresenter<View> { interface Presenter extends IBasePresenter<View> {
void getCode(String phone, String type); void getCode(String phone, String type);
void login(String type ,Map<String,Object> param); void login(String type ,Map<String,Object> param);
......
package com.wd.workoffice.contract; package com.wd.workoffice.contract;
import com.wd.workoffice.app.BaseBean; import com.wd.workoffice.app.BaseBean;
import java.util.Map;
import flexible.xd.android_base.mvpBase.IBaseModel; import flexible.xd.android_base.mvpBase.IBaseModel;
import flexible.xd.android_base.mvpBase.IBasePresenter;
import flexible.xd.android_base.mvpBase.IBaseView; import flexible.xd.android_base.mvpBase.IBaseView;
import flexible.xd.android_base.mvpBase.IPresenter;
import io.reactivex.Observable; import io.reactivex.Observable;
/** /**
...@@ -27,7 +24,7 @@ public interface UserRegisterOneContract { ...@@ -27,7 +24,7 @@ public interface UserRegisterOneContract {
void verifySuccess(); void verifySuccess();
} }
interface Presenter extends IPresenter<View> { interface Presenter extends IBasePresenter<View> {
void getCode(String phone,String type); void getCode(String phone,String type);
void verifyCode(String phone,String verifyCode,String type); void verifyCode(String phone,String verifyCode,String type);
......
...@@ -7,8 +7,8 @@ import java.util.List; ...@@ -7,8 +7,8 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import flexible.xd.android_base.mvpBase.IBaseModel; import flexible.xd.android_base.mvpBase.IBaseModel;
import flexible.xd.android_base.mvpBase.IBasePresenter;
import flexible.xd.android_base.mvpBase.IBaseView; import flexible.xd.android_base.mvpBase.IBaseView;
import flexible.xd.android_base.mvpBase.IPresenter;
import io.reactivex.Observable; import io.reactivex.Observable;
/** /**
...@@ -29,7 +29,7 @@ public interface UserRegisterThreeContract { ...@@ -29,7 +29,7 @@ public interface UserRegisterThreeContract {
void depSuccess(List<DepBean> depList); void depSuccess(List<DepBean> depList);
} }
interface Presenter extends IPresenter<View> { interface Presenter extends IBasePresenter<View> {
void register(Map<String,Object> param); void register(Map<String,Object> param);
void depList(); void depList();
......
package com.wd.workoffice.model; package com.wd.workoffice.model;
import com.wd.workoffice.app.ApiService; import com.wd.workoffice.retrofit.ApiService;
import com.wd.workoffice.app.BaseBean; import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.contract.ForgetOneContract; import com.wd.workoffice.contract.ForgetOneContract;
import com.wd.workoffice.retrofit.RtfUtils;
import flexible.xd.android_base.network.rtfhttp.RtfHelper; import flexible.xd.android_base.network.rtfhttp.RtfHelper;
import io.reactivex.Observable; import io.reactivex.Observable;
...@@ -15,12 +16,12 @@ import io.reactivex.Observable; ...@@ -15,12 +16,12 @@ import io.reactivex.Observable;
public class ForgetOneModel implements ForgetOneContract.Model { public class ForgetOneModel implements ForgetOneContract.Model {
@Override @Override
public Observable<BaseBean> getCode(String phone, String type) { public Observable<BaseBean> getCode(String phone, String type) {
return RtfHelper.getInstance().getApiService(ApiService.class).code(phone, type); return RtfUtils.getRtf().code(phone, type);
} }
@Override @Override
public Observable<BaseBean> verifyCode(String phone, String verifyCode, String type) { public Observable<BaseBean> verifyCode(String phone, String verifyCode, String type) {
return RtfHelper.getInstance().getApiService(ApiService.class).verifyCode(phone, verifyCode, type); return RtfUtils.getRtf().verifyCode(phone, verifyCode, type);
} }
public static ForgetOneModel newInstance() { public static ForgetOneModel newInstance() {
......
package com.wd.workoffice.model; package com.wd.workoffice.model;
import com.wd.workoffice.app.ApiService; import com.wd.workoffice.retrofit.ApiService;
import com.wd.workoffice.app.BaseBean; import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.contract.LoginContract; import com.wd.workoffice.contract.LoginContract;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.util.WorkUtils; import com.wd.workoffice.util.WorkUtils;
import java.util.Map; import java.util.Map;
import flexible.xd.android_base.network.rtfhttp.RtfHelper; import flexible.xd.android_base.network.rtfhttp.RtfHelper;
import io.reactivex.Observable; import io.reactivex.Observable;
import retrofit2.Call;
/** /**
* author : flexible * author : flexible
...@@ -18,12 +20,12 @@ import io.reactivex.Observable; ...@@ -18,12 +20,12 @@ import io.reactivex.Observable;
public class LoginModel implements LoginContract.Model { public class LoginModel implements LoginContract.Model {
@Override @Override
public Observable<BaseBean> getCode(String phone, String type) { public Observable<BaseBean> getCode(String phone, String type) {
return RtfHelper.getInstance().getApiService(ApiService.class).code(phone, type); return RtfUtils.getRtf().code(phone, type);
} }
@Override @Override
public Observable<BaseBean> login(String type, Map<String, Object> param) { public Call<BaseBean> login(String type, Map<String, Object> param) {
return RtfHelper.getInstance().getApiService(ApiService.class).login(type, WorkUtils.convertMapToBody(param)); return RtfUtils.getRtf().login(type, WorkUtils.convertMapToBody(param));
} }
public static LoginModel newInstance() { public static LoginModel newInstance() {
......
package com.wd.workoffice.model; package com.wd.workoffice.model;
import com.wd.workoffice.app.ApiService; import com.wd.workoffice.retrofit.ApiService;
import com.wd.workoffice.app.BaseBean; import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.contract.UserRegisterOneContract; import com.wd.workoffice.contract.UserRegisterOneContract;
import com.wd.workoffice.retrofit.RtfUtils;
import flexible.xd.android_base.network.rtfhttp.RtfHelper; import flexible.xd.android_base.network.rtfhttp.RtfHelper;
import io.reactivex.Observable; import io.reactivex.Observable;
...@@ -15,12 +16,12 @@ import io.reactivex.Observable; ...@@ -15,12 +16,12 @@ import io.reactivex.Observable;
public class UserRegisterOneModel implements UserRegisterOneContract.Model { public class UserRegisterOneModel implements UserRegisterOneContract.Model {
@Override @Override
public Observable<BaseBean> getCode(String phone, String type) { public Observable<BaseBean> getCode(String phone, String type) {
return RtfHelper.getInstance().getApiService(ApiService.class).code(phone, type); return RtfUtils.getRtf().code(phone, type);
} }
@Override @Override
public Observable<BaseBean> verifyCode(String phone, String verifyCode, String type) { public Observable<BaseBean> verifyCode(String phone, String verifyCode, String type) {
return RtfHelper.getInstance().getApiService(ApiService.class).verifyCode(phone, verifyCode, type); return RtfUtils.getRtf().verifyCode(phone, verifyCode, type);
} }
public static UserRegisterOneModel newInstance() { public static UserRegisterOneModel newInstance() {
......
package com.wd.workoffice.model; package com.wd.workoffice.model;
import com.wd.workoffice.app.ApiService; import com.wd.workoffice.retrofit.ApiService;
import com.wd.workoffice.app.BaseBean; import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.contract.UserRegisterThreeContract; import com.wd.workoffice.contract.UserRegisterThreeContract;
import com.wd.workoffice.retrofit.RtfUtils;
import com.wd.workoffice.util.WorkUtils; import com.wd.workoffice.util.WorkUtils;
import java.util.Map; import java.util.Map;
...@@ -18,13 +19,12 @@ import io.reactivex.Observable; ...@@ -18,13 +19,12 @@ import io.reactivex.Observable;
public class UserRegisterThreeModel implements UserRegisterThreeContract.Model { public class UserRegisterThreeModel implements UserRegisterThreeContract.Model {
@Override @Override
public Observable<BaseBean> register(Map<String, Object> param) { public Observable<BaseBean> register(Map<String, Object> param) {
return RtfUtils.getRtf().register(WorkUtils.convertMapToBody(param));
return RtfHelper.getInstance().getApiService(ApiService.class).register(WorkUtils.convertMapToBody(param));
} }
@Override @Override
public Observable<BaseBean> depList() { public Observable<BaseBean> depList() {
return RtfHelper.getInstance().getApiService(ApiService.class).depList(); return RtfUtils.getRtf().depList();
} }
public static UserRegisterThreeModel newInstance() { public static UserRegisterThreeModel newInstance() {
......
...@@ -2,14 +2,11 @@ package com.wd.workoffice.presenter; ...@@ -2,14 +2,11 @@ package com.wd.workoffice.presenter;
import com.wd.workoffice.app.BaseBean; import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.contract.ForgetOneContract; import com.wd.workoffice.contract.ForgetOneContract;
import com.wd.workoffice.contract.LoginContract;
import com.wd.workoffice.contract.UserRegisterOneContract;
import com.wd.workoffice.model.ForgetOneModel; import com.wd.workoffice.model.ForgetOneModel;
import com.wd.workoffice.model.UserRegisterOneModel; import com.wd.workoffice.retrofit.WorkObserver;
import flexible.xd.android_base.mvpBase.BasePresenter; import flexible.xd.android_base.mvpBase.BasePresenter;
import flexible.xd.android_base.network.rtfhttp.Transformer; import flexible.xd.android_base.network.rtfhttp.Transformer;
import flexible.xd.android_base.network.rtfhttp.observer.BaseObserver;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
/** /**
...@@ -26,7 +23,7 @@ public class ForgetOnePresenter extends BasePresenter<ForgetOneContract.View, Fo ...@@ -26,7 +23,7 @@ public class ForgetOnePresenter extends BasePresenter<ForgetOneContract.View, Fo
@Override @Override
public void getCode(String phone, String type) { public void getCode(String phone, String type) {
mView.showLoading(); mView.showLoading();
mModel.getCode(phone, type).compose(Transformer.schedule()).subscribe(new BaseObserver<BaseBean>() { mModel.getCode(phone, type).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override @Override
public void doOnSubscribe(Disposable d) { public void doOnSubscribe(Disposable d) {
mDisposable.add(d); mDisposable.add(d);
...@@ -53,7 +50,7 @@ public class ForgetOnePresenter extends BasePresenter<ForgetOneContract.View, Fo ...@@ -53,7 +50,7 @@ public class ForgetOnePresenter extends BasePresenter<ForgetOneContract.View, Fo
@Override @Override
public void verifyCode(String phone, String verifyCode, String type) { public void verifyCode(String phone, String verifyCode, String type) {
mView.showLoading(); mView.showLoading();
mModel.verifyCode(phone, verifyCode,type).compose(Transformer.schedule()).subscribe(new BaseObserver<BaseBean>() { mModel.verifyCode(phone, verifyCode,type).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override @Override
public void doOnSubscribe(Disposable d) { public void doOnSubscribe(Disposable d) {
mDisposable.add(d); mDisposable.add(d);
......
package com.wd.workoffice.presenter; package com.wd.workoffice.presenter;
import com.alibaba.fastjson.JSON;
import com.wd.workoffice.app.BaseBean; import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.contract.LoginContract; import com.wd.workoffice.contract.LoginContract;
import com.wd.workoffice.contract.UserRegisterOneContract;
import com.wd.workoffice.model.LoginModel; import com.wd.workoffice.model.LoginModel;
import com.wd.workoffice.retrofit.WorkObserver;
import com.wd.workoffice.util.UserKeeper;
import java.io.IOException;
import java.util.Map; import java.util.Map;
import flexible.xd.android_base.mvpBase.BasePresenter; import flexible.xd.android_base.mvpBase.BasePresenter;
import flexible.xd.android_base.network.rtfhttp.Transformer; import flexible.xd.android_base.network.rtfhttp.Transformer;
import flexible.xd.android_base.network.rtfhttp.observer.BaseObserver;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
/** /**
* author : flexible * author : flexible
...@@ -22,7 +28,7 @@ public class LoginPresenter extends BasePresenter<LoginContract.View, LoginContr ...@@ -22,7 +28,7 @@ public class LoginPresenter extends BasePresenter<LoginContract.View, LoginContr
@Override @Override
public void getCode(String phone, String type) { public void getCode(String phone, String type) {
mView.showLoading(); mView.showLoading();
mModel.getCode(phone, type).compose(Transformer.schedule()).subscribe(new BaseObserver<BaseBean>() { mModel.getCode(phone, type).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override @Override
public void doOnSubscribe(Disposable d) { public void doOnSubscribe(Disposable d) {
mDisposable.add(d); mDisposable.add(d);
...@@ -49,28 +55,75 @@ public class LoginPresenter extends BasePresenter<LoginContract.View, LoginContr ...@@ -49,28 +55,75 @@ public class LoginPresenter extends BasePresenter<LoginContract.View, LoginContr
@Override @Override
public void login(String type, Map<String, Object> param) { public void login(String type, Map<String, Object> param) {
mView.showLoading(); mView.showLoading();
mModel.login(type, param).compose(Transformer.schedule()).subscribe(new BaseObserver<BaseBean>() { mModel.login(type, param).enqueue(new Callback<BaseBean>() {
@Override @Override
public void doOnSubscribe(Disposable d) { public void onResponse(Call<BaseBean> call, Response<BaseBean> response) {
mDisposable.add(d); if (response.isSuccessful()) {
} BaseBean data = response.body();
@Override
public void onFail(String errorMsg) {
mView.hideLoading();
mView.onError(errorMsg);
}
@Override
public void onSuccess(BaseBean data) {
mView.hideLoading(); mView.hideLoading();
if (data.getCode() != 0) { if (data.getCode() != 0) {
mView.onError(data.getMessage()); mView.onError(data.getMessage());
return; return;
} }
UserKeeper.getInstance().keepLoginInfo(JSON.toJSONString(data.getData()));
mView.loginSuccess(); mView.loginSuccess();
} else {
ResponseBody data = response.errorBody();
mView.hideLoading();
try {
BaseBean backData = JSON.parseObject(data.string(), BaseBean.class);
if (backData.getCode() != 0) {
mView.onError(backData.getMessage());
return;
}
UserKeeper.getInstance().keepLoginInfo(JSON.toJSONString(backData.getData()));
mView.loginSuccess();
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public void onFailure(Call<BaseBean> call, Throwable t) {
mView.hideLoading();
mView.onError("获取失败,请检查网络状态");
} }
}); });
// compose(Transformer.schedule()).subscribe(new Observer<BaseBean>() {
// @Override
// public void onSubscribe(Disposable d) {
// mDisposable.add(d);
// }
//
// @Override
// public void onNext(BaseBean data) {
//
// }
//
// @Override
// public void onError(Throwable e) {
// mView.hideLoading();
// if (e instanceof HttpException) {
// HttpException httpException = (HttpException) e;
// if (httpException.code() == 401) {//一般用于判断登录状态
//
// } else {
// mView.onError("服务器异常,请稍后再试");
// }
// } else {
// mView.onError("获取失败,请检查网络状态");
// }
// }
//
// @Override
// public void onComplete() {
// }
//
// });
} }
@Override @Override
......
...@@ -3,10 +3,10 @@ package com.wd.workoffice.presenter; ...@@ -3,10 +3,10 @@ package com.wd.workoffice.presenter;
import com.wd.workoffice.app.BaseBean; import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.contract.UserRegisterOneContract; import com.wd.workoffice.contract.UserRegisterOneContract;
import com.wd.workoffice.model.UserRegisterOneModel; import com.wd.workoffice.model.UserRegisterOneModel;
import com.wd.workoffice.retrofit.WorkObserver;
import flexible.xd.android_base.mvpBase.BasePresenter; import flexible.xd.android_base.mvpBase.BasePresenter;
import flexible.xd.android_base.network.rtfhttp.Transformer; import flexible.xd.android_base.network.rtfhttp.Transformer;
import flexible.xd.android_base.network.rtfhttp.observer.BaseObserver;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
/** /**
...@@ -25,7 +25,7 @@ public class UserRegisterOnePresenter extends BasePresenter<UserRegisterOneContr ...@@ -25,7 +25,7 @@ public class UserRegisterOnePresenter extends BasePresenter<UserRegisterOneContr
@Override @Override
public void getCode(String phone, String type) { public void getCode(String phone, String type) {
mView.showLoading(); mView.showLoading();
mModel.getCode(phone, type).compose(Transformer.schedule()).subscribe(new BaseObserver<BaseBean>() { mModel.getCode(phone, type).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override @Override
public void doOnSubscribe(Disposable d) { public void doOnSubscribe(Disposable d) {
mDisposable.add(d); mDisposable.add(d);
...@@ -52,7 +52,7 @@ public class UserRegisterOnePresenter extends BasePresenter<UserRegisterOneContr ...@@ -52,7 +52,7 @@ public class UserRegisterOnePresenter extends BasePresenter<UserRegisterOneContr
@Override @Override
public void verifyCode(String phone, String verifyCode, String type) { public void verifyCode(String phone, String verifyCode, String type) {
mView.showLoading(); mView.showLoading();
mModel.verifyCode(phone, verifyCode,type).compose(Transformer.schedule()).subscribe(new BaseObserver<BaseBean>() { mModel.verifyCode(phone, verifyCode,type).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override @Override
public void doOnSubscribe(Disposable d) { public void doOnSubscribe(Disposable d) {
mDisposable.add(d); mDisposable.add(d);
......
...@@ -5,13 +5,12 @@ import com.wd.workoffice.app.BaseBean; ...@@ -5,13 +5,12 @@ import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.bean.DepBean; import com.wd.workoffice.bean.DepBean;
import com.wd.workoffice.contract.UserRegisterThreeContract; import com.wd.workoffice.contract.UserRegisterThreeContract;
import com.wd.workoffice.model.UserRegisterThreeModel; import com.wd.workoffice.model.UserRegisterThreeModel;
import com.wd.workoffice.retrofit.WorkObserver;
import java.util.List;
import java.util.Map; import java.util.Map;
import flexible.xd.android_base.mvpBase.BasePresenter; import flexible.xd.android_base.mvpBase.BasePresenter;
import flexible.xd.android_base.network.rtfhttp.Transformer; import flexible.xd.android_base.network.rtfhttp.Transformer;
import flexible.xd.android_base.network.rtfhttp.observer.BaseObserver;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
/** /**
...@@ -24,7 +23,7 @@ public class UserRegisterThreePresenter extends BasePresenter<UserRegisterThreeC ...@@ -24,7 +23,7 @@ public class UserRegisterThreePresenter extends BasePresenter<UserRegisterThreeC
@Override @Override
public void register(Map<String, Object> param) { public void register(Map<String, Object> param) {
mView.showLoading(); mView.showLoading();
mModel.register(param).compose(Transformer.schedule()).subscribe(new BaseObserver<BaseBean>() { mModel.register(param).compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override @Override
public void doOnSubscribe(Disposable d) { public void doOnSubscribe(Disposable d) {
mDisposable.add(d); mDisposable.add(d);
...@@ -51,7 +50,7 @@ public class UserRegisterThreePresenter extends BasePresenter<UserRegisterThreeC ...@@ -51,7 +50,7 @@ public class UserRegisterThreePresenter extends BasePresenter<UserRegisterThreeC
@Override @Override
public void depList() { public void depList() {
mView.showLoading(); mView.showLoading();
mModel.depList().compose(Transformer.schedule()).subscribe(new BaseObserver<BaseBean>() { mModel.depList().compose(Transformer.schedule()).subscribe(new WorkObserver<BaseBean>() {
@Override @Override
public void doOnSubscribe(Disposable d) { public void doOnSubscribe(Disposable d) {
mDisposable.add(d); mDisposable.add(d);
......
package com.wd.workoffice.app; package com.wd.workoffice.retrofit;
import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.Config;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.Map; import java.util.Map;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.Body; import retrofit2.http.Body;
import retrofit2.http.GET; import retrofit2.http.GET;
import retrofit2.http.POST; import retrofit2.http.POST;
...@@ -134,7 +138,7 @@ public interface ApiService { ...@@ -134,7 +138,7 @@ public interface ApiService {
* @return * @return
*/ */
@POST("/login") @POST("/login")
Observable<BaseBean> login(@Query("grant_type")String type,@Body RequestBody requestBody); Call<BaseBean> login(@Query("grant_type")String type, @Body RequestBody requestBody);
/** /**
* 退出登录 * 退出登录
* *
......
package com.wd.workoffice.retrofit;
import flexible.xd.android_base.network.rtfhttp.RtfHelper;
/**
* author : flexible
* email : lgd19940421@163.com
* github: https://github.com/FlexibleXd
**/
public class RtfUtils {
public static ApiService getRtf() {
return RtfHelper.getInstance().getApiService(ApiService.class);
}
}
package com.wd.workoffice.retrofit;
import org.greenrobot.eventbus.EventBus;
import flexible.xd.android_base.model.event.LoginEvent;
import flexible.xd.android_base.network.rtfhttp.observer.ISubscriber;
import io.reactivex.Observer;
public abstract class WorkObserver<T> extends flexible.xd.android_base.network.rtfhttp.observer.BaseObserver<T> implements Observer<T>, ISubscriber<T> {
@Override
public void network401() {
EventBus.getDefault().post(new LoginEvent());
}
}
package com.wd.workoffice.ui;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.wd.workoffice.R;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
package com.wd.workoffice.ui.activity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.RelativeLayout;
import com.ashokvarma.bottomnavigation.BottomNavigationBar;
import com.ashokvarma.bottomnavigation.BottomNavigationItem;
import com.ashokvarma.bottomnavigation.TextBadgeItem;
import com.wd.workoffice.R;
import com.wd.workoffice.app.WorkBaseActivity;
import com.wd.workoffice.ui.activity.login.LoginActivity;
import com.wd.workoffice.ui.adapter.VpMainAdapter;
import com.wd.workoffice.util.UserKeeper;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.viewpager.widget.ViewPager;
import butterknife.BindView;
import butterknife.ButterKnife;
import flexible.xd.android_base.base.AppManager;
import flexible.xd.android_base.model.event.LoginEvent;
import me.jessyan.autosize.internal.CancelAdapt;
public class MainActivity extends WorkBaseActivity implements BottomNavigationBar.OnTabSelectedListener, View.OnClickListener, CancelAdapt {
@BindView(R.id.bnb_main_bottom_bar)
BottomNavigationBar bnbMainBottomBar;
@BindView(R.id.activity_main)
RelativeLayout activityMain;
@BindView(R.id.main_content)
ViewPager mainContent;
private ArrayList<Fragment> fragments;
private FragmentManager fm;
private TextBadgeItem numberBadgeItem;
// private MainActivityPresenter mainPresenter;
@Override
protected void initView() {
if (TextUtils.isEmpty(UserKeeper.getInstance().getLoginInfo())){
finish();
startActivity(LoginActivity.class);
return;
}
ButterKnife.bind(this);
if (Build.VERSION.SDK_INT >= 21) {
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
decorView.setSystemUiVisibility(option);
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
bnbMainBottomBar.setMode(BottomNavigationBar.MODE_FIXED);
bnbMainBottomBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC);
bnbMainBottomBar.setBackgroundColor(getResources().getColor(R.color.white));
// numberBadgeItem = new TextBadgeItem();
// numberBadgeItem.setBorderWidth(4)
// .setBackgroundColorResource(R.color.red)
// .setText("0");
bnbMainBottomBar
.addItem(new BottomNavigationItem(R.mipmap.main_bat, "首页").setActiveColorResource(R.color.main_icon_select).setInActiveColorResource(R.color.main_icon))
.addItem(new BottomNavigationItem(R.mipmap.main_mes, "MES").setActiveColorResource(R.color.main_icon_select).setInActiveColorResource(R.color.main_icon))
.addItem(new BottomNavigationItem(R.mipmap.main_msg, "消息").setActiveColorResource(R.color.main_icon_select).setInActiveColorResource(R.color.main_icon))
.addItem(new BottomNavigationItem(R.mipmap.main_my, "我的").setActiveColorResource(R.color.main_icon_select).setInActiveColorResource(R.color.main_icon))
.initialise();
fm = getSupportFragmentManager();
fragments = getFragments();
bnbMainBottomBar.setTabSelectedListener(this);
mainContent.setOffscreenPageLimit(3);
VpMainAdapter vpFgAdapter = new VpMainAdapter(fm, fragments);
mainContent.setAdapter(vpFgAdapter);
}
@Override
protected void initData() {
}
@Override
protected void initEvent() {
}
@Override
protected int layoutId() {
return R.layout.activity_main;
}
@Override
protected void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
protected void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
// @Override
// protected void initView() {
// mainPresenter = new MainActivityPresenter();
// mainPresenter.onAttach(this);
// if (UserKeeper.getInstance().getLogin() == 1) {
// mainPresenter.getUserInfo();
// }
//
// }
public ArrayList<Fragment> getFragments() {
ArrayList<Fragment> fragments = new ArrayList<>();
// MainFragment mainFragment = new MainFragment();
//// Bundle bundle = new Bundle();
//// bundle.putString("sex", getIntent().getStringExtra("sex"));
//// mainFragment.setArguments(bundle);
// fragments.add(mainFragment);
// fragments.add(new MsgFragment());
// fragments.add(new SearchFragment());
// fragments.add(new MyFragment());
return fragments;
}
@Override
public void onTabSelected(int position) {
mainContent.setCurrentItem(position);
}
@Override
public void onTabUnselected(int position) {
}
@Override
public void onTabReselected(int position) {
}
/**
* 阻止保存fragment
*
* @param outState
*/
@SuppressLint("MissingSuperCall")
@Override
protected void onSaveInstanceState(Bundle outState) {
// super.onSaveInstanceState(outState);
}
long lastTime = 0;
@Override
public void onBackPressed() {
long curTime = System.currentTimeMillis();
if (curTime - lastTime > 2000) {
lastTime = curTime;
toast("再按一次退出");
} else {
AppManager.getAppManager().appExit(this);
super.onBackPressed();
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void Login(LoginEvent lg) {
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
UserKeeper.getInstance().clearAll();
startActivity(intent);
}
}
package com.wd.workoffice.ui.login; package com.wd.workoffice.ui.activity.login;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
......
package com.wd.workoffice.ui.login; package com.wd.workoffice.ui.activity.login;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
......
package com.wd.workoffice.ui.login; package com.wd.workoffice.ui.activity.login;
import android.text.Editable; import android.text.Editable;
import android.text.TextUtils; import android.text.TextUtils;
...@@ -13,7 +13,6 @@ import com.wd.workoffice.app.WorkToolBarActivity; ...@@ -13,7 +13,6 @@ import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.bean.workEnum.CodeType; import com.wd.workoffice.bean.workEnum.CodeType;
import com.wd.workoffice.contract.ForgetOneContract; import com.wd.workoffice.contract.ForgetOneContract;
import com.wd.workoffice.presenter.ForgetOnePresenter; import com.wd.workoffice.presenter.ForgetOnePresenter;
import com.wd.workoffice.presenter.UserRegisterOnePresenter;
import com.wd.workoffice.util.WorkUtils; import com.wd.workoffice.util.WorkUtils;
import butterknife.BindView; import butterknife.BindView;
......
package com.wd.workoffice.ui.login; package com.wd.workoffice.ui.activity.login;
import android.text.TextUtils; import android.text.TextUtils;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import com.wd.workoffice.R; import com.wd.workoffice.R;
import com.wd.workoffice.app.ApiService; import com.wd.workoffice.retrofit.ApiService;
import com.wd.workoffice.app.BaseBean; import com.wd.workoffice.app.BaseBean;
import com.wd.workoffice.app.Config; import com.wd.workoffice.app.Config;
import com.wd.workoffice.app.WorkToolBarActivity; import com.wd.workoffice.app.WorkToolBarActivity;
import com.wd.workoffice.retrofit.WorkObserver;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
...@@ -68,7 +69,7 @@ public class ForgetTwoActivity extends WorkToolBarActivity { ...@@ -68,7 +69,7 @@ public class ForgetTwoActivity extends WorkToolBarActivity {
RtfHelper.getInstance().getApiService(ApiService.class). RtfHelper.getInstance().getApiService(ApiService.class).
forgetPwd(getIntent().getStringExtra("phone"), forgetPwd(getIntent().getStringExtra("phone"),
getIntent().getStringExtra("code"), pwd).compose(Transformer.schedule()) getIntent().getStringExtra("code"), pwd).compose(Transformer.schedule())
.subscribe(new BaseObserver<BaseBean>() { .subscribe(new WorkObserver<BaseBean>() {
@Override @Override
public void doOnSubscribe(Disposable d) { public void doOnSubscribe(Disposable d) {
} }
......
package com.wd.workoffice.ui.login; package com.wd.workoffice.ui.activity.login;
import android.text.Editable; import android.text.Editable;
import android.text.TextUtils; import android.text.TextUtils;
...@@ -15,7 +15,7 @@ import com.wd.workoffice.app.WorkBaseActivity; ...@@ -15,7 +15,7 @@ import com.wd.workoffice.app.WorkBaseActivity;
import com.wd.workoffice.bean.workEnum.CodeType; import com.wd.workoffice.bean.workEnum.CodeType;
import com.wd.workoffice.contract.LoginContract; import com.wd.workoffice.contract.LoginContract;
import com.wd.workoffice.presenter.LoginPresenter; import com.wd.workoffice.presenter.LoginPresenter;
import com.wd.workoffice.ui.MainActivity; import com.wd.workoffice.ui.activity.MainActivity;
import com.wd.workoffice.util.WorkUtils; import com.wd.workoffice.util.WorkUtils;
import java.util.HashMap; import java.util.HashMap;
...@@ -237,6 +237,7 @@ public class LoginActivity extends WorkBaseActivity implements LoginContract.Vie ...@@ -237,6 +237,7 @@ public class LoginActivity extends WorkBaseActivity implements LoginContract.Vie
@Override @Override
public void loginSuccess() { public void loginSuccess() {
finish();
startActivity(MainActivity.class); startActivity(MainActivity.class);
} }
} }
package com.wd.workoffice.ui.login; package com.wd.workoffice.ui.activity.login;
import android.view.View; import android.view.View;
......
package com.wd.workoffice.ui.login; package com.wd.workoffice.ui.activity.login;
import android.text.Editable; import android.text.Editable;
import android.text.TextUtils; import android.text.TextUtils;
......
package com.wd.workoffice.ui.login; package com.wd.workoffice.ui.activity.login;
import android.content.DialogInterface;
import android.text.Editable; import android.text.Editable;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
...@@ -18,7 +16,6 @@ import com.wd.workoffice.contract.UserRegisterThreeContract; ...@@ -18,7 +16,6 @@ import com.wd.workoffice.contract.UserRegisterThreeContract;
import com.wd.workoffice.presenter.UserRegisterThreePresenter; import com.wd.workoffice.presenter.UserRegisterThreePresenter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
......
package com.wd.workoffice.ui.login; package com.wd.workoffice.ui.activity.login;
import android.text.Editable; import android.text.Editable;
import android.text.TextUtils; import android.text.TextUtils;
...@@ -6,7 +6,6 @@ import android.text.TextWatcher; ...@@ -6,7 +6,6 @@ import android.text.TextWatcher;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.wd.workoffice.R; import com.wd.workoffice.R;
......
package com.wd.workoffice.ui.adapter;
import java.util.List;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
/**
* Created by Flexible on 2017/4/1 0001.
*/
public class VpMainAdapter extends FragmentPagerAdapter {
private List<Fragment> data;
public VpMainAdapter(FragmentManager fm, List<Fragment> data) {
super(fm);
this.data = data;
}
@Override
public Fragment getItem(int position) {
return data.get(position);
}
@Override
public int getCount() {
return data.size();
}
}
package com.wd.workoffice.util;
import android.text.TextUtils;
import com.alibaba.fastjson.JSON;
import com.google.android.material.textfield.TextInputEditText;
import com.wd.workoffice.bean.TokenBean;
import flexible.xd.android_base.utils.SPUtils;
/**
* Created by Flexible on 2017/1/9 0009.
*/
public class UserKeeper {
private volatile static UserKeeper keeper;
private SPUtils sp = SPUtils.getInstance("UserKeeper");
private final String LOGIN_INFO = "_LOGIN_INFO";
private final String IS_LOGIN = "_IS_LOGIN";
private final String ACCOUNT = "_ACCOUNT";
private UserKeeper() {
}
public static UserKeeper getInstance() {
if (keeper == null) {
synchronized (UserKeeper.class) {
if (keeper == null) {
keeper = new UserKeeper();
}
}
}
return keeper;
}
public void keepLoginInfo(String info) {
sp.put(LOGIN_INFO, info);
}
public String getLoginInfo() {
return sp.getString(LOGIN_INFO);
}
public void clearLoginInfo() {
sp.put(LOGIN_INFO, "");
}
public String getToken() {
if (TextUtils.isEmpty(sp.getString(LOGIN_INFO))) {
return "";
}
TokenBean tokenBean = JSON.parseObject(sp.getString(LOGIN_INFO), TokenBean.class);
if (tokenBean == null || TextUtils.isEmpty(tokenBean.getAccess_token())) {
return "";
}
return tokenBean.getAccess_token();
}
public void clearAll() {
clearLoginInfo();
// clearLogin();
// clearAccount();
}
}
package com.wd.workoffice.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import androidx.viewpager.widget.ViewPager;
/**
* Created by Administrator on 2018/6/7.
*/
public class NoScrollVp extends ViewPager {
private boolean isCanScroll = false;
public NoScrollVp(Context context) {
super(context);
}
public NoScrollVp(Context context, AttributeSet attrs) {
super(context, attrs);
}
/**
* 设置其是否能滑动换页
* @param isCanScroll false 不能换页, true 可以滑动换页
*/
public void setScanScroll(boolean isCanScroll) {
this.isCanScroll = isCanScroll;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return isCanScroll && super.onInterceptTouchEvent(ev);
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
return isCanScroll && super.onTouchEvent(ev);
}
}
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/activity_main"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
tools:context=".ui.MainActivity">
<com.ashokvarma.bottomnavigation.BottomNavigationBar
android:id="@+id/bnb_main_bottom_bar"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_alignParentBottom="true" />
<TextView <View
android:layout_width="wrap_content" style="@style/dividerX"
android:layout_height="wrap_content" android:layout_alignTop="@id/bnb_main_bottom_bar" />
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file <com.wd.workoffice.widget.NoScrollVp
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/bnb_main_bottom_bar" />
</RelativeLayout>
\ No newline at end of file
...@@ -5,5 +5,6 @@ ...@@ -5,5 +5,6 @@
<color name="colorAccent">#32475C</color> <color name="colorAccent">#32475C</color>
<color name="mainColor">#ffffff</color> <color name="mainColor">#ffffff</color>
<color name="mainTextColor">#32475C</color> <color name="mainTextColor">#32475C</color>
<color name="main_icon_select">#3F617F</color>
<color name="main_icon">#C3CED7</color>
</resources> </resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="fixed_height_top_padding_inactive">2dp</dimen>
<dimen name="fixed_height_top_padding_active">0dp</dimen>
<dimen name="fixed_height_bottom_padding">8dp</dimen>
</resources>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论