summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Vignesh Ramanathan <vigneshrsastra@google.com> 2025-02-03 09:34:56 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2025-02-03 09:34:56 -0800
commit4e6c5b611c9346c97baa55da9fc9dcc68c1192af (patch)
tree8143442db85f90f9954b251ef7ed50efe70289df
parent3ef3a3b668a76f4856d001556e5ff3a6a2cd09e3 (diff)
parent8d061f230d80438f463d6c57891e517ae9893896 (diff)
Merge "Creating Permission controller library." into main
-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))
+ }
+}