Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
HBHAndroid
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨秀秀
HBHAndroid
Commits
04e5f67a
Commit
04e5f67a
authored
Jul 29, 2024
by
小费同学阿
💬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
基础搭建
功能开发 1:bug 修复 消费者端修复登录超时问题
parent
453183a1
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
264 additions
and
4 deletions
+264
-4
HomeRequest.java
...java/com/xx/hbhconsumer/data/http/requst/HomeRequest.java
+57
-0
ActivityViewModel.java
...ava/com/xx/hbhconsumer/ui/activity/ActivityViewModel.java
+2
-2
LoginViewModel.java
...main/java/com/xx/hbhconsumer/ui/login/LoginViewModel.java
+8
-0
MainActivity.java
...rc/main/java/com/xx/hbhconsumer/ui/main/MainActivity.java
+38
-0
MainViewModel.java
...c/main/java/com/xx/hbhconsumer/ui/main/MainViewModel.java
+139
-0
SettingsViewModel.java
...ava/com/xx/hbhconsumer/ui/settings/SettingsViewModel.java
+20
-2
No files found.
consumer/src/main/java/com/xx/hbhconsumer/data/http/requst/HomeRequest.java
View file @
04e5f67a
...
...
@@ -6,6 +6,7 @@ import com.xx.hbhconsumer.data.http.respons.GuessLikeGoodsBean;
import
com.xx.hbhconsumer.data.http.respons.HomeActivityBean
;
import
com.xx.hbhconsumer.data.http.respons.LowPriceGoodsBean
;
import
com.xx.hbhconsumer.data.http.respons.MessageBean
;
import
com.xx.hbhconsumer.data.http.respons.UserInfoBean
;
import
java.util.List
;
...
...
@@ -16,6 +17,62 @@ import me.goldze.mvvmhabit.http.BaseResponse;
import
okhttp3.RequestBody
;
public
class
HomeRequest
extends
BaseRespons
{
/**
* 登录
*/
public
Observable
<
BaseResponse
<
String
>>
login
(
String
user
,
String
pwd
)
{
return
getApiService
().
Login
(
new
ApiParams
<
LoginRequestBody
>().
setParams
(
new
LoginRequestBody
(
user
,
pwd
,
"13"
)
)
);
}
/**
* 登陆入参
* userType : 10 系统用户,01 企业用户,02商户用户,13消费者用户
*/
public
class
LoginRequestBody
{
String
phone
;
String
password
;
String
userType
;
public
LoginRequestBody
(
String
phone
,
String
password
,
String
userType
)
{
this
.
phone
=
phone
;
this
.
password
=
password
;
this
.
userType
=
userType
;
}
public
String
getPhone
()
{
return
phone
;
}
public
void
setPhone
(
String
phone
)
{
this
.
phone
=
phone
;
}
public
String
getPassword
()
{
return
password
;
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
public
String
getUserType
()
{
return
userType
;
}
public
void
setUserType
(
String
userType
)
{
this
.
userType
=
userType
;
}
}
/**
* 获取用户信息
*/
public
Observable
<
BaseResponse
<
UserInfoBean
>>
getUserInfo
()
{
return
getApiService
().
getUserInfo
();
}
/**
...
...
consumer/src/main/java/com/xx/hbhconsumer/ui/activity/ActivityViewModel.java
View file @
04e5f67a
...
...
@@ -100,12 +100,13 @@ public class ActivityViewModel extends BaseViewModel<ActivityRequest> {
}
private
void
loadData
()
{
model
.
getCouponAppList
(
1
)
model
.
getCouponAppList
(
page
)
.
compose
(
RxUtils
.
schedulersTransformer
())
//线程调度
.
doOnSubscribe
(
ActivityViewModel
.
this
)
.
doOnSubscribe
(
new
Consumer
<
Disposable
>()
{
@Override
public
void
accept
(
Disposable
disposable
)
throws
Exception
{
// throw new Exception("发生了一个错误");
}
}).
subscribe
(
new
ApiDisposablePageObserver
<
ActivityCouponBean
>()
{
@Override
...
...
@@ -132,7 +133,6 @@ public class ActivityViewModel extends BaseViewModel<ActivityRequest> {
@Override
public
void
getTotal
(
int
total
)
{
}
...
...
consumer/src/main/java/com/xx/hbhconsumer/ui/login/LoginViewModel.java
View file @
04e5f67a
package
com
.
xx
.
hbhconsumer
.
ui
.
login
;
import
static
me
.
goldze
.
mvvmhabit
.
utils
.
Utils
.
Interceptor_TOKEN
;
import
static
me
.
goldze
.
mvvmhabit
.
utils
.
Utils
.
getContext
;
import
android.Manifest
;
import
android.app.Application
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.SharedPreferences
;
import
android.net.Uri
;
import
android.os.Build
;
import
android.os.Bundle
;
...
...
@@ -207,6 +209,12 @@ public class LoginViewModel extends BaseViewModel<LoginRequest> {
public
void
onSuccess
(
String
resultBean
)
{
//是指token
Interceptor_TOKEN
=
"Bearer "
+
resultBean
;
SharedPreferences
sharedPreferences
=
getContext
().
getSharedPreferences
(
"AppNamePreferences"
,
Context
.
MODE_PRIVATE
);
SharedPreferences
.
Editor
editor
=
sharedPreferences
.
edit
();
editor
.
putString
(
"username"
,
userName
.
get
());
editor
.
putString
(
"password"
,
password
.
get
());
editor
.
putString
(
"token"
,
Interceptor_TOKEN
);
editor
.
apply
();
getuserInfo
();
}
...
...
consumer/src/main/java/com/xx/hbhconsumer/ui/main/MainActivity.java
View file @
04e5f67a
package
com
.
xx
.
hbhconsumer
.
ui
.
main
;
import
static
me
.
goldze
.
mvvmhabit
.
utils
.
Utils
.
Interceptor_TOKEN
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.SharedPreferences
;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.os.Message
;
import
android.util.Log
;
import
android.view.KeyEvent
;
import
android.widget.Toast
;
...
...
@@ -20,6 +24,7 @@ import com.xx.hbhconsumer.ui.activity.ActivityFragment;
import
com.xx.hbhconsumer.ui.category.CategoryActivity
;
import
com.xx.hbhconsumer.ui.goods.GoodFragment
;
import
com.xx.hbhconsumer.ui.home.HomeFragment
;
import
com.xx.hbhconsumer.ui.login.LoginActivity
;
import
com.xx.hbhconsumer.ui.map.MapViewModel
;
import
com.xx.hbhconsumer.ui.mine.MineFragment
;
import
com.xx.hbhconsumer.ui.shop.ShopFragment
;
...
...
@@ -38,6 +43,39 @@ public class MainActivity extends BaseActivity<ActivityMainBinding, MainViewMode
@Override
public
void
initData
()
{
super
.
initData
();
// 获取Intent对象
Intent
intent
=
getIntent
();
// 从Intent中获取传递的额外信息
if
(
intent
!=
null
)
{
String
logFlag
=
intent
.
getStringExtra
(
"logFlag"
);
if
(
logFlag
!=
null
)
{
Log
.
v
(
"首页按钮登录"
,
""
);
}
else
{
Log
.
v
(
"直接登录首页"
,
""
);
// 获取SharedPreferences实例
SharedPreferences
sharedPreferences
=
getSharedPreferences
(
"AppNamePreferences"
,
Context
.
MODE_PRIVATE
);
// 从SharedPreferences中获取用户名和密码
String
username
=
sharedPreferences
.
getString
(
"username"
,
null
);
String
password
=
sharedPreferences
.
getString
(
"password"
,
null
);
String
token
=
sharedPreferences
.
getString
(
"token"
,
null
);
// 检查是否成功获取到用户名和密码
if
(
username
!=
null
&&
password
!=
null
)
{
Log
.
v
(
"刚开始获取的账号:"
,
username
);
Log
.
v
(
"刚开始获取的密码:"
,
password
);
Log
.
v
(
"刚开始获取的token:"
,
token
);
Interceptor_TOKEN
=
token
;
viewModel
.
getLogin
(
username
,
password
);
}
else
{
Log
.
v
(
"账号密码为空跳转登录页"
,
""
);
startActivity
(
LoginActivity
.
class
);
finish
();
}
}
}
// 初始化底部导航栏
BottomNavigationView
bottomNavigationView
=
findViewById
(
R
.
id
.
bottom_navigation_view
);
bottomNavigationView
.
setOnNavigationItemSelectedListener
(
navItemSelectedListener
);
...
...
consumer/src/main/java/com/xx/hbhconsumer/ui/main/MainViewModel.java
View file @
04e5f67a
package
com
.
xx
.
hbhconsumer
.
ui
.
main
;
import
static
me
.
goldze
.
mvvmhabit
.
utils
.
Utils
.
Interceptor_TOKEN
;
import
static
me
.
goldze
.
mvvmhabit
.
utils
.
Utils
.
getContext
;
import
android.app.Application
;
import
android.content.Context
;
import
android.content.SharedPreferences
;
import
android.os.Bundle
;
import
android.util.Log
;
import
android.view.View
;
import
androidx.annotation.NonNull
;
import
com.xx.hbhconsumer.data.http.requst.HomeRequest
;
import
com.xx.hbhconsumer.data.http.respons.UserInfoBean
;
import
com.xx.hbhconsumer.data.local.LocalData
;
import
com.xx.hbhconsumer.data.staticdata.StaticData
;
import
com.xx.hbhconsumer.ui.home.HomeViewModel
;
import
com.xx.hbhconsumer.ui.login.LoginActivity
;
import
com.xx.hbhconsumer.ui.login.LoginViewModel
;
import
com.xx.hbhconsumer.ui.pwd.PwdActivity
;
import
com.xx.hbhconsumer.ui.settings.LogoutDialog
;
import
com.xx.xxviewlibrary.base.AppManager
;
import
com.xx.xxviewlibrary.base.xxBaseDialog
;
import
com.xx.xxviewlibrary.comm.CommTextDialog
;
import
com.xx.xxviewlibrary.comm.RefuseDialogBean
;
import
io.reactivex.rxjava3.disposables.Disposable
;
import
io.reactivex.rxjava3.functions.Consumer
;
import
me.goldze.mvvmhabit.base.BaseViewModel
;
import
me.goldze.mvvmhabit.http.ApiDisposableObserver
;
import
me.goldze.mvvmhabit.utils.RxUtils
;
import
me.goldze.mvvmhabit.utils.StringUtils
;
public
class
MainViewModel
extends
BaseViewModel
<
HomeRequest
>
{
...
...
@@ -56,4 +73,126 @@ public class MainViewModel extends BaseViewModel<HomeRequest> {
dialog
.
setDialogClickListener
((
xxBaseDialog
.
onDialogClickListener
<
LogoutDialog
>)
(
code
,
data
)
->
AppManager
.
getAppManager
().
AppExit
());
dialog
.
show
();
}
public
void
getLogin
(
String
username
,
String
password
){
model
.
login
(
username
,
password
)
.
compose
(
RxUtils
.
schedulersTransformer
())
//线程调度
// .compose(RxUtils.exceptionTransformer()) // 网络错误的异常转换, 这里可以换成自己的ExceptionHandle
.
doOnSubscribe
(
MainViewModel
.
this
)
.
doOnSubscribe
(
new
Consumer
<
Disposable
>()
{
@Override
public
void
accept
(
Disposable
disposable
)
throws
Exception
{
showDialog
(
"正在请求..."
);
}
}).
subscribe
(
new
ApiDisposableObserver
<
String
>()
{
@Override
public
void
onSuccess
(
String
resultBean
)
{
//是指token
Interceptor_TOKEN
=
"Bearer "
+
resultBean
;
SharedPreferences
sharedPreferences
=
getContext
().
getSharedPreferences
(
"AppNamePreferences"
,
Context
.
MODE_PRIVATE
);
SharedPreferences
.
Editor
editor
=
sharedPreferences
.
edit
();
editor
.
putString
(
"username"
,
username
);
editor
.
putString
(
"password"
,
password
);
editor
.
putString
(
"token"
,
Interceptor_TOKEN
);
editor
.
apply
();
getuserInfo
();
// startActivity(HomeActivity.class);
}
@Override
public
void
onError
(
String
Error
)
{
dismissDialog
();
}
});
}
/**
* 获取用户信息
*/
public
void
getuserInfo
()
{
model
.
getUserInfo
()
.
compose
(
RxUtils
.
schedulersTransformer
())
//线程调度
// .compose(RxUtils.exceptionTransformer()) // 网络错误的异常转换, 这里可以换成自己的ExceptionHandle
.
doOnSubscribe
(
MainViewModel
.
this
)
.
doOnSubscribe
(
new
Consumer
<
Disposable
>()
{
@Override
public
void
accept
(
Disposable
disposable
)
throws
Exception
{
}
}).
subscribe
(
new
ApiDisposableObserver
<
UserInfoBean
>()
{
@Override
public
void
onSuccess
(
UserInfoBean
resultBean
)
{
LocalData
.
saveToken
(
Interceptor_TOKEN
);
//将用户信息存储到本地
LocalData
.
saveUser
(
resultBean
.
getUser
());
dismissDialog
();
if
(
resultBean
.
getUser
().
getNeedChangeTimeLongPassword
())
{
Bundle
bundle
=
new
Bundle
();
bundle
.
putBoolean
(
"needChangeTimeLongPassword"
,
true
);
startActivity
(
PwdActivity
.
class
,
bundle
);
finish
();
}
else
{
/* startActivity(MainActivity.class);
finish();*/
}
}
@Override
public
void
onError
(
String
Error
)
{
dismissDialog
();
}
});
}
/**
* 密码超期显示
*/
public
void
ShowOverDueDialog
()
{
showCommTextDialog
(
new
RefuseDialogBean
(
"您的密码使用时间过长,请修改密码后重新登录"
,
"修改密码"
,
"取消"
,
"温馨提示"
),
new
CommTextDialog
.
onAcceptCallBack
()
{
@Override
public
void
refuseBack
()
{
/*跳转到首页(首先获取用户信息)*/
model
.
getUserInfo
()
.
compose
(
RxUtils
.
schedulersTransformer
())
//线程调度
// .compose(RxUtils.exceptionTransformer()) // 网络错误的异常转换, 这里可以换成自己的ExceptionHandle
.
doOnSubscribe
(
MainViewModel
.
this
)
.
doOnSubscribe
(
new
Consumer
<
Disposable
>()
{
@Override
public
void
accept
(
Disposable
disposable
)
throws
Exception
{
}
}).
subscribe
(
new
ApiDisposableObserver
<
UserInfoBean
>()
{
@Override
public
void
onSuccess
(
UserInfoBean
resultBean
)
{
//将用户信息存储到本地
LocalData
.
saveUser
(
resultBean
.
getUser
());
/*在登录的时候就给staticData的消息标志位设置成未读*/
StaticData
.
flag
=
0
;
dismissDialog
();
LocalData
.
saveMerchant
(
resultBean
.
getMerchant
());
// startActivity(HomeActivity.class);
}
@Override
public
void
onError
(
String
Error
)
{
dismissDialog
();
}
});
}
@Override
public
void
acceptBack
()
{
/*跳转到修改密码页面*/
startActivity
(
PwdActivity
.
class
);
}
});
}
}
consumer/src/main/java/com/xx/hbhconsumer/ui/settings/SettingsViewModel.java
View file @
04e5f67a
package
com
.
xx
.
hbhconsumer
.
ui
.
settings
;
import
android.app.Application
;
import
android.content.Context
;
import
android.content.SharedPreferences
;
import
android.content.pm.PackageInfo
;
import
android.content.pm.PackageManager
;
import
android.os.Bundle
;
...
...
@@ -155,8 +157,24 @@ public class SettingsViewModel extends BaseViewModel<SettingsRequest> {
private
void
showSignDialog
(
View
view
)
{
LogoutDialog
dialog
=
new
LogoutDialog
(
view
.
getContext
(),
this
);
dialog
.
setDialogClickListener
((
xxBaseDialog
.
onDialogClickListener
<
LogoutDialog
>)
(
code
,
data
)
->
{
startActivity
(
LoginActivity
.
class
);
AppManager
.
getAppManager
().
finishAllActivityExThis
(
LoginActivity
.
class
);
// 获取SharedPreferences实例
SharedPreferences
sharedPreferences
=
getApplication
().
getSharedPreferences
(
"AppNamePreferences"
,
Context
.
MODE_PRIVATE
);
// 获取SharedPreferences.Editor实例
SharedPreferences
.
Editor
editor
=
sharedPreferences
.
edit
();
// 清除username和password
editor
.
remove
(
"username"
);
editor
.
remove
(
"password"
);
editor
.
remove
(
"token"
);
// 提交更改
editor
.
apply
();
startActivity
(
LoginActivity
.
class
);
// 跳转到登录页面
finish
();
// startActivity(LoginActivity.class);
// AppManager.getAppManager().finishAllActivityExThis(LoginActivity.class);
LocalData
.
delAllData
();
});
dialog
.
show
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment