summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author vignesh ramanathan <vigneshrsastra@google.com> 2025-01-17 21:57:52 +0000
committer Vignesh Ramanathan <vigneshrsastra@google.com> 2025-02-03 08:11:15 -0800
commit8d061f230d80438f463d6c57891e517ae9893896 (patch)
treedcb38b8b993c19977e791cf3f614f1f08fbc8661
parenta95bb38db4adc86ac22eabd4c79d07bb7301b927 (diff)
Creating Permission controller library.
Wear components created for permission controller are being copied by health services now. Packing the elements as library to avoid duplicate code. BUG: b/391383472 Relnote: "N/A" FLAG: EXEMPT refactor Test: Build Succeeds. Existing CTS tests passes. RRO tested Manually. LOW_COVERAGE_REASON=FLAG_NOT_ENABLED. Change-Id: I5306edcbd7c7a488ae055a620bc048b15854cc17
-rw-r--r--PermissionController/Android.bp2
-rw-r--r--PermissionController/res/values/overlayable.xml83
-rw-r--r--PermissionController/src/com/android/permissioncontroller/incident/wear/WearConfirmationScreen.kt8
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/LocationProviderDialogScreen.kt6
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionFragment.kt38
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionGroupsFragment.kt16
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionGroupsScreen.kt16
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionScreen.kt24
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearEnhancedConfirmationDialogFragment.kt4
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearEnhancedConfirmationScreen.kt24
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearGrantPermissionsScreen.kt15
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageCustomPermissionScreen.kt6
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageCustomPermissionsFragment.kt8
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageStandardPermissionScreen.kt6
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageStandardPermissionsFragment.kt12
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionAppsScreen.kt8
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionUsageDetailsScreen.kt8
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionUsageScreen.kt6
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearUnusedAppsFragment.kt32
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearUnusedAppsScreen.kt6
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearUtils.kt9
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/RemoteConnectionProgressIndicator.kt75
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearPermissionTheme.kt203
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearPermissionTonalPalette.kt191
-rw-r--r--PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearDefaultAppFragment.kt9
-rw-r--r--PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearDefaultAppListScreen.kt8
-rw-r--r--PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearDefaultAppScreen.kt20
-rw-r--r--PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearRequestRoleScreen.kt20
-rw-r--r--PermissionController/wear-permission-components/Android.bp67
-rw-r--r--PermissionController/wear-permission-components/AndroidManifest.xml18
-rw-r--r--PermissionController/wear-permission-components/res/drawable/ic_security_update_good.xml (renamed from PermissionController/res/drawable/ic_security_update_good.xml)0
-rw-r--r--PermissionController/wear-permission-components/res/values/donottranslate.xml (renamed from PermissionController/res/values-watch/donottranslate.xml)0
-rw-r--r--PermissionController/wear-permission-components/res/values/overlayable.xml87
-rw-r--r--PermissionController/wear-permission-components/res/values/strings.xml7
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/AnnotatedText.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/AnnotatedText.kt)9
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/CheckYourPhone.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/CheckYourPhone.kt)74
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/DrawablePainter.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/DrawablePainter.kt)4
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/ScrollableScreen.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/ScrollableScreen.kt)13
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material2/AlertDialog.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/AlertDialog.kt)12
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material2/Chip.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/Chip.kt)4
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material2/Icon.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/Icon.kt)10
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material2/ListFooter.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/ListFooter.kt)3
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material2/ListHeader.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/ListHeader.kt)3
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material2/ResponsiveDialog.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/ResponsiveDialog.kt)18
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material2/ToggleChip.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/ToggleChip.kt)7
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material2/Wear2Scaffold.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/Wear2Scaffold.kt)9
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material2/layout/ScalingLazyColumnDefaults.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/layout/ScalingLazyColumnDefaults.kt)4
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material2/layout/ScalingLazyColumnState.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/layout/ScalingLazyColumnState.kt)6
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionButton.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionButton.kt)8
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionButtonStyle.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionButtonStyle.kt)15
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionConfirmationDialog.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionConfirmationDialog.kt)6
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionIconBuilder.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionIconBuilder.kt)4
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionListFooter.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionListFooter.kt)9
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionListSubHeader.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionListSubHeader.kt)8
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffold.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionScaffold.kt)20
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffoldPaddingDefaults.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionScaffoldPaddingDefaults.kt)3
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionToggleControl.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionToggleControl.kt)10
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionToggleControlStyle.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionToggleControlStyle.kt)6
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/theme/ResourceHelper.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/ResourceHelper.kt)10
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3ColorScheme.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearComposeMaterial3ColorScheme.kt)21
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3Shapes.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearComposeMaterial3Shapes.kt)4
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3TypeScaleTokens.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearComposeMaterial3TypeScaleTokens.kt)2
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3Typography.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearComposeMaterial3Typography.kt)4
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3VariableFontTokens.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearComposeMaterial3VariableFontTokens.kt)2
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/theme/WearMaterialBridgedLegacyTheme.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearMaterialBridgedLegacyTheme.kt)6
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/theme/WearOverlayableMaterial3Theme.kt (renamed from PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearOverlayableMaterial3Theme.kt)18
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/theme/WearPermissionTheme.kt59
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/theme/WearPermissionTonalPalette.kt216
68 files changed, 796 insertions, 853 deletions
diff --git a/PermissionController/Android.bp b/PermissionController/Android.bp
index 397870c20..dd1b82dc7 100644
--- a/PermissionController/Android.bp
+++ b/PermissionController/Android.bp
@@ -158,10 +158,10 @@ android_library {
"androidx.compose.runtime_runtime",
"androidx.compose.runtime_runtime-livedata",
"androidx.compose.ui_ui",
- "androidx.wear.compose_compose-material",
"androidx.wear.compose_compose-material3",
"android.content.pm.flags-aconfig-java-export",
"android.os.flags-aconfig-java-export",
+ "wear-permission-components",
],
lint: {
diff --git a/PermissionController/res/values/overlayable.xml b/PermissionController/res/values/overlayable.xml
index ea7929746..e94c5bd04 100644
--- a/PermissionController/res/values/overlayable.xml
+++ b/PermissionController/res/values/overlayable.xml
@@ -461,89 +461,6 @@
<item type="style" name="AppDataSharingUpdateSettingsIcon" />
<!-- END SAFETY LABELS STYLE -->
- <!--START WEAR SPECIFIC MATERIAL2 FONT STRINGS -->
- <item type="string" name="wear_material_compose_display_1_font_family" />
- <item type="string" name="wear_material_compose_display_2_font_family" />
- <item type="string" name="wear_material_compose_display_3_font_family" />
- <item type="string" name="wear_material_compose_title_1_font_family" />
- <item type="string" name="wear_material_compose_title_2_font_family" />
- <item type="string" name="wear_material_compose_title_3_font_family" />
- <item type="string" name="wear_material_compose_body_1_font_family" />
- <item type="string" name="wear_material_compose_body_2_font_family" />
- <item type="string" name="wear_material_compose_button_font_family" />
- <item type="string" name="wear_material_compose_caption_1_font_family" />
- <item type="string" name="wear_material_compose_caption_2_font_family" />
- <item type="string" name="wear_material_compose_caption_3_font_family" />
- <!--END WEAR SPECIFIC MATERIAL2 FONT STRINGS -->
-
- <!--START WEAR SPECIFIC MATERIAL3 FONT FACE TOKENS-->
- <item type="string" name="wear_compose_material3_arc_small_font_family" />
- <item type="string" name="wear_compose_material3_arc_medium_font_family" />
- <item type="string" name="wear_compose_material3_arc_large_font_family" />
-
- <item type="string" name="wear_compose_material3_body_extra_small_font_family" />
- <item type="string" name="wear_compose_material3_body_small_font_family" />
- <item type="string" name="wear_compose_material3_body_medium_font_family" />
- <item type="string" name="wear_compose_material3_body_large_font_family" />
-
- <item type="string" name="wear_compose_material3_display_small_font_family" />
- <item type="string" name="wear_compose_material3_display_medium_font_family" />
- <item type="string" name="wear_compose_material3_display_large_font_family" />
-
- <item type="string" name="wear_compose_material3_label_small_font_family" />
- <item type="string" name="wear_compose_material3_label_medium_font_family" />
- <item type="string" name="wear_compose_material3_label_large_font_family" />
-
- <item type="string" name="wear_compose_material3_numeral_extra_small_font_family" />
- <item type="string" name="wear_compose_material3_numeral_small_font_family" />
- <item type="string" name="wear_compose_material3_numeral_medium_font_family" />
- <item type="string" name="wear_compose_material3_numeral_large_font_family" />
- <item type="string" name="wear_compose_material3_numeral_extra_large_font_family" />
-
- <item type="string" name="wear_compose_material3_title_small_font_family" />
- <item type="string" name="wear_compose_material3_title_medium_font_family" />
- <item type="string" name="wear_compose_material3_title_large_font_family" />
- <!--END WEAR SPECIFIC MATERIAL3 FONT FACE TOKENS-->
-
-
- <!--START WEAR SPECIFIC MATERIAL3 FONT SIZE TOKENS-->
- <item type="dimen" name="wear_compose_material3_arc_small_font_size" />
- <item type="dimen" name="wear_compose_material3_arc_medium_font_size" />
- <item type="dimen" name="wear_compose_material3_arc_large_font_size" />
-
- <item type="dimen" name="wear_compose_material3_body_extra_small_font_size" />
- <item type="dimen" name="wear_compose_material3_body_small_font_size" />
- <item type="dimen" name="wear_compose_material3_body_medium_font_size" />
- <item type="dimen" name="wear_compose_material3_body_large_font_size" />
-
- <item type="dimen" name="wear_compose_material3_display_small_font_size" />
- <item type="dimen" name="wear_compose_material3_display_medium_font_size" />
- <item type="dimen" name="wear_compose_material3_display_large_font_size" />
-
- <item type="dimen" name="wear_compose_material3_label_small_font_size" />
- <item type="dimen" name="wear_compose_material3_label_medium_font_size" />
- <item type="dimen" name="wear_compose_material3_label_large_font_size" />
-
- <item type="dimen" name="wear_compose_material3_numeral_extra_small_font_size" />
- <item type="dimen" name="wear_compose_material3_numeral_small_font_size" />
- <item type="dimen" name="wear_compose_material3_numeral_medium_font_size" />
- <item type="dimen" name="wear_compose_material3_numeral_large_font_size" />
- <item type="dimen" name="wear_compose_material3_numeral_extra_large_font_size" />
-
- <item type="dimen" name="wear_compose_material3_title_small_font_size" />
- <item type="dimen" name="wear_compose_material3_title_medium_font_size" />
- <item type="dimen" name="wear_compose_material3_title_large_font_size" />
- <!--END WEAR SPECIFIC MATERIAL3 FONT SIZE TOKENS-->
-
- <!--START WEAR SPECIFIC MATERIAL3 SHAPE TOKENS-->
- <item type="dimen" name="wear_compose_material3_shape_corner_extra_small_size" />
- <item type="dimen" name="wear_compose_material3_shape_corner_small_size" />
- <item type="dimen" name="wear_compose_material3_shape_corner_medium_size" />
- <item type="dimen" name="wear_compose_material3_shape_corner_large_size" />
- <item type="dimen" name="wear_compose_material3_shape_corner_extra_large_size" />
- <!--END WEAR SPECIFIC MATERIAL3 SHAPE TOKENS-->
-
-
<!-- START ENHANCED CONFIRMATION DIALOG -->
<item type="style" name="Theme.EnhancedConfirmationDialog" />
<item type="style" name="Theme.EnhancedConfirmationDialogFragment" />
diff --git a/PermissionController/src/com/android/permissioncontroller/incident/wear/WearConfirmationScreen.kt b/PermissionController/src/com/android/permissioncontroller/incident/wear/WearConfirmationScreen.kt
index 4c698cda3..2428abb4a 100644
--- a/PermissionController/src/com/android/permissioncontroller/incident/wear/WearConfirmationScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/incident/wear/WearConfirmationScreen.kt
@@ -30,10 +30,10 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.ComposeView
import androidx.wear.compose.material.CircularProgressIndicator
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.DialogButtonContent
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionConfirmationDialog
-import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionTheme
+import com.android.permissioncontroller.wear.permission.components.material3.DialogButtonContent
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionConfirmationDialog
+import com.android.permissioncontroller.wear.permission.components.theme.ResourceHelper
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionTheme
@Composable
fun WearConfirmationScreen(viewModel: WearConfirmationActivityViewModel) {
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/LocationProviderDialogScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/LocationProviderDialogScreen.kt
index ff3c2cbc1..aadfecd4e 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/LocationProviderDialogScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/LocationProviderDialogScreen.kt
@@ -21,10 +21,10 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.wear.compose.material3.Dialog
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButton
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButtonStyle
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionScaffold
import com.android.permissioncontroller.permission.ui.wear.model.LocationProviderInterceptDialogArgs
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButton
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButtonStyle
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionScaffold
@Composable
fun LocationProviderDialogScreen(
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionFragment.kt
index 959dc9137..15d0fbe5f 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionFragment.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionFragment.kt
@@ -58,8 +58,8 @@ import com.android.permissioncontroller.permission.ui.v33.AdvancedConfirmDialogA
import com.android.permissioncontroller.permission.ui.wear.model.AppPermissionConfirmDialogViewModel
import com.android.permissioncontroller.permission.ui.wear.model.AppPermissionConfirmDialogViewModelFactory
import com.android.permissioncontroller.permission.ui.wear.model.ConfirmDialogArgs
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionTheme
import com.android.permissioncontroller.permission.utils.KotlinUtils.getPermGroupLabel
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionTheme
import com.android.settingslib.RestrictedLockUtils
/**
@@ -98,7 +98,7 @@ class WearAppPermissionFragment : Fragment(), ConfirmDialogShowingFragment {
userHandle: UserHandle?,
caller: String?,
sessionId: Long,
- grantCategory: String?
+ grantCategory: String?,
): Bundle {
val arguments = Bundle()
arguments.putString(Intent.EXTRA_PACKAGE_NAME, packageName)
@@ -118,7 +118,7 @@ class WearAppPermissionFragment : Fragment(), ConfirmDialogShowingFragment {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
- savedInstanceState: Bundle?
+ savedInstanceState: Bundle?,
): View? {
val activity = requireActivity()
val packageName =
@@ -145,7 +145,7 @@ class WearAppPermissionFragment : Fragment(), ConfirmDialogShowingFragment {
packageName,
permGroupName,
user,
- sessionId
+ sessionId,
)
val viewModel = ViewModelProvider(this, factory).get(AppPermissionViewModel::class.java)
confirmDialogViewModel =
@@ -182,14 +182,14 @@ class WearAppPermissionFragment : Fragment(), ConfirmDialogShowingFragment {
this,
this,
param.request,
- param.buttonClickAction
+ param.buttonClickAction,
)
} else {
showConfirmDialog(
ChangeRequest.GRANT_ALL_FILE_ACCESS,
R.string.special_file_access_dialog,
-1,
- false
+ false,
)
}
setResult(param.result, permGroupName)
@@ -207,7 +207,7 @@ class WearAppPermissionFragment : Fragment(), ConfirmDialogShowingFragment {
this,
this,
ChangeRequest.GRANT_BOTH,
- APP_PERMISSION_FRAGMENT_ACTION_REPORTED__BUTTON_PRESSED__ALLOW
+ APP_PERMISSION_FRAGMENT_ACTION_REPORTED__BUTTON_PRESSED__ALLOW,
)
} else {
viewModel.onDenyAnyWay(args.changeRequest, args.buttonPressed, args.oneTime)
@@ -225,7 +225,7 @@ class WearAppPermissionFragment : Fragment(), ConfirmDialogShowingFragment {
this,
this,
args.changeRequest!!,
- args.buttonClicked!!
+ args.buttonClicked!!,
)
confirmDialogViewModel.showAdvancedConfirmDialogLiveData.value = false
}
@@ -250,7 +250,7 @@ class WearAppPermissionFragment : Fragment(), ConfirmDialogShowingFragment {
onConfirmDialogCancelButtonClick,
onAdvancedConfirmDialogOkButtonClick,
onAdvancedConfirmDialogCancelButtonClick,
- onDisabledAllowButtonTap
+ onDisabledAllowButtonTap,
)
}
}
@@ -261,14 +261,14 @@ class WearAppPermissionFragment : Fragment(), ConfirmDialogShowingFragment {
changeRequest: ChangeRequest,
@StringRes messageId: Int,
buttonPressed: Int,
- oneTime: Boolean
+ oneTime: Boolean,
) {
confirmDialogViewModel.confirmDialogArgs =
ConfirmDialogArgs(
messageId = messageId,
changeRequest = changeRequest,
buttonPressed = buttonPressed,
- oneTime = oneTime
+ oneTime = oneTime,
)
confirmDialogViewModel.showConfirmDialogLiveData.value = true
}
@@ -284,7 +284,7 @@ class WearAppPermissionFragment : Fragment(), ConfirmDialogShowingFragment {
Intent()
.putExtra(
ManagePermissionsActivity.EXTRA_RESULT_PERMISSION_INTERACTED,
- permGroupName
+ permGroupName,
)
.putExtra(ManagePermissionsActivity.EXTRA_RESULT_PERMISSION_RESULT, result)
requireActivity().setResult(Activity.RESULT_OK, intent)
@@ -298,7 +298,7 @@ class WearAppPermissionFragment : Fragment(), ConfirmDialogShowingFragment {
ChangeRequest.GRANT_FOREGROUND,
APP_PERMISSION_FRAGMENT_ACTION_REPORTED__BUTTON_PRESSED__ALLOW,
GRANTED_ALWAYS,
- false
+ false,
)
ButtonType.ALLOW_ALWAYS ->
GrantedStateChangeParam(
@@ -306,7 +306,7 @@ class WearAppPermissionFragment : Fragment(), ConfirmDialogShowingFragment {
ChangeRequest.GRANT_BOTH,
APP_PERMISSION_FRAGMENT_ACTION_REPORTED__BUTTON_PRESSED__ALLOW_ALWAYS,
GRANTED_ALWAYS,
- true
+ true,
)
ButtonType.ALLOW_FOREGROUND ->
GrantedStateChangeParam(
@@ -314,7 +314,7 @@ class WearAppPermissionFragment : Fragment(), ConfirmDialogShowingFragment {
ChangeRequest.GRANT_FOREGROUND_ONLY,
APP_PERMISSION_FRAGMENT_ACTION_REPORTED__BUTTON_PRESSED__ALLOW_FOREGROUND,
GRANTED_FOREGROUND_ONLY,
- true
+ true,
)
ButtonType.ASK ->
GrantedStateChangeParam(
@@ -322,7 +322,7 @@ class WearAppPermissionFragment : Fragment(), ConfirmDialogShowingFragment {
ChangeRequest.REVOKE_BOTH,
APP_PERMISSION_FRAGMENT_ACTION_REPORTED__BUTTON_PRESSED__ASK_EVERY_TIME,
DENIED,
- false
+ false,
)
ButtonType.DENY ->
GrantedStateChangeParam(
@@ -330,7 +330,7 @@ class WearAppPermissionFragment : Fragment(), ConfirmDialogShowingFragment {
ChangeRequest.REVOKE_BOTH,
APP_PERMISSION_FRAGMENT_ACTION_REPORTED__BUTTON_PRESSED__DENY,
DENIED_DO_NOT_ASK_AGAIN,
- false
+ false,
)
ButtonType.DENY_FOREGROUND ->
GrantedStateChangeParam(
@@ -338,7 +338,7 @@ class WearAppPermissionFragment : Fragment(), ConfirmDialogShowingFragment {
ChangeRequest.REVOKE_FOREGROUND,
APP_PERMISSION_FRAGMENT_ACTION_REPORTED__BUTTON_PRESSED__DENY_FOREGROUND,
DENIED_DO_NOT_ASK_AGAIN,
- false
+ false,
)
else -> throw RuntimeException("Wrong button type: $buttonType")
}
@@ -349,5 +349,5 @@ data class GrantedStateChangeParam(
val request: ChangeRequest,
val buttonClickAction: Int,
val result: Int,
- val requiresCustomStorageBehavior: Boolean
+ val requiresCustomStorageBehavior: Boolean,
)
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionGroupsFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionGroupsFragment.kt
index 552876b7d..06d14cc14 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionGroupsFragment.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionGroupsFragment.kt
@@ -48,7 +48,7 @@ import com.android.permissioncontroller.permission.ui.wear.model.WearAppPermissi
import com.android.permissioncontroller.permission.ui.wear.model.WearAppPermissionUsagesViewModelFactory
import com.android.permissioncontroller.permission.ui.wear.model.WearLocationProviderInterceptDialogViewModel
import com.android.permissioncontroller.permission.ui.wear.model.WearLocationProviderInterceptDialogViewModelFactory
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionTheme
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionTheme
import java.time.Instant
import java.util.concurrent.TimeUnit
@@ -63,7 +63,7 @@ class WearAppPermissionGroupsFragment : Fragment(), PermissionsUsagesChangeCallb
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
- savedInstanceState: Bundle?
+ savedInstanceState: Bundle?,
): View? {
val packageName = arguments?.getString(Intent.EXTRA_PACKAGE_NAME) ?: ""
val user =
@@ -93,7 +93,7 @@ class WearAppPermissionGroupsFragment : Fragment(), PermissionsUsagesChangeCallb
val viewModel =
ViewModelProvider(
owner = this,
- factory = AppPermissionGroupsViewModelFactory(packageName, user, sessionId)
+ factory = AppPermissionGroupsViewModelFactory(packageName, user, sessionId),
)[AppPermissionGroupsViewModel::class.java]
wearViewModel =
@@ -103,13 +103,13 @@ class WearAppPermissionGroupsFragment : Fragment(), PermissionsUsagesChangeCallb
val revokeDialogViewModel =
ViewModelProvider(
owner = this,
- factory = AppPermissionGroupsRevokeDialogViewModelFactory()
+ factory = AppPermissionGroupsRevokeDialogViewModelFactory(),
)[AppPermissionGroupsRevokeDialogViewModel::class.java]
val locationProviderInterceptDialogViewModel =
ViewModelProvider(
owner = this,
- factory = WearLocationProviderInterceptDialogViewModelFactory()
+ factory = WearLocationProviderInterceptDialogViewModelFactory(),
)[WearLocationProviderInterceptDialogViewModel::class.java]
val context = requireContext()
@@ -125,7 +125,7 @@ class WearAppPermissionGroupsFragment : Fragment(), PermissionsUsagesChangeCallb
maxOf(
System.currentTimeMillis() -
TimeUnit.DAYS.toMillis(aggregateDataFilterBeginDays),
- Instant.EPOCH.toEpochMilli()
+ Instant.EPOCH.toEpochMilli(),
)
permissionUsages.load(
null,
@@ -137,7 +137,7 @@ class WearAppPermissionGroupsFragment : Fragment(), PermissionsUsagesChangeCallb
false,
false,
this,
- false
+ false,
)
}
helper =
@@ -151,7 +151,7 @@ class WearAppPermissionGroupsFragment : Fragment(), PermissionsUsagesChangeCallb
viewModel = viewModel,
wearViewModel = wearViewModel,
revokeDialogViewModel = revokeDialogViewModel,
- locationProviderInterceptDialogViewModel = locationProviderInterceptDialogViewModel
+ locationProviderInterceptDialogViewModel = locationProviderInterceptDialogViewModel,
)
return ComposeView(activity).apply {
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionGroupsScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionGroupsScreen.kt
index 5919fad0d..e375910ae 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionGroupsScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionGroupsScreen.kt
@@ -25,15 +25,15 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.res.stringResource
import com.android.permissioncontroller.R
-import com.android.permissioncontroller.permission.ui.wear.elements.ScrollableScreen
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.DialogButtonContent
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButton
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionConfirmationDialog
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionToggleControl
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionToggleControlType
import com.android.permissioncontroller.permission.ui.wear.model.RevokeDialogArgs
-import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion
+import com.android.permissioncontroller.wear.permission.components.ScrollableScreen
+import com.android.permissioncontroller.wear.permission.components.material3.DialogButtonContent
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButton
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionConfirmationDialog
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionToggleControl
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionToggleControlType
+import com.android.permissioncontroller.wear.permission.components.theme.ResourceHelper
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionMaterialUIVersion
@Composable
fun WearAppPermissionGroupsScreen(helper: WearAppPermissionGroupsHelper) {
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionScreen.kt
index 8815e7905..588f5a4da 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionScreen.kt
@@ -30,20 +30,20 @@ import com.android.permissioncontroller.permission.ui.model.AppPermissionViewMod
import com.android.permissioncontroller.permission.ui.model.AppPermissionViewModel.ButtonState
import com.android.permissioncontroller.permission.ui.model.AppPermissionViewModel.ButtonType
import com.android.permissioncontroller.permission.ui.v33.AdvancedConfirmDialogArgs
-import com.android.permissioncontroller.permission.ui.wear.elements.ScrollableScreen
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.ListFooter
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.ToggleChip
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.toggleChipDisabledColors
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.DialogButtonContent
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionConfirmationDialog
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionIconBuilder
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionToggleControlType
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.defaultAlertConfirmIcon
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.defaultAlertDismissIcon
import com.android.permissioncontroller.permission.ui.wear.model.AppPermissionConfirmDialogViewModel
import com.android.permissioncontroller.permission.ui.wear.model.ConfirmDialogArgs
-import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion
+import com.android.permissioncontroller.wear.permission.components.ScrollableScreen
+import com.android.permissioncontroller.wear.permission.components.material2.ListFooter
+import com.android.permissioncontroller.wear.permission.components.material2.ToggleChip
+import com.android.permissioncontroller.wear.permission.components.material2.toggleChipDisabledColors
+import com.android.permissioncontroller.wear.permission.components.material3.DialogButtonContent
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionConfirmationDialog
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionIconBuilder
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionToggleControlType
+import com.android.permissioncontroller.wear.permission.components.material3.defaultAlertConfirmIcon
+import com.android.permissioncontroller.wear.permission.components.material3.defaultAlertDismissIcon
+import com.android.permissioncontroller.wear.permission.components.theme.ResourceHelper
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionMaterialUIVersion
import com.android.settingslib.RestrictedLockUtils
@Composable
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearEnhancedConfirmationDialogFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearEnhancedConfirmationDialogFragment.kt
index e81fd948d..088531a52 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearEnhancedConfirmationDialogFragment.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearEnhancedConfirmationDialogFragment.kt
@@ -27,7 +27,7 @@ import androidx.fragment.app.DialogFragment
import androidx.fragment.app.viewModels
import com.android.permissioncontroller.ecm.EnhancedConfirmationDialogActivity
import com.android.permissioncontroller.permission.ui.wear.model.WearEnhancedConfirmationViewModel
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionTheme
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionTheme
class WearEnhancedConfirmationDialogFragment : DialogFragment() {
private lateinit var enhancedConfirmationDialogActivity: EnhancedConfirmationDialogActivity
@@ -42,7 +42,7 @@ class WearEnhancedConfirmationDialogFragment : DialogFragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
- savedInstanceState: Bundle?
+ savedInstanceState: Bundle?,
): View {
val title =
arguments?.getString(KEY_TITLE) ?: throw RuntimeException("ECM Title can't be null")
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearEnhancedConfirmationScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearEnhancedConfirmationScreen.kt
index ab19a9665..1e1f8ba5a 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearEnhancedConfirmationScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearEnhancedConfirmationScreen.kt
@@ -39,20 +39,20 @@ import androidx.wear.compose.material.CircularProgressIndicator
import androidx.wear.compose.material.MaterialTheme
import androidx.wear.compose.material.SwipeToDismissBox
import com.android.permissioncontroller.R
-import com.android.permissioncontroller.permission.ui.wear.elements.CheckYourPhoneScreen
-import com.android.permissioncontroller.permission.ui.wear.elements.CheckYourPhoneState
-import com.android.permissioncontroller.permission.ui.wear.elements.CheckYourPhoneState.InProgress
-import com.android.permissioncontroller.permission.ui.wear.elements.CheckYourPhoneState.Success
-import com.android.permissioncontroller.permission.ui.wear.elements.ScrollableScreen
-import com.android.permissioncontroller.permission.ui.wear.elements.dismiss
-import com.android.permissioncontroller.permission.ui.wear.elements.findActivity
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.Chip
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.DialogButtonContent
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionConfirmationDialog
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionIconBuilder
import com.android.permissioncontroller.permission.ui.wear.model.WearEnhancedConfirmationViewModel
import com.android.permissioncontroller.permission.ui.wear.model.WearEnhancedConfirmationViewModel.ScreenState
-import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper
+import com.android.permissioncontroller.wear.permission.components.CheckYourPhoneScreen
+import com.android.permissioncontroller.wear.permission.components.CheckYourPhoneState
+import com.android.permissioncontroller.wear.permission.components.CheckYourPhoneState.InProgress
+import com.android.permissioncontroller.wear.permission.components.CheckYourPhoneState.Success
+import com.android.permissioncontroller.wear.permission.components.ScrollableScreen
+import com.android.permissioncontroller.wear.permission.components.dismiss
+import com.android.permissioncontroller.wear.permission.components.findActivity
+import com.android.permissioncontroller.wear.permission.components.material2.Chip
+import com.android.permissioncontroller.wear.permission.components.material3.DialogButtonContent
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionConfirmationDialog
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionIconBuilder
+import com.android.permissioncontroller.wear.permission.components.theme.ResourceHelper
@Composable
fun WearEnhancedConfirmationScreen(
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearGrantPermissionsScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearGrantPermissionsScreen.kt
index 20c010781..f17e21c1f 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearGrantPermissionsScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearGrantPermissionsScreen.kt
@@ -22,6 +22,7 @@ import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.res.stringResource
+import androidx.core.util.size
import androidx.wear.compose.material3.Dialog
import com.android.permissioncontroller.R
import com.android.permissioncontroller.permission.ui.GrantPermissionsActivity.ALLOW_ALWAYS_BUTTON
@@ -38,13 +39,13 @@ import com.android.permissioncontroller.permission.ui.GrantPermissionsActivity.N
import com.android.permissioncontroller.permission.ui.GrantPermissionsActivity.NO_UPGRADE_OT_AND_DONT_ASK_AGAIN_BUTTON
import com.android.permissioncontroller.permission.ui.GrantPermissionsActivity.NO_UPGRADE_OT_BUTTON
import com.android.permissioncontroller.permission.ui.wear.GrantPermissionsWearViewHandler.BUTTON_RES_ID_TO_NUM
-import com.android.permissioncontroller.permission.ui.wear.elements.ScrollableScreen
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButton
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionToggleControl
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionToggleControlType
import com.android.permissioncontroller.permission.ui.wear.model.WearGrantPermissionsViewModel
-import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion.MATERIAL3
+import com.android.permissioncontroller.wear.permission.components.ScrollableScreen
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButton
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionToggleControl
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionToggleControlType
+import com.android.permissioncontroller.wear.permission.components.theme.ResourceHelper
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionMaterialUIVersion.MATERIAL3
@Composable
fun WearGrantPermissionsScreen(
@@ -84,7 +85,7 @@ fun WearGrantPermissionsScreen(
)
}
}
- for (i in 0 until BUTTON_RES_ID_TO_NUM.size()) {
+ for (i in 0 until BUTTON_RES_ID_TO_NUM.size) {
val pos: Int = BUTTON_RES_ID_TO_NUM.valueAt(i)
if (buttonVisibilities.value.size <= pos) {
// initial value of buttonVisibilities is empty
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageCustomPermissionScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageCustomPermissionScreen.kt
index d826e501e..72c3d2054 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageCustomPermissionScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageCustomPermissionScreen.kt
@@ -25,9 +25,9 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.res.stringResource
import com.android.permissioncontroller.R
import com.android.permissioncontroller.permission.ui.model.ManageCustomPermissionsViewModel
-import com.android.permissioncontroller.permission.ui.wear.elements.ScrollableScreen
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButton
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionIconBuilder
+import com.android.permissioncontroller.wear.permission.components.ScrollableScreen
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButton
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionIconBuilder
@Composable
fun WearManageCustomPermissionScreen(
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageCustomPermissionsFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageCustomPermissionsFragment.kt
index a9e83919f..96da37b9b 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageCustomPermissionsFragment.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageCustomPermissionsFragment.kt
@@ -26,13 +26,13 @@ import androidx.lifecycle.ViewModelProvider
import com.android.permissioncontroller.Constants
import com.android.permissioncontroller.permission.ui.handheld.PermissionAppsFragment
import com.android.permissioncontroller.permission.ui.model.ManageCustomPermissionsViewModel
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionTheme
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionTheme
class WearManageCustomPermissionsFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
- savedInstanceState: Bundle?
+ savedInstanceState: Bundle?,
): View? {
val activity = requireActivity()
val application = activity.getApplication()
@@ -41,14 +41,14 @@ class WearManageCustomPermissionsFragment : Fragment() {
val viewModel =
ViewModelProvider(
this,
- ViewModelProvider.AndroidViewModelFactory.getInstance(application)
+ ViewModelProvider.AndroidViewModelFactory.getInstance(application),
)
.get(ManageCustomPermissionsViewModel::class.java)
val onPermGroupClick: (String) -> Unit = { permGroupName ->
viewModel.showPermissionApps(
this,
- PermissionAppsFragment.createArgs(permGroupName, sessionId)
+ PermissionAppsFragment.createArgs(permGroupName, sessionId),
)
}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageStandardPermissionScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageStandardPermissionScreen.kt
index 3e347e19c..2fdf33130 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageStandardPermissionScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageStandardPermissionScreen.kt
@@ -29,13 +29,13 @@ import androidx.compose.ui.res.stringResource
import com.android.permissioncontroller.R
import com.android.permissioncontroller.permission.model.livedatatypes.PermGroupPackagesUiInfo
import com.android.permissioncontroller.permission.ui.model.ManageStandardPermissionsViewModel
-import com.android.permissioncontroller.permission.ui.wear.elements.ScrollableScreen
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButton
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionIconBuilder
import com.android.permissioncontroller.permission.utils.KotlinUtils.getPermGroupIcon
import com.android.permissioncontroller.permission.utils.KotlinUtils.getPermGroupLabel
import com.android.permissioncontroller.permission.utils.StringUtils
import com.android.permissioncontroller.permission.utils.Utils
+import com.android.permissioncontroller.wear.permission.components.ScrollableScreen
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButton
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionIconBuilder
import java.text.Collator
@Composable
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageStandardPermissionsFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageStandardPermissionsFragment.kt
index 16ed1f067..d88554562 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageStandardPermissionsFragment.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearManageStandardPermissionsFragment.kt
@@ -27,13 +27,13 @@ import com.android.permissioncontroller.Constants
import com.android.permissioncontroller.permission.ui.handheld.ManageCustomPermissionsFragment
import com.android.permissioncontroller.permission.ui.handheld.PermissionAppsFragment
import com.android.permissioncontroller.permission.ui.model.ManageStandardPermissionsViewModel
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionTheme
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionTheme
class WearManageStandardPermissionsFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
- savedInstanceState: Bundle?
+ savedInstanceState: Bundle?,
): View? {
val activity = requireActivity()
val application = activity.getApplication()
@@ -42,20 +42,20 @@ class WearManageStandardPermissionsFragment : Fragment() {
val viewModel: ManageStandardPermissionsViewModel =
ViewModelProvider(
this,
- ViewModelProvider.AndroidViewModelFactory.getInstance(application)
+ ViewModelProvider.AndroidViewModelFactory.getInstance(application),
)
.get(ManageStandardPermissionsViewModel::class.java)
val onPermGroupClick: (String) -> Unit = { permGroupName ->
viewModel.showPermissionApps(
this,
- PermissionAppsFragment.createArgs(permGroupName, sessionId)
+ PermissionAppsFragment.createArgs(permGroupName, sessionId),
)
}
val onCustomPermGroupClick = {
viewModel.showCustomPermissions(
this,
- ManageCustomPermissionsFragment.createArgs(sessionId)
+ ManageCustomPermissionsFragment.createArgs(sessionId),
)
}
val onAutoRevokeClick = {
@@ -69,7 +69,7 @@ class WearManageStandardPermissionsFragment : Fragment() {
viewModel,
onPermGroupClick,
onCustomPermGroupClick,
- onAutoRevokeClick
+ onAutoRevokeClick,
)
}
}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionAppsScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionAppsScreen.kt
index 2fa6aa7f3..6f0d94d02 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionAppsScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionAppsScreen.kt
@@ -30,10 +30,10 @@ import androidx.compose.ui.res.stringResource
import androidx.wear.compose.material.Text
import com.android.permissioncontroller.R
import com.android.permissioncontroller.permission.ui.Category
-import com.android.permissioncontroller.permission.ui.wear.elements.ScrollableScreen
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButton
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionIconBuilder
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionListSubHeader
+import com.android.permissioncontroller.wear.permission.components.ScrollableScreen
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButton
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionIconBuilder
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionListSubHeader
/** Compose the screen associated to a [WearPermissionAppsFragment]. */
@Composable
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionUsageDetailsScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionUsageDetailsScreen.kt
index 279eaa8cc..9b65a067f 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionUsageDetailsScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionUsageDetailsScreen.kt
@@ -35,11 +35,11 @@ import com.android.permissioncontroller.permission.ui.model.v31.BasePermissionUs
import com.android.permissioncontroller.permission.ui.model.v31.PermissionUsageDetailsViewModel
import com.android.permissioncontroller.permission.ui.model.v31.PermissionUsageDetailsViewModel.AppPermissionAccessUiInfo
import com.android.permissioncontroller.permission.ui.model.v31.PermissionUsageDetailsViewModel.PermissionUsageDetailsUiState
-import com.android.permissioncontroller.permission.ui.wear.elements.ScrollableScreen
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButton
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButtonStyle
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionIconBuilder
import com.android.permissioncontroller.permission.utils.KotlinUtils
+import com.android.permissioncontroller.wear.permission.components.ScrollableScreen
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButton
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButtonStyle
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionIconBuilder
@RequiresApi(Build.VERSION_CODES.S)
@Composable
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionUsageScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionUsageScreen.kt
index 889caba3b..b331e197b 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionUsageScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionUsageScreen.kt
@@ -32,10 +32,10 @@ import com.android.permissioncontroller.R
import com.android.permissioncontroller.permission.ui.handheld.v31.PermissionUsageControlPreference
import com.android.permissioncontroller.permission.ui.viewmodel.v31.PermissionUsageViewModel
import com.android.permissioncontroller.permission.ui.viewmodel.v31.PermissionUsagesUiState
-import com.android.permissioncontroller.permission.ui.wear.elements.ScrollableScreen
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButton
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionIconBuilder
import com.android.permissioncontroller.permission.utils.Utils
+import com.android.permissioncontroller.wear.permission.components.ScrollableScreen
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButton
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionIconBuilder
import java.text.Collator
@RequiresApi(Build.VERSION_CODES.S)
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearUnusedAppsFragment.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearUnusedAppsFragment.kt
index 64acfdd96..d454cc566 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearUnusedAppsFragment.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearUnusedAppsFragment.kt
@@ -41,14 +41,14 @@ import com.android.permissioncontroller.permission.ui.model.UnusedAppsViewModel.
import com.android.permissioncontroller.permission.ui.model.UnusedAppsViewModelFactory
import com.android.permissioncontroller.permission.ui.wear.model.WearUnusedAppsViewModel
import com.android.permissioncontroller.permission.ui.wear.model.WearUnusedAppsViewModel.UnusedAppChip
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionTheme
import com.android.permissioncontroller.permission.utils.KotlinUtils
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionTheme
import com.android.settingslib.utils.applications.AppUtils
import java.text.Collator
/**
* This is a condensed version of
- * [com.android.permissioncontroller.permission.ui.UnusedAppsFragment.kt], tailored for Wear.
+ * [com.android.permissioncontroller.permission.ui.UnusedAppsFragment], tailored for Wear.
*
* A fragment displaying all applications that are unused as well as the option to remove them and
* to open them.
@@ -62,7 +62,7 @@ class WearUnusedAppsFragment : Fragment() {
private var sessionId: Long = 0L
private var isFirstLoad = false
private var categoryVisibilities: MutableList<Boolean> =
- MutableList(UnusedPeriod.values().size) { false }
+ MutableList(UnusedPeriod.entries.size) { false }
private var unusedAppsMap: MutableMap<UnusedPeriod, MutableMap<String, UnusedAppChip>> =
initUnusedAppsMap()
@@ -87,7 +87,7 @@ class WearUnusedAppsFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
- savedInstanceState: Bundle?
+ savedInstanceState: Bundle?,
): View? {
isFirstLoad = true
context = requireContext()
@@ -101,7 +101,7 @@ class WearUnusedAppsFragment : Fragment() {
wearViewModel =
ViewModelProvider(
this,
- ViewModelProvider.AndroidViewModelFactory.getInstance(application)
+ ViewModelProvider.AndroidViewModelFactory.getInstance(application),
)
.get(WearUnusedAppsViewModel::class.java)
viewModel.unusedPackageCategoriesLiveData.observe(
@@ -111,7 +111,7 @@ class WearUnusedAppsFragment : Fragment() {
updatePackages(pkgs)
updateWearViewModel(false)
}
- }
+ },
)
if (!viewModel.unusedPackageCategoriesLiveData.isInitialized) {
@@ -125,7 +125,7 @@ class WearUnusedAppsFragment : Fragment() {
updateWearViewModel(false)
}
},
- SHOW_LOAD_DELAY_MS
+ SHOW_LOAD_DELAY_MS,
)
} else {
updatePackages(viewModel.unusedPackageCategoriesLiveData.value!!)
@@ -192,14 +192,14 @@ class WearUnusedAppsFragment : Fragment() {
getString(
R.string.auto_revoked_app_summary_two,
importantLabel,
- otherLabel
+ otherLabel,
)
}
else ->
getString(
R.string.auto_revoked_app_summary_many,
importantLabel,
- "${revokedPerms.size - 1}"
+ "${revokedPerms.size - 1}",
)
}
@@ -215,9 +215,9 @@ class WearUnusedAppsFragment : Fragment() {
AppUtils.getAppContentDescription(
context,
pkgName,
- user.getIdentifier()
+ user.getIdentifier(),
),
- onChipClicked
+ onChipClicked,
)
unusedAppsMap[period]!!.put(key, chip)
}
@@ -242,7 +242,7 @@ class WearUnusedAppsFragment : Fragment() {
for (period in allPeriods) {
Log.i(
LOG_TAG,
- "sessionId: $sessionId $period unused: " + "${categorizedPackages[period]}"
+ "sessionId: $sessionId $period unused: " + "${categorizedPackages[period]}",
)
for (revokedPackageInfo in categorizedPackages[period]!!) {
for (groupName in revokedPackageInfo.revokedGroups) {
@@ -251,7 +251,7 @@ class WearUnusedAppsFragment : Fragment() {
revokedPackageInfo.packageName,
revokedPackageInfo.user,
groupName,
- isNewlyRevoked
+ isNewlyRevoked,
)
}
}
@@ -292,7 +292,7 @@ class WearUnusedAppsFragment : Fragment() {
private fun compareUnusedApps(
lhs: Pair<String, UnusedAppChip>,
- rhs: Pair<String, UnusedAppChip>
+ rhs: Pair<String, UnusedAppChip>,
): Int {
var result = collator.compare(lhs.second.label, rhs.second.label)
if (result == 0) {
@@ -303,7 +303,7 @@ class WearUnusedAppsFragment : Fragment() {
private fun updateWearViewModel(isLoading: Boolean) {
wearViewModel.loadingLiveData.value = isLoading
- wearViewModel.unusedPeriodCategoryVisibilitiesLiveData.setValue(categoryVisibilities)
+ wearViewModel.unusedPeriodCategoryVisibilitiesLiveData.value = categoryVisibilities
// Need to copy to non mutable maps or compose will not update correctly
val map = mutableMapOf<UnusedPeriod, Map<String, UnusedAppChip>>()
@@ -311,6 +311,6 @@ class WearUnusedAppsFragment : Fragment() {
map.put(period, unusedAppsMap[period]!!.toMap())
}
- wearViewModel.unusedAppChipsLiveData.setValue(map.toMap())
+ wearViewModel.unusedAppChipsLiveData.value = map.toMap()
}
}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearUnusedAppsScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearUnusedAppsScreen.kt
index 0bde97f81..c5eef53f2 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearUnusedAppsScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearUnusedAppsScreen.kt
@@ -25,10 +25,10 @@ import com.android.permissioncontroller.R
import com.android.permissioncontroller.hibernation.isHibernationEnabled
import com.android.permissioncontroller.permission.ui.model.UnusedAppsViewModel.UnusedPeriod
import com.android.permissioncontroller.permission.ui.model.UnusedAppsViewModel.UnusedPeriod.Companion.allPeriods
-import com.android.permissioncontroller.permission.ui.wear.elements.ScrollableScreen
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButton
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionIconBuilder
import com.android.permissioncontroller.permission.ui.wear.model.WearUnusedAppsViewModel
+import com.android.permissioncontroller.wear.permission.components.ScrollableScreen
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButton
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionIconBuilder
@Composable
fun WearUnusedAppsScreen(viewModel: WearUnusedAppsViewModel) {
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearUtils.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearUtils.kt
index 7e4e939b9..6cdf47cec 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearUtils.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearUtils.kt
@@ -22,7 +22,6 @@ import androidx.annotation.IntDef
import com.android.permissioncontroller.R
import java.time.ZonedDateTime
import java.time.temporal.ChronoUnit
-import java.util.Locale
object WearUtils {
@Retention(AnnotationRetention.SOURCE)
@@ -48,7 +47,7 @@ object WearUtils {
res.getString(
R.string.wear_app_perms_7d_access,
summaryTimestamp.third,
- summaryTimestamp.first
+ summaryTimestamp.first,
)
else -> ""
}
@@ -57,7 +56,7 @@ object WearUtils {
@JvmStatic
private fun getPermissionLastAccessSummaryTimestamp(
lastAccessTime: Long?,
- context: Context
+ context: Context,
): Triple<String, Int, String> {
val midnightToday =
(ZonedDateTime.now().truncatedTo(ChronoUnit.DAYS).toEpochSecond() * 1000L)
@@ -78,8 +77,4 @@ object WearUtils {
}
return Triple(lastAccessTimeFormatted, lastAccessType, lastAccessDateFormatted)
}
-
- fun String.capitalize(): String = replaceFirstChar {
- if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString()
- }
}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/RemoteConnectionProgressIndicator.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/RemoteConnectionProgressIndicator.kt
deleted file mode 100644
index 244e7e3fd..000000000
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/RemoteConnectionProgressIndicator.kt
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.permissioncontroller.permission.ui.wear.elements
-
-import androidx.compose.foundation.background
-import androidx.compose.foundation.layout.Box
-import androidx.compose.foundation.layout.size
-import androidx.compose.foundation.shape.CircleShape
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.Alignment
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.draw.clip
-import androidx.compose.ui.res.painterResource
-import androidx.compose.ui.unit.dp
-import androidx.wear.compose.material.CircularProgressIndicator
-import androidx.wear.compose.material.Icon
-import androidx.wear.compose.material.MaterialTheme
-
-@Composable
-fun RemoteConnectionProgressIndicator(iconRes: Int, modifier: Modifier) {
- val indicatorPadding = 8.dp
- val iconSize = 48.dp
- val progressBarStrokeWidth = 4.dp
- Box(
- modifier = modifier.size(iconSize).clip(CircleShape),
- ) {
- CircularProgressIndicator(
- modifier = Modifier.size(iconSize - progressBarStrokeWidth + indicatorPadding),
- strokeWidth = progressBarStrokeWidth,
- )
- Icon(
- painter = painterResource(iconRes),
- contentDescription = null,
- modifier =
- Modifier.align(Alignment.Center)
- .size(iconSize - indicatorPadding - 8.dp)
- .clip(CircleShape),
- )
- }
-}
-
-@Composable
-fun RemoteConnectionSuccess(iconRes: Int, modifier: Modifier) {
- val indicatorPadding = 8.dp
- val iconSize = 48.dp
- val backgroundColor = MaterialTheme.colors.onSurface
- val contentColor = MaterialTheme.colors.surface
- Box(
- modifier = modifier.size(iconSize).clip(CircleShape).background(backgroundColor),
- ) {
- Icon(
- painter = painterResource(iconRes),
- contentDescription = null,
- tint = contentColor,
- modifier =
- Modifier.align(Alignment.Center)
- .size(iconSize - indicatorPadding - 8.dp)
- .clip(CircleShape),
- )
- }
-}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearPermissionTheme.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearPermissionTheme.kt
deleted file mode 100644
index 736d543a3..000000000
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearPermissionTheme.kt
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.permissioncontroller.permission.ui.wear.theme
-
-import android.content.Context
-import android.os.Build
-import androidx.annotation.RequiresApi
-import androidx.annotation.StringRes
-import androidx.annotation.VisibleForTesting
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.platform.LocalContext
-import androidx.compose.ui.text.font.DeviceFontFamilyName
-import androidx.compose.ui.text.font.Font
-import androidx.compose.ui.text.font.FontFamily
-import androidx.wear.compose.material.Colors
-import androidx.wear.compose.material.MaterialTheme
-import androidx.wear.compose.material.Typography
-import androidx.wear.compose.material3.MaterialTheme as Material3Theme
-import com.android.permissioncontroller.R
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion.MATERIAL2_5
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion.MATERIAL3
-
-/** This enum is used to specify the material version used for a specific screen */
-enum class WearPermissionMaterialUIVersion {
- MATERIAL2_5,
- MATERIAL3,
-}
-
-/**
- * Supports both Material 3 and Material 2_5 theme. default version for permission theme will be 2_5
- * until we migrate enough screens to 3. 2_5 version will use material 3 overlay resources if we
- * enable material3 for even one screen (Permission screens will be migrated in phases).
- */
-@Composable
-fun WearPermissionTheme(
- version: WearPermissionMaterialUIVersion = MATERIAL2_5,
- content: @Composable () -> Unit,
-) {
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.VANILLA_ICE_CREAM) {
- WearPermissionLegacyTheme(content)
- } else {
- // Material3 UI controls are still being used in the screen that the theme is applied
- if (version == MATERIAL3) {
- val material3Theme = WearOverlayableMaterial3Theme(LocalContext.current)
- Material3Theme(
- colorScheme = material3Theme.colorScheme,
- typography = material3Theme.typography,
- shapes = material3Theme.shapes,
- content = content,
- )
- }
- // Material2_5 UI controls are still being used in the screen that the theme is applied,
- // But some in-app screens(like permission grant screen) are migrated to material3.
- // To avoid having two set of overlay resources, we will use material3 overlay resources to
- // support material2_5 UI controls as well.
- else if (version == MATERIAL2_5 && ResourceHelper.materialUIVersionInApp == MATERIAL3) {
- val material3Theme = WearOverlayableMaterial3Theme(LocalContext.current)
- val bridgedLegacyTheme = WearMaterialBridgedLegacyTheme.createFrom(material3Theme)
- MaterialTheme(
- colors = bridgedLegacyTheme.colors,
- typography = bridgedLegacyTheme.typography,
- shapes = bridgedLegacyTheme.shapes,
- content = content,
- )
- }
- // We are not ready for material3 yet in any screens.
- else {
- WearPermissionLegacyTheme(content)
- }
- }
-}
-
-/**
- * The Material 2.5 Theme Wrapper for Supporting RRO with legacy resources. This theme is kept here
- * for backward compatibility. When grant screen is updated to material3 will clean up legacy
- * resources.
- */
-@Composable
-fun WearPermissionLegacyTheme(content: @Composable () -> Unit) {
- val context = LocalContext.current
- val colors =
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
- overlayColors(context)
- .copy(error = MaterialTheme.colors.error, onError = MaterialTheme.colors.onError)
- } else {
- MaterialTheme.colors
- }
- MaterialTheme(colors = colors, typography = deviceDefaultTypography(context), content = content)
-}
-
-/**
- * Creates a dynamic color maps that can be overlaid. 100 - Lightest shade; 0 - Darkest Shade; In
- * wear we only support dark theme for the time being. Thus the fill colors and variants are dark
- * and anything on top is light. We will use this custom redirection until wear compose material
- * supports color scheming.
- *
- * The mapping is best case match on wear material color tokens from
- * /android/clockwork/common/wearable/wearmaterial/color/res/values/color-tokens.xml
- *
- * @param context The context required to get system resource data.
- */
-@RequiresApi(Build.VERSION_CODES.S)
-@VisibleForTesting
-internal fun overlayColors(context: Context): Colors {
- val tonalPalette = dynamicTonalPalette(context)
- return Colors(
- background = Color.Black,
- onBackground = Color.White,
- primary = tonalPalette.primary90,
- primaryVariant = tonalPalette.primary80,
- onPrimary = tonalPalette.primary10,
- secondary = tonalPalette.tertiary90,
- secondaryVariant = tonalPalette.tertiary60,
- onSecondary = tonalPalette.tertiary10,
- surface = tonalPalette.neutral20,
- onSurface = tonalPalette.neutral95,
- onSurfaceVariant = tonalPalette.neutralVariant80,
- )
-}
-
-private fun fontFamily(context: Context, @StringRes id: Int): FontFamily {
- val typefaceName = context.resources.getString(id)
- val font = Font(familyName = DeviceFontFamilyName(typefaceName))
- return FontFamily(font)
-}
-
-/*
- Only customizes font family. The material 3 roles to 2.5 are mapped to the best case matching of
- google3/java/com/google/android/wearable/libraries/compose/theme/GoogleMaterialTheme.kt
-*/
-internal fun deviceDefaultTypography(context: Context): Typography {
- val defaultTypography = Typography()
- return Typography(
- display1 =
- defaultTypography.display1.copy(
- fontFamily =
- fontFamily(context, R.string.wear_material_compose_display_1_font_family)
- ),
- display2 =
- defaultTypography.display2.copy(
- fontFamily =
- fontFamily(context, R.string.wear_material_compose_display_2_font_family)
- ),
- display3 =
- defaultTypography.display3.copy(
- fontFamily =
- fontFamily(context, R.string.wear_material_compose_display_3_font_family)
- ),
- title1 =
- defaultTypography.title1.copy(
- fontFamily = fontFamily(context, R.string.wear_material_compose_title_1_font_family)
- ),
- title2 =
- defaultTypography.title2.copy(
- fontFamily = fontFamily(context, R.string.wear_material_compose_title_2_font_family)
- ),
- title3 =
- defaultTypography.title3.copy(
- fontFamily = fontFamily(context, R.string.wear_material_compose_title_3_font_family)
- ),
- body1 =
- defaultTypography.body1.copy(
- fontFamily = fontFamily(context, R.string.wear_material_compose_body_1_font_family)
- ),
- body2 =
- defaultTypography.body2.copy(
- fontFamily = fontFamily(context, R.string.wear_material_compose_body_2_font_family)
- ),
- button =
- defaultTypography.button.copy(
- fontFamily = fontFamily(context, R.string.wear_material_compose_button_font_family)
- ),
- caption1 =
- defaultTypography.caption1.copy(
- fontFamily =
- fontFamily(context, R.string.wear_material_compose_caption_1_font_family)
- ),
- caption2 =
- defaultTypography.caption2.copy(
- fontFamily =
- fontFamily(context, R.string.wear_material_compose_caption_2_font_family)
- ),
- caption3 =
- defaultTypography.caption3.copy(
- fontFamily =
- fontFamily(context, R.string.wear_material_compose_caption_3_font_family)
- ),
- )
-}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearPermissionTonalPalette.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearPermissionTonalPalette.kt
deleted file mode 100644
index a86af8b3d..000000000
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearPermissionTonalPalette.kt
+++ /dev/null
@@ -1,191 +0,0 @@
-@file:Suppress("unused")
-
-package com.android.permissioncontroller.permission.ui.wear.theme
-
-import android.R
-import android.content.Context
-import android.os.Build
-import androidx.annotation.ColorRes
-import androidx.annotation.DoNotInline
-import androidx.annotation.RequiresApi
-import androidx.compose.ui.graphics.Color
-
-/**
- * Tonal Palette structure in Material.
- *
- * A tonal palette is comprised of 5 tonal ranges. Each tonal range includes the 13 stops, or tonal
- * swatches.
- *
- * Tonal range names are:
- * - Neutral (N)
- * - Neutral variant (NV)
- * - Primary (P)
- * - Secondary (S)
- * - Tertiary (T)
- */
-internal class WearPermissionTonalPalette(
- // The neutral tonal range.
- val neutral100: Color,
- val neutral99: Color,
- val neutral95: Color,
- val neutral90: Color,
- val neutral80: Color,
- val neutral70: Color,
- val neutral60: Color,
- val neutral50: Color,
- val neutral40: Color,
- val neutral30: Color,
- val neutral20: Color,
- val neutral10: Color,
- val neutral0: Color,
-
- // The neutral variant tonal range, sometimes called "neutral 2"
- val neutralVariant100: Color,
- val neutralVariant99: Color,
- val neutralVariant95: Color,
- val neutralVariant90: Color,
- val neutralVariant80: Color,
- val neutralVariant70: Color,
- val neutralVariant60: Color,
- val neutralVariant50: Color,
- val neutralVariant40: Color,
- val neutralVariant30: Color,
- val neutralVariant20: Color,
- val neutralVariant10: Color,
- val neutralVariant0: Color,
-
- // The primary tonal range, also known as accent 1
- val primary100: Color,
- val primary99: Color,
- val primary95: Color,
- val primary90: Color,
- val primary80: Color,
- val primary70: Color,
- val primary60: Color,
- val primary50: Color,
- val primary40: Color,
- val primary30: Color,
- val primary20: Color,
- val primary10: Color,
- val primary0: Color,
-
- // The Secondary tonal range, also know as accent 2
- val secondary100: Color,
- val secondary99: Color,
- val secondary95: Color,
- val secondary90: Color,
- val secondary80: Color,
- val secondary70: Color,
- val secondary60: Color,
- val secondary50: Color,
- val secondary40: Color,
- val secondary30: Color,
- val secondary20: Color,
- val secondary10: Color,
- val secondary0: Color,
-
- // The tertiary tonal range, also known as accent 3
- val tertiary100: Color,
- val tertiary99: Color,
- val tertiary95: Color,
- val tertiary90: Color,
- val tertiary80: Color,
- val tertiary70: Color,
- val tertiary60: Color,
- val tertiary50: Color,
- val tertiary40: Color,
- val tertiary30: Color,
- val tertiary20: Color,
- val tertiary10: Color,
- val tertiary0: Color,
-)
-/** Dynamic colors for wear compose material to support resource overlay. */
-@RequiresApi(Build.VERSION_CODES.S)
-// TODO: once we have proper support for this on Wear 6+, we will do something similar to
-// https://source.corp.google.com/h/android/platform/superproject/+/androidx-main:frameworks/support/compose/material3/material3/src/androidMain/kotlin/androidx/compose/material3/DynamicTonalPalette.android.kt;l=307-362?q=dynamicTonalPalette&sq=repo:android%2Fplatform%2Fsuperproject%20b:androidx-main
-// Tracking Bug: b/270720571
-internal fun dynamicTonalPalette(context: Context) =
- WearPermissionTonalPalette(
- // The neutral tonal range from the generated dynamic color palette.
- neutral100 = ColorResourceHelper.getColor(context, R.color.system_neutral1_0),
- neutral99 = ColorResourceHelper.getColor(context, R.color.system_neutral1_10),
- neutral95 = ColorResourceHelper.getColor(context, R.color.system_neutral1_50),
- neutral90 = ColorResourceHelper.getColor(context, R.color.system_neutral1_100),
- neutral80 = ColorResourceHelper.getColor(context, R.color.system_neutral1_200),
- neutral70 = ColorResourceHelper.getColor(context, R.color.system_neutral1_300),
- neutral60 = ColorResourceHelper.getColor(context, R.color.system_neutral1_400),
- neutral50 = ColorResourceHelper.getColor(context, R.color.system_neutral1_500),
- neutral40 = ColorResourceHelper.getColor(context, R.color.system_neutral1_600),
- neutral30 = ColorResourceHelper.getColor(context, R.color.system_neutral1_700),
- neutral20 = ColorResourceHelper.getColor(context, R.color.system_neutral1_800),
- neutral10 = ColorResourceHelper.getColor(context, R.color.system_neutral1_900),
- neutral0 = ColorResourceHelper.getColor(context, R.color.system_neutral1_1000),
-
- // The neutral variant tonal range, sometimes called "neutral 2", from the
- // generated dynamic color palette.
- neutralVariant100 = ColorResourceHelper.getColor(context, R.color.system_neutral2_0),
- neutralVariant99 = ColorResourceHelper.getColor(context, R.color.system_neutral2_10),
- neutralVariant95 = ColorResourceHelper.getColor(context, R.color.system_neutral2_50),
- neutralVariant90 = ColorResourceHelper.getColor(context, R.color.system_neutral2_100),
- neutralVariant80 = ColorResourceHelper.getColor(context, R.color.system_neutral2_200),
- neutralVariant70 = ColorResourceHelper.getColor(context, R.color.system_neutral2_300),
- neutralVariant60 = ColorResourceHelper.getColor(context, R.color.system_neutral2_400),
- neutralVariant50 = ColorResourceHelper.getColor(context, R.color.system_neutral2_500),
- neutralVariant40 = ColorResourceHelper.getColor(context, R.color.system_neutral2_600),
- neutralVariant30 = ColorResourceHelper.getColor(context, R.color.system_neutral2_700),
- neutralVariant20 = ColorResourceHelper.getColor(context, R.color.system_neutral2_800),
- neutralVariant10 = ColorResourceHelper.getColor(context, R.color.system_neutral2_900),
- neutralVariant0 = ColorResourceHelper.getColor(context, R.color.system_neutral2_1000),
-
- // The primary tonal range from the generated dynamic color palette.
- primary100 = ColorResourceHelper.getColor(context, R.color.system_accent1_0),
- primary99 = ColorResourceHelper.getColor(context, R.color.system_accent1_10),
- primary95 = ColorResourceHelper.getColor(context, R.color.system_accent1_50),
- primary90 = ColorResourceHelper.getColor(context, R.color.system_accent1_100),
- primary80 = ColorResourceHelper.getColor(context, R.color.system_accent1_200),
- primary70 = ColorResourceHelper.getColor(context, R.color.system_accent1_300),
- primary60 = ColorResourceHelper.getColor(context, R.color.system_accent1_400),
- primary50 = ColorResourceHelper.getColor(context, R.color.system_accent1_500),
- primary40 = ColorResourceHelper.getColor(context, R.color.system_accent1_600),
- primary30 = ColorResourceHelper.getColor(context, R.color.system_accent1_700),
- primary20 = ColorResourceHelper.getColor(context, R.color.system_accent1_800),
- primary10 = ColorResourceHelper.getColor(context, R.color.system_accent1_900),
- primary0 = ColorResourceHelper.getColor(context, R.color.system_accent1_1000),
-
- // The secondary tonal range from the generated dynamic color palette.
- secondary100 = ColorResourceHelper.getColor(context, R.color.system_accent2_0),
- secondary99 = ColorResourceHelper.getColor(context, R.color.system_accent2_10),
- secondary95 = ColorResourceHelper.getColor(context, R.color.system_accent2_50),
- secondary90 = ColorResourceHelper.getColor(context, R.color.system_accent2_100),
- secondary80 = ColorResourceHelper.getColor(context, R.color.system_accent2_200),
- secondary70 = ColorResourceHelper.getColor(context, R.color.system_accent2_300),
- secondary60 = ColorResourceHelper.getColor(context, R.color.system_accent2_400),
- secondary50 = ColorResourceHelper.getColor(context, R.color.system_accent2_500),
- secondary40 = ColorResourceHelper.getColor(context, R.color.system_accent2_600),
- secondary30 = ColorResourceHelper.getColor(context, R.color.system_accent2_700),
- secondary20 = ColorResourceHelper.getColor(context, R.color.system_accent2_800),
- secondary10 = ColorResourceHelper.getColor(context, R.color.system_accent2_900),
- secondary0 = ColorResourceHelper.getColor(context, R.color.system_accent2_1000),
-
- // The tertiary tonal range from the generated dynamic color palette.
- tertiary100 = ColorResourceHelper.getColor(context, R.color.system_accent3_0),
- tertiary99 = ColorResourceHelper.getColor(context, R.color.system_accent3_10),
- tertiary95 = ColorResourceHelper.getColor(context, R.color.system_accent3_50),
- tertiary90 = ColorResourceHelper.getColor(context, R.color.system_accent3_100),
- tertiary80 = ColorResourceHelper.getColor(context, R.color.system_accent3_200),
- tertiary70 = ColorResourceHelper.getColor(context, R.color.system_accent3_300),
- tertiary60 = ColorResourceHelper.getColor(context, R.color.system_accent3_400),
- tertiary50 = ColorResourceHelper.getColor(context, R.color.system_accent3_500),
- tertiary40 = ColorResourceHelper.getColor(context, R.color.system_accent3_600),
- tertiary30 = ColorResourceHelper.getColor(context, R.color.system_accent3_700),
- tertiary20 = ColorResourceHelper.getColor(context, R.color.system_accent3_800),
- tertiary10 = ColorResourceHelper.getColor(context, R.color.system_accent3_900),
- tertiary0 = ColorResourceHelper.getColor(context, R.color.system_accent3_1000),
- )
-
-private object ColorResourceHelper {
- @DoNotInline
- fun getColor(context: Context, @ColorRes id: Int): Color {
- return Color(context.resources.getColor(id, context.theme))
- }
-}
diff --git a/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearDefaultAppFragment.kt b/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearDefaultAppFragment.kt
index 156656e33..dc8f3bf88 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearDefaultAppFragment.kt
+++ b/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearDefaultAppFragment.kt
@@ -27,11 +27,11 @@ import androidx.compose.ui.platform.ComposeView
import androidx.core.os.BundleCompat
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionTheme
import com.android.permissioncontroller.role.ui.DefaultAppViewModel
import com.android.permissioncontroller.role.ui.ManageRoleHolderStateLiveData
import com.android.permissioncontroller.role.ui.wear.model.DefaultAppConfirmDialogViewModel
import com.android.permissioncontroller.role.ui.wear.model.DefaultAppConfirmDialogViewModelFactory
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionTheme
import com.android.role.controller.model.Role
import com.android.role.controller.model.Roles
@@ -46,14 +46,13 @@ class WearDefaultAppFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
- savedInstanceState: Bundle?
+ savedInstanceState: Bundle?,
): View? {
val roleName = arguments?.getString(Intent.EXTRA_ROLE_NAME) ?: ""
val user =
arguments?.let {
BundleCompat.getParcelable(it, Intent.EXTRA_USER, UserHandle::class.java)!!
- }
- ?: UserHandle.SYSTEM
+ } ?: UserHandle.SYSTEM
val activity = requireActivity()
role =
@@ -82,7 +81,7 @@ class WearDefaultAppFragment : Fragment() {
user,
role,
viewModel,
- confirmDialogViewModel
+ confirmDialogViewModel,
)
)
}
diff --git a/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearDefaultAppListScreen.kt b/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearDefaultAppListScreen.kt
index d5b93e318..131897fb9 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearDefaultAppListScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearDefaultAppListScreen.kt
@@ -29,11 +29,11 @@ import androidx.compose.ui.res.stringResource
import androidx.lifecycle.LiveData
import androidx.wear.compose.material.Text
import com.android.permissioncontroller.R
-import com.android.permissioncontroller.permission.ui.wear.elements.ScrollableScreen
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButton
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButtonStyle
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionIconBuilder
import com.android.permissioncontroller.role.ui.RoleItem
+import com.android.permissioncontroller.wear.permission.components.ScrollableScreen
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButton
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButtonStyle
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionIconBuilder
@Composable
fun WearDefaultAppListScreen(
diff --git a/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearDefaultAppScreen.kt b/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearDefaultAppScreen.kt
index 60cfcda47..067c5b1be 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearDefaultAppScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearDefaultAppScreen.kt
@@ -25,17 +25,17 @@ import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
-import com.android.permissioncontroller.permission.ui.wear.elements.ScrollableScreen
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.DialogButtonContent
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionConfirmationDialog
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionIconBuilder
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionListFooter
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionToggleControl
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionToggleControlStyle
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionToggleControlType
-import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion
import com.android.permissioncontroller.role.ui.wear.model.ConfirmDialogArgs
+import com.android.permissioncontroller.wear.permission.components.ScrollableScreen
+import com.android.permissioncontroller.wear.permission.components.material3.DialogButtonContent
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionConfirmationDialog
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionIconBuilder
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionListFooter
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionToggleControl
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionToggleControlStyle
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionToggleControlType
+import com.android.permissioncontroller.wear.permission.components.theme.ResourceHelper
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionMaterialUIVersion
@Composable
fun WearDefaultAppScreen(helper: WearDefaultAppHelper) {
diff --git a/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearRequestRoleScreen.kt b/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearRequestRoleScreen.kt
index b4758c88b..5244e1a63 100644
--- a/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearRequestRoleScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/role/ui/wear/WearRequestRoleScreen.kt
@@ -31,18 +31,18 @@ import androidx.compose.ui.platform.testTag
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.android.permissioncontroller.R
-import com.android.permissioncontroller.permission.ui.wear.elements.ScrollableScreen
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButton
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButtonStyle
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionIconBuilder
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionListFooter
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionToggleControl
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionToggleControlStyle
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionToggleControlType
-import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion
import com.android.permissioncontroller.role.UserPackage
import com.android.permissioncontroller.role.ui.ManageRoleHolderStateLiveData
+import com.android.permissioncontroller.wear.permission.components.ScrollableScreen
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButton
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButtonStyle
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionIconBuilder
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionListFooter
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionToggleControl
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionToggleControlStyle
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionToggleControlType
+import com.android.permissioncontroller.wear.permission.components.theme.ResourceHelper
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionMaterialUIVersion
@Composable
fun WearRequestRoleScreen(
diff --git a/PermissionController/wear-permission-components/Android.bp b/PermissionController/wear-permission-components/Android.bp
new file mode 100644
index 000000000..bdd783b60
--- /dev/null
+++ b/PermissionController/wear-permission-components/Android.bp
@@ -0,0 +1,67 @@
+// Copyright (C) 2022 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package {
+ default_team: "trendy_team_android_permissions",
+ default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+filegroup {
+ name: "wear-permission-components-sources",
+ srcs: [
+ "src/**/*.kt",
+ ],
+ visibility: ["//visibility:private"],
+}
+
+android_library {
+ name: "wear-permission-components",
+ manifest: "AndroidManifest.xml",
+ sdk_version: "system_current",
+ min_sdk_version: "30",
+ target_sdk_version: "33",
+ srcs: [
+ ":wear-permission-components-sources",
+ ],
+ resource_dirs: ["res"],
+ libs: [
+ "androidx.annotation_annotation",
+ "framework-annotations-lib",
+ ],
+ static_libs: [
+ "androidx.fragment_fragment",
+ "androidx.appcompat_appcompat",
+ "androidx.compose.foundation_foundation",
+ "androidx.compose.runtime_runtime",
+ "androidx.compose.runtime_runtime-livedata",
+ "androidx.compose.ui_ui",
+ "androidx.wear.compose_compose-material",
+ "androidx.wear.compose_compose-material3",
+ ],
+ kotlin_lang_version: "1.9",
+ kotlincflags: [
+ "-Werror",
+ "-opt-in=kotlinx.coroutines.DelicateCoroutinesApi",
+ "-Xjvm-default=all",
+ ],
+ installable: false,
+ visibility: [
+ "//packages/modules:__subpackages__",
+ ],
+ apex_available: [
+ "//apex_available:platform",
+ "com.android.permission",
+ "com.android.healthfitness",
+ ],
+}
diff --git a/PermissionController/wear-permission-components/AndroidManifest.xml b/PermissionController/wear-permission-components/AndroidManifest.xml
new file mode 100644
index 000000000..57eca6176
--- /dev/null
+++ b/PermissionController/wear-permission-components/AndroidManifest.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2022 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<manifest package="com.android.permissioncontroller.wear.permission.components">
+</manifest>
diff --git a/PermissionController/res/drawable/ic_security_update_good.xml b/PermissionController/wear-permission-components/res/drawable/ic_security_update_good.xml
index 59e7a67fa..59e7a67fa 100644
--- a/PermissionController/res/drawable/ic_security_update_good.xml
+++ b/PermissionController/wear-permission-components/res/drawable/ic_security_update_good.xml
diff --git a/PermissionController/res/values-watch/donottranslate.xml b/PermissionController/wear-permission-components/res/values/donottranslate.xml
index 03038ddd1..03038ddd1 100644
--- a/PermissionController/res/values-watch/donottranslate.xml
+++ b/PermissionController/wear-permission-components/res/values/donottranslate.xml
diff --git a/PermissionController/wear-permission-components/res/values/overlayable.xml b/PermissionController/wear-permission-components/res/values/overlayable.xml
new file mode 100644
index 000000000..94c5972f4
--- /dev/null
+++ b/PermissionController/wear-permission-components/res/values/overlayable.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources>
+ <overlayable name="WearPermissionControllerStyles">
+ <policy type="product|system|vendor|odm|oem">
+ <!--START WEAR SPECIFIC MATERIAL3 FONT FACE TOKENS-->
+ <item type="string" name="wear_compose_material3_arc_small_font_family" />
+ <item type="string" name="wear_compose_material3_arc_medium_font_family" />
+ <item type="string" name="wear_compose_material3_arc_large_font_family" />
+
+ <item type="string" name="wear_compose_material3_body_extra_small_font_family" />
+ <item type="string" name="wear_compose_material3_body_small_font_family" />
+ <item type="string" name="wear_compose_material3_body_medium_font_family" />
+ <item type="string" name="wear_compose_material3_body_large_font_family" />
+
+ <item type="string" name="wear_compose_material3_display_small_font_family" />
+ <item type="string" name="wear_compose_material3_display_medium_font_family" />
+ <item type="string" name="wear_compose_material3_display_large_font_family" />
+
+ <item type="string" name="wear_compose_material3_label_small_font_family" />
+ <item type="string" name="wear_compose_material3_label_medium_font_family" />
+ <item type="string" name="wear_compose_material3_label_large_font_family" />
+
+ <item type="string" name="wear_compose_material3_numeral_extra_small_font_family" />
+ <item type="string" name="wear_compose_material3_numeral_small_font_family" />
+ <item type="string" name="wear_compose_material3_numeral_medium_font_family" />
+ <item type="string" name="wear_compose_material3_numeral_large_font_family" />
+ <item type="string" name="wear_compose_material3_numeral_extra_large_font_family" />
+
+ <item type="string" name="wear_compose_material3_title_small_font_family" />
+ <item type="string" name="wear_compose_material3_title_medium_font_family" />
+ <item type="string" name="wear_compose_material3_title_large_font_family" />
+ <!--END WEAR SPECIFIC MATERIAL3 FONT FACE TOKENS-->
+
+
+ <!--START WEAR SPECIFIC MATERIAL3 FONT SIZE TOKENS-->
+ <item type="dimen" name="wear_compose_material3_arc_small_font_size" />
+ <item type="dimen" name="wear_compose_material3_arc_medium_font_size" />
+ <item type="dimen" name="wear_compose_material3_arc_large_font_size" />
+
+ <item type="dimen" name="wear_compose_material3_body_extra_small_font_size" />
+ <item type="dimen" name="wear_compose_material3_body_small_font_size" />
+ <item type="dimen" name="wear_compose_material3_body_medium_font_size" />
+ <item type="dimen" name="wear_compose_material3_body_large_font_size" />
+
+ <item type="dimen" name="wear_compose_material3_display_small_font_size" />
+ <item type="dimen" name="wear_compose_material3_display_medium_font_size" />
+ <item type="dimen" name="wear_compose_material3_display_large_font_size" />
+
+ <item type="dimen" name="wear_compose_material3_label_small_font_size" />
+ <item type="dimen" name="wear_compose_material3_label_medium_font_size" />
+ <item type="dimen" name="wear_compose_material3_label_large_font_size" />
+
+ <item type="dimen" name="wear_compose_material3_numeral_extra_small_font_size" />
+ <item type="dimen" name="wear_compose_material3_numeral_small_font_size" />
+ <item type="dimen" name="wear_compose_material3_numeral_medium_font_size" />
+ <item type="dimen" name="wear_compose_material3_numeral_large_font_size" />
+ <item type="dimen" name="wear_compose_material3_numeral_extra_large_font_size" />
+
+ <item type="dimen" name="wear_compose_material3_title_small_font_size" />
+ <item type="dimen" name="wear_compose_material3_title_medium_font_size" />
+ <item type="dimen" name="wear_compose_material3_title_large_font_size" />
+ <!--END WEAR SPECIFIC MATERIAL3 FONT SIZE TOKENS-->
+
+ <!--START WEAR SPECIFIC MATERIAL3 SHAPE TOKENS-->
+ <item type="dimen" name="wear_compose_material3_shape_corner_extra_small_size" />
+ <item type="dimen" name="wear_compose_material3_shape_corner_small_size" />
+ <item type="dimen" name="wear_compose_material3_shape_corner_medium_size" />
+ <item type="dimen" name="wear_compose_material3_shape_corner_large_size" />
+ <item type="dimen" name="wear_compose_material3_shape_corner_extra_large_size" />
+ <!--END WEAR SPECIFIC MATERIAL3 SHAPE TOKENS-->
+ </policy>
+ </overlayable>
+</resources> \ No newline at end of file
diff --git a/PermissionController/wear-permission-components/res/values/strings.xml b/PermissionController/wear-permission-components/res/values/strings.xml
new file mode 100644
index 000000000..a9956ddb5
--- /dev/null
+++ b/PermissionController/wear-permission-components/res/values/strings.xml
@@ -0,0 +1,7 @@
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Accessibility description indicating that a toggle control status is on. [CHAR LIMIT=NONE] -->
+ <string name="on">On</string>
+
+ <!-- Accessibility description indicating that a status is off. [CHAR LIMIT=NONE] -->
+ <string name="off">Off</string>
+</resources> \ No newline at end of file
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/AnnotatedText.kt b/PermissionController/wear-permission-components/src/wear.permission.components/AnnotatedText.kt
index 07bb88e80..4d7954c5a 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/AnnotatedText.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/AnnotatedText.kt
@@ -13,8 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package com.android.permissioncontroller.permission.ui.wear.elements
+package com.android.permissioncontroller.wear.permission.components
import android.text.Spanned
import android.text.style.ClickableSpan
@@ -32,10 +31,14 @@ import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.style.TextDecoration
import androidx.wear.compose.material.MaterialTheme
-import com.android.permissioncontroller.permission.ui.wear.WearUtils.capitalize
+import java.util.Locale
const val CLICKABLE_SPAN_TAG = "CLICKABLE_SPAN_TAG"
+fun String.capitalize(): String = replaceFirstChar {
+ if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString()
+}
+
@Composable
fun AnnotatedText(
text: CharSequence,
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/CheckYourPhone.kt b/PermissionController/wear-permission-components/src/wear.permission.components/CheckYourPhone.kt
index 59376b8fa..467aae4e1 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/CheckYourPhone.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/CheckYourPhone.kt
@@ -13,26 +13,32 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package com.android.permissioncontroller.permission.ui.wear.elements
+package com.android.permissioncontroller.wear.permission.components
import android.content.res.Configuration
+import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.shape.CircleShape
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
import androidx.compose.ui.platform.LocalConfiguration
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
+import androidx.wear.compose.material.CircularProgressIndicator
+import androidx.wear.compose.material.Icon
import androidx.wear.compose.material.MaterialTheme
import androidx.wear.compose.material.Scaffold
import androidx.wear.compose.material.Text
-import com.android.permissioncontroller.R
private const val TOP_PADDING_SCREEN_PERCENTAGE = 0.1248f
private const val BOTTOM_PADDING_SCREEN_PERCENTAGE = 0.0624f
@@ -41,16 +47,12 @@ private const val TEXT_PADDING_SCREEN_PERCENTAGE = 0.0416f
enum class CheckYourPhoneState {
InProgress,
- Success
+ Success,
}
/**
* A screen to request the user to check their paired phone to proceed. It also allows a [message]
* to be displayed.
- *
- * <img
- * src="https://media.githubusercontent.com/media/google/horologist/main/docs/auth-composables/check_your_phone_screen_code.png"
- * height="120" width="120"/>
*/
@Composable
fun CheckYourPhoneScreen(
@@ -60,9 +62,7 @@ fun CheckYourPhoneScreen(
message: String? = null,
) {
val configuration = LocalConfiguration.current
-
val isLarge = configuration.isLargeScreen
-
val topPadding = (configuration.screenHeightDp * TOP_PADDING_SCREEN_PERCENTAGE).dp
val bottomPadding = (configuration.screenHeightDp * BOTTOM_PADDING_SCREEN_PERCENTAGE).dp
val sidePadding = (configuration.screenHeightDp * SIDE_PADDING_SCREEN_PERCENTAGE).dp
@@ -79,7 +79,7 @@ fun CheckYourPhoneScreen(
bottom = bottomPadding,
start = sidePadding,
end = sidePadding,
- ),
+ )
) {
Column(
modifier = Modifier.fillMaxWidth().weight(1f).padding(horizontal = textPadding),
@@ -104,21 +104,53 @@ fun CheckYourPhoneScreen(
}
}
when (state) {
- CheckYourPhoneState.InProgress ->
- RemoteConnectionProgressIndicator(
- iconRes = R.drawable.ic_security_update_good,
- Modifier.align(Alignment.CenterHorizontally)
- )
- CheckYourPhoneState.Success ->
- RemoteConnectionSuccess(
- iconRes = R.drawable.ic_security_update_good,
- Modifier.align(Alignment.CenterHorizontally)
- )
+ CheckYourPhoneState.InProgress -> RemoteConnectionProgressIndicator()
+ CheckYourPhoneState.Success -> RemoteConnectionSuccess()
}
}
}
}
+@Composable
+private fun RemoteConnectionProgressIndicator() {
+ val indicatorPadding = 8.dp
+ val iconSize = 48.dp
+ val progressBarStrokeWidth = 4.dp
+ Box(modifier = Modifier.size(iconSize).clip(CircleShape)) {
+ CircularProgressIndicator(
+ modifier = Modifier.size(iconSize - progressBarStrokeWidth + indicatorPadding),
+ strokeWidth = progressBarStrokeWidth,
+ )
+ Icon(
+ painter = painterResource(R.drawable.ic_security_update_good),
+ contentDescription = null,
+ modifier =
+ Modifier.align(Alignment.Center)
+ .size(iconSize - indicatorPadding - 8.dp)
+ .clip(CircleShape),
+ )
+ }
+}
+
+@Composable
+private fun RemoteConnectionSuccess() {
+ val indicatorPadding = 8.dp
+ val iconSize = 48.dp
+ val backgroundColor = MaterialTheme.colors.onSurface
+ val contentColor = MaterialTheme.colors.surface
+ Box(modifier = Modifier.size(iconSize).clip(CircleShape).background(backgroundColor)) {
+ Icon(
+ painter = painterResource(R.drawable.ic_security_update_good),
+ contentDescription = null,
+ tint = contentColor,
+ modifier =
+ Modifier.align(Alignment.Center)
+ .size(iconSize - indicatorPadding - 8.dp)
+ .clip(CircleShape),
+ )
+ }
+}
+
/** Whether the device is considered large screen for layout adjustment purposes. */
internal val Configuration.isLargeScreen: Boolean
get() = screenHeightDp > 224
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/DrawablePainter.kt b/PermissionController/wear-permission-components/src/wear.permission.components/DrawablePainter.kt
index d505a0ea4..a22fb2b96 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/DrawablePainter.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/DrawablePainter.kt
@@ -13,8 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package com.android.permissioncontroller.permission.ui.wear.elements
+package com.android.permissioncontroller.wear.permission.components
import android.graphics.drawable.Animatable
import android.graphics.drawable.ColorDrawable
@@ -166,5 +165,6 @@ private val Drawable.intrinsicSize: Size
internal object EmptyPainter : Painter() {
override val intrinsicSize: Size
get() = Size.Unspecified
+
override fun DrawScope.onDraw() {}
}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/ScrollableScreen.kt b/PermissionController/wear-permission-components/src/wear.permission.components/ScrollableScreen.kt
index bfa46ae55..5e774676e 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/ScrollableScreen.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/ScrollableScreen.kt
@@ -13,8 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package com.android.permissioncontroller.permission.ui.wear.elements
+package com.android.permissioncontroller.wear.permission.components
import android.app.Activity
import android.content.Context
@@ -30,9 +29,9 @@ import androidx.fragment.app.FragmentActivity
import androidx.wear.compose.foundation.SwipeToDismissValue
import androidx.wear.compose.foundation.rememberSwipeToDismissBoxState
import androidx.wear.compose.material.SwipeToDismissBox
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionScaffold
-import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionScaffold
+import com.android.permissioncontroller.wear.permission.components.theme.ResourceHelper
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionMaterialUIVersion
/**
* Screen that contains a list of items defined using the [content] parameter, adds the time text
@@ -99,7 +98,7 @@ fun ScrollableScreen(
}
}
-internal fun dismiss(activity: Activity) {
+fun dismiss(activity: Activity) {
if (activity is FragmentActivity) {
if (!activity.supportFragmentManager.popBackStackImmediate()) {
activity.finish()
@@ -119,7 +118,7 @@ internal fun getBackStackEntryCount(activity: Activity): Int {
}
}
-internal fun Context.findActivity(): Activity {
+fun Context.findActivity(): Activity {
var context = this
while (context is ContextWrapper) {
if (context is Activity) return context
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/AlertDialog.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material2/AlertDialog.kt
index a49d8822e..652adfc07 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/AlertDialog.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material2/AlertDialog.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.elements.material2
+package com.android.permissioncontroller.wear.permission.components.material2
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.runtime.Composable
@@ -36,11 +36,11 @@ import androidx.wear.compose.material.LocalTextStyle
import androidx.wear.compose.material.MaterialTheme
import androidx.wear.compose.material.Text
import androidx.wear.compose.material.dialog.Dialog
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.layout.ScalingLazyColumnDefaults
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.layout.ScalingLazyColumnState
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.layout.rememberColumnState
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.DialogButtonContent
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionIconBuilder
+import com.android.permissioncontroller.wear.permission.components.material2.layout.ScalingLazyColumnDefaults
+import com.android.permissioncontroller.wear.permission.components.material2.layout.ScalingLazyColumnState
+import com.android.permissioncontroller.wear.permission.components.material2.layout.rememberColumnState
+import com.android.permissioncontroller.wear.permission.components.material3.DialogButtonContent
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionIconBuilder
/**
* This component is an alternative to [AlertContent], providing the following:
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/Chip.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material2/Chip.kt
index 15542ec20..f0dab21ec 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/Chip.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material2/Chip.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.elements.material2
+package com.android.permissioncontroller.wear.permission.components.material2
import android.graphics.drawable.Drawable
import androidx.annotation.StringRes
@@ -46,7 +46,7 @@ import androidx.wear.compose.material.Icon
import androidx.wear.compose.material.MaterialTheme
import androidx.wear.compose.material.Text
import androidx.wear.compose.material.contentColorFor
-import com.android.permissioncontroller.permission.ui.wear.elements.rememberDrawablePainter
+import com.android.permissioncontroller.wear.permission.components.rememberDrawablePainter
/**
* This component is an alternative to [Chip], providing the following:
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/Icon.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material2/Icon.kt
index 3cfac7eef..dfed0b196 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/Icon.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material2/Icon.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.elements.material2
+package com.android.permissioncontroller.wear.permission.components.material2
import android.graphics.drawable.Drawable
import androidx.annotation.DrawableRes
@@ -29,14 +29,14 @@ import androidx.compose.ui.unit.LayoutDirection
import androidx.wear.compose.material.Icon
import androidx.wear.compose.material.LocalContentAlpha
import androidx.wear.compose.material.LocalContentColor
-import com.android.permissioncontroller.permission.ui.wear.elements.rememberDrawablePainter
+import com.android.permissioncontroller.wear.permission.components.rememberDrawablePainter
/**
* This component is an alternative to [Icon], providing the following:
* - a convenient way of setting the icon to be mirrored in RTL mode;
*/
@Composable
-public fun Icon(
+fun Icon(
imageVector: ImageVector,
contentDescription: String?,
modifier: Modifier = Modifier,
@@ -58,7 +58,7 @@ public fun Icon(
* - a convenient way of setting the icon to be mirrored in RTL mode;
*/
@Composable
-public fun Icon(
+fun Icon(
@DrawableRes id: Int,
contentDescription: String?,
modifier: Modifier = Modifier,
@@ -122,7 +122,7 @@ fun Icon(
}
}
-public enum class IconRtlMode {
+enum class IconRtlMode {
Default,
Mirrored,
}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/ListFooter.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material2/ListFooter.kt
index 4f6d47faf..ac603d492 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/ListFooter.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material2/ListFooter.kt
@@ -13,8 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package com.android.permissioncontroller.permission.ui.wear.elements.material2
+package com.android.permissioncontroller.wear.permission.components.material2
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Row
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/ListHeader.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material2/ListHeader.kt
index 2d3eb0d52..7dc26179d 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/ListHeader.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material2/ListHeader.kt
@@ -13,8 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package com.android.permissioncontroller.permission.ui.wear.elements.material2
+package com.android.permissioncontroller.wear.permission.components.material2
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/ResponsiveDialog.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material2/ResponsiveDialog.kt
index 4cb3ab615..64597e23d 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/ResponsiveDialog.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material2/ResponsiveDialog.kt
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.elements.material2
+package com.android.permissioncontroller.wear.permission.components.material2
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Arrangement.spacedBy
@@ -44,14 +44,14 @@ import androidx.wear.compose.material.LocalTextStyle
import androidx.wear.compose.material.MaterialTheme
import androidx.wear.compose.material.PositionIndicator
import androidx.wear.compose.material.Scaffold
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.layout.ScalingLazyColumn
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.layout.ScalingLazyColumnDefaults.responsive
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.layout.ScalingLazyColumnState
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.layout.rememberColumnState
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.DialogButtonContent
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionIconBuilder
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.defaultAlertConfirmIcon
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.defaultAlertDismissIcon
+import com.android.permissioncontroller.wear.permission.components.material2.layout.ScalingLazyColumn
+import com.android.permissioncontroller.wear.permission.components.material2.layout.ScalingLazyColumnDefaults.responsive
+import com.android.permissioncontroller.wear.permission.components.material2.layout.ScalingLazyColumnState
+import com.android.permissioncontroller.wear.permission.components.material2.layout.rememberColumnState
+import com.android.permissioncontroller.wear.permission.components.material3.DialogButtonContent
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionIconBuilder
+import com.android.permissioncontroller.wear.permission.components.material3.defaultAlertConfirmIcon
+import com.android.permissioncontroller.wear.permission.components.material3.defaultAlertDismissIcon
@Composable
fun ResponsiveDialogContent(
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/ToggleChip.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material2/ToggleChip.kt
index bfb5d114d..de8e0542d 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/ToggleChip.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material2/ToggleChip.kt
@@ -13,8 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package com.android.permissioncontroller.permission.ui.wear.elements.material2
+package com.android.permissioncontroller.wear.permission.components.material2
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.BoxScope
@@ -44,8 +43,8 @@ import androidx.wear.compose.material.ToggleChip
import androidx.wear.compose.material.ToggleChipColors
import androidx.wear.compose.material.ToggleChipDefaults
import androidx.wear.compose.material.contentColorFor
-import com.android.permissioncontroller.R
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionToggleControlType
+import com.android.permissioncontroller.wear.permission.components.R
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionToggleControlType
/**
* This component is an alternative to [ToggleChip], providing the following:
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/Wear2Scaffold.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material2/Wear2Scaffold.kt
index 866b7f012..b5ba5b71e 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/Wear2Scaffold.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material2/Wear2Scaffold.kt
@@ -13,8 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package com.android.permissioncontroller.permission.ui.wear.elements.material2
+package com.android.permissioncontroller.wear.permission.components.material2
import android.graphics.drawable.Drawable
import androidx.compose.foundation.Image
@@ -54,9 +53,9 @@ import androidx.wear.compose.material.TimeText
import androidx.wear.compose.material.Vignette
import androidx.wear.compose.material.VignettePosition
import androidx.wear.compose.material.scrollAway
-import com.android.permissioncontroller.permission.ui.wear.elements.AnnotatedText
-import com.android.permissioncontroller.permission.ui.wear.elements.rememberDrawablePainter
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionTheme
+import com.android.permissioncontroller.wear.permission.components.AnnotatedText
+import com.android.permissioncontroller.wear.permission.components.rememberDrawablePainter
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionTheme
/**
* This component is wrapper on material 2 scaffold component. It helps with time text, scroll
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/layout/ScalingLazyColumnDefaults.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material2/layout/ScalingLazyColumnDefaults.kt
index c06fdaf14..f6fe5233c 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/layout/ScalingLazyColumnDefaults.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material2/layout/ScalingLazyColumnDefaults.kt
@@ -16,7 +16,7 @@
@file:Suppress("ObjectLiteralToLambda")
-package com.android.permissioncontroller.permission.ui.wear.elements.material2.layout
+package com.android.permissioncontroller.wear.permission.components.material2.layout
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.PaddingValues
@@ -33,7 +33,7 @@ import androidx.wear.compose.foundation.lazy.ScalingLazyColumnDefaults
import androidx.wear.compose.foundation.lazy.ScalingLazyListAnchorType
import androidx.wear.compose.foundation.lazy.ScalingParams
import androidx.wear.compose.material.ChipDefaults
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.layout.ScalingLazyColumnState.RotaryMode
+import com.android.permissioncontroller.wear.permission.components.material2.layout.ScalingLazyColumnState.RotaryMode
import kotlin.math.sqrt
// This file's content is copied from ScalingLazyColumnDefaults.kt from Horologist (go/horologist),
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/layout/ScalingLazyColumnState.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material2/layout/ScalingLazyColumnState.kt
index 0e669f6ff..c20b23aa3 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/layout/ScalingLazyColumnState.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material2/layout/ScalingLazyColumnState.kt
@@ -17,7 +17,7 @@
@file:Suppress("ObjectLiteralToLambda")
@file:OptIn(ExperimentalWearFoundationApi::class)
-package com.android.permissioncontroller.permission.ui.wear.elements.material2.layout
+package com.android.permissioncontroller.wear.permission.components.material2.layout
import androidx.compose.foundation.MutatePriority
import androidx.compose.foundation.gestures.FlingBehavior
@@ -42,8 +42,8 @@ import androidx.wear.compose.foundation.lazy.ScalingLazyListAnchorType
import androidx.wear.compose.foundation.lazy.ScalingLazyListScope
import androidx.wear.compose.foundation.lazy.ScalingLazyListState
import androidx.wear.compose.foundation.lazy.ScalingParams
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.layout.ScalingLazyColumnDefaults.responsiveScalingParams
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.layout.ScalingLazyColumnState.RotaryMode
+import com.android.permissioncontroller.wear.permission.components.material2.layout.ScalingLazyColumnDefaults.responsiveScalingParams
+import com.android.permissioncontroller.wear.permission.components.material2.layout.ScalingLazyColumnState.RotaryMode
// This file is a copy of ScalingLazyColumnState.kt from Horologist (go/horologist),
// remove it once after wear compose supports large screen dialogs.
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionButton.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionButton.kt
index 9a89e0809..1a7524e7c 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionButton.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionButton.kt
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.elements.material3
+package com.android.permissioncontroller.wear.permission.components.material3
import androidx.compose.foundation.layout.BoxScope
import androidx.compose.foundation.layout.PaddingValues
@@ -33,9 +33,9 @@ import androidx.wear.compose.material3.ButtonDefaults
import androidx.wear.compose.material3.LocalTextConfiguration
import androidx.wear.compose.material3.LocalTextStyle
import androidx.wear.compose.material3.Text
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.Chip
-import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion
+import com.android.permissioncontroller.wear.permission.components.material2.Chip
+import com.android.permissioncontroller.wear.permission.components.theme.ResourceHelper
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionMaterialUIVersion
/**
* This component is wrapper on material Button component
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionButtonStyle.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionButtonStyle.kt
index 36d3f9f33..114bcd4bc 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionButtonStyle.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionButtonStyle.kt
@@ -13,20 +13,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package com.android.permissioncontroller.permission.ui.wear.elements.material3
+package com.android.permissioncontroller.wear.permission.components.material3
import androidx.compose.runtime.Composable
import androidx.wear.compose.material.ChipColors
import androidx.wear.compose.material.ChipDefaults
import androidx.wear.compose.material3.ButtonColors
import androidx.wear.compose.material3.ButtonDefaults
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.chipDefaultColors
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.chipDisabledColors
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButtonStyle.DisabledLike
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButtonStyle.Primary
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButtonStyle.Secondary
-import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButtonStyle.Transparent
+import com.android.permissioncontroller.wear.permission.components.material2.chipDefaultColors
+import com.android.permissioncontroller.wear.permission.components.material2.chipDisabledColors
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButtonStyle.DisabledLike
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButtonStyle.Primary
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButtonStyle.Secondary
+import com.android.permissioncontroller.wear.permission.components.material3.WearPermissionButtonStyle.Transparent
/**
* This component is wrapper on material control colors, It applies the right colors based material
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionConfirmationDialog.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionConfirmationDialog.kt
index 0e1bf1fbe..4ef6e8a72 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionConfirmationDialog.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionConfirmationDialog.kt
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.elements.material3
+package com.android.permissioncontroller.wear.permission.components.material3
import androidx.compose.foundation.layout.RowScope
import androidx.compose.foundation.layout.size
@@ -25,8 +25,8 @@ import androidx.wear.compose.foundation.lazy.rememberScalingLazyListState
import androidx.wear.compose.material3.AlertDialog as Material3AlertDialog
import androidx.wear.compose.material3.AlertDialogDefaults
import androidx.wear.compose.material3.Text
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.AlertDialog
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion
+import com.android.permissioncontroller.wear.permission.components.material2.AlertDialog
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionMaterialUIVersion
data class DialogButtonContent(
val icon: WearPermissionIconBuilder? = null,
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionIconBuilder.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionIconBuilder.kt
index 52674b50d..e5e51af66 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionIconBuilder.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionIconBuilder.kt
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.elements.material3
+package com.android.permissioncontroller.wear.permission.components.material3
import android.graphics.drawable.Drawable
import androidx.compose.foundation.layout.size
@@ -29,7 +29,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.wear.compose.material3.Icon
import androidx.wear.compose.material3.IconButtonDefaults
-import com.android.permissioncontroller.permission.ui.wear.elements.rememberDrawablePainter
+import com.android.permissioncontroller.wear.permission.components.rememberDrawablePainter
/**
* This class simplifies the construction of icons with various attributes like resource type,
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionListFooter.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionListFooter.kt
index 33f9cb41f..90ee09bab 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionListFooter.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionListFooter.kt
@@ -13,17 +13,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package com.android.permissioncontroller.permission.ui.wear.elements.material3
+package com.android.permissioncontroller.wear.permission.components.material3
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.unit.dp
import androidx.wear.compose.material3.ButtonDefaults
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.ListFooter
-import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion
+import com.android.permissioncontroller.wear.permission.components.material2.ListFooter
+import com.android.permissioncontroller.wear.permission.components.theme.ResourceHelper
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionMaterialUIVersion
/** This component is creates a transparent styled button to use as a list footer. */
@Composable
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionListSubHeader.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionListSubHeader.kt
index ddcd93326..2ed6e532f 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionListSubHeader.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionListSubHeader.kt
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.elements.material3
+package com.android.permissioncontroller.wear.permission.components.material3
import androidx.compose.foundation.layout.RowScope
import androidx.compose.foundation.layout.padding
@@ -23,9 +23,9 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.unit.dp
import androidx.wear.compose.material3.ListSubHeader
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.ListSubheader
-import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion
+import com.android.permissioncontroller.wear.permission.components.material2.ListSubheader
+import com.android.permissioncontroller.wear.permission.components.theme.ResourceHelper
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionMaterialUIVersion
/*
This component is simplified wrapper over ListSubHeader with quick padding adjustments
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionScaffold.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffold.kt
index 35bdf583e..c1077d645 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionScaffold.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffold.kt
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.elements.material3
+package com.android.permissioncontroller.wear.permission.components.material3
import android.graphics.drawable.Drawable
import androidx.compose.foundation.Image
@@ -53,14 +53,14 @@ import androidx.wear.compose.material3.ScrollIndicator
import androidx.wear.compose.material3.Text
import androidx.wear.compose.material3.TimeText
import androidx.wear.compose.material3.lazy.scrollTransform
-import com.android.permissioncontroller.permission.ui.wear.elements.AnnotatedText
-import com.android.permissioncontroller.permission.ui.wear.elements.ListScopeWrapper
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.Wear2Scaffold
-import com.android.permissioncontroller.permission.ui.wear.elements.rememberDrawablePainter
-import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion.MATERIAL2_5
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionTheme
+import com.android.permissioncontroller.wear.permission.components.AnnotatedText
+import com.android.permissioncontroller.wear.permission.components.ListScopeWrapper
+import com.android.permissioncontroller.wear.permission.components.material2.Wear2Scaffold
+import com.android.permissioncontroller.wear.permission.components.rememberDrawablePainter
+import com.android.permissioncontroller.wear.permission.components.theme.ResourceHelper
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionMaterialUIVersion
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionMaterialUIVersion.MATERIAL2_5
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionTheme
private class TransformingScopeConverter(private val scope: TransformingLazyColumnScope) :
ListScopeWrapper {
@@ -81,7 +81,7 @@ private class ScalingScopeConverter(private val scope: ScalingLazyListScope) : L
* indicator and standard list elements like title, icon and subtitle.
*/
@Composable
-internal fun WearPermissionScaffold(
+fun WearPermissionScaffold(
materialUIVersion: WearPermissionMaterialUIVersion = ResourceHelper.materialUIVersionInSettings,
showTimeText: Boolean,
title: String?,
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionScaffoldPaddingDefaults.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffoldPaddingDefaults.kt
index 14eaec4bf..93a25279c 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionScaffoldPaddingDefaults.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffoldPaddingDefaults.kt
@@ -13,8 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package com.android.permissioncontroller.permission.ui.wear.elements.material3
+package com.android.permissioncontroller.wear.permission.components.material3
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.ui.unit.dp
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionToggleControl.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionToggleControl.kt
index d37d17a84..1dfb90682 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionToggleControl.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionToggleControl.kt
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.elements.material3
+package com.android.permissioncontroller.wear.permission.components.material3
import androidx.compose.foundation.layout.BoxScope
import androidx.compose.foundation.layout.RowScope
@@ -28,10 +28,10 @@ import androidx.wear.compose.material3.LocalTextConfiguration
import androidx.wear.compose.material3.RadioButton
import androidx.wear.compose.material3.SwitchButton
import androidx.wear.compose.material3.Text
-import com.android.permissioncontroller.R
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.ToggleChip
-import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion
+import com.android.permissioncontroller.wear.permission.components.R
+import com.android.permissioncontroller.wear.permission.components.material2.ToggleChip
+import com.android.permissioncontroller.wear.permission.components.theme.ResourceHelper
+import com.android.permissioncontroller.wear.permission.components.theme.WearPermissionMaterialUIVersion
/** Defines various toggle control types. */
enum class WearPermissionToggleControlType {
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionToggleControlStyle.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionToggleControlStyle.kt
index 048a06861..26a0ea0ef 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionToggleControlStyle.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionToggleControlStyle.kt
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.elements.material3
+package com.android.permissioncontroller.wear.permission.components.material3
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
@@ -25,8 +25,8 @@ import androidx.wear.compose.material3.RadioButtonColors
import androidx.wear.compose.material3.RadioButtonDefaults.radioButtonColors
import androidx.wear.compose.material3.SwitchButtonColors
import androidx.wear.compose.material3.SwitchButtonDefaults.switchButtonColors
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.toggleChipBackgroundColors
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.toggleChipDisabledColors
+import com.android.permissioncontroller.wear.permission.components.material2.toggleChipBackgroundColors
+import com.android.permissioncontroller.wear.permission.components.material2.toggleChipDisabledColors
/**
* Defines toggle control styles, It helps in setting the right colors scheme to a toggle control.
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/ResourceHelper.kt b/PermissionController/wear-permission-components/src/wear.permission.components/theme/ResourceHelper.kt
index 2a40a625f..010d66a30 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/ResourceHelper.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/theme/ResourceHelper.kt
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.theme
+package com.android.permissioncontroller.wear.permission.components.theme
import android.content.Context
import android.os.SystemProperties
@@ -23,7 +23,7 @@ import androidx.annotation.DoNotInline
import androidx.annotation.StringRes
import androidx.compose.ui.graphics.Color
-internal object ResourceHelper {
+object ResourceHelper {
private const val MATERIAL3_ENABLED_SYSPROP = "persist.cw_build.bluechip.enabled"
@@ -61,7 +61,7 @@ internal object ResourceHelper {
return try {
val colorInt = context.resources.getColor(id, context.theme)
Color(colorInt)
- } catch (e: Exception) {
+ } catch (_: Exception) {
null
}
}
@@ -70,7 +70,7 @@ internal object ResourceHelper {
fun getString(context: Context, @StringRes id: Int): String? {
return try {
context.resources.getString(id)
- } catch (e: Exception) {
+ } catch (_: Exception) {
null
}
}
@@ -79,7 +79,7 @@ internal object ResourceHelper {
fun getDimen(context: Context, @DimenRes id: Int): Float? {
return try {
context.resources.getDimension(id) / context.resources.displayMetrics.density
- } catch (e: Exception) {
+ } catch (_: Exception) {
null
}
}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearComposeMaterial3ColorScheme.kt b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3ColorScheme.kt
index 7ac6c8114..41e8fd975 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearComposeMaterial3ColorScheme.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3ColorScheme.kt
@@ -13,13 +13,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.theme
+package com.android.permissioncontroller.wear.permission.components.theme
import android.content.Context
import android.os.Build
import androidx.annotation.ColorRes
import androidx.annotation.RequiresApi
import androidx.compose.ui.graphics.Color
+import androidx.wear.compose.material.Colors
import androidx.wear.compose.material3.ColorScheme
/**
@@ -29,6 +30,24 @@ import androidx.wear.compose.material3.ColorScheme
*/
internal object WearComposeMaterial3ColorScheme {
+ fun legacyColorScheme(): ColorScheme {
+ return Colors().run {
+ ColorScheme(
+ background = background,
+ onBackground = onBackground,
+ onPrimaryContainer = primary,
+ primaryDim = primaryVariant,
+ onPrimary = onPrimary,
+ tertiary = secondary, // Best-Fit Mapping: Refer WearMaterialBridgedTheme.
+ tertiaryDim = secondaryVariant,
+ onTertiary = onSecondary,
+ surfaceContainer = surface,
+ onSurface = onSurface,
+ onSurfaceVariant = onSurfaceVariant,
+ )
+ }
+ }
+
@RequiresApi(Build.VERSION_CODES.S)
fun tonalColorScheme(context: Context): ColorScheme {
val tonalPalette = dynamicTonalPalette(context)
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearComposeMaterial3Shapes.kt b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3Shapes.kt
index f81022842..89851d60e 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearComposeMaterial3Shapes.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3Shapes.kt
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.theme
+package com.android.permissioncontroller.wear.permission.components.theme
import android.content.Context
import androidx.annotation.DimenRes
@@ -21,7 +21,7 @@ import androidx.compose.foundation.shape.CornerBasedShape
import androidx.compose.foundation.shape.CornerSize
import androidx.compose.ui.unit.dp
import androidx.wear.compose.material3.Shapes
-import com.android.permissioncontroller.R
+import com.android.permissioncontroller.wear.permission.components.R
// TODO(b/324928718): Use system defined symbols.
internal object WearComposeMaterial3Shapes {
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearComposeMaterial3TypeScaleTokens.kt b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3TypeScaleTokens.kt
index a4ec9ee1d..df5057472 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearComposeMaterial3TypeScaleTokens.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3TypeScaleTokens.kt
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.theme
+package com.android.permissioncontroller.wear.permission.components.theme
/*
* These values are retrieved from https://carbon.googleplex.com/wear-m3/pages and
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearComposeMaterial3Typography.kt b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3Typography.kt
index ceae526a7..e44a24981 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearComposeMaterial3Typography.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3Typography.kt
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.theme
+package com.android.permissioncontroller.wear.permission.components.theme
import android.content.Context
import androidx.annotation.DimenRes
@@ -25,7 +25,7 @@ import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontVariation
import androidx.compose.ui.unit.sp
import androidx.wear.compose.material3.Typography
-import com.android.permissioncontroller.R
+import com.android.permissioncontroller.wear.permission.components.R
internal object WearComposeMaterial3Typography {
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearComposeMaterial3VariableFontTokens.kt b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3VariableFontTokens.kt
index 1b42a3b05..644a1b754 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearComposeMaterial3VariableFontTokens.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3VariableFontTokens.kt
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.theme
+package com.android.permissioncontroller.wear.permission.components.theme
import androidx.compose.ui.text.font.FontVariation
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearMaterialBridgedLegacyTheme.kt b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearMaterialBridgedLegacyTheme.kt
index 160dc2e93..51ae16477 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearMaterialBridgedLegacyTheme.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearMaterialBridgedLegacyTheme.kt
@@ -13,10 +13,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.theme
+package com.android.permissioncontroller.wear.permission.components.theme
-import android.os.Build
-import androidx.annotation.RequiresApi
import androidx.compose.ui.unit.sp
import androidx.wear.compose.material.Colors
import androidx.wear.compose.material.Shapes
@@ -29,10 +27,8 @@ import androidx.wear.compose.material.Typography
* However to avoid maintaining two sets of resources for overlays, this class construct 2.5 theme
* from 3.0
*/
-@RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
internal class WearMaterialBridgedLegacyTheme
private constructor(newTheme: WearOverlayableMaterial3Theme) {
-
val colors =
newTheme.colorScheme.run {
Colors(
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearOverlayableMaterial3Theme.kt b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearOverlayableMaterial3Theme.kt
index 8aeb5f74d..f6bf56f47 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearOverlayableMaterial3Theme.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearOverlayableMaterial3Theme.kt
@@ -13,11 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.permissioncontroller.permission.ui.wear.theme
+package com.android.permissioncontroller.wear.permission.components.theme
import android.content.Context
import android.os.Build
-import androidx.annotation.RequiresApi
/**
* Theme wrapper providing Material 3 styling while maintaining compatibility with Runtime Resource
@@ -26,13 +25,18 @@ import androidx.annotation.RequiresApi
* Uses the tonal palette from the previous Material Design version until dynamic color tokens are
* available in SDK 36.
*/
-@RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
internal class WearOverlayableMaterial3Theme(context: Context) {
val colorScheme =
- if (Build.VERSION.SDK_INT >= 36) {
- WearComposeMaterial3ColorScheme.dynamicColorScheme(context)
- } else {
- WearComposeMaterial3ColorScheme.tonalColorScheme(context)
+ when {
+ Build.VERSION.SDK_INT >= 36 -> {
+ WearComposeMaterial3ColorScheme.dynamicColorScheme(context)
+ }
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
+ WearComposeMaterial3ColorScheme.tonalColorScheme(context)
+ }
+ else -> {
+ WearComposeMaterial3ColorScheme.legacyColorScheme()
+ }
}
val typography = WearComposeMaterial3Typography.dynamicTypography(context)
diff --git a/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearPermissionTheme.kt b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearPermissionTheme.kt
new file mode 100644
index 000000000..b1c87108c
--- /dev/null
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearPermissionTheme.kt
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.permissioncontroller.wear.permission.components.theme
+
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.platform.LocalContext
+import androidx.wear.compose.material.MaterialTheme
+import androidx.wear.compose.material3.MaterialTheme as Material3Theme
+
+/** This enum is used to specify the material version used for a specific screen */
+enum class WearPermissionMaterialUIVersion {
+ MATERIAL2_5,
+ MATERIAL3,
+}
+
+/** An overlay-able compose theme supporting both material2.5 and 3. */
+@Composable
+fun WearPermissionTheme(
+ version: WearPermissionMaterialUIVersion = ResourceHelper.materialUIVersionInSettings,
+ content: @Composable () -> Unit,
+) {
+ WearOverlayableMaterial3Theme(LocalContext.current).run {
+ when (version) {
+ WearPermissionMaterialUIVersion.MATERIAL3 ->
+ Material3Theme(
+ colorScheme = colorScheme,
+ typography = typography,
+ shapes = shapes,
+ content = content,
+ )
+ // Material2_5 UI controls are still being used in the screen,
+ // To avoid having two set of overlay resources, we will use material3 overlay resources
+ // to
+ // support material2_5 UI controls as well.
+ WearPermissionMaterialUIVersion.MATERIAL2_5 ->
+ WearMaterialBridgedLegacyTheme.createFrom(this).run {
+ MaterialTheme(
+ colors = colors,
+ typography = typography,
+ shapes = shapes,
+ content = content,
+ )
+ }
+ }
+ }
+}
diff --git a/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearPermissionTonalPalette.kt b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearPermissionTonalPalette.kt
new file mode 100644
index 000000000..72aa3e487
--- /dev/null
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearPermissionTonalPalette.kt
@@ -0,0 +1,216 @@
+@file:Suppress("unused")
+
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.permissioncontroller.wear.permission.components.theme
+
+import android.content.Context
+import android.os.Build
+import androidx.annotation.ColorRes
+import androidx.annotation.DoNotInline
+import androidx.annotation.RequiresApi
+import androidx.compose.ui.graphics.Color
+
+/**
+ * Tonal Palette structure in Material.
+ *
+ * A tonal palette is comprised of 5 tonal ranges. Each tonal range includes the 13 stops, or tonal
+ * swatches.
+ *
+ * Tonal range names are:
+ * - Neutral (N)
+ * - Neutral variant (NV)
+ * - Primary (P)
+ * - Secondary (S)
+ * - Tertiary (T)
+ */
+internal class WearPermissionTonalPalette(
+ // The neutral tonal range.
+ val neutral100: Color,
+ val neutral99: Color,
+ val neutral95: Color,
+ val neutral90: Color,
+ val neutral80: Color,
+ val neutral70: Color,
+ val neutral60: Color,
+ val neutral50: Color,
+ val neutral40: Color,
+ val neutral30: Color,
+ val neutral20: Color,
+ val neutral10: Color,
+ val neutral0: Color,
+
+ // The neutral variant tonal range, sometimes called "neutral 2"
+ val neutralVariant100: Color,
+ val neutralVariant99: Color,
+ val neutralVariant95: Color,
+ val neutralVariant90: Color,
+ val neutralVariant80: Color,
+ val neutralVariant70: Color,
+ val neutralVariant60: Color,
+ val neutralVariant50: Color,
+ val neutralVariant40: Color,
+ val neutralVariant30: Color,
+ val neutralVariant20: Color,
+ val neutralVariant10: Color,
+ val neutralVariant0: Color,
+
+ // The primary tonal range, also known as accent 1
+ val primary100: Color,
+ val primary99: Color,
+ val primary95: Color,
+ val primary90: Color,
+ val primary80: Color,
+ val primary70: Color,
+ val primary60: Color,
+ val primary50: Color,
+ val primary40: Color,
+ val primary30: Color,
+ val primary20: Color,
+ val primary10: Color,
+ val primary0: Color,
+
+ // The Secondary tonal range, also know as accent 2
+ val secondary100: Color,
+ val secondary99: Color,
+ val secondary95: Color,
+ val secondary90: Color,
+ val secondary80: Color,
+ val secondary70: Color,
+ val secondary60: Color,
+ val secondary50: Color,
+ val secondary40: Color,
+ val secondary30: Color,
+ val secondary20: Color,
+ val secondary10: Color,
+ val secondary0: Color,
+
+ // The tertiary tonal range, also known as accent 3
+ val tertiary100: Color,
+ val tertiary99: Color,
+ val tertiary95: Color,
+ val tertiary90: Color,
+ val tertiary80: Color,
+ val tertiary70: Color,
+ val tertiary60: Color,
+ val tertiary50: Color,
+ val tertiary40: Color,
+ val tertiary30: Color,
+ val tertiary20: Color,
+ val tertiary10: Color,
+ val tertiary0: Color,
+)
+
+/** Dynamic colors for wear compose material to support resource overlay. */
+@RequiresApi(Build.VERSION_CODES.S)
+internal fun dynamicTonalPalette(context: Context) =
+ WearPermissionTonalPalette(
+ // The neutral tonal range from the generated dynamic color palette.
+ neutral100 = ColorResourceHelper.getColor(context, android.R.color.system_neutral1_0),
+ neutral99 = ColorResourceHelper.getColor(context, android.R.color.system_neutral1_10),
+ neutral95 = ColorResourceHelper.getColor(context, android.R.color.system_neutral1_50),
+ neutral90 = ColorResourceHelper.getColor(context, android.R.color.system_neutral1_100),
+ neutral80 = ColorResourceHelper.getColor(context, android.R.color.system_neutral1_200),
+ neutral70 = ColorResourceHelper.getColor(context, android.R.color.system_neutral1_300),
+ neutral60 = ColorResourceHelper.getColor(context, android.R.color.system_neutral1_400),
+ neutral50 = ColorResourceHelper.getColor(context, android.R.color.system_neutral1_500),
+ neutral40 = ColorResourceHelper.getColor(context, android.R.color.system_neutral1_600),
+ neutral30 = ColorResourceHelper.getColor(context, android.R.color.system_neutral1_700),
+ neutral20 = ColorResourceHelper.getColor(context, android.R.color.system_neutral1_800),
+ neutral10 = ColorResourceHelper.getColor(context, android.R.color.system_neutral1_900),
+ neutral0 = ColorResourceHelper.getColor(context, android.R.color.system_neutral1_1000),
+
+ // The neutral variant tonal range, sometimes called "neutral 2", from the
+ // generated dynamic color palette.
+ neutralVariant100 =
+ ColorResourceHelper.getColor(context, android.R.color.system_neutral2_0),
+ neutralVariant99 =
+ ColorResourceHelper.getColor(context, android.R.color.system_neutral2_10),
+ neutralVariant95 =
+ ColorResourceHelper.getColor(context, android.R.color.system_neutral2_50),
+ neutralVariant90 =
+ ColorResourceHelper.getColor(context, android.R.color.system_neutral2_100),
+ neutralVariant80 =
+ ColorResourceHelper.getColor(context, android.R.color.system_neutral2_200),
+ neutralVariant70 =
+ ColorResourceHelper.getColor(context, android.R.color.system_neutral2_300),
+ neutralVariant60 =
+ ColorResourceHelper.getColor(context, android.R.color.system_neutral2_400),
+ neutralVariant50 =
+ ColorResourceHelper.getColor(context, android.R.color.system_neutral2_500),
+ neutralVariant40 =
+ ColorResourceHelper.getColor(context, android.R.color.system_neutral2_600),
+ neutralVariant30 =
+ ColorResourceHelper.getColor(context, android.R.color.system_neutral2_700),
+ neutralVariant20 =
+ ColorResourceHelper.getColor(context, android.R.color.system_neutral2_800),
+ neutralVariant10 =
+ ColorResourceHelper.getColor(context, android.R.color.system_neutral2_900),
+ neutralVariant0 =
+ ColorResourceHelper.getColor(context, android.R.color.system_neutral2_1000),
+
+ // The primary tonal range from the generated dynamic color palette.
+ primary100 = ColorResourceHelper.getColor(context, android.R.color.system_accent1_0),
+ primary99 = ColorResourceHelper.getColor(context, android.R.color.system_accent1_10),
+ primary95 = ColorResourceHelper.getColor(context, android.R.color.system_accent1_50),
+ primary90 = ColorResourceHelper.getColor(context, android.R.color.system_accent1_100),
+ primary80 = ColorResourceHelper.getColor(context, android.R.color.system_accent1_200),
+ primary70 = ColorResourceHelper.getColor(context, android.R.color.system_accent1_300),
+ primary60 = ColorResourceHelper.getColor(context, android.R.color.system_accent1_400),
+ primary50 = ColorResourceHelper.getColor(context, android.R.color.system_accent1_500),
+ primary40 = ColorResourceHelper.getColor(context, android.R.color.system_accent1_600),
+ primary30 = ColorResourceHelper.getColor(context, android.R.color.system_accent1_700),
+ primary20 = ColorResourceHelper.getColor(context, android.R.color.system_accent1_800),
+ primary10 = ColorResourceHelper.getColor(context, android.R.color.system_accent1_900),
+ primary0 = ColorResourceHelper.getColor(context, android.R.color.system_accent1_1000),
+
+ // The secondary tonal range from the generated dynamic color palette.
+ secondary100 = ColorResourceHelper.getColor(context, android.R.color.system_accent2_0),
+ secondary99 = ColorResourceHelper.getColor(context, android.R.color.system_accent2_10),
+ secondary95 = ColorResourceHelper.getColor(context, android.R.color.system_accent2_50),
+ secondary90 = ColorResourceHelper.getColor(context, android.R.color.system_accent2_100),
+ secondary80 = ColorResourceHelper.getColor(context, android.R.color.system_accent2_200),
+ secondary70 = ColorResourceHelper.getColor(context, android.R.color.system_accent2_300),
+ secondary60 = ColorResourceHelper.getColor(context, android.R.color.system_accent2_400),
+ secondary50 = ColorResourceHelper.getColor(context, android.R.color.system_accent2_500),
+ secondary40 = ColorResourceHelper.getColor(context, android.R.color.system_accent2_600),
+ secondary30 = ColorResourceHelper.getColor(context, android.R.color.system_accent2_700),
+ secondary20 = ColorResourceHelper.getColor(context, android.R.color.system_accent2_800),
+ secondary10 = ColorResourceHelper.getColor(context, android.R.color.system_accent2_900),
+ secondary0 = ColorResourceHelper.getColor(context, android.R.color.system_accent2_1000),
+
+ // The tertiary tonal range from the generated dynamic color palette.
+ tertiary100 = ColorResourceHelper.getColor(context, android.R.color.system_accent3_0),
+ tertiary99 = ColorResourceHelper.getColor(context, android.R.color.system_accent3_10),
+ tertiary95 = ColorResourceHelper.getColor(context, android.R.color.system_accent3_50),
+ tertiary90 = ColorResourceHelper.getColor(context, android.R.color.system_accent3_100),
+ tertiary80 = ColorResourceHelper.getColor(context, android.R.color.system_accent3_200),
+ tertiary70 = ColorResourceHelper.getColor(context, android.R.color.system_accent3_300),
+ tertiary60 = ColorResourceHelper.getColor(context, android.R.color.system_accent3_400),
+ tertiary50 = ColorResourceHelper.getColor(context, android.R.color.system_accent3_500),
+ tertiary40 = ColorResourceHelper.getColor(context, android.R.color.system_accent3_600),
+ tertiary30 = ColorResourceHelper.getColor(context, android.R.color.system_accent3_700),
+ tertiary20 = ColorResourceHelper.getColor(context, android.R.color.system_accent3_800),
+ tertiary10 = ColorResourceHelper.getColor(context, android.R.color.system_accent3_900),
+ tertiary0 = ColorResourceHelper.getColor(context, android.R.color.system_accent3_1000),
+ )
+
+private object ColorResourceHelper {
+ @DoNotInline
+ fun getColor(context: Context, @ColorRes id: Int): Color {
+ return Color(context.resources.getColor(id, context.theme))
+ }
+}