Merge "Don't use Lambda when register callback"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 0a72b75..f2ed29c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -160,8 +160,7 @@
</intent-filter>
</receiver>
- <activity android:name=".SubSettings"
- android:parentActivityName="Settings"/>
+ <activity android:name=".SubSettings"/>
<activity android:name=".Settings$CreateShortcutActivity"
android:label="@string/settings_shortcut">
@@ -178,8 +177,7 @@
<activity
android:name=".Settings$NetworkDashboardActivity"
android:label="@string/network_dashboard_title"
- android:icon="@drawable/ic_homepage_network"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_homepage_network">
<intent-filter android:priority="1">
<action android:name="android.settings.WIRELESS_SETTINGS" />
<action android:name="android.settings.AIRPLANE_MODE_SETTINGS" />
@@ -198,8 +196,7 @@
</activity>
<activity android:name=".Settings$MobileNetworkListActivity"
- android:label="@string/network_settings_title"
- android:parentActivityName="Settings$NetworkDashboardActivity">
+ android:label="@string/network_settings_title">
<intent-filter android:priority="1">
<action android:name="android.settings.MOBILE_NETWORK_LIST" />
<category android:name="android.intent.category.DEFAULT" />
@@ -213,8 +210,7 @@
<activity
android:name=".Settings$ConnectedDeviceDashboardActivity"
android:label="@string/connected_devices_dashboard_title"
- android:icon="@drawable/ic_devices_other"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_devices_other">
<intent-filter android:priority="1">
<action android:name="android.settings.BLUETOOTH_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -250,8 +246,7 @@
android:name="Settings$WifiSettingsActivity"
android:label="@string/wifi_settings"
android:icon="@drawable/ic_settings_wireless"
- android:configChanges="orientation|keyboardHidden|screenSize"
- android:parentActivityName="Settings">
+ android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter android:priority="1">
<action android:name="android.settings.WIFI_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -270,8 +265,7 @@
android:name="Settings$WifiSettings2Activity"
android:label="@string/wifi_settings"
android:icon="@drawable/ic_settings_wireless"
- android:configChanges="orientation|keyboardHidden|screenSize"
- android:parentActivityName="Settings">
+ android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter android:priority="1">
<action android:name="android.settings.WIFI_SETTINGS2" />
<category android:name="android.intent.category.DEFAULT" />
@@ -287,8 +281,7 @@
</activity>
<activity
- android:name=".wifi.WifiPickerActivity"
- android:parentActivityName="Settings">
+ android:name=".wifi.WifiPickerActivity">
<intent-filter android:priority="1">
<action android:name="android.net.wifi.PICK_WIFI_NETWORK" />
<category android:name="android.intent.category.DEFAULT" />
@@ -301,8 +294,7 @@
android:name="Settings$ConfigureWifiSettingsActivity"
android:label="@string/wifi_configure_settings_preference_title"
android:icon="@drawable/ic_settings_wireless"
- android:configChanges="orientation|keyboardHidden|screenSize"
- android:parentActivityName="Settings">
+ android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter android:priority="1">
<action android:name="android.settings.WIFI_IP_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -322,8 +314,7 @@
android:name="Settings$SavedAccessPointsSettingsActivity"
android:label="@string/wifi_saved_access_points_label"
android:icon="@drawable/ic_settings_wireless"
- android:configChanges="orientation|keyboardHidden|screenSize"
- android:parentActivityName="Settings">
+ android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter android:priority="1">
<action android:name="android.settings.WIFI_SAVED_NETWORK_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -393,7 +384,6 @@
android:label="@string/apn_settings"
android:launchMode="singleTask"
android:configChanges="orientation|keyboardHidden|screenSize"
- android:parentActivityName="Settings$NetworkDashboardActivity"
android:process="com.android.phone">
<intent-filter android:priority="1">
<action android:name="android.settings.APN_SETTINGS" />
@@ -495,8 +485,7 @@
<activity
android:name="Settings$TetherSettingsActivity"
android:label="@string/tether_settings_title_all"
- android:icon="@drawable/ic_settings_wireless"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_settings_wireless">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
@@ -509,8 +498,7 @@
<activity
android:name="Settings$WifiTetherSettingsActivity"
android:label="@string/wifi_hotspot_checkbox_text"
- android:icon="@drawable/ic_wifi_tethering"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_wifi_tethering">
<intent-filter>
<action android:name="com.android.settings.WIFI_TETHER_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -534,8 +522,7 @@
android:value="com.android.settings.TetherSettings" />
</activity-alias>
- <activity android:name="Settings$WifiP2pSettingsActivity"
- android:parentActivityName="Settings">
+ <activity android:name="Settings$WifiP2pSettingsActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
@@ -548,8 +535,7 @@
<activity
android:name="Settings$VpnSettingsActivity"
android:label="@string/vpn_settings_title"
- android:icon="@drawable/ic_settings_wireless"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_settings_wireless">
<intent-filter android:priority="1">
<action android:name="android.settings.VPN_SETTINGS" />
<action android:name="android.net.vpn.SETTINGS" />
@@ -567,8 +553,7 @@
<activity
android:name="Settings$DataSaverSummaryActivity"
- android:label="@string/data_saver_title"
- android:parentActivityName="Settings">
+ android:label="@string/data_saver_title">
<intent-filter android:priority="1">
<action android:name="android.settings.DATA_SAVER_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -580,8 +565,7 @@
<activity
android:name="Settings$DateTimeSettingsActivity"
android:label="@string/date_and_time"
- android:icon="@drawable/ic_settings_date_time"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_settings_date_time">
<intent-filter android:priority="1">
<action android:name="android.settings.DATE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -601,8 +585,7 @@
<activity
android:name="Settings$LocalePickerActivity"
android:label="@string/language_picker_title"
- android:icon="@drawable/ic_settings_language"
- android:parentActivityName="Settings$LanguageAndInputSettingsActivity">
+ android:icon="@drawable/ic_settings_language">
<intent-filter android:priority="1">
<action android:name="android.settings.LOCALE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -627,8 +610,7 @@
<activity
android:name=".Settings$LanguageAndInputSettingsActivity"
android:label="@string/language_settings"
- android:icon="@drawable/ic_settings_language"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_settings_language">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.VOICE_LAUNCH" />
@@ -692,8 +674,7 @@
<activity
android:name="Settings$SpellCheckersSettingsActivity"
- android:label="@string/spellcheckers_settings_title"
- android:parentActivityName="Settings">
+ android:label="@string/spellcheckers_settings_title">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.VOICE_LAUNCH" />
@@ -719,8 +700,7 @@
<activity
android:name="Settings$UserDictionarySettingsActivity"
- android:label="@string/user_dict_settings_title"
- android:parentActivityName="Settings">
+ android:label="@string/user_dict_settings_title">
<intent-filter android:priority="1">
<action android:name="android.settings.USER_DICTIONARY_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -797,8 +777,7 @@
android:label="@string/zen_onboarding_dnd_visual_disturbances_header"
android:icon="@drawable/ic_notifications"
android:theme="@*android:style/Theme.DeviceDefault.Settings.Dialog.NoActionBar"
- android:exported="true"
- android:parentActivityName="Settings">
+ android:exported="true">
<intent-filter android:priority="1">
<action android:name="android.settings.ZEN_MODE_ONBOARDING" />
<category android:name="android.intent.category.DEFAULT" />
@@ -808,8 +787,7 @@
android:name="Settings$ZenModeAutomationSettingsActivity"
android:label="@string/zen_mode_automation_settings_title"
android:icon="@drawable/ic_notifications"
- android:exported="true"
- android:parentActivityName="Settings$ZenModeSettingsActivity">
+ android:exported="true">
<intent-filter android:priority="1">
<action android:name="android.settings.ZEN_MODE_AUTOMATION_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -872,8 +850,7 @@
<activity
android:name="Settings$ZenModeScheduleRuleSettingsActivity"
- android:exported="true"
- android:parentActivityName="Settings$ZenModeAutomationSettingsActivity">
+ android:exported="true">
<intent-filter android:priority="1">
<action android:name="android.settings.ZEN_MODE_SCHEDULE_RULE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -890,8 +867,7 @@
<activity
android:name="Settings$ZenModeEventRuleSettingsActivity"
- android:exported="true"
- android:parentActivityName="Settings$ZenModeAutomationSettingsActivity">
+ android:exported="true">
<intent-filter android:priority="1">
<action android:name="android.settings.ZEN_MODE_EVENT_RULE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -905,8 +881,7 @@
<activity
android:name="Settings$DisplaySettingsActivity"
android:label="@string/display_settings"
- android:icon="@drawable/ic_homepage_display"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_homepage_display">
<intent-filter android:priority="1">
<action android:name="com.android.settings.DISPLAY_SETTINGS" />
<action android:name="android.settings.DISPLAY_SETTINGS" />
@@ -982,8 +957,7 @@
<activity
android:name="SettingsLicenseActivity"
android:label="@string/settings_license_activity_title"
- android:configChanges="orientation|screenSize"
- android:parentActivityName="Settings">
+ android:configChanges="orientation|screenSize">
<intent-filter android:priority="1">
<action android:name="android.settings.LICENSE" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1056,8 +1030,7 @@
<activity
android:name="Settings$HighPowerApplicationsActivity"
- android:label="@string/high_power_apps"
- android:parentActivityName="Settings">
+ android:label="@string/high_power_apps">
<intent-filter android:priority="1">
<action android:name="android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1155,8 +1128,7 @@
<!-- Provide direct entry into manage apps showing running services. -->
<activity android:name="Settings$RunningServicesActivity"
- android:label="@string/runningservices_settings_title"
- android:parentActivityName="Settings">
+ android:label="@string/runningservices_settings_title">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1172,8 +1144,7 @@
<!-- Provide direct entry into manage apps showing storage usage of apps. -->
<activity
android:name="Settings$StorageUseActivity"
- android:label="@string/storageuse_settings_title"
- android:parentActivityName="Settings">
+ android:label="@string/storageuse_settings_title">
<intent-filter android:priority="1">
<action android:name="android.intent.action.MANAGE_PACKAGE_STORAGE" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1192,8 +1163,7 @@
<activity
android:name="Settings$NotificationStationActivity"
- android:label="@string/notification_log_title"
- android:parentActivityName="Settings">
+ android:label="@string/notification_log_title">
<intent-filter android:priority="22">
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.SHORTCUT" />
@@ -1234,8 +1204,7 @@
android:name="Settings$ScanningSettingsActivity"
android:label="@string/location_scanning_screen_title"
android:icon="@drawable/ic_homepage_location"
- android:configChanges="orientation|keyboardHidden|screenSize"
- android:parentActivityName="Settings">
+ android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter android:priority="1">
<action android:name="android.settings.LOCATION_SCANNING_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1250,8 +1219,7 @@
android:name=".Settings$SecurityDashboardActivity"
android:label="@string/security_settings_title"
android:icon="@drawable/ic_homepage_security"
- android:configChanges="orientation|keyboardHidden|screenSize"
- android:parentActivityName="Settings">
+ android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter android:priority="1">
<action android:name="android.settings.SECURITY_SETTINGS" />
<action android:name="android.credentials.UNLOCK" />
@@ -1281,8 +1249,7 @@
<activity
android:name="Settings$TrustedCredentialsSettingsActivity"
android:label="@string/trusted_credentials"
- android:icon="@drawable/ic_settings_security"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_settings_security">
<intent-filter android:priority="1">
<action android:name="com.android.settings.TRUSTED_CREDENTIALS" />
<action android:name="com.android.settings.TRUSTED_CREDENTIALS_USER" />
@@ -1297,8 +1264,7 @@
<activity android:name="Settings$PrivacySettingsActivity"
android:label="@string/privacy_settings_title"
android:icon="@drawable/ic_settings_backup"
- android:configChanges="orientation|keyboardHidden|screenSize"
- android:parentActivityName="Settings">
+ android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1349,8 +1315,7 @@
<activity
android:name="Settings$DeviceAdminSettingsActivity"
- android:label="@string/device_admin_settings_title"
- android:parentActivityName="Settings">
+ android:label="@string/device_admin_settings_title">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1401,8 +1366,7 @@
<activity
android:name="Settings$AppUsageAccessSettingsActivity"
- android:label="@string/usage_access_title"
- android:parentActivityName="Settings">
+ android:label="@string/usage_access_title">
<intent-filter>
<action android:name="android.settings.USAGE_ACCESS_SETTINGS"/>
<category android:name="android.intent.category.DEFAULT"/>
@@ -1429,8 +1393,7 @@
android:name="Settings$AccessibilitySettingsActivity"
android:label="@string/accessibility_settings"
android:icon="@drawable/ic_homepage_accessibility"
- android:configChanges="orientation|keyboardHidden|screenSize"
- android:parentActivityName="Settings">
+ android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter android:priority="1">
<action android:name="android.settings.ACCESSIBILITY_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1491,8 +1454,7 @@
<activity
android:name="Settings$AccessibilityDaltonizerSettingsActivity"
- android:label="@string/accessibility_display_daltonizer_preference_title"
- android:parentActivityName="Settings">
+ android:label="@string/accessibility_display_daltonizer_preference_title">
<intent-filter android:priority="1">
<action android:name="com.android.settings.ACCESSIBILITY_COLOR_SPACE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1509,8 +1471,7 @@
<activity
android:name="Settings$CaptioningSettingsActivity"
- android:label="@string/accessibility_captioning_title"
- android:parentActivityName="Settings">
+ android:label="@string/accessibility_captioning_title">
<intent-filter android:priority="1">
<action android:name="android.settings.CAPTIONING_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1541,8 +1502,7 @@
<activity
android:name="Settings$EnterprisePrivacySettingsActivity"
- android:label="@string/enterprise_privacy_settings"
- android:parentActivityName="Settings">
+ android:label="@string/enterprise_privacy_settings">
<intent-filter>
<action android:name="android.settings.ENTERPRISE_PRIVACY_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1807,8 +1767,7 @@
<activity
android:name=".Settings$StorageDashboardActivity"
android:label="@string/storage_settings"
- android:icon="@drawable/ic_homepage_storage"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_homepage_storage">
<intent-filter android:priority="1">
<action android:name="android.settings.INTERNAL_STORAGE_SETTINGS" />
<action android:name="android.settings.MEMORY_CARD_SETTINGS" />
@@ -1833,8 +1792,7 @@
<activity
android:name="Settings$PublicVolumeSettingsActivity"
- android:label="@string/storage_settings_title"
- android:parentActivityName="Settings">
+ android:label="@string/storage_settings_title">
<intent-filter>
<action android:name="android.provider.action.DOCUMENT_ROOT_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1915,7 +1873,6 @@
android:name="Settings$DevelopmentSettingsDashboardActivity"
android:label="@string/development_settings_title"
android:icon="@drawable/ic_settings_development"
- android:parentActivityName="Settings"
android:enabled="false">
<intent-filter android:priority="1">
<action android:name="android.settings.APPLICATION_DEVELOPMENT_SETTINGS" />
@@ -1954,8 +1911,7 @@
<activity
android:name="Settings$PrintSettingsActivity"
android:label="@string/print_settings"
- android:icon="@drawable/ic_settings_print"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_settings_print">
<intent-filter android:priority="1">
<action android:name="android.settings.ACTION_PRINT_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1970,8 +1926,7 @@
</activity>
<activity android:name="Settings$PrintJobSettingsActivity"
- android:label="@string/print_print_job"
- android:parentActivityName="Settings$PrintSettingsActivity">
+ android:label="@string/print_print_job">
<intent-filter android:priority="1">
<action android:name="android.settings.ACTION_PRINT_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2087,8 +2042,7 @@
<!-- NFC settings -->
<activity
android:name="Settings$AndroidBeamSettingsActivity"
- android:label="@string/android_beam_settings_title"
- android:parentActivityName="Settings">
+ android:label="@string/android_beam_settings_title">
<intent-filter android:priority="1">
<action android:name="android.settings.NFCSHARING_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2102,8 +2056,7 @@
<activity
android:name="Settings$WifiDisplaySettingsActivity"
android:label="@string/wifi_display_settings_title"
- android:icon="@drawable/ic_cast_24dp"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_cast_24dp">
<intent-filter android:priority="1">
<action android:name="android.settings.CAST_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2146,8 +2099,7 @@
</activity>
<activity android:name="UsageStatsActivity"
- android:label="@string/usage_stats_label"
- android:parentActivityName="Settings">
+ android:label="@string/usage_stats_label">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
@@ -2157,8 +2109,7 @@
<activity
android:name="Settings$PowerUsageSummaryActivity"
android:label="@string/power_usage_summary_title"
- android:icon="@drawable/ic_settings_battery"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_settings_battery">
<intent-filter android:priority="1">
<action android:name="android.intent.action.POWER_USAGE_SUMMARY" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2174,8 +2125,7 @@
<activity
android:name="Settings$BatterySaverSettingsActivity"
android:label="@string/battery_saver"
- android:icon="@drawable/ic_settings_battery"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_settings_battery">
<intent-filter android:priority="1">
<action android:name="android.settings.BATTERY_SAVER_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2199,8 +2149,7 @@
<activity
android:name="Settings$AccountSyncSettingsActivity"
- android:label="@string/account_sync_settings_title"
- android:parentActivityName="Settings">
+ android:label="@string/account_sync_settings_title">
<intent-filter android:priority="1">
<action android:name="android.settings.ACCOUNT_SYNC_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2213,7 +2162,6 @@
<activity
android:name="Settings$ManagedProfileSettingsActivity"
android:label="@string/managed_profile_settings_title"
- android:parentActivityName="Settings"
android:permission="android.permission.MANAGE_USERS">
<intent-filter android:priority="1">
<action android:name="android.settings.MANAGED_PROFILE_SETTINGS" />
@@ -2227,8 +2175,7 @@
android:name="com.android.settings.accounts.AddAccountSettings"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize"
- android:label="@string/header_add_an_account"
- android:parentActivityName="Settings">
+ android:label="@string/header_add_an_account">
<intent-filter android:priority="1">
<action android:name="android.settings.ADD_ACCOUNT_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2301,8 +2248,7 @@
<activity
android:name="Settings$DataUsageSummaryActivity"
android:label="@string/data_usage_summary_title"
- android:icon="@drawable/ic_settings_data_usage"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_settings_data_usage">
<intent-filter android:priority="1">
<action android:name="android.settings.DATA_USAGE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2328,8 +2274,7 @@
<activity
android:name="Settings$DreamSettingsActivity"
android:label="@string/screensaver_settings_title"
- android:icon="@drawable/ic_settings_display"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_settings_display">
<intent-filter android:priority="1">
<action android:name="android.settings.DREAM_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2343,8 +2288,7 @@
<activity
android:name="Settings$UserSettingsActivity"
android:label="@string/user_settings_title"
- android:icon="@drawable/ic_settings_multiuser"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_settings_multiuser">
<intent-filter android:priority="1">
<action android:name="android.settings.USER_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2366,8 +2310,7 @@
<activity
android:name="Settings$PaymentSettingsActivity"
android:label="@string/nfc_payment_settings_title"
- android:icon="@drawable/ic_settings_nfc_payment"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_settings_nfc_payment">
<intent-filter android:priority="1">
<action android:name="android.settings.NFC_PAYMENT_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2396,14 +2339,12 @@
<activity android:name=".nfc.HowItWorks"
android:label="@string/nfc_payment_settings_title"
- android:parentActivityName="Settings$PaymentSettingsActivity"
android:excludeFromRecents="true">
</activity>
<activity
android:name="Settings$NotificationAccessSettingsActivity"
- android:label="@string/manage_notification_access_title"
- android:parentActivityName="Settings">
+ android:label="@string/manage_notification_access_title">
<intent-filter android:priority="1">
<action android:name="android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2414,8 +2355,7 @@
<activity
android:name="Settings$NotificationAssistantSettingsActivity"
- android:label="@string/notification_assistant_title"
- android:parentActivityName="Settings">
+ android:label="@string/notification_assistant_title">
<intent-filter android:priority="1">
<action android:name="android.settings.NOTIFICATION_ASSISTANT_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2426,8 +2366,7 @@
<activity
android:name="Settings$VrListenersSettingsActivity"
- android:label="@string/vr_listeners_title"
- android:parentActivityName="Settings">
+ android:label="@string/vr_listeners_title">
<intent-filter android:priority="1">
<action android:name="android.settings.VR_LISTENER_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2438,8 +2377,7 @@
<activity
android:name="Settings$PictureInPictureSettingsActivity"
- android:label="@string/picture_in_picture_title"
- android:parentActivityName="Settings">
+ android:label="@string/picture_in_picture_title">
<intent-filter android:priority="1">
<action android:name="android.settings.PICTURE_IN_PICTURE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2454,8 +2392,7 @@
<activity
android:name="Settings$AppPictureInPictureSettingsActivity"
- android:label="@string/picture_in_picture_title"
- android:parentActivityName="Settings">
+ android:label="@string/picture_in_picture_title">
<intent-filter>
<action android:name="android.settings.PICTURE_IN_PICTURE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2480,8 +2417,7 @@
<activity
android:name="Settings$ZenAccessSettingsActivity"
- android:label="@string/manage_zen_access_title"
- android:parentActivityName="Settings">
+ android:label="@string/manage_zen_access_title">
<intent-filter android:priority="1">
<action android:name="android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2493,8 +2429,7 @@
<activity
android:name="Settings$ConfigureNotificationSettingsActivity"
android:label="@string/configure_notification_settings"
- android:exported="true"
- android:parentActivityName="Settings">
+ android:exported="true">
<intent-filter android:priority="1">
<action android:name="android.settings.NOTIFICATION_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2511,8 +2446,7 @@
<activity
android:name="Settings$AppBubbleNotificationSettingsActivity"
- android:label="@string/bubbles_app_toggle_title"
- android:parentActivityName="Settings$NotificationAppListActivity">
+ android:label="@string/bubbles_app_toggle_title">
<intent-filter android:priority="1">
<action android:name="android.settings.APP_NOTIFICATION_BUBBLE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2525,8 +2459,7 @@
android:name="Settings$SoundSettingsActivity"
android:label="@string/sound_settings"
android:icon="@drawable/ic_homepage_sound"
- android:exported="true"
- android:parentActivityName="Settings">
+ android:exported="true">
<intent-filter android:priority="1">
<action android:name="com.android.settings.SOUND_SETTINGS" />
<action android:name="android.settings.SOUND_SETTINGS" />
@@ -2583,7 +2516,6 @@
<activity
android:name="ManualDisplayActivity"
android:label="@string/manual"
- android:parentActivityName="Settings"
android:enabled="@bool/config_show_manual">
<intent-filter>
<action android:name="android.settings.SHOW_MANUAL" />
@@ -2597,7 +2529,6 @@
<activity
android:name="RegulatoryInfoDisplayActivity"
android:label="@string/regulatory_labels"
- android:parentActivityName="Settings"
android:enabled="@bool/config_show_regulatory_info">
<intent-filter>
<action android:name="android.settings.SHOW_REGULATORY_INFO" />
@@ -2765,33 +2696,23 @@
<activity
android:name="Settings$OverlaySettingsActivity"
- android:label="@string/draw_overlay"
- android:parentActivityName="Settings">
+ android:label="@string/draw_overlay">
<intent-filter android:priority="1">
<action android:name="android.settings.action.MANAGE_OVERLAY_PERMISSION" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
- <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
- android:value="com.android.settings.applications.manageapplications.ManageApplications" />
- </activity>
-
- <activity
- android:name="Settings$AppDrawOverlaySettingsActivity"
- android:label="@string/draw_overlay"
- android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.action.MANAGE_OVERLAY_PERMISSION" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="package" />
</intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
- android:value="com.android.settings.applications.appinfo.DrawOverlayDetails" />
+ android:value="com.android.settings.applications.manageapplications.ManageApplications" />
</activity>
<activity
android:name="Settings$WriteSettingsActivity"
- android:label="@string/write_settings_title"
- android:parentActivityName="Settings">
+ android:label="@string/write_settings_title">
<intent-filter android:priority="1">
<action android:name="android.settings.action.MANAGE_WRITE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2802,8 +2723,7 @@
<activity
android:name="Settings$AppWriteSettingsActivity"
- android:label="@string/write_settings_title"
- android:parentActivityName="Settings">
+ android:label="@string/write_settings_title">
<intent-filter android:priority="1">
<action android:name="android.settings.action.MANAGE_WRITE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2815,8 +2735,7 @@
<activity
android:name="Settings$ManageExternalSourcesActivity"
- android:label="@string/install_other_apps"
- android:parentActivityName="Settings">
+ android:label="@string/install_other_apps">
<intent-filter android:priority="1">
<action android:name="android.settings.MANAGE_UNKNOWN_APP_SOURCES" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2884,15 +2803,14 @@
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.system" />
<meta-data android:name="com.android.settings.summary_uri"
- android:value="content://com.android.settings.dashboard.SummaryProvider/backup" />
+ android:value="content://com.android.settings.dashboard.SummaryProvider/backup" />
<meta-data android:name="com.android.settings.order" android:value="-60"/>
</activity>
<activity
android:name="Settings$AutomaticStorageManagerSettingsActivity"
android:exported="@bool/config_storage_manager_settings_enabled"
- android:label="@string/automatic_storage_manager_settings"
- android:parentActivityName="Settings">
+ android:label="@string/automatic_storage_manager_settings">
<intent-filter android:priority="1">
<action android:name="android.settings.STORAGE_MANAGER_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2918,7 +2836,6 @@
android:name=".Settings$AppAndNotificationDashboardActivity"
android:label="@string/app_and_notification_dashboard_title"
android:icon="@drawable/ic_homepage_apps"
- android:parentActivityName="Settings"
android:exported="true">
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.applications.AppAndNotificationDashboardFragment"/>
@@ -2927,8 +2844,7 @@
<activity
android:name=".Settings$AccountDashboardActivity"
android:label="@string/account_dashboard_title"
- android:icon="@drawable/ic_homepage_accounts"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_homepage_accounts">
<intent-filter android:priority="1">
<action android:name="android.settings.SYNC_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2946,8 +2862,7 @@
<activity
android:name=".Settings$SystemDashboardActivity"
android:label="@string/header_category_system"
- android:icon="@drawable/ic_homepage_system_dashboard"
- android:parentActivityName="Settings">
+ android:icon="@drawable/ic_homepage_system_dashboard">
<intent-filter android:priority="70">
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.SHORTCUT" />
@@ -3075,8 +2990,7 @@
</activity>
<activity android:name="Settings$AdvancedConnectedDeviceActivity"
- android:label="@string/connected_device_connections_title"
- android:parentActivityName="Settings$ConnectedDeviceDashboardActivity">
+ android:label="@string/connected_device_connections_title">
<intent-filter android:priority="1">
<action android:name="android.settings.NFC_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -3093,8 +3007,7 @@
<activity android:name="Settings$BluetoothDeviceDetailActivity"
android:label="@string/device_details_title"
- android:permission="android.permission.BLUETOOTH_PRIVILEGED"
- android:parentActivityName="Settings$ConnectedDeviceDashboardActivity">
+ android:permission="android.permission.BLUETOOTH_PRIVILEGED">
<intent-filter android:priority="1">
<action android:name="com.android.settings.BLUETOOTH_DEVICE_DETAIL_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -3232,8 +3145,7 @@
</activity>
<activity android:name="Settings$BatterySaverScheduleSettingsActivity"
- android:label="@string/battery_saver_schedule_settings_title"
- android:parentActivityName="Settings">
+ android:label="@string/battery_saver_schedule_settings_title">
<intent-filter>
<action android:name="com.android.settings.BATTERY_SAVER_SCHEDULE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
diff --git a/res/drawable-nodpi/accessibility_timeout b/res/drawable-nodpi/accessibility_timeout
deleted file mode 100644
index e69de29..0000000
--- a/res/drawable-nodpi/accessibility_timeout
+++ /dev/null
diff --git a/res/drawable-nodpi/accessibility_timeout.png b/res/drawable-nodpi/accessibility_timeout.png
new file mode 100644
index 0000000..887f117
--- /dev/null
+++ b/res/drawable-nodpi/accessibility_timeout.png
Binary files differ
diff --git a/res/drawable/ic_pan_tool_18dp.xml b/res/drawable/ic_pan_tool_18dp.xml
index 3ebfc9c..36b133b 100644
--- a/res/drawable/ic_pan_tool_18dp.xml
+++ b/res/drawable/ic_pan_tool_18dp.xml
@@ -1,10 +1,28 @@
+<?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.
+ -->
+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="18dp"
- android:height="18dp"
- android:viewportWidth="48"
- android:viewportHeight="48">
+ android:width="18dp"
+ android:height="18dp"
+ android:viewportWidth="48"
+ android:viewportHeight="48">
<group>
- <clip-path android:pathData="M0,0h48v48H0z M 0,0"/>
+ <clip-path
+ android:pathData="M0,0h48v48H0z M 0,0"/>
<path
android:pathData="M46,11v29c0,4.4 -3.6,8 -8,8H23.4c-2.16,0 -4.2,-0.86 -5.7,-2.38L2,29.66s2.52,-2.46 2.6,-2.5c0.44,-0.38 0.98,-0.58 1.58,-0.58 0.44,0 0.84,0.12 1.2,0.32 0.08,0.02 8.62,4.92 8.62,4.92V8c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v14h2V3c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v19h2V5c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v17h2V11c0,-1.66 1.34,-3 3,-3s3,1.34 3,3z"
android:fillColor="#757575"/>
diff --git a/res/drawable/ic_visibility_18dp.xml b/res/drawable/ic_visibility_18dp.xml
index 9e27815c..9dc269f 100644
--- a/res/drawable/ic_visibility_18dp.xml
+++ b/res/drawable/ic_visibility_18dp.xml
@@ -1,9 +1,26 @@
+<?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.
+ -->
+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="18dp"
- android:height="18dp"
- android:viewportWidth="48"
- android:viewportHeight="48">
- <path
- android:pathData="M24,9C14,9 5.46,15.22 2,24c3.46,8.78 12,15 22,15 10.01,0 18.54,-6.22 22,-15 -3.46,-8.78 -11.99,-15 -22,-15zM24,34c-5.52,0 -10,-4.48 -10,-10s4.48,-10 10,-10 10,4.48 10,10 -4.48,10 -10,10zM24,18c-3.31,0 -6,2.69 -6,6s2.69,6 6,6 6,-2.69 6,-6 -2.69,-6 -6,-6z"
- android:fillColor="#757575"/>
+ android:width="18dp"
+ android:height="18dp"
+ android:viewportWidth="48"
+ android:viewportHeight="48">
+ <path
+ android:pathData="M24,9C14,9 5.46,15.22 2,24c3.46,8.78 12,15 22,15 10.01,0 18.54,-6.22 22,-15 -3.46,-8.78 -11.99,-15 -22,-15zM24,34c-5.52,0 -10,-4.48 -10,-10s4.48,-10 10,-10 10,4.48 10,10 -4.48,10 -10,10zM24,18c-3.31,0 -6,2.69 -6,6s2.69,6 6,6 6,-2.69 6,-6 -2.69,-6 -6,-6z"
+ android:fillColor="#757575"/>
</vector>
diff --git a/res/layout/mobile_network_settings_container.xml b/res/layout/mobile_network_settings_container.xml
deleted file mode 100644
index c88b512..0000000
--- a/res/layout/mobile_network_settings_container.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2018 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.
- -->
-
-<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
-
- <Toolbar
- android:id="@+id/mobile_action_bar"
- style="?android:attr/actionBarStyle"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:navigationContentDescription="@*android:string/action_bar_up_description"
- android:theme="?android:attr/actionBarTheme"/>
-
- <FrameLayout
- android:id="@+id/main_content"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"/>
-
- <com.google.android.material.bottomnavigation.BottomNavigationView
- android:id="@+id/bottom_nav"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_marginEnd="0dp"
- android:layout_marginStart="0dp"
- android:background="?android:attr/windowBackground"
- app:itemIconTint="@color/bottom_navigation_colors"
- app:itemTextColor="@color/bottom_navigation_colors"
- app:menu="@menu/home_bottom_navigation"/>
-</LinearLayout>
diff --git a/res/layout/mobile_network_settings_container_v2.xml b/res/layout/mobile_network_settings_container_v2.xml
deleted file mode 100644
index ed7296b..0000000
--- a/res/layout/mobile_network_settings_container_v2.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?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.
- -->
-
-<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
-
- <Toolbar
- android:id="@+id/mobile_action_bar"
- style="?android:attr/actionBarStyle"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:navigationContentDescription="@*android:string/action_bar_up_description"
- android:theme="?android:attr/actionBarTheme"/>
-
- <FrameLayout
- android:id="@+id/main_content"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"/>
-
-</LinearLayout>
diff --git a/res/layout/profile_select_tablayout.xml b/res/layout/profile_select_tablayout.xml
index 8c0ca8c..3e83bb9 100644
--- a/res/layout/profile_select_tablayout.xml
+++ b/res/layout/profile_select_tablayout.xml
@@ -32,7 +32,6 @@
app:tabMaxWidth="0dp"
app:tabGravity="fill"
app:tabMode="fixed"
- app:tabIndicatorFullWidth="false"
app:tabIndicatorColor="@*android:color/accent_device_default"
app:tabSelectedTextColor="@*android:color/accent_device_default"
app:tabTextColor="?android:attr/textColorSecondary" />
diff --git a/res/layout/screen_pinning_instructions.xml b/res/layout/screen_pinning_instructions.xml
deleted file mode 100644
index fea5ed8..0000000
--- a/res/layout/screen_pinning_instructions.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2014, 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.
-*/
--->
-
-<ScrollView
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/instructions_area"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <TextView
- android:id="@+id/screen_pinning_description"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_alignParentTop="true"
- android:paddingTop="@dimen/screen_pinning_textview_padding"
- android:text="@string/screen_pinning_description"
- android:textAppearance="@style/TextAppearance.Medium"
- android:paddingStart="@dimen/screen_pinning_padding_start"
- android:paddingEnd="@dimen/screen_pinning_padding_end"
- />
-
-</ScrollView>
diff --git a/res/layout/settings_base_layout.xml b/res/layout/settings_base_layout.xml
index f94d25d..0a4437e 100644
--- a/res/layout/settings_base_layout.xml
+++ b/res/layout/settings_base_layout.xml
@@ -27,7 +27,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="?android:attr/actionBarTheme"
- android:navigationContentDescription="@*android:string/action_bar_up_description" />
+ android:navigationContentDescription="@*android:string/back_button_label" />
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
diff --git a/res/raw/accessibility_timeout.mp4 b/res/raw/accessibility_timeout.mp4
index e69de29..2214e2b 100644
--- a/res/raw/accessibility_timeout.mp4
+++ b/res/raw/accessibility_timeout.mp4
Binary files differ
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 95e0bb1..6828cb2 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -323,7 +323,7 @@
<string name="decryption_settings_summary" product="default" msgid="5671817824042639849">"الهاتف ليس مشفّرًا."</string>
<string name="encryption_and_credential_settings_summary" product="tablet" msgid="7200428573872395685">"تم تشفير الجهاز"</string>
<string name="decryption_settings_summary" product="tablet" msgid="5794135636155570977">"الجهاز ليس مشفرًا."</string>
- <string name="lockscreen_settings_title" msgid="1099738951060387656">"عرض شاشة القفل"</string>
+ <string name="lockscreen_settings_title" msgid="1099738951060387656">"عرض شاشة التأمين"</string>
<string name="lockscreen_settings_what_to_show_category" msgid="278055252361575926">"ما يتم عرضه"</string>
<string name="security_settings_summary" msgid="967393342537986570">"تعيين موقعي، إلغاء تأمين الشاشة، تأمين شريحة SIM، تأمين تخزين الاعتماد"</string>
<string name="cdma_security_settings_summary" msgid="6068799952798901542">"تعيين موقعي، إلغاء تأمين الشاشة، تأمين تخزين الاعتماد"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 0b5214d..e2d4030 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -4160,7 +4160,7 @@
<string name="ambient_display_title" product="tablet" msgid="8688795028609563837">"Per consultar la tauleta, fes-hi doble toc"</string>
<string name="ambient_display_title" product="device" msgid="3423781975742145894">"Per consultar el dispositiu, fes-hi doble toc"</string>
<string name="ambient_display_summary" msgid="8534654210539169707">"Per veure l\'hora, les notificacions i altres dades, fes doble toc a la pantalla."</string>
- <string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Aixeca per consultar el telèfon"</string>
+ <string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Aixeca per consultar-lo"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Per consultar la tauleta, aixeca-la"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Aixeca el dispositiu per consultar-lo"</string>
<string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Activa la pantalla"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 66dae00..e9f2674 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -56,7 +56,7 @@
<string name="font_size_preview_text_headline" msgid="7955317408475392247">"Testu-lagina"</string>
<string name="font_size_preview_text_title" msgid="1310536233106975546">"Ozeko azti miragarria"</string>
<string name="font_size_preview_text_subtitle" msgid="4231671528173110093">"11. kapitulua: Esmeraldazko Oz hiri harrigarria"</string>
- <string name="font_size_preview_text_body" msgid="2846183528684496723">"Begiak betaurreko berdeekin babestuta bazituzten ere, Dorothy eta haren lagunak txundituta geratu ziren Hiri zoragarri haren distira lehenbizikoz ikustean. Kaleak etxe ederrez josita zeuden; marmol berdezkoak ziren, eta esmeralda distiratsuz zeuden apainduta. Marmol berde hartaz egindako espaloian ibili ziren, eta lauzen junturak esmeraldazko errenkadak zirela nabaritu zuten, bata bestearen ondoan estu-estu jarriak, eguzkitan dir-dir egiten. Leihoen kristalak berdeak ziren. Hiria estaltzen zuen zeruak kutsu berdea zuen, eta berdeak ziren eguzki-izpiak ere. \n\nJende asko zebilen hara eta hona: gizonak, emakumeak eta haurrak, guztiak berdez jantziak eta azal berdexkakoak. Zalantzaz begiratzen zieten Dorothyri eta haren lagun talde xelebreari, eta haurrak amaren atzean ezkutatzen ziren lehoia ikusi bezain laster. Hala ere, inork ez zien txintik ere esan. Denda asko zeuden kalean, eta salgai guztiak berdeak zirela antzeman zuen Dorothyk. Gozoki berdeak eta krispeta berdeak eros zitezkeen, baita zapata berdeak, kapela berdeak eta askotariko jantzi berdeak ere. Gizon bat limonada berdea saltzen ari zen, eta haur batzuek erosi ziotenean, txanpon berdeekin ordaindu zutela ikusi zuen Dorothyk. \n\nEz zegoen zaldirik edo inolako animaliarik; gizonek orgatxo berdeak bultzatuta eramaten zituzten gauzak batetik bestera. Denak zeuden pozik, alai eta zoriontsu."</string>
+ <string name="font_size_preview_text_body" msgid="2846183528684496723">"Begiak betaurreko berdeekin babestuta bazituzten ere, Dorothy eta haren lagunak txundituta geratu ziren Hiri zoragarri haren distira lehenbizikoz ikustean. Kaleak etxe ederrez josita zeuden; marmol berdezkoak ziren, eta esmeralda distiratsuz zeuden apainduta. Marmol berde hartaz egindako espaloian ibili ziren, eta lauzen junturak esmeraldazko errenkadak zirela nabaritu zuten, bata bestearen ondoan estu-estu jarriak, eguzkitan dir-dir egiten. Leihoen kristalak berdeak ziren. Hiria estaltzen zuen zeruak kutsu berdea zuen, eta berdeak ziren eguzki-izpiak ere. \n\nJende asko zebilen hara eta hona: gizonak, emakumeak eta haurrak, guztiak berdez jantziak eta azal berdexkakoak. Zalantzaz begiratzen zieten Dorothyri eta haren lagun talde xelebreari, eta haurrak amaren atzean ezkutatzen ziren lehoia ikusi bezain laster. Hala ere, inork ez zien txintik ere esan. Denda asko zeuden kalean, eta salgai guztiak berdeak zirela atzeman zuen Dorothyk. Gozoki berdeak eta krispeta berdeak eros zitezkeen, baita zapata berdeak, kapela berdeak eta askotariko jantzi berdeak ere. Gizon bat limonada berdea saltzen ari zen, eta haur batzuek erosi ziotenean, txanpon berdeekin ordaindu zutela ikusi zuen Dorothyk. \n\nEz zegoen zaldirik edo inolako animaliarik; gizonek orgatxo berdeak bultzatuta eramaten zituzten gauzak batetik bestera. Denak zeuden pozik, alai eta zoriontsu."</string>
<string name="font_size_save" msgid="3450855718056759095">"Ados"</string>
<string name="sdcard_setting" product="nosdcard" msgid="8281011784066476192">"USB bidezko memoria"</string>
<string name="sdcard_setting" product="default" msgid="5922637503871474866">"SD txartela"</string>
diff --git a/res/values-mr-nokeys/strings.xml b/res/values-mr-nokeys/strings.xml
index db0e2ea..2acc866 100644
--- a/res/values-mr-nokeys/strings.xml
+++ b/res/values-mr-nokeys/strings.xml
@@ -16,5 +16,5 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applications_settings_summary" msgid="6616938758022986257">"अॅप्लिकेशन व्यवस्थापित करा"</string>
+ <string name="applications_settings_summary" msgid="6616938758022986257">"ॲप्लिकेशन व्यवस्थापित करा"</string>
</resources>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index 351d24f..d33a79d 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -444,7 +444,7 @@
</string-array>
<string-array name="proc_stats_process_states">
<item msgid="5069825997142785829">"कायम"</item>
- <item msgid="5779398140277006695">"आघाडीच्या अॅक्टिव्हिटी"</item>
+ <item msgid="5779398140277006695">"आघाडीच्या ॲक्टिव्हिटी"</item>
<item msgid="1439598363694578255">"महत्त्वाचे (अग्रभाग)"</item>
<item msgid="3396458970745718652">"महत्त्वाचे (पार्श्वभूमी)"</item>
<item msgid="5214825238247511992">"बॅकअप घ्या"</item>
@@ -453,9 +453,9 @@
<item msgid="918687422516982498">"सेवा (रीस्टार्ट करत आहे)"</item>
<item msgid="6807727069641853029">"प्राप्तकर्ता"</item>
<item msgid="6782857406100845127">"होम"</item>
- <item msgid="2860945127596974299">"शेवटच्या अॅक्टिव्हिटी"</item>
- <item msgid="8610560843693675830">"कॅशे केलेली (अॅक्टिव्हिटी)"</item>
- <item msgid="4338089220026248848">"कॅशे केलेला (अॅक्टिव्हिटी क्लायंट)"</item>
+ <item msgid="2860945127596974299">"शेवटच्या ॲक्टिव्हिटी"</item>
+ <item msgid="8610560843693675830">"कॅशे केलेली (ॲक्टिव्हिटी)"</item>
+ <item msgid="4338089220026248848">"कॅशे केलेला (ॲक्टिव्हिटी क्लायंट)"</item>
<item msgid="6652164677254579050">"कॅश केलेला (रिक्त)"</item>
</string-array>
<string-array name="color_picker">
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 3889492..20e83be 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -176,7 +176,7 @@
<string name="proxy_error_empty_port" msgid="5539106187558215246">"तुम्हाला पोर्ट फील्ड पूर्ण करण्याची आवश्यकता आहे"</string>
<string name="proxy_error_empty_host_set_port" msgid="2451694104858226781">"होस्ट फील्ड रिक्त असल्यास पोर्ट फील्ड रिक्त असणे आवश्यक आहे."</string>
<string name="proxy_error_invalid_port" msgid="5988270202074492710">"तुम्ही टाइप केलेला पोर्ट वैध नाही."</string>
- <string name="proxy_warning_limited_support" msgid="7229337138062837422">"ब्राउझरद्वारे HTTP प्रॉक्सी वापरले जाते परंतु अन्य अॅप्सद्वारे कदाचित वापरले जाणार नाही."</string>
+ <string name="proxy_warning_limited_support" msgid="7229337138062837422">"ब्राउझरद्वारे HTTP प्रॉक्सी वापरले जाते परंतु अन्य ॲप्सद्वारे कदाचित वापरले जाणार नाही."</string>
<string name="proxy_url_title" msgid="7185282894936042359">"PAC URL: "</string>
<string name="radio_info_ping_hostname_v4" msgid="7045103377818314709">"पिंग होस्ट नाव(www.google.com) IPv4:"</string>
<string name="radio_info_ping_hostname_v6" msgid="1130906124160553954">"पिंग होस्ट नाव(www.google.com) IPv6:"</string>
@@ -211,13 +211,13 @@
<string name="dlg_remove_locales_message" msgid="1361354927342876114">"मजकूर दुसऱ्या भाषेत डिस्प्ले केला जाईल."</string>
<string name="dlg_remove_locales_error_title" msgid="2653242337224911425">"सर्व भाषा काढू शकत नाही"</string>
<string name="dlg_remove_locales_error_message" msgid="6697381512654262821">"किमान एक प्राधान्यीकृत भाषा ठेवा"</string>
- <string name="locale_not_translated" msgid="516862628177166755">"काही अॅपसमध्ये उपलब्ध होऊ शकत नाही"</string>
+ <string name="locale_not_translated" msgid="516862628177166755">"काही ॲपसमध्ये उपलब्ध होऊ शकत नाही"</string>
<string name="action_drag_label_move_up" msgid="9052210023727612540">"वर हलवा"</string>
<string name="action_drag_label_move_down" msgid="7448713844582912157">"खाली हलवा"</string>
<string name="action_drag_label_move_top" msgid="557081389352288310">"शीर्षस्थानी हलवा"</string>
<string name="action_drag_label_move_bottom" msgid="2468642142414126482">"तळाशी हलवा"</string>
<string name="action_drag_label_remove" msgid="2861038147166966206">"भाषा काढा"</string>
- <string name="activity_picker_label" msgid="6295660302548177109">"अॅक्टिव्हिटी निवडा"</string>
+ <string name="activity_picker_label" msgid="6295660302548177109">"ॲक्टिव्हिटी निवडा"</string>
<string name="device_info_label" msgid="6551553813651711205">"डिव्हाइस माहिती"</string>
<string name="display_label" msgid="8074070940506840792">"स्क्रीन"</string>
<string name="sd_card_settings_label" product="nosdcard" msgid="8101475181301178428">"USB स्टोरेज"</string>
@@ -300,8 +300,8 @@
<string name="location_settings_master_switch_title" msgid="3560242980335542411">"स्थान वापरा"</string>
<string name="location_settings_summary_location_off" msgid="794370259612167176">"बंद"</string>
<plurals name="location_settings_summary_location_on" formatted="false" msgid="5513447650619485188">
- <item quantity="other">सुरू - <xliff:g id="COUNT_1">%1$d</xliff:g> अॅप्सना स्थानाचा अॅक्सेस आहे</item>
- <item quantity="one">सुरू - <xliff:g id="COUNT_0">%1$d</xliff:g> अॅपला स्थानाचा अॅक्सेस आहे</item>
+ <item quantity="other">सुरू - <xliff:g id="COUNT_1">%1$d</xliff:g> ॲप्सना स्थानाचा अॅक्सेस आहे</item>
+ <item quantity="one">सुरू - <xliff:g id="COUNT_0">%1$d</xliff:g> ॲपला स्थानाचा अॅक्सेस आहे</item>
</plurals>
<string name="location_settings_loading_app_permission_stats" msgid="8523775367089431611">"लोड करत आहे…"</string>
<string name="account_settings_title" msgid="626177544686329806">"खाती"</string>
@@ -340,9 +340,9 @@
<string name="security_settings_face_enroll_introduction_more" msgid="8933757421629981560">"आणखी"</string>
<string name="security_settings_face_enroll_introduction_title" msgid="2694505011712885439">"तुमच्या चेहऱ्यासह अनलॉक करा"</string>
<string name="security_settings_face_enroll_introduction_title_unlock_disabled" msgid="8180330567034286589">"ऑथेंटिकेट करण्यासाठी तुमचा चेहरा वापरा"</string>
- <string name="security_settings_face_enroll_introduction_message" msgid="6150611993438981458">"तुमचा फोन अनलॉक करण्यासाठी, खरेदी मान्यता देण्यासाठी किंवा अॅप्समध्ये साइन इन करण्यासाठी तुमचा चेहरा वापरा."</string>
+ <string name="security_settings_face_enroll_introduction_message" msgid="6150611993438981458">"तुमचा फोन अनलॉक करण्यासाठी, खरेदी मान्यता देण्यासाठी किंवा ॲप्समध्ये साइन इन करण्यासाठी तुमचा चेहरा वापरा."</string>
<string name="security_settings_face_enroll_introduction_message_unlock_disabled" msgid="6393270235632444857">"फोन अनलॉक करण्यासाठी किंवा खरेदींना मंजूरी देण्यासाठी तुमचा चेहरा वापरा.\n\nटीप: तुम्ही हे डिव्हाइस अनलॉक करण्यासाठी तुमचा चेहरा वापरू शकत नाही. अधिक माहितीसाठी, तुमच्या संस्थेच्या प्रशासकाशी संपर्क साधा."</string>
- <string name="security_settings_face_enroll_introduction_message_setup" msgid="5704661081718707858">"तुमचा फोन अनलॉक करण्यासाठी, खरेदी परवानगी देण्यासाठी किंवा अॅप्सवर साइन इन करण्यासाठी तुमचा चेहरा वापरा"</string>
+ <string name="security_settings_face_enroll_introduction_message_setup" msgid="5704661081718707858">"तुमचा फोन अनलॉक करण्यासाठी, खरेदी परवानगी देण्यासाठी किंवा ॲप्सवर साइन इन करण्यासाठी तुमचा चेहरा वापरा"</string>
<string name="security_settings_face_enroll_introduction_footer_part_0" msgid="3316520154949466889"></string>
<string name="security_settings_face_enroll_introduction_footer_part_1" msgid="5594630288374571903"></string>
<string name="security_settings_face_enroll_introduction_footer_part_2" msgid="7576241712527601978"></string>
@@ -371,7 +371,7 @@
<string name="security_settings_face_settings_require_attention" msgid="8523824066748480516">"डोळे उघडे असणे आवश्यक आहे"</string>
<string name="security_settings_face_settings_require_attention_details" msgid="6595676992796133643">"फोन अनलॉक करण्यासाठी, तुमचे डोळे उघडे असणे आवश्यक आहे"</string>
<string name="security_settings_face_settings_require_confirmation" msgid="2559602923985027572">"नेहमी खात्री करणे आवश्यक आहे"</string>
- <string name="security_settings_face_settings_require_confirmation_details" msgid="6466094680756211420">"अॅप्समध्ये फेस अनलॉक वापरताना, नेहमी खात्री करणे आवश्यक आहे"</string>
+ <string name="security_settings_face_settings_require_confirmation_details" msgid="6466094680756211420">"ॲप्समध्ये फेस अनलॉक वापरताना, नेहमी खात्री करणे आवश्यक आहे"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="304401377141467791">"फेस डेटा हटवा"</string>
<string name="security_settings_face_settings_enroll" msgid="495403103503629382">"फेस अनलॉक सेट करा"</string>
<string name="security_settings_face_settings_footer" msgid="6072833685685070967">"तुमचे डिव्हाइस अनलॉक करण्यासाठी, अॅप्समध्ये साइन इन करण्यासाठी आणि पेमेंटची खात्री करण्यासाठी फेस अनलॉक वापरा. \n\n लक्षात ठेवा:\nतुमचा हेतू नसताना देखील फोनकडे पाहिल्यास तो अनलॉक होऊ शकतो.\n\nतुमचे डोळे उघडे असताना एखाद्या व्यक्तीने तुमचा फोन तुमच्या चेहऱ्याकडे धरल्यास तुमचा फोन अनलॉक केला जाऊ शकतो\n\nतुमच्यासारखी दिसणारी व्यक्ती तुमचा फोन संभाव्यत: अनलॉक करू शकते, जसे की, तुमचे भावंड."</string>
@@ -390,7 +390,7 @@
<string name="security_settings_fingerprint_preference_summary_none" msgid="1507739327565151923"></string>
<string name="security_settings_fingerprint_enroll_introduction_title" msgid="3201556857492526098">"फिंगरप्रिंटने अनलॉक करा"</string>
<string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled" msgid="7066417934622827305">"तुमचे फिंगरप्रिंट वापरा"</string>
- <string name="security_settings_fingerprint_enroll_introduction_message" msgid="3508870672887336095">"तुमचा फोन अनलॉक करण्यासाठी, खरेदी अधिकृत करण्यासाठी किंवा अॅप्समध्ये साइन इन करण्यासाठी फक्त फिंगरप्रिंट सेन्सरला स्पर्श करा. तुम्ही ज्यांचे फिंगरप्रिंट जोडता त्याविषयी सावधगिरी बाळगा. जोडलेला एक प्रिंट देखील यापैकी कोणतीही गोष्ट करू शकतो. \n\n टीप: तुमचे फिंगरप्रिंट क्लिष्ट पॅटर्न किंवा पिन पेक्षा कमी सुरक्षित असू शकतात."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_message" msgid="3508870672887336095">"तुमचा फोन अनलॉक करण्यासाठी, खरेदी अधिकृत करण्यासाठी किंवा ॲप्समध्ये साइन इन करण्यासाठी फक्त फिंगरप्रिंट सेन्सरला स्पर्श करा. तुम्ही ज्यांचे फिंगरप्रिंट जोडता त्याविषयी सावधगिरी बाळगा. जोडलेला एक प्रिंट देखील यापैकी कोणतीही गोष्ट करू शकतो. \n\n टीप: तुमचे फिंगरप्रिंट क्लिष्ट पॅटर्न किंवा पिन पेक्षा कमी सुरक्षित असू शकतात."</string>
<string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="1550756694054944874">"फोन अनलॉक करण्यासाठी किंवा खरेदींना मंजूरी देण्यासाठी तुमचे फिंगरप्रिंट वापरा.\n\nटीप: तुम्ही हे डिव्हाइस अनलॉक करण्यासाठी तुम्ही तुमचे फिंगरप्रिंट वापरू शकत नाही. अधिक माहितीसाठी संस्थेच्या प्रशासकाशी संपर्क साधा."</string>
<string name="security_settings_fingerprint_enroll_introduction_message_setup" msgid="6817326798834882531">"फोन अनलॉक करण्यासाठी किंवा खरेदीला मंजुरी देण्यासाठी तुमची फिंगरप्रिंट वापरा.\n\nटीप: क्लिष्ट पॅटर्न किंवा पिनच्या तुलनेत तुमची फिंगरप्रिंट ही कमी सुरक्षित असू शकते."</string>
<string name="security_settings_fingerprint_enroll_introduction_cancel" msgid="3199351118385606526">"रद्द करा"</string>
@@ -404,7 +404,7 @@
<string name="lock_screen_intro_skip_dialog_text_frp" product="device" msgid="4629503416877189572">"डिव्हाइस संरक्षण वैशिष्ट्ये सुरू होणार नाहीत. हे डिव्हाइस हरवल्यास, चोरी झाल्यास किंवा रीसेट केल्यास तुम्ही इतरांना तो वापरण्यापासून रोखू शकणार नाही."</string>
<string name="lock_screen_intro_skip_dialog_text_frp" product="default" msgid="2423428240245737909">"डिव्हाइस संरक्षण वैशिष्ट्ये सुरू होणार नाहीत. हा फोन हरवल्यास, चोरी झाल्यास किंवा रीसेट केल्यास तुम्ही इतरांना तो वापरण्यापासून रोखू शकणार नाही."</string>
<string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="5219287483885558525">"डिव्हाइस संरक्षण वैशिष्ट्ये सुरू होणार नाहीत. हा टॅब्लेट हरवल्यास किंवा चोरी झाल्यास तुम्ही इतरांना तो वापरण्यापासून रोखू शकणार नाही."</string>
- <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="1466238255429527112">"डिव्हाइस संरक्षण्ा वैशिष्ट्ये सुरू होणार नाहीत. हे डिव्हाइस हरवल्यास किंवा चोरी झाल्यास तुम्ही इतरांना ते वापरण्यापासून प्रतिबंधित करू शकणार नाही."</string>
+ <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="1466238255429527112">"डिव्हाइस संरक्षण वैशिष्ट्ये सुरू होणार नाहीत. हे डिव्हाइस हरवल्यास किंवा चोरी झाल्यास तुम्ही इतरांना ते वापरण्यापासून प्रतिबंधित करू शकणार नाही."</string>
<string name="lock_screen_intro_skip_dialog_text" product="default" msgid="3008526710555416125">"डिव्हाइस संरक्षण वैशिष्ट्ये सुरू होणार नाहीत. हा फोन हरवला किंवा चोरी झाला तर तुम्ही इतरांना तो वापरण्यापासून रोखू शकणार नाही."</string>
<string name="skip_anyway_button_label" msgid="2323522873558834513">"तरीही वगळा"</string>
<string name="go_back_button_label" msgid="4745265266186209467">"परत जा"</string>
@@ -453,7 +453,7 @@
<string name="fingerprint_delete_title" msgid="1368196182612202898">"\'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' काढा"</string>
<string name="fingerprint_delete_message" msgid="8597787803567398131">"तुम्हाला ही फिंगरप्रिंट हटवायची आहे का?"</string>
<string name="fingerprint_last_delete_message" msgid="7852321001254275878">"तुम्ही तुमचे फिंगरप्रिंट तुमचा फोन अनलॉक करण्यासाठी, खरेदी प्रमाणित करण्यासाठी किंवा त्यांच्यासह अॅप्समध्ये साइन इन करण्यासाठी वापरू शकणार नाही"</string>
- <string name="fingerprint_last_delete_message_profile_challenge" msgid="6521520787746771912">"तुम्ही तुमचे फिंगरप्रिंट तुमचे कार्य प्रोफाइल अनलॉक करण्यासाठी, खरेद्या प्रमाणित करण्यासाठी किंवा कार्य अॅप्समध्ये साइन इन करण्यासाठी वापरू शकणार नाही"</string>
+ <string name="fingerprint_last_delete_message_profile_challenge" msgid="6521520787746771912">"तुम्ही तुमचे फिंगरप्रिंट तुमचे कार्य प्रोफाइल अनलॉक करण्यासाठी, खरेद्या प्रमाणित करण्यासाठी किंवा कार्य ॲप्समध्ये साइन इन करण्यासाठी वापरू शकणार नाही"</string>
<string name="fingerprint_last_delete_confirm" msgid="2634726361059274289">"होय, काढा"</string>
<string name="crypt_keeper_settings_title" msgid="4219233835490520414">"एंक्रिप्शन"</string>
<string name="crypt_keeper_encrypt_title" product="tablet" msgid="1060273569887301457">"टॅबलेट एंक्रिप्ट करा"</string>
@@ -500,9 +500,9 @@
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"तुमचे डिव्हाइस संरक्षित करा"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"तुमचा फोन संरक्षित करा"</string>
<string name="lock_settings_picker_biometrics_added_security_message" msgid="1507307757032207572">"अतिरिक्त सुरक्षिततेसाठी, बॅकअप स्क्रीन लॉक सेट करा"</string>
- <string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"डिव्हाइस संरक्षण वैशिष्ट्ये अॅक्टिव्हेट करून तुमच्या परवानगीशिवाय हा टॅब्लेट वापरण्यापासून इतरांना प्रतिबंधित करा. तुम्ही वापरू इच्छित असलेले स्क्रीन लॉक निवडा."</string>
- <string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"डिव्हाइस संरक्षण वैशिष्ट्ये अॅक्टिव्हेट करून तुमच्या परवानगीशिवाय हे डिव्हाइस वापरण्यापासून इतरांना प्रतिबंधित करा. तुम्ही वापरू इच्छित असलेले स्क्रीन लॉक निवडा."</string>
- <string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"डिव्हाइस संरक्षण वैशिष्ट्ये अॅक्टिव्हेट करून तुमच्या परवानगीशिवाय हा फोन वापरण्यापासून इतरांना प्रतिबंधित करा. तुम्ही वापरू इच्छित असलेले स्क्रीन लॉक निवडा."</string>
+ <string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"डिव्हाइस संरक्षण वैशिष्ट्ये ॲक्टिव्हेट करून तुमच्या परवानगीशिवाय हा टॅब्लेट वापरण्यापासून इतरांना प्रतिबंधित करा. तुम्ही वापरू इच्छित असलेले स्क्रीन लॉक निवडा."</string>
+ <string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"डिव्हाइस संरक्षण वैशिष्ट्ये ॲक्टिव्हेट करून तुमच्या परवानगीशिवाय हे डिव्हाइस वापरण्यापासून इतरांना प्रतिबंधित करा. तुम्ही वापरू इच्छित असलेले स्क्रीन लॉक निवडा."</string>
+ <string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"डिव्हाइस संरक्षण वैशिष्ट्ये ॲक्टिव्हेट करून तुमच्या परवानगीशिवाय हा फोन वापरण्यापासून इतरांना प्रतिबंधित करा. तुम्ही वापरू इच्छित असलेले स्क्रीन लॉक निवडा."</string>
<string name="lock_settings_picker_fingerprint_message" msgid="4755230324778371292">"तुमची बॅक अप स्क्रीन लॉक पद्धत निवडा"</string>
<string name="lock_settings_picker_face_message" msgid="197106534637556054">"तुमची बॅकअप स्क्रीन लॉक पद्धत निवडा"</string>
<string name="setup_lock_settings_options_button_label" msgid="8511153243629402929">"स्क्रीन लॉक पर्याय"</string>
@@ -549,35 +549,35 @@
<string name="unlock_disable_frp_warning_content_pattern" msgid="8869767290771023461">"तुमच्या पॅटर्नशिवाय डिव्हाइस संरक्षण वैशिष्ट्ये कार्य करणार नाहीत."</string>
<string name="unlock_disable_frp_warning_content_pattern_fingerprint" msgid="2986105377420905314">"तुमच्या नमुन्याशिवाय डिव्हाइस संरक्षण वैशिष्ट्ये काम करणार नाहीत.<xliff:g id="EMPTY_LINE">
-</xliff:g>तुमचे सेव्ह केलेले फिंगरप्रिंट देखील या डिव्हाइसवरून दूर केले जातील आणि तुम्ही तुमचा फोन अनलॉक करण्यास, खरेदींना अधिकृत करण्यास किंवा त्यांच्यासह अॅप्समध्ये साइन इन करण्यास सक्षम राहणार नाही."</string>
+</xliff:g>तुमचे सेव्ह केलेले फिंगरप्रिंट देखील या डिव्हाइसवरून दूर केले जातील आणि तुम्ही तुमचा फोन अनलॉक करण्यास, खरेदींना अधिकृत करण्यास किंवा त्यांच्यासह ॲप्समध्ये साइन इन करण्यास सक्षम राहणार नाही."</string>
<string name="unlock_disable_frp_warning_content_pin" msgid="586996206210265131">"तुमच्या पिनशिवाय डिव्हाइस संरक्षण वैशिष्ट्ये कार्य करणार नाहीत."</string>
<string name="unlock_disable_frp_warning_content_pin_fingerprint" msgid="3370462835533123695">"तुमच्या पिनशिवाय डिव्हाइस संरक्षण वैशिष्ट्ये काम करणार नाहीत.<xliff:g id="EMPTY_LINE">
-</xliff:g>तुमच्या सेव्ह केलेल्या फिंगरप्रिंट देखील या डिव्हाइस मधून काढल्या जातील आणि तुम्ही तुमचा फोन अनलॉक, खरेदींना अधिकृत किंवा त्या वापरून अॅप्समध्ये साइन इन करू शकणार नाही."</string>
+</xliff:g>तुमच्या सेव्ह केलेल्या फिंगरप्रिंट देखील या डिव्हाइस मधून काढल्या जातील आणि तुम्ही तुमचा फोन अनलॉक, खरेदींना अधिकृत किंवा त्या वापरून ॲप्समध्ये साइन इन करू शकणार नाही."</string>
<string name="unlock_disable_frp_warning_content_password" msgid="5420612686852555537">"तुमच्या पासवर्डाशिवाय डिव्हाइस संरक्षण वैशिष्ट्ये कार्य करणार नाहीत."</string>
<string name="unlock_disable_frp_warning_content_password_fingerprint" msgid="3595476296430536798">"तुमच्या पासवर्डशिवाय डिव्हाइस संरक्षण वैशिष्ट्ये काम करणार नाहीत.<xliff:g id="EMPTY_LINE">
-</xliff:g>तुमच्या सेव्ह केलेल्या फिंगरप्रिंट देखील या डिव्हाइस मधून काढल्या जातील आणि तुम्ही तुमचा फोन अनलॉक करू शकणार नाही, खरेदींना अधिकृत करू शकणार नाही किंवा त्या वापरून अॅप्समध्ये साइन इन करू शकणार नाही."</string>
+</xliff:g>तुमच्या सेव्ह केलेल्या फिंगरप्रिंट देखील या डिव्हाइस मधून काढल्या जातील आणि तुम्ही तुमचा फोन अनलॉक करू शकणार नाही, खरेदींना अधिकृत करू शकणार नाही किंवा त्या वापरून ॲप्समध्ये साइन इन करू शकणार नाही."</string>
<string name="unlock_disable_frp_warning_content_unknown" msgid="1550718040483548220">"तुमच्या स्क्रीनलॉकशिवाय डिव्हाइस संरक्षण वैशिष्ट्ये कार्य करणार नाहीत."</string>
<string name="unlock_disable_frp_warning_content_unknown_fingerprint" msgid="3679351662094349506">"तुमच्या स्क्रीन लॉकशिवाय डिव्हाइस संरक्षण वैशिष्ट्ये काम करणार नाहीत.<xliff:g id="EMPTY_LINE">
-</xliff:g>तुमच्या सेव्ह केलेल्या फिंगरप्रिंट देखील या डिव्हाइस मधून काढल्या जातील आणि तुम्ही तुमचा फोन अनलॉक, खरेदींना अधिकृत किंवा त्या वापरून अॅप्समध्ये साइन इन करू शकणार नाही."</string>
+</xliff:g>तुमच्या सेव्ह केलेल्या फिंगरप्रिंट देखील या डिव्हाइस मधून काढल्या जातील आणि तुम्ही तुमचा फोन अनलॉक, खरेदींना अधिकृत किंवा त्या वापरून ॲप्समध्ये साइन इन करू शकणार नाही."</string>
<string name="unlock_disable_frp_warning_content_pattern_profile" msgid="8682200103576359918">"आपल्या नमुन्याशिवाय प्रोफाईल संरक्षण वैशिष्ट्ये कार्य करणार नाहीत."</string>
<string name="unlock_disable_frp_warning_content_pattern_fingerprint_profile" msgid="6718155854303231675">"तुमच्या नमुन्याशिवाय प्रोफाइल संरक्षण वैशिष्ट्ये काम करणार नाहीत.<xliff:g id="EMPTY_LINE">
-</xliff:g>तुमच्या सेव्ह केलेल्या फिंगरप्रिंट देखील या प्रोफाइलमधून काढल्या जातील आणि तुम्ही तुमची प्रोफाइल अनलॉक, खरेदींना अधिकृत किंवा त्या वापरून अॅप्समध्ये साइन इन करू शकणार नाही."</string>
+</xliff:g>तुमच्या सेव्ह केलेल्या फिंगरप्रिंट देखील या प्रोफाइलमधून काढल्या जातील आणि तुम्ही तुमची प्रोफाइल अनलॉक, खरेदींना अधिकृत किंवा त्या वापरून ॲप्समध्ये साइन इन करू शकणार नाही."</string>
<string name="unlock_disable_frp_warning_content_pin_profile" msgid="7790688070593867767">"आपल्या पिनशिवाय प्रोफाईल संरक्षण वैशिष्ट्ये कार्य करणार नाहीत."</string>
<string name="unlock_disable_frp_warning_content_pin_fingerprint_profile" msgid="4209564603132870532">"तुमच्या पिनशिवाय प्रोफाइल संरक्षण वैशिष्ट्ये काम करणार नाहीत.<xliff:g id="EMPTY_LINE">
-</xliff:g>तुमच्या सेव्ह केलेल्या फिंगरप्रिंट देखील या प्रोफाइलमधून काढल्या जातील आणि तुम्ही तुमची प्रोफाइल अनलॉक, खरेदींना अधिकृत किंवा त्या वापरून अॅप्समध्ये साइन इन करू शकणार नाही."</string>
+</xliff:g>तुमच्या सेव्ह केलेल्या फिंगरप्रिंट देखील या प्रोफाइलमधून काढल्या जातील आणि तुम्ही तुमची प्रोफाइल अनलॉक, खरेदींना अधिकृत किंवा त्या वापरून ॲप्समध्ये साइन इन करू शकणार नाही."</string>
<string name="unlock_disable_frp_warning_content_password_profile" msgid="7569285520567674461">"आपल्या संकेतशब्दाशिवाय प्रोफाईल संरक्षण वैशिष्ट्ये कार्य करणार नाहीत."</string>
<string name="unlock_disable_frp_warning_content_password_fingerprint_profile" msgid="2994300676764706047">"तुमच्या पासवर्डशिवाय प्रोफाइल संरक्षण वैशिष्ट्ये काम करणार नाहीत.<xliff:g id="EMPTY_LINE">
-</xliff:g>तुमच्या सेव्ह केलेल्या फिंगरप्रिंट देखील या प्रोफाइलमधून काढल्या जातील आणि तुम्ही तुमची प्रोफाइल अनलॉक, खरेदींना अधिकृत किंवा त्या वापरून अॅप्समध्ये साइन इन करू शकणार नाही."</string>
+</xliff:g>तुमच्या सेव्ह केलेल्या फिंगरप्रिंट देखील या प्रोफाइलमधून काढल्या जातील आणि तुम्ही तुमची प्रोफाइल अनलॉक, खरेदींना अधिकृत किंवा त्या वापरून ॲप्समध्ये साइन इन करू शकणार नाही."</string>
<string name="unlock_disable_frp_warning_content_unknown_profile" msgid="6984215718701688202">"आपल्या स्क्रीनलॉक शिवाय प्रोफाईल संरक्षण वैशिष्ट्ये कार्य करणार नाहीत."</string>
<string name="unlock_disable_frp_warning_content_unknown_fingerprint_profile" msgid="4994062501123299418">"तुमच्या स्क्रीन लॉकशिवाय प्रोफाइल संरक्षण वैशिष्ट्ये काम करणार नाहीत.<xliff:g id="EMPTY_LINE">
-</xliff:g>तुमच्या सेव्ह केलेल्या फिंगरप्रिंट देखील या प्रोफाइलमधून काढल्या जातील आणि तुम्ही तुमची प्रोफाइल अनलॉक, खरेदींना अधिकृत किंवा त्या वापरून अॅप्समध्ये साइन इन करू शकणार नाही."</string>
+</xliff:g>तुमच्या सेव्ह केलेल्या फिंगरप्रिंट देखील या प्रोफाइलमधून काढल्या जातील आणि तुम्ही तुमची प्रोफाइल अनलॉक, खरेदींना अधिकृत किंवा त्या वापरून ॲप्समध्ये साइन इन करू शकणार नाही."</string>
<string name="unlock_disable_frp_warning_ok" msgid="7075138677177748705">"होय, काढा"</string>
<string name="unlock_change_lock_pattern_title" msgid="2044092014872741130">"अनलॉक पॅटर्न बदला"</string>
<string name="unlock_change_lock_pin_title" msgid="806629901095938484">"अनलॉक पिन बदला"</string>
@@ -662,7 +662,7 @@
<string name="lockpattern_tutorial_cancel_label" msgid="6431583477570493261">"रद्द करा"</string>
<string name="lockpattern_tutorial_continue_label" msgid="3559793618653400434">"पुढील"</string>
<string name="lock_setup" msgid="3355847066343753943">"सेटअप पूर्ण झाले आहे"</string>
- <string name="manage_device_admin" msgid="537804979483211453">"डिव्हाइस अॅडमिन अॅप्स"</string>
+ <string name="manage_device_admin" msgid="537804979483211453">"डिव्हाइस अॅडमिन ॲप्स"</string>
<string name="number_of_device_admins_none" msgid="7185056721919496069">"सक्रिय अॅप्स नाहीत"</string>
<plurals name="number_of_device_admins" formatted="false" msgid="3361891840111523393">
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> सक्रिय अॅप्स</item>
@@ -717,7 +717,7 @@
<string name="bluetooth_menu_advanced" msgid="8572178316357220524">"प्रगत"</string>
<string name="bluetooth_advanced_titlebar" msgid="2142159726881547669">"प्रगत ब्लूटूथ"</string>
<string name="bluetooth_empty_list_bluetooth_off" msgid="6351930724051893423">"ब्लूटूथ चालू असते तेव्हा, तुमचे डिव्हाइस इतर जवळच्या ब्लूटूथ डिव्हाइस सह संवाद करु शकते."</string>
- <string name="bluetooth_scanning_on_info_message" msgid="824285504325592644">"ब्लूटूथ सुरू असताना, तुमचे डिव्हाइस इतर जवळपासच्या ब्लूटूथ डिव्हाइसशी संवाद साधू शकते.\n\nडिव्हाइस अनुभव सुधारण्यासाठी, अॅप्स आणि सेवा ब्लूटूथ सुरू असताना देखील, अजूनही जवळपासचे डिव्हाइस कधीही स्कॅन करू शकते. उदाहरणार्थ, याचा वापर स्थानावर आधारित वैशिष्ट्ये आणि सेवा सुधारण्यात केला जाऊ शकतो. तुम्ही हे "<annotation id="link">"स्कॅनिंग सेटिंग्ज"</annotation>" मध्ये जाऊन बदलू शकता."</string>
+ <string name="bluetooth_scanning_on_info_message" msgid="824285504325592644">"ब्लूटूथ सुरू असताना, तुमचे डिव्हाइस इतर जवळपासच्या ब्लूटूथ डिव्हाइसशी संवाद साधू शकते.\n\nडिव्हाइस अनुभव सुधारण्यासाठी, ॲप्स आणि सेवा ब्लूटूथ सुरू असताना देखील, अजूनही जवळपासचे डिव्हाइस कधीही स्कॅन करू शकते. उदाहरणार्थ, याचा वापर स्थानावर आधारित वैशिष्ट्ये आणि सेवा सुधारण्यात केला जाऊ शकतो. तुम्ही हे "<annotation id="link">"स्कॅनिंग सेटिंग्ज"</annotation>" मध्ये जाऊन बदलू शकता."</string>
<string name="ble_scan_notify_text" msgid="1295915006005700650">"स्थान अचूकता सुधारण्यासाठी, सिस्टम अॅप्स आणि सेवा अद्याप ब्लूटूथ डिव्हाइस शोधू शकतात. तुम्ही हे <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>स्कॅनिंग सेटिंग्ज<xliff:g id="LINK_END_1">LINK_END</xliff:g> मध्ये बदलू शकता."</string>
<string name="bluetooth_connect_failed" msgid="4500234659813241053">"कनेक्ट होऊ शकत नाही. पुन्हा प्रयत्न करा."</string>
<string name="device_details_title" msgid="6576953269221085300">"डिव्हाइस तपशील"</string>
@@ -741,7 +741,7 @@
<string name="bluetooth_device_advanced_profile_header_title" msgid="102745381968579605">"यासाठी वापरा"</string>
<string name="bluetooth_device_advanced_rename_device" msgid="5148578059584955791">"पुनर्नामित करा"</string>
<string name="bluetooth_device_advanced_enable_opp_title" msgid="8222550640371627365">"येणार्या फाईल स्थानांतरणांना अनुमती द्या"</string>
- <string name="bluetooth_pan_user_profile_summary_connected" msgid="6436258151814414028">"इंटरनेट अॅक्सेससाठी डिव्हाइसशी कनेक्ट केले"</string>
+ <string name="bluetooth_pan_user_profile_summary_connected" msgid="6436258151814414028">"इंटरनेट ॲक्सेससाठी डिव्हाइसशी कनेक्ट केले"</string>
<string name="bluetooth_pan_nap_profile_summary_connected" msgid="1322694224800769308">"डिव्हाइससह स्थानिक इंटरनेट कनेक्शन शेअर करत आहे"</string>
<string name="bluetooth_dock_settings" msgid="3218335822716052885">"डॉक सेटिंग्ज"</string>
<string name="bluetooth_dock_settings_title" msgid="5543069893044375188">"ऑडिओसाठी डॉक वापरा"</string>
@@ -770,8 +770,8 @@
<string name="rx_link_speed" msgid="5729003360923133988">"<xliff:g id="RECEIVE_LINK_SPEED">%1$d</xliff:g> Mbps"</string>
<string name="wifi_ask_enable" msgid="2795469717302060104">"<xliff:g id="REQUESTER">%s</xliff:g> वाय-फाय चालू करू इच्छित आहे"</string>
<string name="wifi_ask_disable" msgid="728366570145493573">"<xliff:g id="REQUESTER">%s</xliff:g> वाय-फाय बंद करू इच्छित आहे"</string>
- <string name="art_verifier_for_debuggable_title" msgid="6029838014407791341">"डीबग करण्यायोग्य अॅप्सच्या बाइटकोडची पडताळणी करा"</string>
- <string name="art_verifier_for_debuggable_summary" msgid="2250352478065428399">"डीबग करण्यायोग्य अॅप्ससाठी बाइटकोडची पडताळणी करण्यासाठी ART ला अनुमती द्या"</string>
+ <string name="art_verifier_for_debuggable_title" msgid="6029838014407791341">"डीबग करण्यायोग्य ॲप्सच्या बाइटकोडची पडताळणी करा"</string>
+ <string name="art_verifier_for_debuggable_summary" msgid="2250352478065428399">"डीबग करण्यायोग्य ॲप्ससाठी बाइटकोडची पडताळणी करण्यासाठी ART ला अनुमती द्या"</string>
<string name="nfc_quick_toggle_title" msgid="6769159366307299004">"NFC"</string>
<string name="nfc_quick_toggle_summary" product="tablet" msgid="8302974395787498915">"टॅबलेट दुसर्या डिव्हाइसला स्पर्श करतो तेव्हा डेटा अदलाबदलीस अनुमती द्या"</string>
<string name="nfc_quick_toggle_summary" product="default" msgid="5237208142892767592">"फोन दुसर्या डिव्हाइसला स्पर्श करतो तेव्हा डेटा अदलाबदलीस अनुमती द्या"</string>
@@ -936,7 +936,7 @@
<string name="wifi_wps_available_second_item" msgid="8427520131718215301">" (WPS उपलब्ध)"</string>
<string name="wifi_carrier_connect" msgid="8174696557882299911">"वाहक वाय-फाय नेटवर्क"</string>
<string name="wifi_carrier_content" msgid="4634077285415851933">"<xliff:g id="NAME">%1$s</xliff:g> ने कनेक्ट करा"</string>
- <string name="wifi_scan_always_turnon_message" msgid="203123538572122989">"स्थान अचूकता सुधारण्यासाठी आणि इतर हेतूंसाठी, <xliff:g id="APP_NAME">%1$s</xliff:g> ला नेटवर्क स्कॅनिंग चालू करण्याची आवश्यकता आहे, वाय-फाय बंद असताना देखील.\n\nस्कॅन करू इच्छित सर्व अॅप्सना अनुमती द्यायची?"</string>
+ <string name="wifi_scan_always_turnon_message" msgid="203123538572122989">"स्थान अचूकता सुधारण्यासाठी आणि इतर हेतूंसाठी, <xliff:g id="APP_NAME">%1$s</xliff:g> ला नेटवर्क स्कॅनिंग चालू करण्याची आवश्यकता आहे, वाय-फाय बंद असताना देखील.\n\nस्कॅन करू इच्छित सर्व ॲप्सना अनुमती द्यायची?"</string>
<string name="wifi_scan_always_turn_on_message_unknown" msgid="6162424298483845679">"वाय-फाय बंद असताना देखील, स्थान अचूकतेमध्ये सुधारणा करण्यासाठी आणि इतर कारणांसाठी नेटवर्क स्कॅनिंग सुरू करणे आवश्यक आहे.\n\nस्कॅन करायच्या असलेल्या सर्व अॅप्सना अनुमती द्यायची का?"</string>
<string name="wifi_scan_always_turnoff_message" msgid="5538901671131941043">"हे बंद करण्यासाठी, ओव्हरफ्लो मेनू मधील प्रगत वर जा."</string>
<string name="wifi_scan_always_confirm_allow" msgid="5355973075896817232">"अनुमती द्या"</string>
@@ -983,7 +983,7 @@
</plurals>
<string name="wifi_advanced_titlebar" msgid="4485841401774142908">"प्रगत वाय-फाय"</string>
<string name="wifi_advanced_ssid_title" msgid="1552309166043760291">"SSID"</string>
- <string name="wifi_advanced_device_mac_address_title" msgid="4486538933329213769">"डिव्हाइसचा MAC अॅड्रेस"</string>
+ <string name="wifi_advanced_device_mac_address_title" msgid="4486538933329213769">"डिव्हाइसचा MAC ॲड्रेस"</string>
<string name="wifi_advanced_randomized_mac_address_title" msgid="1528136478606735549">"रँडमाइझ केलेला MAC पत्ता"</string>
<string name="wifi_advanced_ip_address_title" msgid="6215297094363164846">"IP पत्ता"</string>
<string name="wifi_details_title" msgid="8954667664081737098">"नेटवर्क तपशील"</string>
@@ -1133,9 +1133,9 @@
<string name="color_mode_option_natural" msgid="5013837483986772758">"नैसर्गिक"</string>
<string name="color_mode_option_boosted" msgid="8588223970257287524">"बूस्ट केलेला"</string>
<string name="color_mode_option_saturated" msgid="4569683960058798843">"सॅच्युरेटेड"</string>
- <string name="color_mode_option_automatic" msgid="7996505473528529568">"अॅडॅप्टिव्ह"</string>
+ <string name="color_mode_option_automatic" msgid="7996505473528529568">"ॲडॅप्टिव्ह"</string>
<string name="color_mode_summary_natural" msgid="6624188642920403099">"फक्त अचूक रंग वापरा"</string>
- <string name="color_mode_summary_automatic" msgid="4669516973360709431">"उठावदार आणि अचूक रंगामध्ये अॅडजस्ट करा"</string>
+ <string name="color_mode_summary_automatic" msgid="4669516973360709431">"उठावदार आणि अचूक रंगामध्ये ॲडजस्ट करा"</string>
<string name="accelerometer_summary_on" product="tablet" msgid="429982132339828942">"टॅब्लेट फिरवताना ओरिएंटेशन आपोआप स्विच करा"</string>
<string name="accelerometer_summary_on" product="default" msgid="1133737282813048021">"फोन फिरवताना ओरिएंटेशन आपोआप स्विच करा"</string>
<string name="accelerometer_summary_off" product="tablet" msgid="4781734213242521682">"टॅब्लेट फिरवताना ओरिएंटेशन आपोआप स्विच करा"</string>
@@ -1162,7 +1162,7 @@
<string name="auto_brightness_off_summary" msgid="7629228736838155268">"उपलब्ध प्रकाशासाठी समायोजित करू नका"</string>
<string name="auto_brightness_very_high_summary" msgid="4551003097086220709">"वाढलेला बॅटरी वापर"</string>
<string name="auto_brightness_disclaimer" msgid="871436423746343406">"उपलब्ध प्रकाशासाठी उज्ज्वलता स्तर अनुकूल करा. हे वैशिष्ट्य चालू असताना, तुम्ही तरीही उज्ज्वलता तात्पुरती समायोजित करू शकता."</string>
- <string name="auto_brightness_description" msgid="7310335517128283729">"तुमच्या स्क्रीनचा ब्राइटनेस तुमच्या वातावरण आणि अॅक्टिव्हिटीशी आपोआप अॅडजस्ट होईल. अॅडॅप्टिव्ह ब्राइटनेसला तुमची प्राधान्ये जाणून घेण्यात मदत करण्यासाठी तुम्ही स्लाइडर मॅन्युअली हलवू शकता."</string>
+ <string name="auto_brightness_description" msgid="7310335517128283729">"तुमच्या स्क्रीनचा ब्राइटनेस तुमच्या वातावरण आणि ॲक्टिव्हिटीशी आपोआप अॅडजस्ट होईल. अॅडॅप्टिव्ह ब्राइटनेसला तुमची प्राधान्ये जाणून घेण्यात मदत करण्यासाठी तुम्ही स्लाइडर मॅन्युअली हलवू शकता."</string>
<string name="display_white_balance_title" msgid="4093966473741329340">"व्हाइट बॅलन्स डिस्प्ले करा"</string>
<string name="display_white_balance_summary" msgid="2432539678792029039"></string>
<string name="adaptive_sleep_title" msgid="455088457232472047">"स्क्रीन अटेंशन"</string>
@@ -1324,7 +1324,7 @@
<string name="status_roaming" msgid="2638800467430913403">"रोमिंग"</string>
<string name="status_operator" msgid="2274875196954742087">"नेटवर्क"</string>
<string name="status_wifi_mac_address" msgid="2202206684020765378">"वाय-फाय MAC पत्ता"</string>
- <string name="status_device_wifi_mac_address" msgid="308853557862261400">"डिव्हाइसचा वाय-फाय MAC अॅड्रेस"</string>
+ <string name="status_device_wifi_mac_address" msgid="308853557862261400">"डिव्हाइसचा वाय-फाय MAC ॲड्रेस"</string>
<string name="status_bt_address" msgid="4195174192087439720">"ब्लूटूथ पत्ता"</string>
<string name="status_serial_number" msgid="2257111183374628137">"सिरीअल नंबर"</string>
<string name="status_up_time" msgid="7294859476816760399">"सुरू असल्याचा कालावधी"</string>
@@ -1358,7 +1358,7 @@
<string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"अंतर्गत USB संचयनावरील सर्व डेटा मिटवते, जसे की संगीत आणि फोटो"</string>
<string name="sd_format_summary" product="default" msgid="212703692181793109">"SD कार्डवरील सर्व डेटा मिटवते, जसे की संगीत आणि फोटो"</string>
<string name="memory_clear_cache_title" msgid="5423840272171286191">"कॅश केलेला डेटा साफ करायचा?"</string>
- <string name="memory_clear_cache_message" msgid="4550262490807415948">"हे सर्व अॅप्ससाठी कॅश केलेला डेटा साफ करेल."</string>
+ <string name="memory_clear_cache_message" msgid="4550262490807415948">"हे सर्व ॲप्ससाठी कॅश केलेला डेटा साफ करेल."</string>
<string name="mtp_ptp_mode_summary" msgid="3710436114807789270">"MTP किंवा TP कार्य सक्रिय आहे"</string>
<string name="dlg_confirm_unmount_title" product="nosdcard" msgid="3077285629197874055">"USB स्टोरेज अनमाउंट करायचे?"</string>
<string name="dlg_confirm_unmount_title" product="default" msgid="3634502237262534381">"SD कार्ड अनमाउंट करायचे?"</string>
@@ -1409,7 +1409,7 @@
<string name="storage_format_failure" msgid="6032640952779735766">"<xliff:g id="NAME">%1$s</xliff:g> स्वरूपित करणे शक्य झाले नाही"</string>
<string name="storage_rename_title" msgid="8242663969839491485">"संचयन पुनर्नामित करा"</string>
<string name="storage_dialog_unmounted" msgid="6403320870103261477">"हे <xliff:g id="NAME_0">^1</xliff:g> सुरक्षितपणे बाहेर काढले आहे परंतु अद्याप उपलब्ध आहे. \n\nहे <xliff:g id="NAME_1">^1</xliff:g> वापरण्यासाठी, आपल्याला प्रथम ते माउंट करणे आवश्यक आहे."</string>
- <string name="storage_dialog_unmountable" msgid="3732209361668282254">"हे <xliff:g id="NAME_0">^1</xliff:g> दूषित झाले आहे. \n\n हे <xliff:g id="NAME_1">^1</xliff:g> वापरण्यासाठी, आपल्याला प्रथम ते सेट करणे आव्ाश्यक आहे."</string>
+ <string name="storage_dialog_unmountable" msgid="3732209361668282254">"हे <xliff:g id="NAME_0">^1</xliff:g> दूषित झाले आहे. \n\n हे <xliff:g id="NAME_1">^1</xliff:g> वापरण्यासाठी, आपल्याला प्रथम ते सेट करणे आवश्यक आहे."</string>
<string name="storage_dialog_unsupported" msgid="4503128224360482228">"हे डिव्हाइस या <xliff:g id="NAME_0">^1</xliff:g> चे सपोर्ट करत नाही. \n\nया डिव्हाइससह हे <xliff:g id="NAME_1">^1</xliff:g> वापरण्यासाठी आपल्याला प्रथम ते सेट करणे आवश्यक आहे."</string>
<string name="storage_internal_format_details" msgid="4018647158382548820">"फॉर्मेट झाल्यानंतर, तुम्ही हे <xliff:g id="NAME_0">^1</xliff:g> इतर डिव्हाइसमध्ये वापरू शकता. \n\nया <xliff:g id="NAME_1">^1</xliff:g> वरील सर्व डेटा मिटविला जाईल. बॅकअप घेण्याचा प्रथम विचार करा. \n\n"<b>"फोटो आणि इतर मीडियाचा बॅकअप घ्या"</b>\n"या डिव्हाइस वरील पर्यायी स्टोरेजवर तुमच्या मीडिया फायली हलवा किंवा USB केबल वापरून त्या कॉंप्युटरवर ट्रान्सफर करा. \n\n"<b>"अॅप्सचा बॅकअप घ्या"</b>\n" <xliff:g id="NAME_6">^1</xliff:g> वर स्टोअर केलेली सर्व अॅप्स अनइंस्टॉल केली जातील आणि त्यांचा डेटा मिटविला जाईल. हे अॅप्स ठेवण्यासाठी, ते या डिव्हाइस वरील पर्यायी स्टोरेजवर हलवा."</string>
<string name="storage_internal_unmount_details" msgid="3582802571684490057"><b>"तुम्ही <xliff:g id="NAME_0">^1</xliff:g> हे बाहेर काढता तेव्हा, त्यावर स्टोअर केलेले अॅप्स कार्य करणे थांबवतील आणि ते पुन्हा घातले जाईपर्यंत त्यावर स्टोअर केलेल्या मीडिया फायली उपलब्ध असणार नाहीत."</b>" \n\nहे <xliff:g id="NAME_1">^1</xliff:g> केवळ या डिव्हाइसवर कार्य करण्यासाठी स्वरूपित केले आहे. ते इतर कशावरही कार्य करणार नाही."</string>
@@ -1424,7 +1424,7 @@
<string name="storage_detail_other" msgid="8404938385075638238">"इतर"</string>
<string name="storage_detail_system" msgid="4629506366064709687">"सिस्टम"</string>
<string name="storage_detail_explore" msgid="7911344011431568294">"<xliff:g id="NAME">^1</xliff:g> एक्सप्लोर करा"</string>
- <string name="storage_detail_dialog_other" msgid="8845766044697204852">"इतर गोष्टींमध्ये अॅप्सवरून सेव्ह करून शेअर केलेल्या फायली, इंटरनेट किंवा ब्लूटूथ वरून डाउनलोड केलेल्या फायली, Android फायली आणि इत्यादीचा समावेश असतो. \n\n<xliff:g id="NAME">^1</xliff:g> चा दिसणाराा अाशय पाहण्यासाठी, एक्सप्लोर करा वर टॅप करा."</string>
+ <string name="storage_detail_dialog_other" msgid="8845766044697204852">"इतर गोष्टींमध्ये अॅप्सवरून सेव्ह करून शेअर केलेल्या फायली, इंटरनेट किंवा ब्लूटूथ वरून डाउनलोड केलेल्या फायली, Android फायली आणि इत्यादीचा समावेश असतो. \n\n<xliff:g id="NAME">^1</xliff:g> चा दिसणाराा आशय पाहण्यासाठी, एक्सप्लोर करा वर टॅप करा."</string>
<string name="storage_detail_dialog_system" msgid="862835644848361569">"सिस्टममध्ये Android व्हर्जन <xliff:g id="VERSION">%s</xliff:g> रन करण्यासाठी वापरल्या जाणाऱ्या फायलींचा समावेश आहे"</string>
<string name="storage_detail_dialog_user" msgid="3267254783294197804">"<xliff:g id="USER_0">^1</xliff:g> कडे <xliff:g id="SIZE">^2</xliff:g> स्टोरेज वापरणारे, सेव्ह केलेले फोटो, संगीत, अॅप्स किंवा इतर डेटा असू शकतो. \n\nतपशील पाहण्यासाठी, <xliff:g id="USER_1">^1</xliff:g> वर स्विच करा."</string>
<string name="storage_wizard_init_title" msgid="5085400514028585772">"तुमचे <xliff:g id="NAME">^1</xliff:g> सेट करा"</string>
@@ -1553,7 +1553,7 @@
<string name="reset_esim_error_msg" msgid="1356899750645220749">"डाउनलोड केलेली सिम एका एररमुळे मिटवता येत नाहीत.\n\nतुमचे डिव्हाइस रीस्टार्ट करा आणि पुन्हा प्रयत्न करा."</string>
<string name="master_clear_title" msgid="3531267871084279512">"सर्व डेटा मिटवा (फॅक्टरी रीसेट)"</string>
<string name="master_clear_short_title" msgid="8652450915870274285">"सर्व डेटा मिटवा (फॅक्टरी रीसेट)"</string>
- <string name="master_clear_desc" product="tablet" msgid="2314458161059569301">"हे तुमच्या टॅबलेटच्या "<b>"अंतर्गत स्टोरेज"</b>" वरील सर्व डेटा मिटवेल, यासह:\n\n"<li>"तुमचे Google खाते"</li>\n<li>"सिस्टम आणि अॅप डेटा आणि सेटिंग्ज"</li>\n<li>"डाउनलोड केलेली अॅप्स"</li></string>
+ <string name="master_clear_desc" product="tablet" msgid="2314458161059569301">"हे तुमच्या टॅबलेटच्या "<b>"अंतर्गत स्टोरेज"</b>" वरील सर्व डेटा मिटवेल, यासह:\n\n"<li>"तुमचे Google खाते"</li>\n<li>"सिस्टम आणि ॲप डेटा आणि सेटिंग्ज"</li>\n<li>"डाउनलोड केलेली अॅप्स"</li></string>
<string name="master_clear_desc" product="default" msgid="7647628092266675099">"हे तुमच्या फोनच्या "<b>"अंतर्गत स्टोरेज"</b>" वरील सर्व डेटा मिटवेल, यासह:\n\n"<li>"तुमचे Google खाते"</li>\n<li>"सिस्टम आणि अॅप डेटा सेटिंग्ज"</li>\n<li>"डाउनलोड केलेली अॅप्स"</li></string>
<string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"तुम्ही खालील खात्यांवर सध्या साइन इन केले आहे:\n"</string>
<string name="master_clear_other_users_present" product="default" msgid="5161423070702470742">\n\n"या डिव्हाइसवर इतर वापरकर्ते उपस्थित आहेत.\n"</string>
@@ -1622,12 +1622,12 @@
<string name="location_app_level_permissions" msgid="2777033567595680764">"अॅप परवानगी"</string>
<string name="location_app_permission_summary_location_off" msgid="2790918244874943070">"स्थान बंद आहे"</string>
<plurals name="location_app_permission_summary_location_on" formatted="false" msgid="5336807018727349708">
- <item quantity="other"> <xliff:g id="TOTAL_LOCATION_APP_COUNT_3">%2$d</xliff:g> पैकी <xliff:g id="PERMITTED_LOCATION_APP_COUNT_2">%1$d</xliff:g> अॅप्सना स्थानाचा अॅक्सेस आहे</item>
- <item quantity="one"> <xliff:g id="TOTAL_LOCATION_APP_COUNT_1">%2$d</xliff:g> पैकी <xliff:g id="PERMITTED_LOCATION_APP_COUNT_0">%1$d</xliff:g> अॅपला स्थानाचा अॅक्सेस आहे</item>
+ <item quantity="other"> <xliff:g id="TOTAL_LOCATION_APP_COUNT_3">%2$d</xliff:g> पैकी <xliff:g id="PERMITTED_LOCATION_APP_COUNT_2">%1$d</xliff:g> ॲप्सना स्थानाचा अॅक्सेस आहे</item>
+ <item quantity="one"> <xliff:g id="TOTAL_LOCATION_APP_COUNT_1">%2$d</xliff:g> पैकी <xliff:g id="PERMITTED_LOCATION_APP_COUNT_0">%1$d</xliff:g> ॲपला स्थानाचा अॅक्सेस आहे</item>
</plurals>
<string name="location_category_recent_location_access" msgid="4911449278675337490">"अलीकडील स्थान अॅक्सेस"</string>
<string name="location_recent_location_access_view_details" msgid="1955078513330927035">"तपशील पहा"</string>
- <string name="location_no_recent_apps" msgid="2800907699722178041">"अलीकडे कोणत्याही अॅप्सने स्थानाची विनंती केलेली नाही"</string>
+ <string name="location_no_recent_apps" msgid="2800907699722178041">"अलीकडे कोणत्याही ॲप्सने स्थानाची विनंती केलेली नाही"</string>
<string name="location_no_recent_accesses" msgid="7489449862187886009">"अलीकडे अॅक्सेस केलेल्या अॅप्सचे स्थान नाही"</string>
<string name="location_high_battery_use" msgid="517199943258508020">"उच्च बॅटरी वापर"</string>
<string name="location_low_battery_use" msgid="8602232529541903596">"अल्प बॅटरी वापर"</string>
@@ -1638,18 +1638,18 @@
<string name="location_scanning_bluetooth_always_scanning_description" msgid="1285526059945206128">"ब्लूटूथ बंद असले, तरीही अॅप्स आणि सेवांना जवळपासची डिव्हाइस कधीही स्कॅन करण्याची अनुमती द्या. याचा वापर उदाहरणार्थ, स्थान आधारित वैशिष्ट्ये आणि सेवा सुधारण्यासाठी केला जाऊ शकतो."</string>
<string name="managed_profile_location_services" msgid="4723268446874715222">"ऑफिससाठीच्या स्थान सेवा"</string>
<string name="location_network_based" msgid="9134175479520582215">"वाय-फाय आणि मोबाईल नेटवर्क स्थान"</string>
- <string name="location_neighborhood_level" msgid="5141318121229984788">"आपल्या स्थानाचा अधिक जलद अंदाज घेण्यासाठी अॅप्सना Google ची स्थान सेवा वापरू द्या. अनामित स्थान डेटा संकलित केला जाईल आणि Google कडे पाठविला जाईल."</string>
+ <string name="location_neighborhood_level" msgid="5141318121229984788">"आपल्या स्थानाचा अधिक जलद अंदाज घेण्यासाठी ॲप्सना Google ची स्थान सेवा वापरू द्या. अनामित स्थान डेटा संकलित केला जाईल आणि Google कडे पाठविला जाईल."</string>
<string name="location_neighborhood_level_wifi" msgid="4234820941954812210">"वाय-फाय द्वारे निर्धारित केलेले स्थान"</string>
<string name="location_gps" msgid="8392461023569708478">"GPS उपग्रह"</string>
- <string name="location_street_level" product="tablet" msgid="1669562198260860802">"तुमचे स्थान सूचित करण्यासाठी आपल्या टॅब्लेटवर अॅप्सना GPS वापरु द्या"</string>
- <string name="location_street_level" product="default" msgid="4617445745492014203">"तुमचे स्थान सूचित करण्यासाठी आपल्या फोनवर अॅप्सना GPS वापरु द्या"</string>
+ <string name="location_street_level" product="tablet" msgid="1669562198260860802">"तुमचे स्थान सूचित करण्यासाठी आपल्या टॅब्लेटवर ॲप्सना GPS वापरु द्या"</string>
+ <string name="location_street_level" product="default" msgid="4617445745492014203">"तुमचे स्थान सूचित करण्यासाठी आपल्या फोनवर ॲप्सना GPS वापरु द्या"</string>
<string name="assisted_gps" msgid="4649317129586736885">"साहाय्यक GPS वापरा"</string>
<string name="assisted_gps_enabled" msgid="8751899609589792803">"GPS ला साहाय्य करण्यासाठी सर्व्हर वापरा (नेटवर्क वापर कमी करण्यासाठी अनचेक करा)"</string>
<string name="assisted_gps_disabled" msgid="6982698333968010748">"GPS ला साहाय्य करण्यासाठी सर्व्हर वापरा (GPS कामगिरी सुधारण्यासाठी अनचेक करा)"</string>
<string name="use_location_title" msgid="5206937465504979977">"स्थान आणि Google शोध"</string>
<string name="use_location_summary" msgid="3978805802386162520">"Google ला शोध परिणाम आणि अन्य सेवा सुधारण्यासाठी तुमचे स्थान वापरू द्या"</string>
<string name="location_access_title" msgid="7064108942964081243">"माझी स्थाने अॅक्सेस करा"</string>
- <string name="location_access_summary" msgid="69031404093194341">"तुमची परवानगी विचारणार्या अॅप्सना तुमची स्थान माहिती वापरु द्या"</string>
+ <string name="location_access_summary" msgid="69031404093194341">"तुमची परवानगी विचारणार्या ॲप्सना तुमची स्थान माहिती वापरु द्या"</string>
<string name="location_sources_heading" msgid="1278732419851088319">"स्थान स्रोत"</string>
<string name="about_settings" product="tablet" msgid="593457295516533765">"टॅबलेट विषयी"</string>
<string name="about_settings" product="default" msgid="1743378368185371685">"फोन विषयी"</string>
@@ -1744,7 +1744,7 @@
<string name="lockpattern_settings_change_lock_pattern" msgid="1123908306116495545">"अनलॉक पॅटर्न बदला"</string>
<string name="lockpattern_settings_help_how_to_record" msgid="2614673439060830433">"अनलॉक पॅटर्न कसा काढावा"</string>
<string name="lockpattern_too_many_failed_confirmation_attempts" msgid="6909161623701848863">"खूप चुकीचे प्रयत्न. <xliff:g id="NUMBER">%d</xliff:g> सेकंदांमध्ये पुन्हा प्रयत्न करा."</string>
- <string name="activity_not_found" msgid="5551664692991605325">"अॅप्लिकेशन आपल्या फोनवर इंस्टॉल केलेला नाही."</string>
+ <string name="activity_not_found" msgid="5551664692991605325">"ॲप्लिकेशन आपल्या फोनवर इंस्टॉल केलेला नाही."</string>
<string name="lock_settings_profile_title" msgid="2121876391814535295">"कार्य प्रोफाइल सुरक्षा"</string>
<string name="lock_settings_profile_screen_lock_title" msgid="3334747927367115256">"कार्य प्रोफाईल स्क्रीन लॉक"</string>
<string name="lock_settings_profile_unification_title" msgid="4973102698492659123">"एक लॉक वापरा"</string>
@@ -1799,10 +1799,10 @@
<string name="clear_user_data_text" msgid="355574089263023363">"स्टोरेज साफ करा"</string>
<string name="app_factory_reset" msgid="6635744722502563022">"अपडेट अनइंस्टॉल करा"</string>
<string name="auto_launch_enable_text" msgid="4275746249511874845">"तुम्ही काही क्रियांसाठी डीफॉल्टनुसार हा अॅप लाँच करणे निवडले आहे."</string>
- <string name="always_allow_bind_appwidgets_text" msgid="566822577792032925">"तुम्ही या अॅपला विजेट तयार करण्याची आणि त्यांच्या डेटामध्ये प्रवेश करण्याची अनुमती देण्यासाठी निवडले आहे."</string>
+ <string name="always_allow_bind_appwidgets_text" msgid="566822577792032925">"तुम्ही या ॲपला विजेट तयार करण्याची आणि त्यांच्या डेटामध्ये प्रवेश करण्याची अनुमती देण्यासाठी निवडले आहे."</string>
<string name="auto_launch_disable_text" msgid="7800385822185540166">"कोणताही डीफॉल्ट सेट केलेला नाही."</string>
<string name="clear_activities" msgid="7408923511535174430">"डीफॉल्ट साफ करा"</string>
- <string name="screen_compatibility_text" msgid="1616155457673106022">"आपल्या स्क्रीनसाठी या अॅपची रचना केली जाऊ शकत नाही. तुम्ही येथे आपल्या स्क्रीनवर तो कसा समायोजित करतो हे नियंत्रित करू शकता."</string>
+ <string name="screen_compatibility_text" msgid="1616155457673106022">"आपल्या स्क्रीनसाठी या ॲपची रचना केली जाऊ शकत नाही. तुम्ही येथे आपल्या स्क्रीनवर तो कसा समायोजित करतो हे नियंत्रित करू शकता."</string>
<string name="ask_compatibility" msgid="7225195569089607846">"लाँच केल्यानंतर विचारा"</string>
<string name="enable_compatibility" msgid="5806819252068617811">"अॅप स्केल करा"</string>
<string name="unknown" msgid="1592123443519355854">"अज्ञात"</string>
@@ -1837,7 +1837,7 @@
<string name="dlg_cancel" msgid="1674753358972975911">"रद्द करा"</string>
<string name="app_not_found_dlg_title" msgid="3127123411738434964"></string>
<string name="app_not_found_dlg_text" msgid="4893589904687340011">"इंस्टॉल अॅप्सच्या सूचीमध्ये अॅप आढळला नाही."</string>
- <string name="clear_failed_dlg_text" msgid="8651231637137025815">"अॅपसाठी स्टोरेज साफ करता आले नाही."</string>
+ <string name="clear_failed_dlg_text" msgid="8651231637137025815">"ॲपसाठी स्टोरेज साफ करता आले नाही."</string>
<string name="join_two_items" msgid="1336880355987539064">"<xliff:g id="FIRST_ITEM">%1$s</xliff:g> आणि <xliff:g id="SECOND_ITEM">%2$s</xliff:g>"</string>
<string name="join_two_unrelated_items" msgid="1873827777191260824">"<xliff:g id="FIRST_ITEM">%1$s</xliff:g>, <xliff:g id="SECOND_ITEM">%2$s</xliff:g>"</string>
<string name="computing_size" msgid="1599186977475211186">"संगणन…"</string>
@@ -1869,7 +1869,7 @@
<string name="app_ops_never_used" msgid="9114608022906887802">"(कधीही न वापरलेले)"</string>
<string name="no_default_apps" msgid="2915315663141025400">"कोणतेही डीफॉल्ट अॅप्स नाहीत."</string>
<string name="storageuse_settings_title" msgid="5657014373502630403">"संचयन वापर"</string>
- <string name="storageuse_settings_summary" msgid="3748286507165697834">"अॅप्सद्वारे वापरलेले संचयन पहा"</string>
+ <string name="storageuse_settings_summary" msgid="3748286507165697834">"ॲप्सद्वारे वापरलेले संचयन पहा"</string>
<string name="service_restarting" msgid="2242747937372354306">"रीस्टार्ट करत आहे"</string>
<string name="cached" msgid="1059590879740175019">"पार्श्वभूमी प्रक्रिया कॅश केली"</string>
<string name="no_running_services" msgid="2059536495597645347">"काहीही चालत नाही."</string>
@@ -1931,7 +1931,7 @@
<string name="auto_punctuate_summary" msgid="4372126865670574837">"\".\" घालण्यासाठी Space की दोनदा दाबा"</string>
<string name="show_password" msgid="4837897357002495384">"पासवर्ड दाखवा"</string>
<string name="show_password_summary" msgid="3365397574784829969">"तुम्ही टाइप कराल त्याप्रमाणे वर्ण थोडक्यात डिस्प्ले करा"</string>
- <string name="spellchecker_security_warning" msgid="9060897418527708922">"हा शब्दलेखन तपासक तुम्ही पासवर्ड आणि क्रेडिट कार्ड नंबर यासारख्या वैयक्तिक डेटासह, टाइप करता तो सर्व मजकूर संकलित करण्यात सक्षम होऊ शकतो. हा <xliff:g id="SPELLCHECKER_APPLICATION_NAME">%1$s</xliff:g> अॅपवरून येतो. हा शब्दलेखन तपासक वापरायचा?"</string>
+ <string name="spellchecker_security_warning" msgid="9060897418527708922">"हा शब्दलेखन तपासक तुम्ही पासवर्ड आणि क्रेडिट कार्ड नंबर यासारख्या वैयक्तिक डेटासह, टाइप करता तो सर्व मजकूर संकलित करण्यात सक्षम होऊ शकतो. हा <xliff:g id="SPELLCHECKER_APPLICATION_NAME">%1$s</xliff:g> ॲपवरून येतो. हा शब्दलेखन तपासक वापरायचा?"</string>
<string name="spellchecker_quick_settings" msgid="246728645150092058">"सेटिंग्ज"</string>
<string name="spellchecker_language" msgid="6041050114690541437">"भाषा"</string>
<string name="keyboard_and_input_methods_category" msgid="4580907662493721491">"कीबोर्ड"</string>
@@ -2029,7 +2029,7 @@
<string name="accessibility_preference_magnification_summary" msgid="5867883657521404509">"स्क्रीनवर झूम इन करा"</string>
<string name="accessibility_screen_magnification_short_summary" msgid="3411979839172752057">"झूम करण्यासाठी 3 वेळा टॅप करा"</string>
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="3693116360267980492">"झूम करण्यासाठी बटणावर टॅप करा"</string>
- <string name="accessibility_screen_magnification_summary" msgid="5258868553337478505"><b>"झूम करण्यासाठी"</b>", स्क्रीनवर 3 वेळा पटपट टॅप करा.\n"<ul><li>"स्क्रोल करण्यासाठी 2 किंवा अधिक बोटांनी ड्रॅग करा"</li>\n<li>"झूम अॅडजस्ट करण्यासाठी 2 किंवा अधिक बोटांनी पिंच करा"</li></ul>\n\n<b>"तात्पुरते झूम करण्यासाठी"</b>", स्क्रीनवर 3 वेळा पटपट टॅप करा आणि तिसर्या टॅपवर तुमचे बोट धरून ठेवा.\n"<ul><li>"स्क्रीनवर इथेतिथे जाण्यासाठी ड्रॅग करा"</li>\n<li>"झूम कमी करण्यासाठी बोट उचला"</li></ul>\n\n"तुम्ही कीबोर्ड किंवा नेव्हिगेशन बारचा झूम वाढवू शकत नाही."</string>
+ <string name="accessibility_screen_magnification_summary" msgid="5258868553337478505"><b>"झूम करण्यासाठी"</b>", स्क्रीनवर 3 वेळा पटपट टॅप करा.\n"<ul><li>"स्क्रोल करण्यासाठी 2 किंवा अधिक बोटांनी ड्रॅग करा"</li>\n<li>"झूम ॲडजस्ट करण्यासाठी 2 किंवा अधिक बोटांनी पिंच करा"</li></ul>\n\n<b>"तात्पुरते झूम करण्यासाठी"</b>", स्क्रीनवर 3 वेळा पटपट टॅप करा आणि तिसर्या टॅपवर तुमचे बोट धरून ठेवा.\n"<ul><li>"स्क्रीनवर इथेतिथे जाण्यासाठी ड्रॅग करा"</li>\n<li>"झूम कमी करण्यासाठी बोट उचला"</li></ul>\n\n"तुम्ही कीबोर्ड किंवा नेव्हिगेशन बारचा झूम वाढवू शकत नाही."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="6700716275347612310">"मॅग्निफिकेशन सुरू असल्यास, तुम्ही तुमची स्क्रीन झूम इन करू शकता.\n\n"<b>"झूम करण्यासाठी"</b>", मॅग्निफिकेशन सुरू करा आणि त्यानंतर स्क्रीनवर कुठेही टॅप करा.\n"<ul><li>"स्क्रोल करण्यासाठी दोन किंवा अधिक बोटांनी ड्रॅग करा."</li>\n<li>"झूम अॅडजस्ट करण्यासाठी दोन किंवा अधिक बोटांनी पिंच करा"</li></ul>\n\n<b>"तात्पुरते झूम करण्यासाठी "</b>", मॅग्निफिकेशन सुरू करा आणि स्क्रीनवर कुठेही धरून ठेवा.\n"<ul><li>"स्क्रीनवर कुठेही जाण्यासाठी ड्रॅग करा "</li>\n<li>"झूम आउट करण्यासाठी बोट उचला"</li></ul>\n\n"तुम्ही कीबोर्ड किंवा नेव्हिगेशन बार वर झूम इन करू शकत नाही."</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="3682222614034474845">"उघडण्यासाठी अॅक्सेसिबिलिटी बटण वापरा"</string>
<string name="accessibility_tutorial_dialog_title_gesture" msgid="1342726230497913398">"उघडण्यासाठी जेश्चर वापरा"</string>
@@ -2161,7 +2161,7 @@
<string name="capabilities_list_title" msgid="86713361724771971">"यासाठी <xliff:g id="SERVICE">%1$s</xliff:g> आवश्यक आहे:"</string>
<string name="touch_filtered_warning" msgid="8644034725268915030">"अॅप परवानगी विनंती अस्पष्ट करीत असल्याने, सेटिंग्ज आपल्या प्रतिसादाची पडताळणी करू शकत नाहीत."</string>
<string name="enable_service_encryption_warning" msgid="3064686622453974606">"तुम्ही <xliff:g id="SERVICE">%1$s</xliff:g> चालू केल्यास, तुमचे डिव्हाइस डेटा एंक्रिप्शन वर्धित करण्यासाठी तुमचे स्क्रीन लॉक वापरणार नाही."</string>
- <string name="secure_lock_encryption_warning" msgid="460911459695077779">"तुम्ही अॅक्सेसयोग्यता सेवा चालू केली असल्यामुळे, तुमचे डिव्हाइस डेटा एंक्रिप्शन वर्धित करण्यासाठी तुमचे स्क्रीन लॉक वापरणार नाही."</string>
+ <string name="secure_lock_encryption_warning" msgid="460911459695077779">"तुम्ही ॲक्सेसयोग्यता सेवा चालू केली असल्यामुळे, तुमचे डिव्हाइस डेटा एंक्रिप्शन वर्धित करण्यासाठी तुमचे स्क्रीन लॉक वापरणार नाही."</string>
<string name="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g> चालू करण्यामुळे डेटा एंक्रिप्शनवर परिणाम होतो, तुम्हाला तुमच्या पॅटर्नची पुष्टी करण्याची आवश्यकता आहे."</string>
<string name="enable_service_pin_reason" msgid="7882035264853248228">"<xliff:g id="SERVICE">%1$s</xliff:g> चालू करण्याने एंक्रिप्शन डेटा प्रभावित होतो, तुम्हाला तुमच्या पिन ची पुष्टी करण्याची आवश्यकता आहे."</string>
<string name="enable_service_password_reason" msgid="1224075277603097951">"<xliff:g id="SERVICE">%1$s</xliff:g> चालू करण्यामुळे डेटा एंक्रिप्शनवर परिणाम होतो, तुम्हाला तुमच्या पासवर्डची पुष्टी करण्याची आवश्यकता आहे."</string>
@@ -2224,10 +2224,10 @@
<string name="power_charge_remaining" msgid="6132074970943913135">"चार्ज करण्यासाठी <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
<string name="background_activity_title" msgid="8482171736539410135">"बॅकग्राउंड वापर मर्यादा"</string>
<string name="background_activity_summary" msgid="8140094430510517362">"अॅपला पार्श्वभूमीत चालण्याची अनुमती द्या"</string>
- <string name="background_activity_summary_disabled" msgid="3710669050484599847">"अॅपला पार्श्वभूमीमध्ये चालण्याची अनुमती नाही"</string>
+ <string name="background_activity_summary_disabled" msgid="3710669050484599847">"ॲपला पार्श्वभूमीमध्ये चालण्याची अनुमती नाही"</string>
<string name="background_activity_summary_whitelisted" msgid="1079899502347973947">"बॅकग्राउंड वापर मर्यादित केला जाऊ शकत नाही"</string>
- <string name="background_activity_warning_dialog_title" msgid="2216249969149568871">"बॅकग्राउंड अॅक्टिव्हिटी मर्यादित ठेवायची?"</string>
- <string name="background_activity_warning_dialog_text" msgid="7049624449246121981">"तुम्ही एखाद्या अॅपसाठी बॅकग्राउंड अॅक्टिव्हिटी मर्यादित ठेवल्यास, ते व्यवस्थित न चालण्याची शक्यता आहे"</string>
+ <string name="background_activity_warning_dialog_title" msgid="2216249969149568871">"बॅकग्राउंड ॲक्टिव्हिटी मर्यादित ठेवायची?"</string>
+ <string name="background_activity_warning_dialog_text" msgid="7049624449246121981">"तुम्ही एखाद्या ॲपसाठी बॅकग्राउंड ॲक्टिव्हिटी मर्यादित ठेवल्यास, ते व्यवस्थित न चालण्याची शक्यता आहे"</string>
<string name="background_activity_disabled_dialog_text" msgid="6133420589651880824">"हे अॅप बॅटरी ऑप्टिमाइझ करण्यासाठी सेट केलेले नसल्याने, तुम्ही ते प्रतिबंधित करू शकत नाही.\n\nअॅप प्रतिबंधित करण्यासाठी, प्रथम बॅटरी ऑप्टिमायझेशन सुरू करा"</string>
<string name="device_screen_usage" msgid="3386088035570409683">"पूर्ण चार्ज झाल्यानंतरचा स्क्रीन वापर"</string>
<string name="power_usage_list_summary" msgid="5584049564906462506">"पूर्ण चार्ज केल्यापासूनचा बॅटरी वापर"</string>
@@ -2247,7 +2247,7 @@
<string name="battery_stats_phone_signal_label" msgid="4137799310329041341">"मोबाईल नेटवर्क सिग्नल"</string>
<!-- no translation found for battery_stats_last_duration (1535831453827905957) -->
<skip />
- <string name="awake" msgid="387122265874485088">"डिव्हाइस अॅक्टिव्हेट होण्याची वेळ"</string>
+ <string name="awake" msgid="387122265874485088">"डिव्हाइस ॲक्टिव्हेट होण्याची वेळ"</string>
<string name="wifi_on_time" msgid="3208518458663637035">"वाय-फाय चालू केल्याची वेळ"</string>
<string name="bluetooth_on_time" msgid="3056108148042308690">"वाय-फाय चालू केल्याची वेळ"</string>
<string name="advanced_battery_title" msgid="6768618303037280828">"बॅटरी वापर"</string>
@@ -2287,7 +2287,7 @@
<item quantity="one">%1$s नुकतेच निर्बंधित केले</item>
</plurals>
<plurals name="battery_tip_restrict_summary" formatted="false" msgid="5768962491638423979">
- <item quantity="other">%2$d अॅप्सचा बॅकग्राउंड बॅटरी वापर जास्त आहे</item>
+ <item quantity="other">%2$d ॲप्सचा बॅकग्राउंड बॅटरी वापर जास्त आहे</item>
<item quantity="one">%1$s चा बॅकग्राउंड बॅटरी वापर जास्त आहे</item>
</plurals>
<plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="1040488674178753191">
@@ -2303,7 +2303,7 @@
<string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="582641081128076191">"बॅटरीची बचत करण्यासाठी, या अॅप्सना बॅकग्राउंडवर बॅटरीचा वापर करण्यापासून थांबवा. प्रतिबंधित अॅप्स योग्यरीत्या काम करणार नाहीत आणि सूचना येण्यास उशीर होऊ शकतो.\n\nअॅप्स:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
<string name="battery_tip_restrict_app_dialog_ok" msgid="8291115820018013353">"प्रतिबंधित करा"</string>
<string name="battery_tip_unrestrict_app_dialog_title" msgid="4321334634106715162">"निर्बंध काढायचा?"</string>
- <string name="battery_tip_unrestrict_app_dialog_message" msgid="6537761705584610231">"या अॅपला बॅकग्राउंडमध्ये बॅटरी वापरता येईल. तुमची बॅटरी अपेक्षेपेक्षा लवकर संपू शकते."</string>
+ <string name="battery_tip_unrestrict_app_dialog_message" msgid="6537761705584610231">"या ॲपला बॅकग्राउंडमध्ये बॅटरी वापरता येईल. तुमची बॅटरी अपेक्षेपेक्षा लवकर संपू शकते."</string>
<string name="battery_tip_unrestrict_app_dialog_ok" msgid="6022058431218137646">"काढा"</string>
<string name="battery_tip_unrestrict_app_dialog_cancel" msgid="3058235875830858902">"रद्द करा"</string>
<string name="battery_tip_dialog_summary_message" product="default" msgid="4628448253185085796">"तुमची अॅप्स योग्य प्रमाणात बॅटरी वापरत आहेत. तुमची अॅप्स जास्त बॅटरी वापरत असल्यास तुमचा फोन तुम्ही करू शकता अशा कृत्या सुचवेल.\n\nबॅटरी संपत आली असल्यास तुम्ही कायम बॅटरी सेव्हर सुरू करू शकता."</string>
@@ -2311,20 +2311,20 @@
<string name="battery_tip_dialog_summary_message" product="device" msgid="6753742263807939789">"तुमची अॅप्स योग्य प्रमाणात बॅटरी वापरत आहेत. तुमची अॅप्स जास्त बॅटरी वापरत असल्यास तुमचे डिव्हाइस तुम्ही करू शकता अशा क्रिया सुचवेल. \n\nबॅटरी संपत आली असल्यास तुम्ही कायम बॅटरी सेव्हर सुरू करू शकता."</string>
<string name="smart_battery_manager_title" msgid="870632749556793417">"बॅटरी व्यवस्थापक"</string>
<string name="smart_battery_title" msgid="6218785691872466076">"अॅप्स आपोआप व्यवस्थापित करा"</string>
- <string name="smart_battery_summary" msgid="1339184602000004058">"तुम्ही नेहमी वापरत नसलेल्या अॅप्सचा बॅटरी वापर मर्यादित करा"</string>
+ <string name="smart_battery_summary" msgid="1339184602000004058">"तुम्ही नेहमी वापरत नसलेल्या ॲप्सचा बॅटरी वापर मर्यादित करा"</string>
<string name="smart_battery_footer" product="default" msgid="5555604955956219544">"जेव्हा बॅटरी व्यवस्थापकाला अॅप्सद्वारे बॅटरी जास्त वापरली जात आहे असे लक्षात येईल, तेव्हा तुमच्याकडे या अॅप्सचा वापर मर्यादित राखण्याचा पर्याय असेल. प्रतिबंधित अॅप्स योग्यरीत्या कार्य करणार नाहीत आणि सूचना येण्यास उशीर होऊ शकतो."</string>
<string name="smart_battery_footer" product="tablet" msgid="5555604955956219544">"जेव्हा बॅटरी व्यवस्थापकाला अॅप्सद्वारे बॅटरी जास्त वापरली जात आहे असे लक्षात येईल, तेव्हा तुमच्याकडे या अॅप्सचा वापर मर्यादित राखण्याचा पर्याय असेल. प्रतिबंधित अॅप्स योग्यरीत्या कार्य करणार नाहीत आणि सूचना येण्यास उशीर होऊ शकतो."</string>
<string name="smart_battery_footer" product="device" msgid="5555604955956219544">"जेव्हा बॅटरी व्यवस्थापकाला अॅप्सद्वारे बॅटरी जास्त वापरली जात आहे असे लक्षात येईल, तेव्हा तुमच्याकडे या अॅप्सचा वापर मर्यादित राखण्याचा पर्याय असेल. प्रतिबंधित अॅप्स योग्यरीत्या कार्य करणार नाहीत आणि सूचना येण्यास उशीर होऊ शकतो."</string>
<string name="restricted_app_title" msgid="8982477293044330653">"प्रतिबंधित अॅप्स"</string>
<plurals name="restricted_app_summary" formatted="false" msgid="7355687633914223530">
- <item quantity="other">%1$d अॅप्ससाठी बॅटरीचा वापर मर्यादित करत आहे</item>
- <item quantity="one">%1$d अॅपसाठी बॅटरीचा वापर मर्यादित करत आहे</item>
+ <item quantity="other">%1$d ॲप्ससाठी बॅटरीचा वापर मर्यादित करत आहे</item>
+ <item quantity="one">%1$d ॲपसाठी बॅटरीचा वापर मर्यादित करत आहे</item>
</plurals>
<string name="restricted_app_time_summary" msgid="6983512391277778623">"<xliff:g id="TIME">%1$s</xliff:g> दिवसांपूर्वी प्रतिबंधित केलेले"</string>
<string name="restricted_app_detail_footer" msgid="6739863162364046859">"ही अॅप्स बॅकग्राउंडवर बॅटरी वापरत आहेत. प्रतिबंधित अॅप्स व्यवस्थित काम करू शकणार नाहीत आणि सूचना येण्यास उशीर होऊ शकतो."</string>
<string name="battery_auto_restriction_title" msgid="6553271897488963709">"बॅटरी व्यवस्थापक वापरा"</string>
<string name="battery_auto_restriction_summary" msgid="8561335400991281062">"अॅप्सची बॅटरी केव्हा संंपते ते ओळखा"</string>
- <string name="battery_manager_on" msgid="8643310865054362396">"अॅप्सची बॅटरी केव्हा संपते ते ओळखत आहे / सुरू आहे"</string>
+ <string name="battery_manager_on" msgid="8643310865054362396">"ॲप्सची बॅटरी केव्हा संपते ते ओळखत आहे / सुरू आहे"</string>
<string name="battery_manager_off" msgid="5473135235710343576">"बंद"</string>
<plurals name="battery_manager_app_restricted" formatted="false" msgid="1026141135861471129">
<item quantity="other">%1$d अॅप्स प्रतिबंधित केली</item>
@@ -2401,7 +2401,7 @@
<string name="battery_desc_bluetooth" msgid="8069070756186680367">"ब्लूटूथ द्वारे वापरलेली बॅटरी"</string>
<string name="battery_sugg_bluetooth_basic" msgid="4565141162650835009">"तुम्ही ब्लूटूथ वापरत नसता तेव्हा ते बंद करा"</string>
<string name="battery_sugg_bluetooth_headset" msgid="4071352514714259230">"एका भिन्न ब्लूटूथ उपकरणावर कनेक्ट करून पहा"</string>
- <string name="battery_desc_apps" msgid="8530418792605735226">"अॅपद्वारे वापरलेली बॅटरी"</string>
+ <string name="battery_desc_apps" msgid="8530418792605735226">"ॲपद्वारे वापरलेली बॅटरी"</string>
<string name="battery_sugg_apps_info" msgid="6907588126789841231">"अॅप थांबवा किंवा अनइंस्टॉल करा"</string>
<string name="battery_sugg_apps_gps" msgid="5959067516281866135">"बॅटरी बचत मोड निवडा"</string>
<string name="battery_sugg_apps_settings" msgid="3974902365643634514">"बॅटरी वापर कमी करण्यासाठी अॅप सेटिंग्ज ऑफर करू शकतो"</string>
@@ -2497,7 +2497,7 @@
<string name="voice_service_preference_section_title" msgid="3778706644257601021">"व्हॉइस इनपुट सेवा"</string>
<string name="voice_interactor_preference_summary" msgid="1801414022026937190">"पूर्ण हॉटवर्ड आणि परस्परसंवाद"</string>
<string name="voice_recognizer_preference_summary" msgid="669880813593690527">"मजकूर पाठविण्यासाठी सोपे उच्चारण"</string>
- <string name="voice_interaction_security_warning" msgid="6378608263983737325">"आपल्या वतीने व्हॉइस परीक्षण नेहमी-चालू कार्यप्रदर्शन करण्यासाठी आणि व्हॉइस सक्षम अॅप्लिकेशन नियंत्रित करण्यासाठी व्हॉइस इनपुट सेवा सक्षम असेल. हे <xliff:g id="VOICE_INPUT_SERVICE_APP_NAME">%s</xliff:g> अॅप्लिकेशनावरून येते. या सेवेचा वापर सक्षम करायचा?"</string>
+ <string name="voice_interaction_security_warning" msgid="6378608263983737325">"आपल्या वतीने व्हॉइस परीक्षण नेहमी-चालू कार्यप्रदर्शन करण्यासाठी आणि व्हॉइस सक्षम ॲप्लिकेशन नियंत्रित करण्यासाठी व्हॉइस इनपुट सेवा सक्षम असेल. हे <xliff:g id="VOICE_INPUT_SERVICE_APP_NAME">%s</xliff:g> ॲप्लिकेशनावरून येते. या सेवेचा वापर सक्षम करायचा?"</string>
<string name="tts_engine_preference_title" msgid="1578826947311494239">"प्राधान्य इंजिन"</string>
<string name="tts_engine_settings_title" msgid="6886964122861384818">"इंजिन सेटिंग्ज"</string>
<string name="tts_sliders_title" msgid="992059150784095263">"भाषण गती आणि पिच"</string>
@@ -2505,7 +2505,7 @@
<string name="tts_install_voice_title" msgid="6275828614052514320">"व्हॉइस"</string>
<string name="tts_spoken_language" msgid="5542499183472504027">"बोलली जाणारी भाषा"</string>
<string name="tts_install_voices_title" msgid="8808823756936022641">"आवाज इंस्टॉल करा"</string>
- <string name="tts_install_voices_text" msgid="5292606786380069134">"आवाज इंस्टॉल करण्यासाठी <xliff:g id="TTS_APP_NAME">%s</xliff:g> अॅपकडे जा"</string>
+ <string name="tts_install_voices_text" msgid="5292606786380069134">"आवाज इंस्टॉल करण्यासाठी <xliff:g id="TTS_APP_NAME">%s</xliff:g> ॲपकडे जा"</string>
<string name="tts_install_voices_open" msgid="667467793360277465">"अॅप उघडा"</string>
<string name="tts_install_voices_cancel" msgid="4711492804851107459">"रद्द करा"</string>
<string name="tts_reset" msgid="2661752909256313270">"रीसेट करा"</string>
@@ -2526,7 +2526,7 @@
<string name="credential_storage_type_hardware" msgid="6077193544333904427">"हार्डवेअर बॅकअप घेतला"</string>
<string name="credential_storage_type_software" msgid="4403117271207715378">"केवळ सॉफ्टवेअर"</string>
<string name="credentials_settings_not_available" msgid="7968275634486624215">"या वापरकर्त्यासाठी क्रेडेंशियल उपलब्ध नाहीत"</string>
- <string name="credential_for_vpn_and_apps" msgid="4168197158768443365">"VPN आणि अॅप्ससाठी इंस्टॉल केले"</string>
+ <string name="credential_for_vpn_and_apps" msgid="4168197158768443365">"VPN आणि ॲप्ससाठी इंस्टॉल केले"</string>
<string name="credential_for_wifi" msgid="6228425986551591864">"वाय-फाय साठी इंस्टॉल केले"</string>
<string name="credentials_reset_hint" msgid="6297256880896133631">"सर्व आशय काढायचा?"</string>
<string name="credentials_erased" msgid="2907836028586342969">"क्रेडेन्शियल स्टोरेज मिटवले आहे."</string>
@@ -2536,7 +2536,7 @@
<string name="user_certificate" msgid="1245239718062428612">"VPN व ॲप वापरकर्ता प्रमाणपत्र"</string>
<string name="wifi_certificate" msgid="4599070907834877135">"वाय-फाय प्रमाणपत्र"</string>
<string name="ca_certificate_warning_title" msgid="4478333162133486865">"तुमची गोपनीयता धोक्यात आहे"</string>
- <string name="ca_certificate_warning_description" msgid="5440294374808940938">"वेबसाइट, अॅप्स आणि VPN एंक्रिप्शनसाठी CA प्रमाणपत्रे वापरली जातात. फक्त तुमचा विश्वास असलेल्या संस्थांकडून CA प्रमाणपत्रे इंस्टॉल करा. \n\n तुम्ही CA प्रमाणपत्र इंस्टॉल केल्यास, प्रमाणपत्र मालक तुम्ही भेट दिलेल्या वेबसाइटवरून किंवा तुम्ही वापरत असलेल्या अॅप्सवरील माहिती, जसे की पासवर्ड, मेसेज किंवा क्रेडिट कार्ड तपशील अॅक्सेस करू शकतात - ती माहिती एंक्रिप्ट केलेली असली तरीही."</string>
+ <string name="ca_certificate_warning_description" msgid="5440294374808940938">"वेबसाइट, ॲप्स आणि VPN एंक्रिप्शनसाठी CA प्रमाणपत्रे वापरली जातात. फक्त तुमचा विश्वास असलेल्या संस्थांकडून CA प्रमाणपत्रे इंस्टॉल करा. \n\n तुम्ही CA प्रमाणपत्र इंस्टॉल केल्यास, प्रमाणपत्र मालक तुम्ही भेट दिलेल्या वेबसाइटवरून किंवा तुम्ही वापरत असलेल्या अॅप्सवरील माहिती, जसे की पासवर्ड, मेसेज किंवा क्रेडिट कार्ड तपशील ॲक्सेस करू शकतात - ती माहिती एंक्रिप्ट केलेली असली तरीही."</string>
<string name="ca_certificate_warning_dont_install" msgid="4537578357155660739">"इंस्टॉल करू नका"</string>
<string name="ca_certificate_warning_install_anyway" msgid="7493237489439243674">"तरीही इंस्टॉल करा"</string>
<string name="cert_not_installed" msgid="6088612710464676185">"प्रमाणपत्र इंस्टॉल केलेले नाही"</string>
@@ -2570,15 +2570,15 @@
<string name="personal_device_admin_title" msgid="2849617316347669861">"वैयक्तिक"</string>
<string name="managed_device_admin_title" msgid="7853955652864478435">"कार्य"</string>
<string name="no_trust_agents" msgid="7450273545568977523">"कोणतेही विश्वासू एजंट उपलब्ध नाहीत"</string>
- <string name="add_device_admin_msg" msgid="1501847129819382149">"डिव्हाइस प्रशासक अॅप अॅक्टिव्हेट करायचे?"</string>
- <string name="add_device_admin" msgid="4192055385312215731">"हे डिव्हाइस प्रशासक अॅप अॅक्टिव्हेट करा"</string>
+ <string name="add_device_admin_msg" msgid="1501847129819382149">"डिव्हाइस प्रशासक अॅप ॲक्टिव्हेट करायचे?"</string>
+ <string name="add_device_admin" msgid="4192055385312215731">"हे डिव्हाइस प्रशासक अॅप ॲक्टिव्हेट करा"</string>
<string name="device_admin_add_title" msgid="3140663753671809044">"डिव्हाइस प्रशासक"</string>
<string name="device_admin_warning" msgid="7482834776510188134">"हे प्रशासक अॅप सक्रिय केल्याने ते <xliff:g id="APP_NAME">%1$s</xliff:g> अॅपला पुढील ऑपरेशन करण्याची अनुमती देईल:"</string>
<string name="device_admin_warning_simplified" msgid="8085544856342321981">"या डिव्हाइसचे व्यवस्थापन आणि नियंत्रिण <xliff:g id="APP_NAME">%1$s</xliff:g> कडून केले जाईल."</string>
<string name="device_admin_status" msgid="7234814785374977990">"हे अॅडमिन अॅप सक्रिय आहे आणि ते <xliff:g id="APP_NAME">%1$s</xliff:g> अॅपला पुढील ऑपरेशन करण्याची अनुमती देते:"</string>
<string name="profile_owner_add_title" msgid="6249331160676175009">"प्रोफाईल व्यवस्थापक सक्रिय करायचे?"</string>
<string name="profile_owner_add_title_simplified" msgid="6856400286736117006">"पर्यवेक्षणाला अनुमती द्याची का?"</string>
- <string name="adding_profile_owner_warning" msgid="1354474524852805802">"पुढे सुरू ठेवून, तुमच्या वापरकर्त्याचे व्यवस्थापन तुमच्या प्रशासकाद्वारे केले जाईल. हा प्रशासक तुमच्या वैयक्तिक डेटाव्यतिरिक्त संबंधित डेटा स्टोअर करण्यासही सक्षम असेल.\n\nतुमच्या प्रशासकाकडे तुमच्या नेटवर्क अॅक्टिव्हिटी तसेच वापरकर्त्याशी संबधित सेटिंग्ज, अॅक्सेस, अॅप्स आणि डेटा यांचे परीक्षण आणि व्यवस्थापन करण्याची क्षमता आहे."</string>
+ <string name="adding_profile_owner_warning" msgid="1354474524852805802">"पुढे सुरू ठेवून, तुमच्या वापरकर्त्याचे व्यवस्थापन तुमच्या प्रशासकाद्वारे केले जाईल. हा प्रशासक तुमच्या वैयक्तिक डेटाव्यतिरिक्त संबंधित डेटा स्टोअर करण्यासही सक्षम असेल.\n\nतुमच्या प्रशासकाकडे तुमच्या नेटवर्क ॲक्टिव्हिटी तसेच वापरकर्त्याशी संबधित सेटिंग्ज, अॅक्सेस, अॅप्स आणि डेटा यांचे परीक्षण आणि व्यवस्थापन करण्याची क्षमता आहे."</string>
<string name="admin_disabled_other_options" msgid="7712694507069054530">"आपल्या प्रशासकाने इतर पर्याय अक्षम केले आहेत"</string>
<string name="admin_more_details" msgid="7901420667346456102">"अधिक तपशील"</string>
<string name="notification_log_title" msgid="3766148588239398464">"सूचना लॉग"</string>
@@ -2695,7 +2695,7 @@
<string name="data_usage_app_settings" msgid="2279171379771253165">"अॅप सेटिंग्ज"</string>
<string name="data_usage_app_restrict_background" msgid="7359227831562303223">"पार्श्वभूमीवरील डेटा"</string>
<string name="data_usage_app_restrict_background_summary" msgid="5853552187570622572">"पार्श्वभूमीमध्ये मोबाइल डेटाचा वापर सुरू करा"</string>
- <string name="data_usage_app_restrict_background_summary_disabled" msgid="7401927377070755054">"या अॅपसाठी पार्श्वभूमीवरील डेटा प्रतिबंधित करताना प्रथम मोबाईल डेटा मर्यादा सेट करा."</string>
+ <string name="data_usage_app_restrict_background_summary_disabled" msgid="7401927377070755054">"या ॲपसाठी पार्श्वभूमीवरील डेटा प्रतिबंधित करताना प्रथम मोबाईल डेटा मर्यादा सेट करा."</string>
<string name="data_usage_app_restrict_dialog_title" msgid="1613108390242737923">"पार्श्वभूमीवरील डेटा प्रतिबंधित करायचा?"</string>
<string name="data_usage_app_restrict_dialog" msgid="1466689968707308512">"जेव्हा फक्त मोबाईल नेटवर्क उपलब्ध असतात तेव्हा या वैशिष्ट्यामुळे पार्श्वभूमी डेटावर अवलंबून असलेला अॅप कार्य करणे थांबवते.\n\nतुम्ही अॅप मध्ये उपलब्ध असलेल्या सेटिंग्जमध्ये अधिक योग्य डेटा वापर नियंत्रणे शोधू शकता."</string>
<string name="data_usage_restrict_denied_dialog" msgid="55012417305745608">"तुम्ही मोबाइल डेटा मर्यादा सेट करता तेव्हाच पार्श्वभूमीवरील डेटा प्रतिबंधित करणे शक्य आहे."</string>
@@ -2789,7 +2789,7 @@
<string name="vpn_menu_lockdown" msgid="7863024538064268139">"नेहमी सुरू असलेले VPN"</string>
<string name="vpn_no_vpns_added" msgid="5002741367858707244">"कोणतेही VPN जोडलेले नाहीत"</string>
<string name="vpn_always_on_summary" msgid="2821344524094363617">"VPN शी नेहमी कनेक्ट केलेले रहा"</string>
- <string name="vpn_always_on_summary_not_supported" msgid="592304911378771510">"या अॅपद्वारे समर्थित नाही"</string>
+ <string name="vpn_always_on_summary_not_supported" msgid="592304911378771510">"या ॲपद्वारे समर्थित नाही"</string>
<string name="vpn_always_on_summary_active" msgid="8800736191241875669">"नेहमी-चालू सक्रिय"</string>
<string name="vpn_require_connection" msgid="8388183166574269666">"VPN शिवायची कनेक्शन ब्लॉक करा"</string>
<string name="vpn_require_connection_title" msgid="159053539340576331">"VPN कनेक्शन आवश्यक आहे?"</string>
@@ -2832,14 +2832,14 @@
<item quantity="one">प्रमाणपत्रावर विश्वास ठेवा अथवा काढून टाका</item>
</plurals>
<plurals name="ssl_ca_cert_info_message_device_owner" formatted="false" msgid="1489335297837656666">
- <item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> नी तुमच्या डिव्हाइस वर एक प्रमाणपत्र अधिकार इंस्टॉल केले आहेत, जे त्यांना ईमेल, अॅप्स आणि सुरक्षित वेबसाइटसह तुमच्या डिव्हाइस नेटवर्क अॅक्टिव्हिटीचे परीक्षण करण्याची अनुमती देऊ शकतात.\n\nया प्रमाणपत्रांंविषयी अधिक माहितीसाठी, तुमच्या प्रशासकाशी संपर्क साधा.</item>
- <item quantity="one"><xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> नी तुमच्या डिव्हाइस वर एक प्रमाणपत्र अधिकार इंस्टॉल केला आहे, जो त्यांना ईमेल, अॅप्स आणि सुरक्षित वेबसाइटसह तुमच्या डिव्हाइस नेटवर्क अॅक्टिव्हिटीचे परीक्षण करण्याची अनुमती देऊ शकतो.\n\nया प्रमाणपत्राविषयी अधिक माहितीसाठी, तुमच्या प्रशासकाशी संपर्क साधा.</item>
+ <item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> नी तुमच्या डिव्हाइस वर एक प्रमाणपत्र अधिकार इंस्टॉल केले आहेत, जे त्यांना ईमेल, अॅप्स आणि सुरक्षित वेबसाइटसह तुमच्या डिव्हाइस नेटवर्क ॲक्टिव्हिटीचे परीक्षण करण्याची अनुमती देऊ शकतात.\n\nया प्रमाणपत्रांंविषयी अधिक माहितीसाठी, तुमच्या प्रशासकाशी संपर्क साधा.</item>
+ <item quantity="one"><xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> नी तुमच्या डिव्हाइस वर एक प्रमाणपत्र अधिकार इंस्टॉल केला आहे, जो त्यांना ईमेल, अॅप्स आणि सुरक्षित वेबसाइटसह तुमच्या डिव्हाइस नेटवर्क ॲक्टिव्हिटीचे परीक्षण करण्याची अनुमती देऊ शकतो.\n\nया प्रमाणपत्राविषयी अधिक माहितीसाठी, तुमच्या प्रशासकाशी संपर्क साधा.</item>
</plurals>
<plurals name="ssl_ca_cert_info_message" formatted="false" msgid="30645643499556573">
<item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> नी आपल्या कार्य प्रोफाइलसाठी प्रमाणपत्र अधिकार इंस्टॉल केले आहेत, जे त्यांना ईमेल, अॅप्स आणि सुरक्षित वेबसाइटसह कार्य नेटवर्क क्रियाकलापाचे परीक्षण करण्याची अनुमती देऊ शकतात.\n\nया प्रमाणपत्रांंविषयी अधिक माहितीसाठी, तुमच्या प्रशासकाशी संपर्क साधा.</item>
<item quantity="one"><xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> नी आपल्या कार्य प्रोफाइलसाठी एक प्रमाणपत्र अधिकार इंस्टॉल केला आहे, जो त्यांना ईमेल, अॅप्स आणि सुरक्षित वेबसाइटसह कार्य नेटवर्क क्रियाकलापाचे परीक्षण करण्याची अनुमती देतो.\n\nया प्रमाणपत्राविषयी अधिक माहितीसाठी, तुमच्या प्रशासकाशी संपर्क साधा.</item>
</plurals>
- <string name="ssl_ca_cert_warning_message" msgid="8216218659139190498">"एक तृतीय पक्ष ईमेल, अॅप्स आणि सुरक्षित वेबसाइट यासह, आपल्या नेटवर्क अॅक्टिव्हिटीचे परीक्षण करण्यास सक्षम आहे.\n\nआपल्या डीव्हाइसवर इंस्टॉल केलेले विश्वसनीय क्रेडेंशियल हे शक्य करते."</string>
+ <string name="ssl_ca_cert_warning_message" msgid="8216218659139190498">"एक तृतीय पक्ष ईमेल, अॅप्स आणि सुरक्षित वेबसाइट यासह, आपल्या नेटवर्क ॲक्टिव्हिटीचे परीक्षण करण्यास सक्षम आहे.\n\nआपल्या डीव्हाइसवर इंस्टॉल केलेले विश्वसनीय क्रेडेंशियल हे शक्य करते."</string>
<plurals name="ssl_ca_cert_settings_button" formatted="false" msgid="2426799352517325228">
<item quantity="other">प्रमाणपत्रे तपासा</item>
<item quantity="one">प्रमाणपत्र तपासा</item>
@@ -2909,7 +2909,7 @@
<string name="emergency_info_title" msgid="208607506217060337">"आणीबाणी माहिती"</string>
<string name="emergency_info_summary" msgid="5062945162967838521">"<xliff:g id="USER_NAME">%1$s</xliff:g> साठी माहिती आणि संपर्क"</string>
<string name="application_restrictions" msgid="8207332020898004394">"अॅप्स आणि सामग्रीला अनुमती द्या"</string>
- <string name="apps_with_restrictions_header" msgid="3660449891478534440">"प्रतिबंध असलेले अॅप्लिकेशन"</string>
+ <string name="apps_with_restrictions_header" msgid="3660449891478534440">"प्रतिबंध असलेले ॲप्लिकेशन"</string>
<string name="apps_with_restrictions_settings_button" msgid="3841347287916635821">"अनुप्रयोगासाठी सेटिंग्ज विस्तृत करा"</string>
<string name="nfc_payment_settings_title" msgid="1807298287380821613">"टॅप करा आणि पे करा"</string>
<string name="nfc_payment_how_it_works" msgid="3028822263837896720">"हे कसे काम करते"</string>
@@ -2978,7 +2978,7 @@
<string name="restriction_nfc_enable_summary" product="tablet" msgid="3891097373396149915">"टॅबलेट दुसर्या डिव्हाइसला स्पर्श करतो तेव्हा डेटा अदलाबदलीस अनुमती द्या"</string>
<string name="restriction_nfc_enable_summary" product="default" msgid="825331120501418592">"फोन दुसर्या डिव्हाइसला स्पर्श करतो तेव्हा डेटा अदलाबदलीस अनुमती द्या"</string>
<string name="restriction_location_enable_title" msgid="5020268888245775164">"स्थान"</string>
- <string name="restriction_location_enable_summary" msgid="3489765572281788755">"अॅप्सना तुमची स्थान माहिती वापरु द्या"</string>
+ <string name="restriction_location_enable_summary" msgid="3489765572281788755">"ॲप्सना तुमची स्थान माहिती वापरु द्या"</string>
<string name="wizard_back" msgid="5567007959434765743">"परत"</string>
<string name="wizard_next" msgid="3606212602795100640">"पुढील"</string>
<string name="wizard_finish" msgid="3286109692700083252">"समाप्त"</string>
@@ -2990,7 +2990,7 @@
<string name="sim_settings_title" msgid="6822745211458959756">"सिम कार्ड"</string>
<string name="sim_settings_summary" msgid="4050372057097516088">"<xliff:g id="SIM_NAME">%1$s</xliff:g> - <xliff:g id="SIM_NUMBER">%2$s</xliff:g>"</string>
<string name="sim_cards_changed_message" msgid="7900721153345139783">"सिम कार्डे बदलली"</string>
- <string name="sim_cards_changed_message_summary" msgid="8258058274989383204">"अॅक्टिव्हिटी सेट करण्यासाठी टॅप करा"</string>
+ <string name="sim_cards_changed_message_summary" msgid="8258058274989383204">"ॲक्टिव्हिटी सेट करण्यासाठी टॅप करा"</string>
<string name="sim_cellular_data_unavailable" msgid="9109302537004566098">"मोबाइल डेटा अनुपलब्ध आहे"</string>
<string name="sim_cellular_data_unavailable_summary" msgid="5416535001368135327">"डेटा सिम निवडण्यासाठी टॅप करा"</string>
<string name="sim_calls_always_use" msgid="7936774751250119715">"कॉल साठी हे नेहमी वापरा"</string>
@@ -3041,7 +3041,7 @@
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ब्लूटूथ"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"अॅप्स आणि सूचना"</string>
<string name="app_and_notification_dashboard_summary" msgid="3285151907659820564">"अलीकडील अॅप्स, डीफॉल्ट अॅप्स"</string>
- <string name="notification_settings_work_profile" msgid="3186757479243373003">"कार्य प्रोफाइलमधील अॅप्ससाठी सूचनेचा अॅक्सेस उपलब्ध नाही."</string>
+ <string name="notification_settings_work_profile" msgid="3186757479243373003">"कार्य प्रोफाइलमधील ॲप्ससाठी सूचनेचा अॅक्सेस उपलब्ध नाही."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"खाती"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"कोणतीही खाती जोडली नाहीत"</string>
<string name="app_default_dashboard_title" msgid="7342549305933047317">"डीफॉल्ट अॅप्स"</string>
@@ -3053,7 +3053,7 @@
<string name="keywords_time_format" msgid="5581515674151927461">"२४-तास फॉरमॅट वापरा"</string>
<string name="keywords_storage_files" msgid="7075933058850826819">"डाउनलोड करा"</string>
<string name="keywords_app_default" msgid="5822717006354487071">"याने उघडा"</string>
- <string name="keywords_applications_settings" msgid="1268353611121497450">"अॅप्लिकेशन"</string>
+ <string name="keywords_applications_settings" msgid="1268353611121497450">"ॲप्लिकेशन"</string>
<string name="keywords_time_zone" msgid="998254736898753085">"टाइमझोन"</string>
<string name="keywords_draw_overlay" msgid="1001120206241401007">"चॅट हेड, सिस्टम, सूचना, विंडो, डायलॉग, डिस्प्ले, इतर अॅप्सच्या टॉपवर, ड्रॉ"</string>
<string name="keywords_flashlight" msgid="6161632177705233710">"फ्लॅशलाइट, लाइट, टॉर्च"</string>
@@ -3081,9 +3081,9 @@
<string name="keywords_location" msgid="4132655528196729043">"जवळपासचे, स्थान, इतिहास, अहवाल देणे, GPS"</string>
<string name="keywords_accounts" msgid="4479029747403203867">"खाते, खाते जोडा, कार्य प्रोफाइल"</string>
<string name="keywords_users" msgid="3434190133131387942">"प्रतिबंध, प्रतिबंधित करा, प्रतिबंधित"</string>
- <string name="keywords_keyboard_and_ime" msgid="9143339015329957107">"मजकूर सुधारणा, योग्य, ध्वनी, व्हायब्रेट, अॉटो, भाषा, जेश्चर, सुचवा, सूचना, थीम, आक्षेपार्ह, शब्द, प्रकार, ईमोजी, आंतरराष्ट्रीय"</string>
+ <string name="keywords_keyboard_and_ime" msgid="9143339015329957107">"मजकूर सुधारणा, योग्य, ध्वनी, व्हायब्रेट, ऑटो, भाषा, जेश्चर, सुचवा, सूचना, थीम, आक्षेपार्ह, शब्द, प्रकार, ईमोजी, आंतरराष्ट्रीय"</string>
<string name="keywords_reset_apps" msgid="5293291209613191845">"रीसेट करा, प्राधान्ये, डीफॉल्ट"</string>
- <string name="keywords_all_apps" msgid="7814015440655563156">"अॅप्स, डाउनलोड, अॅप्लिकेशन, सिस्टम"</string>
+ <string name="keywords_all_apps" msgid="7814015440655563156">"अॅप्स, डाउनलोड, ॲप्लिकेशन, सिस्टम"</string>
<string name="keywords_app_permissions" msgid="4229936435938011023">"अॅप्स, परवानग्या, सुरक्षितता"</string>
<string name="keywords_default_apps" msgid="223872637509160136">"अॅप्स, डीफॉल्ट"</string>
<string name="keywords_ignore_optimizations" msgid="6102579291119055029">"ऑप्टिमायझेशन, डोझ, अॅप स्टँडबायकडे दुर्लक्ष करा"</string>
@@ -3142,7 +3142,7 @@
<string name="notification_volume_option_title" msgid="6064656124416882130">"सूचना व्हॉल्यूम"</string>
<string name="ringtone_title" msgid="5379026328015343686">"फोन रिंगटोन"</string>
<string name="notification_ringtone_title" msgid="4468722874617061231">"डीफॉल्ट सूचना ध्वनी"</string>
- <string name="notification_unknown_sound_title" msgid="2535027767851838335">"अॅपने प्रदान केलेला ध्वनी"</string>
+ <string name="notification_unknown_sound_title" msgid="2535027767851838335">"ॲपने प्रदान केलेला ध्वनी"</string>
<string name="notification_sound_default" msgid="565135733949733766">"डीफॉल्ट सूचना ध्वनी"</string>
<string name="alarm_ringtone_title" msgid="6344025478514311386">"डीफॉल्ट अलार्म ध्वनी"</string>
<string name="vibrate_when_ringing_title" msgid="8658910997501323472">"कॉलसाठी कंपन सुरू करा"</string>
@@ -3226,7 +3226,7 @@
<string name="zen_mode_block_effect_summary_sound" msgid="1065107568053759972">"ध्वनी आणि व्हायब्रेट"</string>
<string name="zen_mode_block_effect_summary_some" msgid="3635646031575107456">"ध्वनी, व्हायब्रेट आणि काही व्हिज्युअल चिन्हांच्या काही सूचना"</string>
<string name="zen_mode_block_effect_summary_all" msgid="1213328945418248026">"सूचनांचा ध्वनी, व्हायब्रेट आणि व्हिज्युअल चिन्ह"</string>
- <string name="zen_mode_blocked_effects_footer" msgid="5710896246703497760">"मूलभूत फोन अॅक्टिव्हिटी आणि स्थितीसाठी आवश्यक सूचना कधीही लपवल्या जाणार नाहीत"</string>
+ <string name="zen_mode_blocked_effects_footer" msgid="5710896246703497760">"मूलभूत फोन ॲक्टिव्हिटी आणि स्थितीसाठी आवश्यक सूचना कधीही लपवल्या जाणार नाहीत"</string>
<string name="zen_mode_no_exceptions" msgid="7653433997399582247">"काहीही नाही"</string>
<string name="zen_mode_other_options" msgid="520015080445012355">"इतर पर्याय"</string>
<string name="zen_mode_add" msgid="90014394953272517">"जोडा"</string>
@@ -3236,7 +3236,7 @@
<string name="zen_mode_settings_dnd_manual_end_time" msgid="8860646554263965569">"व्यत्यय आणू नका <xliff:g id="FORMATTED_TIME">%s</xliff:g> पर्यंत चालू असणार आहे"</string>
<string name="zen_mode_settings_dnd_manual_indefinite" msgid="7186615007561990908">"तुम्ही बंद करेपर्यंत व्यत्यय आणू नका सुरू राहील"</string>
<string name="zen_mode_settings_dnd_automatic_rule" msgid="6195725842906270996">"(<xliff:g id="RULE_NAME">%s</xliff:g>) शेड्युलने व्यत्यय आणू नका आपोआप सुरू केले"</string>
- <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="1721179577382915270">"<xliff:g id="APP_NAME">%s</xliff:g> या अॅपने व्यत्यय आणू नका आपोआप चालू केले"</string>
+ <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="1721179577382915270">"<xliff:g id="APP_NAME">%s</xliff:g> या ॲपने व्यत्यय आणू नका आपोआप चालू केले"</string>
<string name="zen_mode_settings_dnd_custom_settings_footer" msgid="1965922539531521052">"<xliff:g id="RULE_NAMES">%s</xliff:g>साठी व्यत्यय आणू नका कस्टम सेटिंग्ज सह सुरू आहे."</string>
<string name="zen_mode_settings_dnd_custom_settings_footer_link" msgid="7555742240858292255"><annotation id="link">" कस्टम सेटिंग्ज पाहा"</annotation></string>
<string name="zen_interruption_level_priority" msgid="2078370238113347720">"केवळ प्राधान्य"</string>
@@ -3373,7 +3373,7 @@
<string name="notification_silence_title" msgid="6986752165900591125">"सायलंट"</string>
<string name="notification_alert_title" msgid="2267584776990348784">"सूचना देत आहे"</string>
<string name="allow_interruption" msgid="7136150018111848721">"व्यत्ययांना अनुमती द्या"</string>
- <string name="allow_interruption_summary" msgid="7870159391333957050">"अॅपचा आवाज येऊ द्या, व्हायब्रेट करू द्या आणि/किंवा स्क्रीनवर पॉप सूचना येऊ द्या"</string>
+ <string name="allow_interruption_summary" msgid="7870159391333957050">"ॲपचा आवाज येऊ द्या, व्हायब्रेट करू द्या आणि/किंवा स्क्रीनवर पॉप सूचना येऊ द्या"</string>
<string name="notification_channel_summary_min" msgid="2965790706738495761">"पुल-डाउन शेडमध्ये, सूचना एका ओळीवर कोलॅप्स करा"</string>
<string name="notification_channel_summary_low" msgid="7050068866167282765">"आवाज किंवा व्हायब्रेशनशिवाय तुम्हाला लक्ष केंद्रित करण्यास मदत करते"</string>
<string name="notification_channel_summary_default" msgid="5753454293847059695">"आवाज किंवा व्हायब्रेशनने तुमचे लक्ष वेधून घेते"</string>
@@ -3390,7 +3390,7 @@
</plurals>
<string name="notifications_sent_never" msgid="1001964786456700536">"कधीही नाही"</string>
<string name="manage_notification_access_title" msgid="7510080164564944891">"सूचना प्रवेश"</string>
- <string name="work_profile_notification_access_blocked_summary" msgid="8748026238701253040">"कार्य प्रोफाइल सूचनांचा अॅक्सेस ब्लॉक आहे"</string>
+ <string name="work_profile_notification_access_blocked_summary" msgid="8748026238701253040">"कार्य प्रोफाइल सूचनांचा ॲक्सेस ब्लॉक आहे"</string>
<string name="manage_notification_access_summary_zero" msgid="2409912785614953348">"अॅप्स सूचनांचे वाचन करु शकत नाहीत"</string>
<plurals name="manage_notification_access_summary_nonzero" formatted="false" msgid="7930130030691218387">
<item quantity="other">%d अॅप्स सूचना वाचू शकतात</item>
@@ -3400,16 +3400,16 @@
<string name="no_notification_assistant" msgid="2818970196806227480">"काहीही नाही"</string>
<string name="no_notification_listeners" msgid="3487091564454192821">"इंस्टॉल केलेल्या कोणत्याही अॅप्सने सूचना प्रवेशाची विनंती केली नाही."</string>
<string name="notification_assistant_security_warning_title" msgid="300600401595343861">"<xliff:g id="SERVICE">%1$s</xliff:g> ला सूचना अॅक्सेस करण्याची अनुमती द्यायची का?"</string>
- <string name="notification_assistant_security_warning_summary" msgid="5829972610310154776">"संपर्क नावे आणि तुम्हाला येणारे एसएमएस यासारख्या वैयक्तिक माहितीच्या समावेशासह <xliff:g id="NOTIFICATION_ASSISTANT_NAME">%1$s</xliff:g> सर्व सूचना पाहू शकेल. ते त्यांच्यामधील सूचनांमध्ये बदल करू शकेल किंवा त्यांना डिसमिस करू शकेल अथवा त्यामध्ये असलेली अॅक्शन बटणे ट्रिगर करू शकेल. \n\nयामुळे अॅपला व्यत्यय आणू नका सुरू किंवा बंद करता येईल आणि संबंधित सेटिंग्ज बदलता येतील."</string>
+ <string name="notification_assistant_security_warning_summary" msgid="5829972610310154776">"संपर्क नावे आणि तुम्हाला येणारे एसएमएस यासारख्या वैयक्तिक माहितीच्या समावेशासह <xliff:g id="NOTIFICATION_ASSISTANT_NAME">%1$s</xliff:g> सर्व सूचना पाहू शकेल. ते त्यांच्यामधील सूचनांमध्ये बदल करू शकेल किंवा त्यांना डिसमिस करू शकेल अथवा त्यामध्ये असलेली अॅक्शन बटणे ट्रिगर करू शकेल. \n\nयामुळे ॲपला व्यत्यय आणू नका सुरू किंवा बंद करता येईल आणि संबंधित सेटिंग्ज बदलता येतील."</string>
<string name="notification_listener_security_warning_title" msgid="5522924135145843279">"<xliff:g id="SERVICE">%1$s</xliff:g> साठी सूचना प्रवेशास अनुमती द्यायची?"</string>
- <string name="notification_listener_security_warning_summary" msgid="119203147791040151">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> तुम्ही प्राप्त करता ती संपर्क नावे आणि मजकूर मेसेज यासारख्या वैयक्तिक माहितीसह सर्व सूचना वाचण्यात सक्षम असेल. तो सूचना डिसमिस करण्यात किंवा त्यामध्ये असलेली क्रिया बटणे ट्रिगर करण्यात देखील सक्षम असेल. \n\nहे अॅपला व्यत्यय आणू नका चालू किंवा बंद करण्याची आणि सबंधित सेटिंग्ज बदलण्याची क्षमता देखील देईल."</string>
+ <string name="notification_listener_security_warning_summary" msgid="119203147791040151">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> तुम्ही प्राप्त करता ती संपर्क नावे आणि मजकूर मेसेज यासारख्या वैयक्तिक माहितीसह सर्व सूचना वाचण्यात सक्षम असेल. तो सूचना डिसमिस करण्यात किंवा त्यामध्ये असलेली क्रिया बटणे ट्रिगर करण्यात देखील सक्षम असेल. \n\nहे ॲपला व्यत्यय आणू नका चालू किंवा बंद करण्याची आणि सबंधित सेटिंग्ज बदलण्याची क्षमता देखील देईल."</string>
<string name="notification_listener_disable_warning_summary" msgid="6738915379642948000">"तुम्ही <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> साठी सूचनांमधील प्रवेश बंद केल्यास, व्यत्यय आणू नका मधील प्रवेश देखील बंद केला जाऊ शकतो."</string>
<string name="notification_listener_disable_warning_confirm" msgid="8333442186428083057">"बंद करा"</string>
<string name="notification_listener_disable_warning_cancel" msgid="8586417377104211584">"रद्द करा"</string>
<string name="vr_listeners_title" msgid="1318901577754715777">"VR मदतकर्ता सेवा"</string>
- <string name="no_vr_listeners" msgid="2689382881717507390">"कोणत्याही इंस्टॉल अॅप्सनी VR मदतकर्ता सेवा म्हणून चालविण्यासाठी विनंती केली नाही."</string>
+ <string name="no_vr_listeners" msgid="2689382881717507390">"कोणत्याही इंस्टॉल ॲप्सनी VR मदतकर्ता सेवा म्हणून चालविण्यासाठी विनंती केली नाही."</string>
<string name="vr_listener_security_warning_title" msgid="8309673749124927122">"<xliff:g id="SERVICE">%1$s</xliff:g> साठी VR सेवा प्रवेशाची अनुमती द्यायची?"</string>
- <string name="vr_listener_security_warning_summary" msgid="6931541068825094653">"तुम्ही आभासी वास्तविकता मोडमध्ये अॅप्लिकेशन वापरता तेव्हा <xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g> चालविण्यास सक्षम असेल."</string>
+ <string name="vr_listener_security_warning_summary" msgid="6931541068825094653">"तुम्ही आभासी वास्तविकता मोडमध्ये ॲप्लिकेशन वापरता तेव्हा <xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g> चालविण्यास सक्षम असेल."</string>
<string name="display_vr_pref_title" msgid="8104485269504335481">"डिव्हाइस VR मध्ये असताना"</string>
<string name="display_vr_pref_low_persistence" msgid="5707494209944718537">"अस्पष्टता कमी करा (शिफारस केलेले)"</string>
<string name="display_vr_pref_off" msgid="2190091757123260989">"फ्लिकर कमी करा"</string>
@@ -3421,7 +3421,7 @@
<string name="picture_in_picture_app_detail_summary" msgid="1264019085827708920">"अॅप खुले असताना किंवा तुम्ही ते सोडल्यानंतर या अॅपला चित्रामध्ये चित्र विंडो तयार करण्याची परवानगी द्या (उदाहरणार्थ, व्हिडिओ पाहणे सुरू ठेवणे). ही विंडो तुम्ही वापरत असलेल्या इतर अॅप्सच्या वरती दिसते."</string>
<string name="manage_zen_access_title" msgid="2611116122628520522">"व्यत्यय आणू नका प्रवेश"</string>
<string name="zen_access_detail_switch" msgid="1188754646317450926">"व्यत्यय आणू नका ची अनुमती द्या"</string>
- <string name="zen_access_empty_text" msgid="8772967285742259540">"कोणत्याही इंस्टॉल केलेल्या अॅप्सने व्यत्यय आणू नका प्रवेशाची विनंती केली नाही"</string>
+ <string name="zen_access_empty_text" msgid="8772967285742259540">"कोणत्याही इंस्टॉल केलेल्या ॲप्सने व्यत्यय आणू नका प्रवेशाची विनंती केली नाही"</string>
<string name="loading_notification_apps" msgid="5031818677010335895">"अॅप्स लोड करत आहे..."</string>
<string name="app_notifications_off_desc" msgid="8289223211387083447">"तुमच्या विनंतीनुसार Android या अॅपच्या सूचना, या डिव्हाइसवर दिसणे ब्लॉक करत आहे"</string>
<string name="channel_notifications_off_desc" msgid="9013011134681491778">"तुमच्या विनंतीनुसार Android, सूचनांच्या या वर्गवारीचे या डिव्हाइसवर दिसणे ब्लॉक करत आहे"</string>
@@ -3432,9 +3432,9 @@
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> वर्गवाऱ्या</item>
<item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> वर्गवारी</item>
</plurals>
- <string name="no_channels" msgid="3077375508177744586">"या अॅपने कोणत्याही सूचना पोस्ट केल्या नाहीत"</string>
+ <string name="no_channels" msgid="3077375508177744586">"या ॲपने कोणत्याही सूचना पोस्ट केल्या नाहीत"</string>
<string name="app_settings_link" msgid="8894946007543660906">"अॅपमधील अतिरिक्त सेटिंग्ज"</string>
- <string name="app_notification_listing_summary_zero" msgid="8046168435207424440">"सर्व अॅप्ससाठी सुरू"</string>
+ <string name="app_notification_listing_summary_zero" msgid="8046168435207424440">"सर्व ॲप्ससाठी सुरू"</string>
<plurals name="app_notification_listing_summary_others" formatted="false" msgid="6709582776823665660">
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> अॅप्ससाठी बंद</item>
<item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> अॅपसाठी बंद</item>
@@ -3537,7 +3537,7 @@
<string name="zen_mode_reminders" msgid="5445657061499098675">"रिमाइंडरना अनुमती द्या"</string>
<string name="zen_mode_reminders_list" msgid="2853975802240340190">"रिमाइंडर्स"</string>
<string name="zen_mode_events" msgid="6154853744271591007">"इव्हेंटना अनुमती द्या"</string>
- <string name="zen_mode_bypassing_apps" msgid="5493729796981237881">"अॅप्सना ओव्हरराइड करण्याची अनुमती द्या"</string>
+ <string name="zen_mode_bypassing_apps" msgid="5493729796981237881">"ॲप्सना ओव्हरराइड करण्याची अनुमती द्या"</string>
<string name="zen_mode_bypassing_apps_title" msgid="2072590348079644482">"अॅप अपवाद"</string>
<plurals name="zen_mode_bypassing_apps_subtext" formatted="false" msgid="3726913165356014788">
<item quantity="other"><xliff:g id="NUMBER">%1$d</xliff:g> अॅप्सच्या सूचना व्यत्यय आणू नका ला ओव्हरराइड करू शकतात</item>
@@ -3678,7 +3678,7 @@
<string name="app_permissions" msgid="5584182129908141622">"परवानगी व्यवस्थापक"</string>
<string name="app_permissions_summary" msgid="5163974162150406324">"<xliff:g id="APPS">%1$s</xliff:g> वापरणारी अॅप्स"</string>
<string name="tap_to_wake" msgid="7211944147196888807">"सक्रिय करण्यासाठी टॅप करा"</string>
- <string name="tap_to_wake_summary" msgid="4341387904987585616">"डिव्हाइस अॅक्टिव्हेट करण्यासाठी स्क्रीनवर कुठेही दोनदा टॅप करा"</string>
+ <string name="tap_to_wake_summary" msgid="4341387904987585616">"डिव्हाइस ॲक्टिव्हेट करण्यासाठी स्क्रीनवर कुठेही दोनदा टॅप करा"</string>
<string name="domain_urls_title" msgid="3132983644568821250">"उघडणाऱ्या लिंक"</string>
<string name="domain_urls_summary_none" msgid="2639588015479657864">"सपोर्टेड लिंक उघडू नका"</string>
<string name="domain_urls_summary_one" msgid="3704934031930978405">"<xliff:g id="DOMAIN">%s</xliff:g> उघडा"</string>
@@ -3696,7 +3696,7 @@
<string name="assist_and_voice_input_title" msgid="1733165754793221197">"साहाय्य आणि व्हॉइस इनपुट"</string>
<string name="default_assist_title" msgid="8868488975409247921">"साहाय्य अॅप"</string>
<string name="assistant_security_warning_title" msgid="8673079231955467177">"<xliff:g id="ASSISTANT_APP_NAME">%s</xliff:g> ला तुमचा साहाय्यक बनवायचे?"</string>
- <string name="assistant_security_warning" msgid="8498726261327239136">"आपल्या स्क्रीनवर दृश्यमान असलेली किंवा अॅप्समध्ये प्रवेश करण्यायोग्य माहितीसह, आपल्या सिस्टम वरील वापरात असलेल्या अॅप्सविषयी माहिती वाचण्यात साहाय्यक सक्षम असेल."</string>
+ <string name="assistant_security_warning" msgid="8498726261327239136">"आपल्या स्क्रीनवर दृश्यमान असलेली किंवा ॲप्समध्ये प्रवेश करण्यायोग्य माहितीसह, आपल्या सिस्टम वरील वापरात असलेल्या ॲप्सविषयी माहिती वाचण्यात साहाय्यक सक्षम असेल."</string>
<string name="assistant_security_warning_agree" msgid="7710290206928033908">"सहमत आहे"</string>
<string name="assistant_security_warning_disagree" msgid="877419950830205913">"सहमत नाही"</string>
<string name="choose_voice_input_title" msgid="975471367067718019">"व्हॉइस इनपुट निवडा"</string>
@@ -3726,14 +3726,14 @@
<string name="high_power_apps" msgid="3459065925679828230">"बॅटरी ऑप्टिमायझेशन"</string>
<string name="additional_battery_info" msgid="4754099329165411970">"वापरासंबंधी सूचना"</string>
<string name="show_all_apps" msgid="1512506948197818534">"पूर्ण डिव्हाइस वापर दाखवा"</string>
- <string name="hide_extra_apps" msgid="5016497281322459633">"अॅपचा वापर दाखवा"</string>
+ <string name="hide_extra_apps" msgid="5016497281322459633">"ॲपचा वापर दाखवा"</string>
<plurals name="power_high_usage_summary" formatted="false" msgid="467347882627862744">
<item quantity="other"><xliff:g id="NUMBER">%2$d</xliff:g> अॅप्स अस्वाभाविकपणे काम करत आहेत</item>
<item quantity="one"><xliff:g id="APP">%1$s</xliff:g> अस्वाभाविकपणे काम करत आहे</item>
</plurals>
<plurals name="power_high_usage_title" formatted="false" msgid="3826660033363082922">
<item quantity="other">बॅटरी संपवणारे अॅप्स</item>
- <item quantity="one">बॅटरी संपवण्ाारे <xliff:g id="APP">%1$s</xliff:g></item>
+ <item quantity="one">बॅटरी संपवणारे <xliff:g id="APP">%1$s</xliff:g></item>
</plurals>
<string name="high_power_filter_on" msgid="3222265297576680099">"ऑप्टिमाइझ न केलेले"</string>
<string name="high_power_on" msgid="6216293998227583810">"ऑप्टिमाइझ न केलेले"</string>
@@ -3788,9 +3788,9 @@
<string name="background_check_pref" msgid="7550258400138010979">"पार्श्वभूमी तपासणे"</string>
<string name="background_check_title" msgid="4534254315824525593">"पूर्ण पार्श्वभूमी प्रवेश"</string>
<string name="assist_access_context_title" msgid="2269032346698890257">"स्क्रीनवरील मजकूर वापरा"</string>
- <string name="assist_access_context_summary" msgid="1991421283142279560">"स्क्रीन सामग्रींमध्ये मजकूर म्हणून प्रवेश करण्यासाठी साहाय्यक अॅपला अनुमती द्या"</string>
+ <string name="assist_access_context_summary" msgid="1991421283142279560">"स्क्रीन सामग्रींमध्ये मजकूर म्हणून प्रवेश करण्यासाठी साहाय्यक ॲपला अनुमती द्या"</string>
<string name="assist_access_screenshot_title" msgid="4034721336291215819">"स्क्रीनशॉट वापरा"</string>
- <string name="assist_access_screenshot_summary" msgid="6761636689013259901">"स्क्रीनच्या प्रतिमेमध्ये प्रवेश करण्यासाठी साहाय्यक अॅपला अनुमती द्या"</string>
+ <string name="assist_access_screenshot_summary" msgid="6761636689013259901">"स्क्रीनच्या प्रतिमेमध्ये प्रवेश करण्यासाठी साहाय्यक ॲपला अनुमती द्या"</string>
<string name="assist_flash_title" msgid="506661221230034891">"स्क्रीन फ्लॅश करा"</string>
<string name="assist_flash_summary" msgid="9160668468824099262">"साहाय्य अॅप स्क्रीन किंवा स्क्रीनशॉटमधून मजकूर अॅक्सेस करते, तेव्हा स्क्रीनच्या किनारी फ्लॅश करा"</string>
<string name="assist_footer" msgid="1982791172085896864">"साहाय्यक अॅप्स तुम्ही पाहत असलेल्या स्क्रीनवरील माहितीच्या आधारावर तुम्हाला मदत करू शकतात. काही अॅप्स तुम्हाला एकत्रित साहाय्य देण्यासाठी लॉन्चर आणि व्हॉइस इनपुट सेवा दोघांना सपोर्ट करतात."</string>
@@ -3819,7 +3819,7 @@
<string name="zen_access_warning_dialog_summary" msgid="4015885767653010873">"व्यत्यय आणू नका चालू/बंद करण्यात आणि संबंधित स्ट्रिंगमध्ये बदल करण्यात अॅप सक्षम असेल."</string>
<string name="zen_access_disabled_package_warning" msgid="302820100078584431">"सूचना प्रवेश चालू असल्याने चालू केलेले ठेवणे आवश्यक आहे"</string>
<string name="zen_access_revoke_warning_dialog_title" msgid="558779234015793950">"<xliff:g id="APP">%1$s</xliff:g> साठी व्यत्यय आणू नका मध्ये प्रवेश करणे रद्द करायचे?"</string>
- <string name="zen_access_revoke_warning_dialog_summary" msgid="5518216907304930148">"या अॅपने तयार केलेले सर्व व्यत्यय आणू नका नियम काढले जातील."</string>
+ <string name="zen_access_revoke_warning_dialog_summary" msgid="5518216907304930148">"या ॲपने तयार केलेले सर्व व्यत्यय आणू नका नियम काढले जातील."</string>
<string name="ignore_optimizations_on" msgid="6915689518016285116">"ऑप्टिमाइझ करू नका"</string>
<string name="ignore_optimizations_off" msgid="6153196256410296835">"ऑप्टिमाइझ करा"</string>
<string name="ignore_optimizations_on_desc" msgid="3549930955839111652">"तुमची बॅटरी खूप लवकर संपवू शकते. यापुढे अॅप बॅकग्राउंड बॅटरी वापरण्यापासून प्रतिबंधित नसेल."</string>
@@ -3843,13 +3843,13 @@
<string name="keywords_install_other_apps" msgid="761078076051006558">"अज्ञात स्रोत अॅप्स इंस्टॉल करा"</string>
<string name="write_settings" msgid="4797457275727195681">"सिस्टम सेटिंग्ज सुधारित करा"</string>
<string name="keywords_write_settings" msgid="6415597272561105138">"सिस्टम सेटिंग्ज सुधारित करा लिहा"</string>
- <string name="write_settings_summary" msgid="4302268998611412696">"सिस्टीम सेटिंग्ज सुधारित करण्यासाठी <xliff:g id="COUNT_1">%2$d</xliff:g> पैकी <xliff:g id="COUNT_0">%1$d</xliff:g> अॅप्सनी अनुमती दिली"</string>
+ <string name="write_settings_summary" msgid="4302268998611412696">"सिस्टीम सेटिंग्ज सुधारित करण्यासाठी <xliff:g id="COUNT_1">%2$d</xliff:g> पैकी <xliff:g id="COUNT_0">%1$d</xliff:g> ॲप्सनी अनुमती दिली"</string>
<string name="filter_install_sources_apps" msgid="3102976274848199118">"इतर अॅप्स इंस्टॉल करू शकतात"</string>
<string name="filter_write_settings_apps" msgid="2914615026197322551">"सिस्टीम सेटिंग्ज सुधारित करू शकतात"</string>
<string name="write_settings_title" msgid="4232152481902542284">"सिस्टीम सेटिंग्ज सुधारित करू शकतात"</string>
<string name="write_system_settings" msgid="3482913590601096763">"सिस्टम सेटिंग्ज सुधारित करा"</string>
<string name="permit_write_settings" msgid="658555006453212691">"सिस्टम सेटिंग्ज सुधारण्याची अनुमती द्या"</string>
- <string name="write_settings_description" msgid="6868293938839954623">"ही परवानगी अॅपला सिस्टम सेटिंग्ज सुधारित करण्याची अनुमती देते."</string>
+ <string name="write_settings_description" msgid="6868293938839954623">"ही परवानगी ॲपला सिस्टम सेटिंग्ज सुधारित करण्याची अनुमती देते."</string>
<string name="write_settings_on" msgid="8230580416068832239">"होय"</string>
<string name="write_settings_off" msgid="5156104383386336233">"नाही"</string>
<string name="external_source_switch_title" msgid="3621381992793251070">"या स्त्रोतातून अनुमती द्या"</string>
@@ -3860,7 +3860,7 @@
<string name="screen_zoom_title" msgid="5233515303733473927">"डिस्प्ले आकार"</string>
<string name="screen_zoom_short_summary" msgid="7291960817349834688">"स्क्रीनवरील आयटम आणखी लहान-मोठे करा"</string>
<string name="screen_zoom_keywords" msgid="9176477565403352552">"डिस्प्ले घनता, स्क्रीन झूम, मापन, मापन करत आहे"</string>
- <string name="screen_zoom_summary" msgid="6445488991799015407">"तुमच्या स्क्रीनवरील आयटम आणखी लहानमोठे करा. त्याने तुमच्या स्क्रीनवरील काही अॅप्सची जागा बदलू शकते."</string>
+ <string name="screen_zoom_summary" msgid="6445488991799015407">"तुमच्या स्क्रीनवरील आयटम आणखी लहानमोठे करा. त्याने तुमच्या स्क्रीनवरील काही ॲप्सची जागा बदलू शकते."</string>
<string name="screen_zoom_preview_title" msgid="4680671508172336572">"पूर्वावलोकन"</string>
<string name="screen_zoom_make_smaller_desc" msgid="4622359904253364742">"आणखी लहान करा"</string>
<string name="screen_zoom_make_larger_desc" msgid="2236171043607896594">"आणखी मोठे करा"</string>
@@ -3882,7 +3882,7 @@
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> अॅप्ससाठी बंद</item>
<item quantity="one">1 अॅपसाठी बंद</item>
</plurals>
- <string name="notification_summary_none" msgid="4586376436702610">"सर्व अॅप्ससाठी चालू"</string>
+ <string name="notification_summary_none" msgid="4586376436702610">"सर्व ॲप्ससाठी चालू"</string>
<string name="apps_summary" msgid="193158055537070092">"<xliff:g id="COUNT">%1$d</xliff:g> अॅप्स इंस्टॉल केले"</string>
<string name="apps_summary_example" msgid="2118896966712746139">"24 अॅप्स इंस्टॉल केली"</string>
<string name="storage_summary" msgid="3801281635351732202">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> वापरले - <xliff:g id="FREE_SPACE">%2$s</xliff:g> मोकळे"</string>
@@ -3891,7 +3891,7 @@
<string name="display_dashboard_summary" msgid="4145888780290131488">"वॉलपेपर, निष्क्रिय करा, फॉंट आकार"</string>
<string name="display_dashboard_summary_with_style" msgid="870920274423314524">"शैली, वॉलपेपर, स्क्रीन टाइमआउट, फॉंटचा आकार"</string>
<string name="display_dashboard_nowallpaper_summary" msgid="7840559323355210111">"झोप, फाँटचा आकार"</string>
- <string name="display_summary_example" msgid="9102633726811090523">"10 मिनिटे काहीच अॅक्टिव्हिटी नसेल तर निष्क्रिय करा"</string>
+ <string name="display_summary_example" msgid="9102633726811090523">"10 मिनिटे काहीच ॲक्टिव्हिटी नसेल तर निष्क्रिय करा"</string>
<string name="memory_summary" msgid="8080825904671961872">"<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> पैकी सरासरी <xliff:g id="USED_MEMORY">%1$s</xliff:g> मेमरी वापरली"</string>
<string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> म्हणून साइन इन केले"</string>
<string name="payment_summary" msgid="3472482669588561110">"<xliff:g id="APP_NAME">%1$s</xliff:g> डीफॉल्ट आहे"</string>
@@ -3907,9 +3907,9 @@
<string name="disabled_by_policy_title_suspend_packages" msgid="7872038990805477554">"हे अॅप उघडू शकत नाही"</string>
<string name="default_admin_support_msg" msgid="4489678214035485367">"तुम्हाला कोणतेही प्रश्न असल्यास, तुमच्या आयटी प्रशासकाशी संपर्क साधा"</string>
<string name="admin_support_more_info" msgid="8901377038510512654">"अधिक तपशील"</string>
- <string name="admin_profile_owner_message" msgid="5860816886981109626">"तुमचा प्रशासक सेटिंग्ज, परवानग्या, कॉर्पोरेट अॅक्सेस, नेटवर्क अॅक्टिव्हिटी आणि डीव्हाइसची स्थान माहिती यांसह तुमच्या कार्य प्रोफाइलशी संबधित अॅप्सचे आणि डेटाचे परीक्षण व व्यवस्थापन करू शकतो."</string>
- <string name="admin_profile_owner_user_message" msgid="3842630535450382172">"तुमचा प्रशासक सेटिंग्ज, परवानग्या, कॉर्पोरेट अॅक्सेस, नेटवर्क अॅक्टिव्हिटी आणि डीव्हाइसची स्थान माहिती यांसह तुमच्या कार्य प्रोफाइलशी संबधित अॅप्सचे आणि डेटाचे परीक्षण व व्यवस्थापन करू शकतो."</string>
- <string name="admin_device_owner_message" msgid="6232893638259790789">"तुमच्या प्रशासकाकडे तुमच्या नेटवर्क अॅक्टिव्हिटी तसेच या डीव्हाइसशी संबधित सेटिंग्ज, कॉर्पोरेट अॅक्सेस, परवानग्या यांसह अॅप्स आणि डेटा यांचे परीक्षण आणि व्यवस्थापन करण्याची क्षमता आहे."</string>
+ <string name="admin_profile_owner_message" msgid="5860816886981109626">"तुमचा प्रशासक सेटिंग्ज, परवानग्या, कॉर्पोरेट अॅक्सेस, नेटवर्क ॲक्टिव्हिटी आणि डीव्हाइसची स्थान माहिती यांसह तुमच्या कार्य प्रोफाइलशी संबधित ॲप्सचे आणि डेटाचे परीक्षण व व्यवस्थापन करू शकतो."</string>
+ <string name="admin_profile_owner_user_message" msgid="3842630535450382172">"तुमचा प्रशासक सेटिंग्ज, परवानग्या, कॉर्पोरेट अॅक्सेस, नेटवर्क ॲक्टिव्हिटी आणि डीव्हाइसची स्थान माहिती यांसह तुमच्या कार्य प्रोफाइलशी संबधित ॲप्सचे आणि डेटाचे परीक्षण व व्यवस्थापन करू शकतो."</string>
+ <string name="admin_device_owner_message" msgid="6232893638259790789">"तुमच्या प्रशासकाकडे तुमच्या नेटवर्क ॲक्टिव्हिटी तसेच या डीव्हाइसशी संबधित सेटिंग्ज, कॉर्पोरेट अॅक्सेस, परवानग्या यांसह अॅप्स आणि डेटा यांचे परीक्षण आणि व्यवस्थापन करण्याची क्षमता आहे."</string>
<string name="condition_turn_off" msgid="1960945836880080298">"बंद करा"</string>
<string name="condition_turn_on" msgid="9089876276117874591">"चालू करा"</string>
<string name="condition_expand_show" msgid="608202020023489939">"दर्शवा"</string>
@@ -4089,7 +4089,7 @@
<string name="page_tab_title_summary" msgid="4070309266374993258">"सर्व"</string>
<string name="page_tab_title_support" msgid="4407600495101788249">"टिपा आणि सपोर्ट"</string>
<string name="developer_smallest_width" msgid="7516950434587313360">"सर्वात लहान रुंदी"</string>
- <string name="premium_sms_none" msgid="8268105565738040566">"इंस्टॉल केलेल्या कोणत्याही अॅप्सनी प्रीमियम SMS प्रवेशाची विनंती केली नाही"</string>
+ <string name="premium_sms_none" msgid="8268105565738040566">"इंस्टॉल केलेल्या कोणत्याही ॲप्सनी प्रीमियम SMS प्रवेशाची विनंती केली नाही"</string>
<string name="premium_sms_warning" msgid="9086859595338944882">"प्रीमियम SMS मुळे तुम्हाला कदाचित शुल्क द्यावे लागू शकेल आणि आपल्या कॅरियर बिलिंग मध्ये जोडले जाईल. तुम्ही अॅपसाठी परवानगी सक्षम केल्यास, तो अॅप वापरून तुम्ही प्रीमियम SMS पाठविण्यात सक्षम असाल."</string>
<string name="premium_sms_access" msgid="4660047004791638305">"प्रीमियम SMS प्रवेश"</string>
<string name="bluetooth_disabled" msgid="6244000672828617410">"बंद"</string>
@@ -4146,12 +4146,12 @@
<string name="swipe_up_to_switch_apps_suggestion_title" msgid="1465200107913259595">"नवीन होम बटण वापरून पाहा"</string>
<string name="swipe_up_to_switch_apps_suggestion_summary" msgid="4825314186907812743">"अॅप्स स्विच करण्यासाठी नवीन जेश्चर सुरू करा"</string>
<string name="edge_to_edge_navigation_title" msgid="4889073348091667667">"जेश्चर नेव्हिगेशन"</string>
- <string name="edge_to_edge_navigation_summary" msgid="511639046551586471">"होमवर जाण्यासाठी स्क्रीनच्या तळापासून वर स्वाइप करा. अॅप स्विच करण्यासाठी, तळापासून वर स्वाइप करून धरून ठेवा, त्यानंतर सोडा. मागे जाण्यासाठी डाव्या किंवा उजव्या कडेकडून स्वाइप करा."</string>
+ <string name="edge_to_edge_navigation_summary" msgid="511639046551586471">"होमवर जाण्यासाठी स्क्रीनच्या तळापासून वर स्वाइप करा. ॲप स्विच करण्यासाठी, तळापासून वर स्वाइप करून धरून ठेवा, त्यानंतर सोडा. मागे जाण्यासाठी डाव्या किंवा उजव्या कडेकडून स्वाइप करा."</string>
<string name="legacy_navigation_title" msgid="2635061924638361565">"तीन बटण नेव्हिगेशन"</string>
<string name="legacy_navigation_summary" msgid="5631274479304544610">"तुमच्या स्क्रीनच्या तळाशी असलेल्या बटणांसह मागे जा, होम वर जा आणि अॅप्स स्विच करा."</string>
<string name="keywords_system_navigation" msgid="5825645072714635357">"सिस्टम नेव्हिगेशन, दोन बटण नेव्हिगेशन, तीन बटण नेव्हिगेशन, जेश्चर नेव्हिगेशन"</string>
- <string name="gesture_not_supported_dialog_message" msgid="4315436164949864999">"तुमच्या डीफॉल्ट होम अॅप <xliff:g id="DEFAULT_HOME_APP">%s</xliff:g> द्वारे सपोर्ट केला जात नाही"</string>
- <string name="gesture_not_supported_positive_button" msgid="8233003373902032396">"डीफॉल्ट होम अॅप स्विच करा"</string>
+ <string name="gesture_not_supported_dialog_message" msgid="4315436164949864999">"तुमच्या डीफॉल्ट होम ॲप <xliff:g id="DEFAULT_HOME_APP">%s</xliff:g> द्वारे सपोर्ट केला जात नाही"</string>
+ <string name="gesture_not_supported_positive_button" msgid="8233003373902032396">"डीफॉल्ट होम ॲप स्विच करा"</string>
<string name="information_label" msgid="8133109685432913360">"माहिती"</string>
<string name="low_label" msgid="1679136861385616813">"कमी"</string>
<string name="high_label" msgid="7278863493316447831">"उच्च"</string>
@@ -4220,7 +4220,7 @@
<string name="enterprise_privacy_apps_count_estimation_info" msgid="7433213592572082606">"अॅपची संख्या अंदाजित आहे. त्यामध्ये कदाचित Play स्टोअर च्या बाहेर इंस्टॉल केलेली अॅप्स समाविष्ट नसतील."</string>
<plurals name="enterprise_privacy_number_packages_lower_bound" formatted="false" msgid="3005116533873542976">
<item quantity="other">किमान <xliff:g id="COUNT_1">%d</xliff:g> अॅप्स</item>
- <item quantity="one">किमान <xliff:g id="COUNT_0">%d</xliff:g> अॅप</item>
+ <item quantity="one">किमान <xliff:g id="COUNT_0">%d</xliff:g> ॲप</item>
</plurals>
<string name="enterprise_privacy_location_access" msgid="4158197200885270634">"स्थान परवानग्या"</string>
<string name="enterprise_privacy_microphone_access" msgid="5717375623568864441">"मायक्रोफोन परवानग्या"</string>
@@ -4257,18 +4257,18 @@
<string name="learn_more" msgid="2623878455042103404">"अधिक जाणून घ्या"</string>
<plurals name="default_camera_app_title" formatted="false" msgid="1134677050353971363">
<item quantity="other">कॅमेरा अॅप्स</item>
- <item quantity="one">कॅमेरा अॅप</item>
+ <item quantity="one">कॅमेरा ॲप</item>
</plurals>
<string name="default_calendar_app_title" msgid="3545972964391065220">"कॅलेंडर अॅप"</string>
<string name="default_contacts_app_title" msgid="3497370557378660098">"संपर्क अॅप"</string>
<plurals name="default_email_app_title" formatted="false" msgid="42826975161049245">
<item quantity="other">ईमेल क्लायंट अॅप्स</item>
- <item quantity="one">ईमेल क्लायंट अॅप</item>
+ <item quantity="one">ईमेल क्लायंट ॲप</item>
</plurals>
<string name="default_map_app_title" msgid="7560143381633608567">"नकाशा अॅप"</string>
<plurals name="default_phone_app_title" formatted="false" msgid="6714041230953195024">
<item quantity="other">फोन अॅप्स</item>
- <item quantity="one">फोन अॅप</item>
+ <item quantity="one">फोन ॲप</item>
</plurals>
<string name="app_names_concatenation_template_2" msgid="4309216198909946380">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g>, <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g>"</string>
<string name="app_names_concatenation_template_3" msgid="8949045544491604376">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g>, <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g>, <xliff:g id="THIRD_APP_NAME">%3$s</xliff:g>"</string>
@@ -4290,7 +4290,7 @@
<string name="webview_disabled_for_user" msgid="1216426047631256825">"(<xliff:g id="USER">%s</xliff:g> वापरकर्त्यासाठी अक्षम केले)"</string>
<string name="autofill_app" msgid="7338387238377914374">"ऑटोफिल सेवा"</string>
<string name="autofill_keywords" msgid="7485591824120812710">"स्वयं, भरा, स्वयंभरण"</string>
- <string name="autofill_confirmation_message" msgid="2784869528908005194">"<b>तुमचा या अॅपवर विश्वास असल्याची खात्री करा</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> ऑटोफिल काय होऊ शकते हे ठरवण्यासाठी तुमच्या स्क्रीनवर काय आहे याचा वापर करते."</string>
+ <string name="autofill_confirmation_message" msgid="2784869528908005194">"<b>तुमचा या ॲपवर विश्वास असल्याची खात्री करा</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> ऑटोफिल काय होऊ शकते हे ठरवण्यासाठी तुमच्या स्क्रीनवर काय आहे याचा वापर करते."</string>
<string name="debug_autofill_category" msgid="8050326960545979035">"ऑटोफिल"</string>
<string name="autofill_logging_level_title" msgid="899483289251346778">"लॉगिंग पातळी"</string>
<string name="autofill_max_partitions" msgid="7590272120101271461">"प्रति सेशन कमाल विनंत्या"</string>
@@ -4319,8 +4319,8 @@
<string name="show_first_crash_dialog" msgid="8889957119867262599">"नेहमी क्रॅश डायलॉग दाखवा"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"अॅप क्रॅश झाल्यावर प्रत्येक वेळी डायलॉग दाखवा"</string>
<string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE सुरू केलेले अॅप निवडा"</string>
- <string name="angle_enabled_app_not_set" msgid="864740024581634768">"कोणतेही ANGLE सुरू केलेले अॅप्लिकेशन सेट करा"</string>
- <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE सुरू केलेले अॅप्लिकेशन: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"कोणतेही ANGLE सुरू केलेले ॲप्लिकेशन सेट करा"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE सुरू केलेले ॲप्लिकेशन: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="game_driver_dashboard_title" msgid="8804074441354504919">"गेम ड्रायव्हर प्राधान्ये"</string>
<string name="game_driver_dashboard_summary" msgid="2392113100578771289">"गेम ड्रायव्हर सेटिंग्जमध्ये सुधारणा करा"</string>
<string name="game_driver_footer_text" msgid="3202576403048267763">"गेम ड्रायव्हर सुरू केल्यावर, तुम्ही डिव्हाइसवर इंस्टॉल केलेल्या अॅप्ससाठी अपडेट केलेले ग्राफिक्स वापरण्याचे निवडू शकता."</string>
@@ -4344,8 +4344,8 @@
<string name="my_device_info_account_preference_title" msgid="342933638925781861">"खाते"</string>
<string name="my_device_info_device_name_preference_title" msgid="7104085224684165324">"डिव्हाइसचे नाव"</string>
<string name="change_wifi_state_title" msgid="3261945855372885427">"वाय-फाय नियंत्रण"</string>
- <string name="change_wifi_state_app_detail_switch" msgid="7942268646980694224">"अॅपला वाय-फाय नियंत्रित करू द्या"</string>
- <string name="change_wifi_state_app_detail_summary" msgid="8434262633905502679">"या अॅपला वाय-फाय चालू किंवा बंद करू द्या, वाय-फाय नेटवर्क स्कॅन करू द्या आणि त्याच्याशी कनेक्ट करू द्या, नेटवर्क जोडू किंवा काढू द्या किंवा केवळ-स्थानिक हॉटस्पॉट सुरू करू द्या"</string>
+ <string name="change_wifi_state_app_detail_switch" msgid="7942268646980694224">"ॲपला वाय-फाय नियंत्रित करू द्या"</string>
+ <string name="change_wifi_state_app_detail_summary" msgid="8434262633905502679">"या ॲपला वाय-फाय चालू किंवा बंद करू द्या, वाय-फाय नेटवर्क स्कॅन करू द्या आणि त्याच्याशी कनेक्ट करू द्या, नेटवर्क जोडू किंवा काढू द्या किंवा केवळ-स्थानिक हॉटस्पॉट सुरू करू द्या"</string>
<string name="media_output_title" msgid="115223550977351699">"मीडिया प्ले करा"</string>
<string name="media_output_default_summary" msgid="8115153381240348279">"हे डिव्हाइस"</string>
<string name="media_output_summary" product="default" msgid="6839458453831567167">"फोन"</string>
@@ -4369,7 +4369,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4472465110708640980">"सुरू (म्यूट)"</string>
<string name="prevent_ringing_option_none_summary" msgid="5013718946609276137">"बंद"</string>
<string name="pref_title_network_details" msgid="7186418845727358964">"नेटवर्क तपशील"</string>
- <string name="about_phone_device_name_warning" msgid="8885670415541365348">"तुमचे डिव्हाइस नाव तुमच्या फोनवरील अॅप्सना दृश्यमान आहे. तुम्ही ब्लूटूथ डिव्हाइसशी जोडता किंवा वाय-फाय हॉटस्पॉट सेट करता, तेव्हा हे इतर लोकांद्वारे देखील बघितले जाऊ शकते."</string>
+ <string name="about_phone_device_name_warning" msgid="8885670415541365348">"तुमचे डिव्हाइस नाव तुमच्या फोनवरील ॲप्सना दृश्यमान आहे. तुम्ही ब्लूटूथ डिव्हाइसशी जोडता किंवा वाय-फाय हॉटस्पॉट सेट करता, तेव्हा हे इतर लोकांद्वारे देखील बघितले जाऊ शकते."</string>
<string name="devices_title" msgid="7701726109334110391">"डिव्हाइस"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"सर्व सेटिंग्ज"</string>
<string name="homepage_personal_settings" msgid="1570415428680432319">"सूचना"</string>
@@ -4460,12 +4460,12 @@
<string name="mobile_network_inactive_esim" msgid="7653631389686307842">"अॅक्टिव्ह नसलेले / डाउनलोड केलेले सिम"</string>
<string name="mobile_network_sim_name" msgid="6026120971523242277">"सिम नाव आणि रंग"</string>
<string name="mobile_network_sim_name_label" msgid="281403463781467324">"नाव"</string>
- <string name="mobile_network_sim_color_label" msgid="3662112943353180621">"रंग (कंपॅटिबल अॅप्सद्वारे वापरलेले)"</string>
+ <string name="mobile_network_sim_color_label" msgid="3662112943353180621">"रंग (कंपॅटिबल ॲप्सद्वारे वापरलेले)"</string>
<string name="mobile_network_sim_name_rename" msgid="3082357234342116252">"सेव्ह करा"</string>
<string name="mobile_network_use_sim_on" msgid="8035448244261570189">"सिम वापरा"</string>
<string name="mobile_network_use_sim_off" msgid="889073420068380943">"बंद आहे"</string>
<string name="mobile_network_disable_sim_explanation" msgid="1515981880164339357">"हे सिम बंद करण्यासाठी, सिम कार्ड काढा"</string>
- <string name="mobile_network_tap_to_activate" msgid="4573431375941175566">"<xliff:g id="CARRIER">%1$s</xliff:g> अॅक्टिव्हेट करण्यासाठी टॅप करा"</string>
+ <string name="mobile_network_tap_to_activate" msgid="4573431375941175566">"<xliff:g id="CARRIER">%1$s</xliff:g> ॲक्टिव्हेट करण्यासाठी टॅप करा"</string>
<string name="mobile_network_esim_swap_confirm_title" msgid="6546784593612512953">"<xliff:g id="CARRIER">%1$s</xliff:g> वर स्विच करायचे?"</string>
<string name="mobile_network_esim_swap_confirm_body" msgid="1621021150667547211">"एका वेळी फक्त एकच डाउनलोड केलेले सिम अॅक्टिव्ह असू शकते.\n\n<xliff:g id="CARRIER1">%1$s</xliff:g> वर स्विच केल्याने तुमच्या <xliff:g id="CARRIER2">%2$s</xliff:g> सेवा रद्द होणार नाहीत."</string>
<string name="mobile_network_esim_swap_confirm_ok" msgid="8025086398614992834">"<xliff:g id="CARRIER">%1$s</xliff:g> वर स्विच करा"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 060f3b2..1684f5d 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -4315,8 +4315,8 @@
<string name="disabled_feature_reason_slow_down_phone" msgid="3557117039415422481">"Denne funksjonen er slått av fordi den gjør telefonen din tregere"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Tving fullstendige GNSS-målinger"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Spor alle GNSS-konstellasjoner og -frekvenser uten syklus for oppgaver"</string>
- <string name="show_first_crash_dialog" msgid="8889957119867262599">"Vis alltid kræsjdialogboksen"</string>
- <string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Vis dialogboksen hver gang en app kræsjer"</string>
+ <string name="show_first_crash_dialog" msgid="8889957119867262599">"Vis alltid krasjdialogboksen"</string>
+ <string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Vis dialogboksen hver gang en app krasjer"</string>
<string name="angle_enabled_app" msgid="1841862539745838255">"Velg en ANGLE-aktivert app"</string>
<string name="angle_enabled_app_not_set" msgid="864740024581634768">"Du har ikke angitt noen ANGLE-aktivert app"</string>
<string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE-aktivert app: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index db5d61b..28db15c 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -1217,7 +1217,7 @@
<string name="screensaver_settings_summary_dock" msgid="2072657401664633283">"डक भएको बेला"</string>
<string name="screensaver_settings_summary_never" msgid="5165622985174349585">"कहिल्यै पनि होइन"</string>
<string name="screensaver_settings_summary_off" msgid="2481581696365146473">"बन्द"</string>
- <string name="screensaver_settings_disabled_prompt" msgid="1239088321034437608">"फोन डकमा र/वा शयन अवस्थामा हुँदा हुने कुरालाई नियन्त्रण गर्न स्क्रिन सेभरलार्इ सक्रिय गर्नुहोस्।"</string>
+ <string name="screensaver_settings_disabled_prompt" msgid="1239088321034437608">"फोन डकमा र/वा शयन अवस्थामा हुँदा हुने कुरालाई नियन्त्रण गर्न स्क्रिन सेभरलाई सक्रिय गर्नुहोस्।"</string>
<string name="screensaver_settings_when_to_dream" msgid="7262410541382890146">"सुरु हुने समय"</string>
<string name="screensaver_settings_current" msgid="4663846038247130023">"हालको स्क्रिन सेभर"</string>
<string name="screensaver_settings_dream_start" msgid="4998187847985120168">"अब सुरु गर्नुहोस्"</string>
@@ -1266,10 +1266,10 @@
<string name="sim_change_data_ok" msgid="7929746101841679535">"<xliff:g id="CARRIER">%1$s</xliff:g> प्रयोग गर्नुहोस्"</string>
<string name="sim_preferred_title" msgid="5567909634636045268">"प्रमुख SIM कार्ड अपडेट गर्ने?"</string>
<string name="sim_preferred_message" msgid="8466930554330635780">"तपाईंको यन्त्रमा <xliff:g id="NEW_SIM">%1$s</xliff:g> SIM मात्र छ। तपाईं मोबाइल डेटा, कल र SMS सन्देशहरूका लागि यो SIM प्रयोग गर्न चाहनुहुन्छ?"</string>
- <string name="wrong_pin_code_pukked" msgid="4003655226832658066">"SIM PIN कोड गलत छ तपाईंले अाफ्नो उपकरण खोल्नलाई तपाईंको वाहकसँग सम्पर्क गर्नै पर्दर्छ।"</string>
+ <string name="wrong_pin_code_pukked" msgid="4003655226832658066">"SIM PIN कोड गलत छ तपाईंले आफ्नो उपकरण खोल्नलाई तपाईंको वाहकसँग सम्पर्क गर्नै पर्दर्छ।"</string>
<plurals name="wrong_pin_code" formatted="false" msgid="1582398808893048097">
<item quantity="other"> गलत SIM PIN कोड, तपाईं सँग <xliff:g id="NUMBER_1">%d</xliff:g> पटक प्रयास बाँकी छ।</item>
- <item quantity="one">SIM PIN कोड गलत छ, तपाईंले अाफ्नो यन्त्र खोल्नलाई तपाईंको वाहकसँग सम्पर्क गर्नै पर्न अघि तपाईंसँग <xliff:g id="NUMBER_0">%d</xliff:g> पटक प्रयास बाँकी छ।</item>
+ <item quantity="one">SIM PIN कोड गलत छ, तपाईंले आफ्नो यन्त्र खोल्नलाई तपाईंको वाहकसँग सम्पर्क गर्नै पर्न अघि तपाईंसँग <xliff:g id="NUMBER_0">%d</xliff:g> पटक प्रयास बाँकी छ।</item>
</plurals>
<string name="pin_failed" msgid="1848423634948587645">"SIM PIN कार्य बिफल भयो!"</string>
<string name="system_update_settings_list_item_title" msgid="3342887311059985961">"प्रणाली अद्यावधिकहरू"</string>
@@ -3638,7 +3638,7 @@
<string name="notifications_silenced" msgid="4728603513072110381">"मौन पारिएको छ"</string>
<string name="notifications_redacted" msgid="4493588975742803160">"लक स्क्रिनमा संवेदनशील सामग्री देखाउने होइन"</string>
<string name="notifications_hidden" msgid="3619610536038757468">"लक स्क्रिनमा होइन"</string>
- <string name="notifications_priority" msgid="1066342037602085552">"बाधा नपुर्याउनुहोस् लाई अोभरराइड गरियो"</string>
+ <string name="notifications_priority" msgid="1066342037602085552">"बाधा नपुर्याउनुहोस् लाई ओभरराइड गरियो"</string>
<string name="notifications_summary_divider" msgid="9013807608804041387">" / "</string>
<string name="notification_summary_level" msgid="2726571692704140826">"स्तर %d"</string>
<string name="notification_summary_channel" msgid="5831124672372023524">"<xliff:g id="CHANNEL_NAME">%1$s</xliff:g> • <xliff:g id="GROUP_NAME">%2$s</xliff:g>"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 58950df..61ca63e 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -1763,7 +1763,7 @@
<string name="install_applications_title" msgid="4987712352256508946">"எல்லா ஆப்ஸ் ஆதாரங்களையும் அனுமதி"</string>
<string name="recent_app_category_title" msgid="6673071268966003928">"சமீபத்தில் திறந்தவை"</string>
<string name="see_all_apps_title" msgid="1317153498074308438">"<xliff:g id="COUNT">%1$d</xliff:g> ஆப்ஸையும் காட்டு"</string>
- <string name="install_all_warning" product="tablet" msgid="8310489909586138165">"அறியப்படாத பயன்பாடுகளால் உங்கள் டேப்லெட்டும் தனிப்பட்ட தரவும் அதிகம் பாதிப்பிற்கு உள்ளாகும். இந்த மூலத்திலிருந்து ஆப்ஸை நிறுவுவதால், அவற்றைப் பயன்படுத்தும் போது உங்கள் டேப்லெட்டுக்கு ஏதேனும் சேதம் ஏற்பட்டாலோ அல்லது தரவை இழந்தாலோ, அதற்கு நீங்கள்தான் பொறுப்பாவீர்கள் என்பதை ஏற்கிறீர்கள்."</string>
+ <string name="install_all_warning" product="tablet" msgid="8310489909586138165">"அறியப்படாத ஆப்ஸால் உங்கள் டேப்லெட்டும் தனிப்பட்ட தரவும் அதிகம் பாதிப்பிற்கு உள்ளாகும். இந்த மூலத்திலிருந்து ஆப்ஸை நிறுவுவதால், அவற்றைப் பயன்படுத்தும் போது உங்கள் டேப்லெட்டுக்கு ஏதேனும் சேதம் ஏற்பட்டாலோ அல்லது தரவை இழந்தாலோ, அதற்கு நீங்கள்தான் பொறுப்பாவீர்கள் என்பதை ஏற்கிறீர்கள்."</string>
<string name="install_all_warning" product="default" msgid="1952257127370115988">"அறியப்படாத பயன்பாடுககளால் உங்கள் மொபைலும் தனிப்பட்ட தரவும் அதிகம் பாதிப்பிற்கு உள்ளாகும். இந்த மூலத்திலிருந்து ஆப்ஸை நிறுவுவதால், அவற்றைப் பயன்படுத்தும் போது உங்கள் மொபைலுக்கு ஏதேனும் சேதம் ஏற்பட்டாலோ அல்லது தரவை இழந்தாலோ, அதற்கு நீங்கள்தான் பொறுப்பாவீர்கள் என்பதை ஏற்கிறீர்கள்."</string>
<string name="install_all_warning" product="device" msgid="3648003301476423145">"அறியப்படாத ஆப்ஸால் உங்கள் சாதனம் மற்றும் தனிப்பட்ட தரவு மிக எளிதாகப் பாதிப்புக்குள்ளாகும். இந்த மூலத்திலிருந்து ஆப்ஸை நிறுவி, பயன்படுத்தும்போது, உங்கள் சாதனத்திற்கு ஏதேனும் சேதம் ஏற்பட்டாலோ தரவை இழந்தாலோ, அதற்கு நீங்கள்தான் பொறுப்பாவீர்கள் என்பதை ஏற்கிறீர்கள்."</string>
<string name="advanced_settings" msgid="1777249286757067969">"மேம்பட்ட அமைப்பு"</string>
@@ -2598,7 +2598,7 @@
<string name="work_mode_off_summary" msgid="2657138190560082508">"ஆப்ஸ் மற்றும் அறிவிப்புகள் ஆஃப் செய்யப்பட்டுள்ளன"</string>
<string name="remove_managed_profile_label" msgid="3856519337797285325">"பணிக் கணக்கை அகற்று"</string>
<string name="background_data" msgid="5779592891375473817">"பின்புல டேட்டா உபயோகம்"</string>
- <string name="background_data_summary" msgid="8328521479872763452">"பயன்பாடுகளால் எந்நேரத்திலும் தரவை ஒத்திசைக்கவும், அனுப்பவும் பெறவும் முடியும்"</string>
+ <string name="background_data_summary" msgid="8328521479872763452">"ஆப்ஸால் எந்நேரத்திலும் தரவை ஒத்திசைக்கவும், அனுப்பவும் பெறவும் முடியும்"</string>
<string name="background_data_dialog_title" msgid="6059217698124786537">"பின்புல டேட்டா உபயோகத்தை முடக்கவா?"</string>
<string name="background_data_dialog_message" msgid="6981661606680941633">"பின்புல டேட்டா உபயோகத்தை முடக்குவது பேட்டரியின் ஆயுளை நீட்டிக்கிறது மற்றும் தரவு பயன்பாட்டைக் குறைக்கிறது. சில ஆப்ஸ் தொடர்ந்து பின்புல டேட்டா உபயோகம் இணைப்பைப் பயன்படுத்தலாம்."</string>
<string name="sync_automatically" msgid="1682730255435062059">"ஆப்ஸின் டேட்டாவைத் தானாக ஒத்திசை"</string>
@@ -3390,7 +3390,7 @@
<string name="notifications_sent_never" msgid="1001964786456700536">"ஒருபோதும் அனுப்பியதில்லை"</string>
<string name="manage_notification_access_title" msgid="7510080164564944891">"அறிவிப்பு அணுகல்"</string>
<string name="work_profile_notification_access_blocked_summary" msgid="8748026238701253040">"பணிக் கணக்கு அறிவிப்புகளுக்கான அணுகல் தடுக்கப்பட்டுள்ளது"</string>
- <string name="manage_notification_access_summary_zero" msgid="2409912785614953348">"பயன்பாடுகளால் அறிவிப்புகளைப் படிக்க முடியாது"</string>
+ <string name="manage_notification_access_summary_zero" msgid="2409912785614953348">"ஆப்ஸால் அறிவிப்புகளைப் படிக்க முடியாது"</string>
<plurals name="manage_notification_access_summary_nonzero" formatted="false" msgid="7930130030691218387">
<item quantity="other">%d ஆப்ஸ்கள் அறிவிப்புகளைப் படிக்கலாம்</item>
<item quantity="one">%d ஆப்ஸ் அறிவிப்புகளைப் படிக்கலாம்</item>
@@ -3401,7 +3401,7 @@
<string name="notification_assistant_security_warning_title" msgid="300600401595343861">"<xliff:g id="SERVICE">%1$s</xliff:g> சேவைக்கான அறிவிப்பு அணுகலை அனுமதிக்கவா?"</string>
<string name="notification_assistant_security_warning_summary" msgid="5829972610310154776">"தொடர்புகளின் பெயர்கள் மற்றும் உங்களுக்கான மெசேஜ்களில் இருக்கும் உரைகள் போன்ற தனிப்பட்ட தகவல்கள் அடங்கிய அனைத்து அறிவிப்புகளையும் <xliff:g id="NOTIFICATION_ASSISTANT_NAME">%1$s</xliff:g> சேவையால் படிக்க இயலும். அறிவிப்புகளை மாற்றியமைக்கவோ நிராகரிக்கவோ அவற்றிலுள்ள செயல் பட்டன்களைத் தூண்டவோ இதனால் இயலும். \n\n’தொந்தரவு செய்ய வேண்டாம்’ அம்சத்தை ஆன் அல்லது ஆஃப் செய்வதற்கு ஆப்ஸை அனுமதிப்பதோடு அது தொடர்பான அமைப்புகளை மாற்றவும் இதனால் இயலும்."</string>
<string name="notification_listener_security_warning_title" msgid="5522924135145843279">"<xliff:g id="SERVICE">%1$s</xliff:g>க்கான அறிவிப்பு அணுகலை அனுமதிக்கவா?"</string>
- <string name="notification_listener_security_warning_summary" msgid="119203147791040151">"தொடர்புப் பெயர்கள், நீங்கள் பெறும் செய்திகள் போன்ற தனிப்பட்ட தகவல் உட்பட எல்லா அறிவிப்புகளையும் <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> ஆல் படிக்க முடியும். இந்தப் பயன்பாட்டினால் அறிவிப்புகளை நிராகரிக்கவோ அல்லது அறிவிப்புகளில் உள்ள செயல் பொத்தான்களைத் தூண்டவோ முடியும். \n\nஇது தொந்தரவு செய்ய வேண்டாம் எனும் விருப்பத்தை இயக்க அல்லது முடக்குவதற்கான அனுமதியையும், தொடர்புடையை அமைப்புகளை மாற்றுவதற்கான அனுமதியையும் பயன்பாட்டிற்கு அளிக்கும்."</string>
+ <string name="notification_listener_security_warning_summary" msgid="119203147791040151">"தொடர்புப் பெயர்கள், நீங்கள் பெறும் செய்திகள் போன்ற தனிப்பட்ட தகவல் உட்பட எல்லா அறிவிப்புகளையும் <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> ஆல் படிக்க முடியும். இந்த ஆப்ஸால் அறிவிப்புகளை நிராகரிக்கவோ அல்லது அறிவிப்புகளில் உள்ள செயல் பொத்தான்களைத் தூண்டவோ முடியும். \n\nஇது தொந்தரவு செய்ய வேண்டாம் எனும் விருப்பத்தை இயக்க அல்லது முடக்குவதற்கான அனுமதியையும், தொடர்புடையை அமைப்புகளை மாற்றுவதற்கான அனுமதியையும் பயன்பாட்டிற்கு அளிக்கும்."</string>
<string name="notification_listener_disable_warning_summary" msgid="6738915379642948000">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g>க்கு அறிவிப்பு அணுகலை முடக்கினால், \'தொந்தரவு செய்யாதே\' அணுகலும் முடக்கப்படலாம்."</string>
<string name="notification_listener_disable_warning_confirm" msgid="8333442186428083057">"முடக்கு"</string>
<string name="notification_listener_disable_warning_cancel" msgid="8586417377104211584">"ரத்துசெய்"</string>
@@ -3815,7 +3815,7 @@
<string name="memory_maximum_usage" msgid="6513785462055278341">"அதிகபட்ச உபயோகம்"</string>
<string name="no_data_usage" msgid="9131454024293628063">"டேட்டா எதுவும் பயன்படுத்தப்படவில்லை"</string>
<string name="zen_access_warning_dialog_title" msgid="1198189958031157142">"<xliff:g id="APP">%1$s</xliff:g>க்கான தொந்தரவு செய்ய வேண்டாம் அணுகலை அனுமதிக்கவா?"</string>
- <string name="zen_access_warning_dialog_summary" msgid="4015885767653010873">"பயன்பாட்டினால் தொந்தரவு செய்ய வேண்டாம் என்பதை இயக்க/முடக்க முடிவதுடன், தொடர்புடைய அமைப்புகளை மாற்றவும் முடியும்."</string>
+ <string name="zen_access_warning_dialog_summary" msgid="4015885767653010873">"ஆப்ஸால் தொந்தரவு செய்ய வேண்டாம் என்பதை இயக்க/முடக்க முடிவதுடன், தொடர்புடைய அமைப்புகளை மாற்றவும் முடியும்."</string>
<string name="zen_access_disabled_package_warning" msgid="302820100078584431">"அறிவிப்பு அணுகல் இயக்கப்பட்டிருப்பதால், இயக்கத்தில் இருப்பது அவசியம்"</string>
<string name="zen_access_revoke_warning_dialog_title" msgid="558779234015793950">"<xliff:g id="APP">%1$s</xliff:g>க்கான தொந்தரவு செய்ய வேண்டாம் அணுகலை ரத்துசெய்யவா?"</string>
<string name="zen_access_revoke_warning_dialog_summary" msgid="5518216907304930148">"இந்த ஆப்ஸ் உருவாக்கிய தொந்தரவு செய்ய வேண்டாம் விதிகள் அனைத்தும் அகற்றப்படும்."</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 7b1a192..9cb5463 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -1655,7 +1655,7 @@
<string name="mobile_no_provisioning_url" msgid="9053814051811634125">"Оператор <xliff:g id="OPERATOR">%1$s</xliff:g> не має веб-сайту про надання послуг"</string>
<string name="mobile_insert_sim_card" msgid="9052590985784056395">"Вставте SIM-карту та перезапустіть"</string>
<string name="mobile_connect_to_internet" msgid="1733894125065249639">"Під’єднайтеся до Інтернету"</string>
- <string name="location_category_recent_location_requests" msgid="1938721350424447421">"Останні запити геоданих"</string>
+ <string name="location_category_recent_location_requests" msgid="1938721350424447421">"Останні запити на геодані"</string>
<string name="location_recent_location_requests_see_all" msgid="9063541547120162593">"Показати всі"</string>
<string name="location_category_location_services" msgid="7437150886946685979">"Служби локації"</string>
<string name="location_title" msgid="1029961368397484576">"Моє місцезнах."</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 5560270..d2c2583 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -311,7 +311,7 @@
<string name="decryption_settings_summary" product="default" msgid="5671817824042639849">"Điện thoại không được mã hóa"</string>
<string name="encryption_and_credential_settings_summary" product="tablet" msgid="7200428573872395685">"Thiết bị được mã hóa"</string>
<string name="decryption_settings_summary" product="tablet" msgid="5794135636155570977">"Thiết bị không được mã hóa"</string>
- <string name="lockscreen_settings_title" msgid="1099738951060387656">"Hiển thị trên màn hình khóa"</string>
+ <string name="lockscreen_settings_title" msgid="1099738951060387656">"Màn hình khóa"</string>
<string name="lockscreen_settings_what_to_show_category" msgid="278055252361575926">"Nội dung hiển thị"</string>
<string name="security_settings_summary" msgid="967393342537986570">"Đặt Vị trí của tôi, mở khóa màn hình, khóa thẻ SIM, khóa bộ nhớ thông tin xác thực"</string>
<string name="cdma_security_settings_summary" msgid="6068799952798901542">"Đặt Vị trí của tôi, mở khóa màn hình, khóa bộ nhớ thông tin xác thực"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index b4fee0e..e27c6bb 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -3559,7 +3559,7 @@
<string name="zen_mode_when_every_night" msgid="3122486110091921009">"每天晚上"</string>
<string name="zen_mode_when_weeknights" msgid="8354070633893273783">"星期一至星期五晚"</string>
<string name="zen_mode_start_time" msgid="8102602297273744441">"開始時間"</string>
- <string name="zen_mode_end_time" msgid="8774327885892705505">"完結時間"</string>
+ <string name="zen_mode_end_time" msgid="8774327885892705505">"結束時間"</string>
<string name="zen_mode_end_time_next_day_summary_format" msgid="4201521691238728701">"翌日<xliff:g id="FORMATTED_TIME">%s</xliff:g>"</string>
<string name="zen_mode_summary_alarms_only_indefinite" msgid="2061973221027570123">"變更為永遠只允許鬧鐘"</string>
<plurals name="zen_mode_summary_alarms_only_by_minute" formatted="false" msgid="6122003583875424601">
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index f97da1f..242b690 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -158,9 +158,6 @@
<!-- CryptKeeper pattern size for tablet -->
<dimen name="crypt_keeper_pattern_size">354dip</dimen>
- <!-- Screen pinning textview paddings -->
- <dimen name="screen_pinning_textview_padding">40dp</dimen>
-
<!-- SIM Dialog Margin top -->
<dimen name="sim_dialog_margin_top">8dip</dimen>
<!-- SIM Dialog Margin bottom -->
@@ -329,10 +326,6 @@
<dimen name="reset_master_clear_margin_start">32dp</dimen>
<dimen name="reset_master_clear_margin_end">12dp</dimen>
- <!-- Padding for screen pinning -->
- <dimen name="screen_pinning_padding_start">64dp</dimen>
- <dimen name="screen_pinning_padding_end">64dp</dimen>
-
<!-- Padding for the reset screens -->
<dimen name="reset_checkbox_padding_end">8dp</dimen>
<dimen name="reset_checkbox_title_padding_top">12dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3af7142..758c054 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -6756,9 +6756,6 @@
<!-- Restrictions screen - menu label to change restrictions pin [CHAR LIMIT=25] -->
<string name="restriction_menu_change_pin">Change PIN</string>
- <!-- Label for are-notifications-enabled checkbox in app details [CHAR LIMIT=20] -->
- <string name="app_notifications_switch_label">Show notifications</string>
-
<!-- Help URLs for some screens. Not specified here. Specified in product overlays --><skip/>
<!-- Help menu label [CHAR LIMIT=20] -->
<string name="help_label">Help & feedback</string>
@@ -8026,7 +8023,7 @@
<string name="notification_channel_summary_high">When device is unlocked, show notifications as a banner across the top of the screen</string>
<!-- [CHAR LIMIT=100] Label for on/off toggle -->
- <string name="notification_switch_label">Show notifications</string>
+ <string name="notification_switch_label">All <xliff:g id="app_name" example="Android Services">%1$s</xliff:g> notifications</string>
<!-- Default Apps > Default notification assistant -->
<string name="default_notification_assistant">Adaptive Notifications</string>
diff --git a/res/xml/apn_editor.xml b/res/xml/apn_editor.xml
index 742a436..0c39948 100644
--- a/res/xml/apn_editor.xml
+++ b/res/xml/apn_editor.xml
@@ -148,7 +148,7 @@
android:key="carrier_enabled"
android:enabled="false"
android:summaryOn="@string/carrier_enabled_summaryOn"
- android:summaryOff="@@string/carrier_enabled_summaryOff"
+ android:summaryOff="@string/carrier_enabled_summaryOff"
android:persistent="false"
/>
<MultiSelectListPreference
diff --git a/res/xml/choose_network.xml b/res/xml/choose_network.xml
index 97ea9be..4ae1ffb 100644
--- a/res/xml/choose_network.xml
+++ b/res/xml/choose_network.xml
@@ -20,9 +20,6 @@
android:title="@string/choose_network_title">
<PreferenceCategory
- android:key="connected_network_operator_preference"/>
-
- <PreferenceCategory
android:key="network_operators_preference"/>
-</PreferenceScreen>
\ No newline at end of file
+</PreferenceScreen>
diff --git a/res/xml/mobile_network_settings.xml b/res/xml/mobile_network_settings.xml
index ea31b1c..732967d 100644
--- a/res/xml/mobile_network_settings.xml
+++ b/res/xml/mobile_network_settings.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
+<!-- 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.
@@ -17,153 +17,221 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="mobile_network_pref_screen"
- settings:initialExpandedChildrenCount="4">
+ settings:initialExpandedChildrenCount="8">
- <Preference
- android:key="cdma_lte_data_service_key"
- android:title="@string/cdma_lte_data_service"
- settings:controller="com.android.settings.network.telephony.DataServiceSetupPreferenceController">
- </Preference>
-
- <SwitchPreference
- android:key="mobile_data_enable"
- android:title="@string/mobile_data_settings_title"
- android:summary="@string/mobile_data_settings_summary"
- settings:controller="com.android.settings.network.telephony.MobileDataPreferenceController"/>
-
- <com.android.settingslib.RestrictedSwitchPreference
- android:key="button_roaming_key"
- android:title="@string/roaming"
- android:persistent="false"
- android:summaryOn="@string/roaming_enable"
- android:summaryOff="@string/roaming_disable"
- settings:userRestriction="no_data_roaming"
- settings:controller="com.android.settings.network.telephony.RoamingPreferenceController"/>
-
- <Preference
- android:key="data_usage_summary"
- android:title="@string/mobile_data_usage_title"
- settings:controller="com.android.settings.network.telephony.DataUsagePreferenceController"/>
-
- <SwitchPreference
- android:key="enhanced_4g_lte"
- android:title="@string/enhanced_4g_lte_mode_title"
- android:persistent="false"
- android:summary="@string/enhanced_4g_lte_mode_summary"
- settings:keywords="@string/keywords_enhance_4g_lte"
- settings:controller="com.android.settings.network.telephony.Enhanced4gLtePreferenceController"/>
-
- <SwitchPreference
- android:key="4g_calling"
- android:title="@string/enhanced_4g_lte_mode_title_4g_calling"
- android:persistent="false"
- android:summary="@string/enhanced_4g_lte_mode_summary_4g_calling"
- settings:keywords="@string/keywords_enhance_4g_lte"
- settings:controller="com.android.settings.network.telephony.Enhanced4gCallingPreferenceController"/>
-
- <SwitchPreference
- android:key="advance_call"
- android:title="@string/enhanced_4g_lte_mode_title_advanced_calling"
- android:persistent="false"
- android:summary="@string/enhanced_4g_lte_mode_summary"
- settings:keywords="@string/keywords_enhance_4g_lte"
- settings:controller="com.android.settings.network.telephony.Enhanced4gAdvancedCallingPreferenceController"/>
-
- <ListPreference
- android:key="preferred_network_mode_key"
- android:title="@string/preferred_network_mode_title"
- android:summary="@string/preferred_network_mode_summary"
- android:entries="@array/preferred_network_mode_choices"
- android:entryValues="@array/preferred_network_mode_values"
- android:dialogTitle="@string/preferred_network_mode_dialogtitle"
- settings:controller="com.android.settings.network.telephony.PreferredNetworkModePreferenceController"/>
-
- <ListPreference
- android:key="enabled_networks_key"
- android:title="@string/preferred_network_mode_title"
- android:summary="@string/preferred_network_mode_summary"
- android:entries="@array/enabled_networks_choices"
- android:entryValues="@array/enabled_networks_values"
- android:dialogTitle="@string/preferred_network_mode_dialogtitle"
- settings:controller="com.android.settings.network.telephony.EnabledNetworkModePreferenceController"/>
-
- <Preference
- android:key="carrier_settings_euicc_key"
- android:title="@string/carrier_settings_euicc"
- settings:controller="com.android.settings.network.telephony.EuiccPreferenceController" />
+ <com.android.settingslib.widget.LayoutPreference
+ android:key="use_sim_switch"
+ android:title="@string/summary_placeholder"
+ android:layout="@layout/styled_switch_bar"
+ settings:controller="com.android.settings.network.telephony.MobileNetworkSwitchController"/>
<PreferenceCategory
- android:key="calling_category"
- android:title="@string/call_category"
- settings:searchable="false">
+ android:key="enabled_state_container"
+ android:title="@string/summary_placeholder"
+ settings:controller="com.android.settings.network.telephony.DisabledSubscriptionController"
+ android:layout="@layout/preference_category_no_label">
- <PreferenceScreen
- android:key="wifi_calling"
- android:title="@string/wifi_calling_settings_title"
- android:summary="@string/wifi_calling_summary"
- settings:controller="com.android.settings.network.telephony.WifiCallingPreferenceController" >
- <intent android:action="android.intent.action.MAIN"
- android:targetPackage="com.android.settings"
- android:targetClass="com.android.settings.Settings$WifiCallingSettingsActivity">
- <extra android:name="show_drawer_menu" android:value="true" />
- </intent>
- </PreferenceScreen>
+ <com.android.settings.datausage.DataUsageSummaryPreference
+ android:key="status_header"
+ android:visibility="gone"
+ android:selectable="false"/>
- <SwitchPreference
- android:key="video_calling_key"
- android:title="@string/video_calling_settings_title"
- android:persistent="true"
- settings:controller="com.android.settings.network.telephony.VideoCallingPreferenceController" />
+ <ListPreference
+ android:key="calls_preference"
+ android:title="@string/calls_preference"
+ settings:controller="com.android.settings.network.telephony.CallsDefaultSubscriptionController"
+ settings:allowDividerAbove="true"/>
- </PreferenceCategory>
-
- <com.android.settings.network.telephony.cdma.CdmaListPreference
- android:key="cdma_system_select_key"
- android:title="@string/cdma_system_select_title"
- android:summary="@string/cdma_system_select_summary"
- android:entries="@array/cdma_system_select_choices"
- android:entryValues="@array/cdma_system_select_values"
- android:dialogTitle="@string/cdma_system_select_dialogtitle"
- settings:controller="com.android.settings.network.telephony.cdma.CdmaSystemSelectPreferenceController"/>
-
- <com.android.settings.network.telephony.cdma.CdmaListPreference
- android:key="cdma_subscription_key"
- android:title="@string/cdma_subscription_title"
- android:summary="@string/cdma_subscription_summary"
- android:entries="@array/cdma_subscription_choices"
- android:entryValues="@array/cdma_subscription_values"
- android:dialogTitle="@string/cdma_subscription_dialogtitle"
- settings:controller="com.android.settings.network.telephony.cdma.CdmaSubscriptionPreferenceController"/>
-
- <PreferenceCategory
- android:key="network_operators_category_key"
- android:title="@string/network_operator_category"
- settings:controller="com.android.settings.widget.PreferenceCategoryController">
-
- <SwitchPreference
- android:key="auto_select_key"
- android:title="@string/select_automatically"
- settings:controller="com.android.settings.network.telephony.gsm.AutoSelectPreferenceController"/>
+ <ListPreference
+ android:key="sms_preference"
+ android:title="@string/sms_preference"
+ settings:controller="com.android.settings.network.telephony.SmsDefaultSubscriptionController"/>
<Preference
- android:key="choose_network_key"
- android:title="@string/choose_network_title"
- android:fragment="com.android.phone.NetworkSelectSetting"
- settings:controller="com.android.settings.network.telephony.gsm.OpenNetworkSelectPagePreferenceController"/>
+ android:key="cdma_lte_data_service_key"
+ android:title="@string/cdma_lte_data_service"
+ settings:controller="com.android.settings.network.telephony.DataServiceSetupPreferenceController"
+ settings:allowDividerAbove="true"
+ settings:allowDividerBelow="false"/>
+
+ <SwitchPreference
+ android:key="mobile_data_enable"
+ android:title="@string/mobile_data_settings_title"
+ android:summary="@string/mobile_data_settings_summary"
+ settings:controller="com.android.settings.network.telephony.MobileDataPreferenceController"
+ settings:allowDividerAbove="true"/>
+
+ <com.android.settingslib.RestrictedSwitchPreference
+ android:key="button_roaming_key"
+ android:title="@string/roaming"
+ android:persistent="false"
+ android:summaryOn="@string/roaming_enable"
+ android:summaryOff="@string/roaming_disable"
+ settings:userRestriction="no_data_roaming"
+ settings:controller="com.android.settings.network.telephony.RoamingPreferenceController"/>
+
+ <Preference
+ android:key="data_usage_summary"
+ android:title="@string/mobile_data_usage_title"
+ settings:controller="com.android.settings.network.telephony.DataUsagePreferenceController"/>
+
+ <com.android.settings.datausage.BillingCyclePreference
+ android:key="billing_preference"
+ android:title="@string/billing_cycle"
+ settings:controller="com.android.settings.datausage.BillingCyclePreferenceController"/>
+
+ <SwitchPreference
+ android:key="mms_message"
+ android:title="@string/mms_message_title"
+ android:summary="@string/mms_message_summary"
+ settings:controller="com.android.settings.network.telephony.MmsMessagePreferenceController"/>
+
+ <SwitchPreference
+ android:key="data_during_calls"
+ android:title="@string/data_during_calls_title"
+ android:summary="@string/data_during_calls_summary"
+ settings:controller="com.android.settings.network.telephony.DataDuringCallsPreferenceController"/>
+
+ <SwitchPreference
+ android:key="enhanced_4g_lte"
+ android:title="@string/enhanced_4g_lte_mode_title"
+ android:persistent="false"
+ android:summary="@string/enhanced_4g_lte_mode_summary"
+ settings:keywords="@string/keywords_enhance_4g_lte"
+ settings:controller="com.android.settings.network.telephony.Enhanced4gLtePreferenceController"/>
+
+ <SwitchPreference
+ android:key="4g_calling"
+ android:title="@string/enhanced_4g_lte_mode_title_4g_calling"
+ android:persistent="false"
+ android:summary="@string/enhanced_4g_lte_mode_summary_4g_calling"
+ settings:keywords="@string/keywords_enhance_4g_lte"
+ settings:controller="com.android.settings.network.telephony.Enhanced4gCallingPreferenceController"/>
+
+ <SwitchPreference
+ android:key="advance_call"
+ android:title="@string/enhanced_4g_lte_mode_title_advanced_calling"
+ android:persistent="false"
+ android:summary="@string/enhanced_4g_lte_mode_summary"
+ settings:keywords="@string/keywords_enhance_4g_lte"
+ settings:controller="com.android.settings.network.telephony.Enhanced4gAdvancedCallingPreferenceController"/>
+
+ <ListPreference
+ android:key="preferred_network_mode_key"
+ android:title="@string/preferred_network_mode_title"
+ android:summary="@string/preferred_network_mode_summary"
+ android:entries="@array/preferred_network_mode_choices"
+ android:entryValues="@array/preferred_network_mode_values"
+ android:dialogTitle="@string/preferred_network_mode_dialogtitle"
+ settings:controller="com.android.settings.network.telephony.PreferredNetworkModePreferenceController"/>
+
+ <ListPreference
+ android:key="enabled_networks_key"
+ android:title="@string/preferred_network_mode_title"
+ android:summary="@string/preferred_network_mode_summary"
+ android:entries="@array/enabled_networks_choices"
+ android:entryValues="@array/enabled_networks_values"
+ android:dialogTitle="@string/preferred_network_mode_dialogtitle"
+ settings:controller="com.android.settings.network.telephony.EnabledNetworkModePreferenceController"/>
+
+ <Preference
+ android:key="carrier_settings_version_key"
+ android:title="@string/carrier_settings_version"
+ android:enabled="false"
+ android:shouldDisableView="false"
+ android:selectable="false"
+ settings:controller="com.android.settings.network.telephony.CarrierSettingsVersionPreferenceController"
+ settings:enableCopying="true"/>
+
+ <PreferenceCategory
+ android:key="calling_category"
+ android:title="@string/call_category"
+ settings:controller="com.android.settings.network.telephony.CallingPreferenceCategoryController">
+
+ <PreferenceScreen
+ android:key="wifi_calling"
+ android:title="@string/wifi_calling_settings_title"
+ android:summary="@string/wifi_calling_summary"
+ settings:controller="com.android.settings.network.telephony.WifiCallingPreferenceController">
+ <intent android:action="android.intent.action.MAIN"
+ android:targetPackage="com.android.settings"
+ android:targetClass="com.android.settings.Settings$WifiCallingSettingsActivity">
+ <extra android:name="show_drawer_menu" android:value="true"/>
+ </intent>
+ </PreferenceScreen>
+
+ <SwitchPreference
+ android:key="video_calling_key"
+ android:title="@string/video_calling_settings_title"
+ android:persistent="true"
+ settings:controller="com.android.settings.network.telephony.VideoCallingPreferenceController"/>
+
+ </PreferenceCategory>
+
+ <com.android.settings.network.telephony.cdma.CdmaListPreference
+ android:key="cdma_system_select_key"
+ android:title="@string/cdma_system_select_title"
+ android:summary="@string/cdma_system_select_summary"
+ android:entries="@array/cdma_system_select_choices"
+ android:entryValues="@array/cdma_system_select_values"
+ android:dialogTitle="@string/cdma_system_select_dialogtitle"
+ settings:controller="com.android.settings.network.telephony.cdma.CdmaSystemSelectPreferenceController"/>
+
+ <com.android.settings.network.telephony.cdma.CdmaListPreference
+ android:key="cdma_subscription_key"
+ android:title="@string/cdma_subscription_title"
+ android:summary="@string/cdma_subscription_summary"
+ android:entries="@array/cdma_subscription_choices"
+ android:entryValues="@array/cdma_subscription_values"
+ android:dialogTitle="@string/cdma_subscription_dialogtitle"
+ settings:controller="com.android.settings.network.telephony.cdma.CdmaSubscriptionPreferenceController"/>
+
+ <PreferenceCategory
+ android:key="network_operators_category_key"
+ android:title="@string/network_operator_category"
+ settings:controller="com.android.settings.widget.PreferenceCategoryController">
+
+ <SwitchPreference
+ android:key="auto_select_key"
+ android:title="@string/select_automatically"
+ settings:controller="com.android.settings.network.telephony.gsm.AutoSelectPreferenceController"/>
+
+ <Preference
+ android:key="choose_network_key"
+ android:title="@string/choose_network_title"
+ android:fragment="com.android.phone.NetworkSelectSetting"
+ settings:controller="com.android.settings.network.telephony.gsm.OpenNetworkSelectPagePreferenceController"/>
+ </PreferenceCategory>
+
+ <!--We want separate APN setting from reset of settings because we want user to change it with caution-->
+ <com.android.settingslib.RestrictedPreference
+ android:key="telephony_apn_key"
+ android:persistent="false"
+ android:title="@string/mobile_network_apn_title"
+ settings:allowDividerAbove="true"
+ settings:controller="com.android.settings.network.telephony.ApnPreferenceController"/>
+
+ <Preference
+ android:key="carrier_settings_key"
+ android:title="@string/carrier_settings_title"
+ settings:controller="com.android.settings.network.telephony.CarrierPreferenceController">
+ </Preference>
+
</PreferenceCategory>
- <!--We want separate APN setting from reset of settings because we want user to change it with caution-->
- <com.android.settingslib.RestrictedPreference
- android:key="telephony_apn_key"
- android:persistent="false"
- android:title="@string/mobile_network_apn_title"
- settings:allowDividerAbove="true"
- settings:controller="com.android.settings.network.telephony.ApnPreferenceController"/>
-
<Preference
- android:key="carrier_settings_key"
- android:title="@string/carrier_settings_title"
- settings:controller="com.android.settings.network.telephony.CarrierPreferenceController">
- </Preference>
+ android:key="erase_sim"
+ android:persistent="false"
+ android:title="@string/mobile_network_erase_sim"
+ settings:allowDividerBelow="true"
+ settings:controller="com.android.settings.network.telephony.DeleteSimProfilePreferenceController"/>
+
+ <com.android.settingslib.widget.FooterPreference
+ android:key="disable_sim_explanation"
+ android:title="@string/mobile_network_disable_sim_explanation"
+ android:selectable="false"
+ settings:allowDividerAbove="true"
+ settings:searchable="false"
+ settings:controller="com.android.settings.network.telephony.DisableSimFooterPreferenceController"/>
</PreferenceScreen>
diff --git a/res/xml/mobile_network_settings_v2.xml b/res/xml/mobile_network_settings_v2.xml
deleted file mode 100644
index 732967d..0000000
--- a/res/xml/mobile_network_settings_v2.xml
+++ /dev/null
@@ -1,237 +0,0 @@
-<?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.
--->
-<PreferenceScreen
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:settings="http://schemas.android.com/apk/res-auto"
- android:key="mobile_network_pref_screen"
- settings:initialExpandedChildrenCount="8">
-
- <com.android.settingslib.widget.LayoutPreference
- android:key="use_sim_switch"
- android:title="@string/summary_placeholder"
- android:layout="@layout/styled_switch_bar"
- settings:controller="com.android.settings.network.telephony.MobileNetworkSwitchController"/>
-
- <PreferenceCategory
- android:key="enabled_state_container"
- android:title="@string/summary_placeholder"
- settings:controller="com.android.settings.network.telephony.DisabledSubscriptionController"
- android:layout="@layout/preference_category_no_label">
-
- <com.android.settings.datausage.DataUsageSummaryPreference
- android:key="status_header"
- android:visibility="gone"
- android:selectable="false"/>
-
- <ListPreference
- android:key="calls_preference"
- android:title="@string/calls_preference"
- settings:controller="com.android.settings.network.telephony.CallsDefaultSubscriptionController"
- settings:allowDividerAbove="true"/>
-
- <ListPreference
- android:key="sms_preference"
- android:title="@string/sms_preference"
- settings:controller="com.android.settings.network.telephony.SmsDefaultSubscriptionController"/>
-
- <Preference
- android:key="cdma_lte_data_service_key"
- android:title="@string/cdma_lte_data_service"
- settings:controller="com.android.settings.network.telephony.DataServiceSetupPreferenceController"
- settings:allowDividerAbove="true"
- settings:allowDividerBelow="false"/>
-
- <SwitchPreference
- android:key="mobile_data_enable"
- android:title="@string/mobile_data_settings_title"
- android:summary="@string/mobile_data_settings_summary"
- settings:controller="com.android.settings.network.telephony.MobileDataPreferenceController"
- settings:allowDividerAbove="true"/>
-
- <com.android.settingslib.RestrictedSwitchPreference
- android:key="button_roaming_key"
- android:title="@string/roaming"
- android:persistent="false"
- android:summaryOn="@string/roaming_enable"
- android:summaryOff="@string/roaming_disable"
- settings:userRestriction="no_data_roaming"
- settings:controller="com.android.settings.network.telephony.RoamingPreferenceController"/>
-
- <Preference
- android:key="data_usage_summary"
- android:title="@string/mobile_data_usage_title"
- settings:controller="com.android.settings.network.telephony.DataUsagePreferenceController"/>
-
- <com.android.settings.datausage.BillingCyclePreference
- android:key="billing_preference"
- android:title="@string/billing_cycle"
- settings:controller="com.android.settings.datausage.BillingCyclePreferenceController"/>
-
- <SwitchPreference
- android:key="mms_message"
- android:title="@string/mms_message_title"
- android:summary="@string/mms_message_summary"
- settings:controller="com.android.settings.network.telephony.MmsMessagePreferenceController"/>
-
- <SwitchPreference
- android:key="data_during_calls"
- android:title="@string/data_during_calls_title"
- android:summary="@string/data_during_calls_summary"
- settings:controller="com.android.settings.network.telephony.DataDuringCallsPreferenceController"/>
-
- <SwitchPreference
- android:key="enhanced_4g_lte"
- android:title="@string/enhanced_4g_lte_mode_title"
- android:persistent="false"
- android:summary="@string/enhanced_4g_lte_mode_summary"
- settings:keywords="@string/keywords_enhance_4g_lte"
- settings:controller="com.android.settings.network.telephony.Enhanced4gLtePreferenceController"/>
-
- <SwitchPreference
- android:key="4g_calling"
- android:title="@string/enhanced_4g_lte_mode_title_4g_calling"
- android:persistent="false"
- android:summary="@string/enhanced_4g_lte_mode_summary_4g_calling"
- settings:keywords="@string/keywords_enhance_4g_lte"
- settings:controller="com.android.settings.network.telephony.Enhanced4gCallingPreferenceController"/>
-
- <SwitchPreference
- android:key="advance_call"
- android:title="@string/enhanced_4g_lte_mode_title_advanced_calling"
- android:persistent="false"
- android:summary="@string/enhanced_4g_lte_mode_summary"
- settings:keywords="@string/keywords_enhance_4g_lte"
- settings:controller="com.android.settings.network.telephony.Enhanced4gAdvancedCallingPreferenceController"/>
-
- <ListPreference
- android:key="preferred_network_mode_key"
- android:title="@string/preferred_network_mode_title"
- android:summary="@string/preferred_network_mode_summary"
- android:entries="@array/preferred_network_mode_choices"
- android:entryValues="@array/preferred_network_mode_values"
- android:dialogTitle="@string/preferred_network_mode_dialogtitle"
- settings:controller="com.android.settings.network.telephony.PreferredNetworkModePreferenceController"/>
-
- <ListPreference
- android:key="enabled_networks_key"
- android:title="@string/preferred_network_mode_title"
- android:summary="@string/preferred_network_mode_summary"
- android:entries="@array/enabled_networks_choices"
- android:entryValues="@array/enabled_networks_values"
- android:dialogTitle="@string/preferred_network_mode_dialogtitle"
- settings:controller="com.android.settings.network.telephony.EnabledNetworkModePreferenceController"/>
-
- <Preference
- android:key="carrier_settings_version_key"
- android:title="@string/carrier_settings_version"
- android:enabled="false"
- android:shouldDisableView="false"
- android:selectable="false"
- settings:controller="com.android.settings.network.telephony.CarrierSettingsVersionPreferenceController"
- settings:enableCopying="true"/>
-
- <PreferenceCategory
- android:key="calling_category"
- android:title="@string/call_category"
- settings:controller="com.android.settings.network.telephony.CallingPreferenceCategoryController">
-
- <PreferenceScreen
- android:key="wifi_calling"
- android:title="@string/wifi_calling_settings_title"
- android:summary="@string/wifi_calling_summary"
- settings:controller="com.android.settings.network.telephony.WifiCallingPreferenceController">
- <intent android:action="android.intent.action.MAIN"
- android:targetPackage="com.android.settings"
- android:targetClass="com.android.settings.Settings$WifiCallingSettingsActivity">
- <extra android:name="show_drawer_menu" android:value="true"/>
- </intent>
- </PreferenceScreen>
-
- <SwitchPreference
- android:key="video_calling_key"
- android:title="@string/video_calling_settings_title"
- android:persistent="true"
- settings:controller="com.android.settings.network.telephony.VideoCallingPreferenceController"/>
-
- </PreferenceCategory>
-
- <com.android.settings.network.telephony.cdma.CdmaListPreference
- android:key="cdma_system_select_key"
- android:title="@string/cdma_system_select_title"
- android:summary="@string/cdma_system_select_summary"
- android:entries="@array/cdma_system_select_choices"
- android:entryValues="@array/cdma_system_select_values"
- android:dialogTitle="@string/cdma_system_select_dialogtitle"
- settings:controller="com.android.settings.network.telephony.cdma.CdmaSystemSelectPreferenceController"/>
-
- <com.android.settings.network.telephony.cdma.CdmaListPreference
- android:key="cdma_subscription_key"
- android:title="@string/cdma_subscription_title"
- android:summary="@string/cdma_subscription_summary"
- android:entries="@array/cdma_subscription_choices"
- android:entryValues="@array/cdma_subscription_values"
- android:dialogTitle="@string/cdma_subscription_dialogtitle"
- settings:controller="com.android.settings.network.telephony.cdma.CdmaSubscriptionPreferenceController"/>
-
- <PreferenceCategory
- android:key="network_operators_category_key"
- android:title="@string/network_operator_category"
- settings:controller="com.android.settings.widget.PreferenceCategoryController">
-
- <SwitchPreference
- android:key="auto_select_key"
- android:title="@string/select_automatically"
- settings:controller="com.android.settings.network.telephony.gsm.AutoSelectPreferenceController"/>
-
- <Preference
- android:key="choose_network_key"
- android:title="@string/choose_network_title"
- android:fragment="com.android.phone.NetworkSelectSetting"
- settings:controller="com.android.settings.network.telephony.gsm.OpenNetworkSelectPagePreferenceController"/>
- </PreferenceCategory>
-
- <!--We want separate APN setting from reset of settings because we want user to change it with caution-->
- <com.android.settingslib.RestrictedPreference
- android:key="telephony_apn_key"
- android:persistent="false"
- android:title="@string/mobile_network_apn_title"
- settings:allowDividerAbove="true"
- settings:controller="com.android.settings.network.telephony.ApnPreferenceController"/>
-
- <Preference
- android:key="carrier_settings_key"
- android:title="@string/carrier_settings_title"
- settings:controller="com.android.settings.network.telephony.CarrierPreferenceController">
- </Preference>
-
- </PreferenceCategory>
-
- <Preference
- android:key="erase_sim"
- android:persistent="false"
- android:title="@string/mobile_network_erase_sim"
- settings:allowDividerBelow="true"
- settings:controller="com.android.settings.network.telephony.DeleteSimProfilePreferenceController"/>
-
- <com.android.settingslib.widget.FooterPreference
- android:key="disable_sim_explanation"
- android:title="@string/mobile_network_disable_sim_explanation"
- android:selectable="false"
- settings:allowDividerAbove="true"
- settings:searchable="false"
- settings:controller="com.android.settings.network.telephony.DisableSimFooterPreferenceController"/>
-
-</PreferenceScreen>
diff --git a/res/xml/network_and_internet.xml b/res/xml/network_and_internet.xml
index 609578f..5280221 100644
--- a/res/xml/network_and_internet.xml
+++ b/res/xml/network_and_internet.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The Android Open Source Project
+<!-- Copyright (C) 2018 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.
@@ -21,40 +21,46 @@
android:title="@string/network_dashboard_title"
settings:initialExpandedChildrenCount="5">
+ <PreferenceCategory
+ android:key="multi_network_header"
+ android:title="@string/summary_placeholder"
+ android:layout="@layout/preference_category_no_label"
+ settings:allowDividerBelow="true"
+ android:order="-40"
+ settings:controller="com.android.settings.network.MultiNetworkHeaderController"/>
+
<com.android.settings.widget.MasterSwitchPreference
android:fragment="com.android.settings.wifi.WifiSettings"
android:key="toggle_wifi"
android:title="@string/wifi_settings"
android:summary="@string/summary_placeholder"
android:icon="@drawable/ic_settings_wireless"
- android:order="-30">
+ android:order="-30"
+ settings:allowDividerAbove="true">
<intent
android:action="android.settings.WIFI_SETTINGS"
android:targetClass="Settings$WifiSettingsActivity" />
</com.android.settings.widget.MasterSwitchPreference>
- <com.android.settingslib.RestrictedPreference
- android:key="mobile_network_settings"
+ <com.android.settings.widget.AddPreference
+ android:key="mobile_network_list"
android:title="@string/network_settings_title"
android:summary="@string/summary_placeholder"
android:icon="@drawable/ic_network_cell"
android:order="-15"
settings:keywords="@string/keywords_more_mobile_networks"
settings:userRestriction="no_config_mobile_networks"
- settings:useAdminDisabledSummary="true">
- </com.android.settingslib.RestrictedPreference>
-
- <com.android.settingslib.RestrictedPreference
- android:fragment="com.android.settings.TetherSettings"
- android:key="tether_settings"
- android:title="@string/tether_settings_title_all"
- android:icon="@drawable/ic_wifi_tethering"
- android:order="-5"
- android:summary="@string/summary_placeholder"
- settings:keywords="@string/keywords_hotspot_tethering"
- settings:userRestriction="no_config_tethering"
settings:useAdminDisabledSummary="true" />
+ <com.android.settingslib.RestrictedSwitchPreference
+ android:key="airplane_mode"
+ android:title="@string/airplane_mode"
+ android:icon="@drawable/ic_airplanemode_active"
+ android:disableDependentsState="true"
+ android:order="-5"
+ settings:controller="com.android.settings.network.AirplaneModePreferenceController"
+ settings:userRestriction="no_airplane_mode"/>
+
<com.android.settingslib.RestrictedPreference
android:key="manage_mobile_plan"
android:title="@string/manage_mobile_plan_title"
@@ -63,26 +69,30 @@
settings:userRestriction="no_config_mobile_networks"
settings:useAdminDisabledSummary="true" />
- <com.android.settingslib.RestrictedSwitchPreference
- android:key="airplane_mode_old"
- android:title="@string/airplane_mode"
- android:icon="@drawable/ic_airplanemode_active"
- android:disableDependentsState="true"
+ <com.android.settingslib.RestrictedPreference
+ android:fragment="com.android.settings.TetherSettings"
+ android:key="tether_settings"
+ android:title="@string/tether_settings_title_all"
+ android:icon="@drawable/ic_wifi_tethering"
android:order="5"
- settings:controller="com.android.settings.network.AirplaneModePreferenceController"
- settings:userRestriction="no_airplane_mode"/>
+ android:summary="@string/summary_placeholder"
+ settings:keywords="@string/keywords_hotspot_tethering"
+ settings:userRestriction="no_config_tethering"
+ settings:useAdminDisabledSummary="true" />
- <Preference
- android:fragment="com.android.settings.ProxySelector"
- android:key="proxy_settings"
- android:title="@string/proxy_settings_title" />
+ <com.android.settings.datausage.DataSaverPreference
+ android:key="restrict_background_parent_entry"
+ android:title="@string/data_saver_title"
+ android:icon="@drawable/ic_settings_data_usage"
+ android:order="10"
+ android:fragment="com.android.settings.datausage.DataSaverSummary"/>
<com.android.settingslib.RestrictedPreference
android:fragment="com.android.settings.vpn2.VpnSettings"
android:key="vpn_settings"
android:title="@string/vpn_settings_title"
android:icon="@drawable/ic_vpn_key"
- android:order="10"
+ android:order="15"
android:summary="@string/summary_placeholder"
settings:userRestriction="no_config_vpn"
settings:useAdminDisabledSummary="true" />
@@ -90,7 +100,7 @@
<com.android.settings.network.PrivateDnsModeDialogPreference
android:key="private_dns_settings"
android:title="@string/select_private_dns_configuration_title"
- android:order="15"
+ android:order="20"
android:dialogTitle="@string/select_private_dns_configuration_dialog_title"
android:dialogLayout="@layout/private_dns_mode_dialog"
android:positiveButtonText="@string/save"
diff --git a/res/xml/network_and_internet_v2.xml b/res/xml/network_and_internet_v2.xml
deleted file mode 100644
index 5280221..0000000
--- a/res/xml/network_and_internet_v2.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-
-<PreferenceScreen
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:settings="http://schemas.android.com/apk/res-auto"
- android:key="network_and_internet_screen"
- android:title="@string/network_dashboard_title"
- settings:initialExpandedChildrenCount="5">
-
- <PreferenceCategory
- android:key="multi_network_header"
- android:title="@string/summary_placeholder"
- android:layout="@layout/preference_category_no_label"
- settings:allowDividerBelow="true"
- android:order="-40"
- settings:controller="com.android.settings.network.MultiNetworkHeaderController"/>
-
- <com.android.settings.widget.MasterSwitchPreference
- android:fragment="com.android.settings.wifi.WifiSettings"
- android:key="toggle_wifi"
- android:title="@string/wifi_settings"
- android:summary="@string/summary_placeholder"
- android:icon="@drawable/ic_settings_wireless"
- android:order="-30"
- settings:allowDividerAbove="true">
- <intent
- android:action="android.settings.WIFI_SETTINGS"
- android:targetClass="Settings$WifiSettingsActivity" />
- </com.android.settings.widget.MasterSwitchPreference>
-
- <com.android.settings.widget.AddPreference
- android:key="mobile_network_list"
- android:title="@string/network_settings_title"
- android:summary="@string/summary_placeholder"
- android:icon="@drawable/ic_network_cell"
- android:order="-15"
- settings:keywords="@string/keywords_more_mobile_networks"
- settings:userRestriction="no_config_mobile_networks"
- settings:useAdminDisabledSummary="true" />
-
- <com.android.settingslib.RestrictedSwitchPreference
- android:key="airplane_mode"
- android:title="@string/airplane_mode"
- android:icon="@drawable/ic_airplanemode_active"
- android:disableDependentsState="true"
- android:order="-5"
- settings:controller="com.android.settings.network.AirplaneModePreferenceController"
- settings:userRestriction="no_airplane_mode"/>
-
- <com.android.settingslib.RestrictedPreference
- android:key="manage_mobile_plan"
- android:title="@string/manage_mobile_plan_title"
- android:persistent="false"
- android:order="0"
- settings:userRestriction="no_config_mobile_networks"
- settings:useAdminDisabledSummary="true" />
-
- <com.android.settingslib.RestrictedPreference
- android:fragment="com.android.settings.TetherSettings"
- android:key="tether_settings"
- android:title="@string/tether_settings_title_all"
- android:icon="@drawable/ic_wifi_tethering"
- android:order="5"
- android:summary="@string/summary_placeholder"
- settings:keywords="@string/keywords_hotspot_tethering"
- settings:userRestriction="no_config_tethering"
- settings:useAdminDisabledSummary="true" />
-
- <com.android.settings.datausage.DataSaverPreference
- android:key="restrict_background_parent_entry"
- android:title="@string/data_saver_title"
- android:icon="@drawable/ic_settings_data_usage"
- android:order="10"
- android:fragment="com.android.settings.datausage.DataSaverSummary"/>
-
- <com.android.settingslib.RestrictedPreference
- android:fragment="com.android.settings.vpn2.VpnSettings"
- android:key="vpn_settings"
- android:title="@string/vpn_settings_title"
- android:icon="@drawable/ic_vpn_key"
- android:order="15"
- android:summary="@string/summary_placeholder"
- settings:userRestriction="no_config_vpn"
- settings:useAdminDisabledSummary="true" />
-
- <com.android.settings.network.PrivateDnsModeDialogPreference
- android:key="private_dns_settings"
- android:title="@string/select_private_dns_configuration_title"
- android:order="20"
- android:dialogTitle="@string/select_private_dns_configuration_dialog_title"
- android:dialogLayout="@layout/private_dns_mode_dialog"
- android:positiveButtonText="@string/save"
- android:negativeButtonText="@android:string/cancel" />
-
-</PreferenceScreen>
diff --git a/res/xml/screen_pinning_settings.xml b/res/xml/screen_pinning_settings.xml
index f27e4aa..7ff7f1d 100644
--- a/res/xml/screen_pinning_settings.xml
+++ b/res/xml/screen_pinning_settings.xml
@@ -16,6 +16,7 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="screen_pinning_settings_screen"
android:title="@string/screen_pinning_title">
@@ -23,4 +24,10 @@
android:key="use_screen_lock"
android:title="@string/screen_pinning_unlock_none" />
+ <com.android.settingslib.widget.FooterPreference
+ android:key="screen_pinning_settings_screen_footer"
+ android:title="@string/screen_pinning_description"
+ android:selectable="false"
+ settings:searchable="false" />
+
</PreferenceScreen>
diff --git a/src/com/android/settings/EncryptionInterstitial.java b/src/com/android/settings/EncryptionInterstitial.java
index c132c89..7a11053 100644
--- a/src/com/android/settings/EncryptionInterstitial.java
+++ b/src/com/android/settings/EncryptionInterstitial.java
@@ -31,7 +31,6 @@
import android.view.View;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityManager;
-import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 24963b3..c189b7b 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -137,7 +137,6 @@
public static class OverlaySettingsActivity extends SettingsActivity { /* empty */ }
public static class WriteSettingsActivity extends SettingsActivity { /* empty */ }
public static class ChangeWifiStateActivity extends SettingsActivity { /* empty */ }
- public static class AppDrawOverlaySettingsActivity extends SettingsActivity { /* empty */ }
public static class AppWriteSettingsActivity extends SettingsActivity { /* empty */ }
public static class ManageExternalSourcesActivity extends SettingsActivity {/* empty */ }
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index f5f5ccd..65d0c82 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -106,7 +106,6 @@
import com.android.internal.widget.LockPatternUtils;
import com.android.settings.core.FeatureFlags;
import com.android.settings.dashboard.profileselector.ProfileFragmentBridge;
-import com.android.settings.development.featureflags.FeatureFlagPersistent;
import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settingslib.widget.ActionBarShadowController;
@@ -157,19 +156,19 @@
public static boolean updatePreferenceToSpecificActivityOrRemove(Context context,
PreferenceGroup parentPreferenceGroup, String preferenceKey, int flags) {
- Preference preference = parentPreferenceGroup.findPreference(preferenceKey);
+ final Preference preference = parentPreferenceGroup.findPreference(preferenceKey);
if (preference == null) {
return false;
}
- Intent intent = preference.getIntent();
+ final Intent intent = preference.getIntent();
if (intent != null) {
// Find the activity that is in the system image
- PackageManager pm = context.getPackageManager();
- List<ResolveInfo> list = pm.queryIntentActivities(intent, 0);
- int listSize = list.size();
+ final PackageManager pm = context.getPackageManager();
+ final List<ResolveInfo> list = pm.queryIntentActivities(intent, 0);
+ final int listSize = list.size();
for (int i = 0; i < listSize; i++) {
- ResolveInfo resolveInfo = list.get(i);
+ final ResolveInfo resolveInfo = list.get(i);
if ((resolveInfo.activityInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)
!= 0) {
@@ -200,7 +199,7 @@
* @throws IllegalStateException if no UserManager could be retrieved.
*/
public static UserManager getUserManager(Context context) {
- UserManager um = UserManager.get(context);
+ final UserManager um = UserManager.get(context);
if (um == null) {
throw new IllegalStateException("Unable to load UserManager");
}
@@ -218,7 +217,7 @@
* Returns whether the device is voice-capable (meaning, it is also a phone).
*/
public static boolean isVoiceCapable(Context context) {
- TelephonyManager telephony =
+ final TelephonyManager telephony =
(TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
return telephony != null && telephony.isVoiceCapable();
}
@@ -229,12 +228,12 @@
* @return the formatted and newline-separated IP addresses, or null if none.
*/
public static String getWifiIpAddresses(Context context) {
- WifiManager wifiManager = context.getSystemService(WifiManager.class);
- Network currentNetwork = wifiManager.getCurrentNetwork();
+ final WifiManager wifiManager = context.getSystemService(WifiManager.class);
+ final Network currentNetwork = wifiManager.getCurrentNetwork();
if (currentNetwork != null) {
- ConnectivityManager cm = (ConnectivityManager)
+ final ConnectivityManager cm = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
- LinkProperties prop = cm.getLinkProperties(currentNetwork);
+ final LinkProperties prop = cm.getLinkProperties(currentNetwork);
return formatIpAddresses(prop);
}
return null;
@@ -242,7 +241,7 @@
private static String formatIpAddresses(LinkProperties prop) {
if (prop == null) return null;
- Iterator<InetAddress> iter = prop.getAllAddresses().iterator();
+ final Iterator<InetAddress> iter = prop.getAllAddresses().iterator();
// If there are no entries, return null
if (!iter.hasNext()) return null;
// Concatenate all available addresses, comma separated
@@ -263,7 +262,7 @@
// And : new Locale("en_US").toString() => "en_us"
if (null == localeStr)
return Locale.getDefault();
- String[] brokenDownLocale = localeStr.split("_", 3);
+ final String[] brokenDownLocale = localeStr.split("_", 3);
// split may not return a 0-length array.
if (1 == brokenDownLocale.length) {
return new Locale(brokenDownLocale[0]);
@@ -397,7 +396,7 @@
* exists but it is disabled.
*/
public static UserHandle getManagedProfile(UserManager userManager) {
- List<UserHandle> userProfiles = userManager.getUserProfiles();
+ final List<UserHandle> userProfiles = userManager.getUserProfiles();
for (UserHandle profile : userProfiles) {
if (profile.getIdentifier() == userManager.getUserHandle()) {
continue;
@@ -421,7 +420,7 @@
// we need to use UserManager.getProfiles that is available on API 23 (the one currently
// used for Settings Robolectric tests).
final int myUserId = UserHandle.myUserId();
- List<UserInfo> profiles = userManager.getProfiles(myUserId);
+ final List<UserInfo> profiles = userManager.getProfiles(myUserId);
final int count = profiles.size();
for (int i = 0; i < count; i++) {
final UserInfo profile = profiles.get(i);
@@ -439,7 +438,7 @@
* @return the managed profile id or UserHandle.USER_NULL if there is none.
*/
public static int getManagedProfileId(UserManager um, int parentUserId) {
- int[] profileIds = um.getProfileIdsWithDisabled(parentUserId);
+ final int[] profileIds = um.getProfileIdsWithDisabled(parentUserId);
for (int profileId : profileIds) {
if (profileId != parentUserId) {
return profileId;
@@ -465,13 +464,14 @@
*/
public static UserHandle getSecureTargetUser(IBinder activityToken,
UserManager um, @Nullable Bundle arguments, @Nullable Bundle intentExtras) {
- UserHandle currentUser = new UserHandle(UserHandle.myUserId());
- IActivityManager am = ActivityManager.getService();
+ final UserHandle currentUser = new UserHandle(UserHandle.myUserId());
+ final IActivityManager am = ActivityManager.getService();
try {
- String launchedFromPackage = am.getLaunchedFromPackage(activityToken);
- boolean launchedFromSettingsApp = SETTINGS_PACKAGE_NAME.equals(launchedFromPackage);
+ final String launchedFromPackage = am.getLaunchedFromPackage(activityToken);
+ final boolean launchedFromSettingsApp =
+ SETTINGS_PACKAGE_NAME.equals(launchedFromPackage);
- UserHandle launchedFromUser = new UserHandle(UserHandle.getUserId(
+ final UserHandle launchedFromUser = new UserHandle(UserHandle.getUserId(
am.getLaunchedFromUid(activityToken)));
if (launchedFromUser != null && !launchedFromUser.equals(currentUser)) {
// Check it's secure
@@ -479,14 +479,14 @@
return launchedFromUser;
}
}
- UserHandle extrasUser = getUserHandleFromBundle(intentExtras);
+ final UserHandle extrasUser = getUserHandleFromBundle(intentExtras);
if (extrasUser != null && !extrasUser.equals(currentUser)) {
// Check it's secure
if (launchedFromSettingsApp && isProfileOf(um, extrasUser)) {
return extrasUser;
}
}
- UserHandle argumentsUser = getUserHandleFromBundle(arguments);
+ final UserHandle argumentsUser = getUserHandleFromBundle(arguments);
if (argumentsUser != null && !argumentsUser.equals(currentUser)) {
// Check it's secure
if (launchedFromSettingsApp && isProfileOf(um, argumentsUser)) {
@@ -529,21 +529,6 @@
}
/**
- * Return whether or not the user should have a SIM Cards option in Settings.
- * TODO: Change back to returning true if count is greater than one after testing.
- * TODO: See bug 16533525.
- */
- public static boolean showSimCardTile(Context context) {
- if (FeatureFlagPersistent.isEnabled(context, FeatureFlags.NETWORK_INTERNET_V2)) {
- return false;
- }
- final TelephonyManager tm =
- (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
-
- return tm.getSimCount() > 1;
- }
-
- /**
* Queries for the UserInfo of a user. Returns null if the user doesn't exist (was removed).
* @param userManager Instance of UserManager
* @param checkUser The user to check the existence of.
@@ -571,10 +556,11 @@
}
public static ArraySet<String> getHandledDomains(PackageManager pm, String packageName) {
- List<IntentFilterVerificationInfo> iviList = pm.getIntentFilterVerifications(packageName);
- List<IntentFilter> filters = pm.getAllIntentFilters(packageName);
+ final List<IntentFilterVerificationInfo> iviList =
+ pm.getIntentFilterVerifications(packageName);
+ final List<IntentFilter> filters = pm.getAllIntentFilters(packageName);
- ArraySet<String> result = new ArraySet<>();
+ final ArraySet<String> result = new ArraySet<>();
if (iviList != null && iviList.size() > 0) {
for (IntentFilterVerificationInfo ivi : iviList) {
for (String host : ivi.getDomains()) {
@@ -598,16 +584,16 @@
* Returns the application info of the currently installed MDM package.
*/
public static ApplicationInfo getAdminApplicationInfo(Context context, int profileId) {
- DevicePolicyManager dpm =
+ final DevicePolicyManager dpm =
(DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
- ComponentName mdmPackage = dpm.getProfileOwnerAsUser(profileId);
+ final ComponentName mdmPackage = dpm.getProfileOwnerAsUser(profileId);
if (mdmPackage == null) {
return null;
}
- String mdmPackageName = mdmPackage.getPackageName();
+ final String mdmPackageName = mdmPackage.getPackageName();
try {
- IPackageManager ipm = AppGlobals.getPackageManager();
- ApplicationInfo mdmApplicationInfo =
+ final IPackageManager ipm = AppGlobals.getPackageManager();
+ final ApplicationInfo mdmApplicationInfo =
ipm.getApplicationInfo(mdmPackageName, 0, profileId);
return mdmApplicationInfo;
} catch (RemoteException e) {
@@ -634,7 +620,7 @@
*/
public static SpannableString createAccessibleSequence(CharSequence displayText,
String accessibileText) {
- SpannableString str = new SpannableString(displayText);
+ final SpannableString str = new SpannableString(displayText);
str.setSpan(new TtsSpan.TextBuilder(accessibileText).build(), 0,
displayText.length(),
Spannable.SPAN_INCLUSIVE_INCLUSIVE);
@@ -668,7 +654,7 @@
}
final boolean allowAnyUser = isInternal
&& bundle.getBoolean(ChooseLockSettingsHelper.EXTRA_ALLOW_ANY_USER, false);
- int userId = bundle.getInt(Intent.EXTRA_USER_ID, UserHandle.myUserId());
+ final int userId = bundle.getInt(Intent.EXTRA_USER_ID, UserHandle.myUserId());
if (userId == LockPatternUtils.USER_FRP) {
return allowAnyUser ? userId : enforceSystemUser(context, userId);
} else {
@@ -715,7 +701,7 @@
* Returns the user id of the credential owner of the given user id.
*/
public static int getCredentialOwnerUserId(Context context, int userId) {
- UserManager um = getUserManager(context);
+ final UserManager um = getUserManager(context);
return um.getCredentialOwnerProfile(userId);
}
@@ -815,7 +801,7 @@
}
public static boolean hasFingerprintHardware(Context context) {
- FingerprintManager fingerprintManager = getFingerprintManagerOrNull(context);
+ final FingerprintManager fingerprintManager = getFingerprintManagerOrNull(context);
return fingerprintManager != null && fingerprintManager.isHardwareDetected();
}
@@ -828,7 +814,7 @@
}
public static boolean hasFaceHardware(Context context) {
- FaceManager faceManager = getFaceManagerOrNull(context);
+ final FaceManager faceManager = getFaceManagerOrNull(context);
return faceManager != null && faceManager.isHardwareDetected();
}
@@ -881,7 +867,7 @@
public static VolumeInfo maybeInitializeVolume(StorageManager sm, Bundle bundle) {
final String volumeId = bundle.getString(VolumeInfo.EXTRA_VOLUME_ID,
VolumeInfo.ID_PRIVATE_INTERNAL);
- VolumeInfo volume = sm.findVolumeById(volumeId);
+ final VolumeInfo volume = sm.findVolumeById(volumeId);
return isVolumeValid(volume) ? volume : null;
}
@@ -894,12 +880,13 @@
*/
public static boolean isProfileOrDeviceOwner(UserManager userManager,
DevicePolicyManager devicePolicyManager, String packageName) {
- List<UserInfo> userInfos = userManager.getUsers();
+ final List<UserInfo> userInfos = userManager.getUsers();
if (devicePolicyManager.isDeviceOwnerAppOnAnyUser(packageName)) {
return true;
}
for (int i = 0, size = userInfos.size(); i < size; i++) {
- ComponentName cn = devicePolicyManager.getProfileOwnerAsUser(userInfos.get(i).id);
+ final ComponentName cn = devicePolicyManager
+ .getProfileOwnerAsUser(userInfos.get(i).id);
if (cn != null && cn.getPackageName().equals(packageName)) {
return true;
}
@@ -954,9 +941,9 @@
return original;
}
- float scaleWidth = ((float) maxWidth) / actualWidth;
- float scaleHeight = ((float) maxHeight) / actualHeight;
- float scale = Math.min(scaleWidth, scaleHeight);
+ final float scaleWidth = ((float) maxWidth) / actualWidth;
+ final float scaleHeight = ((float) maxHeight) / actualHeight;
+ final float scale = Math.min(scaleWidth, scaleHeight);
final int width = (int) (actualWidth * scale);
final int height = (int) (actualHeight * scale);
diff --git a/src/com/android/settings/accounts/AccountPreferenceController.java b/src/com/android/settings/accounts/AccountPreferenceController.java
index 8e3e702..6e1727b 100644
--- a/src/com/android/settings/accounts/AccountPreferenceController.java
+++ b/src/com/android/settings/accounts/AccountPreferenceController.java
@@ -329,19 +329,23 @@
preferenceGroup.setContentDescription(
mContext.getString(R.string.account_settings));
} else if (userInfo.isManagedProfile()) {
- preferenceGroup.setTitle(R.string.category_work);
- String workGroupSummary = getWorkGroupSummary(context, userInfo);
- preferenceGroup.setSummary(workGroupSummary);
- preferenceGroup.setContentDescription(
- mContext.getString(R.string.accessibility_category_work, workGroupSummary));
+ if (mType == ProfileSelectFragment.ALL) {
+ preferenceGroup.setTitle(R.string.category_work);
+ final String workGroupSummary = getWorkGroupSummary(context, userInfo);
+ preferenceGroup.setSummary(workGroupSummary);
+ preferenceGroup.setContentDescription(
+ mContext.getString(R.string.accessibility_category_work, workGroupSummary));
+ }
profileData.removeWorkProfilePreference = newRemoveWorkProfilePreference();
mHelper.enforceRestrictionOnPreference(profileData.removeWorkProfilePreference,
DISALLOW_REMOVE_MANAGED_PROFILE, UserHandle.myUserId());
profileData.managedProfilePreference = newManagedProfileSettings();
} else {
- preferenceGroup.setTitle(R.string.category_personal);
- preferenceGroup.setContentDescription(
- mContext.getString(R.string.accessibility_category_personal));
+ if (mType == ProfileSelectFragment.ALL) {
+ preferenceGroup.setTitle(R.string.category_personal);
+ preferenceGroup.setContentDescription(
+ mContext.getString(R.string.accessibility_category_personal));
+ }
}
final PreferenceScreen screen = mParent.getPreferenceScreen();
if (screen != null) {
diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java b/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java
index 69318f8..778206b 100644
--- a/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java
+++ b/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java
@@ -25,7 +25,6 @@
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settings.notification.ZenAccessSettings;
/**
* Warning dialog when allowing zen access warning about the privileges being granted.
diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
index 946599b..9c99254 100644
--- a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
+++ b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
@@ -70,7 +70,9 @@
final List<PackageInfo> pkgs = list.getList();
if (pkgs != null) {
for (PackageInfo info : pkgs) {
- requestingPackages.add(info.packageName);
+ if (info.applicationInfo.enabled) {
+ requestingPackages.add(info.packageName);
+ }
}
}
} catch (RemoteException e) {
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingService.java b/src/com/android/settings/bluetooth/BluetoothPairingService.java
index 48e9eee..d93e57d 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingService.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingService.java
@@ -141,7 +141,7 @@
String name = intent.getStringExtra(BluetoothDevice.EXTRA_NAME);
if (TextUtils.isEmpty(name)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
- name = device != null ? device.getAliasName() : res.getString(android.R.string.unknownName);
+ name = device != null ? device.getAlias() : res.getString(android.R.string.unknownName);
}
Log.d(TAG, "Show pairing notification for " + mDevice.getAddress() + " (" + name + ")");
diff --git a/src/com/android/settings/bluetooth/Utils.java b/src/com/android/settings/bluetooth/Utils.java
index d6e395e..48c7212 100755
--- a/src/com/android/settings/bluetooth/Utils.java
+++ b/src/com/android/settings/bluetooth/Utils.java
@@ -45,7 +45,7 @@
private static final String TAG = "BluetoothUtils";
static final boolean V = BluetoothUtils.V; // verbose logging
- static final boolean D = BluetoothUtils.D; // regular logging
+ static final boolean D = BluetoothUtils.D; // regular logging
private Utils() {
}
@@ -93,7 +93,8 @@
@VisibleForTesting
static void showConnectingError(Context context, String name, LocalBluetoothManager manager) {
FeatureFactory.getFactory(context).getMetricsFeatureProvider().visible(context,
- SettingsEnums.PAGE_UNKNOWN, SettingsEnums.ACTION_SETTINGS_BLUETOOTH_CONNECT_ERROR);
+ SettingsEnums.PAGE_UNKNOWN, SettingsEnums.ACTION_SETTINGS_BLUETOOTH_CONNECT_ERROR,
+ 0);
showError(context, name, R.string.bluetooth_connecting_error_message, manager);
}
@@ -125,7 +126,7 @@
}
public static String createRemoteName(Context context, BluetoothDevice device) {
- String mRemoteName = device != null ? device.getAliasName() : null;
+ String mRemoteName = device != null ? device.getAlias() : null;
if (mRemoteName == null) {
mRemoteName = context.getString(R.string.unknown);
diff --git a/src/com/android/settings/core/FeatureFlags.java b/src/com/android/settings/core/FeatureFlags.java
index 8203b35..92e4e72 100644
--- a/src/com/android/settings/core/FeatureFlags.java
+++ b/src/com/android/settings/core/FeatureFlags.java
@@ -23,9 +23,8 @@
public static final String AUDIO_SWITCHER_SETTINGS = "settings_audio_switcher";
public static final String DYNAMIC_SYSTEM = "settings_dynamic_system";
public static final String HEARING_AID_SETTINGS = "settings_bluetooth_hearing_aid";
- public static final String MOBILE_NETWORK_V2 = "settings_mobile_network_v2";
- public static final String NETWORK_INTERNET_V2 = "settings_network_and_internet_v2";
public static final String WIFI_DETAILS_DATAUSAGE_HEADER =
"settings_wifi_details_datausage_header";
public static final String PERSONAL_WORK_PROFILE = "settings_work_profile";
+ public static final String CONTROLLER_ENHANCEMENT = "settings_controller_loading_enhancement";
}
diff --git a/src/com/android/settings/core/InstrumentedFragment.java b/src/com/android/settings/core/InstrumentedFragment.java
index 427e33a..c4ceb4a 100644
--- a/src/com/android/settings/core/InstrumentedFragment.java
+++ b/src/com/android/settings/core/InstrumentedFragment.java
@@ -47,8 +47,4 @@
mVisibilityLoggerMixin.setSourceMetricsCategory(getActivity());
super.onResume();
}
-
- protected final VisibilityLoggerMixin getVisibilityLogger() {
- return mVisibilityLoggerMixin;
- }
}
diff --git a/src/com/android/settings/core/InstrumentedPreferenceFragment.java b/src/com/android/settings/core/InstrumentedPreferenceFragment.java
index f5f245f..8b59281 100644
--- a/src/com/android/settings/core/InstrumentedPreferenceFragment.java
+++ b/src/com/android/settings/core/InstrumentedPreferenceFragment.java
@@ -91,10 +91,6 @@
return getPreferenceManager().getContext();
}
- protected final VisibilityLoggerMixin getVisibilityLogger() {
- return mVisibilityLoggerMixin;
- }
-
/**
* Get the res id for static preference xml for this fragment.
*/
diff --git a/src/com/android/settings/core/instrumentation/SettingsEventLogWriter.java b/src/com/android/settings/core/instrumentation/SettingsEventLogWriter.java
index a58555f..4ffa2d0 100644
--- a/src/com/android/settings/core/instrumentation/SettingsEventLogWriter.java
+++ b/src/com/android/settings/core/instrumentation/SettingsEventLogWriter.java
@@ -25,11 +25,11 @@
public class SettingsEventLogWriter extends EventLogWriter {
@Override
- public void visible(Context context, int source, int category) {
+ public void visible(Context context, int source, int category, int latency) {
if (shouldDisableGenericEventLogging()) {
return;
}
- super.visible(context, source, category);
+ super.visible(context, source, category, latency);
}
@Override
diff --git a/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriter.java b/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriter.java
index 9498732..62954ea 100644
--- a/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriter.java
+++ b/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriter.java
@@ -61,12 +61,12 @@
}
@Override
- public void visible(Context context, int attribution, int pageId) {
- action(attribution /* attribution */,
+ public void visible(Context context, int attribution, int pageId, int latency) {
+ action(attribution /* from pageId */,
SettingsEnums.PAGE_VISIBLE /* action */,
- pageId /* pageId */,
+ pageId /* target pageId */,
"" /* changedPreferenceKey */,
- 0 /* changedPreferenceIntValue */);
+ latency /* changedPreferenceIntValue */);
}
@Override
diff --git a/src/com/android/settings/core/instrumentation/StatsLogWriter.java b/src/com/android/settings/core/instrumentation/StatsLogWriter.java
index bcdecf3..6e09b72 100644
--- a/src/com/android/settings/core/instrumentation/StatsLogWriter.java
+++ b/src/com/android/settings/core/instrumentation/StatsLogWriter.java
@@ -26,13 +26,13 @@
public class StatsLogWriter implements LogWriter {
@Override
- public void visible(Context context, int attribution, int pageId) {
+ public void visible(Context context, int attribution, int pageId, int latency) {
StatsLog.write(StatsLog.SETTINGS_UI_CHANGED /* Atom name */,
- attribution,
+ attribution, /* from pageId */
SettingsEnums.PAGE_VISIBLE /* action */,
- pageId,
+ pageId, /* target pageId */
null /* changedPreferenceKey */,
- 0 /* changedPreferenceIntValue */);
+ latency /* changedPreferenceIntValue */);
}
@Override
diff --git a/src/com/android/settings/datausage/BillingCyclePreference.java b/src/com/android/settings/datausage/BillingCyclePreference.java
index 23c577c..8dea7de 100644
--- a/src/com/android/settings/datausage/BillingCyclePreference.java
+++ b/src/com/android/settings/datausage/BillingCyclePreference.java
@@ -26,27 +26,39 @@
import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
-import com.android.settings.datausage.CellDataPreference.DataStateListener;
+import com.android.settings.network.MobileDataEnabledListener;
-public class BillingCyclePreference extends Preference implements TemplatePreference {
+/**
+ * Preference which displays billing cycle of subscription
+ */
+public class BillingCyclePreference extends Preference
+ implements TemplatePreference, MobileDataEnabledListener.Client {
private NetworkTemplate mTemplate;
private NetworkServices mServices;
private int mSubId;
+ private MobileDataEnabledListener mListener;
+ /**
+ * Preference constructor
+ *
+ * @param context Context of preference
+ * @param arrts The attributes of the XML tag that is inflating the preference
+ */
public BillingCyclePreference(Context context, AttributeSet attrs) {
super(context, attrs);
+ mListener = new MobileDataEnabledListener(context, this);
}
@Override
public void onAttached() {
super.onAttached();
- mListener.setListener(true, mSubId, getContext());
+ mListener.start(mSubId);
}
@Override
public void onDetached() {
- mListener.setListener(false, mSubId, getContext());
+ mListener.stop();
super.onDetached();
}
@@ -73,7 +85,7 @@
@Override
public Intent getIntent() {
- Bundle args = new Bundle();
+ final Bundle args = new Bundle();
args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate);
return new SubSettingLauncher(getContext())
.setDestination(BillingCycleSettings.class.getName())
@@ -83,10 +95,10 @@
.toIntent();
}
- private final DataStateListener mListener = new DataStateListener() {
- @Override
- public void onChange(boolean selfChange) {
- updateEnabled();
- }
- };
+ /**
+ * Implementation of MobileDataEnabledListener.Client
+ */
+ public void onMobileDataEnabledChange() {
+ updateEnabled();
+ }
}
diff --git a/src/com/android/settings/datausage/CellDataPreference.java b/src/com/android/settings/datausage/CellDataPreference.java
index af7e16e..f4f2be7 100644
--- a/src/com/android/settings/datausage/CellDataPreference.java
+++ b/src/com/android/settings/datausage/CellDataPreference.java
@@ -17,14 +17,9 @@
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.DialogInterface;
-import android.database.ContentObserver;
import android.net.NetworkTemplate;
-import android.net.Uri;
-import android.os.Handler;
-import android.os.Looper;
import android.os.Parcel;
import android.os.Parcelable;
-import android.provider.Settings.Global;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -39,34 +34,38 @@
import androidx.preference.PreferenceViewHolder;
import com.android.settings.R;
-import com.android.settings.Utils;
+import com.android.settings.network.MobileDataEnabledListener;
+import com.android.settings.network.ProxySubscriptionManager;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.CustomDialogPreferenceCompat;
-import java.util.List;
-
-public class CellDataPreference extends CustomDialogPreferenceCompat implements TemplatePreference {
+/**
+ * Preference of cellular data control within Data Usage
+ */
+public class CellDataPreference extends CustomDialogPreferenceCompat
+ implements TemplatePreference, MobileDataEnabledListener.Client {
private static final String TAG = "CellDataPreference";
public int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
public boolean mChecked;
public boolean mMultiSimDialog;
- private TelephonyManager mTelephonyManager;
@VisibleForTesting
- SubscriptionManager mSubscriptionManager;
+ ProxySubscriptionManager mProxySubscriptionMgr;
+ private MobileDataEnabledListener mDataStateListener;
public CellDataPreference(Context context, AttributeSet attrs) {
super(context, attrs, TypedArrayUtils.getAttr(context,
androidx.preference.R.attr.switchPreferenceStyle,
android.R.attr.switchPreferenceStyle));
+ mProxySubscriptionMgr = ProxySubscriptionManager.getInstance(context);
+ mDataStateListener = new MobileDataEnabledListener(context, this);
}
@Override
protected void onRestoreInstanceState(Parcelable s) {
- CellDataState state = (CellDataState) s;
+ final CellDataState state = (CellDataState) s;
super.onRestoreInstanceState(state.getSuperState());
- mTelephonyManager = TelephonyManager.from(getContext());
mChecked = state.mChecked;
mMultiSimDialog = state.mMultiSimDialog;
if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
@@ -78,7 +77,7 @@
@Override
protected Parcelable onSaveInstanceState() {
- CellDataState state = new CellDataState(super.onSaveInstanceState());
+ final CellDataState state = new CellDataState(super.onSaveInstanceState());
state.mChecked = mChecked;
state.mMultiSimDialog = mMultiSimDialog;
state.mSubId = mSubId;
@@ -88,19 +87,14 @@
@Override
public void onAttached() {
super.onAttached();
- mDataStateListener.setListener(true, mSubId, getContext());
- if (mSubscriptionManager!= null) {
- mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
- }
+ mDataStateListener.start(mSubId);
+ mProxySubscriptionMgr.addActiveSubscriptionsListener(mOnSubscriptionsChangeListener);
}
@Override
public void onDetached() {
- mDataStateListener.setListener(false, mSubId, getContext());
- if (mSubscriptionManager!= null) {
- mSubscriptionManager.removeOnSubscriptionsChangedListener(
- mOnSubscriptionsChangeListener);
- }
+ mDataStateListener.stop();
+ mProxySubscriptionMgr.removeActiveSubscriptionsListener(mOnSubscriptionsChangeListener);
super.onDetached();
}
@@ -109,10 +103,9 @@
if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
throw new IllegalArgumentException("CellDataPreference needs a SubscriptionInfo");
}
- mSubscriptionManager = SubscriptionManager.from(getContext());
- mTelephonyManager = TelephonyManager.from(getContext());
- mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
+ mProxySubscriptionMgr = ProxySubscriptionManager.getInstance(getContext());
+ mProxySubscriptionMgr.addActiveSubscriptionsListener(mOnSubscriptionsChangeListener);
if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
mSubId = subId;
@@ -123,13 +116,13 @@
}
private void updateChecked() {
- setChecked(mTelephonyManager.getDataEnabled(mSubId));
+ setChecked(getContext().getSystemService(TelephonyManager.class).getDataEnabled(mSubId));
}
private void updateEnabled() {
// If this subscription is not active, for example, SIM card is taken out, we disable
// the button.
- setEnabled(mSubscriptionManager.getActiveSubscriptionInfo(mSubId) != null);
+ setEnabled(mProxySubscriptionMgr.getActiveSubscriptionInfo(mSubId) != null);
}
@Override
@@ -137,47 +130,25 @@
final Context context = getContext();
FeatureFactory.getFactory(context).getMetricsFeatureProvider()
.action(context, SettingsEnums.ACTION_CELL_DATA_TOGGLE, !mChecked);
- final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(
+ final SubscriptionInfo currentSir = mProxySubscriptionMgr.getActiveSubscriptionInfo(
mSubId);
- final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();
+ final SubscriptionInfo nextSir = mProxySubscriptionMgr.getActiveSubscriptionInfo(
+ SubscriptionManager.getDefaultDataSubscriptionId());
if (mChecked) {
- // If the device is single SIM or is enabling data on the active data SIM then forgo
- // the pop-up.
- if (!Utils.showSimCardTile(getContext()) ||
- (nextSir != null && currentSir != null &&
- currentSir.getSubscriptionId() == nextSir.getSubscriptionId())) {
- setMobileDataEnabled(false);
- if (nextSir != null && currentSir != null &&
- currentSir.getSubscriptionId() == nextSir.getSubscriptionId()) {
- disableDataForOtherSubscriptions(mSubId);
- }
- return;
+ setMobileDataEnabled(false);
+ if (nextSir != null && currentSir != null
+ && currentSir.getSubscriptionId() == nextSir.getSubscriptionId()) {
+ disableDataForOtherSubscriptions(mSubId);
}
- // disabling data; show confirmation dialog which eventually
- // calls setMobileDataEnabled() once user confirms.
- mMultiSimDialog = false;
- super.performClick(view);
} else {
- // If we are showing the Sim Card tile then we are a Multi-Sim device.
- if (Utils.showSimCardTile(getContext())) {
- mMultiSimDialog = true;
- if (nextSir != null && currentSir != null &&
- currentSir.getSubscriptionId() == nextSir.getSubscriptionId()) {
- setMobileDataEnabled(true);
- disableDataForOtherSubscriptions(mSubId);
- return;
- }
- super.performClick(view);
- } else {
- setMobileDataEnabled(true);
- }
+ setMobileDataEnabled(true);
}
}
private void setMobileDataEnabled(boolean enabled) {
if (DataUsageSummary.LOGD) Log.d(TAG, "setMobileDataEnabled(" + enabled + ","
+ mSubId + ")");
- mTelephonyManager.setDataEnabled(mSubId, enabled);
+ getContext().getSystemService(TelephonyManager.class).setDataEnabled(mSubId, enabled);
setChecked(enabled);
}
@@ -190,7 +161,7 @@
@Override
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
- View switchView = holder.findViewById(android.R.id.switch_widget);
+ final View switchView = holder.findViewById(android.R.id.switch_widget);
switchView.setClickable(false);
((Checkable) switchView).setChecked(mChecked);
}
@@ -215,8 +186,10 @@
private void showMultiSimDialog(Builder builder,
DialogInterface.OnClickListener listener) {
- final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(mSubId);
- final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();
+ final SubscriptionInfo currentSir = mProxySubscriptionMgr.getActiveSubscriptionInfo(
+ mSubId);
+ final SubscriptionInfo nextSir = mProxySubscriptionMgr.getActiveSubscriptionInfo(
+ SubscriptionManager.getDefaultDataSubscriptionId());
final String previousName = (nextSir == null)
? getContext().getResources().getString(R.string.sim_selection_required_pref)
@@ -232,14 +205,10 @@
}
private void disableDataForOtherSubscriptions(int subId) {
- List<SubscriptionInfo> subInfoList = mSubscriptionManager
- .getActiveSubscriptionInfoList(true);
- if (subInfoList != null) {
- for (SubscriptionInfo subInfo : subInfoList) {
- if (subInfo.getSubscriptionId() != subId) {
- mTelephonyManager.setDataEnabled(subInfo.getSubscriptionId(), false);
- }
- }
+ final SubscriptionInfo subInfo = mProxySubscriptionMgr.getActiveSubscriptionInfo(
+ subId);
+ if (subInfo != null) {
+ getContext().getSystemService(TelephonyManager.class).setDataEnabled(subId, false);
}
}
@@ -249,7 +218,7 @@
return;
}
if (mMultiSimDialog) {
- mSubscriptionManager.setDefaultDataSubId(mSubId);
+ mProxySubscriptionMgr.get().setDefaultDataSubId(mSubId);
setMobileDataEnabled(true);
disableDataForOtherSubscriptions(mSubId);
} else {
@@ -259,40 +228,23 @@
}
@VisibleForTesting
- final SubscriptionManager.OnSubscriptionsChangedListener mOnSubscriptionsChangeListener
- = new SubscriptionManager.OnSubscriptionsChangedListener() {
- @Override
- public void onSubscriptionsChanged() {
- if (DataUsageSummary.LOGD) {
- Log.d(TAG, "onSubscriptionsChanged");
- }
- updateEnabled();
- }
- };
-
- private final DataStateListener mDataStateListener = new DataStateListener() {
- @Override
- public void onChange(boolean selfChange) {
- updateChecked();
- }
- };
-
- public abstract static class DataStateListener extends ContentObserver {
- public DataStateListener() {
- super(new Handler(Looper.getMainLooper()));
- }
-
- public void setListener(boolean listening, int subId, Context context) {
- if (listening) {
- Uri uri = Global.getUriFor(Global.MOBILE_DATA);
- if (TelephonyManager.getDefault().getSimCount() != 1) {
- uri = Global.getUriFor(Global.MOBILE_DATA + subId);
+ final ProxySubscriptionManager.OnActiveSubscriptionChangedListener
+ mOnSubscriptionsChangeListener =
+ new ProxySubscriptionManager.OnActiveSubscriptionChangedListener() {
+ public void onChanged() {
+ if (DataUsageSummary.LOGD) {
+ Log.d(TAG, "onSubscriptionsChanged");
+ }
+ updateEnabled();
}
- context.getContentResolver().registerContentObserver(uri, false, this);
- } else {
- context.getContentResolver().unregisterContentObserver(this);
- }
- }
+ };
+
+ /**
+ * Implementation of MobileDataEnabledListener.Client
+ */
+ @VisibleForTesting
+ public void onMobileDataEnabledChange() {
+ updateChecked();
}
public static class CellDataState extends BaseSavedState {
diff --git a/src/com/android/settings/datausage/DataUsageList.java b/src/com/android/settings/datausage/DataUsageList.java
index f477ba3..f747951 100644
--- a/src/com/android/settings/datausage/DataUsageList.java
+++ b/src/com/android/settings/datausage/DataUsageList.java
@@ -39,7 +39,6 @@
import android.provider.Settings;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
import android.util.Log;
import android.util.SparseArray;
import android.view.View;
@@ -57,6 +56,8 @@
import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.datausage.CycleAdapter.SpinnerInterface;
+import com.android.settings.network.MobileDataEnabledListener;
+import com.android.settings.network.ProxySubscriptionManager;
import com.android.settings.widget.LoadingViewController;
import com.android.settingslib.AppItem;
import com.android.settingslib.net.NetworkCycleChartData;
@@ -72,7 +73,8 @@
* Panel showing data usage history across various networks, including options
* to inspect based on usage cycle and control through {@link NetworkPolicy}.
*/
-public class DataUsageList extends DataUsageBaseFragment {
+public class DataUsageList extends DataUsageBaseFragment
+ implements MobileDataEnabledListener.Client {
static final String EXTRA_SUB_ID = "sub_id";
static final String EXTRA_NETWORK_TEMPLATE = "network_template";
@@ -91,13 +93,8 @@
private static final int LOADER_CHART_DATA = 2;
private static final int LOADER_SUMMARY = 3;
- private final CellDataPreference.DataStateListener mDataStateListener =
- new CellDataPreference.DataStateListener() {
- @Override
- public void onChange(boolean selfChange) {
- updatePolicy();
- }
- };
+ @VisibleForTesting
+ MobileDataEnabledListener mDataStateListener;
@VisibleForTesting
NetworkTemplate mTemplate;
@@ -111,7 +108,6 @@
LoadingViewController mLoadingViewController;
private ChartDataUsagePreference mChart;
- private TelephonyManager mTelephonyManager;
private List<NetworkCycleChartData> mCycleData;
private ArrayList<Long> mCycles;
private UidDetailProvider mUidDetailProvider;
@@ -133,14 +129,15 @@
if (!isBandwidthControlEnabled()) {
Log.w(TAG, "No bandwidth control; leaving");
activity.finish();
+ return;
}
mUidDetailProvider = new UidDetailProvider(activity);
- mTelephonyManager = activity.getSystemService(TelephonyManager.class);
mUsageAmount = findPreference(KEY_USAGE_AMOUNT);
mChart = findPreference(KEY_CHART_DATA);
mApps = findPreference(KEY_APPS_GROUP);
processArgument();
+ mDataStateListener = new MobileDataEnabledListener(activity, this);
}
@Override
@@ -190,20 +187,21 @@
@Override
public void onResume() {
super.onResume();
- mDataStateListener.setListener(true, mSubId, getContext());
+ mDataStateListener.start(mSubId);
updateBody();
}
@Override
public void onPause() {
super.onPause();
- mDataStateListener.setListener(false, mSubId, getContext());
+ mDataStateListener.stop();
}
@Override
public void onDestroy() {
mUidDetailProvider.clearCache();
mUidDetailProvider = null;
+ mDataStateListener.stop();
super.onDestroy();
}
@@ -234,6 +232,13 @@
}
/**
+ * Implementation of MobileDataEnabledListener.Client
+ */
+ public void onMobileDataEnabledChange() {
+ updatePolicy();
+ }
+
+ /**
* Update body content based on current tab. Loads network cycle data from system, and
* binds them to visible controls.
*/
@@ -253,7 +258,7 @@
int seriesColor = context.getColor(R.color.sim_noitification);
if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
- final SubscriptionInfo sir = services.mSubscriptionManager
+ final SubscriptionInfo sir = ProxySubscriptionManager.getInstance(context)
.getActiveSubscriptionInfo(mSubId);
if (sir != null) {
@@ -400,7 +405,7 @@
Collections.sort(items);
for (int i = 0; i < items.size(); i++) {
final int percentTotal = largest != 0 ? (int) (items.get(i).total * 100 / largest) : 0;
- AppDataUsagePreference preference = new AppDataUsagePreference(getContext(),
+ final AppDataUsagePreference preference = new AppDataUsagePreference(getContext(),
items.get(i), percentTotal, mUidDetailProvider);
preference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java
index d26fc30..0796e5a 100644
--- a/src/com/android/settings/datausage/DataUsageSummary.java
+++ b/src/com/android/settings/datausage/DataUsageSummary.java
@@ -33,6 +33,7 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
+import com.android.settings.network.ProxySubscriptionManager;
import com.android.settingslib.NetworkPolicyEditor;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -65,6 +66,7 @@
private DataUsageSummaryPreference mSummaryPreference;
private DataUsageSummaryPreferenceController mSummaryController;
private NetworkTemplate mDefaultTemplate;
+ private ProxySubscriptionManager mProxySubscriptionMgr;
@Override
public int getHelpResource() {
@@ -76,6 +78,11 @@
super.onCreate(icicle);
Context context = getContext();
+ // enable ProxySubscriptionMgr with Lifecycle support for all controllers
+ // live within this fragment
+ mProxySubscriptionMgr = ProxySubscriptionManager.getInstance(context);
+ mProxySubscriptionMgr.setLifecycle(getLifecycle());
+
boolean hasMobileData = DataUsageUtils.hasMobileData(context);
final int defaultSubId = SubscriptionManager.getDefaultDataSubscriptionId();
diff --git a/src/com/android/settings/development/featureflags/FeatureFlagPersistent.java b/src/com/android/settings/development/featureflags/FeatureFlagPersistent.java
index 59318c4..d89df79 100644
--- a/src/com/android/settings/development/featureflags/FeatureFlagPersistent.java
+++ b/src/com/android/settings/development/featureflags/FeatureFlagPersistent.java
@@ -35,7 +35,6 @@
static {
PERSISTENT_FLAGS = new HashSet<>();
PERSISTENT_FLAGS.add(FeatureFlags.HEARING_AID_SETTINGS);
- PERSISTENT_FLAGS.add(FeatureFlags.NETWORK_INTERNET_V2);
PERSISTENT_FLAGS.add(FeatureFlags.DYNAMIC_SYSTEM);
}
diff --git a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
index 52ecc97..71bd8c5 100644
--- a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
@@ -24,8 +24,6 @@
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
-import android.text.BidiFormatter;
-import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
import android.widget.Toast;
@@ -160,10 +158,10 @@
@VisibleForTesting
CharSequence getFormattedPhoneNumber(SubscriptionInfo subscriptionInfo) {
- final String phoneNumber = DeviceInfoUtils.getFormattedPhoneNumber(mContext,
+ final String phoneNumber = DeviceInfoUtils.getBidiFormattedPhoneNumber(mContext,
subscriptionInfo);
return TextUtils.isEmpty(phoneNumber) ? mContext.getString(R.string.device_info_default)
- : BidiFormatter.getInstance().unicodeWrap(phoneNumber, TextDirectionHeuristics.LTR);
+ : phoneNumber;
}
@VisibleForTesting
diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
index 86374b4..857f535 100644
--- a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
+++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
@@ -26,17 +26,15 @@
import android.os.PersistableBundle;
import android.os.UserHandle;
import android.telephony.CarrierConfigManager;
-import android.telephony.SmsCbMessage;
import android.telephony.PhoneStateListener;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
+import android.telephony.SmsCbMessage;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener;
import android.telephony.TelephonyManager;
import android.telephony.euicc.EuiccManager;
-import android.text.BidiFormatter;
-import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
import androidx.annotation.NonNull;
@@ -143,9 +141,9 @@
mSlotIndex = slotId;
mSubscriptionInfo = getPhoneSubscriptionInfo(slotId);
- mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
- mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
- mEuiccManager = mContext.getSystemService(EuiccManager.class);
+ mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
+ mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
+ mEuiccManager = mContext.getSystemService(EuiccManager.class);
mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class);
mRes = mContext.getResources();
@@ -184,9 +182,9 @@
mTelephonyManager.createForSubscriptionId(mSubscriptionInfo.getSubscriptionId())
.listen(mPhoneStateListener,
- PhoneStateListener.LISTEN_DATA_CONNECTION_STATE
- | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS
- | PhoneStateListener.LISTEN_SERVICE_STATE);
+ PhoneStateListener.LISTEN_DATA_CONNECTION_STATE
+ | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS
+ | PhoneStateListener.LISTEN_SERVICE_STATE);
mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangedListener);
if (mShowLatestAreaInfo) {
@@ -224,8 +222,8 @@
private void updatePhoneNumber() {
// If formattedNumber is null or empty, it'll display as "Unknown".
- mDialog.setText(PHONE_NUMBER_VALUE_ID, BidiFormatter.getInstance().unicodeWrap(
- getPhoneNumber(), TextDirectionHeuristics.LTR));
+ mDialog.setText(PHONE_NUMBER_VALUE_ID,
+ DeviceInfoUtils.getBidiFormattedPhoneNumber(mContext, mSubscriptionInfo));
}
private void updateDataState(int state) {
@@ -407,13 +405,14 @@
private void updateImsRegistrationState() {
final int subscriptionId = mSubscriptionInfo.getSubscriptionId();
final PersistableBundle carrierConfig =
- mCarrierConfigManager.getConfigForSubId(subscriptionId);
+ mCarrierConfigManager.getConfigForSubId(subscriptionId);
final boolean showImsRegState = carrierConfig == null ? false :
- carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL);
+ carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL);
if (showImsRegState) {
final boolean isImsRegistered = mTelephonyManager.isImsRegistered(subscriptionId);
mDialog.setText(IMS_REGISTRATION_STATE_VALUE_ID, mRes.getString(isImsRegistered ?
- R.string.ims_reg_status_registered : R.string.ims_reg_status_not_registered));
+ R.string.ims_reg_status_registered : R.string.ims_reg_status_not_registered));
} else {
mDialog.removeSettingFromScreen(IMS_REGISTRATION_STATE_LABEL_ID);
mDialog.removeSettingFromScreen(IMS_REGISTRATION_STATE_VALUE_ID);
@@ -462,11 +461,6 @@
}
@VisibleForTesting
- String getPhoneNumber() {
- return DeviceInfoUtils.getFormattedPhoneNumber(mContext, mSubscriptionInfo);
- }
-
- @VisibleForTesting
SignalStrength getSignalStrength() {
return mTelephonyManager.getSignalStrength();
}
diff --git a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
index 7741a97..70b964c 100644
--- a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
@@ -46,7 +46,6 @@
import com.android.settings.SettingsActivity;
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.applications.AppUtils;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -355,7 +354,7 @@
// Don't show over-counted, unaccounted and hidden system module in any condition
return sipper.drainType == BatterySipper.DrainType.OVERCOUNTED
|| sipper.drainType == BatterySipper.DrainType.UNACCOUNTED
- || mBatteryUtils.isHiddenSystemModule(sipper);
+ || mBatteryUtils.isHiddenSystemModule(sipper) || sipper.getUid() < 0;
}
@VisibleForTesting
diff --git a/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRenderer.java b/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRenderer.java
index 91b2e97..ccfb732 100644
--- a/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRenderer.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRenderer.java
@@ -65,7 +65,7 @@
mContext).getMetricsFeatureProvider();
metricsFeatureProvider.visible(mContext, SettingsEnums.SETTINGS_HOMEPAGE,
- card.getMetricsConstant());
+ card.getMetricsConstant(), 0);
initializePrimaryClick(view, card, metricsFeatureProvider);
initializeView(view, card);
initializeActionButton(view, card, metricsFeatureProvider);
diff --git a/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java
index 3557e49..bd0bd7a 100644
--- a/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java
@@ -116,8 +116,8 @@
private CharSequence getSsid() {
WifiConfiguration wifiConfig = mWifiManager.getWifiApConfiguration();
if (wifiConfig == null) {
- return mAppContext.getText(
- com.android.internal.R.string.wifi_tether_configure_ssid_default);
+ // Should never happen.
+ return "";
} else {
return wifiConfig.SSID;
}
diff --git a/src/com/android/settings/homepage/contextualcards/deviceinfo/DeviceInfoSlice.java b/src/com/android/settings/homepage/contextualcards/deviceinfo/DeviceInfoSlice.java
index 48a9aa5..f3baaa1 100644
--- a/src/com/android/settings/homepage/contextualcards/deviceinfo/DeviceInfoSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/deviceinfo/DeviceInfoSlice.java
@@ -23,8 +23,6 @@
import android.net.Uri;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
-import android.text.BidiFormatter;
-import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
import androidx.annotation.VisibleForTesting;
@@ -100,10 +98,10 @@
if (subscriptionInfo == null) {
return mContext.getString(R.string.device_info_default);
}
- final String phoneNumber = DeviceInfoUtils.getFormattedPhoneNumber(mContext,
+ final String phoneNumber = DeviceInfoUtils.getBidiFormattedPhoneNumber(mContext,
subscriptionInfo);
return TextUtils.isEmpty(phoneNumber) ? mContext.getString(R.string.device_info_default)
- : BidiFormatter.getInstance().unicodeWrap(phoneNumber, TextDirectionHeuristics.LTR);
+ : phoneNumber;
}
private CharSequence getDeviceModel() {
diff --git a/src/com/android/settings/media/MediaOutputIndicatorSlice.java b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
index 073682c..d66ee8b 100644
--- a/src/com/android/settings/media/MediaOutputIndicatorSlice.java
+++ b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
@@ -148,14 +148,14 @@
// Return Hearing Aid device name if it is active
BluetoothDevice activeDevice = findActiveHearingAidDevice();
if (activeDevice != null) {
- return activeDevice.getAliasName();
+ return activeDevice.getAlias();
}
// Return A2DP device name if it is active
final A2dpProfile a2dpProfile = mProfileManager.getA2dpProfile();
if (a2dpProfile != null) {
activeDevice = a2dpProfile.getActiveDevice();
if (activeDevice != null) {
- return activeDevice.getAliasName();
+ return activeDevice.getAlias();
}
}
// No active device, return default summary
diff --git a/src/com/android/settings/media/MediaOutputSlice.java b/src/com/android/settings/media/MediaOutputSlice.java
index 8086c41..2b70caf 100644
--- a/src/com/android/settings/media/MediaOutputSlice.java
+++ b/src/com/android/settings/media/MediaOutputSlice.java
@@ -164,7 +164,7 @@
intent.putExtra(MEDIA_DEVICE_ID, id);
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
return PendingIntent.getBroadcast(context, requestCode /* requestCode */, intent,
- PendingIntent.FLAG_CANCEL_CURRENT);
+ PendingIntent.FLAG_UPDATE_CURRENT);
}
@Override
diff --git a/src/com/android/settings/network/ActiveSubsciptionsListener.java b/src/com/android/settings/network/ActiveSubsciptionsListener.java
index 1ed8078..d7a1def 100644
--- a/src/com/android/settings/network/ActiveSubsciptionsListener.java
+++ b/src/com/android/settings/network/ActiveSubsciptionsListener.java
@@ -85,6 +85,7 @@
@VisibleForTesting
BroadcastReceiver mSubscriptionChangeReceiver;
+ private Integer mMaxActiveSubscriptionInfos;
private List<SubscriptionInfo> mCachedActiveSubscriptionInfo;
/**
@@ -126,6 +127,24 @@
}
/**
+ * Get current max. number active subscription info(s) been setup within device
+ *
+ * @return max. number of active subscription info(s)
+ */
+ public int getActiveSubscriptionInfoCountMax() {
+ int count = 0;
+ if (mMaxActiveSubscriptionInfos == null) {
+ count = getSubscriptionManager().getActiveSubscriptionInfoCountMax();
+ if (mIsMonitoringDataChange) {
+ mMaxActiveSubscriptionInfos = count;
+ }
+ } else {
+ count = mMaxActiveSubscriptionInfos.intValue();
+ }
+ return count;
+ }
+
+ /**
* Get a list of active subscription info
*
* @return A list of active subscription info
@@ -134,7 +153,7 @@
if (mIsCachedDataAvailable) {
return mCachedActiveSubscriptionInfo;
}
- mIsCachedDataAvailable = true;
+ mIsCachedDataAvailable = mIsMonitoringDataChange;
mCachedActiveSubscriptionInfo = getSubscriptionManager().getActiveSubscriptionInfoList();
return mCachedActiveSubscriptionInfo;
}
@@ -163,6 +182,7 @@
*/
public void clearCache() {
mIsCachedDataAvailable = false;
+ mMaxActiveSubscriptionInfos = null;
mCachedActiveSubscriptionInfo = null;
}
diff --git a/src/com/android/settings/network/GlobalSettingsChangeListener.java b/src/com/android/settings/network/GlobalSettingsChangeListener.java
index 03103d7..89d374b 100644
--- a/src/com/android/settings/network/GlobalSettingsChangeListener.java
+++ b/src/com/android/settings/network/GlobalSettingsChangeListener.java
@@ -33,7 +33,8 @@
/**
* A listener for Settings.Global configuration change, with support of Lifecycle
*/
-abstract class GlobalSettingsChangeListener extends ContentObserver implements LifecycleObserver {
+public abstract class GlobalSettingsChangeListener extends ContentObserver
+ implements LifecycleObserver, AutoCloseable {
/**
* Constructor
@@ -41,7 +42,7 @@
* @param context of this listener
* @param field field of Global Settings
*/
- GlobalSettingsChangeListener(Context context, String field) {
+ public GlobalSettingsChangeListener(Context context, String field) {
super(new Handler());
mContext = context;
mField = field;
@@ -92,6 +93,13 @@
@OnLifecycleEvent(ON_DESTROY)
void onDestroy() {
+ close();
+ }
+
+ /**
+ * Implementation of AutoCloseable
+ */
+ public void close() {
monitorUri(false);
notifyChangeBasedOn(null);
}
diff --git a/src/com/android/settings/network/MobileDataEnabledListener.java b/src/com/android/settings/network/MobileDataEnabledListener.java
index 8344f88..4c04282 100644
--- a/src/com/android/settings/network/MobileDataEnabledListener.java
+++ b/src/com/android/settings/network/MobileDataEnabledListener.java
@@ -17,53 +17,98 @@
package com.android.settings.network;
import android.content.Context;
-import android.database.ContentObserver;
-import android.net.Uri;
-import android.os.Handler;
import android.provider.Settings;
import android.telephony.SubscriptionManager;
/** Helper class to listen for changes in the enabled state of mobile data. */
-public class MobileDataEnabledListener extends ContentObserver {
+public class MobileDataEnabledListener {
private Context mContext;
private Client mClient;
private int mSubId;
+ /**
+ * There're 2 listeners both activated at the same time.
+ * For project that access MOBILE_DATA, only first listener is functional.
+ * For project that access "MOBILE_DATA + subId", first listener will be stopped when receiving
+ * any onChange from second listener.
+ */
+ private GlobalSettingsChangeListener mListener;
+ private GlobalSettingsChangeListener mListenerForSubId;
public interface Client {
void onMobileDataEnabledChange();
}
+ /**
+ * Constructor
+ *
+ * @param context of this listener
+ * @param client callback when configuration changed
+ */
public MobileDataEnabledListener(Context context, Client client) {
- super(new Handler());
mContext = context;
mClient = client;
mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
}
- /** Starts listening to changes in the enabled state for data on the given subscription id. */
+ /**
+ * Starts listening to changes in the enabled state for data on the given subscription id.
+ *
+ * @param subId subscription id for enabled state of data subscription
+ */
public void start(int subId) {
mSubId = subId;
- Uri uri;
- if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
- uri = Settings.Global.getUriFor(Settings.Global.MOBILE_DATA);
- } else {
- uri = Settings.Global.getUriFor(Settings.Global.MOBILE_DATA + mSubId);
+
+ if (mListener == null) {
+ mListener = new GlobalSettingsChangeListener(mContext,
+ Settings.Global.MOBILE_DATA) {
+ public void onChanged(String field) {
+ mClient.onMobileDataEnabledChange();
+ }
+ };
}
- mContext.getContentResolver().registerContentObserver(uri, true /*notifyForDescendants*/,
- this);
+ stopMonitorSubIdSpecific();
+
+ if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ return;
+ }
+
+ mListenerForSubId = new GlobalSettingsChangeListener(mContext,
+ Settings.Global.MOBILE_DATA + mSubId) {
+ public void onChanged(String field) {
+ stopMonitor();
+ mClient.onMobileDataEnabledChange();
+ }
+ };
}
+ /**
+ * Get latest subscription id configured for listening
+ *
+ * @return subscription id
+ */
public int getSubId() {
return mSubId;
}
- public MobileDataEnabledListener stop() {
- mContext.getContentResolver().unregisterContentObserver(this);
- return this;
+ /**
+ * Stop listening to changes in the enabled state for data.
+ */
+ public void stop() {
+ stopMonitor();
+ stopMonitorSubIdSpecific();
}
- @Override
- public void onChange(boolean selfChange) {
- mClient.onMobileDataEnabledChange();
+ private void stopMonitor() {
+ if (mListener != null) {
+ mListener.close();
+ mListener = null;
+ }
+ }
+
+ private void stopMonitorSubIdSpecific() {
+ if (mListenerForSubId != null) {
+ mListenerForSubId.close();
+ mListenerForSubId = null;
+ }
}
}
diff --git a/src/com/android/settings/network/MobileNetworkPreferenceController.java b/src/com/android/settings/network/MobileNetworkPreferenceController.java
index 646f10c..5612d2e 100644
--- a/src/com/android/settings/network/MobileNetworkPreferenceController.java
+++ b/src/com/android/settings/network/MobileNetworkPreferenceController.java
@@ -19,7 +19,6 @@
import static android.os.UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS;
import android.content.BroadcastReceiver;
-import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
@@ -28,13 +27,11 @@
import android.telephony.PhoneStateListener;
import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
-import android.util.FeatureFlagUtils;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
-import com.android.settings.core.FeatureFlags;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.network.telephony.MobileNetworkActivity;
import com.android.settings.network.telephony.MobileNetworkUtils;
@@ -51,10 +48,6 @@
@VisibleForTesting
static final String KEY_MOBILE_NETWORK_SETTINGS = "mobile_network_settings";
- @VisibleForTesting
- static final String MOBILE_NETWORK_PACKAGE = "com.android.phone";
- @VisibleForTesting
- static final String MOBILE_NETWORK_CLASS = "com.android.phone.MobileNetworkSettings";
private final boolean mIsSecondaryUser;
private final TelephonyManager mTelephonyManager;
@@ -147,15 +140,8 @@
@Override
public boolean handlePreferenceTreeClick(Preference preference) {
if (KEY_MOBILE_NETWORK_SETTINGS.equals(preference.getKey())) {
- if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.MOBILE_NETWORK_V2)) {
- final Intent intent = new Intent(mContext, MobileNetworkActivity.class);
- mContext.startActivity(intent);
- } else {
- final Intent intent = new Intent(Intent.ACTION_MAIN);
- intent.setComponent(
- new ComponentName(MOBILE_NETWORK_PACKAGE, MOBILE_NETWORK_CLASS));
- mContext.startActivity(intent);
- }
+ final Intent intent = new Intent(mContext, MobileNetworkActivity.class);
+ mContext.startActivity(intent);
return true;
}
return false;
diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java
index 92c55cb..2bc97e6 100644
--- a/src/com/android/settings/network/NetworkDashboardFragment.java
+++ b/src/com/android/settings/network/NetworkDashboardFragment.java
@@ -20,16 +20,13 @@
import android.app.Dialog;
import android.app.settings.SettingsEnums;
import android.content.Context;
-import android.provider.SearchIndexableResource;
import android.util.Log;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.development.featureflags.FeatureFlagPersistent;
import com.android.settings.network.MobilePlanPreferenceController.MobilePlanPreferenceHost;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.wifi.WifiMasterSwitchPreferenceController;
@@ -39,7 +36,6 @@
import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
@SearchIndexable
@@ -60,20 +56,14 @@
@Override
protected int getPreferenceScreenResId() {
- if (FeatureFlagPersistent.isEnabled(getContext(), FeatureFlags.NETWORK_INTERNET_V2)) {
- return R.xml.network_and_internet_v2;
- } else {
- return R.xml.network_and_internet;
- }
+ return R.xml.network_and_internet;
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
- if (FeatureFlagPersistent.isEnabled(context, FeatureFlags.NETWORK_INTERNET_V2)) {
- use(MultiNetworkHeaderController.class).init(getSettingsLifecycle());
- }
+ use(MultiNetworkHeaderController.class).init(getSettingsLifecycle());
use(AirplaneModePreferenceController.class).setFragment(this);
}
@@ -95,10 +85,6 @@
new MobilePlanPreferenceController(context, mobilePlanHost);
final WifiMasterSwitchPreferenceController wifiPreferenceController =
new WifiMasterSwitchPreferenceController(context, metricsFeatureProvider);
- MobileNetworkPreferenceController mobileNetworkPreferenceController = null;
- if (!FeatureFlagPersistent.isEnabled(context, FeatureFlags.NETWORK_INTERNET_V2)) {
- mobileNetworkPreferenceController = new MobileNetworkPreferenceController(context);
- }
final VpnPreferenceController vpnPreferenceController =
new VpnPreferenceController(context);
@@ -108,21 +94,13 @@
if (lifecycle != null) {
lifecycle.addObserver(mobilePlanPreferenceController);
lifecycle.addObserver(wifiPreferenceController);
- if (mobileNetworkPreferenceController != null) {
- lifecycle.addObserver(mobileNetworkPreferenceController);
- }
lifecycle.addObserver(vpnPreferenceController);
lifecycle.addObserver(privateDnsPreferenceController);
}
final List<AbstractPreferenceController> controllers = new ArrayList<>();
- if (FeatureFlagPersistent.isEnabled(context, FeatureFlags.NETWORK_INTERNET_V2)) {
- controllers.add(new MobileNetworkSummaryController(context, lifecycle));
- }
- if (mobileNetworkPreferenceController != null) {
- controllers.add(mobileNetworkPreferenceController);
- }
+ controllers.add(new MobileNetworkSummaryController(context, lifecycle));
controllers.add(new TetherPreferenceController(context, lifecycle));
controllers.add(vpnPreferenceController);
controllers.add(new ProxyPreferenceController(context));
@@ -163,19 +141,7 @@
}
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
- new BaseSearchIndexProvider() {
- @Override
- public List<SearchIndexableResource> getXmlResourcesToIndex(
- Context context, boolean enabled) {
- final SearchIndexableResource sir = new SearchIndexableResource(context);
- if (FeatureFlagPersistent.isEnabled(context,
- FeatureFlags.NETWORK_INTERNET_V2)) {
- sir.xmlResId = R.xml.network_and_internet_v2;
- } else {
- sir.xmlResId = R.xml.network_and_internet;
- }
- return Arrays.asList(sir);
- }
+ new BaseSearchIndexProvider(R.xml.network_and_internet) {
@Override
public List<AbstractPreferenceController> createPreferenceControllers(Context
diff --git a/src/com/android/settings/network/ProxySubscriptionManager.java b/src/com/android/settings/network/ProxySubscriptionManager.java
index ec4fcbe..4e3e717 100644
--- a/src/com/android/settings/network/ProxySubscriptionManager.java
+++ b/src/com/android/settings/network/ProxySubscriptionManager.java
@@ -82,7 +82,6 @@
}
};
- mKeepCacheWhenOnStart = true;
mSubsciptionsMonitor.start();
}
@@ -90,7 +89,6 @@
private Context mContext;
private ActiveSubsciptionsListener mSubsciptionsMonitor;
private GlobalSettingsChangeListener mAirplaneModeMonitor;
- private boolean mKeepCacheWhenOnStart;
private List<OnActiveSubscriptionChangedListener> mActiveSubscriptionsListeners;
@@ -100,6 +98,12 @@
}
}
+ @Override
+ public void onSubscriptionsChanged() {
+ clearCache();
+ notifyAllListeners();
+ }
+
/**
* Lifecycle for data within proxy
*
@@ -118,15 +122,11 @@
@OnLifecycleEvent(ON_START)
void onStart() {
- if (!mKeepCacheWhenOnStart) {
- mSubsciptionsMonitor.clearCache();
- }
mSubsciptionsMonitor.start();
}
@OnLifecycleEvent(ON_STOP)
void onStop() {
- mKeepCacheWhenOnStart = false;
mSubsciptionsMonitor.stop();
}
@@ -152,6 +152,15 @@
}
/**
+ * Get current max. number active subscription info(s) been setup within device
+ *
+ * @return max. number of active subscription info(s)
+ */
+ public int getActiveSubscriptionInfoCountMax() {
+ return mSubsciptionsMonitor.getActiveSubscriptionInfoCountMax();
+ }
+
+ /**
* Get a list of active subscription info
*
* @return A list of active subscription info
@@ -183,6 +192,9 @@
* @param listener listener to active subscriptions change
*/
public void addActiveSubscriptionsListener(OnActiveSubscriptionChangedListener listener) {
+ if (mActiveSubscriptionsListeners.contains(listener)) {
+ return;
+ }
mActiveSubscriptionsListeners.add(listener);
}
diff --git a/src/com/android/settings/network/telephony/CellInfoUtil.java b/src/com/android/settings/network/telephony/CellInfoUtil.java
index def81a1..3129694 100644
--- a/src/com/android/settings/network/telephony/CellInfoUtil.java
+++ b/src/com/android/settings/network/telephony/CellInfoUtil.java
@@ -17,23 +17,26 @@
package com.android.settings.network.telephony;
import android.telephony.CellIdentity;
-import android.telephony.CellIdentityCdma;
import android.telephony.CellIdentityGsm;
import android.telephony.CellIdentityLte;
+import android.telephony.CellIdentityNr;
+import android.telephony.CellIdentityTdscdma;
import android.telephony.CellIdentityWcdma;
import android.telephony.CellInfo;
import android.telephony.CellInfoCdma;
import android.telephony.CellInfoGsm;
import android.telephony.CellInfoLte;
+import android.telephony.CellInfoNr;
+import android.telephony.CellInfoTdscdma;
import android.telephony.CellInfoWcdma;
import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
-import android.util.Log;
import com.android.internal.telephony.OperatorInfo;
import java.util.List;
+import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -47,85 +50,55 @@
}
/**
- * Wrap a CellIdentity into a CellInfo.
- */
- public static CellInfo wrapCellInfoWithCellIdentity(CellIdentity cellIdentity) {
- if (cellIdentity instanceof CellIdentityLte) {
- CellInfoLte cellInfo = new CellInfoLte();
- cellInfo.setCellIdentity((CellIdentityLte) cellIdentity);
- return cellInfo;
- } else if (cellIdentity instanceof CellIdentityCdma) {
- CellInfoCdma cellInfo = new CellInfoCdma();
- cellInfo.setCellIdentity((CellIdentityCdma) cellIdentity);
- return cellInfo;
- } else if (cellIdentity instanceof CellIdentityWcdma) {
- CellInfoWcdma cellInfo = new CellInfoWcdma();
- cellInfo.setCellIdentity((CellIdentityWcdma) cellIdentity);
- return cellInfo;
- } else if (cellIdentity instanceof CellIdentityGsm) {
- CellInfoGsm cellInfo = new CellInfoGsm();
- cellInfo.setCellIdentity((CellIdentityGsm) cellIdentity);
- return cellInfo;
- } else {
- Log.e(TAG, "Invalid CellInfo type");
- return null;
- }
- }
-
- /**
* Returns the title of the network obtained in the manual search.
*
- * @param cellInfo contains the information of the network.
+ * @param cellId contains the information of the network.
+ * @param networkMccMnc contains the MCCMNC string of the network
* @return Long Name if not null/empty, otherwise Short Name if not null/empty,
* else MCCMNC string.
*/
- public static String getNetworkTitle(CellInfo cellInfo) {
- OperatorInfo oi = getOperatorInfoFromCellInfo(cellInfo);
-
- if (!TextUtils.isEmpty(oi.getOperatorAlphaLong())) {
- return oi.getOperatorAlphaLong();
- } else if (!TextUtils.isEmpty(oi.getOperatorAlphaShort())) {
- return oi.getOperatorAlphaShort();
- } else {
- BidiFormatter bidiFormatter = BidiFormatter.getInstance();
- return bidiFormatter.unicodeWrap(oi.getOperatorNumeric(), TextDirectionHeuristics.LTR);
+ public static String getNetworkTitle(CellIdentity cellId, String networkMccMnc) {
+ if (cellId != null) {
+ String title = Objects.toString(cellId.getOperatorAlphaLong(), "");
+ if (TextUtils.isEmpty(title)) {
+ title = Objects.toString(cellId.getOperatorAlphaShort(), "");
+ }
+ if (!TextUtils.isEmpty(title)) {
+ return title;
+ }
}
+ if (TextUtils.isEmpty(networkMccMnc)) {
+ return "";
+ }
+ final BidiFormatter bidiFormatter = BidiFormatter.getInstance();
+ return bidiFormatter.unicodeWrap(networkMccMnc, TextDirectionHeuristics.LTR);
}
/**
- * Wrap a cell info into an operator info.
+ * Returns the CellIdentity from CellInfo
+ *
+ * @param cellInfo contains the information of the network.
+ * @return CellIdentity within CellInfo
*/
- public static OperatorInfo getOperatorInfoFromCellInfo(CellInfo cellInfo) {
- OperatorInfo oi;
- if (cellInfo instanceof CellInfoLte) {
- CellInfoLte lte = (CellInfoLte) cellInfo;
- oi = new OperatorInfo(
- (String) lte.getCellIdentity().getOperatorAlphaLong(),
- (String) lte.getCellIdentity().getOperatorAlphaShort(),
- lte.getCellIdentity().getMobileNetworkOperator());
- } else if (cellInfo instanceof CellInfoWcdma) {
- CellInfoWcdma wcdma = (CellInfoWcdma) cellInfo;
- oi = new OperatorInfo(
- (String) wcdma.getCellIdentity().getOperatorAlphaLong(),
- (String) wcdma.getCellIdentity().getOperatorAlphaShort(),
- wcdma.getCellIdentity().getMobileNetworkOperator());
- } else if (cellInfo instanceof CellInfoGsm) {
- CellInfoGsm gsm = (CellInfoGsm) cellInfo;
- oi = new OperatorInfo(
- (String) gsm.getCellIdentity().getOperatorAlphaLong(),
- (String) gsm.getCellIdentity().getOperatorAlphaShort(),
- gsm.getCellIdentity().getMobileNetworkOperator());
- } else if (cellInfo instanceof CellInfoCdma) {
- CellInfoCdma cdma = (CellInfoCdma) cellInfo;
- oi = new OperatorInfo(
- (String) cdma.getCellIdentity().getOperatorAlphaLong(),
- (String) cdma.getCellIdentity().getOperatorAlphaShort(),
- "" /* operator numeric */);
- } else {
- Log.e(TAG, "Invalid CellInfo type");
- oi = new OperatorInfo("", "", "");
+ public static CellIdentity getCellIdentity(CellInfo cellInfo) {
+ if (cellInfo == null) {
+ return null;
}
- return oi;
+ CellIdentity cellId = null;
+ if (cellInfo instanceof CellInfoGsm) {
+ cellId = ((CellInfoGsm) cellInfo).getCellIdentity();
+ } else if (cellInfo instanceof CellInfoCdma) {
+ cellId = ((CellInfoCdma) cellInfo).getCellIdentity();
+ } else if (cellInfo instanceof CellInfoWcdma) {
+ cellId = ((CellInfoWcdma) cellInfo).getCellIdentity();
+ } else if (cellInfo instanceof CellInfoTdscdma) {
+ cellId = ((CellInfoTdscdma) cellInfo).getCellIdentity();
+ } else if (cellInfo instanceof CellInfoLte) {
+ cellId = ((CellInfoLte) cellInfo).getCellIdentity();
+ } else if (cellInfo instanceof CellInfoNr) {
+ cellId = ((CellInfoNr) cellInfo).getCellIdentity();
+ }
+ return cellId;
}
/**
@@ -135,14 +108,14 @@
* we only want to wrap the operator info and PLMN to a CellInfo object.
*/
public static CellInfo convertOperatorInfoToCellInfo(OperatorInfo operatorInfo) {
- String operatorNumeric = operatorInfo.getOperatorNumeric();
+ final String operatorNumeric = operatorInfo.getOperatorNumeric();
String mcc = null;
String mnc = null;
if (operatorNumeric != null && operatorNumeric.matches("^[0-9]{5,6}$")) {
mcc = operatorNumeric.substring(0, 3);
mnc = operatorNumeric.substring(3);
}
- CellIdentityGsm cig = new CellIdentityGsm(
+ final CellIdentityGsm cig = new CellIdentityGsm(
Integer.MAX_VALUE /* lac */,
Integer.MAX_VALUE /* cid */,
Integer.MAX_VALUE /* arfcn */,
@@ -152,17 +125,11 @@
operatorInfo.getOperatorAlphaLong(),
operatorInfo.getOperatorAlphaShort());
- CellInfoGsm ci = new CellInfoGsm();
+ final CellInfoGsm ci = new CellInfoGsm();
ci.setCellIdentity(cig);
return ci;
}
- /** Checks whether the network operator is forbidden. */
- public static boolean isForbidden(CellInfo cellInfo, List<String> forbiddenPlmns) {
- String plmn = CellInfoUtil.getOperatorInfoFromCellInfo(cellInfo).getOperatorNumeric();
- return forbiddenPlmns != null && forbiddenPlmns.contains(plmn);
- }
-
/** Convert a list of cellInfos to readable string without sensitive info. */
public static String cellInfoListToString(List<CellInfo> cellInfos) {
return cellInfos.stream()
@@ -172,11 +139,31 @@
/** Convert {@code cellInfo} to a readable string without sensitive info. */
public static String cellInfoToString(CellInfo cellInfo) {
- String cellType = cellInfo.getClass().getSimpleName();
- CellIdentity cid = cellInfo.getCellIdentity();
+ final String cellType = cellInfo.getClass().getSimpleName();
+ final CellIdentity cid = getCellIdentity(cellInfo);
+ String mcc = null;
+ String mnc = null;
+ if (cid != null) {
+ if (cid instanceof CellIdentityGsm) {
+ mcc = ((CellIdentityGsm) cid).getMccString();
+ mnc = ((CellIdentityGsm) cid).getMncString();
+ } else if (cid instanceof CellIdentityWcdma) {
+ mcc = ((CellIdentityWcdma) cid).getMccString();
+ mnc = ((CellIdentityWcdma) cid).getMncString();
+ } else if (cid instanceof CellIdentityTdscdma) {
+ mcc = ((CellIdentityTdscdma) cid).getMccString();
+ mnc = ((CellIdentityTdscdma) cid).getMncString();
+ } else if (cid instanceof CellIdentityLte) {
+ mcc = ((CellIdentityLte) cid).getMccString();
+ mnc = ((CellIdentityLte) cid).getMncString();
+ } else if (cid instanceof CellIdentityNr) {
+ mcc = ((CellIdentityNr) cid).getMccString();
+ mnc = ((CellIdentityNr) cid).getMncString();
+ }
+ }
return String.format(
"{CellType = %s, isRegistered = %b, mcc = %s, mnc = %s, alphaL = %s, alphaS = %s}",
- cellType, cellInfo.isRegistered(), cid.getMccString(), cid.getMncString(),
+ cellType, cellInfo.isRegistered(), mcc, mnc,
cid.getOperatorAlphaLong(), cid.getOperatorAlphaShort());
}
}
diff --git a/src/com/android/settings/network/telephony/MobileNetworkActivity.java b/src/com/android/settings/network/telephony/MobileNetworkActivity.java
index b4653a7..1bcbf97 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkActivity.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkActivity.java
@@ -22,8 +22,8 @@
import android.os.UserManager;
import android.provider.Settings;
import android.telephony.SubscriptionInfo;
-import android.view.Menu;
import android.view.View;
+import android.widget.Toolbar;
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
@@ -33,13 +33,9 @@
import com.android.internal.util.CollectionUtils;
import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
import com.android.settings.core.SettingsBaseActivity;
-import com.android.settings.development.featureflags.FeatureFlagPersistent;
import com.android.settings.network.ProxySubscriptionManager;
-import com.google.android.material.bottomnavigation.BottomNavigationView;
-
import java.util.List;
/**
@@ -80,12 +76,14 @@
return;
}
- if (FeatureFlagPersistent.isEnabled(this, FeatureFlags.NETWORK_INTERNET_V2)) {
- setContentView(R.layout.mobile_network_settings_container_v2);
- } else {
- setContentView(R.layout.mobile_network_settings_container);
+ final Toolbar toolbar = findViewById(R.id.action_bar);
+ toolbar.setVisibility(View.VISIBLE);
+ setActionBar(toolbar);
+
+ final ActionBar actionBar = getActionBar();
+ if (actionBar != null) {
+ actionBar.setDisplayHomeAsUpEnabled(true);
}
- setActionBar(findViewById(R.id.mobile_action_bar));
mProxySubscriptionMgr = ProxySubscriptionManager.getInstance(this);
mProxySubscriptionMgr.setLifecycle(getLifecycle());
@@ -95,11 +93,6 @@
? savedInstanceState.getInt(Settings.EXTRA_SUB_ID, SUB_ID_NULL)
: SUB_ID_NULL;
- final ActionBar actionBar = getActionBar();
- if (actionBar != null) {
- actionBar.setDisplayHomeAsUpEnabled(true);
- }
-
final SubscriptionInfo subscription = getSubscription();
updateTitleAndNavigation(subscription);
}
@@ -141,10 +134,6 @@
if (subscription != null) {
setTitle(subscription.getDisplayName());
}
-
- if (!FeatureFlagPersistent.isEnabled(this, FeatureFlags.NETWORK_INTERNET_V2)) {
- updateBottomNavigationView();
- }
}
@VisibleForTesting
@@ -181,38 +170,6 @@
return subInfos.get(0);
}
- private void updateBottomNavigationView() {
- final BottomNavigationView navigation = findViewById(R.id.bottom_nav);
-
- final List<SubscriptionInfo> subInfos = mProxySubscriptionMgr.getActiveSubscriptionsInfo();
- if (CollectionUtils.size(subInfos) <= 1) {
- navigation.setVisibility(View.GONE);
- } else {
- final Menu menu = navigation.getMenu();
- menu.clear();
- for (int i = 0, size = subInfos.size(); i < size; i++) {
- final SubscriptionInfo subscriptionInfo = subInfos.get(i);
- menu.add(0, subscriptionInfo.getSubscriptionId(), i,
- subscriptionInfo.getDisplayName())
- .setIcon(R.drawable.ic_settings_sim);
- }
- navigation.setOnNavigationItemSelectedListener(item -> {
- final int subId = item.getItemId();
- if (!isSubscriptionChanged(subId)) {
- return true;
- }
- final SubscriptionInfo subscriptionInfo = mProxySubscriptionMgr
- .getActiveSubscriptionInfo(subId);
- if (subscriptionInfo == null) {
- return true;
- }
- updateSubscriptions(subscriptionInfo);
- return true;
- });
- navigation.setVisibility(View.VISIBLE);
- }
- }
-
@VisibleForTesting
void switchFragment(SubscriptionInfo subInfo) {
final FragmentManager fragmentManager = getSupportFragmentManager();
@@ -224,7 +181,7 @@
final Fragment fragment = new MobileNetworkSettings();
fragment.setArguments(bundle);
- fragmentTransaction.replace(R.id.main_content, fragment, buildFragmentTag(subId));
+ fragmentTransaction.replace(R.id.content_frame, fragment, buildFragmentTag(subId));
fragmentTransaction.commit();
}
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
index a5bf313..a928c28 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkSettings.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
@@ -22,7 +22,6 @@
import android.content.Intent;
import android.os.Bundle;
import android.os.UserManager;
-import android.provider.SearchIndexableResource;
import android.provider.Settings;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -37,11 +36,9 @@
import com.android.internal.telephony.TelephonyIntents;
import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
import com.android.settings.dashboard.RestrictedDashboardFragment;
import com.android.settings.datausage.BillingCyclePreferenceController;
import com.android.settings.datausage.DataUsageSummaryPreferenceController;
-import com.android.settings.development.featureflags.FeatureFlagPersistent;
import com.android.settings.network.telephony.cdma.CdmaSubscriptionPreferenceController;
import com.android.settings.network.telephony.cdma.CdmaSystemSelectPreferenceController;
import com.android.settings.network.telephony.gsm.AutoSelectPreferenceController;
@@ -51,7 +48,6 @@
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.search.SearchIndexable;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -117,8 +113,7 @@
mSubId = getArguments().getInt(Settings.EXTRA_SUB_ID,
MobileNetworkUtils.getSearchableSubscriptionId(context));
- if (FeatureFlagPersistent.isEnabled(getContext(), FeatureFlags.NETWORK_INTERNET_V2) &&
- mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
return Arrays.asList(
new DataUsageSummaryPreferenceController(getActivity(), getSettingsLifecycle(),
this, mSubId));
@@ -130,19 +125,17 @@
public void onAttach(Context context) {
super.onAttach(context);
- if (FeatureFlagPersistent.isEnabled(getContext(), FeatureFlags.NETWORK_INTERNET_V2)) {
- use(CallsDefaultSubscriptionController.class).init(getLifecycle());
- use(SmsDefaultSubscriptionController.class).init(getLifecycle());
- use(MobileNetworkSwitchController.class).init(getLifecycle(), mSubId);
- use(CarrierSettingsVersionPreferenceController.class).init(mSubId);
- use(BillingCyclePreferenceController.class).init(mSubId);
- use(MmsMessagePreferenceController.class).init(mSubId);
- use(DataDuringCallsPreferenceController.class).init(getLifecycle(), mSubId);
- use(DisabledSubscriptionController.class).init(getLifecycle(), mSubId);
- use(DeleteSimProfilePreferenceController.class).init(mSubId, this,
- REQUEST_CODE_DELETE_SUBSCRIPTION);
- use(DisableSimFooterPreferenceController.class).init(mSubId);
- }
+ use(CallsDefaultSubscriptionController.class).init(getLifecycle());
+ use(SmsDefaultSubscriptionController.class).init(getLifecycle());
+ use(MobileNetworkSwitchController.class).init(getLifecycle(), mSubId);
+ use(CarrierSettingsVersionPreferenceController.class).init(mSubId);
+ use(BillingCyclePreferenceController.class).init(mSubId);
+ use(MmsMessagePreferenceController.class).init(mSubId);
+ use(DataDuringCallsPreferenceController.class).init(getLifecycle(), mSubId);
+ use(DisabledSubscriptionController.class).init(getLifecycle(), mSubId);
+ use(DeleteSimProfilePreferenceController.class).init(mSubId, this,
+ REQUEST_CODE_DELETE_SUBSCRIPTION);
+ use(DisableSimFooterPreferenceController.class).init(mSubId);
use(MobileDataPreferenceController.class).init(getFragmentManager(), mSubId);
use(RoamingPreferenceController.class).init(getFragmentManager(), mSubId);
use(ApnPreferenceController.class).init(mSubId);
@@ -151,9 +144,7 @@
use(PreferredNetworkModePreferenceController.class).init(mSubId);
use(EnabledNetworkModePreferenceController.class).init(getLifecycle(), mSubId);
use(DataServiceSetupPreferenceController.class).init(mSubId);
- if (!FeatureFlagPersistent.isEnabled(getContext(), FeatureFlags.NETWORK_INTERNET_V2)) {
- use(EuiccPreferenceController.class).init(mSubId);
- }
+
final WifiCallingPreferenceController wifiCallingPreferenceController =
use(WifiCallingPreferenceController.class).init(mSubId);
@@ -204,11 +195,7 @@
@Override
protected int getPreferenceScreenResId() {
- if (FeatureFlagPersistent.isEnabled(getContext(), FeatureFlags.NETWORK_INTERNET_V2)) {
- return R.xml.mobile_network_settings_v2;
- } else {
- return R.xml.mobile_network_settings;
- }
+ return R.xml.mobile_network_settings;
}
@Override
@@ -250,8 +237,7 @@
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- if (FeatureFlagPersistent.isEnabled(getContext(), FeatureFlags.NETWORK_INTERNET_V2) &&
- mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
final MenuItem item = menu.add(Menu.NONE, R.id.edit_sim_name, Menu.NONE,
R.string.mobile_network_sim_name);
item.setIcon(com.android.internal.R.drawable.ic_mode_edit);
@@ -262,8 +248,7 @@
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
- if (FeatureFlagPersistent.isEnabled(getContext(), FeatureFlags.NETWORK_INTERNET_V2) &&
- mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
if (menuItem.getItemId() == R.id.edit_sim_name) {
RenameMobileNetworkDialogFragment.newInstance(mSubId).show(
getFragmentManager(), RenameMobileNetworkDialogFragment.TAG);
@@ -274,20 +259,7 @@
}
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
- new BaseSearchIndexProvider() {
- @Override
- public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
- boolean enabled) {
- final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
- final SearchIndexableResource sir = new SearchIndexableResource(context);
- sir.xmlResId = FeatureFlagPersistent.isEnabled(context,
- FeatureFlags.NETWORK_INTERNET_V2)
- ? R.xml.mobile_network_settings_v2
- : R.xml.mobile_network_settings;
- result.add(sir);
- return result;
- }
+ new BaseSearchIndexProvider(R.xml.mobile_network_settings) {
/** suppress full page if user is not admin */
@Override
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSwitchController.java b/src/com/android/settings/network/telephony/MobileNetworkSwitchController.java
index 02396dd..94f86f4 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkSwitchController.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkSwitchController.java
@@ -22,24 +22,19 @@
import android.content.Context;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
-import android.util.Log;
-
-import com.android.settings.R;
-import com.android.settings.core.BasePreferenceController;
-import com.android.settings.core.FeatureFlags;
-import com.android.settings.development.featureflags.FeatureFlagPersistent;
-import com.android.settings.network.SubscriptionUtil;
-import com.android.settings.network.SubscriptionsChangeListener;
-import com.android.settings.widget.SwitchBar;
-import com.android.settingslib.widget.LayoutPreference;
-
-import java.util.List;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.PreferenceScreen;
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.network.SubscriptionUtil;
+import com.android.settings.network.SubscriptionsChangeListener;
+import com.android.settings.widget.SwitchBar;
+import com.android.settingslib.widget.LayoutPreference;
+
/** This controls a switch to allow enabling/disabling a mobile network */
public class MobileNetworkSwitchController extends BasePreferenceController implements
SubscriptionsChangeListener.SubscriptionsChangeListenerClient, LifecycleObserver {
@@ -118,11 +113,8 @@
@Override
public int getAvailabilityStatus() {
- if (FeatureFlagPersistent.isEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2)) {
- return AVAILABLE_UNSEARCHABLE;
- } else {
- return CONDITIONALLY_UNAVAILABLE;
- }
+ return AVAILABLE_UNSEARCHABLE;
+
}
@Override
diff --git a/src/com/android/settings/network/telephony/NetworkOperatorPreference.java b/src/com/android/settings/network/telephony/NetworkOperatorPreference.java
index 77f40da..db7c864 100644
--- a/src/com/android/settings/network/telephony/NetworkOperatorPreference.java
+++ b/src/com/android/settings/network/telephony/NetworkOperatorPreference.java
@@ -19,16 +19,28 @@
import static android.telephony.SignalStrength.NUM_SIGNAL_STRENGTH_BINS;
import android.content.Context;
+import android.telephony.CellIdentity;
+import android.telephony.CellIdentityGsm;
+import android.telephony.CellIdentityLte;
+import android.telephony.CellIdentityNr;
+import android.telephony.CellIdentityTdscdma;
+import android.telephony.CellIdentityWcdma;
import android.telephony.CellInfo;
+import android.telephony.CellInfoCdma;
+import android.telephony.CellInfoGsm;
+import android.telephony.CellInfoLte;
+import android.telephony.CellInfoNr;
+import android.telephony.CellInfoTdscdma;
+import android.telephony.CellInfoWcdma;
import android.telephony.CellSignalStrength;
import android.util.Log;
import androidx.preference.Preference;
import com.android.settings.R;
-import com.android.settings.Utils;
import java.util.List;
+import java.util.Objects;
/**
* A Preference represents a network operator in the NetworkSelectSetting fragment.
@@ -41,38 +53,74 @@
private static final int LEVEL_NONE = -1;
private CellInfo mCellInfo;
+ private CellIdentity mCellId;
private List<String> mForbiddenPlmns;
private int mLevel = LEVEL_NONE;
private boolean mShow4GForLTE;
private boolean mUseNewApi;
- public NetworkOperatorPreference(
- CellInfo cellinfo, Context context, List<String> forbiddenPlmns, boolean show4GForLTE) {
+ public NetworkOperatorPreference(Context context, CellInfo cellinfo,
+ List<String> forbiddenPlmns, boolean show4GForLTE) {
+ this(context, forbiddenPlmns, show4GForLTE);
+ updateCell(cellinfo);
+ }
+
+ public NetworkOperatorPreference(Context context, CellIdentity connectedCellId,
+ List<String> forbiddenPlmns, boolean show4GForLTE) {
+ this(context, forbiddenPlmns, show4GForLTE);
+ mCellInfo = null;
+ mCellId = connectedCellId;
+ refresh();
+ }
+
+ private NetworkOperatorPreference(
+ Context context, List<String> forbiddenPlmns, boolean show4GForLTE) {
super(context);
- mCellInfo = cellinfo;
mForbiddenPlmns = forbiddenPlmns;
mShow4GForLTE = show4GForLTE;
mUseNewApi = context.getResources().getBoolean(
com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI);
+ }
+
+ /**
+ * Change cell information
+ */
+ public void updateCell(CellInfo cellinfo) {
+ mCellInfo = cellinfo;
+ mCellId = CellInfoUtil.getCellIdentity(cellinfo);
refresh();
}
- public CellInfo getCellInfo() {
- return mCellInfo;
+ /**
+ * Compare cell within preference
+ */
+ public boolean isSameCell(CellInfo cellinfo) {
+ if (cellinfo == null) {
+ return false;
+ }
+ return mCellId.equals(CellInfoUtil.getCellIdentity(cellinfo));
}
/**
* Refresh the NetworkOperatorPreference by updating the title and the icon.
*/
public void refresh() {
- if (DBG) Log.d(TAG, "refresh the network: " + CellInfoUtil.getNetworkTitle(mCellInfo));
- String networkTitle = CellInfoUtil.getNetworkTitle(mCellInfo);
- if (CellInfoUtil.isForbidden(mCellInfo, mForbiddenPlmns)) {
- networkTitle += " " + getContext().getResources().getString(R.string.forbidden_network);
- }
- setTitle(networkTitle);
+ String networkTitle = getOperatorName();
- final CellSignalStrength signalStrength = mCellInfo.getCellSignalStrength();
+ if ((mForbiddenPlmns != null) && mForbiddenPlmns.contains(getOperatorNumeric())) {
+ if (DBG) Log.d(TAG, "refresh forbidden network: " + networkTitle);
+ networkTitle += " "
+ + getContext().getResources().getString(R.string.forbidden_network);
+ } else {
+ if (DBG) Log.d(TAG, "refresh the network: " + networkTitle);
+ }
+ setTitle(Objects.toString(networkTitle, ""));
+
+ if (mCellInfo == null) {
+ return;
+ }
+
+ final CellSignalStrength signalStrength = getCellSignalStrength(mCellInfo);
final int level = signalStrength != null ? signalStrength.getLevel() : LEVEL_NONE;
if (DBG) Log.d(TAG, "refresh level: " + String.valueOf(level));
if (mLevel != level) {
@@ -88,29 +136,87 @@
updateIcon(level);
}
- private int getIconIdForCell(CellInfo ci) {
- final int type = ci.getCellIdentity().getType();
- switch (type) {
- case CellInfo.TYPE_GSM:
- return R.drawable.signal_strength_g;
- case CellInfo.TYPE_WCDMA: // fall through
- case CellInfo.TYPE_TDSCDMA:
- return R.drawable.signal_strength_3g;
- case CellInfo.TYPE_LTE:
- return mShow4GForLTE
- ? R.drawable.ic_signal_strength_4g : R.drawable.signal_strength_lte;
- case CellInfo.TYPE_CDMA:
- return R.drawable.signal_strength_1x;
- default:
- return MobileNetworkUtils.NO_CELL_DATA_TYPE_ICON;
+ /**
+ * Operator numeric of this cell
+ */
+ public String getOperatorNumeric() {
+ final CellIdentity cellId = mCellId;
+ if (cellId == null) {
+ return null;
}
+ if (cellId instanceof CellIdentityGsm) {
+ return ((CellIdentityGsm) cellId).getMobileNetworkOperator();
+ }
+ if (cellId instanceof CellIdentityWcdma) {
+ return ((CellIdentityWcdma) cellId).getMobileNetworkOperator();
+ }
+ if (cellId instanceof CellIdentityTdscdma) {
+ return ((CellIdentityTdscdma) cellId).getMobileNetworkOperator();
+ }
+ if (cellId instanceof CellIdentityLte) {
+ return ((CellIdentityLte) cellId).getMobileNetworkOperator();
+ }
+ if (cellId instanceof CellIdentityNr) {
+ final String mcc = ((CellIdentityNr) cellId).getMccString();
+ if (mcc == null) {
+ return null;
+ }
+ return mcc.concat(((CellIdentityNr) cellId).getMncString());
+ }
+ return null;
+ }
+
+ /**
+ * Operator name of this cell
+ */
+ public String getOperatorName() {
+ return CellInfoUtil.getNetworkTitle(mCellId, getOperatorNumeric());
+ }
+
+ private int getIconIdForCell(CellInfo ci) {
+ if (ci instanceof CellInfoGsm) {
+ return R.drawable.signal_strength_g;
+ }
+ if (ci instanceof CellInfoCdma) {
+ return R.drawable.signal_strength_1x;
+ }
+ if ((ci instanceof CellInfoWcdma) || (ci instanceof CellInfoTdscdma)) {
+ return R.drawable.signal_strength_3g;
+ }
+ if (ci instanceof CellInfoLte) {
+ return mShow4GForLTE
+ ? R.drawable.ic_signal_strength_4g : R.drawable.signal_strength_lte;
+ }
+ return MobileNetworkUtils.NO_CELL_DATA_TYPE_ICON;
+ }
+
+ private CellSignalStrength getCellSignalStrength(CellInfo ci) {
+ if (ci instanceof CellInfoGsm) {
+ return ((CellInfoGsm) ci).getCellSignalStrength();
+ }
+ if (ci instanceof CellInfoCdma) {
+ return ((CellInfoCdma) ci).getCellSignalStrength();
+ }
+ if (ci instanceof CellInfoWcdma) {
+ return ((CellInfoWcdma) ci).getCellSignalStrength();
+ }
+ if (ci instanceof CellInfoTdscdma) {
+ return ((CellInfoTdscdma) ci).getCellSignalStrength();
+ }
+ if (ci instanceof CellInfoLte) {
+ return ((CellInfoLte) ci).getCellSignalStrength();
+ }
+ if (ci instanceof CellInfoNr) {
+ return ((CellInfoNr) ci).getCellSignalStrength();
+ }
+ return null;
}
private void updateIcon(int level) {
if (!mUseNewApi || level < 0 || level >= NUM_SIGNAL_STRENGTH_BINS) {
return;
}
- Context context = getContext();
+ final Context context = getContext();
setIcon(MobileNetworkUtils.getSignalStrengthIcon(context, level, NUM_SIGNAL_STRENGTH_BINS,
getIconIdForCell(mCellInfo), false));
}
diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
index 4c62de2..2835b6e 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package com.android.settings.network.telephony;
import android.app.Activity;
@@ -39,7 +40,6 @@
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
-import com.android.internal.telephony.OperatorInfo;
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory;
@@ -48,14 +48,12 @@
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
- * "Choose network" settings UI for the Phone app.
+ * "Choose network" settings UI for the Settings app.
*/
public class NetworkSelectSettings extends DashboardFragment {
@@ -66,15 +64,11 @@
private static final int EVENT_NETWORK_SCAN_ERROR = 3;
private static final int EVENT_NETWORK_SCAN_COMPLETED = 4;
- private static final String PREF_KEY_CONNECTED_NETWORK_OPERATOR =
- "connected_network_operator_preference";
private static final String PREF_KEY_NETWORK_OPERATORS = "network_operators_preference";
@VisibleForTesting
PreferenceCategory mPreferenceCategory;
@VisibleForTesting
- PreferenceCategory mConnectedPreferenceCategory;
- @VisibleForTesting
NetworkOperatorPreference mSelectedPreference;
private View mProgressHeader;
private Preference mStatusMessagePreference;
@@ -89,6 +83,12 @@
private final ExecutorService mNetworkScanExecutor = Executors.newFixedThreadPool(1);
private MetricsFeatureProvider mMetricsFeatureProvider;
private boolean mUseNewApi;
+ private long mRequestIdManualNetworkSelect;
+ private long mRequestIdManualNetworkScan;
+ private boolean mScreenIsOn;
+ private long mWaitingForNumberOfScanResults;
+
+ private static final int MIN_NUMBER_OF_SCAN_REQUIRED = 2;
@Override
public void onCreate(Bundle icicle) {
@@ -98,12 +98,12 @@
com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI);
mSubId = getArguments().getInt(Settings.EXTRA_SUB_ID);
- mConnectedPreferenceCategory = findPreference(PREF_KEY_CONNECTED_NETWORK_OPERATOR);
mPreferenceCategory = findPreference(PREF_KEY_NETWORK_OPERATORS);
mStatusMessagePreference = new Preference(getContext());
mStatusMessagePreference.setSelectable(false);
mSelectedPreference = null;
- mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
+ mTelephonyManager = getContext().getSystemService(TelephonyManager.class)
+ .createForSubscriptionId(mSubId);
mNetworkScanHelper = new NetworkScanHelper(
mTelephonyManager, mCallback, mNetworkScanExecutor);
PersistableBundle bundle = ((CarrierConfigManager) getContext().getSystemService(
@@ -138,12 +138,10 @@
if (isProgressBarVisible()) {
return;
}
- setProgressBarVisible(true);
-
- mNetworkScanHelper.startNetworkScan(
- mUseNewApi
- ? NetworkScanHelper.NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS
- : NetworkScanHelper.NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS);
+ mScreenIsOn = true;
+ if (mWaitingForNumberOfScanResults <= 0) {
+ startNetworkQuery();
+ }
}
/**
@@ -160,43 +158,42 @@
@Override
public void onStop() {
super.onStop();
+ mScreenIsOn = false;
+ if (mWaitingForNumberOfScanResults <= 0) {
+ stopNetworkQuery();
+ }
}
@Override
public boolean onPreferenceTreeClick(Preference preference) {
if (preference != mSelectedPreference) {
stopNetworkQuery();
+
// Refresh the last selected item in case users reselect network.
+ clearPreferenceSummary();
if (mSelectedPreference != null) {
- mSelectedPreference.setSummary(null);
+ // Set summary as "Disconnected" to the previously connected network
+ mSelectedPreference.setSummary(R.string.network_disconnected);
}
mSelectedPreference = (NetworkOperatorPreference) preference;
- CellInfo cellInfo = mSelectedPreference.getCellInfo();
mSelectedPreference.setSummary(R.string.network_connecting);
mMetricsFeatureProvider.action(getContext(),
SettingsEnums.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK);
- // Set summary as "Disconnected" to the previously connected network
- if (mConnectedPreferenceCategory.getPreferenceCount() > 0) {
- NetworkOperatorPreference connectedNetworkOperator = (NetworkOperatorPreference)
- (mConnectedPreferenceCategory.getPreference(0));
- if (!CellInfoUtil.getNetworkTitle(cellInfo).equals(
- CellInfoUtil.getNetworkTitle(connectedNetworkOperator.getCellInfo()))) {
- connectedNetworkOperator.setSummary(R.string.network_disconnected);
- }
- }
-
setProgressBarVisible(true);
// Disable the screen until network is manually set
getPreferenceScreen().setEnabled(false);
- final OperatorInfo operatorInfo = CellInfoUtil.getOperatorInfoFromCellInfo(cellInfo);
+ mRequestIdManualNetworkSelect = getNewRequestId();
+ mWaitingForNumberOfScanResults = MIN_NUMBER_OF_SCAN_REQUIRED;
+ final String operatorNumeric = mSelectedPreference.getOperatorNumeric();
ThreadUtils.postOnBackgroundThread(() -> {
- Message msg = mHandler.obtainMessage(EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE);
+ final Message msg = mHandler.obtainMessage(
+ EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE);
msg.obj = mTelephonyManager.setNetworkSelectionModeManual(
- operatorInfo, true /* persistSelection */);
+ operatorNumeric, true /* persistSelection */);
msg.sendToTarget();
});
}
@@ -224,35 +221,85 @@
public void handleMessage(Message msg) {
switch (msg.what) {
case EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE:
- setProgressBarVisible(false);
- getPreferenceScreen().setEnabled(true);
-
- boolean isSucceed = (boolean) msg.obj;
- mSelectedPreference.setSummary(isSucceed
- ? R.string.network_connected
- : R.string.network_could_not_connect);
+ final boolean isSucceed = (boolean) msg.obj;
+ if (isSucceed) {
+ // Don't enable screen here. Wait until result of network re-scan.
+ startNetworkQuery();
+ } else {
+ stopNetworkQuery();
+ setProgressBarVisible(false);
+ getPreferenceScreen().setEnabled(true);
+ // For failure case, only update the summary of selected item.
+ mSelectedPreference.setSummary(R.string.network_could_not_connect);
+ }
break;
case EVENT_NETWORK_SCAN_RESULTS:
- List<CellInfo> results = aggregateCellInfoList((List<CellInfo>) msg.obj);
- Log.d(TAG, "CellInfoList after aggregation: "
- + CellInfoUtil.cellInfoListToString(results));
- mCellInfoList = new ArrayList<>(results);
- if (mCellInfoList != null && mCellInfoList.size() != 0) {
- updateAllPreferenceCategory();
- } else {
- addMessagePreference(R.string.empty_networks_list);
+ final List<CellInfo> results = (List<CellInfo>) msg.obj;
+ if (mRequestIdManualNetworkScan < mRequestIdManualNetworkSelect) {
+ Log.d(TAG, "CellInfoList (drop): "
+ + CellInfoUtil.cellInfoListToString(new ArrayList<>(results)));
+ break;
+ }
+ mWaitingForNumberOfScanResults--;
+ if ((!mScreenIsOn) && (mWaitingForNumberOfScanResults <= 0)) {
+ stopNetworkQuery();
}
+ mCellInfoList = new ArrayList<>(results);
+ Log.d(TAG, "CellInfoList: " + CellInfoUtil.cellInfoListToString(mCellInfoList));
+ if (mCellInfoList != null && mCellInfoList.size() != 0) {
+ final NetworkOperatorPreference connectedPref =
+ updateAllPreferenceCategory();
+ if (connectedPref != null) {
+ // update selected preference instance into connected preference
+ if (mSelectedPreference != null) {
+ mSelectedPreference = connectedPref;
+ }
+ } else if (!getPreferenceScreen().isEnabled()) {
+ if (connectedPref == null) {
+ mSelectedPreference.setSummary(R.string.network_connecting);
+ }
+ }
+ getPreferenceScreen().setEnabled(true);
+ } else if (getPreferenceScreen().isEnabled()) {
+ addMessagePreference(R.string.empty_networks_list);
+ // keep showing progress bar, it will be stopped when error or completed
+ setProgressBarVisible(true);
+ }
break;
case EVENT_NETWORK_SCAN_ERROR:
stopNetworkQuery();
- addMessagePreference(R.string.network_query_error);
+ Log.i(TAG, "Network scan failure " + msg.arg1 + ":"
+ + " scan request 0x" + Long.toHexString(mRequestIdManualNetworkScan)
+ + ", waiting for scan results = " + mWaitingForNumberOfScanResults
+ + ", select request 0x"
+ + Long.toHexString(mRequestIdManualNetworkSelect));
+ if (mRequestIdManualNetworkScan < mRequestIdManualNetworkSelect) {
+ break;
+ }
+ if (!getPreferenceScreen().isEnabled()) {
+ clearPreferenceSummary();
+ getPreferenceScreen().setEnabled(true);
+ } else {
+ addMessagePreference(R.string.network_query_error);
+ }
break;
case EVENT_NETWORK_SCAN_COMPLETED:
stopNetworkQuery();
- if (mCellInfoList == null) {
+ Log.d(TAG, "Network scan complete:"
+ + " scan request 0x" + Long.toHexString(mRequestIdManualNetworkScan)
+ + ", waiting for scan results = " + mWaitingForNumberOfScanResults
+ + ", select request 0x"
+ + Long.toHexString(mRequestIdManualNetworkSelect));
+ if (mRequestIdManualNetworkScan < mRequestIdManualNetworkSelect) {
+ break;
+ }
+ if (!getPreferenceScreen().isEnabled()) {
+ clearPreferenceSummary();
+ getPreferenceScreen().setEnabled(true);
+ } else if (mCellInfoList == null) {
// In case the scan timeout before getting any results
addMessagePreference(R.string.empty_networks_list);
}
@@ -265,48 +312,86 @@
private final NetworkScanHelper.NetworkScanCallback mCallback =
new NetworkScanHelper.NetworkScanCallback() {
public void onResults(List<CellInfo> results) {
- Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_RESULTS, results);
+ final Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_RESULTS, results);
msg.sendToTarget();
}
public void onComplete() {
- Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED);
+ final Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED);
msg.sendToTarget();
}
public void onError(int error) {
- Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_ERROR, error,
+ final Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_ERROR, error,
0 /* arg2 */);
msg.sendToTarget();
}
};
/**
- * Update the currently available network operators list, which only contains the unregistered
- * network operators. So if the device has no data and the network operator in the connected
- * network operator category shows "Disconnected", it will also exist in the available network
- * operator category for user to select. On the other hand, if the device has data and the
- * network operator in the connected network operator category shows "Connected", it will not
- * exist in the available network category.
+ * Update the content of network operators list.
+ *
+ * @return preference which shows connected
*/
@VisibleForTesting
- void updateAllPreferenceCategory() {
- updateConnectedPreferenceCategory();
+ NetworkOperatorPreference updateAllPreferenceCategory() {
+ int numberOfPreferences = mPreferenceCategory.getPreferenceCount();
- mPreferenceCategory.removeAll();
+ // remove unused preferences
+ while (numberOfPreferences > mCellInfoList.size()) {
+ numberOfPreferences--;
+ mPreferenceCategory.removePreference(
+ mPreferenceCategory.getPreference(numberOfPreferences));
+ }
+
+ // update selected preference instance by index
for (int index = 0; index < mCellInfoList.size(); index++) {
- if (!mCellInfoList.get(index).isRegistered()) {
- NetworkOperatorPreference pref = new NetworkOperatorPreference(
- mCellInfoList.get(index), getPrefContext(), mForbiddenPlmns, mShow4GForLTE);
- pref.setKey(CellInfoUtil.getNetworkTitle(mCellInfoList.get(index)));
+ final CellInfo cellInfo = mCellInfoList.get(index);
+
+ if ((mSelectedPreference != null) && mSelectedPreference.isSameCell(cellInfo)) {
+ mSelectedPreference = (NetworkOperatorPreference)
+ (mPreferenceCategory.getPreference(index));
+ }
+ }
+
+ // update the content of preference
+ NetworkOperatorPreference connectedPref = null;
+ for (int index = 0; index < mCellInfoList.size(); index++) {
+ final CellInfo cellInfo = mCellInfoList.get(index);
+
+ NetworkOperatorPreference pref = null;
+ if (index < numberOfPreferences) {
+ final Preference rawPref = mPreferenceCategory.getPreference(index);
+ if (rawPref instanceof NetworkOperatorPreference) {
+ // replace existing preference
+ pref = (NetworkOperatorPreference) rawPref;
+ pref.updateCell(cellInfo);
+ } else {
+ mPreferenceCategory.removePreference(rawPref);
+ }
+ }
+ if (pref == null) {
+ // add new preference
+ pref = new NetworkOperatorPreference(getPrefContext(),
+ cellInfo, mForbiddenPlmns, mShow4GForLTE);
pref.setOrder(index);
mPreferenceCategory.addPreference(pref);
}
+ pref.setKey(pref.getOperatorName());
+
+ if (mCellInfoList.get(index).isRegistered()) {
+ pref.setSummary(R.string.network_connected);
+ connectedPref = pref;
+ } else {
+ pref.setSummary(null);
+ }
}
+
+ return connectedPref;
}
/**
- * Config the connected network operator preference when the page was created. When user get
+ * Config the network operator list when the page was created. When user get
* into this page, the device might or might not have data connection.
* - If the device has data:
* 1. use {@code ServiceState#getNetworkRegistrationInfoList()} to get the currently
@@ -320,63 +405,45 @@
private void forceUpdateConnectedPreferenceCategory() {
if (mTelephonyManager.getDataState() == mTelephonyManager.DATA_CONNECTED) {
// Try to get the network registration states
- ServiceState ss = mTelephonyManager.getServiceState();
- List<NetworkRegistrationInfo> networkList =
+ final ServiceState ss = mTelephonyManager.getServiceState();
+ final List<NetworkRegistrationInfo> networkList =
ss.getNetworkRegistrationInfoListForTransportType(
AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
if (networkList == null || networkList.size() == 0) {
- // Remove the connected network operators category
- mConnectedPreferenceCategory.setVisible(false);
return;
}
- CellIdentity cellIdentity = networkList.get(0).getCellIdentity();
- CellInfo cellInfo = CellInfoUtil.wrapCellInfoWithCellIdentity(cellIdentity);
- if (cellInfo != null) {
- NetworkOperatorPreference pref = new NetworkOperatorPreference(
- cellInfo, getPrefContext(), mForbiddenPlmns, mShow4GForLTE);
- pref.setTitle(MobileNetworkUtils.getCurrentCarrierNameForDisplay(
- getPrefContext(), mSubId));
- pref.setSummary(R.string.network_connected);
- // Update the signal strength icon, since the default signalStrength value would be
- // zero (it would be quite confusing why the connected network has no signal)
- pref.setIcon(SignalStrength.NUM_SIGNAL_STRENGTH_BINS - 1);
- mConnectedPreferenceCategory.addPreference(pref);
- } else {
- // Remove the connected network operators category
- mConnectedPreferenceCategory.setVisible(false);
+ for (NetworkRegistrationInfo regInfo : networkList) {
+ final CellIdentity cellIdentity = regInfo.getCellIdentity();
+ if (cellIdentity != null) {
+ final NetworkOperatorPreference pref = new NetworkOperatorPreference(
+ getPrefContext(), cellIdentity, mForbiddenPlmns, mShow4GForLTE);
+ pref.setSummary(R.string.network_connected);
+ // Update the signal strength icon, since the default signalStrength value
+ // would be zero
+ // (it would be quite confusing why the connected network has no signal)
+ pref.setIcon(SignalStrength.NUM_SIGNAL_STRENGTH_BINS - 1);
+ mPreferenceCategory.addPreference(pref);
+ }
}
- } else {
- // Remove the connected network operators category
- mConnectedPreferenceCategory.setVisible(false);
}
}
/**
- * Configure the ConnectedNetworkOperatorsPreferenceCategory. The category only need to be
- * configured if the category is currently empty or the operator network title of the previous
- * connected network is different from the new one.
+ * Clear all of the preference summary
*/
- private void updateConnectedPreferenceCategory() {
- CellInfo connectedNetworkOperator = null;
- for (CellInfo cellInfo : mCellInfoList) {
- if (cellInfo.isRegistered()) {
- connectedNetworkOperator = cellInfo;
- break;
- }
- }
-
- if (connectedNetworkOperator != null) {
- addConnectedNetworkOperatorPreference(connectedNetworkOperator);
+ private void clearPreferenceSummary() {
+ int idxPreference = mPreferenceCategory.getPreferenceCount();
+ while (idxPreference > 0) {
+ idxPreference--;
+ final NetworkOperatorPreference networkOperator = (NetworkOperatorPreference)
+ (mPreferenceCategory.getPreference(idxPreference));
+ networkOperator.setSummary(null);
}
}
- private void addConnectedNetworkOperatorPreference(CellInfo cellInfo) {
- mConnectedPreferenceCategory.removeAll();
- final NetworkOperatorPreference pref = new NetworkOperatorPreference(
- cellInfo, getPrefContext(), mForbiddenPlmns, mShow4GForLTE);
- pref.setSummary(R.string.network_connected);
- mConnectedPreferenceCategory.addPreference(pref);
- mConnectedPreferenceCategory.setVisible(true);
+ private long getNewRequestId() {
+ return Math.max(mRequestIdManualNetworkSelect,
+ mRequestIdManualNetworkScan) + 1;
}
private boolean isProgressBarVisible() {
@@ -395,39 +462,26 @@
private void addMessagePreference(int messageId) {
setProgressBarVisible(false);
mStatusMessagePreference.setTitle(messageId);
- mConnectedPreferenceCategory.setVisible(false);
mPreferenceCategory.removeAll();
mPreferenceCategory.addPreference(mStatusMessagePreference);
}
- /**
- * The Scan results may contains several cell infos with different radio technologies and signal
- * strength for one network operator. Aggregate the CellInfoList by retaining only the cell info
- * with the strongest signal strength.
- */
- private List<CellInfo> aggregateCellInfoList(List<CellInfo> cellInfoList) {
- Map<String, CellInfo> map = new HashMap<>();
- for (CellInfo cellInfo : cellInfoList) {
- String plmn = CellInfoUtil.getOperatorInfoFromCellInfo(cellInfo).getOperatorNumeric();
- if (cellInfo.isRegistered() || !map.containsKey(plmn)) {
- map.put(plmn, cellInfo);
- } else {
- if (map.get(plmn).isRegistered()
- || map.get(plmn).getCellSignalStrength().getLevel()
- > cellInfo.getCellSignalStrength().getLevel()) {
- // Skip if the stored cellInfo is registered or has higher signal strength level
- continue;
- }
- // Otherwise replace it with the new CellInfo
- map.put(plmn, cellInfo);
- }
+ private void startNetworkQuery() {
+ setProgressBarVisible(true);
+ if (mNetworkScanHelper != null) {
+ mRequestIdManualNetworkScan = getNewRequestId();
+ mWaitingForNumberOfScanResults = MIN_NUMBER_OF_SCAN_REQUIRED;
+ mNetworkScanHelper.startNetworkScan(
+ mUseNewApi
+ ? NetworkScanHelper.NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS
+ : NetworkScanHelper.NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS);
}
- return new ArrayList<>(map.values());
}
private void stopNetworkQuery() {
setProgressBarVisible(false);
if (mNetworkScanHelper != null) {
+ mWaitingForNumberOfScanResults = 0;
mNetworkScanHelper.stopNetworkQuery();
}
}
diff --git a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java
index a28fc91..f572927 100644
--- a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java
+++ b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java
@@ -28,29 +28,26 @@
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
-import android.text.BidiFormatter;
-import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;
-import com.android.settings.R;
-import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settingslib.DeviceInfoUtils;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.appcompat.app.AlertDialog;
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.DeviceInfoUtils;
+
/**
* A dialog allowing the display name of a mobile network subscription to be changed
*/
@@ -159,9 +156,7 @@
phoneTitle.setVisibility(info.isOpportunistic() ? View.GONE : View.VISIBLE);
final TextView phoneNumber = view.findViewById(R.id.number_value);
- final String formattedNumber = DeviceInfoUtils.getFormattedPhoneNumber(getContext(), info);
- phoneNumber.setText(BidiFormatter.getInstance().unicodeWrap(formattedNumber,
- TextDirectionHeuristics.LTR));
+ phoneNumber.setText(DeviceInfoUtils.getBidiFormattedPhoneNumber(getContext(), info));
}
@Override
diff --git a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java
index 8f8d0d0..3348cca 100644
--- a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java
+++ b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java
@@ -29,12 +29,12 @@
import android.telephony.PhoneStateListener;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
+import android.telephony.ims.ImsMmTelManager;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
-import com.android.ims.ImsConfig;
import com.android.ims.ImsManager;
import com.android.settings.R;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -54,6 +54,7 @@
CarrierConfigManager mCarrierConfigManager;
@VisibleForTesting
ImsManager mImsManager;
+ private ImsMmTelManager mImsMmTelManager;
@VisibleForTesting
PhoneAccountHandle mSimCallManager;
private PhoneCallStateListener mPhoneStateListener;
@@ -88,7 +89,7 @@
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mPreference = screen.findPreference(getPreferenceKey());
- Intent intent = mPreference.getIntent();
+ final Intent intent = mPreference.getIntent();
if (intent != null) {
intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
}
@@ -98,14 +99,14 @@
public void updateState(Preference preference) {
super.updateState(preference);
if (mSimCallManager != null) {
- Intent intent = MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext,
+ final Intent intent = MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext,
mSimCallManager);
if (intent == null) {
// Do nothing in this case since preference is invisible
return;
}
final PackageManager pm = mContext.getPackageManager();
- List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
+ final List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
preference.setTitle(resolutions.get(0).loadLabel(pm));
preference.setSummary(null);
preference.setIntent(intent);
@@ -126,16 +127,18 @@
}
}
final boolean isRoaming = mTelephonyManager.isNetworkRoaming();
- int wfcMode = mImsManager.getWfcMode(isRoaming && !useWfcHomeModeForRoaming);
+ final int wfcMode = (isRoaming && !useWfcHomeModeForRoaming)
+ ? mImsMmTelManager.getVoWiFiRoamingModeSetting() :
+ mImsMmTelManager.getVoWiFiModeSetting();
switch (wfcMode) {
- case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY:
+ case ImsMmTelManager.WIFI_MODE_WIFI_ONLY:
resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;
break;
- case ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED:
+ case ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED:
resId = com.android.internal.R.string
.wfc_mode_cellular_preferred_summary;
break;
- case ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED:
+ case ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED:
resId = com.android.internal.R.string.wfc_mode_wifi_preferred_summary;
break;
default:
@@ -150,14 +153,20 @@
public WifiCallingPreferenceController init(int subId) {
mSubId = subId;
- mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
+ mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
+ .createForSubscriptionId(mSubId);
mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId));
+ mImsMmTelManager = getImsMmTelManager(mSubId);
mSimCallManager = mContext.getSystemService(TelecomManager.class)
.getSimCallManagerForSubscription(mSubId);
return this;
}
+ protected ImsMmTelManager getImsMmTelManager(int subId) {
+ return ImsMmTelManager.createForSubscriptionId(subId);
+ }
+
private class PhoneCallStateListener extends PhoneStateListener {
public PhoneCallStateListener(Looper looper) {
diff --git a/src/com/android/settings/notification/BlockPreferenceController.java b/src/com/android/settings/notification/BlockPreferenceController.java
index 27144b8..0dfd38b 100644
--- a/src/com/android/settings/notification/BlockPreferenceController.java
+++ b/src/com/android/settings/notification/BlockPreferenceController.java
@@ -62,8 +62,8 @@
pref.setSelectable(false);
SwitchBar bar = pref.findViewById(R.id.switch_bar);
if (bar != null) {
- bar.setSwitchBarText(R.string.notification_switch_label,
- R.string.notification_switch_label);
+ String switchBarText = getSwitchBarText();
+ bar.setSwitchBarText(switchBarText, switchBarText);
bar.show();
try {
bar.addOnSwitchChangeListener(this);
@@ -125,4 +125,18 @@
}
mImportanceListener.onImportanceChanged();
}
+
+ String getSwitchBarText() {
+ if (mChannel != null) {
+ return mContext.getString(R.string.notification_content_block_title);
+ } else {
+ CharSequence fieldContextName;
+ if (mChannelGroup != null) {
+ fieldContextName = mChannelGroup.getName();
+ } else {
+ fieldContextName = mAppRow.label;
+ }
+ return mContext.getString(R.string.notification_switch_label, fieldContextName);
+ }
+ }
}
diff --git a/src/com/android/settings/notification/ChannelListPreferenceController.java b/src/com/android/settings/notification/ChannelListPreferenceController.java
index 7ff407c..7ea3339 100644
--- a/src/com/android/settings/notification/ChannelListPreferenceController.java
+++ b/src/com/android/settings/notification/ChannelListPreferenceController.java
@@ -156,7 +156,8 @@
NotificationChannelGroup group) {
RestrictedSwitchPreference preference =
new RestrictedSwitchPreference(mContext);
- preference.setTitle(R.string.notification_switch_label);
+ preference.setTitle(mContext.getString(
+ R.string.notification_switch_label, group.getName()));
preference.setEnabled(mAdmin == null
&& isChannelGroupBlockable(group));
preference.setChecked(!group.isBlocked());
diff --git a/src/com/android/settings/notification/RecentNotifyingAppsPreferenceController.java b/src/com/android/settings/notification/RecentNotifyingAppsPreferenceController.java
index 9b20e7a..9efe34e 100644
--- a/src/com/android/settings/notification/RecentNotifyingAppsPreferenceController.java
+++ b/src/com/android/settings/notification/RecentNotifyingAppsPreferenceController.java
@@ -97,7 +97,7 @@
app == null ? null : ApplicationsState.getInstance(app), host);
}
- @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+ @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
RecentNotifyingAppsPreferenceController(Context context, NotificationBackend backend,
IUsageStatsManager usageStatsManager, UserManager userManager,
ApplicationsState appState, Fragment host) {
@@ -118,7 +118,7 @@
@Override
public boolean isAvailable() {
- return true;
+ return mApplicationsState != null;
}
@Override
@@ -307,9 +307,6 @@
if (appEntry == null) {
continue;
}
- if (!shouldIncludePkgInRecents(app.getPackage(), app.getUserId())) {
- continue;
- }
displayableApps.add(app);
count++;
if (count >= SHOW_RECENT_APP_COUNT) {
@@ -318,24 +315,4 @@
}
return displayableApps;
}
-
-
- /**
- * Whether or not the app should be included in recent list.
- */
- private boolean shouldIncludePkgInRecents(String pkgName, int userId) {
- final Intent launchIntent = new Intent().addCategory(Intent.CATEGORY_LAUNCHER)
- .setPackage(pkgName);
-
- if (mPm.resolveActivity(launchIntent, 0) == null) {
- // Not visible on launcher -> likely not a user visible app, skip if non-instant.
- final ApplicationsState.AppEntry appEntry =
- mApplicationsState.getEntry(pkgName, userId);
- if (appEntry == null || appEntry.info == null || !AppUtils.isInstant(appEntry.info)) {
- Log.d(TAG, "Not a user visible or instant app, skipping " + pkgName);
- return false;
- }
- }
- return true;
- }
}
diff --git a/src/com/android/settings/notification/ZenAccessSettings.java b/src/com/android/settings/notification/ZenAccessSettings.java
index 34b5354..d9c57c7 100644
--- a/src/com/android/settings/notification/ZenAccessSettings.java
+++ b/src/com/android/settings/notification/ZenAccessSettings.java
@@ -114,7 +114,6 @@
}
ArraySet<String> autoApproved = new ArraySet<>();
autoApproved.addAll(mNoMan.getEnabledNotificationListenerPackages());
- requesting.addAll(autoApproved);
Collections.sort(apps, new PackageItemInfo.DisplayNameComparator(mPkgMan));
for (ApplicationInfo app : apps) {
final String pkg = app.packageName;
diff --git a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
index f0ae804..e681a22 100644
--- a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
+++ b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
@@ -68,6 +68,7 @@
import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.Tile;
import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
import com.android.settingslib.search.SearchIndexableRaw;
import java.util.ArrayList;
@@ -106,7 +107,7 @@
final List<SearchIndexableResource> resources =
getSearchIndexableResourcesFromProvider(getContext());
for (SearchIndexableResource val : resources) {
- Object[] ref = new Object[INDEXABLES_XML_RES_COLUMNS.length];
+ final Object[] ref = new Object[INDEXABLES_XML_RES_COLUMNS.length];
ref[COLUMN_INDEX_XML_RES_RANK] = val.rank;
ref[COLUMN_INDEX_XML_RES_RESID] = val.xmlResId;
ref[COLUMN_INDEX_XML_RES_CLASS_NAME] = val.className;
@@ -128,21 +129,7 @@
final MatrixCursor cursor = new MatrixCursor(INDEXABLES_RAW_COLUMNS);
final List<SearchIndexableRaw> raws = getSearchIndexableRawFromProvider(getContext());
for (SearchIndexableRaw val : raws) {
- Object[] ref = new Object[INDEXABLES_RAW_COLUMNS.length];
- ref[COLUMN_INDEX_RAW_TITLE] = val.title;
- ref[COLUMN_INDEX_RAW_SUMMARY_ON] = val.summaryOn;
- ref[COLUMN_INDEX_RAW_SUMMARY_OFF] = val.summaryOff;
- ref[COLUMN_INDEX_RAW_ENTRIES] = val.entries;
- ref[COLUMN_INDEX_RAW_KEYWORDS] = val.keywords;
- ref[COLUMN_INDEX_RAW_SCREEN_TITLE] = val.screenTitle;
- ref[COLUMN_INDEX_RAW_CLASS_NAME] = val.className;
- ref[COLUMN_INDEX_RAW_ICON_RESID] = val.iconResId;
- ref[COLUMN_INDEX_RAW_INTENT_ACTION] = val.intentAction;
- ref[COLUMN_INDEX_RAW_INTENT_TARGET_PACKAGE] = val.intentTargetPackage;
- ref[COLUMN_INDEX_RAW_INTENT_TARGET_CLASS] = val.intentTargetClass;
- ref[COLUMN_INDEX_RAW_KEY] = val.key;
- ref[COLUMN_INDEX_RAW_USER_ID] = val.userId;
- cursor.addRow(ref);
+ cursor.addRow(createIndexableRawColumnObjects(val));
}
return cursor;
@@ -180,21 +167,7 @@
final MatrixCursor cursor = new MatrixCursor(INDEXABLES_RAW_COLUMNS);
for (SearchIndexableRaw raw : rawList) {
- Object[] ref = new Object[INDEXABLES_RAW_COLUMNS.length];
- ref[COLUMN_INDEX_RAW_TITLE] = raw.title;
- ref[COLUMN_INDEX_RAW_SUMMARY_ON] = raw.summaryOn;
- ref[COLUMN_INDEX_RAW_SUMMARY_OFF] = raw.summaryOff;
- ref[COLUMN_INDEX_RAW_ENTRIES] = raw.entries;
- ref[COLUMN_INDEX_RAW_KEYWORDS] = raw.keywords;
- ref[COLUMN_INDEX_RAW_SCREEN_TITLE] = raw.screenTitle;
- ref[COLUMN_INDEX_RAW_CLASS_NAME] = raw.className;
- ref[COLUMN_INDEX_RAW_ICON_RESID] = raw.iconResId;
- ref[COLUMN_INDEX_RAW_INTENT_ACTION] = raw.intentAction;
- ref[COLUMN_INDEX_RAW_INTENT_TARGET_PACKAGE] = raw.intentTargetPackage;
- ref[COLUMN_INDEX_RAW_INTENT_TARGET_CLASS] = raw.intentTargetClass;
- ref[COLUMN_INDEX_RAW_KEY] = raw.key;
- ref[COLUMN_INDEX_RAW_USER_ID] = raw.userId;
- cursor.addRow(ref);
+ cursor.addRow(createIndexableRawColumnObjects(raw));
}
return cursor;
@@ -260,14 +233,14 @@
}
private List<String> getNonIndexableKeysFromProvider(Context context) {
- final Collection<Class> values = getIndexableProviderValues(context);
+ final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context)
+ .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
+
final List<String> nonIndexableKeys = new ArrayList<>();
- for (Class<?> clazz : values) {
+ for (SearchIndexableData bundle : bundles) {
final long startTime = System.currentTimeMillis();
- final Indexable.SearchIndexProvider provider =
- DatabaseIndexingUtils.getSearchIndexProvider(clazz);
-
+ Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider();
List<String> providerNonIndexableKeys;
try {
providerNonIndexableKeys = provider.getNonIndexableKeys(context);
@@ -281,7 +254,8 @@
if (System.getProperty(SYSPROP_CRASH_ON_ERROR) != null) {
throw new RuntimeException(e);
}
- Log.e(TAG, "Error trying to get non-indexable keys from: " + clazz.getName(), e);
+ Log.e(TAG, "Error trying to get non-indexable keys from: "
+ + bundle.getTargetClass().getName(), e);
continue;
}
@@ -310,12 +284,12 @@
}
private List<SearchIndexableResource> getSearchIndexableResourcesFromProvider(Context context) {
- final Collection<Class> values = getIndexableProviderValues(context);
- final List<SearchIndexableResource> resourceList = new ArrayList<>();
+ final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context)
+ .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
+ List<SearchIndexableResource> resourceList = new ArrayList<>();
- for (Class<?> clazz : values) {
- final Indexable.SearchIndexProvider provider =
- DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+ for (SearchIndexableData bundle : bundles) {
+ Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider();
final List<SearchIndexableResource> resList =
provider.getXmlResourcesToIndex(context, true);
@@ -325,7 +299,7 @@
for (SearchIndexableResource item : resList) {
item.className = TextUtils.isEmpty(item.className)
- ? clazz.getName()
+ ? bundle.getTargetClass().getName()
: item.className;
}
@@ -336,14 +310,14 @@
}
private List<SearchIndexableRaw> getSearchIndexableRawFromProvider(Context context) {
- final Collection<Class> values = getIndexableProviderValues(context);
+ final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context)
+ .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
final List<SearchIndexableRaw> rawList = new ArrayList<>();
- for (Class<?> clazz : values) {
- final Indexable.SearchIndexProvider provider =
- DatabaseIndexingUtils.getSearchIndexProvider(clazz);
- final List<SearchIndexableRaw> providerRaws =
- provider.getRawDataToIndex(context, true /* enabled */);
+ for (SearchIndexableData bundle : bundles) {
+ Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider();
+ final List<SearchIndexableRaw> providerRaws = provider.getRawDataToIndex(context,
+ true /* enabled */);
if (providerRaws == null) {
continue;
@@ -352,7 +326,7 @@
for (SearchIndexableRaw raw : providerRaws) {
// The classname and intent information comes from the PreIndexData
// This will be more clear when provider conversion is done at PreIndex time.
- raw.className = clazz.getName();
+ raw.className = bundle.getTargetClass().getName();
}
rawList.addAll(providerRaws);
@@ -362,12 +336,12 @@
}
private List<SearchIndexableRaw> getDynamicSearchIndexableRawFromProvider(Context context) {
- final Collection<Class> values = getIndexableProviderValues(context);
+ final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context)
+ .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
final List<SearchIndexableRaw> rawList = new ArrayList<>();
- for (Class<?> clazz : values) {
- final Indexable.SearchIndexProvider provider =
- DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+ for (SearchIndexableData bundle : bundles) {
+ final Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider();
final List<SearchIndexableRaw> providerRaws =
provider.getDynamicRawDataToIndex(context, true /* enabled */);
@@ -378,7 +352,7 @@
for (SearchIndexableRaw raw : providerRaws) {
// The classname and intent information comes from the PreIndexData
// This will be more clear when provider conversion is done at PreIndex time.
- raw.className = clazz.getName();
+ raw.className = bundle.getTargetClass().getName();
}
rawList.addAll(providerRaws);
@@ -392,27 +366,40 @@
FeatureFactory.getFactory(context).getDashboardFeatureProvider(context);
final List<SearchIndexableRaw> rawList = new ArrayList<>();
+ final String currentPackageName = context.getPackageName();
for (DashboardCategory category : dashboardFeatureProvider.getAllCategories()) {
for (Tile tile : category.getTiles()) {
- final String packageName = tile.getPackageName();
- if (context.getPackageName().equals(packageName)) {
+ if (currentPackageName.equals(tile.getPackageName())) {
continue;
}
final SearchIndexableRaw raw = new SearchIndexableRaw(context);
+ raw.key = dashboardFeatureProvider.getDashboardKeyForTile(tile);
raw.title = tile.getTitle(context).toString();
- raw.summaryOn = tile.getSummary(context).toString();
- raw.summaryOff = tile.getSummary(context).toString();
- raw.keywords = dashboardFeatureProvider.getDashboardKeyForTile(tile);
+ CharSequence summary = tile.getSummary(context);
+ raw.summaryOn = TextUtils.isEmpty(summary) ? null : summary.toString();
+ raw.summaryOff = raw.summaryOn;
raw.className = CATEGORY_KEY_TO_PARENT_MAP.get(tile.getCategory());
rawList.add(raw);
}
}
- return rawList;
- }
+ return rawList; }
- private Collection<Class> getIndexableProviderValues(Context context) {
- return FeatureFactory.getFactory(context)
- .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
+ private static Object[] createIndexableRawColumnObjects(SearchIndexableRaw raw) {
+ final Object[] ref = new Object[INDEXABLES_RAW_COLUMNS.length];
+ ref[COLUMN_INDEX_RAW_TITLE] = raw.title;
+ ref[COLUMN_INDEX_RAW_SUMMARY_ON] = raw.summaryOn;
+ ref[COLUMN_INDEX_RAW_SUMMARY_OFF] = raw.summaryOff;
+ ref[COLUMN_INDEX_RAW_ENTRIES] = raw.entries;
+ ref[COLUMN_INDEX_RAW_KEYWORDS] = raw.keywords;
+ ref[COLUMN_INDEX_RAW_SCREEN_TITLE] = raw.screenTitle;
+ ref[COLUMN_INDEX_RAW_CLASS_NAME] = raw.className;
+ ref[COLUMN_INDEX_RAW_ICON_RESID] = raw.iconResId;
+ ref[COLUMN_INDEX_RAW_INTENT_ACTION] = raw.intentAction;
+ ref[COLUMN_INDEX_RAW_INTENT_TARGET_PACKAGE] = raw.intentTargetPackage;
+ ref[COLUMN_INDEX_RAW_INTENT_TARGET_CLASS] = raw.intentTargetClass;
+ ref[COLUMN_INDEX_RAW_KEY] = raw.key;
+ ref[COLUMN_INDEX_RAW_USER_ID] = raw.userId;
+ return ref;
}
}
diff --git a/src/com/android/settings/security/ScreenPinningSettings.java b/src/com/android/settings/security/ScreenPinningSettings.java
index 849db40..aa3e862 100644
--- a/src/com/android/settings/security/ScreenPinningSettings.java
+++ b/src/com/android/settings/security/ScreenPinningSettings.java
@@ -23,9 +23,6 @@
import android.os.UserHandle;
import android.provider.SearchIndexableResource;
import android.provider.Settings;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
import android.widget.Switch;
import androidx.preference.Preference;
@@ -41,6 +38,7 @@
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.widget.SwitchBar;
import com.android.settingslib.search.SearchIndexable;
+import com.android.settingslib.widget.FooterPreference;
import java.util.Arrays;
import java.util.List;
@@ -52,11 +50,13 @@
public class ScreenPinningSettings extends SettingsPreferenceFragment
implements SwitchBar.OnSwitchChangeListener {
- private static final CharSequence KEY_USE_SCREEN_LOCK = "use_screen_lock";
+ private static final String KEY_USE_SCREEN_LOCK = "use_screen_lock";
+ private static final String KEY_FOOTER = "screen_pinning_settings_screen_footer";
private static final int CHANGE_LOCK_METHOD_REQUEST = 43;
private SwitchBar mSwitchBar;
private SwitchPreference mUseScreenLock;
+ private FooterPreference mFooterPreference;
private LockPatternUtils mLockPatternUtils;
@Override
@@ -77,6 +77,13 @@
mSwitchBar.addOnSwitchChangeListener(this);
mSwitchBar.show();
mSwitchBar.setChecked(isLockToAppEnabled(getActivity()));
+
+ addPreferencesFromResource(R.xml.screen_pinning_settings);
+
+ final PreferenceScreen root = getPreferenceScreen();
+ mUseScreenLock = root.findPreference(KEY_USE_SCREEN_LOCK);
+ mFooterPreference = root.findPreference(KEY_FOOTER);
+ updateDisplay();
}
@Override
@@ -85,16 +92,6 @@
}
@Override
- public void onViewCreated(View view, Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- ViewGroup parent = (ViewGroup) view.findViewById(android.R.id.list_container);
- View emptyView = LayoutInflater.from(getContext())
- .inflate(R.layout.screen_pinning_instructions, parent, false);
- parent.addView(emptyView);
- setEmptyView(emptyView);
- }
-
- @Override
public void onDestroyView() {
super.onDestroyView();
@@ -192,16 +189,10 @@
updateDisplay();
}
- public void updateDisplay() {
- PreferenceScreen root = getPreferenceScreen();
- if (root != null) {
- root.removeAll();
- }
+ private void updateDisplay() {
if (isLockToAppEnabled(getActivity())) {
- addPreferencesFromResource(R.xml.screen_pinning_settings);
- root = getPreferenceScreen();
-
- mUseScreenLock = (SwitchPreference) root.findPreference(KEY_USE_SCREEN_LOCK);
+ mFooterPreference.setVisible(false);
+ mUseScreenLock.setVisible(true);
mUseScreenLock.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
@@ -210,6 +201,9 @@
});
mUseScreenLock.setChecked(isScreenLockUsed());
mUseScreenLock.setTitle(getCurrentSecurityTitle());
+ } else {
+ mFooterPreference.setVisible(true);
+ mUseScreenLock.setVisible(false);
}
}
diff --git a/src/com/android/settings/slices/SliceDataConverter.java b/src/com/android/settings/slices/SliceDataConverter.java
index 06b5d78..551a186 100644
--- a/src/com/android/settings/slices/SliceDataConverter.java
+++ b/src/com/android/settings/slices/SliceDataConverter.java
@@ -53,9 +53,9 @@
import com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.search.DatabaseIndexingUtils;
-import com.android.settingslib.search.Indexable.SearchIndexProvider;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.search.Indexable.SearchIndexProvider;
+import com.android.settingslib.search.SearchIndexableData;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -101,14 +101,13 @@
public List<SliceData> getSliceData() {
List<SliceData> sliceData = new ArrayList<>();
- final Collection<Class> indexableClasses = FeatureFactory.getFactory(mContext)
+ final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(mContext)
.getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
- for (Class clazz : indexableClasses) {
- final String fragmentName = clazz.getName();
+ for (SearchIndexableData bundle : bundles) {
+ final String fragmentName = bundle.getTargetClass().getName();
- final SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(
- clazz);
+ final SearchIndexProvider provider = bundle.getSearchIndexProvider();
// CodeInspection test guards against the null check. Keep check in case of bad actors.
if (provider == null) {
diff --git a/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java b/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java
index 9157477..d72f503 100644
--- a/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java
+++ b/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java
@@ -66,7 +66,7 @@
final BluetoothDevice btDevice = mConnectedDevices.get(connectedDeviceIndex);
mSelectedIndex = connectedDeviceIndex;
setActiveBluetoothDevice(btDevice);
- listPreference.setSummary(btDevice.getAliasName());
+ listPreference.setSummary(btDevice.getAlias());
}
return true;
}
@@ -143,7 +143,7 @@
mediaValues[mSelectedIndex] = defaultSummary;
for (int i = 0, size = mConnectedDevices.size(); i < size; i++) {
final BluetoothDevice btDevice = mConnectedDevices.get(i);
- mediaOutputs[i] = btDevice.getAliasName();
+ mediaOutputs[i] = btDevice.getAlias();
mediaValues[i] = btDevice.getAddress();
if (btDevice.equals(activeDevice)) {
// select the active connected device.
diff --git a/src/com/android/settings/sound/MediaOutputPreferenceController.java b/src/com/android/settings/sound/MediaOutputPreferenceController.java
index 1831ad6..b133713 100644
--- a/src/com/android/settings/sound/MediaOutputPreferenceController.java
+++ b/src/com/android/settings/sound/MediaOutputPreferenceController.java
@@ -76,7 +76,7 @@
mPreference.setVisible(deviceConnected);
mPreference.setSummary((activeDevice == null) ?
mContext.getText(R.string.media_output_default_summary) :
- activeDevice.getAliasName());
+ activeDevice.getAlias());
}
@Override
diff --git a/src/com/android/settings/widget/MediaAnimationController.java b/src/com/android/settings/widget/MediaAnimationController.java
index eb7b3e0..87a5365 100644
--- a/src/com/android/settings/widget/MediaAnimationController.java
+++ b/src/com/android/settings/widget/MediaAnimationController.java
@@ -33,6 +33,7 @@
class MediaAnimationController implements VideoPreference.AnimationController {
private MediaPlayer mMediaPlayer;
private boolean mVideoReady;
+ private Surface mSurface;
MediaAnimationController(Context context, int videoId) {
final Uri videoPath = new Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
@@ -86,10 +87,7 @@
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width,
int height) {
- if (mMediaPlayer != null) {
- final Surface surface = new Surface(surfaceTexture);
- mMediaPlayer.setSurface(surface);
- }
+ setSurface(surfaceTexture);
}
@Override
@@ -105,6 +103,7 @@
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {
+ setSurface(surfaceTexture);
if (mVideoReady) {
if (preview.getVisibility() == View.VISIBLE) {
preview.setVisibility(View.GONE);
@@ -146,4 +145,11 @@
mMediaPlayer.start();
}
}
+
+ private void setSurface(SurfaceTexture surfaceTexture) {
+ if (mMediaPlayer != null && mSurface == null) {
+ mSurface = new Surface(surfaceTexture);
+ mMediaPlayer.setSurface(mSurface);
+ }
+ }
}
diff --git a/src/com/android/settings/widget/VideoPreference.java b/src/com/android/settings/widget/VideoPreference.java
index d23bea9..949ba9b 100644
--- a/src/com/android/settings/widget/VideoPreference.java
+++ b/src/com/android/settings/widget/VideoPreference.java
@@ -50,6 +50,9 @@
private int mAnimationId;
private int mVectorAnimationId;
private int mHeight = LinearLayout.LayoutParams.MATCH_PARENT - 1; // video height in pixels
+ private TextureView mVideo;
+ private ImageView mPreviewImage;
+ private ImageView mPlayButton;
public VideoPreference(Context context) {
super(context);
@@ -108,19 +111,21 @@
return;
}
- final TextureView video = (TextureView) holder.findViewById(R.id.video_texture_view);
- final ImageView previewImage = (ImageView) holder.findViewById(R.id.video_preview_image);
- final ImageView playButton = (ImageView) holder.findViewById(R.id.video_play_button);
+ mVideo = (TextureView) holder.findViewById(R.id.video_texture_view);
+ mPreviewImage = (ImageView) holder.findViewById(R.id.video_preview_image);
+ mPlayButton = (ImageView) holder.findViewById(R.id.video_play_button);
final AspectRatioFrameLayout layout = (AspectRatioFrameLayout) holder.findViewById(
R.id.video_container);
- previewImage.setImageResource(mPreviewId);
+ mPreviewImage.setImageResource(mPreviewId);
layout.setAspectRatio(mAspectRatio);
if (mHeight >= LinearLayout.LayoutParams.MATCH_PARENT) {
layout.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, mHeight));
}
- mAnimationController.attachView(video, previewImage, playButton);
+ if (mAnimationController != null) {
+ mAnimationController.attachView(mVideo, mPreviewImage, mPlayButton);
+ }
}
@Override
@@ -164,6 +169,9 @@
}
if (mAnimationId != 0) {
mAnimationController = new MediaAnimationController(mContext, mAnimationId);
+ if (mVideo != null) {
+ mAnimationController.attachView(mVideo, mPreviewImage, mPlayButton);
+ }
}
}
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index 94cb306..0ba2a94 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -261,8 +261,7 @@
mMeteredSettingsSpinner = mView.findViewById(R.id.metered_settings);
mHiddenSettingsSpinner = mView.findViewById(R.id.hidden_settings);
mPrivacySettingsSpinner = mView.findViewById(R.id.privacy_settings);
- if (mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_wifi_connected_mac_randomization_supported)) {
+ if (mWifiManager.isConnectedMacRandomizationSupported()) {
View privacySettingsLayout = mView.findViewById(R.id.privacy_settings_fields);
privacySettingsLayout.setVisibility(View.VISIBLE);
}
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 2741139..28b668f 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -53,6 +53,8 @@
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.LinkifyUtils;
import com.android.settings.R;
@@ -444,6 +446,13 @@
}
@Override
+ protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) {
+ final RecyclerView.Adapter adapter = super.onCreateAdapter(preferenceScreen);
+ adapter.setHasStableIds(true);
+ return adapter;
+ }
+
+ @Override
public int getMetricsCategory() {
return SettingsEnums.WIFI;
}
diff --git a/src/com/android/settings/wifi/WifiSettings2.java b/src/com/android/settings/wifi/WifiSettings2.java
index c06aef7..2d26cc4 100644
--- a/src/com/android/settings/wifi/WifiSettings2.java
+++ b/src/com/android/settings/wifi/WifiSettings2.java
@@ -48,6 +48,8 @@
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.LinkifyUtils;
import com.android.settings.R;
@@ -368,6 +370,13 @@
}
@Override
+ protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) {
+ final RecyclerView.Adapter adapter = super.onCreateAdapter(preferenceScreen);
+ adapter.setHasStableIds(true);
+ return adapter;
+ }
+
+ @Override
public int getMetricsCategory() {
return SettingsEnums.WIFI;
}
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
index 252193d..50396e5 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
@@ -30,6 +30,7 @@
import android.telephony.PhoneStateListener;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
+import android.telephony.ims.ImsMmTelManager;
import android.telephony.ims.ProvisioningManager;
import android.text.TextUtils;
import android.util.Log;
@@ -98,6 +99,7 @@
private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
private ImsManager mImsManager;
+ private ImsMmTelManager mImsMmTelManager;
private TelephonyManager mTelephonyManager;
private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
@@ -110,8 +112,8 @@
@Override
public void onCallStateChanged(int state, String incomingNumber) {
final SettingsActivity activity = (SettingsActivity) getActivity();
- boolean isNonTtyOrTtyOnVolteEnabled = mImsManager.isNonTtyOrTtyOnVolteEnabled();
- boolean isWfcEnabled = mSwitchBar.isChecked()
+ final boolean isNonTtyOrTtyOnVolteEnabled = mImsManager.isNonTtyOrTtyOnVolteEnabled();
+ final boolean isWfcEnabled = mSwitchBar.isChecked()
&& isNonTtyOrTtyOnVolteEnabled;
mSwitchBar.setEnabled((state == TelephonyManager.CALL_STATE_IDLE)
@@ -132,12 +134,12 @@
}
}
- Preference pref = getPreferenceScreen().findPreference(BUTTON_WFC_MODE);
+ final Preference pref = getPreferenceScreen().findPreference(BUTTON_WFC_MODE);
if (pref != null) {
pref.setEnabled(isWfcEnabled && isWfcModeEditable
&& (state == TelephonyManager.CALL_STATE_IDLE));
}
- Preference pref_roam =
+ final Preference pref_roam =
getPreferenceScreen().findPreference(BUTTON_WFC_ROAMING_MODE);
if (pref_roam != null) {
pref_roam.setEnabled(isWfcEnabled && isWfcRoamingModeEditable
@@ -151,7 +153,7 @@
*/
private final OnPreferenceClickListener mUpdateAddressListener =
preference -> {
- Intent carrierAppIntent = getCarrierActivityIntent();
+ final Intent carrierAppIntent = getCarrierActivityIntent();
if (carrierAppIntent != null) {
carrierAppIntent.putExtra(EXTRA_LAUNCH_CARRIER_APP, LAUCH_APP_UPDATE);
startActivity(carrierAppIntent);
@@ -179,7 +181,7 @@
mEmptyView = getView().findViewById(android.R.id.empty);
setEmptyView(mEmptyView);
final Resources res = getResourcesForSubId();
- String emptyViewText = res.getString(R.string.wifi_calling_off_explanation,
+ final String emptyViewText = res.getString(R.string.wifi_calling_off_explanation,
res.getString(R.string.wifi_calling_off_explanation_2));
mEmptyView.setText(emptyViewText);
@@ -195,17 +197,17 @@
}
private void showAlert(Intent intent) {
- Context context = getActivity();
+ final Context context = getActivity();
- CharSequence title = intent.getCharSequenceExtra(Phone.EXTRA_KEY_ALERT_TITLE);
- CharSequence message = intent.getCharSequenceExtra(Phone.EXTRA_KEY_ALERT_MESSAGE);
+ final CharSequence title = intent.getCharSequenceExtra(Phone.EXTRA_KEY_ALERT_TITLE);
+ final CharSequence message = intent.getCharSequenceExtra(Phone.EXTRA_KEY_ALERT_MESSAGE);
- AlertDialog.Builder builder = new AlertDialog.Builder(context);
+ final AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(message)
.setTitle(title)
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(android.R.string.ok, null);
- AlertDialog dialog = builder.create();
+ final AlertDialog dialog = builder.create();
dialog.show();
}
@@ -214,7 +216,7 @@
private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
+ final String action = intent.getAction();
if (action.equals(ImsManager.ACTION_IMS_REGISTRATION_ERROR)) {
// If this fragment is active then we are immediately
// showing alert on screen. There is no need to add
@@ -245,6 +247,11 @@
return ImsManager.getInstance(getActivity(), SubscriptionManager.getPhoneId(mSubId));
}
+ @VisibleForTesting
+ ImsMmTelManager getImsMmTelManager() {
+ return ImsMmTelManager.createForSubscriptionId(mSubId);
+ }
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -261,6 +268,7 @@
}
mImsManager = getImsManager();
+ mImsMmTelManager = getImsMmTelManager();
mTelephonyManager = ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE))
.createForSubscriptionId(mSubId);
@@ -288,12 +296,12 @@
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
- View view = inflater.inflate(
+ final View view = inflater.inflate(
R.layout.wifi_calling_settings_preferences, container, false);
final ViewGroup prefs_container = view.findViewById(R.id.prefs_container);
Utils.prepareCustomPreferencesList(container, view, prefs_container, false);
- View prefs = super.onCreateView(inflater, prefs_container, savedInstanceState);
+ final View prefs = super.onCreateView(inflater, prefs_container, savedInstanceState);
prefs_container.addView(prefs);
return view;
@@ -307,12 +315,12 @@
return;
}
- CarrierConfigManager configManager = (CarrierConfigManager)
+ final CarrierConfigManager configManager = (CarrierConfigManager)
getSystemService(Context.CARRIER_CONFIG_SERVICE);
boolean isWifiOnlySupported = true;
if (configManager != null) {
- PersistableBundle b = configManager.getConfigForSubId(mSubId);
+ final PersistableBundle b = configManager.getConfigForSubId(mSubId);
if (b != null) {
mEditableWfcMode = b.getBoolean(
CarrierConfigManager.KEY_EDITABLE_WFC_MODE_BOOL);
@@ -341,11 +349,11 @@
// NOTE: Buttons will be enabled/disabled in mPhoneStateListener
- boolean wfcEnabled = mImsManager.isWfcEnabledByUser()
+ final boolean wfcEnabled = mImsManager.isWfcEnabledByUser()
&& mImsManager.isNonTtyOrTtyOnVolteEnabled();
mSwitch.setChecked(wfcEnabled);
- int wfcMode = mImsManager.getWfcMode(false);
- int wfcRoamingMode = mImsManager.getWfcMode(true);
+ final int wfcMode = mImsMmTelManager.getVoWiFiModeSetting();
+ final int wfcRoamingMode = mImsMmTelManager.getVoWiFiRoamingModeSetting();
mButtonWfcMode.setValue(Integer.toString(wfcMode));
mButtonWfcRoamingMode.setValue(Integer.toString(wfcRoamingMode));
updateButtonWfcMode(wfcEnabled, wfcMode, wfcRoamingMode);
@@ -369,7 +377,7 @@
context.registerReceiver(mIntentReceiver, mIntentFilter);
- Intent intent = getActivity().getIntent();
+ final Intent intent = getActivity().getIntent();
if (intent.getBooleanExtra(Phone.EXTRA_KEY_ALERT_SHOW, false)) {
showAlert(intent);
}
@@ -392,7 +400,8 @@
if (mValidListener) {
mValidListener = false;
- TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
+ final TelephonyManager tm = (TelephonyManager)
+ getSystemService(Context.TELEPHONY_SERVICE);
tm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
mSwitchBar.removeOnSwitchChangeListener(this);
@@ -441,22 +450,22 @@
*/
private Intent getCarrierActivityIntent() {
// Retrive component name from carrier config
- CarrierConfigManager configManager =
+ final CarrierConfigManager configManager =
getActivity().getSystemService(CarrierConfigManager.class);
if (configManager == null) return null;
- PersistableBundle bundle = configManager.getConfigForSubId(mSubId);
+ final PersistableBundle bundle = configManager.getConfigForSubId(mSubId);
if (bundle == null) return null;
- String carrierApp = bundle.getString(
+ final String carrierApp = bundle.getString(
CarrierConfigManager.KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING);
if (TextUtils.isEmpty(carrierApp)) return null;
- ComponentName componentName = ComponentName.unflattenFromString(carrierApp);
+ final ComponentName componentName = ComponentName.unflattenFromString(carrierApp);
if (componentName == null) return null;
// Build and return intent
- Intent intent = new Intent();
+ final Intent intent = new Intent();
intent.setComponent(componentName);
intent.putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, mSubId);
return intent;
@@ -469,8 +478,8 @@
Log.i(TAG, "updateWfcMode(" + wfcEnabled + ")");
mImsManager.setWfcSetting(wfcEnabled);
- int wfcMode = mImsManager.getWfcMode(false);
- int wfcRoamingMode = mImsManager.getWfcMode(true);
+ final int wfcMode = mImsMmTelManager.getVoWiFiModeSetting();
+ final int wfcRoamingMode = mImsMmTelManager.getVoWiFiRoamingModeSetting();
updateButtonWfcMode(wfcEnabled, wfcMode, wfcRoamingMode);
if (wfcEnabled) {
mMetricsFeatureProvider.action(getActivity(), getMetricsCategory(), wfcMode);
@@ -496,7 +505,7 @@
case REQUEST_CHECK_WFC_DISCLAIMER:
if (resultCode == Activity.RESULT_OK) {
// Call address management activity before turning on WFC
- Intent carrierAppIntent = getCarrierActivityIntent();
+ final Intent carrierAppIntent = getCarrierActivityIntent();
if (carrierAppIntent != null) {
carrierAppIntent.putExtra(EXTRA_LAUNCH_CARRIER_APP, LAUCH_APP_ACTIVATE);
startActivityForResult(carrierAppIntent,
@@ -520,7 +529,7 @@
mButtonWfcRoamingMode.setEnabled(wfcEnabled && mEditableWfcRoamingMode);
final PreferenceScreen preferenceScreen = getPreferenceScreen();
- boolean updateAddressEnabled = (getCarrierActivityIntent() != null);
+ final boolean updateAddressEnabled = (getCarrierActivityIntent() != null);
if (wfcEnabled) {
if (mEditableWfcMode) {
preferenceScreen.addPreference(mButtonWfcMode);
@@ -551,24 +560,24 @@
if (preference == mButtonWfcMode) {
Log.d(TAG, "onPreferenceChange mButtonWfcMode " + newValue);
mButtonWfcMode.setValue((String) newValue);
- int buttonMode = Integer.valueOf((String) newValue);
- int currentWfcMode = mImsManager.getWfcMode(false);
+ final int buttonMode = Integer.valueOf((String) newValue);
+ final int currentWfcMode = mImsMmTelManager.getVoWiFiModeSetting();
if (buttonMode != currentWfcMode) {
- mImsManager.setWfcMode(buttonMode, false);
+ mImsMmTelManager.setVoWiFiModeSetting(buttonMode);
mButtonWfcMode.setSummary(getWfcModeSummary(buttonMode));
mMetricsFeatureProvider.action(getActivity(), getMetricsCategory(), buttonMode);
if (mUseWfcHomeModeForRoaming) {
- mImsManager.setWfcMode(buttonMode, true);
+ mImsMmTelManager.setVoWiFiRoamingModeSetting(buttonMode);
// mButtonWfcRoamingMode.setSummary is not needed; summary is selected value
}
}
} else if (preference == mButtonWfcRoamingMode) {
mButtonWfcRoamingMode.setValue((String) newValue);
- int buttonMode = Integer.valueOf((String) newValue);
- int currentMode = mImsManager.getWfcMode(true);
+ final int buttonMode = Integer.valueOf((String) newValue);
+ final int currentMode = mImsMmTelManager.getVoWiFiRoamingModeSetting();
if (buttonMode != currentMode) {
- mImsManager.setWfcMode(buttonMode, true);
+ mImsMmTelManager.setVoWiFiRoamingModeSetting(buttonMode);
// mButtonWfcRoamingMode.setSummary is not needed; summary is just selected value.
mMetricsFeatureProvider.action(getActivity(), getMetricsCategory(), buttonMode);
}
@@ -580,13 +589,13 @@
int resId = com.android.internal.R.string.wifi_calling_off_summary;
if (mImsManager.isWfcEnabledByUser()) {
switch (wfcMode) {
- case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY:
+ case ImsMmTelManager.WIFI_MODE_WIFI_ONLY:
resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;
break;
- case ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED:
+ case ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED:
resId = com.android.internal.R.string.wfc_mode_cellular_preferred_summary;
break;
- case ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED:
+ case ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED:
resId = com.android.internal.R.string.wfc_mode_wifi_preferred_summary;
break;
default:
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSliceHelper.java b/src/com/android/settings/wifi/calling/WifiCallingSliceHelper.java
index 70eef2c..524ba8a 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSliceHelper.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSliceHelper.java
@@ -30,6 +30,7 @@
import android.provider.Settings;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
+import android.telephony.ims.ImsMmTelManager;
import android.text.TextUtils;
import android.util.Log;
@@ -233,6 +234,7 @@
final boolean isWifiOnlySupported = isCarrierConfigManagerKeyEnabled(
CarrierConfigManager.KEY_CARRIER_WFC_SUPPORTS_WIFI_ONLY_BOOL, subId, true);
final ImsManager imsManager = getImsManager(subId);
+ final ImsMmTelManager imsMmTelManager = getImsMmTelManager(subId);
if (!imsManager.isWfcEnabledByPlatform()
|| !imsManager.isWfcProvisionedOnDevice()) {
@@ -249,7 +251,7 @@
int wfcMode = -1;
try {
isWifiCallingEnabled = isWifiCallingEnabled(imsManager);
- wfcMode = getWfcMode(imsManager);
+ wfcMode = getWfcMode(imsMmTelManager);
} catch (InterruptedException | ExecutionException | TimeoutException e) {
Log.e(TAG, "Unable to get wifi calling preferred mode", e);
return null;
@@ -279,7 +281,7 @@
Uri sliceUri) {
final IconCompat icon = IconCompat.createWithResource(mContext, R.drawable.wifi_signal);
// Top row shows information on current preference state
- ListBuilder listBuilder = new ListBuilder(mContext, sliceUri, ListBuilder.INFINITY)
+ final ListBuilder listBuilder = new ListBuilder(mContext, sliceUri, ListBuilder.INFINITY)
.setAccentColor(Utils.getColorAccentDefaultColor(mContext));
listBuilder.setHeader(new ListBuilder.HeaderBuilder()
.setTitle(mContext.getText(R.string.wifi_calling_mode_title))
@@ -294,18 +296,18 @@
listBuilder.addRow(wifiPreferenceRowBuilder(listBuilder,
com.android.internal.R.string.wfc_mode_wifi_only_summary,
ACTION_WIFI_CALLING_PREFERENCE_WIFI_ONLY,
- currentWfcPref == ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY));
+ currentWfcPref == ImsMmTelManager.WIFI_MODE_WIFI_ONLY));
}
listBuilder.addRow(wifiPreferenceRowBuilder(listBuilder,
com.android.internal.R.string.wfc_mode_wifi_preferred_summary,
ACTION_WIFI_CALLING_PREFERENCE_WIFI_PREFERRED,
- currentWfcPref == ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED));
+ currentWfcPref == ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED));
listBuilder.addRow(wifiPreferenceRowBuilder(listBuilder,
com.android.internal.R.string.wfc_mode_cellular_preferred_summary,
ACTION_WIFI_CALLING_PREFERENCE_CELLULAR_PREFERRED,
- currentWfcPref == ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED));
+ currentWfcPref == ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED));
return listBuilder.build();
}
@@ -337,13 +339,13 @@
*/
private CharSequence getWifiCallingPreferenceSummary(int wfcMode) {
switch (wfcMode) {
- case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY:
+ case ImsMmTelManager.WIFI_MODE_WIFI_ONLY:
return mContext.getText(
com.android.internal.R.string.wfc_mode_wifi_only_summary);
- case ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED:
+ case ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED:
return mContext.getText(
com.android.internal.R.string.wfc_mode_wifi_preferred_summary);
- case ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED:
+ case ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED:
return mContext.getText(
com.android.internal.R.string.wfc_mode_cellular_preferred_summary);
default:
@@ -355,15 +357,19 @@
return ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(subId));
}
- private int getWfcMode(ImsManager imsManager)
+ protected ImsMmTelManager getImsMmTelManager(int subId) {
+ return ImsMmTelManager.createForSubscriptionId(subId);
+ }
+
+ private int getWfcMode(ImsMmTelManager imsMmTelManager)
throws InterruptedException, ExecutionException, TimeoutException {
- FutureTask<Integer> wfcModeTask = new FutureTask<>(new Callable<Integer>() {
+ final FutureTask<Integer> wfcModeTask = new FutureTask<>(new Callable<Integer>() {
@Override
public Integer call() {
- return imsManager.getWfcMode(false);
+ return imsMmTelManager.getVoWiFiModeSetting();
}
});
- ExecutorService executor = Executors.newSingleThreadExecutor();
+ final ExecutorService executor = Executors.newSingleThreadExecutor();
executor.execute(wfcModeTask);
return wfcModeTask.get(TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
}
@@ -420,7 +426,7 @@
final boolean isWifiOnlySupported = isCarrierConfigManagerKeyEnabled(
CarrierConfigManager.KEY_CARRIER_WFC_SUPPORTS_WIFI_ONLY_BOOL, subId, true);
- ImsManager imsManager = getImsManager(subId);
+ final ImsManager imsManager = getImsManager(subId);
if (isWifiCallingPrefEditable
&& imsManager.isWfcEnabledByPlatform()
&& imsManager.isWfcProvisionedOnDevice()
@@ -428,25 +434,26 @@
&& imsManager.isNonTtyOrTtyOnVolteEnabled()) {
// Change the preference only when wifi calling is enabled
// And when wifi calling preference is editable for the current carrier
- final int currentValue = imsManager.getWfcMode(false);
+ final ImsMmTelManager imsMmTelManager = getImsMmTelManager(subId);
+ final int currentValue = imsMmTelManager.getVoWiFiModeSetting();
int newValue = errorValue;
switch (intent.getAction()) {
case ACTION_WIFI_CALLING_PREFERENCE_WIFI_ONLY:
if (isWifiOnlySupported) {
// change to wifi_only when wifi_only is enabled.
- newValue = ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY;
+ newValue = ImsMmTelManager.WIFI_MODE_WIFI_ONLY;
}
break;
case ACTION_WIFI_CALLING_PREFERENCE_WIFI_PREFERRED:
- newValue = ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED;
+ newValue = ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED;
break;
case ACTION_WIFI_CALLING_PREFERENCE_CELLULAR_PREFERRED:
- newValue = ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED;
+ newValue = ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED;
break;
}
if (newValue != errorValue && newValue != currentValue) {
// Update the setting only when there is a valid update
- imsManager.setWfcMode(newValue, false);
+ imsMmTelManager.setVoWiFiModeSetting(newValue);
}
}
}
diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
index 965b0ff..e9d2e08 100644
--- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
@@ -64,7 +64,6 @@
import com.android.settings.core.FeatureFlags;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.datausage.WifiDataUsageSummaryPreferenceController;
-import com.android.settings.development.featureflags.FeatureFlagPersistent;
import com.android.settings.widget.EntityHeaderController;
import com.android.settings.wifi.WifiDialog;
import com.android.settings.wifi.WifiDialog.WifiDialogListener;
@@ -892,17 +891,8 @@
mWifiManager.disableEphemeralNetwork(mWifiInfo.getSSID());
} else if (mAccessPoint.isPasspoint() || mAccessPoint.isPasspointConfig()) {
// Post a dialog to confirm if user really want to forget the passpoint network.
- if (FeatureFlagPersistent.isEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2)) {
- showConfirmForgetDialog();
- return;
- }
-
- try {
- mWifiManager.removePasspointConfiguration(mAccessPoint.getPasspointFqdn());
- } catch (RuntimeException e) {
- Log.e(TAG, "Failed to remove Passpoint configuration for "
- + mAccessPoint.getPasspointFqdn());
- }
+ showConfirmForgetDialog();
+ return;
} else if (mWifiConfig != null) {
mWifiManager.forget(mWifiConfig.networkId, null /* action listener */);
}
diff --git a/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java b/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java
index 950cc13..eab0fa4 100644
--- a/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java
@@ -65,9 +65,8 @@
@Override
public int getAvailabilityStatus() {
- return mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_wifi_connected_mac_randomization_supported) ?
- AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ return mWifiManager.isConnectedMacRandomizationSupported()
+ ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
}
@Override
diff --git a/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
index 73f1d82..121af92 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
@@ -16,6 +16,7 @@
package com.android.settings.wifi.tether;
+import android.annotation.NonNull;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.wifi.WifiClient;
@@ -164,12 +165,12 @@
}
}
- private void updateConfigSummary(WifiConfiguration wifiConfig) {
- final String s = mContext.getString(
- com.android.internal.R.string.wifi_tether_configure_ssid_default);
-
+ private void updateConfigSummary(@NonNull WifiConfiguration wifiConfig) {
+ if (wifiConfig == null) {
+ // Should never happen.
+ return;
+ }
mPreference.setSummary(mContext.getString(R.string.wifi_tether_enabled_subtext,
- BidiFormatter.getInstance().unicodeWrap(
- (wifiConfig == null) ? s : wifiConfig.SSID)));
+ BidiFormatter.getInstance().unicodeWrap(wifiConfig.SSID)));
}
}
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSoftApManager.java b/src/com/android/settings/wifi/tether/WifiTetherSoftApManager.java
index 1a805bd..3de5869 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSoftApManager.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSoftApManager.java
@@ -3,6 +3,7 @@
import android.net.wifi.WifiClient;
import android.net.wifi.WifiManager;
import android.os.Handler;
+import android.os.HandlerExecutor;
import java.util.List;
@@ -35,7 +36,7 @@
}
public void registerSoftApCallback() {
- mWifiManager.registerSoftApCallback(mSoftApCallback, mHandler);
+ mWifiManager.registerSoftApCallback(mSoftApCallback, new HandlerExecutor(mHandler));
}
public void unRegisterSoftApCallback() {
diff --git a/tests/robotests/res/xml-mcc999/video_preference.xml b/tests/robotests/res/xml-mcc999/video_preference.xml
new file mode 100644
index 0000000..647a82f
--- /dev/null
+++ b/tests/robotests/res/xml-mcc999/video_preference.xml
@@ -0,0 +1,32 @@
+<?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.
+-->
+
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res-auto">
+ <com.android.settings.widget.VideoPreference
+ android:key="video1"
+ settings:animation="@raw/adaptive_sleep"
+ settings:preview="@drawable/adaptive_sleep"
+ android:title="seek_bar_title"/>
+ <com.android.settings.widget.VideoPreference
+ android:key="video2"
+ settings:animation="@raw/adaptive_sleep"
+ settings:preview="@drawable/adaptive_sleep"
+ settings:vectorAnimation="@drawable/adaptive_sleep"
+ android:title="seek_bar_title"/>
+</PreferenceScreen >
diff --git a/tests/robotests/src/com/android/settings/bluetooth/UtilsTest.java b/tests/robotests/src/com/android/settings/bluetooth/UtilsTest.java
index 1920019..25808b5 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/UtilsTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/UtilsTest.java
@@ -15,8 +15,6 @@
*/
package com.android.settings.bluetooth;
-import static com.google.common.truth.Truth.assertThat;
-
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
@@ -24,7 +22,6 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import android.bluetooth.BluetoothDevice;
import android.content.Context;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -61,6 +58,6 @@
Utils.showConnectingError(mContext, "testName", mock(LocalBluetoothManager.class));
verify(mMetricsFeatureProvider).visible(eq(mContext), anyInt(),
- eq(MetricsEvent.ACTION_SETTINGS_BLUETOOTH_CONNECT_ERROR));
+ eq(MetricsEvent.ACTION_SETTINGS_BLUETOOTH_CONNECT_ERROR), anyInt());
}
}
diff --git a/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java b/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java
index 78d1f74..da234a1 100644
--- a/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java
+++ b/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java
@@ -10,12 +10,11 @@
import android.util.Xml;
import com.android.settings.R;
-import com.android.settings.search.DatabaseIndexingUtils;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.search.SearchFeatureProviderImpl;
-import com.android.settings.security.SecuritySettings;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
import org.junit.Before;
import org.junit.Test;
@@ -35,9 +34,6 @@
@RunWith(RobolectricTestRunner.class)
public class XmlControllerAttributeTest {
- // List of classes that are too hard to mock in order to retrieve xml information.
- private final List<Class> illegalClasses = Arrays.asList(SecuritySettings.class);
-
// List of XML that could be retrieved from the illegalClasses list.
private final List<Integer> whitelistXml = Arrays.asList(R.xml.security_dashboard_settings);
@@ -112,14 +108,12 @@
private Set<Integer> getIndexableXml() {
Set<Integer> xmlResSet = new HashSet<>();
- Collection<Class> indexableClasses =
+ Collection<SearchIndexableData> SearchIndexableDatas =
mSearchProvider.getSearchIndexableResources().getProviderValues();
- indexableClasses.removeAll(illegalClasses);
- for (Class clazz : indexableClasses) {
+ for (SearchIndexableData bundle : SearchIndexableDatas) {
- Indexable.SearchIndexProvider provider =
- DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+ Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider();
if (provider == null) {
continue;
diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/SettingsEventLogWriterTest.java b/tests/robotests/src/com/android/settings/core/instrumentation/SettingsEventLogWriterTest.java
index ba2553d..8f22df0 100644
--- a/tests/robotests/src/com/android/settings/core/instrumentation/SettingsEventLogWriterTest.java
+++ b/tests/robotests/src/com/android/settings/core/instrumentation/SettingsEventLogWriterTest.java
@@ -62,7 +62,7 @@
SettingsUIDeviceConfig.GENERIC_EVENT_LOGGING_ENABLED, "true", true);
mWriter.visible(RuntimeEnvironment.application, SettingsEnums.PAGE_UNKNOWN,
- SettingsEnums.SETTINGS_HOMEPAGE);
+ SettingsEnums.SETTINGS_HOMEPAGE, 0);
assertThat(ShadowMetricsLogger.sActionLoggedCount).isEqualTo(1);
}
@@ -83,7 +83,7 @@
SettingsUIDeviceConfig.GENERIC_EVENT_LOGGING_ENABLED, "false", true);
mWriter.visible(RuntimeEnvironment.application, SettingsEnums.PAGE_UNKNOWN,
- SettingsEnums.SETTINGS_HOMEPAGE);
+ SettingsEnums.SETTINGS_HOMEPAGE, 0);
assertThat(ShadowMetricsLogger.sActionLoggedCount).isEqualTo(0);
}
diff --git a/tests/robotests/src/com/android/settings/datausage/CellDataPreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/CellDataPreferenceTest.java
index 9b14e19..0b8ebbf 100644
--- a/tests/robotests/src/com/android/settings/datausage/CellDataPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/CellDataPreferenceTest.java
@@ -18,17 +18,18 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.doReturn;
import android.content.Context;
import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import androidx.preference.PreferenceViewHolder;
+import com.android.settings.network.ProxySubscriptionManager;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -41,14 +42,13 @@
public class CellDataPreferenceTest {
@Mock
- private SubscriptionManager mSubscriptionManager;
+ private ProxySubscriptionManager mProxySubscriptionMgr;
@Mock
private SubscriptionInfo mSubInfo;
private Context mContext;
private PreferenceViewHolder mHolder;
private CellDataPreference mPreference;
- private SubscriptionManager.OnSubscriptionsChangedListener mListener;
@Before
public void setUp() {
@@ -56,9 +56,9 @@
mContext = RuntimeEnvironment.application;
mPreference = new CellDataPreference(mContext, null);
- mListener = mPreference.mOnSubscriptionsChangeListener;
+ mPreference.mProxySubscriptionMgr = mProxySubscriptionMgr;
- LayoutInflater inflater = LayoutInflater.from(mContext);
+ final LayoutInflater inflater = LayoutInflater.from(mContext);
final View view = inflater.inflate(mPreference.getLayoutResource(),
new LinearLayout(mContext), false);
@@ -67,12 +67,15 @@
@Test
public void noActiveSub_shouldDisable() {
- mPreference.mSubscriptionManager = mSubscriptionManager;
- mListener.onSubscriptionsChanged();
+ doReturn(null).when(mProxySubscriptionMgr).getActiveSubscriptionInfo(anyInt());
+ mPreference.mOnSubscriptionsChangeListener.onChanged();
assertThat(mPreference.isEnabled()).isFalse();
+ }
- when(mSubscriptionManager.getActiveSubscriptionInfo(anyInt())).thenReturn(mSubInfo);
- mListener.onSubscriptionsChanged();
+ @Test
+ public void hasActiveSub_shouldEnable() {
+ doReturn(mSubInfo).when(mProxySubscriptionMgr).getActiveSubscriptionInfo(anyInt());
+ mPreference.mOnSubscriptionsChangeListener.onChanged();
assertThat(mPreference.isEnabled()).isTrue();
}
}
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java
index 9aa1c6f..6894d38 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java
@@ -42,6 +42,7 @@
import com.android.settings.R;
import com.android.settings.SettingsActivity;
+import com.android.settings.network.MobileDataEnabledListener;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.widget.LoadingViewController;
import com.android.settingslib.AppItem;
@@ -67,7 +68,7 @@
public class DataUsageListTest {
@Mock
- private CellDataPreference.DataStateListener mListener;
+ private MobileDataEnabledListener mMobileDataEnabledListener;
@Mock
private TemplatePreference.NetworkServices mNetworkServices;
@@ -83,9 +84,11 @@
mActivity = spy(mActivityController.get());
mNetworkServices.mPolicyEditor = mock(NetworkPolicyEditor.class);
mDataUsageList = spy(DataUsageList.class);
+ mDataUsageList.mDataStateListener = mMobileDataEnabledListener;
doReturn(mActivity).when(mDataUsageList).getContext();
- ReflectionHelpers.setField(mDataUsageList, "mDataStateListener", mListener);
+ ReflectionHelpers.setField(mDataUsageList, "mDataStateListener",
+ mMobileDataEnabledListener);
ReflectionHelpers.setField(mDataUsageList, "services", mNetworkServices);
}
@@ -98,11 +101,11 @@
mDataUsageList.onResume();
- verify(mListener).setListener(true, mDataUsageList.mSubId, mActivity);
+ verify(mMobileDataEnabledListener).start(anyInt());
mDataUsageList.onPause();
- verify(mListener).setListener(false, mDataUsageList.mSubId, mActivity);
+ verify(mMobileDataEnabledListener).stop();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java
index aa5db22..fe02cb1 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java
@@ -54,7 +54,7 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- ShadowApplication shadowContext = ShadowApplication.getInstance();
+ final ShadowApplication shadowContext = ShadowApplication.getInstance();
mContext = RuntimeEnvironment.application;
shadowContext.setSystemService(Context.CONNECTIVITY_SERVICE, mManager);
shadowContext.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
@@ -64,28 +64,28 @@
@Test
public void mobileDataStatus_whenNetworkIsSupported() {
when(mManager.isNetworkSupported(anyInt())).thenReturn(true);
- boolean hasMobileData = DataUsageUtils.hasMobileData(mContext);
+ final boolean hasMobileData = DataUsageUtils.hasMobileData(mContext);
assertThat(hasMobileData).isTrue();
}
@Test
public void mobileDataStatus_whenNetworkIsNotSupported() {
when(mManager.isNetworkSupported(anyInt())).thenReturn(false);
- boolean hasMobileData = DataUsageUtils.hasMobileData(mContext);
+ final boolean hasMobileData = DataUsageUtils.hasMobileData(mContext);
assertThat(hasMobileData).isFalse();
}
@Test
public void hasSim_simStateReady() {
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY);
- boolean hasSim = DataUsageUtils.hasSim(mContext);
+ final boolean hasSim = DataUsageUtils.hasSim(mContext);
assertThat(hasSim).isTrue();
}
@Test
public void hasSim_simStateMissing() {
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_ABSENT);
- boolean hasSim = DataUsageUtils.hasSim(mContext);
+ final boolean hasSim = DataUsageUtils.hasSim(mContext);
assertThat(hasSim).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java
index 0f39fc9..3ecdcff 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java
@@ -16,35 +16,21 @@
package com.android.settings.deviceinfo.simstatus;
-import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController
- .CELL_DATA_NETWORK_TYPE_VALUE_ID;
-import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController
- .CELL_VOICE_NETWORK_TYPE_VALUE_ID;
+import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.CELL_DATA_NETWORK_TYPE_VALUE_ID;
+import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.CELL_VOICE_NETWORK_TYPE_VALUE_ID;
import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.EID_INFO_VALUE_ID;
-import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController
- .ICCID_INFO_LABEL_ID;
-import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController
- .ICCID_INFO_VALUE_ID;
-import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController
- .IMS_REGISTRATION_STATE_LABEL_ID;
-import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController
- .IMS_REGISTRATION_STATE_VALUE_ID;
-import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController
- .NETWORK_PROVIDER_VALUE_ID;
-import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController
- .OPERATOR_INFO_LABEL_ID;
-import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController
- .OPERATOR_INFO_VALUE_ID;
-import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController
- .PHONE_NUMBER_VALUE_ID;
-import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController
- .ROAMING_INFO_VALUE_ID;
-import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController
- .SERVICE_STATE_VALUE_ID;
-import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController
- .SIGNAL_STRENGTH_LABEL_ID;
-import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController
- .SIGNAL_STRENGTH_VALUE_ID;
+import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.ICCID_INFO_LABEL_ID;
+import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.ICCID_INFO_VALUE_ID;
+import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.IMS_REGISTRATION_STATE_LABEL_ID;
+import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.IMS_REGISTRATION_STATE_VALUE_ID;
+import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.NETWORK_PROVIDER_VALUE_ID;
+import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.OPERATOR_INFO_LABEL_ID;
+import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.OPERATOR_INFO_VALUE_ID;
+import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.PHONE_NUMBER_VALUE_ID;
+import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.ROAMING_INFO_VALUE_ID;
+import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.SERVICE_STATE_VALUE_ID;
+import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.SIGNAL_STRENGTH_LABEL_ID;
+import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.SIGNAL_STRENGTH_VALUE_ID;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
@@ -70,8 +56,11 @@
import androidx.lifecycle.LifecycleOwner;
import com.android.settings.R;
+import com.android.settings.testutils.shadow.ShadowDeviceInfoUtils;
+import com.android.settingslib.DeviceInfoUtils;
import com.android.settingslib.core.lifecycle.Lifecycle;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -80,10 +69,12 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowPackageManager;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowDeviceInfoUtils.class})
public class SimStatusDialogControllerTest {
@Mock
@@ -120,11 +111,11 @@
mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner);
mController = spy(new SimStatusDialogController(mDialog, mLifecycle, 0 /* phone id */));
+ ShadowDeviceInfoUtils.setPhoneNumber("");
doReturn(mServiceState).when(mController).getCurrentServiceState();
doReturn(0).when(mSignalStrength).getDbm();
doReturn(0).when(mSignalStrength).getAsuLevel();
doReturn(mPhoneStateListener).when(mController).getPhoneStateListener();
- doReturn("").when(mController).getPhoneNumber();
doReturn(mSignalStrength).when(mController).getSignalStrength();
doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(anyInt());
@@ -141,12 +132,17 @@
.thenReturn(true);
final ShadowPackageManager shadowPackageManager =
- Shadows.shadowOf(RuntimeEnvironment.application.getPackageManager());
+ Shadows.shadowOf(RuntimeEnvironment.application.getPackageManager());
final PackageInfo sysUIPackageInfo = new PackageInfo();
sysUIPackageInfo.packageName = "com.android.systemui";
shadowPackageManager.addPackage(sysUIPackageInfo);
}
+ @After
+ public void tearDown() {
+ ShadowDeviceInfoUtils.reset();
+ }
+
@Test
public void initialize_updateNetworkProviderWithFoobarCarrier_shouldUpdateCarrierWithFoobar() {
final CharSequence carrierName = "foobar";
@@ -159,8 +155,10 @@
@Test
public void initialize_updatePhoneNumberWith1111111111_shouldUpdatePhoneNumber() {
- final String phoneNumber = "1111111111";
- doReturn(phoneNumber).when(mController).getPhoneNumber();
+ ShadowDeviceInfoUtils.setPhoneNumber("1111111111");
+
+ final String phoneNumber = DeviceInfoUtils.getBidiFormattedPhoneNumber(mContext,
+ mSubscriptionInfo);
mController.initialize();
@@ -239,7 +237,7 @@
mController.initialize();
final String signalStrengthString =
- mContext.getString(R.string.sim_signal_strength, signalDbm, signalAsu);
+ mContext.getString(R.string.sim_signal_strength, signalDbm, signalAsu);
verify(mDialog).setText(SIGNAL_STRENGTH_VALUE_ID, signalStrengthString);
}
@@ -321,7 +319,7 @@
public void initialize_doNotShowSignalStrength_shouldRemoveSignalStrengthSetting() {
when(mPersistableBundle.getBoolean(
CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL))
- .thenReturn(false);
+ .thenReturn(false);
mController.initialize();
@@ -377,31 +375,31 @@
@Test
public void initialize_imsRegistered_shouldSetImsRegistrationStateSummaryToRegisterd() {
when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(true);
+ CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(true);
when(mTelephonyManager.isImsRegistered(anyInt())).thenReturn(true);
mController.initialize();
verify(mDialog).setText(IMS_REGISTRATION_STATE_VALUE_ID,
- mContext.getString(R.string.ims_reg_status_registered));
+ mContext.getString(R.string.ims_reg_status_registered));
}
@Test
public void initialize_imsNotRegistered_shouldSetImsRegistrationStateSummaryToNotRegisterd() {
when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(true);
+ CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(true);
when(mTelephonyManager.isImsRegistered(anyInt())).thenReturn(false);
mController.initialize();
verify(mDialog).setText(IMS_REGISTRATION_STATE_VALUE_ID,
- mContext.getString(R.string.ims_reg_status_not_registered));
+ mContext.getString(R.string.ims_reg_status_not_registered));
}
@Test
public void initialize_showImsRegistration_shouldNotRemoveImsRegistrationStateSetting() {
when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(true);
+ CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(true);
mController.initialize();
@@ -411,7 +409,7 @@
@Test
public void initialize_doNotShowImsRegistration_shouldRemoveImsRegistrationStateSetting() {
when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(false);
+ CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(false);
mController.initialize();
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionControllerTest.java
index 8663d0b..ac3d7d8 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionControllerTest.java
@@ -61,11 +61,10 @@
}
@Test
- public void buildContextualCard_noWifiAp_shouldHaveDefaultSsid() {
+ public void buildContextualCard_noWifiAp_shouldHaveEmptySsid() {
final ContextualCard card = mController.buildContextualCard();
- assertThat(card.getSummaryText()).isEqualTo(
- mContext.getText(com.android.internal.R.string.wifi_tether_configure_ssid_default));
+ assertThat(card.getSummaryText()).isEqualTo("");
}
private void setupWifiApConfiguration() {
diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
index b7691af..702d689 100644
--- a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
@@ -18,12 +18,8 @@
import static androidx.lifecycle.Lifecycle.Event.ON_START;
import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
-import static com.android.settings.network.MobileNetworkPreferenceController.MOBILE_NETWORK_CLASS;
-import static com.android.settings.network.MobileNetworkPreferenceController.MOBILE_NETWORK_PACKAGE;
-
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
@@ -31,23 +27,18 @@
import static org.mockito.Mockito.when;
import static org.robolectric.shadow.api.Shadow.extract;
-import android.app.Activity;
-import android.content.ComponentName;
import android.content.Context;
-import android.content.Intent;
import android.net.ConnectivityManager;
import android.os.UserManager;
import android.provider.Settings;
import android.provider.Settings.Global;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
-import android.util.FeatureFlagUtils;
import androidx.lifecycle.LifecycleOwner;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
-import com.android.settings.core.FeatureFlags;
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
@@ -57,10 +48,8 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
@@ -186,18 +175,4 @@
mController.updateState(mPreference);
assertThat(mPreference.isEnabled()).isFalse();
}
-
- @Test
- public void handlePreferenceTreeClick_mobileFeatureDisabled_sendIntent() {
- mController = new MobileNetworkPreferenceController(mContext);
- FeatureFlagUtils.setEnabled(mContext, FeatureFlags.MOBILE_NETWORK_V2, false);
- ArgumentCaptor<Intent> argument = ArgumentCaptor.forClass(Intent.class);
- doNothing().when(mContext).startActivity(argument.capture());
-
- mController.handlePreferenceTreeClick(mPreference);
-
- final ComponentName componentName = argument.getValue().getComponent();
- assertThat(componentName.getPackageName()).isEqualTo(MOBILE_NETWORK_PACKAGE);
- assertThat(componentName.getClassName()).isEqualTo(MOBILE_NETWORK_CLASS);
- }
}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java
index d1a5e42..c4f1948 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java
@@ -33,19 +33,12 @@
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
-import android.view.Menu;
-import android.view.View;
import androidx.test.core.app.ActivityScenario;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.internal.telephony.TelephonyIntents;
-import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
-import com.android.settings.development.featureflags.FeatureFlagPersistent;
-
-import com.google.android.material.bottomnavigation.BottomNavigationView;
import org.junit.After;
import org.junit.Before;
@@ -124,26 +117,10 @@
private ActivityScenario<MobileNetworkActivity> createTargetActivity(Intent activityIntent,
boolean isInternetV2) {
- FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, isInternetV2);
return ActivityScenario.launch(activityIntent);
}
@Test
- public void updateBottomNavigationView_oneSubscription_shouldBeGone() {
- mSubscriptionManager.setActiveSubscriptionInfos(mSubscriptionInfo1);
-
- mMobileNetworkActivity = createTargetActivity(mTestIntent, false);
-
- mMobileNetworkActivity.moveToState(State.STARTED);
-
- mMobileNetworkActivity.onActivity(activity -> {
- final BottomNavigationView bottomNavigationView =
- activity.findViewById(R.id.bottom_nav);
- assertThat(bottomNavigationView.getVisibility()).isEqualTo(View.GONE);
- });
- }
-
- @Test
public void updateBottomNavigationViewV2_oneSubscription_shouldNotCrash() {
mSubscriptionManager.setActiveSubscriptionInfos(mSubscriptionInfo1);
@@ -153,22 +130,6 @@
}
@Test
- public void updateBottomNavigationView_twoSubscription_updateMenu() {
- mSubscriptionManager.setActiveSubscriptionInfos(mSubscriptionInfo1, mSubscriptionInfo2);
-
- mMobileNetworkActivity = createTargetActivity(mTestIntent, false);
-
- mMobileNetworkActivity.moveToState(State.STARTED);
-
- mMobileNetworkActivity.onActivity(activity -> {
- final BottomNavigationView bottomNavigationView =
- activity.findViewById(R.id.bottom_nav);
- final Menu menu = bottomNavigationView.getMenu();
- assertThat(menu.size()).isEqualTo(2);
- });
- }
-
- @Test
public void updateBottomNavigationViewV2_twoSubscription_shouldNotCrash() {
mSubscriptionManager.setActiveSubscriptionInfos(mSubscriptionInfo1, mSubscriptionInfo2);
@@ -189,14 +150,6 @@
mMobileNetworkActivity.onActivity(activity -> {
final MockMobileNetworkActivity mockActivity = (MockMobileNetworkActivity) activity;
assertThat(mockActivity.mSubscriptionInFragment).isEqualTo(mSubscriptionInfo1);
-
- final BottomNavigationView bottomNavigationView =
- mockActivity.findViewById(R.id.bottom_nav);
- bottomNavigationView.setSelectedItemId(CURRENT_SUB_ID);
- assertThat(mockActivity.mSubscriptionInFragment).isEqualTo(mSubscriptionInfo2);
-
- bottomNavigationView.setSelectedItemId(PREV_SUB_ID);
- assertThat(mockActivity.mSubscriptionInFragment).isEqualTo(mSubscriptionInfo1);
});
}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
index 4afe0fc..7ff3ab3 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
@@ -36,9 +36,7 @@
import androidx.fragment.app.FragmentActivity;
-import com.android.settings.core.FeatureFlags;
import com.android.settings.datausage.DataUsageSummaryPreferenceController;
-import com.android.settings.development.featureflags.FeatureFlagPersistent;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
import com.android.settings.widget.EntityHeaderController;
@@ -92,32 +90,13 @@
}
@Test
- public void onAttach_noV2Flag_noCrash() {
- FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, false);
+ public void onAttach_noCrash() {
mFragment.onAttach(mContext);
}
- @Test
- public void onAttach_v2Flag_noCrash() {
- FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, true);
- mFragment.onAttach(mContext);
- }
@Test
- public void createPreferenceControllers_noV2Flag_noDataUsageSummaryController() {
- FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, false);
- final List<AbstractPreferenceController> controllers =
- mFragment.createPreferenceControllers(mContext);
- assertThat(controllers.stream().filter(
- c -> c.getClass().equals(DataUsageSummaryPreferenceController.class))
- .count())
- .isEqualTo(0);
- }
-
- @Test
- public void createPreferenceControllers_v2Flag_createsDataUsageSummaryController() {
- FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, true);
-
+ public void createPreferenceControllers_createsDataUsageSummaryController() {
final List<AbstractPreferenceController> controllers =
mFragment.createPreferenceControllers(mContext);
assertThat(controllers.stream().filter(
diff --git a/tests/robotests/src/com/android/settings/network/telephony/NetworkOperatorPreferenceTest.java b/tests/robotests/src/com/android/settings/network/telephony/NetworkOperatorPreferenceTest.java
index 704dd95..3a61195 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/NetworkOperatorPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/NetworkOperatorPreferenceTest.java
@@ -60,7 +60,7 @@
when(mResources.getBoolean(com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI))
.thenReturn(false);
final NetworkOperatorPreference preference = spy(
- new NetworkOperatorPreference(mCellInfo, mContext,
+ new NetworkOperatorPreference(mContext, mCellInfo,
new ArrayList<>() /* forbiddenPlmns */, false /* show4GForLTE */));
preference.setIcon(LEVEL);
diff --git a/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java b/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
index 7dfc8a3..6bee38f 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
@@ -23,7 +23,11 @@
import static org.mockito.Mockito.when;
import android.content.Context;
-import android.telephony.CellInfo;
+import android.content.SharedPreferences;
+import android.telephony.CellIdentityLte;
+import android.telephony.CellIdentityWcdma;
+import android.telephony.CellInfoLte;
+import android.telephony.CellInfoWcdma;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -43,20 +47,27 @@
@RunWith(RobolectricTestRunner.class)
public class NetworkSelectSettingsTest {
private static final int SUB_ID = 2;
+ private static final String CARRIER_NAME1 = "CarrierName1";
+ private static final String CARRIER_NAME2 = "CarrierName2";
@Mock
private TelephonyManager mTelephonyManager;
@Mock
private SubscriptionManager mSubscriptionManager;
@Mock
- private CellInfo mCellInfo1;
+ private CellInfoWcdma mCellInfo1;
@Mock
- private CellInfo mCellInfo2;
+ private CellIdentityWcdma mCellId1;
+ @Mock
+ private CellInfoLte mCellInfo2;
+ @Mock
+ private CellIdentityLte mCellId2;
@Mock
private PreferenceManager mPreferenceManager;
+ @Mock
+ private SharedPreferences mSharedPreferences;
private Context mContext;
- private PreferenceCategory mConnectedPreferenceCategory;
private PreferenceCategory mPreferenceCategory;
private NetworkSelectSettings mNetworkSelectSettings;
@@ -71,10 +82,13 @@
when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
when(mCellInfo1.isRegistered()).thenReturn(true);
+ when(mCellInfo1.getCellIdentity()).thenReturn(mCellId1);
+ when(mCellId1.getOperatorAlphaLong()).thenReturn(CARRIER_NAME1);
when(mCellInfo2.isRegistered()).thenReturn(false);
+ when(mCellInfo2.getCellIdentity()).thenReturn(mCellId2);
+ when(mCellId2.getOperatorAlphaLong()).thenReturn(CARRIER_NAME2);
- mConnectedPreferenceCategory = spy(new PreferenceCategory(mContext));
- doReturn(mPreferenceManager).when(mConnectedPreferenceCategory).getPreferenceManager();
+ doReturn(mSharedPreferences).when(mPreferenceManager).getSharedPreferences();
mPreferenceCategory = spy(new PreferenceCategory(mContext));
doReturn(mPreferenceManager).when(mPreferenceCategory).getPreferenceManager();
@@ -84,23 +98,18 @@
doReturn(mContext).when(mPreferenceManager).getContext();
mNetworkSelectSettings.mTelephonyManager = mTelephonyManager;
- mNetworkSelectSettings.mConnectedPreferenceCategory = mConnectedPreferenceCategory;
mNetworkSelectSettings.mPreferenceCategory = mPreferenceCategory;
mNetworkSelectSettings.mCellInfoList = Arrays.asList(mCellInfo1, mCellInfo2);
}
@Test
- public void updateAllPreferenceCategory_containCorrectPreference() {
+ public void updateAllPreferenceCategory_correctOrderingPreference() {
mNetworkSelectSettings.updateAllPreferenceCategory();
- assertThat(mConnectedPreferenceCategory.getPreferenceCount()).isEqualTo(1);
- final NetworkOperatorPreference connectedPreference =
- (NetworkOperatorPreference) mConnectedPreferenceCategory.getPreference(0);
- assertThat(connectedPreference.getCellInfo()).isEqualTo(mCellInfo1);
- assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(1);
+ assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(2);
final NetworkOperatorPreference preference =
- (NetworkOperatorPreference) mPreferenceCategory.getPreference(0);
- assertThat(preference.getCellInfo()).isEqualTo(mCellInfo2);
+ (NetworkOperatorPreference) mPreferenceCategory.getPreference(1);
+ assertThat(preference.getOperatorName()).isEqualTo(mCellId2.getOperatorAlphaLong());
}
@Test
diff --git a/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java
index 1048acd..a320c6e 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java
@@ -19,7 +19,6 @@
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertNull;
-import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@@ -31,12 +30,11 @@
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
+import android.telephony.ims.ImsMmTelManager;
import androidx.preference.Preference;
-import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;
-import com.android.ims.ImsConfig;
import com.android.ims.ImsManager;
import com.android.internal.R;
import com.android.settings.core.BasePreferenceController;
@@ -60,6 +58,8 @@
@Mock
private ImsManager mImsManager;
@Mock
+ private ImsMmTelManager mImsMmTelManager;
+ @Mock
private PreferenceScreen mPreferenceScreen;
private WifiCallingPreferenceController mController;
@@ -77,7 +77,12 @@
when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
mPreference = new Preference(mContext);
- mController = new WifiCallingPreferenceController(mContext, "wifi_calling");
+ mController = new WifiCallingPreferenceController(mContext, "wifi_calling") {
+ @Override
+ protected ImsMmTelManager getImsMmTelManager(int subId) {
+ return mImsMmTelManager;
+ }
+ };
mController.mCarrierConfigManager = mCarrierConfigManager;
mController.init(SUB_ID);
mController.mImsManager = mImsManager;
@@ -94,8 +99,10 @@
public void updateState_noSimCallManager_setCorrectSummary() {
mController.mSimCallManager = null;
when(mImsManager.isWfcEnabledByUser()).thenReturn(true);
- when(mImsManager.getWfcMode(anyBoolean())).thenReturn(
- ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY);
+ when(mImsMmTelManager.getVoWiFiRoamingModeSetting()).thenReturn(
+ ImsMmTelManager.WIFI_MODE_WIFI_ONLY);
+ when(mImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
+ ImsMmTelManager.WIFI_MODE_WIFI_ONLY);
mController.updateState(mPreference);
@@ -129,10 +136,10 @@
mController.init(SUB_ID);
mController.mImsManager = mImsManager;
- when(mImsManager.getWfcMode(true)).thenReturn(
- ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED);
- when(mImsManager.getWfcMode(false)).thenReturn(
- ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED);
+ when(mImsMmTelManager.getVoWiFiRoamingModeSetting()).thenReturn(
+ ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
+ when(mImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
+ ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED);
when(mImsManager.isWfcEnabledByUser()).thenReturn(true);
when(mTelephonyManager.isNetworkRoaming()).thenReturn(true);
@@ -146,10 +153,10 @@
assertNull(mController.mSimCallManager);
// useWfcHomeModeForRoaming is false by default. In order to check wfc in roaming mode. We
// need the device roaming, and not using home mode in roaming network.
- when(mImsManager.getWfcMode(true)).thenReturn(
- ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED);
- when(mImsManager.getWfcMode(false)).thenReturn(
- ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED);
+ when(mImsMmTelManager.getVoWiFiRoamingModeSetting()).thenReturn(
+ ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
+ when(mImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
+ ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED);
when(mImsManager.isWfcEnabledByUser()).thenReturn(true);
when(mTelephonyManager.isNetworkRoaming()).thenReturn(true);
@@ -169,7 +176,7 @@
@Test
public void displayPreference_available_setsSubscriptionIdOnIntent() {
- Intent intent = new Intent();
+ final Intent intent = new Intent();
mPreference.setIntent(intent);
mController.displayPreference(mPreferenceScreen);
assertThat(intent.getIntExtra(Settings.EXTRA_SUB_ID,
diff --git a/src/com/android/settings/search/DatabaseIndexingUtils.java b/tests/robotests/src/com/android/settings/search/DatabaseIndexingUtils.java
similarity index 90%
rename from src/com/android/settings/search/DatabaseIndexingUtils.java
rename to tests/robotests/src/com/android/settings/search/DatabaseIndexingUtils.java
index 21936a0..0aa70ae 100644
--- a/src/com/android/settings/search/DatabaseIndexingUtils.java
+++ b/tests/robotests/src/com/android/settings/search/DatabaseIndexingUtils.java
@@ -12,7 +12,6 @@
* 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.settings.search;
@@ -41,14 +40,14 @@
} catch (NoSuchFieldException e) {
Log.d(TAG, "Cannot find field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
} catch (SecurityException se) {
- Log.d(TAG, "Security exception for field '" +
- FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+ Log.d(TAG,
+ "Security exception for field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
} catch (IllegalAccessException e) {
Log.d(TAG, "Illegal access to field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
} catch (IllegalArgumentException e) {
- Log.d(TAG, "Illegal argument when accessing field '" +
- FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+ Log.d(TAG, "Illegal argument when accessing field '"
+ + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
}
return null;
}
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java b/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java
index c75e3b1..9daac80 100644
--- a/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java
+++ b/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java
@@ -26,6 +26,7 @@
import com.android.settings.core.codeinspection.CodeInspector;
import com.android.settings.dashboard.DashboardFragmentSearchIndexProviderInspector;
import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
import com.android.settingslib.search.SearchIndexableResources;
import org.robolectric.RuntimeEnvironment;
@@ -54,7 +55,7 @@
+ " but these are not: \n";
private static final String NOT_PROVIDING_VALID_RESOURCE_ERROR =
"SearchIndexableProvider must either provide no resource to index, or valid ones. "
- + "But the followings contain resource with xml id = 0\n";
+ + "But the followings contain resource with xml id = 0\n";
private final List<String> notImplementingIndexProviderGrandfatherList;
private final List<String> notInSearchIndexableRegistryGrandfatherList;
@@ -79,6 +80,13 @@
final Set<String> notInSearchProviderRegistry = new ArraySet<>();
final Set<String> notSharingPreferenceControllers = new ArraySet<>();
final Set<String> notProvidingValidResource = new ArraySet<>();
+ final Set<Class> providerClasses = new ArraySet<>();
+
+ final SearchFeatureProvider provider = new SearchFeatureProviderImpl();
+ for (SearchIndexableData bundle :
+ provider.getSearchIndexableResources().getProviderValues()) {
+ providerClasses.add(bundle.getTargetClass());
+ }
for (Class clazz : mClasses) {
if (!isConcreteSettingsClass(clazz)) {
@@ -108,8 +116,7 @@
continue;
}
// Must be in SearchProviderRegistry
- SearchFeatureProvider provider = new SearchFeatureProviderImpl();
- if (!provider.getSearchIndexableResources().getProviderValues().contains(clazz)) {
+ if (!providerClasses.contains(clazz)) {
if (!notInSearchIndexableRegistryGrandfatherList.remove(className)) {
notInSearchProviderRegistry.add(className);
}
diff --git a/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
index ff2acdc..5bcce57 100644
--- a/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
@@ -21,7 +21,6 @@
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.fail;
-
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@@ -32,6 +31,7 @@
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.FakeIndexProvider;
import com.android.settings.wifi.WifiSettings;
+import com.android.settingslib.search.SearchIndexableData;
import org.junit.After;
import org.junit.Before;
@@ -65,11 +65,11 @@
.doesNotContain(String.class);
final int beforeCount =
mSearchProvider.getSearchIndexableResources().getProviderValues().size();
-
- mSearchProvider.getSearchIndexableResources().addIndex(String.class);
+ final SearchIndexableData testBundle = new SearchIndexableData(null, null);
+ mSearchProvider.getSearchIndexableResources().addIndex(testBundle);
assertThat(mSearchProvider.getSearchIndexableResources().getProviderValues())
- .contains(String.class);
+ .contains(testBundle);
final int afterCount =
mSearchProvider.getSearchIndexableResources().getProviderValues().size();
assertThat(afterCount).isEqualTo(beforeCount + 1);
@@ -77,14 +77,22 @@
@Test
public void testIndexHasWifiSettings() {
- assertThat(mSearchProvider.getSearchIndexableResources().getProviderValues())
- .contains(WifiSettings.class);
+ boolean hasWifi = false;
+ for (SearchIndexableData bundle :
+ mSearchProvider.getSearchIndexableResources().getProviderValues()) {
+ if (bundle.getTargetClass().getName().equals(WifiSettings.class.getName())) {
+ hasWifi = true;
+ break;
+ }
+ }
+ assertThat(hasWifi).isTrue();
}
@Test
public void testNonIndexableKeys_GetsKeyFromProvider() {
mSearchProvider.getSearchIndexableResources().getProviderValues().clear();
- mSearchProvider.getSearchIndexableResources().addIndex(FakeIndexProvider.class);
+ mSearchProvider.getSearchIndexableResources().addIndex(
+ new SearchIndexableData(null, FakeIndexProvider.SEARCH_INDEX_DATA_PROVIDER));
SettingsSearchIndexablesProvider provider = spy(new SettingsSearchIndexablesProvider());
@@ -105,9 +113,10 @@
@Test
public void testAllClassNamesHaveProviders() {
- for (Class clazz : mSearchProvider.getSearchIndexableResources().getProviderValues()) {
- if (DatabaseIndexingUtils.getSearchIndexProvider(clazz) == null) {
- fail(clazz.getName() + "is not an index provider");
+ for (SearchIndexableData data :
+ mSearchProvider.getSearchIndexableResources().getProviderValues()) {
+ if (DatabaseIndexingUtils.getSearchIndexProvider(data.getTargetClass()) == null) {
+ fail(data.getTargetClass().getName() + "is not an index provider");
}
}
}
diff --git a/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java b/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java
index 2a8407b..0db684e 100644
--- a/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java
+++ b/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java
@@ -13,6 +13,7 @@
import com.android.settings.R;
import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settingslib.search.SearchIndexableData;
import org.junit.After;
import org.junit.Before;
@@ -46,7 +47,8 @@
final SearchFeatureProvider featureProvider = new SearchFeatureProviderImpl();
featureProvider.getSearchIndexableResources().getProviderValues().clear();
featureProvider.getSearchIndexableResources().getProviderValues()
- .add(FakeSettingsFragment.class);
+ .add(new SearchIndexableData(FakeSettingsFragment.class,
+ FakeSettingsFragment.SEARCH_INDEX_DATA_PROVIDER));
mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
mFakeFeatureFactory.searchFeatureProvider = featureProvider;
}
diff --git a/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java b/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java
index 21944fc..72eae7d 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java
@@ -31,11 +31,11 @@
import com.android.settings.core.TogglePreferenceController;
import com.android.settings.core.codeinspection.CodeInspector;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.search.DatabaseIndexingUtils;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.search.SearchFeatureProviderImpl;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
import org.robolectric.RuntimeEnvironment;
import org.xmlpull.v1.XmlPullParserException;
@@ -146,13 +146,12 @@
private List<Integer> getIndexableXml() {
final List<Integer> xmlResSet = new ArrayList<>();
- final Collection<Class> indexableClasses = FeatureFactory.getFactory(
+ final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(
mContext).getSearchFeatureProvider().getSearchIndexableResources()
.getProviderValues();
- for (Class clazz : indexableClasses) {
- Indexable.SearchIndexProvider provider = DatabaseIndexingUtils.getSearchIndexProvider(
- clazz);
+ for (SearchIndexableData bundle : bundles) {
+ Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider();
if (provider == null) {
continue;
diff --git a/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java b/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java
index 63da4d0..3ce964c 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java
@@ -37,6 +37,7 @@
import com.android.settings.search.SearchFeatureProviderImpl;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.FakeIndexProvider;
+import com.android.settingslib.search.SearchIndexableData;
import org.junit.After;
import org.junit.Before;
@@ -92,7 +93,8 @@
public void testFakeProvider_convertsFakeData() {
mSearchFeatureProvider.getSearchIndexableResources().getProviderValues().clear();
mSearchFeatureProvider.getSearchIndexableResources().getProviderValues()
- .add(FakeIndexProvider.class);
+ .add(new SearchIndexableData(FakeIndexProvider.class,
+ FakeIndexProvider.SEARCH_INDEX_DATA_PROVIDER));
doReturn(getFakeService()).when(mSliceDataConverter).getAccessibilityServiceInfoList();
diff --git a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
index bed5a27..a28dba8 100644
--- a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
@@ -24,9 +24,7 @@
import android.app.ApplicationPackageManager;
import android.content.ComponentName;
import android.content.ContentResolver;
-import android.content.ContentValues;
import android.content.Context;
-import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.provider.SettingsSlicesContract;
import android.view.accessibility.AccessibilityManager;
@@ -40,6 +38,7 @@
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.testutils.shadow.ShadowUtils;
+import com.android.settingslib.search.SearchIndexableData;
import org.junit.After;
import org.junit.Before;
@@ -217,7 +216,8 @@
// Fake the indexable list.
provider.getSearchIndexableResources().getProviderValues().clear();
provider.getSearchIndexableResources().getProviderValues().add(
- FakeIndexProvider.class);
+ new SearchIndexableData(FakeIndexProvider.class,
+ FakeIndexProvider.SEARCH_INDEX_DATA_PROVIDER));
final SlicesDatabaseAccessor accessor = new SlicesDatabaseAccessor(mContext);
final List<Uri> keys = accessor.getSliceUris(SettingsSliceProvider.SLICE_AUTHORITY);
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDeviceInfoUtils.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDeviceInfoUtils.java
new file mode 100644
index 0000000..f51cfe3
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDeviceInfoUtils.java
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+package com.android.settings.testutils.shadow;
+
+import android.content.Context;
+import android.telephony.SubscriptionInfo;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.Resetter;
+
+@Implements(com.android.settingslib.DeviceInfoUtils.class)
+public class ShadowDeviceInfoUtils {
+ private static String sPhoneNumber;
+
+ @Resetter
+ public static void reset() {
+ sPhoneNumber = "";
+ }
+
+ @Implementation
+ public static String getBidiFormattedPhoneNumber(Context context,
+ SubscriptionInfo subscriptionInfo) {
+ return sPhoneNumber;
+ }
+
+ public static void setPhoneNumber(String phoneNumber) {
+ sPhoneNumber = phoneNumber;
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java
index 09ee615..3439ca4 100644
--- a/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java
@@ -27,11 +27,13 @@
import android.content.Context;
import android.graphics.SurfaceTexture;
+import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.TextureView;
import android.view.View;
import android.widget.ImageView;
+import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceViewHolder;
import com.android.settings.R;
@@ -45,6 +47,7 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowSettingsMediaPlayer.class)
@@ -135,4 +138,29 @@
verify(fakePreview).setVisibility(eq(View.GONE));
assertThat(mAnimationController.isPlaying()).isTrue();
}
+
+ @Test
+ @Config(qualifiers = "mcc999")
+ public void onViewVisible_createAnimationController() {
+ final PreferenceFragmentCompat fragment = FragmentController.of(
+ new VideoPreferenceTest.TestFragment(),
+ new Bundle())
+ .create()
+ .start()
+ .resume()
+ .get();
+
+ final VideoPreference vp1 = fragment.findPreference("video1");
+ final VideoPreference vp2 = fragment.findPreference("video2");
+
+ assertThat(vp1.mAnimationController instanceof MediaAnimationController).isTrue();
+ assertThat(vp2.mAnimationController instanceof VectorAnimationController).isTrue();
+ }
+
+ public static class TestFragment extends PreferenceFragmentCompat {
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ addPreferencesFromResource(R.xml.video_preference);
+ }
+ }
}
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java
index a2f5daf..5e41d39 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java
@@ -39,6 +39,8 @@
import androidx.fragment.app.FragmentActivity;
import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R;
import com.android.settings.datausage.DataUsagePreference;
@@ -237,6 +239,15 @@
verify(mDataUsagePreference).setTemplate(any(), eq(0) /*subId*/, eq(null) /*service*/);
}
+ @Test
+ public void onCreateAdapter_hasStableIdsTrue() {
+ final PreferenceScreen preferenceScreen = mock(PreferenceScreen.class);
+
+ RecyclerView.Adapter adapter = mWifiSettings2.onCreateAdapter(preferenceScreen);
+
+ assertThat(adapter.hasStableIds()).isTrue();
+ }
+
// TODO(b/70983952): Add test for context menu
// @Test
// public void onCreateContextMenu_shouldHaveForgetMenuForConnectedAccessPreference() {
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java
index 18d3f5b..ed5edd0 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java
@@ -45,6 +45,8 @@
import androidx.fragment.app.FragmentActivity;
import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R;
import com.android.settings.datausage.DataUsagePreference;
@@ -291,4 +293,13 @@
verify(menu).add(anyInt(), eq(WifiSettings.MENU_ID_FORGET), anyInt(), anyInt());
}
+
+ @Test
+ public void onCreateAdapter_hasStableIdsTrue() {
+ final PreferenceScreen preferenceScreen = mock(PreferenceScreen.class);
+
+ RecyclerView.Adapter adapter = mWifiSettings.onCreateAdapter(preferenceScreen);
+
+ assertThat(adapter.hasStableIds()).isTrue();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
index 6fc2551..410c072 100644
--- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
@@ -17,11 +17,12 @@
package com.android.settings.wifi.calling;
import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT;
+
import static com.google.common.truth.Truth.assertThat;
import static junit.framework.Assert.assertEquals;
+
import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyBoolean;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doNothing;
@@ -42,6 +43,7 @@
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
import android.telephony.TelephonyManager;
+import android.telephony.ims.ImsMmTelManager;
import android.telephony.ims.ProvisioningManager;
import android.view.View;
import android.widget.TextView;
@@ -53,8 +55,6 @@
import com.android.ims.ImsManager;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.testutils.shadow.ShadowFragment;
import com.android.settings.widget.SwitchBar;
import com.android.settings.widget.ToggleSwitch;
@@ -67,8 +67,8 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.util.ReflectionHelpers;
import org.robolectric.annotation.Config;
+import org.robolectric.util.ReflectionHelpers;
@Config(shadows = ShadowFragment.class)
@RunWith(RobolectricTestRunner.class)
@@ -86,6 +86,7 @@
@Mock private static CarrierConfigManager sCarrierConfigManager;
@Mock private CarrierConfigManager mMockConfigManager;
@Mock private ImsManager mImsManager;
+ @Mock private ImsMmTelManager mImsMmTelManager;
@Mock private TelephonyManager mTelephonyManager;
@Mock private PreferenceScreen mPreferenceScreen;
@Mock private SettingsActivity mActivity;
@@ -127,12 +128,15 @@
doReturn(mSwitchBar).when(mView).findViewById(R.id.switch_bar);
doReturn(mImsManager).when(mFragment).getImsManager();
+ doReturn(mImsMmTelManager).when(mFragment).getImsMmTelManager();
doReturn(mImsConfig).when(mImsManager).getConfigInterface();
doReturn(true).when(mImsManager).isWfcProvisionedOnDevice();
doReturn(true).when(mImsManager).isWfcEnabledByUser();
doReturn(true).when(mImsManager).isNonTtyOrTtyOnVolteEnabled();
- doReturn(ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED)
- .when(mImsManager).getWfcMode(anyBoolean());
+ doReturn(ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED)
+ .when(mImsMmTelManager).getVoWiFiModeSetting();
+ doReturn(ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED)
+ .when(mImsMmTelManager).getVoWiFiRoamingModeSetting();
doReturn(mBundle).when(sCarrierConfigManager).getConfigForSubId(anyInt());
setDefaultCarrierConfigValues();
@@ -251,15 +255,13 @@
// Set the WFC home mode.
mFragment.onPreferenceChange(mButtonWfcMode,
- String.valueOf(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED));
+ String.valueOf(ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED));
// Check that only WFC home mode is set.
- verify(mImsManager, times(1)).setWfcMode(
- eq(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED),
- eq(false));
- verify(mImsManager, never()).setWfcMode(
- eq(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED),
- eq(true));
+ verify(mImsMmTelManager, times(1)).setVoWiFiModeSetting(
+ eq(ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED));
+ verify(mImsMmTelManager, never()).setVoWiFiRoamingModeSetting(
+ eq(ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED));
}
@Test
@@ -272,34 +274,32 @@
// Set the WFC home mode.
mFragment.onPreferenceChange(mButtonWfcMode,
- String.valueOf(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED));
+ String.valueOf(ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED));
// Check that both WFC home mode and roaming mode are set.
- verify(mImsManager, times(1)).setWfcMode(
- eq(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED),
- eq(false));
- verify(mImsManager, times(1)).setWfcMode(
- eq(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED),
- eq(true));
+ verify(mImsMmTelManager, times(1)).setVoWiFiModeSetting(
+ eq(ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED));
+ verify(mImsMmTelManager, times(1)).setVoWiFiRoamingModeSetting(
+ eq(ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED));
}
@Test
public void onSwitchChanged_enableSetting_shouldLaunchWfcDisclaimerFragment() {
- ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+ final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
mFragment.onSwitchChanged(null, true);
// Check the WFC disclaimer fragment is launched.
verify(mFragment).startActivityForResult(intentCaptor.capture(),
eq(WifiCallingSettingsForSub.REQUEST_CHECK_WFC_DISCLAIMER));
- Intent intent = intentCaptor.getValue();
+ final Intent intent = intentCaptor.getValue();
assertThat(intent.getStringExtra(EXTRA_SHOW_FRAGMENT))
.isEqualTo(WifiCallingDisclaimerFragment.class.getName());
}
@Test
public void onActivityResult_finishWfcDisclaimerFragment_shouldLaunchCarrierActivity() {
- ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+ final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
// Emulate the WfcDisclaimerActivity finish.
mFragment.onActivityResult(WifiCallingSettingsForSub.REQUEST_CHECK_WFC_DISCLAIMER,
@@ -308,7 +308,7 @@
// Check the WFC emergency address activity is launched.
verify(mFragment).startActivityForResult(intentCaptor.capture(),
eq(WifiCallingSettingsForSub.REQUEST_CHECK_WFC_EMERGENCY_ADDRESS));
- Intent intent = intentCaptor.getValue();
+ final Intent intent = intentCaptor.getValue();
assertEquals(intent.getComponent(), ComponentName.unflattenFromString(
TEST_EMERGENCY_ADDRESS_CARRIER_APP));
}
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
index 644e5e8..a22a18d 100644
--- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
@@ -22,7 +22,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -32,6 +31,7 @@
import android.content.Context;
import android.content.Intent;
import android.telephony.CarrierConfigManager;
+import android.telephony.ims.ImsMmTelManager;
import androidx.slice.Slice;
import androidx.slice.SliceItem;
@@ -44,7 +44,6 @@
import androidx.slice.widget.SliceContent;
import androidx.slice.widget.SliceLiveData;
-import com.android.ims.ImsConfig;
import com.android.ims.ImsManager;
import com.android.settings.R;
import com.android.settings.slices.CustomSliceRegistry;
@@ -76,6 +75,9 @@
@Mock
private ImsManager mMockImsManager;
+ @Mock
+ private ImsMmTelManager mMockImsMmTelManager;
+
private FakeWifiCallingSliceHelper mWfcSliceHelper;
private SettingsSliceProvider mProvider;
private SliceBroadcastReceiver mReceiver;
@@ -189,10 +191,10 @@
.thenReturn(mWfcSliceHelper);
mWfcSliceHelper.setActivationAppIntent(null);
- ArgumentCaptor<Boolean> mWfcSettingCaptor = ArgumentCaptor.forClass(Boolean.class);
+ final ArgumentCaptor<Boolean> mWfcSettingCaptor = ArgumentCaptor.forClass(Boolean.class);
// turn on Wifi calling setting
- Intent intent = new Intent(WifiCallingSliceHelper.ACTION_WIFI_CALLING_CHANGED);
+ final Intent intent = new Intent(WifiCallingSliceHelper.ACTION_WIFI_CALLING_CHANGED);
intent.putExtra(EXTRA_TOGGLE_STATE, true);
// change the setting
@@ -242,8 +244,8 @@
when(mMockImsManager.isWfcProvisionedOnDevice()).thenReturn(true);
when(mMockImsManager.isWfcEnabledByUser()).thenReturn(true);
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
- when(mMockImsManager.getWfcMode(false)).thenReturn(
- ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED);
+ when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
+ ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
mWfcSliceHelper.setIsWifiCallingPrefEditable(true);
final Slice slice = mWfcSliceHelper.createWifiCallingPreferenceSlice(
@@ -260,8 +262,8 @@
when(mMockImsManager.isWfcProvisionedOnDevice()).thenReturn(true);
when(mMockImsManager.isWfcEnabledByUser()).thenReturn(true);
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
- when(mMockImsManager.getWfcMode(false)).thenReturn(
- ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED);
+ when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
+ ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext))
.thenReturn(mWfcSliceHelper);
mWfcSliceHelper.setIsWifiCallingPrefEditable(true);
@@ -279,25 +281,26 @@
when(mMockImsManager.isWfcProvisionedOnDevice()).thenReturn(true);
when(mMockImsManager.isWfcEnabledByUser()).thenReturn(true);
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
- when(mMockImsManager.getWfcMode(false)).thenReturn(
- ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED);
+ when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
+ ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext))
.thenReturn(mWfcSliceHelper);
mWfcSliceHelper.setIsWifiCallingPrefEditable(true);
- ArgumentCaptor<Integer> mWfcPreferenceCaptor = ArgumentCaptor.forClass(Integer.class);
+ final ArgumentCaptor<Integer> mWfcPreferenceCaptor =
+ ArgumentCaptor.forClass(Integer.class);
// Change preference to Cellular pref
- Intent intent = new Intent(
+ final Intent intent = new Intent(
WifiCallingSliceHelper.ACTION_WIFI_CALLING_PREFERENCE_CELLULAR_PREFERRED);
mReceiver.onReceive(mContext, intent);
- verify((mMockImsManager)).setWfcMode(mWfcPreferenceCaptor.capture(), eq(false));
+ verify((mMockImsMmTelManager)).setVoWiFiModeSetting(mWfcPreferenceCaptor.capture());
// assert the change
assertThat(mWfcPreferenceCaptor.getValue()).isEqualTo(
- ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED);
+ ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED);
}
private void testWifiCallingSettingsUnavailableSlice(Slice slice,
@@ -400,7 +403,7 @@
private void assertTitle(List<SliceItem> sliceItems, String title) {
boolean hasTitle = false;
for (SliceItem item : sliceItems) {
- List<SliceItem> titleItems = SliceQuery.findAll(item, FORMAT_TEXT, HINT_TITLE,
+ final List<SliceItem> titleItems = SliceQuery.findAll(item, FORMAT_TEXT, HINT_TITLE,
null /* non-hints */);
if (titleItems == null) {
continue;
@@ -434,6 +437,11 @@
return mMockImsManager;
}
+ @Override
+ protected ImsMmTelManager getImsMmTelManager(int subId) {
+ return mMockImsMmTelManager;
+ }
+
protected int getDefaultVoiceSubId() {
return mSubId;
}
diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
index 81ac064..3ba7738 100644
--- a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
@@ -69,8 +69,6 @@
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.Utils;
-import com.android.settings.core.FeatureFlags;
-import com.android.settings.development.featureflags.FeatureFlagPersistent;
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
import com.android.settings.widget.EntityHeaderController;
@@ -1131,24 +1129,7 @@
}
@Test
- public void forgetNetwork_v1_Passpoint() {
- setUpForConnectedNetwork();
- FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, false);
-
- mockWifiConfig.networkId = 5;
- when(mockAccessPoint.isPasspoint()).thenReturn(true);
- when(mockAccessPoint.getPasspointFqdn()).thenReturn(FQDN);
-
- mController.displayPreference(mockScreen);
- mForgetClickListener.getValue().onClick(null);
-
- verify(mockWifiManager).removePasspointConfiguration(FQDN);
- verify(mockMetricsFeatureProvider)
- .action(mockActivity, MetricsProto.MetricsEvent.ACTION_WIFI_FORGET);
- }
-
- @Test
- public void forgetNetwork_PasspointV2_shouldShowDialog() {
+ public void forgetNetwork_shouldShowDialog() {
setUpForConnectedNetwork();
final WifiDetailPreferenceController spyController = spy(mController);
@@ -1156,7 +1137,6 @@
when(mockAccessPoint.isPasspoint()).thenReturn(true);
when(mockAccessPoint.getPasspointFqdn()).thenReturn(FQDN);
spyController.displayPreference(mockScreen);
- FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, true);
mForgetClickListener.getValue().onClick(null);
diff --git a/tests/unit/src/com/android/settings/core/PreferenceControllerContractTest.java b/tests/unit/src/com/android/settings/core/PreferenceControllerContractTest.java
index 3fcccf6..2d083f0 100644
--- a/tests/unit/src/com/android/settings/core/PreferenceControllerContractTest.java
+++ b/tests/unit/src/com/android/settings/core/PreferenceControllerContractTest.java
@@ -29,8 +29,8 @@
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.search.DatabaseIndexingUtils;
import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.search.SearchIndexableData;
import com.android.settingslib.search.SearchIndexableResources;
import org.junit.Before;
@@ -60,10 +60,10 @@
final SearchIndexableResources resources =
FeatureFactory.getFactory(mContext).getSearchFeatureProvider()
.getSearchIndexableResources();
- for (Class<?> clazz : resources.getProviderValues()) {
+ for (SearchIndexableData bundle : resources.getProviderValues()) {
final BaseSearchIndexProvider provider =
- (BaseSearchIndexProvider) DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+ (BaseSearchIndexProvider) bundle.getSearchIndexProvider();
if (provider == null) {
continue;
}
diff --git a/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java b/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java
index 251c512..9ed1c91 100644
--- a/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java
+++ b/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java
@@ -32,8 +32,8 @@
import com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.search.DatabaseIndexingUtils;
import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
import com.android.settingslib.search.SearchIndexableRaw;
import com.android.settingslib.search.SearchIndexableResources;
@@ -120,8 +120,8 @@
final SearchIndexableResources resources =
FeatureFactory.getFactory(mContext).getSearchFeatureProvider()
.getSearchIndexableResources();
- for (Class<?> clazz : resources.getProviderValues()) {
- verifyPreferenceKeys(uniqueKeys, duplicatedKeys, nullKeyClasses, clazz);
+ for (SearchIndexableData SearchIndexableData : resources.getProviderValues()) {
+ verifyPreferenceKeys(uniqueKeys, duplicatedKeys, nullKeyClasses, SearchIndexableData);
}
if (!nullKeyClasses.isEmpty()) {
@@ -145,14 +145,12 @@
}
private void verifyPreferenceKeys(Set<String> uniqueKeys, Set<String> duplicatedKeys,
- Set<String> nullKeyClasses, Class<?> clazz)
+ Set<String> nullKeyClasses, SearchIndexableData searchIndexableData)
throws IOException, XmlPullParserException, Resources.NotFoundException {
- if (clazz == null) {
- return;
- }
- final String className = clazz.getName();
+
+ final String className = searchIndexableData.getTargetClass().getName();
final Indexable.SearchIndexProvider provider =
- DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+ searchIndexableData.getSearchIndexProvider();
final List<SearchIndexableRaw> rawsToIndex = provider.getRawDataToIndex(mContext, true);
final List<SearchIndexableResource> resourcesToIndex =
provider.getXmlResourcesToIndex(mContext, true);
diff --git a/tests/unit/src/com/android/settings/core/UserRestrictionTest.java b/tests/unit/src/com/android/settings/core/UserRestrictionTest.java
index 0f5260a..e8e4927 100644
--- a/tests/unit/src/com/android/settings/core/UserRestrictionTest.java
+++ b/tests/unit/src/com/android/settings/core/UserRestrictionTest.java
@@ -33,8 +33,8 @@
import androidx.test.runner.AndroidJUnit4;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.search.DatabaseIndexingUtils;
import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
import com.android.settingslib.search.SearchIndexableResources;
import com.google.android.collect.Sets;
@@ -84,22 +84,21 @@
final SearchIndexableResources resources =
FeatureFactory.getFactory(mContext).getSearchFeatureProvider()
.getSearchIndexableResources();
- for (Class<?> clazz : resources.getProviderValues()) {
- verifyUserRestriction(clazz);
+ for (SearchIndexableData bundle : resources.getProviderValues()) {
+ verifyUserRestriction(bundle);
}
}
- private void verifyUserRestriction(Class<?> clazz)
+ private void verifyUserRestriction(SearchIndexableData searchIndexableData)
throws IOException, XmlPullParserException, Resources.NotFoundException {
- if (clazz == null) {
- return;
- }
- final String className = clazz.getName();
+
final Indexable.SearchIndexProvider provider =
- DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+ searchIndexableData.getSearchIndexProvider();
final List<SearchIndexableResource> resourcesToIndex =
provider.getXmlResourcesToIndex(mContext, true);
+ final String className = searchIndexableData.getTargetClass().getName();
+
if (resourcesToIndex == null) {
Log.d(TAG, className + "is not providing SearchIndexableResource, skipping");
return;
diff --git a/tests/unit/src/com/android/settings/slices/SliceDataContractTest.java b/tests/unit/src/com/android/settings/slices/SliceDataContractTest.java
index 7e5a8b0..61629e9 100644
--- a/tests/unit/src/com/android/settings/slices/SliceDataContractTest.java
+++ b/tests/unit/src/com/android/settings/slices/SliceDataContractTest.java
@@ -31,8 +31,8 @@
import com.android.settings.core.PreferenceXmlParserUtils;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.search.DatabaseIndexingUtils;
import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
import com.android.settingslib.search.SearchIndexableResources;
import org.junit.Before;
@@ -67,8 +67,8 @@
FeatureFactory.getFactory(mContext).getSearchFeatureProvider()
.getSearchIndexableResources();
- for (Class<?> clazz : resources.getProviderValues()) {
- verifyPreferenceTitle(nullTitleFragments, clazz);
+ for (SearchIndexableData SearchIndexableData : resources.getProviderValues()) {
+ verifyPreferenceTitle(nullTitleFragments, SearchIndexableData);
}
if (!nullTitleFragments.isEmpty()) {
@@ -82,14 +82,13 @@
}
}
- private void verifyPreferenceTitle(Set<String> nullTitleFragments, Class<?> clazz)
+ private void verifyPreferenceTitle(Set<String> nullTitleFragments,
+ SearchIndexableData searchIndexableData)
throws IOException, XmlPullParserException {
- if (clazz == null) {
- return;
- }
- final String className = clazz.getName();
+
+ final String className = searchIndexableData.getTargetClass().getName();
final Indexable.SearchIndexProvider provider =
- DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+ searchIndexableData.getSearchIndexProvider();
final List<SearchIndexableResource> resourcesToIndex =
provider.getXmlResourcesToIndex(mContext, true);
diff --git a/tests/unit/src/com/android/settings/wifi/WifiCallingSettingUiTest.java b/tests/unit/src/com/android/settings/wifi/WifiCallingSettingUiTest.java
index 3198914..c8a38f9 100644
--- a/tests/unit/src/com/android/settings/wifi/WifiCallingSettingUiTest.java
+++ b/tests/unit/src/com/android/settings/wifi/WifiCallingSettingUiTest.java
@@ -28,7 +28,6 @@
import static org.hamcrest.CoreMatchers.anything;
import static org.junit.Assert.assertEquals;
import static org.junit.matchers.JUnitMatchers.containsString;
-import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doReturn;
@@ -38,13 +37,13 @@
import android.content.Intent;
import android.support.test.uiautomator.UiDevice;
import android.telephony.SubscriptionInfo;
+import android.telephony.ims.ImsMmTelManager;
import androidx.test.InstrumentationRegistry;
import androidx.test.espresso.NoMatchingViewException;
import androidx.test.espresso.ViewInteraction;
import androidx.test.runner.AndroidJUnit4;
-import com.android.ims.ImsConfig;
import com.android.ims.ImsManager;
import com.android.internal.telephony.SubscriptionController;
import com.android.settings.testutils.MockedServiceManager;
@@ -87,6 +86,10 @@
ImsManager mImsManager0;
@Mock
ImsManager mImsManager1;
+ @Mock
+ ImsMmTelManager mImsMmTelManager0;
+ @Mock
+ ImsMmTelManager mImsMmTelManager1;
@Before
public void setUp() throws Exception {
@@ -134,10 +137,10 @@
public void testSingleSimUi() throws InterruptedException {
configureSingleSim();
doReturn(true).when(mImsManager0).isWfcEnabledByUser();
- doReturn(ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED)
- .when(mImsManager0).getWfcMode();
- doReturn(ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED)
- .when(mImsManager0).getWfcMode(anyBoolean());
+ doReturn(ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED)
+ .when(mImsMmTelManager0).getVoWiFiModeSetting();
+ doReturn(ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED)
+ .when(mImsMmTelManager0).getVoWiFiRoamingModeSetting();
mInstrumentation.startActivitySync(createActivityIntent());
@@ -179,10 +182,10 @@
doReturn(false).when(mImsManager1).isWfcEnabledByPlatform();
doReturn(false).when(mImsManager1).isNonTtyOrTtyOnVolteEnabled();
doReturn(false).when(mImsManager0).isWfcEnabledByUser();
- doReturn(ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED)
- .when(mImsManager0).getWfcMode();
- doReturn(ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED)
- .when(mImsManager0).getWfcMode(anyBoolean());
+ doReturn(ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED)
+ .when(mImsMmTelManager0).getVoWiFiModeSetting();
+ doReturn(ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED)
+ .when(mImsMmTelManager0).getVoWiFiRoamingModeSetting();
Activity activity = mInstrumentation.startActivitySync(createActivityIntent());
@@ -198,10 +201,10 @@
public void testWfcDisabled() throws InterruptedException {
configureSingleSim();
doReturn(false).when(mImsManager0).isWfcEnabledByUser();
- doReturn(ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED)
- .when(mImsManager0).getWfcMode();
- doReturn(ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED)
- .when(mImsManager0).getWfcMode(anyBoolean());
+ doReturn(ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED)
+ .when(mImsMmTelManager0).getVoWiFiModeSetting();
+ doReturn(ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED)
+ .when(mImsMmTelManager0).getVoWiFiRoamingModeSetting();
Activity activity = mInstrumentation.startActivitySync(createActivityIntent());
@@ -218,10 +221,10 @@
configureDualSim();
doReturn(true).when(mImsManager0).isWfcEnabledByUser();
doReturn(false).when(mImsManager1).isWfcEnabledByUser();
- doReturn(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED)
- .when(mImsManager0).getWfcMode();
- doReturn(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED)
- .when(mImsManager0).getWfcMode(anyBoolean());
+ doReturn(ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED)
+ .when(mImsMmTelManager0).getVoWiFiModeSetting();
+ doReturn(ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED)
+ .when(mImsMmTelManager0).getVoWiFiRoamingModeSetting();
mInstrumentation.startActivitySync(createActivityIntent());
@@ -256,6 +259,7 @@
com.android.settings.Settings.WifiCallingSettingsActivity.class);
intent.setPackage("com.android.settings");
intent.setAction("android.intent.action.MAIN");
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
return intent;
}