diff options
5 files changed, 139 insertions, 2 deletions
diff --git a/PermissionController/res/values-watch/donottranslate.xml b/PermissionController/res/values-watch/donottranslate.xml new file mode 100644 index 000000000..c3ab3cbb1 --- /dev/null +++ b/PermissionController/res/values-watch/donottranslate.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- 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. +--> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- font-family-device-default is expected to be preloaded in the font_customization.xml(/vendor/<OEM>/products/<PRODUCT>/fonts/fonts_customization.xml)--> + <!-- Falls back to system default when font-family-device-default doesn't exist --> + <string name="wear_material_compose_display_1_font_family">font-family-device-default</string> + <string name="wear_material_compose_display_2_font_family">font-family-device-default</string> + <string name="wear_material_compose_display_3_font_family">font-family-device-default</string> + <string name="wear_material_compose_title_1_font_family">font-family-medium-device-default</string> + <string name="wear_material_compose_title_2_font_family">font-family-medium-device-default</string> + <string name="wear_material_compose_title_3_font_family">font-family-device-default</string> + <string name="wear_material_compose_body_1_font_family">font-family-text-device-default</string> + <string name="wear_material_compose_body_2_font_family">font-family-text-device-default</string> + <string name="wear_material_compose_button_font_family">font-family-text-medium-device-default</string> + <string name="wear_material_compose_caption_1_font_family">font-family-text-medium-device-default</string> + <string name="wear_material_compose_caption_2_font_family">font-family-text-medium-device-default</string> + <string name="wear_material_compose_caption_3_font_family">font-family-text-medium-device-default</string> +</resources> diff --git a/PermissionController/res/values/overlayable.xml b/PermissionController/res/values/overlayable.xml index dc0e90c71..59e98adcc 100644 --- a/PermissionController/res/values/overlayable.xml +++ b/PermissionController/res/values/overlayable.xml @@ -379,6 +379,21 @@ <item type="style" name="AppDataSharingUpdateSettingsIcon" /> <!-- END SAFETY LABELS STYLE --> + <!--START WEAR SPECIFIC 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 FONT STRINGS --> + </policy> </overlayable> diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/GrantPermissionsActivity.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/GrantPermissionsActivity.java index 4fd62dc05..1004cb907 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/GrantPermissionsActivity.java +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/GrantPermissionsActivity.java @@ -358,7 +358,7 @@ public class GrantPermissionsActivity extends SettingsActivity String nextRestrictedPermissionGroup = mRestrictedRequestedPermissionGroups.remove( 0); try { - Intent intent = ecm.createRestrictedSettingDialogIntent(getPackageName(), + Intent intent = ecm.createRestrictedSettingDialogIntent(getCallingPackage(), nextRestrictedPermissionGroup); startActivityForResult(intent, ECM_REQUEST_CODE); return; 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 index e7947fd5c..093a454cc 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearPermissionTheme.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearPermissionTheme.kt @@ -3,12 +3,19 @@ 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.TextStyle +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 com.android.permissioncontroller.R /** The Material 3 Theme Wrapper for Supporting RRO. */ @Composable @@ -21,7 +28,7 @@ fun WearPermissionTheme(content: @Composable () -> Unit) { } else { MaterialTheme.colors } - MaterialTheme(colors = colors, content = content) + MaterialTheme(colors = colors, typography = oemTypography(context), content = content) } /** @@ -53,3 +60,72 @@ internal fun overlayColors(context: Context): Colors { 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 oemTypography(context: Context): Typography { + return Typography( + display1 = + TextStyle( + fontFamily = + fontFamily(context, R.string.wear_material_compose_display_1_font_family) + ), + display2 = + TextStyle( + fontFamily = + fontFamily(context, R.string.wear_material_compose_display_2_font_family) + ), + display3 = + TextStyle( + fontFamily = + fontFamily(context, R.string.wear_material_compose_display_3_font_family) + ), + title1 = + TextStyle( + fontFamily = fontFamily(context, R.string.wear_material_compose_title_1_font_family) + ), + title2 = + TextStyle( + fontFamily = fontFamily(context, R.string.wear_material_compose_title_2_font_family) + ), + title3 = + TextStyle( + fontFamily = fontFamily(context, R.string.wear_material_compose_title_3_font_family) + ), + body1 = + TextStyle( + fontFamily = fontFamily(context, R.string.wear_material_compose_body_1_font_family) + ), + body2 = + TextStyle( + fontFamily = fontFamily(context, R.string.wear_material_compose_body_2_font_family) + ), + button = + TextStyle( + fontFamily = fontFamily(context, R.string.wear_material_compose_button_font_family) + ), + caption1 = + TextStyle( + fontFamily = + fontFamily(context, R.string.wear_material_compose_caption_1_font_family) + ), + caption2 = + TextStyle( + fontFamily = + fontFamily(context, R.string.wear_material_compose_caption_2_font_family) + ), + caption3 = + TextStyle( + fontFamily = + fontFamily(context, R.string.wear_material_compose_caption_3_font_family) + ), + ) +} diff --git a/tests/cts/permissionui/src/android/permissionui/cts/EnhancedConfirmationManagerTest.kt b/tests/cts/permissionui/src/android/permissionui/cts/EnhancedConfirmationManagerTest.kt index 4a505d1fd..dc41e8d19 100644 --- a/tests/cts/permissionui/src/android/permissionui/cts/EnhancedConfirmationManagerTest.kt +++ b/tests/cts/permissionui/src/android/permissionui/cts/EnhancedConfirmationManagerTest.kt @@ -154,6 +154,9 @@ class EnhancedConfirmationManagerTest : BaseUsePermissionTest() { ) { click(By.res(ALERT_DIALOG_OK_BUTTON), TIMEOUT_MILLIS) } + runWithShellPermissionIdentity { + assertTrue(ecm.isClearRestrictionAllowed(APP_PACKAGE_NAME)) + } } @RequiresFlagsEnabled(Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED) @@ -171,6 +174,9 @@ class EnhancedConfirmationManagerTest : BaseUsePermissionTest() { doAndWaitForWindowTransition { click(By.res(ALERT_DIALOG_OK_BUTTON), TIMEOUT_MILLIS) } doAndWaitForWindowTransition { click(By.res(ALERT_DIALOG_OK_BUTTON), TIMEOUT_MILLIS) } } + runWithShellPermissionIdentity { + assertTrue(ecm.isClearRestrictionAllowed(APP_PACKAGE_NAME)) + } } @RequiresFlagsEnabled(Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED) @@ -190,6 +196,9 @@ class EnhancedConfirmationManagerTest : BaseUsePermissionTest() { doAndWaitForWindowTransition { click(By.res(ALERT_DIALOG_OK_BUTTON), TIMEOUT_MILLIS) } doAndWaitForWindowTransition { clickPermissionRequestAllowForegroundButton() } } + runWithShellPermissionIdentity { + assertTrue(ecm.isClearRestrictionAllowed(APP_PACKAGE_NAME)) + } } @RequiresFlagsEnabled(Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED) @@ -209,6 +218,9 @@ class EnhancedConfirmationManagerTest : BaseUsePermissionTest() { doAndWaitForWindowTransition { click(By.res(ALERT_DIALOG_OK_BUTTON), TIMEOUT_MILLIS) } doAndWaitForWindowTransition { clickPermissionRequestAllowForegroundButton() } } + runWithShellPermissionIdentity { + assertTrue(ecm.isClearRestrictionAllowed(APP_PACKAGE_NAME)) + } } @RequiresFlagsEnabled(Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED) @@ -228,6 +240,9 @@ class EnhancedConfirmationManagerTest : BaseUsePermissionTest() { doAndWaitForWindowTransition { click(By.res(ALERT_DIALOG_OK_BUTTON), TIMEOUT_MILLIS) } doAndWaitForWindowTransition { clickPermissionRequestAllowForegroundButton() } } + runWithShellPermissionIdentity { + assertTrue(ecm.isClearRestrictionAllowed(APP_PACKAGE_NAME)) + } } companion object { |