Commit cf6e5def authored by 小费同学阿's avatar 小费同学阿 💬

消费者端

首次安装协议
parent 333f5926
......@@ -85,8 +85,6 @@ class LoginActivity() : BaseActivity<ActivityLoginBinding, LoginViewModel>() {
})
}
}
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
......
......@@ -171,6 +171,15 @@ interface ApiService {
@GET("app/getInfo")
open fun getUserInfo(): Observable<BaseResponse<UserInfoBean>>
/**
* 获取协议
* 旧接口:app/agreement/getBasicList
* 新接口:app/agreement/getStaticPageList
*/
@Headers("Content-type:application/json")
@POST("app/agreement/getStaticPageList")
open fun getProtocols(@Body requestBody: RequestBody): Observable<BaseResponse<List<String>>>
/**
* 获取展位管理列表
......
......@@ -43,4 +43,12 @@ class LoginRequest: BaseRespons() {
class LoginRequestBody(var phone: String, var password: String,var userType:String )
/**
* 获取协议内容
*/
fun getProtocols(): Observable<BaseResponse<List<String>>>
{
return apiService.getProtocols(ApiParams<Array<String>>().setParams(arrayOf("6","7","13","9","10")))
}
}
\ No newline at end of file
package com.xx.hbhconsumer.ui.login
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Bundle
......@@ -15,7 +16,11 @@ import com.xx.hbhconsumer.adapter.CollectionGoodsAdapter
import com.xx.hbhconsumer.data.http.requst.LoginRequest
import com.xx.hbhconsumer.data.http.respons.CollectionBean
import com.xx.hbhconsumer.databinding.ActivityLoginBinding
import com.xx.xxviewlibrary.comm.CommTextAgreeDialog
import com.xx.xxviewlibrary.comm.RefuseDialogBean
import me.goldze.mvvmhabit.base.BaseActivity
import me.goldze.mvvmhabit.utils.SPUtils
import me.goldze.mvvmhabit.utils.ToastUtils
class LoginActivity() : BaseActivity<ActivityLoginBinding, LoginViewModel>() {
......@@ -30,9 +35,47 @@ class LoginActivity() : BaseActivity<ActivityLoginBinding, LoginViewModel>() {
return BR.loginViewModel
}
/*声明协议内容*/
var agreementContext: String = ""
override fun initData() {
// 获得协议内容
viewModel.getProtocols()
SPUtils.getInstance().clear()
super.initData()
// 使用SharedPreferences检查是否是第一次打开应用
val preferences = getPreferences(Context.MODE_PRIVATE)
val isAgreeFlag = preferences.getBoolean("is_agree_flag", true)
if (isAgreeFlag) {
// 如果是第一次打开应用,执行相应的操作
ToastUtils.showShort("第一次登录")
viewModel.agreeContent.observe(this) { agreeContent: String? ->
if (agreeContent != null) {
agreementContext = agreeContent
/*在这里加上隐私协议弹窗*/
showCommTextAgreeDialog(
RefuseDialogBean(agreementContext, "同意", "不同意", "隐私条款"),
object : CommTextAgreeDialog.onAcceptCallBack {
override fun refuseBack() {
finish()
val intent = Intent(Intent.ACTION_MAIN)
intent.addCategory(Intent.CATEGORY_HOME)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
startActivity(intent)
}
override fun acceptBack() {
// 设置is_agree_flag标记为false,表示隐私协议已同意
val editor = preferences.edit()
editor.putBoolean("is_agree_flag", false)
editor.apply()
/*同意隐私协议以后再进行版本检测*/
}
})
}
}
}
//检查版本
viewModel.rxPermissions = RxPermissions(this)
viewModel.checkVersion(binding.root.rootView)
......@@ -55,7 +98,6 @@ class LoginActivity() : BaseActivity<ActivityLoginBinding, LoginViewModel>() {
binding.rbLoginAgreement.setSelected(consentAgreementFlag)
}
})
}
override fun initViewObservable() {
......@@ -64,7 +106,7 @@ class LoginActivity() : BaseActivity<ActivityLoginBinding, LoginViewModel>() {
override fun initViewModel(): LoginViewModel {
val lm: LoginRequest = LoginRequest()
return LoginViewModel(application,lm)
return LoginViewModel(application, lm)
}
}
\ No newline at end of file
......@@ -9,6 +9,7 @@ import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.text.Html;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
......@@ -30,6 +31,7 @@ import com.xx.hbhconsumer.ui.pwd.ForgetPwdActivity;
import com.xx.hbhconsumer.ui.pwd.PwdActivity;
import com.xx.hbhconsumer.ui.register.RegisterActivity;
import com.xx.hbhconsumer.ui.useragreement.UserAgreementActivity;
import com.xx.hbhconsumer.utils.RetrofitClient;
import com.xx.merchanthbh.data.staticdata.StaticData;
import com.xx.xxviewlibrary.comm.CommTextDialog;
import com.xx.xxviewlibrary.comm.RefuseDialogBean;
......@@ -62,6 +64,9 @@ public class LoginViewModel extends BaseViewModel<LoginRequest> {
public MutableLiveData<String> openInstall=new MutableLiveData<>("");
/*隐私条款字段*/
public MutableLiveData<String> agreeContent = new MutableLiveData<>(null);
public boolean isAgree = false;
public LoginViewModel(@NonNull Application application, LoginRequest model) {
super(application, model);
}
......@@ -75,7 +80,43 @@ public class LoginViewModel extends BaseViewModel<LoginRequest> {
getuserInfo();
}
}
/**
* 获取协议内容
*
*/
public void getProtocols()
{
model.getProtocols().compose(RxUtils.schedulersTransformer()) //线程调度
// .compose(RxUtils.exceptionTransformer()) // 网络错误的异常转换, 这里可以换成自己的ExceptionHandle
.doOnSubscribe(LoginViewModel.this)
.doOnSubscribe(new Consumer<Disposable>() {
@Override
public void accept(Disposable disposable) throws Exception {
}
}).subscribe(new ApiDisposableObserver<List<String>>() {
@Override
public void onSuccess(List<String> resultBean) {
StaticData.Protocols=resultBean;
if (StaticData.Protocols.size()>=3)
{
Bundle bundle= new Bundle();
bundle.putString("title", "隐私条款");
bundle.putString("URL", RetrofitClient.baseH5Url + StaticData.Protocols.get(2));
Log.v("路径路径啊",bundle.toString());
CharSequence htmlText = Html.fromHtml(bundle.toString());
/*为隐私条款赋值*/
agreeContent.setValue(htmlText.toString());
}
}
@Override
public void onError(String Error) {
}
});
}
//跳转开店页面
public BindingCommand goMerchantEnter = new BindingCommand(new BindingAction() {
@Override
......
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