mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-07-25 18:45:20 +00:00
Refactor: Update permission handling to use PermissionType enum
This commit is contained in:
@@ -190,14 +190,14 @@ private fun PermissionCategoryCard(
|
|||||||
horizontalArrangement = Arrangement.spacedBy(12.dp)
|
horizontalArrangement = Arrangement.spacedBy(12.dp)
|
||||||
) {
|
) {
|
||||||
Text(
|
Text(
|
||||||
text = getPermissionEmoji(category.name),
|
text = getPermissionEmoji(category.type),
|
||||||
style = MaterialTheme.typography.titleLarge,
|
style = MaterialTheme.typography.titleLarge,
|
||||||
color = getPermissionIconColor(category.name),
|
color = getPermissionIconColor(category.type),
|
||||||
modifier = Modifier.size(24.dp)
|
modifier = Modifier.size(24.dp)
|
||||||
)
|
)
|
||||||
|
|
||||||
Text(
|
Text(
|
||||||
text = category.name,
|
text = category.type.nameValue,
|
||||||
style = MaterialTheme.typography.titleSmall.copy(
|
style = MaterialTheme.typography.titleSmall.copy(
|
||||||
fontWeight = FontWeight.Bold,
|
fontWeight = FontWeight.Bold,
|
||||||
color = colorScheme.onSurface
|
color = colorScheme.onSurface
|
||||||
@@ -214,7 +214,7 @@ private fun PermissionCategoryCard(
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
if (category.name == "Precise Location") {
|
if (category.type == PermissionType.PRECISE_LOCATION) {
|
||||||
// Extra emphasis for location permission
|
// Extra emphasis for location permission
|
||||||
Row(
|
Row(
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
@@ -239,20 +239,20 @@ private fun PermissionCategoryCard(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getPermissionEmoji(categoryName: String): String {
|
private fun getPermissionEmoji(permissionType: PermissionType): String {
|
||||||
return when (categoryName) {
|
return when (permissionType) {
|
||||||
"Nearby Devices" -> "📱"
|
PermissionType.NEARBY_DEVICES -> "📱"
|
||||||
"Precise Location" -> "📍"
|
PermissionType.PRECISE_LOCATION -> "📍"
|
||||||
"Notifications" -> "🔔"
|
PermissionType.NOTIFICATIONS -> "🔔"
|
||||||
else -> "🔧"
|
PermissionType.OTHER -> "🔧"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getPermissionIconColor(categoryName: String): Color {
|
private fun getPermissionIconColor(permissionType: PermissionType): Color {
|
||||||
return when (categoryName) {
|
return when (permissionType) {
|
||||||
"Nearby Devices" -> Color(0xFF2196F3) // Blue
|
PermissionType.NEARBY_DEVICES -> Color(0xFF2196F3) // Blue
|
||||||
"Precise Location" -> Color(0xFFFF9800) // Orange
|
PermissionType.PRECISE_LOCATION -> Color(0xFFFF9800) // Orange
|
||||||
"Notifications" -> Color(0xFF4CAF50) // Green
|
PermissionType.NOTIFICATIONS -> Color(0xFF4CAF50) // Green
|
||||||
else -> Color(0xFF9C27B0) // Purple
|
PermissionType.OTHER -> Color(0xFF9C27B0) // Purple
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ class PermissionManager(private val context: Context) {
|
|||||||
|
|
||||||
categories.add(
|
categories.add(
|
||||||
PermissionCategory(
|
PermissionCategory(
|
||||||
name = "Nearby Devices",
|
type = PermissionType.NEARBY_DEVICES,
|
||||||
description = "Required to discover and connect to other bitchat users via Bluetooth",
|
description = "Required to discover and connect to other bitchat users via Bluetooth",
|
||||||
permissions = bluetoothPermissions,
|
permissions = bluetoothPermissions,
|
||||||
isGranted = bluetoothPermissions.all { isPermissionGranted(it) },
|
isGranted = bluetoothPermissions.all { isPermissionGranted(it) },
|
||||||
@@ -131,7 +131,7 @@ class PermissionManager(private val context: Context) {
|
|||||||
|
|
||||||
categories.add(
|
categories.add(
|
||||||
PermissionCategory(
|
PermissionCategory(
|
||||||
name = "Precise Location",
|
type = PermissionType.PRECISE_LOCATION,
|
||||||
description = "Required by Android for Bluetooth scanning.",
|
description = "Required by Android for Bluetooth scanning.",
|
||||||
permissions = locationPermissions,
|
permissions = locationPermissions,
|
||||||
isGranted = locationPermissions.all { isPermissionGranted(it) },
|
isGranted = locationPermissions.all { isPermissionGranted(it) },
|
||||||
@@ -143,7 +143,7 @@ class PermissionManager(private val context: Context) {
|
|||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
categories.add(
|
categories.add(
|
||||||
PermissionCategory(
|
PermissionCategory(
|
||||||
name = "Notifications",
|
type = PermissionType.NOTIFICATIONS,
|
||||||
description = "Show notifications when you receive private messages while the app is in background",
|
description = "Show notifications when you receive private messages while the app is in background",
|
||||||
permissions = listOf(Manifest.permission.POST_NOTIFICATIONS),
|
permissions = listOf(Manifest.permission.POST_NOTIFICATIONS),
|
||||||
isGranted = isPermissionGranted(Manifest.permission.POST_NOTIFICATIONS),
|
isGranted = isPermissionGranted(Manifest.permission.POST_NOTIFICATIONS),
|
||||||
@@ -167,7 +167,7 @@ class PermissionManager(private val context: Context) {
|
|||||||
appendLine()
|
appendLine()
|
||||||
|
|
||||||
getCategorizedPermissions().forEach { category ->
|
getCategorizedPermissions().forEach { category ->
|
||||||
appendLine("${category.name}: ${if (category.isGranted) "✅ GRANTED" else "❌ MISSING"}")
|
appendLine("${category.type.nameValue}: ${if (category.isGranted) "✅ GRANTED" else "❌ MISSING"}")
|
||||||
category.permissions.forEach { permission ->
|
category.permissions.forEach { permission ->
|
||||||
val granted = isPermissionGranted(permission)
|
val granted = isPermissionGranted(permission)
|
||||||
appendLine(" - ${permission.substringAfterLast(".")}: ${if (granted) "✅" else "❌"}")
|
appendLine(" - ${permission.substringAfterLast(".")}: ${if (granted) "✅" else "❌"}")
|
||||||
@@ -197,9 +197,16 @@ class PermissionManager(private val context: Context) {
|
|||||||
* Data class representing a category of related permissions
|
* Data class representing a category of related permissions
|
||||||
*/
|
*/
|
||||||
data class PermissionCategory(
|
data class PermissionCategory(
|
||||||
val name: String,
|
val type: PermissionType,
|
||||||
val description: String,
|
val description: String,
|
||||||
val permissions: List<String>,
|
val permissions: List<String>,
|
||||||
val isGranted: Boolean,
|
val isGranted: Boolean,
|
||||||
val systemDescription: String
|
val systemDescription: String
|
||||||
)
|
)
|
||||||
|
|
||||||
|
enum class PermissionType(val nameValue: String) {
|
||||||
|
NEARBY_DEVICES("Nearby Devices"),
|
||||||
|
PRECISE_LOCATION("Precise Location"),
|
||||||
|
NOTIFICATIONS("Notifications"),
|
||||||
|
OTHER("Other")
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user