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

基础搭建

功能开发
1:bug 修复 企业端安装包更新弹窗完善
parent 9f0295ac
...@@ -131,14 +131,14 @@ class LoginActivity() : BaseActivity<ActivityLoginBinding, LoginViewModel>() { ...@@ -131,14 +131,14 @@ class LoginActivity() : BaseActivity<ActivityLoginBinding, LoginViewModel>() {
} else { } else {
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
// if (!Environment.isExternalStorageManager()) { if (!Environment.isExternalStorageManager()) {
// checkPermission() checkPermission()
// }else{ }else{
//// 检查版本 // 检查版本
// viewModel.checkVersion(binding.root.rootView) viewModel.checkVersion(binding.root.rootView)
// } }
// } }
} }
//安装新版本 //安装新版本
......
...@@ -57,25 +57,15 @@ public class HomeFragment extends BaseFragment<FragmentHomeBinding, HomeViewMode ...@@ -57,25 +57,15 @@ public class HomeFragment extends BaseFragment<FragmentHomeBinding, HomeViewMode
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
// 检查版本 // 检查用户是否已经确认更新,如果没有确认,则执行版本检查
viewModel.rxPermissions = new RxPermissions(this); if (!viewModel.getIsUserConfirmedUpdate().getValue()) {
/*检查版本*/
viewModel.checkVersion(binding.getRoot().getRootView());
// 安装新版本
viewModel.openInstall.observe(this, new Observer<String>() {
@Override
public void onChanged(String s) {
if ("1".equals(s)) {
Uri packageURI = Uri.parse("package:" +getContext().getPackageName());
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI);
startActivityForResult(intent, 1002);
}
}
});
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) { if (!Environment.isExternalStorageManager()) {
checkPermission(); checkPermission();
} else {
// 检查版本
viewModel.checkVersion(binding.getRoot().getRootView());
}
} }
} }
} }
...@@ -105,8 +95,24 @@ public class HomeFragment extends BaseFragment<FragmentHomeBinding, HomeViewMode ...@@ -105,8 +95,24 @@ public class HomeFragment extends BaseFragment<FragmentHomeBinding, HomeViewMode
@Override @Override
public void initData() { public void initData() {
super.initData(); super.initData();
// 检查版本
viewModel.rxPermissions = new RxPermissions(this);
// 安装新版本
viewModel.openInstall.observe(this, new Observer<String>() {
@Override
public void onChanged(String s) {
if ("1".equals(s)) {
Uri packageURI = Uri.parse("package:" +getContext().getPackageName());
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI);
startActivityForResult(intent, 1002);
}
}
});
/*调用首页的查看有没有未读消息的接口*/ /*调用首页的查看有没有未读消息的接口*/
viewModel.getMessageList(); viewModel.getMessageList();
if (StaticData.messageData == 0) { if (StaticData.messageData == 0) {
/*已读隐藏*/ /*已读隐藏*/
binding.ivBarMsgYidu.setVisibility(View.GONE); binding.ivBarMsgYidu.setVisibility(View.GONE);
......
...@@ -18,6 +18,7 @@ import android.view.View; ...@@ -18,6 +18,7 @@ import android.view.View;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.content.FileProvider; import androidx.core.content.FileProvider;
import androidx.databinding.ObservableField; import androidx.databinding.ObservableField;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
import com.tbruyelle.rxpermissions3.RxPermissions; import com.tbruyelle.rxpermissions3.RxPermissions;
...@@ -71,6 +72,9 @@ import me.goldze.mvvmhabit.utils.ToastUtils; ...@@ -71,6 +72,9 @@ import me.goldze.mvvmhabit.utils.ToastUtils;
import okhttp3.ResponseBody; import okhttp3.ResponseBody;
public class HomeViewModel extends ListBaseViewModel<HomeRequest> { public class HomeViewModel extends ListBaseViewModel<HomeRequest> {
// 标志位:是否点击确认下载最新安装包
private MutableLiveData<Boolean> isUserConfirmedUpdate = new MutableLiveData<>(false);
RxPermissions rxPermissions; RxPermissions rxPermissions;
public MutableLiveData<String> openInstall = new MutableLiveData<>(""); public MutableLiveData<String> openInstall = new MutableLiveData<>("");
/*首页-资讯信息列表*/ /*首页-资讯信息列表*/
...@@ -101,6 +105,13 @@ public class HomeViewModel extends ListBaseViewModel<HomeRequest> { ...@@ -101,6 +105,13 @@ public class HomeViewModel extends ListBaseViewModel<HomeRequest> {
/*招聘列表暂无数据状态位*/ /*招聘列表暂无数据状态位*/
public MutableLiveData<Integer> loadMoreStatica = new MutableLiveData<>(0); public MutableLiveData<Integer> loadMoreStatica = new MutableLiveData<>(0);
public LiveData<Boolean> getIsUserConfirmedUpdate() {
return isUserConfirmedUpdate;
}
public void setUserConfirmedUpdate(boolean confirmed) {
isUserConfirmedUpdate.setValue(confirmed);
}
public HomeViewModel(@NonNull Application application) { public HomeViewModel(@NonNull Application application) {
super(application); super(application);
} }
...@@ -141,6 +152,7 @@ public class HomeViewModel extends ListBaseViewModel<HomeRequest> { ...@@ -141,6 +152,7 @@ public class HomeViewModel extends ListBaseViewModel<HomeRequest> {
@Override @Override
public void acceptBack() { public void acceptBack() {
setUserConfirmedUpdate(true);
rxPermissions rxPermissions
.request(Manifest.permission.WRITE_EXTERNAL_STORAGE) .request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.subscribe(granted -> { .subscribe(granted -> {
...@@ -176,6 +188,7 @@ public class HomeViewModel extends ListBaseViewModel<HomeRequest> { ...@@ -176,6 +188,7 @@ public class HomeViewModel extends ListBaseViewModel<HomeRequest> {
@Override @Override
public void acceptBack() { public void acceptBack() {
setUserConfirmedUpdate(true);
rxPermissions rxPermissions
.request(Manifest.permission.WRITE_EXTERNAL_STORAGE) .request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.subscribe(granted -> { .subscribe(granted -> {
......
...@@ -2,7 +2,9 @@ package com.xx.hbhbcompany.ui.login ...@@ -2,7 +2,9 @@ package com.xx.hbhbcompany.ui.login
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.Environment
import android.provider.Settings import android.provider.Settings
import android.text.SpannableStringBuilder import android.text.SpannableStringBuilder
import android.text.Spanned import android.text.Spanned
...@@ -10,6 +12,7 @@ import android.text.TextPaint ...@@ -10,6 +12,7 @@ import android.text.TextPaint
import android.text.method.LinkMovementMethod import android.text.method.LinkMovementMethod
import android.text.style.ClickableSpan import android.text.style.ClickableSpan
import android.view.View import android.view.View
import androidx.core.content.ContextCompat.startActivity
import com.xx.hbhbcompany.R import com.xx.hbhbcompany.R
import com.xx.hbhbcompany.BR import com.xx.hbhbcompany.BR
import com.xx.hbhbcompany.data.http.requst.LoginRequest import com.xx.hbhbcompany.data.http.requst.LoginRequest
...@@ -41,6 +44,47 @@ class LoginActivity() : BaseActivity<ActivityLoginBinding, LoginViewModel>() { ...@@ -41,6 +44,47 @@ class LoginActivity() : BaseActivity<ActivityLoginBinding, LoginViewModel>() {
} }
var agreementContext: String = "" var agreementContext: String = ""
override fun onResume() {
super.onResume()
// 检查用户是否已经确认更新,如果没有确认,则执行版本检查
if (viewModel.getIsUserConfirmedUpdate().getValue() != true) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) {
checkPermission()
} else {
// 检查版本
viewModel.checkVersion(binding.root.rootView)
}
}
}
}
private fun checkPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) {
// 弹出权限请求对话框
showCommTextDialog(RefuseDialogBean(
"申请的是授予管理所有文件的权限,用于更新最新安装包" + ",是否同意",
"同意",
"拒绝"
),
object : CommTextDialog.onAcceptCallBack {
override fun acceptBack() {
val intent =
Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
intent.data = Uri.parse("package:" + getPackageName())
startActivityForResult(intent, 1024)
}
override fun refuseBack() {
checkPermission() // 继续检查权限并请求
}
})
}
}
}
override fun initData() { override fun initData() {
// 检查版本 // 检查版本
viewModel.rxPermissions = RxPermissions(this) viewModel.rxPermissions = RxPermissions(this)
...@@ -75,14 +119,20 @@ class LoginActivity() : BaseActivity<ActivityLoginBinding, LoginViewModel>() { ...@@ -75,14 +119,20 @@ class LoginActivity() : BaseActivity<ActivityLoginBinding, LoginViewModel>() {
val editor = preferences.edit() val editor = preferences.edit()
editor.putBoolean("is_agree_flag", false) editor.putBoolean("is_agree_flag", false)
editor.apply() editor.apply()
viewModel.checkVersion(binding.root.rootView)
} }
}) })
} }
} }
}else{ }else{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) {
checkPermission()
}else{
// 检查版本
viewModel.checkVersion(binding.root.rootView) viewModel.checkVersion(binding.root.rootView)
} }
}
}
/*强制更新标识位变更--重置用户登录*/ /*强制更新标识位变更--重置用户登录*/
StaticData.updateLogin = 1 StaticData.updateLogin = 1
// 安装新版本 // 安装新版本
......
...@@ -22,6 +22,7 @@ import android.widget.Toast; ...@@ -22,6 +22,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.content.FileProvider; import androidx.core.content.FileProvider;
import androidx.databinding.ObservableField; import androidx.databinding.ObservableField;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
import com.tbruyelle.rxpermissions3.RxPermissions; import com.tbruyelle.rxpermissions3.RxPermissions;
...@@ -58,6 +59,8 @@ import okhttp3.ResponseBody; ...@@ -58,6 +59,8 @@ import okhttp3.ResponseBody;
public class LoginViewModel extends BaseViewModel<LoginRequest> { public class LoginViewModel extends BaseViewModel<LoginRequest> {
// 标志位:是否点击确认下载最新安装包
private MutableLiveData<Boolean> isUserConfirmedUpdate = new MutableLiveData<>(false);
/*隐私条款字段*/ /*隐私条款字段*/
public MutableLiveData<String> agreeContent = new MutableLiveData<>(null); public MutableLiveData<String> agreeContent = new MutableLiveData<>(null);
/*权限*/ /*权限*/
...@@ -73,6 +76,13 @@ public class LoginViewModel extends BaseViewModel<LoginRequest> { ...@@ -73,6 +76,13 @@ public class LoginViewModel extends BaseViewModel<LoginRequest> {
public boolean isAgree = false; public boolean isAgree = false;
public LiveData<Boolean> getIsUserConfirmedUpdate() {
return isUserConfirmedUpdate;
}
public void setUserConfirmedUpdate(boolean confirmed) {
isUserConfirmedUpdate.setValue(confirmed);
}
public LoginViewModel(@NonNull Application application, LoginRequest model) { public LoginViewModel(@NonNull Application application, LoginRequest model) {
super(application, model); super(application, model);
} }
...@@ -108,6 +118,8 @@ public class LoginViewModel extends BaseViewModel<LoginRequest> { ...@@ -108,6 +118,8 @@ public class LoginViewModel extends BaseViewModel<LoginRequest> {
@Override @Override
public void acceptBack() { public void acceptBack() {
setUserConfirmedUpdate(true);
/*强制更新标识位变更--禁止用户登录*/ /*强制更新标识位变更--禁止用户登录*/
StaticData.updateLogin = 0; StaticData.updateLogin = 0;
rxPermissions rxPermissions
...@@ -136,6 +148,8 @@ public class LoginViewModel extends BaseViewModel<LoginRequest> { ...@@ -136,6 +148,8 @@ public class LoginViewModel extends BaseViewModel<LoginRequest> {
@Override @Override
public void acceptBack() { public void acceptBack() {
setUserConfirmedUpdate(true);
/*强制更新标识位变更--禁止用户登录*/ /*强制更新标识位变更--禁止用户登录*/
StaticData.updateLogin = 0; StaticData.updateLogin = 0;
rxPermissions rxPermissions
......
...@@ -54,9 +54,10 @@ public class MineFragment extends BaseFragment<FragmentMineBinding, MineViewMode ...@@ -54,9 +54,10 @@ public class MineFragment extends BaseFragment<FragmentMineBinding, MineViewMode
@Override @Override
public void initData() { public void initData() {
// super.initData(); // super.initData();
viewModel.refreshNickName();
/*设置当前版本号*/ /*设置当前版本号*/
viewModel.versionName.set(StaticData.appVersionNumber); viewModel.versionName.set(StaticData.appVersionNumber);
// 检查版本
viewModel.rxPermissions = new RxPermissions(this); viewModel.rxPermissions = new RxPermissions(this);
/*控制台拿到了图片路径了*/ /*控制台拿到了图片路径了*/
/*如果图片有刷新就会进行更新*/ /*如果图片有刷新就会进行更新*/
...@@ -104,26 +105,17 @@ public class MineFragment extends BaseFragment<FragmentMineBinding, MineViewMode ...@@ -104,26 +105,17 @@ public class MineFragment extends BaseFragment<FragmentMineBinding, MineViewMode
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
viewModel.refreshNickName();
// 检查版本 // 检查用户是否已经确认更新,如果没有确认,则执行版本检查
viewModel.rxPermissions = new RxPermissions(this); if (!viewModel.getIsUserConfirmedUpdate().getValue()) {
/*检查版本*/
viewModel.checkVersion(binding.getRoot().getRootView());
// 安装新版本
viewModel.openInstall.observe(this, new Observer<String>() {
@Override
public void onChanged(String s) {
if ("1".equals(s)) {
Uri packageURI = Uri.parse("package:" +getContext().getPackageName());
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI);
startActivityForResult(intent, 1002);
}
}
});
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) { if (!Environment.isExternalStorageManager()) {
checkPermission(); checkPermission();
} else {
// 检查版本
viewModel.checkVersion(binding.getRoot().getRootView());
}
} }
} }
} }
......
...@@ -51,6 +51,8 @@ import okhttp3.ResponseBody; ...@@ -51,6 +51,8 @@ import okhttp3.ResponseBody;
public class MineViewModel extends BaseViewModel<MineRequest> { public class MineViewModel extends BaseViewModel<MineRequest> {
// 标志位:是否点击确认下载最新安装包
private MutableLiveData<Boolean> isUserConfirmedUpdate = new MutableLiveData<>(false);
RxPermissions rxPermissions; RxPermissions rxPermissions;
public MutableLiveData<String> openInstall = new MutableLiveData<>(""); public MutableLiveData<String> openInstall = new MutableLiveData<>("");
//头像的绑定 //头像的绑定
...@@ -70,6 +72,13 @@ public class MineViewModel extends BaseViewModel<MineRequest> { ...@@ -70,6 +72,13 @@ public class MineViewModel extends BaseViewModel<MineRequest> {
} }
public LiveData<Boolean> getIsUserConfirmedUpdate() {
return isUserConfirmedUpdate;
}
public void setUserConfirmedUpdate(boolean confirmed) {
isUserConfirmedUpdate.setValue(confirmed);
}
public MineViewModel(@NonNull Application application, MineRequest model) { public MineViewModel(@NonNull Application application, MineRequest model) {
super(application, model); super(application, model);
} }
...@@ -194,6 +203,7 @@ public class MineViewModel extends BaseViewModel<MineRequest> { ...@@ -194,6 +203,7 @@ public class MineViewModel extends BaseViewModel<MineRequest> {
@Override @Override
public void acceptBack() { public void acceptBack() {
setUserConfirmedUpdate(true);
rxPermissions rxPermissions
.request(Manifest.permission.WRITE_EXTERNAL_STORAGE) .request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.subscribe(granted -> { .subscribe(granted -> {
...@@ -229,6 +239,7 @@ public class MineViewModel extends BaseViewModel<MineRequest> { ...@@ -229,6 +239,7 @@ public class MineViewModel extends BaseViewModel<MineRequest> {
@Override @Override
public void acceptBack() { public void acceptBack() {
setUserConfirmedUpdate(true);
rxPermissions rxPermissions
.request(Manifest.permission.WRITE_EXTERNAL_STORAGE) .request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.subscribe(granted -> { .subscribe(granted -> {
......
...@@ -48,6 +48,20 @@ public class WorkFragment extends BaseFragment<FragmentWorkBinding, WorkViewMode ...@@ -48,6 +48,20 @@ public class WorkFragment extends BaseFragment<FragmentWorkBinding, WorkViewMode
public void initData() { public void initData() {
super.initData(); super.initData();
// 检查版本
viewModel.rxPermissions = new RxPermissions(this);
// 安装新版本
viewModel.openInstall.observe(this, new Observer<String>() {
@Override
public void onChanged(String s) {
if ("1".equals(s)) {
Uri packageURI = Uri.parse("package:" +getContext().getPackageName());
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI);
startActivityForResult(intent, 1002);
}
}
});
//获取适配器上下文 //获取适配器上下文
WorkIconsAdapter workIconsAdapter = new WorkIconsAdapter(getContext()); WorkIconsAdapter workIconsAdapter = new WorkIconsAdapter(getContext());
...@@ -105,29 +119,20 @@ public class WorkFragment extends BaseFragment<FragmentWorkBinding, WorkViewMode ...@@ -105,29 +119,20 @@ public class WorkFragment extends BaseFragment<FragmentWorkBinding, WorkViewMode
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
// 调取工作台三个统计数接口
viewModel.getWorkNumber();
// 检查版本
viewModel.rxPermissions = new RxPermissions(this);
// 检查版本
viewModel.checkVersion(binding.getRoot().getRootView());
// 安装新版本
viewModel.openInstall.observe(this, new Observer<String>() {
@Override
public void onChanged(String s) {
if ("1".equals(s)) {
Uri packageURI = Uri.parse("package:" +getContext().getPackageName());
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI);
startActivityForResult(intent, 1002);
}
}
});
// 检查用户是否已经确认更新,如果没有确认,则执行版本检查
if (!viewModel.getIsUserConfirmedUpdate().getValue()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) { if (!Environment.isExternalStorageManager()) {
checkPermission(); checkPermission();
} else {
// 检查版本
viewModel.checkVersion(binding.getRoot().getRootView());
}
} }
} }
// 调取工作台三个统计数接口
viewModel.getWorkNumber();
} }
......
...@@ -13,6 +13,7 @@ import android.view.View; ...@@ -13,6 +13,7 @@ import android.view.View;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.content.FileProvider; import androidx.core.content.FileProvider;
import androidx.databinding.ObservableField; import androidx.databinding.ObservableField;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
import com.tbruyelle.rxpermissions3.RxPermissions; import com.tbruyelle.rxpermissions3.RxPermissions;
...@@ -52,6 +53,9 @@ import me.goldze.mvvmhabit.utils.ToastUtils; ...@@ -52,6 +53,9 @@ import me.goldze.mvvmhabit.utils.ToastUtils;
import okhttp3.ResponseBody; import okhttp3.ResponseBody;
public class WorkViewModel extends BaseViewModel<WorkRequest> { public class WorkViewModel extends BaseViewModel<WorkRequest> {
// 标志位:是否点击确认下载最新安装包
private MutableLiveData<Boolean> isUserConfirmedUpdate = new MutableLiveData<>(false);
RxPermissions rxPermissions; RxPermissions rxPermissions;
public MutableLiveData<String> openInstall = new MutableLiveData<>(""); public MutableLiveData<String> openInstall = new MutableLiveData<>("");
public String merchantStatus = "0"; public String merchantStatus = "0";
...@@ -59,6 +63,14 @@ public class WorkViewModel extends BaseViewModel<WorkRequest> { ...@@ -59,6 +63,14 @@ public class WorkViewModel extends BaseViewModel<WorkRequest> {
public MutableLiveData<List<MerchantBean>> mAuditList = new MutableLiveData<>(new ArrayList<>()); public MutableLiveData<List<MerchantBean>> mAuditList = new MutableLiveData<>(new ArrayList<>());
/*四个按钮*/ /*四个按钮*/
public MutableLiveData<List<WorkIconBean>> workIconsList = new MutableLiveData<>(new ArrayList<>()); public MutableLiveData<List<WorkIconBean>> workIconsList = new MutableLiveData<>(new ArrayList<>());
public LiveData<Boolean> getIsUserConfirmedUpdate() {
return isUserConfirmedUpdate;
}
public void setUserConfirmedUpdate(boolean confirmed) {
isUserConfirmedUpdate.setValue(confirmed);
}
/** /**
* 获取最新APK版本号 * 获取最新APK版本号
* *
...@@ -87,6 +99,7 @@ public class WorkViewModel extends BaseViewModel<WorkRequest> { ...@@ -87,6 +99,7 @@ public class WorkViewModel extends BaseViewModel<WorkRequest> {
@Override @Override
public void acceptBack() { public void acceptBack() {
setUserConfirmedUpdate(true);
rxPermissions rxPermissions
.request(Manifest.permission.WRITE_EXTERNAL_STORAGE) .request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.subscribe(granted -> { .subscribe(granted -> {
...@@ -122,6 +135,7 @@ public class WorkViewModel extends BaseViewModel<WorkRequest> { ...@@ -122,6 +135,7 @@ public class WorkViewModel extends BaseViewModel<WorkRequest> {
@Override @Override
public void acceptBack() { public void acceptBack() {
setUserConfirmedUpdate(true);
rxPermissions rxPermissions
.request(Manifest.permission.WRITE_EXTERNAL_STORAGE) .request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.subscribe(granted -> { .subscribe(granted -> {
......
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