compose: commons: Relocate permissions screen to commons package

It now works as a permission rationale screen which we ought to show more
when requesting for permissions

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2025-09-11 15:34:21 +08:00
parent cd087e5c89
commit fe79b2db94
4 changed files with 35 additions and 13 deletions

View File

@@ -18,7 +18,7 @@ import androidx.navigation3.ui.rememberSceneSetupNavEntryDecorator
import com.aurora.store.compose.ui.commons.BlacklistScreen import com.aurora.store.compose.ui.commons.BlacklistScreen
import com.aurora.store.compose.ui.details.AppDetailsScreen import com.aurora.store.compose.ui.details.AppDetailsScreen
import com.aurora.store.compose.ui.dev.DevProfileScreen import com.aurora.store.compose.ui.dev.DevProfileScreen
import com.aurora.store.compose.ui.onboarding.PermissionsScreen import com.aurora.store.compose.ui.commons.PermissionsScreen
import com.aurora.store.compose.ui.search.SearchScreen import com.aurora.store.compose.ui.search.SearchScreen
/** /**

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later * SPDX-License-Identifier: GPL-3.0-or-later
*/ */
package com.aurora.store.compose.ui.onboarding package com.aurora.store.compose.ui.commons
import android.Manifest import android.Manifest
import android.annotation.SuppressLint import android.annotation.SuppressLint
@@ -47,7 +47,7 @@ import com.aurora.store.data.model.Permission
import com.aurora.store.data.model.PermissionType import com.aurora.store.data.model.PermissionType
import com.aurora.store.data.providers.PermissionProvider.Companion.isGranted import com.aurora.store.data.providers.PermissionProvider.Companion.isGranted
import com.aurora.store.util.PackageUtil import com.aurora.store.util.PackageUtil
import com.aurora.store.viewmodel.onboarding.PermissionsViewModel import com.aurora.store.viewmodel.commons.PermissionsViewModel
import kotlin.random.Random import kotlin.random.Random
private const val TAG = "PermissionsScreen" private const val TAG = "PermissionsScreen"

View File

@@ -78,7 +78,7 @@ import com.aurora.store.compose.ui.details.components.Tags
import com.aurora.store.compose.ui.details.components.Testing import com.aurora.store.compose.ui.details.components.Testing
import com.aurora.store.compose.ui.details.navigation.ExtraScreen import com.aurora.store.compose.ui.details.navigation.ExtraScreen
import com.aurora.store.compose.ui.dev.DevProfileScreen import com.aurora.store.compose.ui.dev.DevProfileScreen
import com.aurora.store.compose.ui.onboarding.PermissionsScreen import com.aurora.store.compose.ui.commons.PermissionsScreen
import com.aurora.store.data.installer.AppInstaller import com.aurora.store.data.installer.AppInstaller
import com.aurora.store.data.model.AppState import com.aurora.store.data.model.AppState
import com.aurora.store.data.model.PermissionType import com.aurora.store.data.model.PermissionType

View File

@@ -3,7 +3,7 @@
* SPDX-License-Identifier: GPL-3.0-or-later * SPDX-License-Identifier: GPL-3.0-or-later
*/ */
package com.aurora.store.viewmodel.onboarding package com.aurora.store.viewmodel.commons
import android.content.Context import android.content.Context
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
@@ -14,7 +14,7 @@ import com.aurora.extensions.isTAndAbove
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.data.model.Permission import com.aurora.store.data.model.Permission
import com.aurora.store.data.model.PermissionType import com.aurora.store.data.model.PermissionType
import com.aurora.store.data.providers.PermissionProvider.Companion.isGranted import com.aurora.store.data.providers.PermissionProvider
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
@@ -40,14 +40,20 @@ class PermissionsViewModel @Inject constructor(
context.getString(R.string.onboarding_permission_installer_legacy_desc) context.getString(R.string.onboarding_permission_installer_legacy_desc)
}, },
optional = false, optional = false,
isGranted = isGranted(context, PermissionType.INSTALL_UNKNOWN_APPS) isGranted = PermissionProvider.Companion.isGranted(
context,
PermissionType.INSTALL_UNKNOWN_APPS
)
), ),
Permission( Permission(
type = PermissionType.DOZE_WHITELIST, type = PermissionType.DOZE_WHITELIST,
title = context.getString(R.string.onboarding_permission_doze), title = context.getString(R.string.onboarding_permission_doze),
subtitle = context.getString(R.string.onboarding_permission_doze_desc), subtitle = context.getString(R.string.onboarding_permission_doze_desc),
optional = true, optional = true,
isGranted = isGranted(context, PermissionType.DOZE_WHITELIST) isGranted = PermissionProvider.Companion.isGranted(
context,
PermissionType.DOZE_WHITELIST
)
) )
) )
@@ -58,7 +64,10 @@ class PermissionsViewModel @Inject constructor(
title = context.getString(R.string.onboarding_permission_esm), title = context.getString(R.string.onboarding_permission_esm),
subtitle = context.getString(R.string.onboarding_permission_esa_desc), subtitle = context.getString(R.string.onboarding_permission_esa_desc),
optional = false, optional = false,
isGranted = isGranted(context, PermissionType.STORAGE_MANAGER) isGranted = PermissionProvider.Companion.isGranted(
context,
PermissionType.STORAGE_MANAGER
)
) )
) )
} else { } else {
@@ -68,7 +77,10 @@ class PermissionsViewModel @Inject constructor(
title = context.getString(R.string.onboarding_permission_esa), title = context.getString(R.string.onboarding_permission_esa),
subtitle = context.getString(R.string.onboarding_permission_esa_desc), subtitle = context.getString(R.string.onboarding_permission_esa_desc),
optional = false, optional = false,
isGranted = isGranted(context, PermissionType.EXTERNAL_STORAGE) isGranted = PermissionProvider.Companion.isGranted(
context,
PermissionType.EXTERNAL_STORAGE
)
) )
) )
} }
@@ -80,7 +92,10 @@ class PermissionsViewModel @Inject constructor(
title = context.getString(R.string.onboarding_permission_notifications), title = context.getString(R.string.onboarding_permission_notifications),
subtitle = context.getString(R.string.onboarding_permission_notifications_desc), subtitle = context.getString(R.string.onboarding_permission_notifications_desc),
optional = true, optional = true,
isGranted = isGranted(context, PermissionType.POST_NOTIFICATIONS) isGranted = PermissionProvider.Companion.isGranted(
context,
PermissionType.POST_NOTIFICATIONS
)
) )
) )
} }
@@ -92,7 +107,10 @@ class PermissionsViewModel @Inject constructor(
title = context.getString(R.string.app_links_title), title = context.getString(R.string.app_links_title),
subtitle = context.getString(R.string.app_links_desc), subtitle = context.getString(R.string.app_links_desc),
optional = true, optional = true,
isGranted = isGranted(context, PermissionType.APP_LINKS) isGranted = PermissionProvider.Companion.isGranted(
context,
PermissionType.APP_LINKS
)
), ),
) )
} }
@@ -102,7 +120,11 @@ class PermissionsViewModel @Inject constructor(
fun refreshPermissionsList() { fun refreshPermissionsList() {
_permissions.value = _permissions.value.map { permission -> _permissions.value = _permissions.value.map { permission ->
permission.copy(isGranted = isGranted(context, permission.type)) permission.copy(isGranted = PermissionProvider.Companion.isGranted(
context,
permission.type
)
)
} }
} }
} }