diff options
7 files changed, 60 insertions, 12 deletions
diff --git a/PermissionController/res/values-it/strings.xml b/PermissionController/res/values-it/strings.xml index 857734db1..c855b4ce6 100644 --- a/PermissionController/res/values-it/strings.xml +++ b/PermissionController/res/values-it/strings.xml @@ -17,7 +17,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_name" msgid="6098036489833144040">"App di controllo autorizzazioni"</string> - <string name="ok" msgid="1936281769725676272">"OK"</string> + <string name="ok" msgid="1936281769725676272">"Ok"</string> <string name="permission_search_keyword" msgid="1214451577494730543">"autorizzazioni"</string> <string name="cancel" msgid="8943320028373963831">"Annulla"</string> <string name="back" msgid="6249950659061523680">"Indietro"</string> @@ -422,7 +422,7 @@ <string name="system_uses_microphone_and_camera" msgid="5124478304275138804">"La videocamera e il microfono sono in uso per un servizio di sistema"</string> <string name="system_uses_camera" msgid="1911223105234441470">"La videocamera è in uso per un servizio di sistema"</string> <string name="other_use" msgid="6564855051022776692">"Altro uso:"</string> - <string name="ongoing_usage_dialog_ok" msgid="103556809118460072">"OK"</string> + <string name="ongoing_usage_dialog_ok" msgid="103556809118460072">"Ok"</string> <string name="ongoing_usage_dialog_title" msgid="683836493556628569">"Uso recente di <xliff:g id="TYPES_LIST">%s</xliff:g>"</string> <string name="ongoing_usage_dialog_title_mic" msgid="5966714811125593992">"Utilizzo recente di Microfono"</string> <string name="ongoing_usage_dialog_title_camera" msgid="7819329688650711470">"Utilizzo recente di Fotocamera"</string> diff --git a/PermissionController/res/values-ro/strings.xml b/PermissionController/res/values-ro/strings.xml index 177d5ab17..5f88c1376 100644 --- a/PermissionController/res/values-ro/strings.xml +++ b/PermissionController/res/values-ro/strings.xml @@ -514,7 +514,7 @@ <string name="permgroupupgraderequestdetail_microphone" msgid="2870497719571464239">"Aplicația dorește să înregistreze conținut audio permanent, chiar și când nu o folosești. "<annotation id="link">"Acordă această permisiune din setări."</annotation></string> <string name="permgrouprequest_activityRecognition" msgid="5415121592794230330">"Permiți aplicației <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> să-ți acceseze activitatea fizică?"</string> <string name="permgrouprequest_device_aware_activityRecognition" msgid="1243869530588745374">"Permiți ca <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> să acceseze activitatea ta fizică de pe <b><xliff:g id="DEVICE_NAME">%2$s</xliff:g></b>?"</string> - <string name="permgrouprequest_camera" msgid="5123097035410002594">"Permiți ca <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> să fotografieze și să înregistreze video?"</string> + <string name="permgrouprequest_camera" msgid="5123097035410002594">"Permiți ca <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> să fotografieze și să înregistreze videoclipuri?"</string> <string name="permgrouprequest_device_aware_camera" msgid="5340173564041615494">"Permiți ca <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> să facă fotografii și să înregistreze videoclipuri pe <b><xliff:g id="DEVICE_NAME">%2$s</xliff:g></b>?"</string> <string name="permgrouprequestdetail_camera" msgid="9085323239764667883">"Aplicația va putea să fotografieze și să înregistreze videoclipuri doar când o folosești"</string> <string name="permgroupbackgroundrequest_camera" msgid="1274286575704213875">"Permiți ca <b><xliff:g id="APP_NAME">%1$s</xliff:g></b> să facă fotografii și să înregistreze videoclipuri?"</string> diff --git a/PermissionController/src/com/android/permissioncontroller/permission/utils/Utils.java b/PermissionController/src/com/android/permissioncontroller/permission/utils/Utils.java index e5de63f32..3d3b47272 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/utils/Utils.java +++ b/PermissionController/src/com/android/permissioncontroller/permission/utils/Utils.java @@ -126,6 +126,7 @@ import java.util.List; import java.util.Locale; import java.util.Random; import java.util.Set; +import java.util.function.Supplier; public final class Utils { @@ -1566,18 +1567,40 @@ public final class Utils { public static String getEnterpriseString(@NonNull Context context, @NonNull String updatableStringId, int defaultStringId, @NonNull Object... formatArgs) { return SdkLevel.isAtLeastT() - ? getUpdatableEnterpriseString( - context, updatableStringId, defaultStringId, formatArgs) + ? getUpdatableEnterpriseString(context, updatableStringId, + () -> context.getString(defaultStringId, formatArgs), formatArgs) : context.getString(defaultStringId, formatArgs); } + /** + * Selects the appropriate enterprise string for the provided resource ID and a fallback string + */ + @NonNull + public static String getEnterpriseString(@NonNull Context context, + @NonNull String updatableStringId, @NonNull String defaultString) { + return SdkLevel.isAtLeastT() + ? getUpdatableEnterpriseString(context, updatableStringId, () -> defaultString) + : defaultString; + } + @RequiresApi(Build.VERSION_CODES.TIRAMISU) @NonNull private static String getUpdatableEnterpriseString(@NonNull Context context, - @NonNull String updatableStringId, int defaultStringId, @NonNull Object... formatArgs) { + @NonNull String updatableStringId, @NonNull Supplier<String> defaultStringLoader, + @NonNull Object... formatArgs) { DevicePolicyManager dpm = getSystemServiceSafe(context, DevicePolicyManager.class); - return dpm.getResources().getString(updatableStringId, () -> context.getString( - defaultStringId, formatArgs), formatArgs); + return dpm.getResources().getString(updatableStringId, defaultStringLoader, formatArgs); + } + + /** + * Returns the profile label from the {@link UserManager} for the provided profile + */ + @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) + @NonNull + public static String getProfileLabel(@NonNull UserHandle profile, @NonNull Context context) { + Context profileContext = context.createContextAsUser(profile, 0); + UserManager profileUserManager = profileContext.getSystemService(UserManager.class); + return profileUserManager.getProfileLabel(); } /** diff --git a/PermissionController/src/com/android/permissioncontroller/role/ui/DefaultAppListChildFragment.java b/PermissionController/src/com/android/permissioncontroller/role/ui/DefaultAppListChildFragment.java index 0b96eb8ba..48472bc5e 100644 --- a/PermissionController/src/com/android/permissioncontroller/role/ui/DefaultAppListChildFragment.java +++ b/PermissionController/src/com/android/permissioncontroller/role/ui/DefaultAppListChildFragment.java @@ -22,6 +22,7 @@ import android.content.Intent; import android.content.pm.ApplicationInfo; import android.os.Bundle; import android.os.UserHandle; +import android.permission.flags.Flags; import android.provider.Settings; import android.util.ArrayMap; @@ -36,6 +37,7 @@ import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; +import com.android.modules.utils.build.SdkLevel; import com.android.permissioncontroller.R; import com.android.permissioncontroller.permission.utils.Utils; import com.android.permissioncontroller.role.utils.PackageUtils; @@ -145,15 +147,25 @@ public class DefaultAppListChildFragment<PF extends PreferenceFragmentCompat addMoreDefaultAppsPreference(preferenceScreen, oldPreferences, context); addManageDomainUrlsPreference(preferenceScreen, oldPreferences, context); if (hasWorkProfile && !workRoleItems.isEmpty()) { + String defaultWorkTitle; + if (SdkLevel.isAtLeastV() && Flags.useProfileLabelsForDefaultAppSectionTitles()) { + defaultWorkTitle = Utils.getProfileLabel(mViewModel.getWorkProfile(), context); + } else { + defaultWorkTitle = context.getString(R.string.default_apps_for_work); + } String workTitle = Utils.getEnterpriseString(context, - DefaultAppSettings.WORK_PROFILE_DEFAULT_APPS_TITLE, - R.string.default_apps_for_work); + DefaultAppSettings.WORK_PROFILE_DEFAULT_APPS_TITLE, defaultWorkTitle); addPreferenceCategory(oldWorkPreferenceCategory, PREFERENCE_KEY_WORK_CATEGORY, workTitle, preferenceScreen, workRoleItems, oldWorkPreferences, this, mViewModel.getWorkProfile(), context); } if (hasPrivateProfile && !privateRoleItems.isEmpty()) { - String privateTitle = context.getString(R.string.default_apps_for_private_profile); + String privateTitle; + if (SdkLevel.isAtLeastV() && Flags.useProfileLabelsForDefaultAppSectionTitles()) { + privateTitle = Utils.getProfileLabel(mViewModel.getPrivateProfile(), context); + } else { + privateTitle = context.getString(R.string.default_apps_for_private_profile); + } addPreferenceCategory(oldPrivatePreferenceCategory, PREFERENCE_KEY_PRIVATE_CATEGORY, privateTitle, preferenceScreen, privateRoleItems, oldPrivatePreferences, this, mViewModel.getPrivateProfile(), context); diff --git a/tests/cts/permissionpolicy/res/raw/android_manifest.xml b/tests/cts/permissionpolicy/res/raw/android_manifest.xml index 05062e931..5df9c944e 100644 --- a/tests/cts/permissionpolicy/res/raw/android_manifest.xml +++ b/tests/cts/permissionpolicy/res/raw/android_manifest.xml @@ -6329,7 +6329,7 @@ @hide --> <permission android:name="android.permission.BYPASS_CONCURRENT_RECORD_AUDIO_RESTRICTION" android:featureFlag="android.media.audio.concurrent_audio_record_bypass_permission" - android:protectionLevel="signature|privileged|role" /> + android:protectionLevel="signature|privileged" /> <!-- @SystemApi Allows an application to capture audio for hotword detection. <p>Not for use by third-party applications.</p> diff --git a/tests/cts/permissionpolicy/res/raw/automotive_android_manifest.xml b/tests/cts/permissionpolicy/res/raw/automotive_android_manifest.xml index 783cd7f6b..e123f13ce 100644 --- a/tests/cts/permissionpolicy/res/raw/automotive_android_manifest.xml +++ b/tests/cts/permissionpolicy/res/raw/automotive_android_manifest.xml @@ -620,4 +620,16 @@ android:protectionLevel="signature|privileged" android:label="@string/car_permission_label_bind_app_card_provider" android:description="@string/car_permission_desc_bind_app_card_provider" /> + <permission + android:name="android.car.permission.RECORD_VEHICLE_PROPERTIES" + android:protectionLevel="signature" + android:label="@string/car_permission_label_record_vehicle_properties" + android:description="@string/car_permission_desc_record_vehicle_properties" + android:featureFlag="android.car.feature.car_power_cancel_shell_command" /> + <permission + android:name="android.car.permission.INJECT_VEHICLE_PROPERTIES" + android:protectionLevel="signature" + android:label="@string/car_permission_label_inject_vehicle_properties" + android:description="@string/car_permission_desc_inject_vehicle_properties" + android:featureFlag="android.car.feature.car_power_cancel_shell_command" /> </manifest> diff --git a/tests/cts/role/AndroidTest.xml b/tests/cts/role/AndroidTest.xml index bfdcf2829..73f23dd1b 100644 --- a/tests/cts/role/AndroidTest.xml +++ b/tests/cts/role/AndroidTest.xml @@ -24,6 +24,7 @@ <option name="config-descriptor:metadata" key="parameter" value="not_instant_app" /> <option name="config-descriptor:metadata" key="parameter" value="not_multi_abi" /> <option name="config-descriptor:metadata" key="parameter" value="secondary_user" /> + <option name="config-descriptor:metadata" key="parameter" value="secondary_user_on_secondary_display" /> <option name="config-descriptor:metadata" key="parameter" value="run_on_sdk_sandbox" /> <option name="config-descriptor:metadata" key="mainline-param" value="com.google.android.permission.apex" /> <object type="module_controller" class="com.android.tradefed.testtype.suite.module.Sdk30ModuleController" /> |