修复高版本权限问题。

This commit is contained in:
Cold-Mint 2025-02-07 23:47:03 +08:00
parent 91eabce8cb
commit 3c913282c0
Signed by: Cold-Mint
GPG Key ID: C5A9BF8A98E0CE99
9 changed files with 27 additions and 132 deletions

View File

@ -104,8 +104,8 @@ dependencies {
implementation 'me.zhanghai.android.fastscroll:library:1.1.8'
// https://github.com/getActivity/MultiLanguages
implementation 'com.github.getActivity:MultiLanguages:8.0'
//
implementation 'com.guolindev.permissionx:permissionx:1.7.1'
// https://github.com/getActivity/XXPermissions
implementation 'com.github.getActivity:XXPermissions:20.0'
implementation "androidx.room:room-runtime:2.4.0"
//Room

View File

@ -30,21 +30,12 @@
android:name=".FeedbackActivity"
android:exported="false"
tools:ignore="LockedOrientationActivity" />
<activity
android:name=".ChangePasswordActivity"
android:exported="false"
tools:ignore="LockedOrientationActivity" />
<activity
android:name=".NetworkTemplatePackageDetailsActivity"
android:exported="false" />
<activity
android:name=".CustomizeEditTextActivity"
android:exported="false" />
<!-- 模组界面-->
<activity android:name=".fragments.WarehouseFragment" />
<activity
android:name=".SearchActivity"
android:exported="false" />
<provider
android:name="androidx.core.content.FileProvider"

View File

@ -53,7 +53,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
private val headLayout by lazy {
HeadLayoutBinding.inflate(layoutInflater)
}
val startViewModel by lazy {
private val startViewModel by lazy {
ViewModelProvider(this)[StartViewModel::class.java]
}
@ -67,7 +67,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
*/
private fun initNav() {
appBarConfiguration = AppBarConfiguration(
setOf(R.id.community_item, R.id.mod_item, R.id.database_item, R.id.template_item),
setOf(R.id.mod_item, R.id.database_item, R.id.template_item),
viewBinding.drawerlayout
)
val navController = findNavController(R.id.baseFragment)
@ -238,21 +238,11 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
val dataBase = menu.findItem(R.id.database_item)
val template = menu.findItem(R.id.template_item)
val codeTable = menu.findItem(R.id.code_table)
// val mod = menu.findItem(R.id.mod_item)
val community = menu.findItem(R.id.community_item)
// val group = menu.findItem(R.id.user_group)
// group.setOnMenuItemClickListener {
// viewBinding.drawerlayout.closeDrawer((GravityCompat.START))
// val userGroupFragment = UserGroupFragment()
// userGroupFragment.show(supportFragmentManager, "userGroup")
// false
// }
val gitHub = menu.findItem(R.id.github)
gitHub.setOnMenuItemClickListener {
AppOperator.useBrowserAccessWebPage(this, "https://github.com/Cold-Mint/RustAssistant")
false
}
// val help = menu.findItem(R.id.help)
//管理可见性
dataBase.isVisible = isActive
template.isVisible = isActive
@ -345,9 +335,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
}
false
}*/
community.setOnMenuItemClickListener {
false
}
menu.findItem(R.id.startGame).setOnMenuItemClickListener {
val packName = AppSettings.getValue(
AppSettings.Setting.GamePackage,
@ -589,6 +576,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
@Deprecated("Deprecated in Java")
override fun onBackPressed() {
super.onBackPressed()
val navController = findNavController(R.id.baseFragment)
//判断是否在第一个导航 社区或者仓库
if (navController.currentDestination?.id == navController.graph.startDestinationId) {
@ -615,17 +603,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
* 观察启动视图
*/
private fun observeStartViewModel() {
startViewModel.userLiveData.observe(this) {
headLayout.nameView.text = it.data.userName
headLayout.emailView.text = it.data.email
val headIcon = it.data.headIcon
if (headIcon != null) {
Glide.with(this).load(ServerConfiguration.getRealLink(headIcon))
.apply(GlobalMethod.getRequestOptions(true, !it.data.activation))
.into(headLayout.imageView)
}
}
startViewModel.dataSetMsgLiveData.observe(this) {
if (it.isNotBlank()) {
Snackbar.make(viewBinding.root, it, Snackbar.LENGTH_SHORT).show()
@ -657,7 +634,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
AppSettings.Setting.DynamicColor,
DynamicColors.isDynamicColorAvailable()
)
// useToolbarSetSupportActionBar()
initNav()
observeStartViewModel()
//偏移fab

View File

@ -2,16 +2,19 @@ package com.coldmint.rust.pro.fragments
import android.Manifest
import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.view.LayoutInflater
import androidx.annotation.RequiresApi
import com.coldmint.rust.pro.CreationWizardActivity
import com.coldmint.rust.pro.MainActivity
import com.coldmint.rust.pro.R
import com.coldmint.rust.pro.adapters.WarehouseAdapter
import com.coldmint.rust.pro.base.BaseFragment
import com.coldmint.rust.pro.databinding.FragmentWarehouseBinding
import com.coldmint.rust.pro.tool.GlobalMethod
import com.google.android.material.tabs.TabLayoutMediator
import com.permissionx.guolindev.PermissionX
import com.hjq.permissions.OnPermissionCallback
import com.hjq.permissions.XXPermissions
/**
@ -19,20 +22,12 @@ import com.permissionx.guolindev.PermissionX
* @date 2022/1/5 10:18
*/
class WarehouseFragment : BaseFragment<FragmentWarehouseBinding>() {
@RequiresApi(Build.VERSION_CODES.R)
private fun loadTab() {
// 在需要申请权限的地方调用如下方法
PermissionX.init(this)
.permissions(Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
.onExplainRequestReason { scope, deniedList ->
scope.showRequestReasonDialog(deniedList, "核心基础是基于这些权限", "授权", "取消")
}
.onForwardToSettings { scope, deniedList ->
scope.showForwardToSettingsDialog(deniedList, "您需要手动允许设置中的必要权限", "授权", "取消")
}.request { allGranted, _, _ ->
if (allGranted) {
}
}
GlobalMethod.requestStoragePermissions(requireActivity()) {
}
if (isAdded) {
TabLayoutMediator(viewBinding.tabLayout, viewBinding.pager) { tab, position ->
when (position) {

View File

@ -31,7 +31,8 @@ import com.flask.colorpicker.ColorPickerView
import com.flask.colorpicker.builder.ColorPickerDialogBuilder
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.snackbar.Snackbar
import com.permissionx.guolindev.PermissionX
import com.hjq.permissions.OnPermissionCallback
import com.hjq.permissions.XXPermissions
import jp.wasabeef.glide.transformations.BitmapTransformation
import jp.wasabeef.glide.transformations.CropCircleTransformation
import jp.wasabeef.glide.transformations.GrayscaleTransformation
@ -285,26 +286,11 @@ object GlobalMethod {
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
}
PermissionX.init(activity).permissions(
XXPermissions.with(activity).permission(
list
).onForwardToSettings { scope, deniedList ->
scope.showForwardToSettingsDialog(
deniedList,
activity.getString(R.string.dialog_title),
activity.getString(R.string.dialog_confirm)
)
).request { _, allGranted ->
requestCompleted.invoke(allGranted)
}
.onExplainRequestReason { scope, deniedList ->
scope.showRequestReasonDialog(
deniedList,
activity.getString(R.string.dialog_title),
activity.getString(R.string.dialog_confirm),
activity.getString(R.string.dialog_cancel)
)
}
.request { allGranted, grantedList, deniedList ->
requestCompleted.invoke(allGranted)
}
}

View File

@ -44,20 +44,6 @@ class StartViewModel(application: Application) : BaseAndroidViewModel(applicatio
MutableLiveData(false)
}
/**
* 用户数据的LiveData
*/
val userLiveData by lazy {
MutableLiveData<ActivationInfo>()
}
/**
* 是否需要登录的LiveData
*/
val needLoginLiveData by lazy {
MutableLiveData<Boolean>(false)
}
/**
* 表示此应用是否已激活
*/
@ -66,13 +52,6 @@ class StartViewModel(application: Application) : BaseAndroidViewModel(applicatio
}
/**
* 用户信息验证错误LiveData
*/
val verifyErrorMsgLiveData by lazy {
MutableLiveData("")
}
/**
* 数据集消息
*/

View File

@ -1,13 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="207.22656dp"
android:height="200dp"
android:viewportWidth="1061"
android:viewportHeight="1024"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="#FF000000"
android:pathData="M712.81,420.37l-54.83,0c0,70.66 -57.28,127.94 -127.93,127.94s-127.95,-57.28 -127.95,-127.94l-54.84,0c0,100.94 81.84,182.77 182.78,182.77S712.81,521.31 712.81,420.37z"/>
<path
android:fillColor="#FF000000"
android:pathData="M1060.08,610.66c0,-92.76 -51.85,-173.45 -128.27,-215.09C928.28,176.54 749.91,0 530.04,0c-219.89,0 -398.29,176.58 -401.77,395.65C51.84,437.3 0,517.95 0,610.66c0,113.22 77.38,208.26 182.39,236.42L127.45,1023.52l55.32,0 18.28,-54.83 49.46,-164.87c-1.29,0.02 -2.48,0.38 -3.77,0.38 -105.99,0 -191.91,-85.92 -191.91,-191.91 0,-62.97 30.74,-118.35 77.58,-153.34 20.78,146.46 120.31,267.26 254.42,318.46l-59.17,191.29 0.03,0 -16.99,54.83 54.83,0 18.28,-54.83 78.61,-226.02c-159.41,-31.47 -279.66,-171.93 -279.66,-340.57 0,-191.79 155.48,-347.26 347.27,-347.26s347.26,155.47 347.26,347.26c0,168.64 -120.24,309.1 -279.65,340.57l78.61,226.02 18.27,54.83 54.83,0L732.23,968.69l0.17,0 -59.19,-191.3c134.14,-51.2 233.7,-172.03 254.45,-318.53 46.86,34.99 77.62,90.41 77.62,153.42 0,105.99 -85.84,191.91 -191.74,191.91 -1.3,0 -2.5,-0.36 -3.8,-0.38l49.42,164.88 -0.14,0 18.27,54.83 55.39,0 -54.88,-176.43C982.74,818.94 1060.08,723.9 1060.08,610.66z"/>
</vector>

View File

@ -7,33 +7,19 @@
android:orientation="vertical">
<ImageView
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginStart="16dp"
android:layout_marginTop="32dp"
android:id="@+id/imageView"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_marginHorizontal="16dp"
android:src="@drawable/head_icon"
android:focusable="true" />
android:layout_marginBottom="16dp"
android:src="@mipmap/ic_launcher" />
<TextView
android:id="@+id/nameView"
style="@style/TextAppearance.Material3.TitleMedium"
android:layout_marginStart="16dp"
android:text="@string/app_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="16dp"
android:text="@string/click_profile_picture_login"/>
<TextView
android:id="@+id/emailView"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="8dp"
android:text="" />
android:layout_height="wrap_content"/>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"

View File

@ -9,11 +9,6 @@
<group android:checkableBehavior="single">
<item
android:id="@+id/community_item"
android:icon="@drawable/community"
android:title="@string/community" />
<item
android:id="@+id/mod_item"
android:icon="@drawable/mod"