summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--PermissionController/res/values-watch/donottranslate.xml31
-rw-r--r--PermissionController/res/values/overlayable.xml15
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/GrantPermissionsActivity.java2
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/theme/WearPermissionTheme.kt78
-rw-r--r--tests/cts/permissionui/src/android/permissionui/cts/EnhancedConfirmationManagerTest.kt15
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 {