修复高版本权限问题。
This commit is contained in:
parent
91eabce8cb
commit
3c913282c0
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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("")
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据集消息
|
||||
*/
|
||||
|
|
|
@ -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>
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue
Block a user