Commit b8dcd229 authored by 杨秀秀's avatar 杨秀秀

基础搭建

功能开发
1:电表功能修改
parent c193cfd5
This diff is collapsed.
......@@ -32,13 +32,14 @@ android {
//这里修改apk文件名
outputFileName = "merchant_v${defaultConfig.versionName}_${buildType.name}.apk"
}
}
defaultConfig {
applicationId "com.xx.merchanthbh"
minSdk 23
targetSdk 31
versionCode 5
versionName "1.3.0"
versionCode 7
versionName "1.3.2"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
signingConfig signingConfigs.reseale
......@@ -101,6 +102,7 @@ dependencies {
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1'
implementation project(path: ':dsbridge')
implementation files('libs/qmf-ppplugin-android-3.1.7-ali.aar')
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:2.2.2'
......
......@@ -578,6 +578,14 @@ interface ApiService {
open fun getElectricInfo(@Body requestBody: RequestBody): Observable<BaseResponse<ElectricInfoBean>>
/**
* 根据电表号获取当前商户的电表数据
*/
@Headers("Content-type:application/json")
@GET("app/merchant-electricity/electricity-meter-detail-new")
open fun getElectricInfoByNumber(@Query("meterNumber") requestBody: String): Observable<BaseResponse<ElectricInfoBean>>
/**
* 请求支付信息
*/
......
......@@ -29,6 +29,14 @@ class ElectricPayRequest : BaseRespons() {
return apiService.getElectricInfo(ApiParams<EletricListBean>().setParams(EletricListBean(accountId,null,itemId,null,itemType,null,null)))
}
/**
* 根据电表号获取电表详情
*/
fun getElectricInfoByNumber(number:String):Observable<BaseResponse<ElectricInfoBean>>
{
return apiService.getElectricInfoByNumber(number)
}
/**
* 请求支付信息
......
package com.xx.merchanthbh.data.local
import android.text.TextUtils
import com.google.gson.Gson
import com.xx.merchanthbh.data.http.respons.MerchantBean
import com.xx.merchanthbh.data.http.respons.UserBean
import com.google.gson.Gson
import me.goldze.mvvmhabit.utils.SPUtils
import me.goldze.mvvmhabit.utils.StringUtils
import java.util.ArrayList
import java.util.Arrays
import java.util.stream.Collectors
object LocalData {
......@@ -41,4 +45,35 @@ object LocalData {
}
/**
* 存储商户信息
*/
@JvmStatic
fun saveElectricList( number :String) {
val list = getElectricList().toMutableList()
for (bean in list)
{
if (bean.equals(number))
{
return
}
}
list.add(number)
SPUtils.getInstance().put("ElectricList",StringUtils.join(list,","))
}
/**
* 获取商户信息
*/
@JvmStatic
fun getElectricList() : List<String> {
var merchantStr= SPUtils.getInstance().getString("ElectricList")
if(StringUtils.isEmpty(merchantStr))
{
return listOf()
}
return merchantStr.split(",")
}
}
\ No newline at end of file
......@@ -150,4 +150,8 @@ object StaticData {
@JvmField
var ElectricList: ArrayList<EletricListBean> = ArrayList();
//读写权限
@JvmField
var writePre:kotlin.Boolean = true
}
\ No newline at end of file
......@@ -115,19 +115,19 @@ class BillListActivity() : BaseActivity<ActivityBillListBinding, BillListViewMod
dataDialog.show()
}
/*账单电表类别筛选*/
binding.llAblElectric.setOnClickListener {
/* binding.llAblElectric.setOnClickListener {
var dataDialog: SinglePickerDialog = SinglePickerDialog(this, StaticData.ElectricList)
dataDialog.setDialogClickListener { code, data ->
data as EletricListBean
if (data.itemId < 0) {
viewModel.itemId = null
viewModel.itemName = null
/*重置状态回显*/
*//*重置状态回显*//*
viewModel.selectElectric.value = "全部"
} else {
viewModel.itemId = data.itemId
viewModel.itemName = data.itemName
/*电表赋值*/
*//*电表赋值*//*
viewModel.selectElectric.value = viewModel.itemName.toString()
}
......@@ -136,7 +136,7 @@ class BillListActivity() : BaseActivity<ActivityBillListBinding, BillListViewMod
viewModel.getBillList()
}
dataDialog.show()
}
}*/
}
......
package com.xx.merchanthbh.ui.electric
import android.content.Context
import com.xx.merchanthbh.R
import com.xx.merchanthbh.data.http.respons.EletricListBean
import com.xx.merchanthbh.databinding.ItemElectricListBinding
import com.xx.merchanthbh.databinding.ItemElectricNumberBinding
import com.xx.xxviewlibrary.base.xxBaseRecyclerViewAdapter
class ElectricNumberListAdapter (context: Context,list:List<String>): xxBaseRecyclerViewAdapter<ItemElectricNumberBinding, String>(context){
init {
mList=list
}
override fun initLayout(): Int {
return R.layout.item_electric_number
}
override fun covert(dataBind: ItemElectricNumberBinding?, data: String?, position: Int) {
dataBind?.data=data
}
}
\ No newline at end of file
......@@ -14,17 +14,21 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners
import com.xx.merchanthbh.BR
import com.xx.merchanthbh.R
import com.xx.merchanthbh.data.http.requst.ElectricPayRequest
import com.xx.merchanthbh.data.local.LocalData
import com.xx.merchanthbh.data.staticdata.StaticData
import com.xx.merchanthbh.databinding.ActivityElectricPayBinding
import io.reactivex.rxjava3.core.Observer
import io.reactivex.rxjava3.disposables.Disposable
import me.goldze.mvvmhabit.base.BaseActivity
import me.goldze.mvvmhabit.utils.StringUtils
import me.goldze.mvvmhabit.utils.ToastUtils
class ElectricPayActivity : BaseActivity<ActivityElectricPayBinding, ElectricPayViewModel>() {
var prices: MutableList<Int> = arrayListOf<Int>(20, 50, 100, 150, 200, 300, 500, 1000)
lateinit var adapter:ElectricNumberListAdapter;
override fun initContentView(savedInstanceState: Bundle?): Int {
return R.layout.activity_electric_pay
}
......@@ -42,21 +46,48 @@ class ElectricPayActivity : BaseActivity<ActivityElectricPayBinding, ElectricPay
override fun initData() {
super.initData()
var history= LocalData.getElectricList()
if (history.size<=0)
{
viewModel.firstNumberList.set(View.GONE)
}else{
viewModel.firstNumberList.set(View.VISIBLE)
adapter= ElectricNumberListAdapter(this,history)
binding.rvSelelctHistory.adapter=adapter
/* adapter.mList=history
adapter.notifyDataSetChanged()*/
adapter.setOnItemClick { position, data ->
if (data!=null)
{
viewModel.electricNumber.set(data)
//to do 搜索
binding.linearLayout3.visibility=View.GONE
}
}
}
//设置电表列表
viewModel.adapter = ElectricListAdapter(this);
// viewModel.adapter = ElectricListAdapter(this);
/*支付传值使用*/
viewModel.parsePrice.set(0)
// 清空选中状态
viewModel.priceAdapter?.select = RecyclerView.NO_POSITION // 或其他表示无效位置的值
viewModel.adapter.setOnItemClick { position, data ->
/* viewModel.adapter.setOnItemClick { position, data ->
viewModel.adapter.select = position
viewModel.getElectricInfo(data)
viewModel.first.set(View.VISIBLE)
viewModel.adapter.notifyDataSetChanged()
}
binding.rvOrderList.adapter = viewModel.adapter
}*/
//设置金额列表
viewModel.priceAdapter = ElectricPriceAdapter(this)
......@@ -152,5 +183,9 @@ class ElectricPayActivity : BaseActivity<ActivityElectricPayBinding, ElectricPay
}
}
}
}
......@@ -55,6 +55,8 @@ public class ElectricPayViewModel extends BaseViewModel<ElectricPayRequest> {
private MutableLiveData<String> storeImageUrl = new MutableLiveData<>("");
public MutableLiveData<String> call = new MutableLiveData<>("");
//商户信息
......@@ -67,9 +69,12 @@ public class ElectricPayViewModel extends BaseViewModel<ElectricPayRequest> {
//电表详情
public ObservableField<ElectricInfoBean> electricInfo = new ObservableField<>();
// 输入电表号
public ObservableField<String> electricNumber = new ObservableField<>("");
//初始化隐藏
public ObservableField<Integer> first = new ObservableField<>(View.GONE);
public ObservableField<Integer> firstNumberList = new ObservableField<>(View.GONE);
//充值金额(做前端回显使用)
public ObservableField<String> price = new ObservableField<>("");
//充值金额(做接口传值使用)
......@@ -87,7 +92,6 @@ public class ElectricPayViewModel extends BaseViewModel<ElectricPayRequest> {
return 0; // 默认值
}
public ElectricListAdapter adapter;
public ElectricPriceAdapter priceAdapter;
......@@ -107,10 +111,13 @@ public class ElectricPayViewModel extends BaseViewModel<ElectricPayRequest> {
@Override
public void onResume() {
super.onResume();
getElectricMsg();
if (adapter.getSelect() >= 0) {
/* if (adapter.getSelect() >= 0) {
getElectricInfo(adapter.mList.get(adapter.getSelect()));
}
}*/
}
/**
......@@ -132,15 +139,15 @@ public class ElectricPayViewModel extends BaseViewModel<ElectricPayRequest> {
//赋值公司名称
companyName.set(resultBean.getCompanyName());
electricMsg.set(resultBean);
if (resultBean.getItemList().size() >= 1) {
adapter.mList = resultBean.getItemList();
adapter.notifyDataSetChanged();
/* if (resultBean.getItemList().size() >= 1) {
*//*adapter.mList = resultBean.getItemList();
adapter.notifyDataSetChanged();*//*
//放入电表列表数据
StaticData.ElectricList.clear();
StaticData.ElectricList.add(new EletricListBean(0, null, -1, "全部", "", null, null));
StaticData.ElectricList.addAll(resultBean.getItemList());
}
}*/
}
......@@ -168,17 +175,54 @@ public class ElectricPayViewModel extends BaseViewModel<ElectricPayRequest> {
@Override
public void onSuccess(ElectricInfoBean resultBean) {
electricInfo.set(resultBean);
firstNumberList.set(View.GONE);
first.set(View.VISIBLE);
}
@Override
public void onError(String Error) {
first.set(View.GONE);
}
});
}
/**
* 根据电表号获取电表信息
*/
public void getElectricInfoByNumber(String bean) {
model.getElectricInfoByNumber(bean).compose(RxUtils.schedulersTransformer()) //线程调度
.doOnSubscribe(ElectricPayViewModel.this)
.doOnSubscribe(new Consumer<Disposable>() {
@Override
public void accept(Disposable disposable) throws Exception {
}
}).subscribe(new ApiDisposableObserver<ElectricInfoBean>() {
@Override
public void onSuccess(ElectricInfoBean resultBean) {
electricInfo.set(resultBean);
LocalData.saveElectricList(bean);
firstNumberList.set(View.GONE);
first.set(View.VISIBLE);
}
@Override
public void onError(String Error) {
first.set(View.GONE);
}
});
}
/**
* 支付结果
* @param context
* @param data
*/
public void requestPayMsg(Context context, PayWayData data) {
model.requestPayMsg(electricInfo.get(), userMerchant.getBusinessId(), parsePrice.get(), data.getWay()).compose(RxUtils.schedulersTransformer()) //线程调度
.doOnSubscribe(ElectricPayViewModel.this)
......@@ -233,51 +277,73 @@ public class ElectricPayViewModel extends BaseViewModel<ElectricPayRequest> {
* @param view
*/
public void pay(View view) {
PayWayDialog dialog = new PayWayDialog(AppManager.getAppManager().currentActivity());
dialog.setDialogClickListener(new xxBaseDialog.onDialogClickListener<PayWayData>() {
CommTextDialog noticeDialog=new CommTextDialog(AppManager.getAppManager().currentActivity(), new RefuseDialogBean("请再次确认充值电表号输入无误,如因电表号错误,导致充值出现问题,本公司概不负责。", "确定", "取消", "提示"), new CommTextDialog.onAcceptCallBack() {
@Override
public void dialogClickBack(int code, PayWayData data) {
String p = "";
String name = "微信";
if (data.getWay().equals("UNION_PAY")) {
p = "com.unionpay";
name = "云闪付";
} else if (data.getWay().equals("ALIPAY")) {
p = "com.eg.android.AlipayGphone";
name = "支付宝";
} else {
p = "com.tencent.mm";
}
PackageManager pm = view.getContext().getPackageManager();
try {
PackageInfo info = pm.getPackageInfo(p, 0);
if (info == null) {
ToastUtils.showShort("未安装<" + name + ">app");
return;
public void acceptBack() {
PayWayDialog dialog = new PayWayDialog(AppManager.getAppManager().currentActivity());
dialog.setDialogClickListener(new xxBaseDialog.onDialogClickListener<PayWayData>() {
@Override
public void dialogClickBack(int code, PayWayData data) {
String p = "";
String name = "微信";
if (data.getWay().equals("UNION_PAY")) {
p = "com.unionpay";
name = "云闪付";
} else if (data.getWay().equals("ALIPAY")) {
p = "com.eg.android.AlipayGphone";
name = "支付宝";
} else {
p = "com.tencent.mm";
}
PackageManager pm = view.getContext().getPackageManager();
try {
PackageInfo info = pm.getPackageInfo(p, 0);
if (info == null) {
ToastUtils.showShort("未安装<" + name + ">app");
return;
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
ToastUtils.showShort("未安装<" + name + ">app");
return;
}
requestPayMsg(view.getContext(), data);
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
ToastUtils.showShort("未安装<" + name + ">app");
return;
}
});
dialog.show();
}
@Override
public void refuseBack() {
requestPayMsg(view.getContext(), data);
}
});
dialog.show();
noticeDialog.show();
}
/**
* 拨打电话
* @param view
*/
public void callPhone(View view)
{
showCommTextDialog(new RefuseDialogBean("客服电话:13011367877", "呼叫", "取消", ""), new CommTextDialog.onAcceptCallBack() {
@Override
public void acceptBack() {
call.postValue("1231");
call.postValue("1231");
}
@Override
......@@ -288,7 +354,9 @@ public class ElectricPayViewModel extends BaseViewModel<ElectricPayRequest> {
}
/**
* 跳转充值记录
*/
public View.OnClickListener goBillList = new View.OnClickListener() {
@Override
public void onClick(View view) {
......@@ -297,4 +365,29 @@ public class ElectricPayViewModel extends BaseViewModel<ElectricPayRequest> {
};
/**
* 所有电表信息
* @param view
*/
public void searchElectricMsg(View view) {
getElectricInfoByNumber(electricNumber.get());
}
public void clearElectricMsg(View view) {
electricNumber.set("");
first.set(View.GONE);
if (LocalData.getElectricList().size()<=0)
{
firstNumberList.set(View.GONE);
}else {
firstNumberList.set(View.VISIBLE);
}
}
}
......@@ -16,6 +16,7 @@ import android.util.Log;
import android.view.KeyEvent;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
......@@ -38,6 +39,7 @@ import com.xx.xxviewlibrary.comm.CommTextDialog;
import com.xx.xxviewlibrary.comm.RefuseDialogBean;
import me.goldze.mvvmhabit.base.BaseActivity;
import me.goldze.mvvmhabit.utils.ToastUtils;
public class HomeActivity extends BaseActivity<ActivityHomeBinding, HomeViewModel> {
......@@ -59,13 +61,58 @@ public class HomeActivity extends BaseActivity<ActivityHomeBinding, HomeViewMode
}
@Override
public void onResume() {
super.onResume();
// 手动更新页面UI内容
updateUI();
// 检查版本
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)) {
checkPermission();
}
}
});
}
private void checkPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) {
// 弹出权限请求对话框
showCommTextDialog(new RefuseDialogBean("申请的是授予管理所有文件的权限,用于更新最新安装包,可能会因为无权限导致不能使用完整功能" + ",是否同意", "同意", "拒绝"),
new CommTextDialog.onAcceptCallBack() {
@Override
public void acceptBack() {
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, 1024);
}
@Override
public void refuseBack() {
}
});
}}
}
/*更新页面,注销标志位做判断*/
private void updateUI() {
if (StaticData.logOffData == 1) {
......@@ -85,9 +132,7 @@ public class HomeActivity extends BaseActivity<ActivityHomeBinding, HomeViewMode
if (intent != null) {
String logFlag = intent.getStringExtra("logFlag");
if (logFlag != null) {
Log.v("首页按钮登录","");
}else {
Log.v("直接登录首页","");
// 获取SharedPreferences实例
SharedPreferences sharedPreferences = getSharedPreferences("AppNamePreferences", Context.MODE_PRIVATE);
......@@ -97,15 +142,11 @@ public class HomeActivity extends BaseActivity<ActivityHomeBinding, HomeViewMode
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);
// 获取协议
viewModel.getProtocols();
}else {
Log.v("账号密码为空跳转登录页","");
startActivity(LoginActivity.class);
finish();
}
......@@ -200,4 +241,15 @@ public class HomeActivity extends BaseActivity<ActivityHomeBinding, HomeViewMode
return new HomeViewModel(getApplication(), lm);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==1024){
Uri packageURI = Uri.parse("package:" + getPackageName());
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI);
startActivityForResult(intent, 1002);
}
}
}
\ No newline at end of file
......@@ -57,58 +57,8 @@ public class HomeFragment extends BaseFragment<FragmentHomeBinding, HomeViewMode
return BR.homeViewModel;
}
@Override
public void onResume() {
super.onResume();
// 检查版本
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 (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) {
checkPermission();
}
}
}
private void checkPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) {
// 弹出权限请求对话框
showCommTextDialog(new RefuseDialogBean("申请的是授予管理所有文件的权限,用于更新最新安装包" + ",是否同意", "同意", "拒绝"),
new CommTextDialog.onAcceptCallBack() {
@Override
public void acceptBack() {
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
intent.setData(Uri.parse("package:" + getContext().getPackageName()));
startActivityForResult(intent, 1024);
}
@Override
public void refuseBack() {
checkPermission(); // 继续检查权限并请求
}
});
}}
}
// 重写初始方法调用参数
@Override
public void initData() {
......
......@@ -95,6 +95,7 @@ public class HomeViewModel extends BaseViewModel<HomeRequest> {
public MerchantBean mb = LocalData.getMerchant();
/*安装新版本*/
public MutableLiveData<String> openInstall = new MutableLiveData<>("");
public HomeViewModel(@NonNull Application application) {
super(application);
}
......@@ -123,7 +124,7 @@ public class HomeViewModel extends BaseViewModel<HomeRequest> {
}).subscribe(new ApiDisposablePageObserver<MessageBean>() {
@Override
public void onSuccess(List<MessageBean> resultBean) {
Log.v("有没有未读消息啊啊啊啊", String.valueOf(StaticData.messageData));
}
@Override
......@@ -179,16 +180,7 @@ public class HomeViewModel extends BaseViewModel<HomeRequest> {
.request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.subscribe(granted -> {
if (granted) { // Always true pre-M
/* rxPermissions
.request(Manifest.permission.REQUEST_INSTALL_PACKAGES)
.subscribe(granteds -> {
if (granteds) { // Always true pre-M
} else {
ToastUtils.showShort("请允许安装外部来源应用");
openInstall.postValue("1");
}
});*/
updataApk(view.getContext(), resultBean.getVersionFile(), view.getContext().getFilesDir().getPath() + resultBean.getVersionFile().substring(
resultBean.getVersionFile().lastIndexOf("/")));
......@@ -213,16 +205,7 @@ public class HomeViewModel extends BaseViewModel<HomeRequest> {
.request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.subscribe(granted -> {
if (granted) { // Always true pre-M
/* rxPermissions
.request(Manifest.permission.REQUEST_INSTALL_PACKAGES)
.subscribe(granteds -> {
if (granteds) { // Always true pre-M
} else {
ToastUtils.showShort("请允许安装外部来源应用");
openInstall.postValue("1");
}
});*/
updataApk(view.getContext(), resultBean.getVersionFile(), view.getContext().getFilesDir().getPath() + resultBean.getVersionFile().substring(
resultBean.getVersionFile().lastIndexOf("/")));
} else {
......@@ -280,7 +263,7 @@ public class HomeViewModel extends BaseViewModel<HomeRequest> {
@Override
public void onComplete() {
Log.e("下载", "onComplete");
dismissDialog();
ToastUtils.showShort("下载成功");
installApk(context, name);
......
......@@ -25,6 +25,7 @@ import com.xx.merchanthbh.data.http.respons.ActivityCenterBean;
import com.xx.merchanthbh.data.http.respons.AdvertisingBean;
import com.xx.merchanthbh.data.http.respons.ConsultationInformationBean;
import com.xx.merchanthbh.data.http.respons.ConsultationTitleBean;
import com.xx.merchanthbh.data.staticdata.StaticData;
import com.xx.merchanthbh.databinding.FragmentHuanbohaiBinding;
import com.xx.merchanthbh.fragment.adapter.ActivityCenterListAdapter;
import com.xx.merchanthbh.fragment.adapter.ConsultationInformationAdapter;
......@@ -46,52 +47,7 @@ public class HuanBoHaiFragment extends BaseFragment<FragmentHuanbohaiBinding, Hu
public void onResume() {
super.onResume();
// 检查版本
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 (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) {
checkPermission();
}
}
}
private void checkPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) {
// 弹出权限请求对话框
showCommTextDialog(new RefuseDialogBean("申请的是授予管理所有文件的权限,用于更新最新安装包" + ",是否同意", "同意", "拒绝"),
new CommTextDialog.onAcceptCallBack() {
@Override
public void acceptBack() {
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
intent.setData(Uri.parse("package:" + getContext().getPackageName()));
startActivityForResult(intent, 1024);
}
@Override
public void refuseBack() {
checkPermission(); // 继续检查权限并请求
}
});
}}
}
// 重写初始方法调用参数
@Override
public void initData() {
......
......@@ -15,6 +15,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleOwner;
......@@ -35,7 +36,6 @@ import com.xx.xxviewlibrary.comm.CommTextDialog;
import com.xx.xxviewlibrary.comm.RefuseDialogBean;
import com.xx.xxviewlibrary.utils.CommUtilsKt;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.disposables.Disposable;
import me.goldze.mvvmhabit.base.BaseFragment;
import me.goldze.mvvmhabit.utils.StringUtils;
......@@ -112,50 +112,8 @@ public class MineFragment extends BaseFragment<FragmentMineBinding, MineViewMode
super.onResume();
viewModel.refreshNickName();
// 检查版本
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 (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) {
checkPermission();
}
}
}
private void checkPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) {
// 弹出权限请求对话框
showCommTextDialog(new RefuseDialogBean("申请的是授予管理所有文件的权限,用于更新最新安装包" + ",是否同意", "同意", "拒绝"),
new CommTextDialog.onAcceptCallBack() {
@Override
public void acceptBack() {
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
intent.setData(Uri.parse("package:" + getContext().getPackageName()));
startActivityForResult(intent, 1024);
}
@Override
public void refuseBack() {
checkPermission(); // 继续检查权限并请求
}
});
}}
}
}
\ No newline at end of file
......@@ -48,22 +48,7 @@
android:src="@mipmap/shangpon_icon_jiangxu1"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:id="@+id/ll_abl_electric"
android:layout_centerHorizontal="true"
android:gravity="center_vertical"
>
<TextView
style="@style/xxTextContent"
android:text="@{viewModel.selectElectric}" />
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:src="@mipmap/shangpon_icon_jiangxu1"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
>
<data>
<variable
name="data"
type="String" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_marginTop="10dp"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp"
android:orientation="vertical"
android:gravity="center"
android:id="@+id/ll_iep_bg"
android:padding="3dp"
android:layout_marginBottom="11dp"
android:background="@drawable/bg_side_blue_1_radius_20"
android:layout_height="wrap_content">
<TextView
style="@style/xxTextTitle"
android:id="@+id/tv_iep_price"
android:text="@{data}"
android:textColor="@color/text_foreground"/>
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -34,8 +34,8 @@ android {
applicationId "com.xx.hbhconsumer"
minSdk 23
targetSdk 31
versionCode 3
versionName "1.2.0"
versionCode 4
versionName "1.2.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
signingConfig signingConfigs.release
}
......
......@@ -37,8 +37,8 @@ android {
applicationId "com.xx.hbhbcompany"
minSdk 24
targetSdk 31
versionCode 3
versionName "1.2.0"
versionCode 4
versionName "1.2.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
......
......@@ -73,11 +73,11 @@ public class HomeFragment extends BaseFragment<FragmentHomeBinding, HomeViewMode
}
});
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
/* if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) {
checkPermission();
}
}
}*/
}
private void checkPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
......
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