build: upgrade XXPermissions to 28.3

XXPermissions 28.x replaces string-based permission names with
IPermission objects and replaces the callback interface. Migrate the
notification permission check in MainActivity to the new API.

On Android 8-12 the check now reflects whether notifications are
actually enabled: the library maps POST_NOTIFICATIONS to the
notification service permission on releases before Android 13.
This commit is contained in:
Bambooin 2026-10-28 15:46:27 +08:00
parent f5fc1c3794
commit 0f7bc782c2
2 changed files with 5 additions and 4 deletions

View File

@ -27,8 +27,8 @@ import androidx.core.view.updateLayoutParams
import androidx.navigation.NavController
import androidx.navigation.NavDestination.Companion.hasRoute
import androidx.navigation.fragment.NavHostFragment
import com.hjq.permissions.Permission
import com.hjq.permissions.XXPermissions
import com.hjq.permissions.permission.PermissionLists
import com.osfans.trime.BuildConfig
import com.osfans.trime.R
import com.osfans.trime.core.data.UserDataManager
@ -233,7 +233,8 @@ class MainActivity : AppCompatActivity() {
}
private fun checkNotificationPermission() {
if (XXPermissions.isGranted(this, Permission.POST_NOTIFICATIONS)) {
val permission = PermissionLists.getPostNotificationsPermission()
if (XXPermissions.isGrantedPermission(this, permission)) {
return
} else {
AlertDialog
@ -244,7 +245,7 @@ class MainActivity : AppCompatActivity() {
.setPositiveButton(R.string.grant_permission) { _, _ ->
XXPermissions
.with(this)
.permission(Permission.POST_NOTIFICATIONS)
.permission(permission)
.request(null)
}.setNegativeButton(android.R.string.cancel, null)
.show()

View File

@ -33,7 +33,7 @@ androidx-work-runtime-ktx = { group = "androidx.work", name = "work-runtime-ktx"
flexbox = { module = "com.google.android.flexbox:flexbox", version = "3.0.0" }
bravh = { module = "io.github.cymchad:BaseRecyclerViewAdapterHelper4", version = "4.4.1" }
timber = { module = "com.jakewharton.timber:timber", version = "5.0.1" }
xxpermissions = { module = "com.github.getActivity:XXPermissions", version = "18.5" }
xxpermissions = { module = "com.github.getActivity:XXPermissions", version = "28.3" }
iconics-core = { module = "com.mikepenz:iconics-core", version.ref = "iconics" }
community-material-typeface = { module = "com.mikepenz:community-material-typeface", version = "7.0.96.2-kotlin" }
kodein-di = { module = "org.kodein.di:kodein-di", version = "7.33.0" }