Merge "Enable Skip fingerprint when adding corp account."
diff --git a/Android.mk b/Android.mk
index 3610e77..ca2ad4a 100644
--- a/Android.mk
+++ b/Android.mk
@@ -32,7 +32,6 @@
com.google.android.material_material \
LOCAL_JAVA_LIBRARIES := \
- bouncycastle \
telephony-common \
ims-common
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f60d99e..eb3be0e 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -59,6 +59,7 @@
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.STATUS_BAR" />
<uses-permission android:name="android.permission.MANAGE_USB" />
+ <uses-permission android:name="android.permission.MANAGE_DEBUGGING" />
<uses-permission android:name="android.permission.SET_POINTER_SPEED" />
<uses-permission android:name="android.permission.SET_KEYBOARD_LAYOUT" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
@@ -80,6 +81,8 @@
<uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<uses-permission android:name="android.permission.MANAGE_FINGERPRINT" />
+ <uses-permission android:name="android.permission.USE_BIOMETRIC" />
+ <uses-permission android:name="android.permission.USE_BIOMETRIC_INTERNAL" />
<uses-permission android:name="android.permission.USER_ACTIVITY" />
<uses-permission android:name="android.permission.CHANGE_APP_IDLE_STATE" />
<uses-permission android:name="android.permission.PEERS_MAC_ADDRESS"/>
@@ -98,7 +101,6 @@
<application android:label="@string/settings_label"
android:icon="@drawable/ic_launcher_settings"
- android:taskAffinity=""
android:theme="@style/Theme.Settings"
android:hardwareAccelerated="true"
android:requiredForAllUsers="true"
@@ -112,26 +114,26 @@
<uses-library android:name="org.apache.http.legacy" />
<!-- Settings -->
- <activity android:name="Settings"
- android:taskAffinity="com.android.settings.root"
+ <activity android:name="SettingsActivity"
android:label="@string/settings_label_launcher"
android:launchMode="singleTask">
- <intent-filter android:priority="1">
- <action android:name="android.settings.SETTINGS" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity>
<activity android:name=".homepage.SettingsHomepageActivity"
- android:taskAffinity="com.android.settings.root"
android:label="@string/settings_label_launcher"
android:theme="@style/Theme.Settings.Home"
android:launchMode="singleTask">
+ <intent-filter android:priority="1">
+ <action android:name="android.settings.SETTINGS" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+ android:value="true" />
</activity>
- <activity android:name=".network.telephony.MobileSettingsActivity"
+ <activity android:name=".network.telephony.MobileNetworkActivity"
android:label="@string/network_settings_title"
android:theme="@style/Theme.Settings.Home"
android:launchMode="singleTask">
@@ -140,7 +142,6 @@
<!-- Alias for launcher activity only, as this belongs to each profile. -->
<activity-alias android:name="Settings"
- android:taskAffinity="com.android.settings.root"
android:label="@string/settings_label_launcher"
android:launchMode="singleTask"
android:targetActivity=".homepage.SettingsHomepageActivity">
@@ -160,7 +161,6 @@
</receiver>
<activity android:name=".SubSettings"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings" />
<activity android:name=".Settings$CreateShortcutActivity"
@@ -179,8 +179,7 @@
android:name=".Settings$NetworkDashboardActivity"
android:label="@string/network_dashboard_title"
android:icon="@drawable/ic_homepage_network"
- android:parentActivityName="Settings"
- android:taskAffinity="com.android.settings">
+ android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.WIRELESS_SETTINGS" />
<action android:name="android.settings.AIRPLANE_MODE_SETTINGS" />
@@ -191,12 +190,6 @@
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.VOICE_LAUNCH" />
</intent-filter>
- <intent-filter>
- <action android:name="com.android.settings.action.SETTINGS"/>
- </intent-filter>
- <meta-data android:name="com.android.settings.order" android:value="11"/>
- <meta-data android:name="com.android.settings.category"
- android:value="com.android.settings.category.ia.homepage"/>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.network.NetworkDashboardFragment"/>
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
@@ -207,20 +200,13 @@
android:name=".Settings$ConnectedDeviceDashboardActivity"
android:label="@string/connected_devices_dashboard_title"
android:icon="@drawable/ic_homepage_connected_device"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.BLUETOOTH_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
- <intent-filter>
- <action android:name="com.android.settings.action.SETTINGS"/>
- </intent-filter>
- <meta-data android:name="com.android.settings.order" android:value="10"/>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment"/>
- <meta-data android:name="com.android.settings.category"
- android:value="com.android.settings.category.ia.homepage"/>
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity>
@@ -251,7 +237,6 @@
android:label="@string/wifi_settings"
android:icon="@drawable/ic_settings_wireless"
android:configChanges="orientation|keyboardHidden|screenSize"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.WIFI_SETTINGS" />
@@ -269,7 +254,6 @@
<activity
android:name=".wifi.WifiPickerActivity"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.net.wifi.PICK_WIFI_NETWORK" />
@@ -284,7 +268,6 @@
android:label="@string/wifi_configure_settings_preference_title"
android:icon="@drawable/ic_settings_wireless"
android:configChanges="orientation|keyboardHidden|screenSize"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.WIFI_IP_SETTINGS" />
@@ -306,7 +289,6 @@
android:label="@string/wifi_saved_access_points_label"
android:icon="@drawable/ic_settings_wireless"
android:configChanges="orientation|keyboardHidden|screenSize"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.WIFI_SAVED_NETWORK_SETTINGS" />
@@ -359,7 +341,6 @@
android:excludeFromRecents="true"
android:exported="true"
android:permission="android.permission.CONNECTIVITY_INTERNAL"
- android:taskAffinity=""
android:theme="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert">
<intent-filter>
<action android:name="android.net.conn.PROMPT_UNVALIDATED" />
@@ -377,7 +358,6 @@
<activity android:name="Settings$ApnSettingsActivity"
android:label="@string/apn_settings"
android:launchMode="singleTask"
- android:taskAffinity="com.android.settings"
android:configChanges="orientation|keyboardHidden|screenSize"
android:parentActivityName="Settings$NetworkDashboardActivity"
android:process="com.android.phone">
@@ -471,7 +451,6 @@
android:name="Settings$TetherSettingsActivity"
android:label="@string/tether_settings_title_all"
android:icon="@drawable/ic_settings_wireless"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -511,7 +490,6 @@
</activity-alias>
<activity android:name="Settings$WifiP2pSettingsActivity"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -526,7 +504,6 @@
android:name="Settings$VpnSettingsActivity"
android:label="@string/vpn_settings_title"
android:icon="@drawable/ic_settings_wireless"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.VPN_SETTINGS" />
@@ -547,7 +524,6 @@
android:name="Settings$DateTimeSettingsActivity"
android:label="@string/date_and_time"
android:icon="@drawable/ic_settings_date_time"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.DATE_SETTINGS" />
@@ -575,7 +551,6 @@
android:name="Settings$LocalePickerActivity"
android:label="@string/language_picker_title"
android:icon="@drawable/ic_settings_language"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings$LanguageAndInputSettingsActivity">
<intent-filter android:priority="1">
<action android:name="android.settings.LOCALE_SETTINGS" />
@@ -602,7 +577,6 @@
android:name=".Settings$LanguageAndInputSettingsActivity"
android:label="@string/language_settings"
android:icon="@drawable/ic_settings_language"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -636,7 +610,6 @@
<activity
android:name="Settings$ManageAssistActivity"
android:label="@string/assist_and_voice_input_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.VOICE_INPUT_SETTINGS" />
@@ -678,7 +651,6 @@
<activity
android:name="Settings$SpellCheckersSettingsActivity"
android:label="@string/spellcheckers_settings_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -708,7 +680,6 @@
<activity
android:name="Settings$UserDictionarySettingsActivity"
android:label="@string/user_dict_settings_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.USER_DICTIONARY_SETTINGS" />
@@ -792,7 +763,6 @@
android:icon="@drawable/ic_notifications"
android:theme="@*android:style/Theme.DeviceDefault.Settings.Dialog.NoActionBar"
android:exported="true"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.ZEN_MODE_ONBOARDING" />
@@ -804,7 +774,6 @@
android:label="@string/zen_mode_automation_settings_title"
android:icon="@drawable/ic_notifications"
android:exported="true"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings$ZenModeSettingsActivity">
<intent-filter android:priority="1">
<action android:name="android.settings.ZEN_MODE_AUTOMATION_SETTINGS" />
@@ -851,7 +820,6 @@
<activity
android:name="Settings$ZenModeScheduleRuleSettingsActivity"
android:exported="true"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings$ZenModeAutomationSettingsActivity">
<intent-filter android:priority="1">
<action android:name="android.settings.ZEN_MODE_SCHEDULE_RULE_SETTINGS" />
@@ -870,7 +838,6 @@
<activity
android:name="Settings$ZenModeEventRuleSettingsActivity"
android:exported="true"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings$ZenModeAutomationSettingsActivity">
<intent-filter android:priority="1">
<action android:name="android.settings.ZEN_MODE_EVENT_RULE_SETTINGS" />
@@ -886,7 +853,6 @@
android:name="Settings$DisplaySettingsActivity"
android:label="@string/display_settings"
android:icon="@drawable/ic_homepage_display"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="com.android.settings.DISPLAY_SETTINGS" />
@@ -897,18 +863,10 @@
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
- <intent-filter>
- <action android:name="com.android.settings.action.SETTINGS" />
- </intent-filter>
- <meta-data android:name="com.android.settings.order" android:value="7"/>
- <meta-data android:name="com.android.settings.category"
- android:value="com.android.settings.category.ia.homepage" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.DisplaySettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
- <meta-data android:name="com.android.settings.summary"
- android:resource="@string/display_dashboard_summary"/>
</activity>
<activity
@@ -953,8 +911,7 @@
<activity android:name=".Settings$MyDeviceInfoActivity"
android:label="@string/about_settings"
- android:icon="@drawable/ic_settings_about"
- android:taskAffinity="com.android.settings"
+ android:icon="@drawable/ic_homepage_about"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.DEVICE_INFO_SETTINGS" />
@@ -965,14 +922,6 @@
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
- <intent-filter>
- <action android:name="com.android.settings.action.SETTINGS" />
- </intent-filter>
- <meta-data android:name="com.android.settings.order" android:value="-270"/>
- <meta-data android:name="com.android.settings.category"
- android:value="com.android.settings.category.ia.system" />
- <meta-data android:name="com.android.settings.title"
- android:resource="@string/about_settings" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.deviceinfo.aboutphone.MyDeviceInfoFragment" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
@@ -983,7 +932,6 @@
android:name="SettingsLicenseActivity"
android:label="@string/settings_license_activity_title"
android:configChanges="orientation|screenSize"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.LICENSE" />
@@ -996,7 +944,6 @@
<activity
android:name="Settings$ManageApplicationsActivity"
android:label="@string/applications_settings"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.APPLICATION_SETTINGS" />
@@ -1026,7 +973,6 @@
<activity
android:name="Settings$ManageDomainUrlsActivity"
android:label="@string/domain_urls_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="android.settings.MANAGE_DOMAIN_URLS" />
@@ -1050,7 +996,6 @@
<activity
android:name="Settings$HighPowerApplicationsActivity"
android:label="@string/high_power_apps"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS" />
@@ -1149,7 +1094,6 @@
<!-- Provide direct entry into manage apps showing running services. -->
<activity android:name="Settings$RunningServicesActivity"
android:label="@string/runningservices_settings_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -1167,7 +1111,6 @@
<activity
android:name="Settings$StorageUseActivity"
android:label="@string/storageuse_settings_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.intent.action.MANAGE_PACKAGE_STORAGE" />
@@ -1188,7 +1131,6 @@
<activity
android:name="Settings$NotificationStationActivity"
android:label="@string/notification_log_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="22">
<action android:name="android.intent.action.MAIN" />
@@ -1211,9 +1153,8 @@
<activity
android:name="Settings$LocationSettingsActivity"
android:label="@string/location_settings_title"
- android:icon="@drawable/ic_settings_location"
+ android:icon="@drawable/ic_homepage_location"
android:configChanges="orientation|keyboardHidden|screenSize"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.LOCATION_SOURCE_SETTINGS" />
@@ -1231,9 +1172,8 @@
<activity
android:name="Settings$ScanningSettingsActivity"
android:label="@string/location_scanning_screen_title"
- android:icon="@drawable/ic_settings_location"
+ android:icon="@drawable/ic_homepage_location"
android:configChanges="orientation|keyboardHidden|screenSize"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.LOCATION_SCANNING_SETTINGS" />
@@ -1250,7 +1190,6 @@
android:label="@string/security_settings_title"
android:icon="@drawable/ic_homepage_security"
android:configChanges="orientation|keyboardHidden|screenSize"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.SECURITY_SETTINGS" />
@@ -1262,12 +1201,6 @@
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.VOICE_LAUNCH" />
</intent-filter>
- <intent-filter>
- <action android:name="com.android.settings.action.SETTINGS" />
- </intent-filter>
- <meta-data android:name="com.android.settings.order" android:value="4"/>
- <meta-data android:name="com.android.settings.category"
- android:value="com.android.settings.category.ia.homepage" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.security.SecuritySettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
@@ -1277,8 +1210,7 @@
<activity android:name="MonitoringCertInfoActivity"
android:label=""
android:theme="@style/Transparent"
- android:excludeFromRecents="true"
- android:taskAffinity="">
+ android:excludeFromRecents="true">
<intent-filter android:priority="1">
<action android:name="com.android.settings.MONITORING_CERT_INFO" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1289,7 +1221,6 @@
android:name="Settings$TrustedCredentialsSettingsActivity"
android:label="@string/trusted_credentials"
android:icon="@drawable/ic_settings_security"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="com.android.settings.TRUSTED_CREDENTIALS" />
@@ -1306,7 +1237,6 @@
android:label="@string/privacy_settings_title"
android:icon="@drawable/ic_settings_backup"
android:configChanges="orientation|keyboardHidden|screenSize"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -1338,7 +1268,6 @@
<activity
android:name="Settings$DeviceAdminSettingsActivity"
android:label="@string/device_admin_settings_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -1379,7 +1308,6 @@
<activity
android:name="Settings$UsageAccessSettingsActivity"
android:label="@string/usage_access_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.USAGE_ACCESS_SETTINGS" />
@@ -1392,7 +1320,6 @@
<activity
android:name="Settings$AppUsageAccessSettingsActivity"
android:label="@string/usage_access_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="android.settings.USAGE_ACCESS_SETTINGS"/>
@@ -1421,7 +1348,6 @@
android:label="@string/accessibility_settings"
android:icon="@drawable/ic_homepage_accessibility"
android:configChanges="orientation|keyboardHidden|screenSize"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.ACCESSIBILITY_SETTINGS" />
@@ -1431,25 +1357,16 @@
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
- <intent-filter>
- <action android:name="com.android.settings.action.SETTINGS" />
- </intent-filter>
- <meta-data android:name="com.android.settings.order" android:value="2"/>
- <meta-data android:name="com.android.settings.category"
- android:value="com.android.settings.category.ia.homepage" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.accessibility.AccessibilitySettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
- <meta-data android:name="com.android.settings.summary"
- android:resource="@string/accessibility_settings_summary" />
</activity>
<activity android:name=".accessibility.AccessibilitySettingsForSetupWizardActivity"
android:icon="@drawable/ic_accessibility_suggestion"
android:label="@string/vision_settings_title"
- android:theme="@style/SetupWizardAccessibilityTheme"
- android:taskAffinity="com.android.wizard" >
+ android:theme="@style/SetupWizardAccessibilityTheme">
<intent-filter android:priority="1">
<action android:name="android.settings.ACCESSIBILITY_SETTINGS_FOR_SUW" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1471,7 +1388,6 @@
<activity
android:name="Settings$AccessibilityDaltonizerSettingsActivity"
android:label="@string/accessibility_display_daltonizer_preference_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="com.android.settings.ACCESSIBILITY_COLOR_SPACE_SETTINGS" />
@@ -1490,7 +1406,6 @@
<activity
android:name="Settings$CaptioningSettingsActivity"
android:label="@string/accessibility_captioning_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.CAPTIONING_SETTINGS" />
@@ -1519,7 +1434,6 @@
<activity
android:name="Settings$EnterprisePrivacySettingsActivity"
android:label="@string/enterprise_privacy_settings"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="android.settings.ENTERPRISE_PRIVACY_SETTINGS" />
@@ -1532,7 +1446,7 @@
<!-- Lock screen settings -->
<activity android:name=".password.ConfirmDeviceCredentialActivity"
android:exported="true"
- android:theme="@android:style/Theme.NoDisplay">
+ android:theme="@android:style/Theme.Translucent.NoTitleBar">
<intent-filter android:priority="1">
<action android:name="android.app.action.CONFIRM_DEVICE_CREDENTIAL" />
<action android:name="android.app.action.CONFIRM_FRP_CREDENTIAL" />
@@ -1559,8 +1473,7 @@
<activity android:name=".SetupRedactionInterstitial"
android:enabled="false"
android:exported="true"
- android:taskAffinity="com.android.wizard"
- android:theme="@style/SuwThemeGlif.Light"
+ android:theme="@style/SuwThemeGlif.DayNight"
android:label="@string/lock_screen_notifications_interstitial_title"
android:icon="@drawable/ic_suggested_notifications">
<intent-filter>
@@ -1606,6 +1519,15 @@
android:exported="false"
android:screenOrientation="portrait"/>
+ <activity android:name=".biometrics.BiometricEnrollActivity"
+ android:exported="true"
+ android:theme="@style/GlifTheme.Light">
+ <intent-filter>
+ <action android:name="android.settings.BIOMETRIC_ENROLL" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
+
<activity android:name=".biometrics.fingerprint.FingerprintSettings" android:exported="false"/>
<activity android:name=".biometrics.fingerprint.FingerprintEnrollFindSensor" android:exported="false"/>
<activity android:name=".biometrics.fingerprint.FingerprintEnrollEnrolling" android:exported="false"/>
@@ -1668,7 +1590,6 @@
android:theme="@style/GlifTheme.Light"/>
<activity android:name=".password.SetupChooseLockGeneric"
- android:taskAffinity="com.android.wizard"
android:theme="@style/GlifTheme.Light"
android:label="@string/lock_settings_picker_title">
<intent-filter android:priority="1">
@@ -1731,7 +1652,6 @@
<activity android:name=".password.SetupChooseLockPattern"
android:exported="false"
- android:taskAffinity="com.android.wizard"
android:theme="@style/GlifTheme.Light" />
<activity android:name=".password.ChooseLockPattern"
@@ -1740,7 +1660,6 @@
<activity android:name=".password.SetupChooseLockPassword"
android:exported="false"
- android:taskAffinity="com.android.wizard"
android:theme="@style/GlifTheme.Light"
android:windowSoftInputMode="stateVisible|adjustResize" />
@@ -1751,7 +1670,6 @@
<activity android:name=".SetupEncryptionInterstitial"
android:label="@string/encryption_interstitial_header"
- android:taskAffinity="com.android.wizard"
android:theme="@style/GlifTheme.Light"/>
<activity android:name=".EncryptionInterstitial"
@@ -1761,7 +1679,6 @@
android:name=".Settings$StorageDashboardActivity"
android:label="@string/storage_settings"
android:icon="@drawable/ic_homepage_storage"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.INTERNAL_STORAGE_SETTINGS" />
@@ -1772,14 +1689,6 @@
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
- <intent-filter>
- <action android:name="com.android.settings.action.SETTINGS" />
- </intent-filter>
- <meta-data android:name="com.android.settings.order" android:value="5"/>
- <meta-data android:name="com.android.settings.category"
- android:value="com.android.settings.category.ia.homepage" />
- <meta-data android:name="com.android.settings.title"
- android:resource="@string/storage_usb_settings" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.deviceinfo.StorageSettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
@@ -1796,7 +1705,6 @@
<activity
android:name="Settings$PublicVolumeSettingsActivity"
android:label="@string/storage_settings_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="android.provider.action.DOCUMENT_ROOT_SETTINGS" />
@@ -1822,39 +1730,31 @@
<!-- Exported for SystemUI to launch into -->
<activity android:name=".deviceinfo.StorageWizardInit"
android:theme="@style/GlifV3Theme.Light"
- android:taskAffinity="com.android.settings.storage_wizard"
android:exported="true"
android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<activity android:name=".deviceinfo.StorageWizardFormatProgress"
android:theme="@style/GlifV3Theme.Light"
- android:taskAffinity="com.android.settings.storage_wizard"
android:exported="false" />
<activity android:name=".deviceinfo.StorageWizardFormatSlow"
android:theme="@style/GlifV3Theme.Light"
- android:taskAffinity="com.android.settings.storage_wizard"
android:exported="false" />
<activity android:name=".deviceinfo.StorageWizardMigrateConfirm"
android:theme="@style/GlifV3Theme.Light"
- android:taskAffinity="com.android.settings.storage_wizard"
android:exported="false" />
<activity android:name=".deviceinfo.StorageWizardMigrateProgress"
android:theme="@style/GlifV3Theme.Light"
- android:taskAffinity="com.android.settings.storage_wizard"
android:exported="true"
android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<activity android:name=".deviceinfo.StorageWizardReady"
android:theme="@style/GlifV3Theme.Light"
- android:taskAffinity="com.android.settings.storage_wizard"
android:exported="true"
android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<activity android:name=".deviceinfo.StorageWizardMoveConfirm"
android:theme="@style/GlifV3Theme.Light"
- android:taskAffinity="com.android.settings.storage_wizard"
android:exported="false" />
<activity android:name=".deviceinfo.StorageWizardMoveProgress"
android:theme="@style/GlifV3Theme.Light"
- android:taskAffinity="com.android.settings.storage_wizard"
android:exported="true"
android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
@@ -1886,7 +1786,6 @@
android:name="Settings$DevelopmentSettingsDashboardActivity"
android:label="@string/development_settings_title"
android:icon="@drawable/ic_settings_development"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings"
android:enabled="false">
<intent-filter android:priority="1">
@@ -1927,7 +1826,6 @@
android:name="Settings$PrintSettingsActivity"
android:label="@string/print_settings"
android:icon="@drawable/ic_settings_print"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.ACTION_PRINT_SETTINGS" />
@@ -1944,7 +1842,6 @@
<activity android:name="Settings$PrintJobSettingsActivity"
android:label="@string/print_print_job"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings$PrintSettingsActivity">
<intent-filter android:priority="1">
<action android:name="android.settings.ACTION_PRINT_SETTINGS" />
@@ -2061,7 +1958,6 @@
<activity
android:name="Settings$AndroidBeamSettingsActivity"
android:label="@string/android_beam_settings_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.NFCSHARING_SETTINGS" />
@@ -2077,7 +1973,6 @@
android:name="Settings$WifiDisplaySettingsActivity"
android:label="@string/wifi_display_settings_title"
android:icon="@drawable/ic_cast_24dp"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.CAST_SETTINGS" />
@@ -2149,7 +2044,6 @@
<activity android:name="UsageStatsActivity"
android:label="@string/usage_stats_label"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -2161,7 +2055,6 @@
android:name="Settings$PowerUsageSummaryActivity"
android:label="@string/power_usage_summary_title"
android:icon="@drawable/ic_homepage_battery"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.intent.action.POWER_USAGE_SUMMARY" />
@@ -2171,12 +2064,6 @@
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
- <intent-filter>
- <action android:name="com.android.settings.action.SETTINGS" />
- </intent-filter>
- <meta-data android:name="com.android.settings.order" android:value="8"/>
- <meta-data android:name="com.android.settings.category"
- android:value="com.android.settings.category.ia.homepage" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.fuelgauge.PowerUsageSummary" />
</activity>
@@ -2185,7 +2072,6 @@
android:name="Settings$BatterySaverSettingsActivity"
android:label="@string/battery_saver"
android:icon="@drawable/ic_settings_battery"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.BATTERY_SAVER_SETTINGS" />
@@ -2211,7 +2097,6 @@
<activity
android:name="Settings$AccountSyncSettingsActivity"
android:label="@string/account_sync_settings_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.ACCOUNT_SYNC_SETTINGS" />
@@ -2225,7 +2110,6 @@
<activity
android:name="Settings$ManagedProfileSettingsActivity"
android:label="@string/managed_profile_settings_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings"
android:permission="android.permission.MANAGE_USERS">
<intent-filter android:priority="1">
@@ -2241,7 +2125,6 @@
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/header_add_an_account"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.ADD_ACCOUNT_SETTINGS" />
@@ -2315,7 +2198,6 @@
android:name="Settings$DataUsageSummaryActivity"
android:label="@string/data_usage_summary_title"
android:icon="@drawable/ic_settings_data_usage"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.DATA_USAGE_SETTINGS" />
@@ -2337,7 +2219,6 @@
<activity
android:name="Settings$MobileDataUsageListActivity"
android:label="@string/cellular_data_usage"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.MOBILE_DATA_USAGE" />
@@ -2351,7 +2232,6 @@
android:name="Settings$DreamSettingsActivity"
android:label="@string/screensaver_settings_title"
android:icon="@drawable/ic_settings_display"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.DREAM_SETTINGS" />
@@ -2367,7 +2247,6 @@
android:name="Settings$UserSettingsActivity"
android:label="@string/user_settings_title"
android:icon="@drawable/ic_settings_multiuser"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.USER_SETTINGS" />
@@ -2389,7 +2268,6 @@
android:name="Settings$PaymentSettingsActivity"
android:label="@string/nfc_payment_settings_title"
android:icon="@drawable/ic_settings_nfc_payment"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.NFC_PAYMENT_SETTINGS" />
@@ -2436,7 +2314,6 @@
<activity
android:name="Settings$NotificationAccessSettingsActivity"
android:label="@string/manage_notification_access_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS" />
@@ -2449,7 +2326,6 @@
<activity
android:name="Settings$VrListenersSettingsActivity"
android:label="@string/vr_listeners_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.VR_LISTENER_SETTINGS" />
@@ -2462,7 +2338,6 @@
<activity
android:name="Settings$PictureInPictureSettingsActivity"
android:label="@string/picture_in_picture_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.PICTURE_IN_PICTURE_SETTINGS" />
@@ -2479,7 +2354,6 @@
<activity
android:name="Settings$AppPictureInPictureSettingsActivity"
android:label="@string/picture_in_picture_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="android.settings.PICTURE_IN_PICTURE_SETTINGS" />
@@ -2534,7 +2408,6 @@
android:label="@string/sound_settings"
android:icon="@drawable/ic_homepage_sound"
android:exported="true"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="com.android.settings.SOUND_SETTINGS" />
@@ -2546,26 +2419,17 @@
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
- <intent-filter>
- <action android:name="com.android.settings.action.SETTINGS" />
- </intent-filter>
- <meta-data android:name="com.android.settings.order" android:value="6"/>
- <meta-data android:name="com.android.settings.category"
- android:value="com.android.settings.category.ia.homepage" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.notification.SoundSettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
- <meta-data android:name="com.android.settings.summary"
- android:resource="@string/sound_dashboard_summary"/>
</activity>
<!-- Show apps for which application-level notification settings are applicable -->
<activity android:name="Settings$NotificationAppListActivity"
android:label="@string/app_notifications_title"
android:icon="@drawable/ic_notifications"
- android:exported="true"
- android:taskAffinity="">
+ android:exported="true">
<intent-filter android:priority="1">
<action android:name="android.settings.ALL_APPS_NOTIFICATION_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2608,7 +2472,6 @@
<activity
android:name="ManualDisplayActivity"
android:label="@string/manual"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings"
android:enabled="@bool/config_show_manual">
<intent-filter>
@@ -2623,7 +2486,6 @@
<activity
android:name="RegulatoryInfoDisplayActivity"
android:label="@string/regulatory_labels"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings"
android:enabled="@bool/config_show_regulatory_info">
<intent-filter>
@@ -2653,7 +2515,7 @@
<receiver android:name=".sim.SimSelectNotification">
<intent-filter>
- <action android:name="android.intent.action.SIM_STATE_CHANGED"></action>
+ <action android:name="android.intent.action.SIM_STATE_CHANGED"/>
</intent-filter>
</receiver>
@@ -2671,7 +2533,6 @@
android:name="Settings$SimSettingsActivity"
android:label="@string/sim_settings_title"
android:icon="@drawable/ic_settings_sim"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="com.android.settings.sim.SIM_SUB_INFO_SETTINGS" />
@@ -2730,8 +2591,7 @@
<activity
android:name="Settings$WifiCallingSettingsActivity"
- android:label="@string/wifi_calling_settings_title"
- android:taskAffinity="com.android.settings">
+ android:label="@string/wifi_calling_settings_title">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.settings.WIFI_CALLING_SETTINGS" />
@@ -2785,7 +2645,6 @@
<activity
android:name="Settings$OverlaySettingsActivity"
android:label="@string/draw_overlay"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.action.MANAGE_OVERLAY_PERMISSION" />
@@ -2811,7 +2670,6 @@
<activity
android:name="Settings$WriteSettingsActivity"
android:label="@string/write_settings_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.action.MANAGE_WRITE_SETTINGS" />
@@ -2824,7 +2682,6 @@
<activity
android:name="Settings$AppWriteSettingsActivity"
android:label="@string/write_settings_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.action.MANAGE_WRITE_SETTINGS" />
@@ -2838,7 +2695,6 @@
<activity
android:name="Settings$ManageExternalSourcesActivity"
android:label="@string/install_other_apps"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.MANAGE_UNKNOWN_APP_SOURCES" />
@@ -2849,8 +2705,7 @@
</activity>
<activity android:name="Settings$ManageAppExternalSourcesActivity"
- android:label="@string/install_other_apps"
- android:taskAffinity="">
+ 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" />
@@ -2874,7 +2729,6 @@
android:name="Settings$AdvancedAppsActivity"
android:exported="true"
android:label="@string/app_default_dashboard_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.MANAGE_DEFAULT_APPS_SETTINGS" />
@@ -2914,7 +2768,6 @@
<activity android:name=".backup.BackupSettingsActivity"
android:label="@string/privacy_settings_title"
android:icon="@drawable/ic_settings_backup"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.PRIVACY_SETTINGS" />
@@ -2936,7 +2789,6 @@
android:name="Settings$AutomaticStorageManagerSettingsActivity"
android:exported="@bool/config_storage_manager_settings_enabled"
android:label="@string/automatic_storage_manager_settings"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.STORAGE_MANAGER_SETTINGS" />
@@ -2950,29 +2802,19 @@
android:name=".Settings$AppAndNotificationDashboardActivity"
android:label="@string/app_and_notification_dashboard_title"
android:icon="@drawable/ic_homepage_apps"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="com.android.settings.action.SETTINGS"/>
</intent-filter>
- <meta-data android:name="com.android.settings.order" android:value="9"/>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.applications.AppAndNotificationDashboardFragment"/>
- <meta-data android:name="com.android.settings.category"
- android:value="com.android.settings.category.ia.homepage"/>
- <meta-data android:name="com.android.settings.summary"
- android:resource="@string/app_and_notification_dashboard_summary"/>
</activity>
<activity
android:name=".Settings$AccountDashboardActivity"
android:label="@string/account_dashboard_title"
android:icon="@drawable/ic_homepage_accounts"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
- <intent-filter>
- <action android:name="com.android.settings.action.SETTINGS"/>
- </intent-filter>
<intent-filter android:priority="1">
<action android:name="android.settings.SYNC_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2981,11 +2823,8 @@
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
- <meta-data android:name="com.android.settings.order" android:value="3"/>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.accounts.AccountDashboardFragment"/>
- <meta-data android:name="com.android.settings.category"
- android:value="com.android.settings.category.ia.homepage"/>
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity>
@@ -2994,22 +2833,13 @@
android:name=".Settings$SystemDashboardActivity"
android:label="@string/header_category_system"
android:icon="@drawable/ic_homepage_system_dashboard"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
- <intent-filter>
- <action android:name="com.android.settings.action.SETTINGS"/>
- </intent-filter>
<intent-filter android:priority="70">
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
- <meta-data android:name="com.android.settings.order" android:value="-1"/>
- <meta-data android:name="com.android.settings.category"
- android:value="com.android.settings.category.ia.homepage"/>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.system.SystemDashboardFragment"/>
- <meta-data android:name="com.android.settings.summary"
- android:resource="@string/system_dashboard_summary"/>
</activity>
<activity android:name=".support.SupportDashboardActivity"
@@ -3018,17 +2848,9 @@
android:theme="@android:style/Theme.DeviceDefault.Light.Panel"
android:enabled="@bool/config_support_enabled">
<intent-filter>
- <action android:name="com.android.settings.action.SETTINGS"/>
- </intent-filter>
- <intent-filter>
<action android:name="com.android.settings.action.SUPPORT_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
- <meta-data android:name="com.android.settings.order" android:value="-2"/>
- <meta-data android:name="com.android.settings.category"
- android:value="com.android.settings.category.ia.homepage"/>
- <meta-data android:name="com.android.settings.summary"
- android:resource="@string/support_summary"/>
</activity>
<service
@@ -3077,6 +2899,7 @@
<action android:name="android.service.quicksettings.action.QS_TILE" />
</intent-filter>
</service>
+
<service
android:name=".development.qstile.DevelopmentTiles$WinscopeTrace"
android:label="@string/winscope_trace_quick_settings_title"
@@ -3116,7 +2939,6 @@
<activity android:name="Settings$AdvancedConnectedDeviceActivity"
android:label="@string/connected_device_connections_title"
- android:taskAffinity="com.android.settings"
android:parentActivityName="Settings$ConnectedDeviceDashboardActivity">
<intent-filter android:priority="1">
<action android:name="android.settings.NFC_SETTINGS" />
@@ -3132,17 +2954,6 @@
android:value="true" />
</activity>
- <activity android:name="Settings$DirectoryAccessSettingsActivity"
- android:label="@string/directory_access"
- android:taskAffinity="">
- <intent-filter>
- <action android:name="android.settings.STORAGE_VOLUME_ACCESS_SETTINGS" />
- <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>
-
<provider android:name=".slices.SettingsSliceProvider"
android:authorities="com.android.settings.slices;android.settings.slices"
android:exported="true"
@@ -3159,15 +2970,12 @@
<receiver
android:name=".slices.SliceBroadcastReceiver"
- android:exported="false">
- </receiver>
+ android:exported="false" />
<receiver
android:name=".slices.SliceRelayReceiver"
android:permission="android.permission.MANAGE_SLICE_PERMISSIONS"
- android:exported="true">
-
- </receiver>
+ android:exported="true" />
<!-- Couldn't be triggered from outside of settings. Statsd can trigger it because we send
PendingIntent to it-->
@@ -3191,7 +2999,7 @@
android:permission="android.permission.BIND_JOB_SERVICE" />
<provider
- android:name=".homepage.CardContentProvider"
+ android:name=".homepage.contextualcards.CardContentProvider"
android:authorities="com.android.settings.homepage.CardContentProvider"
android:exported="true"
android:permission="android.permission.WRITE_SETTINGS_HOMEPAGE_DATA" />
diff --git a/color-check-baseline.xml b/color-check-baseline.xml
index 62c7915..3672e2d 100644
--- a/color-check-baseline.xml
+++ b/color-check-baseline.xml
@@ -1029,7 +1029,7 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" <color name="homepage_connected_device_background">#71A234</color>"
+ errorLine1=" <color name="homepage_connected_device_background">#72B70F</color>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
@@ -1077,7 +1077,7 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" <color name="homepage_display_background">#FFB600</color>"
+ errorLine1=" <color name="homepage_display_background">#FFA727</color>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
@@ -1173,7 +1173,7 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" <color name="homepage_system_background">#757575</color>"
+ errorLine1=" <color name="homepage_system_background">#9E9E9E</color>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
@@ -1221,11 +1221,43 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" <color name="homepage_location_background">#1A73E8</color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/values/colors.xml"
+ line="128"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" <color name="homepage_about_background">#9FA8DA</color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/values/colors.xml"
+ line="129"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
errorLine1=" <color name="battery_good_color_light">#43a047</color> <!-- Material Green 600 -->"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="132"
+ line="134"
column="5"/>
</issue>
@@ -1241,7 +1273,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="133"
+ line="135"
column="5"/>
</issue>
@@ -1257,7 +1289,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="134"
+ line="136"
column="5"/>
</issue>
@@ -1273,7 +1305,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="135"
+ line="137"
column="5"/>
</issue>
@@ -1289,7 +1321,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="136"
+ line="138"
column="5"/>
</issue>
@@ -1305,7 +1337,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="137"
+ line="139"
column="5"/>
</issue>
@@ -1321,7 +1353,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="140"
+ line="142"
column="5"/>
</issue>
@@ -1337,7 +1369,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="141"
+ line="143"
column="5"/>
</issue>
@@ -1353,7 +1385,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="142"
+ line="144"
column="5"/>
</issue>
@@ -1369,7 +1401,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="143"
+ line="145"
column="5"/>
</issue>
@@ -1385,7 +1417,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="144"
+ line="146"
column="5"/>
</issue>
@@ -1685,6 +1717,22 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" android:color="@color/homepage_about_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/drawable/ic_homepage_about.xml"
+ line="23"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
errorLine1=" android:color="@color/homepage_accessibility_background" />"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
@@ -1861,6 +1909,38 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" android:color="@color/homepage_location_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/drawable/ic_homepage_location.xml"
+ line="23"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" android:color="@color/homepage_location_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/drawable/ic_preference_location.xml"
+ line="23"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
errorLine1=" android:color="@color/homepage_support_background" />"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
diff --git a/libs/contextualcards.aar b/libs/contextualcards.aar
index 5e855fa..892a6be 100755
--- a/libs/contextualcards.aar
+++ b/libs/contextualcards.aar
Binary files differ
diff --git a/proguard.flags b/proguard.flags
index 82e8e58..b66a786 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -60,4 +60,9 @@
# Keep classes that implements CustomSliceable, which are used by reflection.
-keepclasseswithmembers class * implements com.android.settings.slices.CustomSliceable {
public <init>(android.content.Context);
-}
\ No newline at end of file
+}
+
+# Keep classes that extends SliceBackgroundWorker, which are used by reflection.
+-keepclasseswithmembers class * extends com.android.settings.slices.SliceBackgroundWorker {
+ public <init>(android.content.Context, android.net.Uri);
+}
diff --git a/protos/contextual_card_list.proto b/protos/contextual_card_list.proto
index 89e6c13..ea82408 100644
--- a/protos/contextual_card_list.proto
+++ b/protos/contextual_card_list.proto
@@ -8,12 +8,24 @@
}
message ContextualCard {
- // Slice uri of the contextual card
+
+ /**
+ * The category of a card: this is a hint for how a card should be collected,
+ * ranked, and presented
+ */
+ enum Category {
+ DEFAULT = 0;
+ SUGGESTION = 1;
+ POSSIBLE = 2;
+ IMPORTANT = 3;
+ EXCLUSIVE = 4;
+ }
+
+ /** Slice uri of the contextual card */
optional string sliceUri = 1;
- // {@link ContextualCardCategory}.
- optional int32 category = 2;
-
- // Name of the card. It should be identical in every app
+ /** Name of the card. It should be identical in every app */
optional string cardName = 3;
-}
\ No newline at end of file
+
+ optional Category card_category = 4;
+}
diff --git a/res/anim/confirm_credential_biometric_transition_enter.xml b/res/anim/confirm_credential_biometric_transition_enter.xml
new file mode 100644
index 0000000..56f3593
--- /dev/null
+++ b/res/anim/confirm_credential_biometric_transition_enter.xml
@@ -0,0 +1,24 @@
+<?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
+ -->
+
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shareInterpolator="false"
+ android:zAdjustment="top">
+ <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
+ android:interpolator="@android:interpolator/linear_out_slow_in"
+ android:duration="350"/>
+</set>
\ No newline at end of file
diff --git a/res/anim/confirm_credential_biometric_transition_exit.xml b/res/anim/confirm_credential_biometric_transition_exit.xml
new file mode 100644
index 0000000..debdce2
--- /dev/null
+++ b/res/anim/confirm_credential_biometric_transition_exit.xml
@@ -0,0 +1,24 @@
+<?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
+ -->
+
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shareInterpolator="false"
+ android:zAdjustment="top">
+ <alpha android:fromAlpha="1.0" android:toAlpha="0.0"
+ android:interpolator="@android:interpolator/linear_out_slow_in"
+ android:duration="350" />
+</set>
\ No newline at end of file
diff --git a/res/anim/item_animation_fall_down.xml b/res/anim/item_animation_fall_down.xml
new file mode 100644
index 0000000..df2451c
--- /dev/null
+++ b/res/anim/item_animation_fall_down.xml
@@ -0,0 +1,42 @@
+<?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.
+ -->
+
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+ android:duration="500">
+
+ <!-- Move up the view by 20% of it’s own height, and let it fall down to its final position -->
+ <translate
+ android:fromYDelta="-20%"
+ android:toYDelta="0"
+ android:interpolator="@android:anim/decelerate_interpolator"/>
+
+ <!-- Fade in: alpha from 0 to 100% -->
+ <alpha
+ android:fromAlpha="0"
+ android:toAlpha="1"
+ android:interpolator="@android:anim/decelerate_interpolator"/>
+
+ <!-- Shrink from 105% to 100% -->
+ <scale
+ android:fromXScale="105%"
+ android:fromYScale="105%"
+ android:toXScale="100%"
+ android:toYScale="100%"
+ android:pivotX="50%"
+ android:pivotY="50%"
+ android:interpolator="@android:anim/decelerate_interpolator"/>
+</set>
\ No newline at end of file
diff --git a/res/layout/search_icon_view.xml b/res/anim/layout_animation_fall_down.xml
similarity index 62%
rename from res/layout/search_icon_view.xml
rename to res/anim/layout_animation_fall_down.xml
index aa0bf02..f39735c 100644
--- a/res/layout/search_icon_view.xml
+++ b/res/anim/layout_animation_fall_down.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- Copyright (C) 2017 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.
@@ -15,11 +15,8 @@
limitations under the License.
-->
-<ImageView
+<layoutAnimation
xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@android:id/icon"
- android:layout_width="@dimen/dashboard_tile_foreground_image_size"
- android:layout_height="match_parent"
- android:scaleType="centerInside"
- android:layout_marginStart="@dimen/dashboard_tile_image_margin"
- android:layout_marginEnd="@dimen/dashboard_tile_image_margin" />
+ android:animation="@anim/item_animation_fall_down"
+ android:delay="15%"
+ android:animationOrder="normal"/>
\ No newline at end of file
diff --git a/res/mipmap-hdpi/ic_accessibility_generic.png b/res/drawable-hdpi/ic_accessibility_generic.png
similarity index 100%
rename from res/mipmap-hdpi/ic_accessibility_generic.png
rename to res/drawable-hdpi/ic_accessibility_generic.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_accessibility_generic.png b/res/drawable-mdpi/ic_accessibility_generic.png
similarity index 100%
rename from res/mipmap-mdpi/ic_accessibility_generic.png
rename to res/drawable-mdpi/ic_accessibility_generic.png
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_accessibility_generic.png b/res/drawable-xhdpi/ic_accessibility_generic.png
similarity index 100%
rename from res/mipmap-xhdpi/ic_accessibility_generic.png
rename to res/drawable-xhdpi/ic_accessibility_generic.png
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_accessibility_generic.png b/res/drawable-xxhdpi/ic_accessibility_generic.png
similarity index 100%
rename from res/mipmap-xxhdpi/ic_accessibility_generic.png
rename to res/drawable-xxhdpi/ic_accessibility_generic.png
Binary files differ
diff --git a/res/mipmap-xxxhdpi/ic_accessibility_generic.png b/res/drawable-xxxhdpi/ic_accessibility_generic.png
similarity index 100%
rename from res/mipmap-xxxhdpi/ic_accessibility_generic.png
rename to res/drawable-xxxhdpi/ic_accessibility_generic.png
Binary files differ
diff --git a/res/drawable/ic_account_circle_24dp.xml b/res/drawable/ic_account_circle_24dp.xml
new file mode 100644
index 0000000..8445adc
--- /dev/null
+++ b/res/drawable/ic_account_circle_24dp.xml
@@ -0,0 +1,27 @@
+<!--
+ 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.
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="32dp"
+ android:height="32dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:fillColor="#ff4285f4"
+ android:pathData="M12,2C6.48,2 2,6.48 2,12c0,5.52 4.48,10 10,10c5.52,0 10,-4.48 10,-10C22,6.48 17.52,2 12,2zM7.07,18.28c0.43,-0.9 3.05,-1.78 4.93,-1.78s4.51,0.88 4.93,1.78C15.57,19.36 13.86,20 12,20S8.43,19.36 7.07,18.28zM18.36,16.83c-1.43,-1.74 -4.9,-2.33 -6.36,-2.33s-4.93,0.59 -6.36,2.33C4.62,15.49 4,13.82 4,12c0,-4.41 3.59,-8 8,-8c4.41,0 8,3.59 8,8C20,13.82 19.38,15.49 18.36,16.83z"/>
+ <path
+ android:fillColor="#ff4285f4"
+ android:pathData="M12,6c-1.94,0 -3.5,1.56 -3.5,3.5S10.06,13 12,13c1.94,0 3.5,-1.56 3.5,-3.5S13.94,6 12,6zM12,11c-0.83,0 -1.5,-0.67 -1.5,-1.5C10.5,8.67 11.17,8 12,8c0.83,0 1.5,0.67 1.5,1.5C13.5,10.33 12.83,11 12,11z"/>
+</vector>
diff --git a/res/drawable/ic_apps_filter_settings_24dp.xml b/res/drawable/ic_apps_filter_settings_24dp.xml
new file mode 100644
index 0000000..01a53a7
--- /dev/null
+++ b/res/drawable/ic_apps_filter_settings_24dp.xml
@@ -0,0 +1,28 @@
+<!--
+ 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="?android:attr/colorAccent"
+ android:pathData="M13.85,22.25h-3.7c-0.74,0 -1.36,-0.54 -1.45,-1.27l-0.27,-1.89c-0.27,-0.14 -0.53,-0.29 -0.79,-0.46l-1.8,0.72c-0.7,0.26 -1.47,-0.03 -1.81,-0.65L2.2,15.53c-0.35,-0.66 -0.2,-1.44 0.36,-1.88l1.53,-1.19c-0.01,-0.15 -0.02,-0.3 -0.02,-0.46c0,-0.15 0.01,-0.31 0.02,-0.46l-1.52,-1.19C1.98,9.9 1.83,9.09 2.2,8.47l1.85,-3.19c0.34,-0.62 1.11,-0.9 1.79,-0.63l1.81,0.73c0.26,-0.17 0.52,-0.32 0.78,-0.46l0.27,-1.91c0.09,-0.7 0.71,-1.25 1.44,-1.25h3.7c0.74,0 1.36,0.54 1.45,1.27l0.27,1.89c0.27,0.14 0.53,0.29 0.79,0.46l1.8,-0.72c0.71,-0.26 1.48,0.03 1.82,0.65l1.84,3.18c0.36,0.66 0.2,1.44 -0.36,1.88l-1.52,1.19c0.01,0.15 0.02,0.3 0.02,0.46s-0.01,0.31 -0.02,0.46l1.52,1.19c0.56,0.45 0.72,1.23 0.37,1.86l-1.86,3.22c-0.34,0.62 -1.11,0.9 -1.8,0.63l-1.8,-0.72c-0.26,0.17 -0.52,0.32 -0.78,0.46l-0.27,1.91C15.21,21.71 14.59,22.25 13.85,22.25zM13.32,20.72c0,0.01 0,0.01 0,0.02L13.32,20.72zM10.68,20.7l0,0.02C10.69,20.72 10.69,20.71 10.68,20.7zM10.62,20.25h2.76l0.37,-2.55l0.53,-0.22c0.44,-0.18 0.88,-0.44 1.34,-0.78l0.45,-0.34l2.38,0.96l1.38,-2.4l-2.03,-1.58l0.07,-0.56c0.03,-0.26 0.06,-0.51 0.06,-0.78c0,-0.27 -0.03,-0.53 -0.06,-0.78l-0.07,-0.56l2.03,-1.58l-1.39,-2.4l-2.39,0.96l-0.45,-0.35c-0.42,-0.32 -0.87,-0.58 -1.33,-0.77L13.75,6.3l-0.37,-2.55h-2.76L10.25,6.3L9.72,6.51C9.28,6.7 8.84,6.95 8.38,7.3L7.93,7.63L5.55,6.68L4.16,9.07l2.03,1.58l-0.07,0.56C6.09,11.47 6.06,11.74 6.06,12c0,0.26 0.02,0.53 0.06,0.78l0.07,0.56l-2.03,1.58l1.38,2.4l2.39,-0.96l0.45,0.35c0.43,0.33 0.86,0.58 1.33,0.77l0.53,0.22L10.62,20.25zM18.22,17.72c0,0.01 -0.01,0.02 -0.01,0.03L18.22,17.72zM5.77,17.71l0.01,0.02C5.78,17.72 5.77,17.71 5.77,17.71zM3.93,9.47L3.93,9.47C3.93,9.47 3.93,9.47 3.93,9.47zM18.22,6.27c0,0.01 0.01,0.02 0.01,0.02L18.22,6.27zM5.79,6.25L5.78,6.27C5.78,6.27 5.79,6.26 5.79,6.25zM13.31,3.28c0,0.01 0,0.01 0,0.02L13.31,3.28zM10.69,3.26l0,0.02C10.69,3.27 10.69,3.27 10.69,3.26z"/>
+ <path
+ android:fillColor="?android:attr/colorAccent"
+ android:pathData="M12,12m-3.5,0a3.5,3.5 0,1 1,7 0a3.5,3.5 0,1 1,-7 0"/>
+</vector>
diff --git a/res/drawable/ic_content_copy_grey600_24dp.xml b/res/drawable/ic_content_copy_grey600_24dp.xml
new file mode 100644
index 0000000..827c66e
--- /dev/null
+++ b/res/drawable/ic_content_copy_grey600_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z"
+ android:fillColor="#757575"/>
+</vector>
diff --git a/res/drawable/ic_fingerprint_error.xml b/res/drawable/ic_fingerprint_error.xml
deleted file mode 100644
index c9363bc..0000000
--- a/res/drawable/ic_fingerprint_error.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--
- ~ Copyright (C) 2015 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="32dp"
- android:height="32dp"
- android:viewportWidth="32.0"
- android:viewportHeight="32.0">
- <path
- android:fillColor="?android:attr/colorError"
- android:pathData="M15.99,2.5C8.53,2.5 2.5,8.54 2.5,16.0s6.03,13.5 13.49,13.5S29.5,23.46 29.5,16.0S23.45,2.5 15.99,2.5zM16.0,26.8c-5.97,0.0 -10.8,-4.83 -10.8,-10.8S10.03,5.2 16.0,5.2S26.8,10.03 26.8,16.0S21.97,26.8 16.0,26.8z"/>
- <path
- android:fillColor="?android:attr/colorError"
- android:pathData="M14.65,20.05l2.7,0.0l0.0,2.7l-2.7,0.0z"/>
- <path
- android:fillColor="?android:attr/colorError"
- android:pathData="M14.65,9.25l2.7,0.0l0.0,8.1l-2.7,0.0z"/>
-</vector>
diff --git a/res/drawable/ic_homepage_about.xml b/res/drawable/ic_homepage_about.xml
new file mode 100644
index 0000000..d47a740
--- /dev/null
+++ b/res/drawable/ic_homepage_about.xml
@@ -0,0 +1,36 @@
+<?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.
+ -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <item>
+ <shape android:shape="oval">
+ <solid
+ android:color="@color/homepage_about_background" />
+ <size
+ android:width="@dimen/dashboard_tile_image_size"
+ android:height="@dimen/dashboard_tile_image_size" />
+ </shape>
+ </item>
+
+ <item
+ android:width="@dimen/dashboard_tile_foreground_image_size"
+ android:height="@dimen/dashboard_tile_foreground_image_size"
+ android:start="@dimen/dashboard_tile_foreground_image_inset"
+ android:top="@dimen/dashboard_tile_foreground_image_inset"
+ android:drawable="@drawable/ic_phone_info" />
+</layer-list>
diff --git a/res/drawable/ic_homepage_location.xml b/res/drawable/ic_homepage_location.xml
new file mode 100644
index 0000000..413801b
--- /dev/null
+++ b/res/drawable/ic_homepage_location.xml
@@ -0,0 +1,36 @@
+<?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.
+ -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <item>
+ <shape android:shape="oval">
+ <solid
+ android:color="@color/homepage_location_background"/>
+ <size
+ android:width="@dimen/dashboard_tile_image_size"
+ android:height="@dimen/dashboard_tile_image_size"/>
+ </shape>
+ </item>
+
+ <item
+ android:width="@dimen/dashboard_tile_foreground_image_size"
+ android:height="@dimen/dashboard_tile_foreground_image_size"
+ android:start="@dimen/dashboard_tile_foreground_image_inset"
+ android:top="@dimen/dashboard_tile_foreground_image_inset"
+ android:drawable="@drawable/ic_settings_location"/>
+</layer-list>
diff --git a/res/drawable/ic_phone_info.xml b/res/drawable/ic_phone_info.xml
new file mode 100644
index 0000000..7aee3e8
--- /dev/null
+++ b/res/drawable/ic_phone_info.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FFFFFFFF"
+ android:pathData="M17,1.01L7,1C5.9,1 5,1.9 5,3v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V3C19,1.9 18.1,1.01 17,1.01zM17,21H7v-1h10V21zM17,18H7V6h10V18zM7,4V3h10v1H7zM11,7h2v2h-2V7zM11,11h2v6h-2V11z"/>
+</vector>
diff --git a/res/drawable/ic_preference_location.xml b/res/drawable/ic_preference_location.xml
new file mode 100644
index 0000000..e37d629
--- /dev/null
+++ b/res/drawable/ic_preference_location.xml
@@ -0,0 +1,36 @@
+<?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.
+ -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <item>
+ <shape android:shape="oval">
+ <solid
+ android:color="@color/homepage_location_background"/>
+ <size
+ android:width="@android:dimen/app_icon_size"
+ android:height="@android:dimen/app_icon_size"/>
+ </shape>
+ </item>
+
+ <item
+ android:width="@dimen/dashboard_tile_foreground_image_size"
+ android:height="@dimen/dashboard_tile_foreground_image_size"
+ android:start="@dimen/preference_icon_foreground_image_inset"
+ android:top="@dimen/preference_icon_foreground_image_inset"
+ android:drawable="@drawable/ic_settings_location"/>
+</layer-list>
diff --git a/res/drawable/ic_settings_location.xml b/res/drawable/ic_settings_location.xml
index 34bd4f0..b7cfd6f 100644
--- a/res/drawable/ic_settings_location.xml
+++ b/res/drawable/ic_settings_location.xml
@@ -17,8 +17,7 @@
android:width="24.0dp"
android:height="24.0dp"
android:viewportWidth="24.0"
- android:viewportHeight="24.0"
- android:tint="?android:attr/colorControlNormal">
+ android:viewportHeight="24.0">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M12,2C8.13,2 5,5.13 5,9c0,5.25 7,13 7,13s7,-7.75 7,-13C19,5.13 15.87,2 12,2zM7,9c0,-2.76 2.24,-5 5,-5s5,2.24 5,5c0,2.88 -2.88,7.19 -5,9.88C9.92,16.21 7,11.85 7,9z"/>
diff --git a/res/drawable/ic_signal_strength_4g.xml b/res/drawable/ic_signal_strength_4g.xml
new file mode 100644
index 0000000..9062096
--- /dev/null
+++ b/res/drawable/ic_signal_strength_4g.xml
@@ -0,0 +1,28 @@
+<!--
+Copyright (C) 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="9.208dp"
+ android:height="17dp"
+ android:viewportWidth="13.0"
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorControlNormal">
+ <path
+ android:fillColor="#FFFFFFFF"
+ android:pathData="M4.600000,7.800000l0.700000,0.000000l0.000000,1.300000L4.600000,9.100000L4.600000,11.000000L3.000000,11.000000L3.000000,9.200000L0.100000,9.200000L0.000000,8.100000L3.000000,2.500000l1.700000,0.000000L4.700000,7.800000zM1.600000,7.800000L3.000000,7.800000l0.000000,-3.000000L2.900000,5.000000L1.600000,7.800000z"/>
+ <path
+ android:fillColor="#FFFFFFFF"
+ android:pathData="M11.900000,9.900000c-0.200000,0.400000 -0.600000,0.700000 -1.000000,0.900000s-1.000000,0.400000 -1.800000,0.400000c-0.900000,0.000000 -1.700000,-0.300000 -2.200000,-0.800000S6.100000,9.000000 6.100000,7.900000L6.100000,5.600000c0.000000,-1.100000 0.300000,-1.900000 0.800000,-2.400000S8.100000,2.400000 9.000000,2.400000c1.000000,0.000000 1.700000,0.200000 2.100000,0.700000s0.700000,1.200000 0.700000,2.100000l-1.600000,0.000000c0.000000,-0.500000 -0.100000,-0.900000 -0.200000,-1.100000S9.500000,3.700000 9.000000,3.700000c-0.400000,0.000000 -0.700000,0.200000 -0.900000,0.500000S7.700000,5.000000 7.700000,5.600000l0.000000,2.300000c0.000000,0.700000 0.100000,1.100000 0.300000,1.400000s0.600000,0.500000 1.000000,0.500000c0.300000,0.000000 0.600000,0.000000 0.700000,-0.100000s0.300000,-0.200000 0.400000,-0.300000L10.099999,7.800000L9.000000,7.800000L9.000000,6.600000l2.900000,0.000000L11.900000,9.900000z"/>
+</vector>
\ No newline at end of file
diff --git a/res/layout-land/confirm_lock_password.xml b/res/layout-land/confirm_lock_password.xml
index 218192c..a6a85d3 100644
--- a/res/layout-land/confirm_lock_password.xml
+++ b/res/layout-land/confirm_lock_password.xml
@@ -87,14 +87,6 @@
</LinearLayout>
- <ImageView
- android:id="@+id/fingerprintIcon"
- android:layout_gravity="end|bottom"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginBottom="28dp"
- android:layout_marginEnd="20dp"
- android:visibility="gone"/>
</FrameLayout>
</LinearLayout>
diff --git a/res/layout-land/confirm_lock_pattern.xml b/res/layout-land/confirm_lock_pattern.xml
index 81f257e..b0a0a96 100644
--- a/res/layout-land/confirm_lock_pattern.xml
+++ b/res/layout-land/confirm_lock_pattern.xml
@@ -108,14 +108,6 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"/>
-
- <ImageView
- android:id="@+id/fingerprintIcon"
- android:layout_gravity="center_vertical"
- android:layout_width="0dp"
- android:layout_weight="1"
- android:layout_height="wrap_content"
- android:visibility="gone"/>
</LinearLayout>
</com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient>
diff --git a/res/layout-land/confirm_lock_pattern_normal.xml b/res/layout-land/confirm_lock_pattern_normal.xml
index 9c90d6f..158d343 100644
--- a/res/layout-land/confirm_lock_pattern_normal.xml
+++ b/res/layout-land/confirm_lock_pattern_normal.xml
@@ -85,14 +85,6 @@
android:layout_marginEnd="?attr/suwMarginSides"
android:layout_marginBottom="24dp"
android:gravity="center_vertical"/>
-
- <ImageView
- android:id="@+id/fingerprintIcon"
- android:layout_gravity="center_horizontal"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:contentDescription="@string/confirm_fingerprint_icon_content_description"
- android:visibility="gone"/>
</LinearLayout>
</ScrollView>
diff --git a/res/layout-sw320dp/settings_entity_header.xml b/res/layout-sw320dp/settings_entity_header.xml
deleted file mode 100644
index 9a46adf..0000000
--- a/res/layout-sw320dp/settings_entity_header.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2016 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.
- -->
-
-<!-- Entity header -->
-<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/entity_header"
- style="@style/EntityHeader"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="24dp"
- android:paddingBottom="24dp">
-
- <LinearLayout
- android:id="@+id/entity_header_content"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:background="?android:attr/selectableItemBackground"
- android:orientation="horizontal"
- android:paddingStart="56dp">
-
- <ImageView
- android:id="@+id/entity_header_icon"
- android:layout_width="48dp"
- android:layout_height="48dp"
- android:scaleType="fitCenter"
- android:layout_gravity="center_horizontal"
- android:antialias="true" />
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- android:paddingStart="16dp"
- android:paddingEnd="16dp"
- android:orientation="vertical">
-
- <TextView
- android:id="@+id/entity_header_title"
- style="@style/TextAppearance.EntityHeaderTitle"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:singleLine="false"
- android:ellipsize="marquee"
- android:gravity="start"
- android:textDirection="locale" />
-
- <TextView
- android:id="@+id/install_type"
- style="@style/TextAppearance.EntityHeaderSummary"
- android:visibility="gone"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
-
- <TextView
- android:id="@+id/entity_header_summary"
- style="@style/TextAppearance.EntityHeaderSummary"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
-
- <TextView
- android:id="@+id/entity_header_second_summary"
- style="@style/TextAppearance.EntityHeaderSummary"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
-
- </LinearLayout>
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/entity_header_links"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:orientation="vertical">
-
- <ImageButton
- android:id="@android:id/button1"
- style="?android:attr/actionOverflowButtonStyle"
- android:layout_width="wrap_content"
- android:layout_weight="1"
- android:layout_height="0dp"
- android:minWidth="@dimen/min_tap_target_size"
- android:src="@null"
- android:tint="?android:attr/colorAccent" />
-
- <ImageButton
- android:id="@android:id/button2"
- style="?android:attr/actionOverflowButtonStyle"
- android:layout_width="wrap_content"
- android:layout_weight="1"
- android:layout_height="0dp"
- android:minWidth="@dimen/min_tap_target_size"
- android:src="@null"
- android:tint="?android:attr/colorAccent" />
-
- </LinearLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/admin_support_details_dialog.xml b/res/layout/admin_support_details_dialog.xml
index 8c33b1a..922451f 100644
--- a/res/layout/admin_support_details_dialog.xml
+++ b/res/layout/admin_support_details_dialog.xml
@@ -27,8 +27,6 @@
<ImageView android:id="@+id/admin_support_icon"
android:layout_width="@dimen/admin_details_dialog_icon_size"
android:layout_height="@dimen/admin_details_dialog_icon_size"
- android:tint="?android:attr/colorAccent"
- android:src="@*android:drawable/ic_info"
android:scaleType="fitCenter"
android:contentDescription="@null" />
<TextView android:id="@+id/admin_support_dialog_title"
diff --git a/res/layout/apps_filter_spinner.xml b/res/layout/apps_filter_spinner.xml
index ca69cc6..c9b1e07 100644
--- a/res/layout/apps_filter_spinner.xml
+++ b/res/layout/apps_filter_spinner.xml
@@ -37,7 +37,7 @@
android:layout_toRightOf="@id/filter_spinner"
android:contentDescription="@string/configure"
android:scaleType="center"
- android:src="@drawable/ic_settings_24dp"
+ android:src="@drawable/ic_apps_filter_settings_24dp"
android:visibility="gone"/>
</RelativeLayout>
diff --git a/res/layout/condition_container.xml b/res/layout/condition_container.xml
deleted file mode 100644
index 877b17a..0000000
--- a/res/layout/condition_container.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2017 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.
--->
-
-<FrameLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- style="@style/SuggestionConditionStyle"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="16dp"
- android:paddingStart="14dp"
- android:paddingEnd="14dp"
- android:paddingBottom="@dimen/dashboard_padding_bottom">
-
- <androidx.cardview.widget.CardView
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- app:cardUseCompatPadding="true"
- app:cardElevation="2dp"
- app:cardCornerRadius="@dimen/suggestion_card_corner_radius">
-
- <androidx.recyclerview.widget.RecyclerView
- android:id="@+id/data"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:scrollbars="none"/>
-
- </androidx.cardview.widget.CardView>
-
-</FrameLayout>
diff --git a/res/layout/condition_footer.xml b/res/layout/condition_footer.xml
deleted file mode 100644
index 5de9d55..0000000
--- a/res/layout/condition_footer.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2017 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"
- style="@style/SuggestionConditionStyle"
- android:layout_width="match_parent"
- android:layout_height="44dp"
- android:contentDescription="@string/dashboard_suggestion_condition_footer_content_description"
- android:gravity="end"
- android:orientation="horizontal"
- android:paddingTop="10dp"
- android:paddingEnd="10dp">
-
- <ImageView
- android:id="@+id/collapse_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/ic_expand_less" />
-
-</LinearLayout>
diff --git a/res/layout/condition_header.xml b/res/layout/condition_header.xml
deleted file mode 100644
index f214319..0000000
--- a/res/layout/condition_header.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2017 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"
- style="@style/SuggestionConditionStyle"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="10dp"
- android:paddingBottom="10dp"
- android:orientation="vertical">
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="36dp"
- android:layout_centerHorizontal="true">
-
- <FrameLayout
- android:id="@android:id/icon_frame"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginStart="24dp"
- android:layout_centerVertical="true">
-
- <include layout="@layout/condition_header_icon" />
-
- </FrameLayout>
-
- <ImageView
- android:id="@+id/expand_indicator"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_alignParentEnd="true"
- android:paddingTop="4dp"
- android:paddingStart="16dp"
- android:paddingEnd="16dp"
- android:src="@drawable/ic_expand_more"/>
-
- <TextView
- android:id="@android:id/summary"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginStart="8dp"
- android:layout_toStartOf="@id/expand_indicator"
- android:layout_centerVertical="true"
- android:gravity="end"
- android:textAppearance="@style/TextAppearance.SuggestionTitle"
- android:textColor="?android:attr/colorAccent" />
-
- <TextView
- android:id="@android:id/title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_toEndOf="@android:id/icon_frame"
- android:layout_toStartOf="@android:id/summary"
- android:layout_centerVertical="true"
- android:singleLine="true"
- android:ellipsize="end"
- android:textAppearance="@style/TextAppearance.SuggestionTitle"
- android:textColor="?android:attr/textColorPrimary" />
-
- <LinearLayout
- android:id="@+id/additional_icons"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_toStartOf="@android:id/summary"
- android:layout_toEndOf="@android:id/icon_frame"
- android:orientation="horizontal"
- android:gravity="center_vertical"/>
-
- </RelativeLayout>
-
-</LinearLayout>
diff --git a/res/layout/condition_header_icon.xml b/res/layout/condition_header_icon.xml
deleted file mode 100644
index 79fe54e..0000000
--- a/res/layout/condition_header_icon.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2017 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.
--->
-
-<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@android:id/icon"
- android:layout_width="@dimen/suggestion_card_icon_size"
- android:layout_height="@dimen/suggestion_card_icon_size"
- android:layout_marginStart="0dp"
- android:layout_marginEnd="24dp"
- android:tint="?android:attr/colorAccent" />
diff --git a/res/layout/condition_tile.xml b/res/layout/condition_tile.xml
deleted file mode 100644
index 9fe83dc..0000000
--- a/res/layout/condition_tile.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2017 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"
- android:id="@+id/content"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:minHeight="36dp"
- android:background="?android:attr/selectableItemBackground"
- android:orientation="horizontal">
-
- <ImageView
- android:id="@android:id/icon"
- android:layout_width="@dimen/suggestion_card_icon_size"
- android:layout_height="@dimen/suggestion_card_icon_size"
- android:layout_marginTop="12dp"
- android:layout_marginStart="14dp"
- android:layout_marginEnd="24dp"
- android:tint="?android:attr/colorAccent" />
-
- <TextView
- android:id="@android:id/title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="14dp"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:textColor="?android:attr/textColorPrimary" />
-
- </LinearLayout>
-
- <TextView
- android:id="@android:id/summary"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingStart="62dp"
- android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
- android:paddingBottom="8dp"
- android:textAppearance="?android:attr/textAppearanceListItemSecondary"
- android:alpha=".7"
- android:textColor="?android:attr/textColorPrimary" />
-
- <androidx.appcompat.widget.ButtonBarLayout
- android:id="@+id/buttonBar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingStart="62dp"
- android:paddingBottom="1dp"
- style="?android:attr/buttonBarStyle"
- android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
-
- <Button
- android:id="@+id/first_action"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:paddingStart="0dp"
- android:alpha=".8"
- android:textAlignment="viewStart"
- android:textColor="?android:attr/textColorPrimary"
- style="?android:attr/buttonBarButtonStyle" />
-
- <Button
- android:id="@+id/second_action"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:alpha=".8"
- android:textAlignment="viewStart"
- android:textColor="?android:attr/textColorPrimary"
- style="?android:attr/buttonBarButtonStyle" />
-
- </androidx.appcompat.widget.ButtonBarLayout>
-
- <include layout="@layout/horizontal_divider" />
-
-</LinearLayout>
diff --git a/res/layout/confirm_lock_password_base.xml b/res/layout/confirm_lock_password_base.xml
index 05e90d2..1e42fbe 100644
--- a/res/layout/confirm_lock_password_base.xml
+++ b/res/layout/confirm_lock_password_base.xml
@@ -89,19 +89,5 @@
</LinearLayout>
- <View android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1"/>
-
- <ImageView
- android:id="@+id/fingerprintIcon"
- android:layout_gravity="center_horizontal"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_marginBottom="24dp"
- android:contentDescription="@string/confirm_fingerprint_icon_content_description"
- android:visibility="gone"/>
-
</com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient>
</FrameLayout>
diff --git a/res/layout/confirm_lock_password_normal.xml b/res/layout/confirm_lock_password_normal.xml
index 05bd4a0..0b516ca 100644
--- a/res/layout/confirm_lock_password_normal.xml
+++ b/res/layout/confirm_lock_password_normal.xml
@@ -70,16 +70,6 @@
android:layout_height="0dp"
android:layout_weight="1" />
- <ImageView
- android:id="@+id/fingerprintIcon"
- android:layout_gravity="center_horizontal"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_marginBottom="24dp"
- android:contentDescription="@string/confirm_fingerprint_icon_content_description"
- android:visibility="gone"/>
-
<Button
android:id="@+id/cancelButton"
style="@style/SuwGlifButton.Secondary"
diff --git a/res/layout/confirm_lock_pattern_base.xml b/res/layout/confirm_lock_pattern_base.xml
index e6b7887..f841391 100644
--- a/res/layout/confirm_lock_pattern_base.xml
+++ b/res/layout/confirm_lock_pattern_base.xml
@@ -97,15 +97,6 @@
android:layout_marginEnd="12dp"
android:gravity="center_vertical"/>
- <ImageView
- android:id="@+id/fingerprintIcon"
- android:layout_gravity="center_horizontal"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_marginBottom="24dp"
- android:contentDescription="@string/confirm_fingerprint_icon_content_description"
- android:visibility="gone"/>
</LinearLayout>
</com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient>
diff --git a/res/layout/confirm_lock_pattern_normal_base.xml b/res/layout/confirm_lock_pattern_normal_base.xml
index 6773ec0..bfabf99 100644
--- a/res/layout/confirm_lock_pattern_normal_base.xml
+++ b/res/layout/confirm_lock_pattern_normal_base.xml
@@ -90,16 +90,6 @@
android:layout_marginTop="12dp"
android:gravity="center_vertical"/>
- <ImageView
- android:id="@+id/fingerprintIcon"
- android:layout_gravity="center_horizontal"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginHorizontal="?attr/suwMarginSides"
- android:layout_marginBottom="24dp"
- android:contentDescription="@string/confirm_fingerprint_icon_content_description"
- android:visibility="gone"/>
-
<Button
android:id="@+id/cancelButton"
style="@style/SuwGlifButton.Secondary"
diff --git a/res/layout/dashboard.xml b/res/layout/dashboard.xml
deleted file mode 100644
index 8031028..0000000
--- a/res/layout/dashboard.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 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.
--->
-
-<com.android.settings.homepage.conditional.FocusRecyclerView
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/dashboard_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:clipChildren="false"
- android:clipToPadding="false"
- android:focusable="false"
- android:paddingStart="@dimen/dashboard_padding_start"
- android:paddingEnd="@dimen/dashboard_padding_end"
- android:paddingTop="@dimen/dashboard_padding_top"
- android:paddingBottom="@dimen/dashboard_padding_bottom"
- android:scrollbars="vertical"/>
\ No newline at end of file
diff --git a/res/layout/dashboard_tile.xml b/res/layout/dashboard_tile.xml
deleted file mode 100644
index e35dbff..0000000
--- a/res/layout/dashboard_tile.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 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.
--->
-
-<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/dashboard_tile"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="?android:attr/selectableItemBackground"
- android:gravity="center_vertical"
- android:minHeight="@dimen/dashboard_tile_minimum_height"
- android:clickable="true"
- android:focusable="true">
-
- <ImageView
- android:id="@android:id/icon"
- android:layout_width="@dimen/dashboard_tile_image_size"
- android:layout_height="@dimen/dashboard_tile_image_size"
- android:scaleType="centerInside"
- android:layout_marginStart="@dimen/dashboard_tile_image_margin"
- android:layout_marginEnd="@dimen/dashboard_tile_image_margin" />
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
-
- <TextView android:id="@android:id/title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:singleLine="true"
- android:textAppearance="@style/TextAppearance.TileTitle"
- android:ellipsize="marquee"
- android:fadingEdge="horizontal" />
-
- <TextView android:id="@android:id/summary"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="@style/TextAppearance.Small"
- android:textColor="?android:attr/textColorSecondary"
- android:maxLines="1"
- android:ellipsize="end"
- android:paddingEnd="@dimen/dashboard_tile_image_margin" />
-
- </LinearLayout>
-
-</LinearLayout>
diff --git a/res/layout/data_usage_cycle_item.xml b/res/layout/data_usage_cycle_item.xml
deleted file mode 100644
index 015608d..0000000
--- a/res/layout/data_usage_cycle_item.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 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.
--->
-
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@android:id/text1"
- style="?android:attr/spinnerItemStyle"
- android:singleLine="true"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingStart="0dp"
- android:ellipsize="marquee"
- android:textAppearance="@android:style/TextAppearance.Material.Subhead"
- android:textColor="?android:attr/textColorPrimary"
- android:textAlignment="inherit" />
diff --git a/res/layout/data_usage_cycles.xml b/res/layout/data_usage_cycles.xml
index 9c6cc31..05c38e0 100644
--- a/res/layout/data_usage_cycles.xml
+++ b/res/layout/data_usage_cycles.xml
@@ -14,21 +14,17 @@
limitations under the License.
-->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:minHeight="?android:attr/listPreferredItemHeight"
- android:paddingStart="?android:attr/listPreferredItemPaddingStart"
- android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
- android:orientation="horizontal">
+ android:minHeight="?android:attr/listPreferredItemHeight">
- <Spinner
+ <com.android.settingslib.widget.settingsspinner.SettingsSpinner
android:id="@+id/cycles_spinner"
- android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- android:paddingLeft="0dp"
- android:textAppearance="@android:style/TextAppearance.Material.Subhead"
- android:textColor="?android:attr/textColorPrimary" />
+ android:layout_width="wrap_content"
+ android:layout_centerInParent="true"/>
-</LinearLayout>
+</RelativeLayout>
+
diff --git a/res/layout/fingerprint_rename_dialog.xml b/res/layout/fingerprint_rename_dialog.xml
index 99cfa71..2da84ca 100644
--- a/res/layout/fingerprint_rename_dialog.xml
+++ b/res/layout/fingerprint_rename_dialog.xml
@@ -35,7 +35,7 @@
android:clipChildren="false"
android:clipToPadding="false" />
- <EditText
+ <com.android.settings.widget.ImeAwareEditText
android:id="@+id/fingerprint_rename_field"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/res/layout/headerless_preference_category.xml b/res/layout/headerless_preference_category.xml
deleted file mode 100644
index cddc445..0000000
--- a/res/layout/headerless_preference_category.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-
-<!-- Style for a preference category without a header title.
- Based on tall_preference_category, but invisible and with some 0dp attributes. -->
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@android:id/title"
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_marginBottom="0dip"
- android:textAppearance="@android:style/TextAppearance.Material.Body2"
- android:textColor="?android:attr/colorAccent"
- android:paddingBottom="8dp"
- android:paddingTop="16dip"
- android:visible="false" />
diff --git a/res/layout/homepage_condition_full_tile.xml b/res/layout/homepage_condition_full_tile.xml
new file mode 100644
index 0000000..415defc
--- /dev/null
+++ b/res/layout/homepage_condition_full_tile.xml
@@ -0,0 +1,74 @@
+<?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.
+-->
+
+<androidx.cardview.widget.CardView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/ContextualCardStyle">
+
+ <LinearLayout
+ android:id="@+id/content"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="@dimen/homepage_card_padding_start"
+ android:paddingEnd="@dimen/homepage_card_padding_end"
+ android:paddingTop="@dimen/homepage_condition_full_card_padding_top"
+ android:paddingBottom="@dimen/homepage_condition_full_card_padding_bottom"
+ android:orientation="horizontal"
+ android:gravity="center_vertical">
+
+ <ImageView
+ android:id="@android:id/icon"
+ android:layout_width="@dimen/homepage_card_icon_size"
+ android:layout_height="@dimen/homepage_card_icon_size"
+ android:tint="?android:attr/colorAccent"/>
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingStart="@dimen/homepage_condition_full_card_padding_start"
+ android:paddingEnd="@dimen/homepage_condition_full_card_padding_end"
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="@dimen/homepage_condition_card_title_margin_bottom"
+ style="@style/TextAppearance.ConditionCardTitle"/>
+
+ <TextView
+ android:id="@android:id/summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ style="@style/TextAppearance.ConditionCardSummary"/>
+
+ </LinearLayout>
+
+ <include layout="@layout/vertical_divider"/>
+
+ <Button
+ android:id="@+id/first_action"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ style="@style/ConditionFullCardBorderlessButton"/>
+
+ </LinearLayout>
+
+</androidx.cardview.widget.CardView>
diff --git a/res/layout/homepage_condition_half_tile.xml b/res/layout/homepage_condition_half_tile.xml
new file mode 100644
index 0000000..0b7eec7
--- /dev/null
+++ b/res/layout/homepage_condition_half_tile.xml
@@ -0,0 +1,68 @@
+<?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.
+-->
+
+<androidx.cardview.widget.CardView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/homepage_condition_half_card_height"
+ style="@style/ContextualCardStyle">
+
+ <LinearLayout
+ android:id="@+id/content"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="@dimen/homepage_card_padding_start"
+ android:paddingEnd="@dimen/homepage_card_padding_end"
+ android:paddingTop="@dimen/homepage_condition_half_card_padding_top"
+ android:orientation="vertical">
+
+ <ImageView
+ android:id="@android:id/icon"
+ android:layout_width="@dimen/homepage_card_icon_size"
+ android:layout_height="@dimen/homepage_card_icon_size"
+ android:tint="?android:attr/colorAccent"/>
+
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:maxLines="1"
+ android:ellipsize="end"
+ android:layout_marginTop="@dimen/homepage_condition_half_card_title_margin_top"
+ android:layout_marginBottom="@dimen/homepage_condition_card_title_margin_bottom"
+ style="@style/TextAppearance.ConditionCardTitle"/>
+
+ <TextView
+ android:id="@android:id/summary"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:maxLines="1"
+ android:ellipsize="end"
+ android:layout_marginBottom="@dimen/homepage_condition_half_card_summary_margin_bottom"
+ style="@style/TextAppearance.ConditionCardSummary"/>
+
+ <include layout="@layout/horizontal_divider"/>
+
+ <Button
+ android:id="@+id/first_action"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/ConditionHalfCardBorderlessButton"/>
+
+ </LinearLayout>
+
+</androidx.cardview.widget.CardView>
\ No newline at end of file
diff --git a/res/layout/homepage_condition_tile.xml b/res/layout/homepage_condition_tile.xml
deleted file mode 100644
index 50ef3c2..0000000
--- a/res/layout/homepage_condition_tile.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
- 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.
--->
-
-<androidx.cardview.widget.CardView
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- style="@style/SuggestionConditionStyle"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- app:cardUseCompatPadding="true"
- app:cardElevation="@dimen/condition_card_elevation"
- app:cardCornerRadius="@dimen/suggestion_card_corner_radius">
-
- <include layout="@layout/condition_tile"/>
-
-</androidx.cardview.widget.CardView>
diff --git a/res/layout/homepage_slice_tile.xml b/res/layout/homepage_slice_tile.xml
index b947d65..28cdfb1 100644
--- a/res/layout/homepage_slice_tile.xml
+++ b/res/layout/homepage_slice_tile.xml
@@ -17,23 +17,17 @@
<androidx.cardview.widget.CardView
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="wrap_content"
- android:layout_marginTop="@dimen/homepage_card_top_margin"
- android:layout_marginBottom="@dimen/homepage_card_bottom_margin"
- android:layout_marginStart="@dimen/homepage_card_side_margin"
- android:layout_marginEnd="@dimen/homepage_card_side_margin"
- app:cardCornerRadius="@dimen/homepage_card_corner_radius"
- app:cardElevation="@dimen/homepage_card_elevation">
+ style="@style/ContextualCardStyle">
<androidx.slice.widget.SliceView
android:id="@+id/slice_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_marginBottom="@dimen/homepage_card_vertical_margin"
+ android:layout_marginTop="@dimen/homepage_card_vertical_margin"
android:paddingStart="@dimen/homepage_card_padding_start"
- android:paddingEnd="@dimen/homepage_card_padding_end"
- android:paddingTop="@dimen/homepage_card_padding_top"
- android:paddingBottom="@dimen/homepage_card_padding_bottom"/>
+ android:paddingEnd="@dimen/homepage_card_padding_end"/>
</androidx.cardview.widget.CardView>
diff --git a/res/layout/homepage_suggestion_tile.xml b/res/layout/homepage_suggestion_tile.xml
new file mode 100644
index 0000000..36ad45c
--- /dev/null
+++ b/res/layout/homepage_suggestion_tile.xml
@@ -0,0 +1,70 @@
+<?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.
+ -->
+
+<androidx.cardview.widget.CardView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/suggestion_card"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/ContextualCardStyle">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="112dp"
+ android:paddingBottom="8dp"
+ android:orientation="vertical">
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:id="@android:id/icon"
+ android:layout_width="@dimen/homepage_card_icon_size"
+ android:layout_height="@dimen/homepage_card_icon_size"
+ style="@style/SuggestionCardIcon"
+ android:layout_marginTop="16dp"
+ android:layout_marginBottom="6dp"/>
+
+ </RelativeLayout>
+
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/SuggestionCardText"
+ android:layout_marginStart="12dp"
+ android:layout_marginEnd="12dp"
+ android:singleLine="true"
+ android:textAppearance="@style/TextAppearance.SuggestionTitle"
+ android:fadingEdge="horizontal"/>
+
+ <TextView
+ android:id="@android:id/summary"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/SuggestionCardText"
+ android:layout_marginStart="12dp"
+ android:layout_marginEnd="12dp"
+ android:singleLine="true"
+ android:textAppearance="@style/TextAppearance.SuggestionSummary"/>
+
+ </LinearLayout>
+
+</androidx.cardview.widget.CardView>
\ No newline at end of file
diff --git a/res/layout/horizontal_divider.xml b/res/layout/horizontal_divider.xml
index e4a277d..a134423 100644
--- a/res/layout/horizontal_divider.xml
+++ b/res/layout/horizontal_divider.xml
@@ -19,5 +19,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/divider"
android:layout_width="match_parent"
- android:layout_height=".75dp"
- android:background="?android:attr/dividerHorizontal" />
\ No newline at end of file
+ android:layout_height="@dimen/horizontal_divider_height"
+ android:layout_marginTop="@dimen/horizontal_divider_margin_top"
+ android:layout_marginBottom="@dimen/horizontal_divider_margin_bottom"
+ android:background="?android:attr/dividerHorizontal"/>
\ No newline at end of file
diff --git a/res/layout/lockscreen_remote_input.xml b/res/layout/lockscreen_remote_input.xml
index 68b35f9..4fa44ce 100644
--- a/res/layout/lockscreen_remote_input.xml
+++ b/res/layout/lockscreen_remote_input.xml
@@ -36,8 +36,8 @@
<ImageView
android:id="@+id/restricted_lock_icon_remote_input"
- android:layout_width="@*android:dimen/config_restricted_icon_size"
- android:layout_height="@*android:dimen/config_restricted_icon_size"
+ android:layout_width="@*android:dimen/config_restrictedIconSize"
+ android:layout_height="@*android:dimen/config_restrictedIconSize"
android:tint="?android:attr/colorAccent"
android:src="@*android:drawable/ic_info"
android:layout_marginEnd="?android:attr/dialogPreferredPadding"
diff --git a/res/layout/master_clear.xml b/res/layout/master_clear.xml
index 247eedc..8d4d623 100644
--- a/res/layout/master_clear.xml
+++ b/res/layout/master_clear.xml
@@ -21,7 +21,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
- android:theme="@style/SuwThemeGlifV3.Light"
+ android:theme="@style/SuwThemeGlifV3.DayNight"
android:icon="@drawable/ic_delete_accent"
app:suwHeaderText="@string/master_clear_title">
diff --git a/res/layout/master_clear_confirm.xml b/res/layout/master_clear_confirm.xml
index 146fb77..d513dbb 100644
--- a/res/layout/master_clear_confirm.xml
+++ b/res/layout/master_clear_confirm.xml
@@ -19,7 +19,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
- android:theme="@style/SuwThemeGlifV3.Light"
+ android:theme="@style/SuwThemeGlifV3.DayNight"
android:id="@+id/setup_wizard_layout"
android:icon="@drawable/ic_delete_accent"
app:suwHeaderText="@string/master_clear_confirm_title">
diff --git a/res/layout/mobile_settings_container.xml b/res/layout/mobile_network_settings_container.xml
similarity index 92%
rename from res/layout/mobile_settings_container.xml
rename to res/layout/mobile_network_settings_container.xml
index d81a72e..c88b512 100644
--- a/res/layout/mobile_settings_container.xml
+++ b/res/layout/mobile_network_settings_container.xml
@@ -23,12 +23,12 @@
android:orientation="vertical">
<Toolbar
- android:id="@+id/action_bar"
+ 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"
- style="?android:attr/actionBarStyle"/>
+ android:theme="?android:attr/actionBarTheme"/>
<FrameLayout
android:id="@+id/main_content"
diff --git a/res/layout/network_request_dialog_title.xml b/res/layout/network_request_dialog_title.xml
new file mode 100644
index 0000000..fa01085
--- /dev/null
+++ b/res/layout/network_request_dialog_title.xml
@@ -0,0 +1,44 @@
+<?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"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingEnd="?android:attr/dialogPreferredPadding"
+ android:orientation="horizontal"
+ android:background="?android:attr/selectableItemBackground"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall">
+
+ <TextView
+ android:id="@+id/network_request_title_text"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:paddingLeft="16dip"
+ android:layout_weight="1"
+ android:textSize="18sp"
+ android:gravity="center_vertical"
+ style="@style/info_label"/>
+
+ <ProgressBar
+ android:id="@+id/network_request_title_progress"
+ style="?android:attr/progressBarStyleSmallTitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:layout_marginStart="16dip"
+ android:minWidth="32dp"
+ android:text="@string/progress_scanning"/>
+</LinearLayout>
diff --git a/res/layout/restricted_dialog_singlechoice.xml b/res/layout/restricted_dialog_singlechoice.xml
index 48f62ce..a9984a8 100644
--- a/res/layout/restricted_dialog_singlechoice.xml
+++ b/res/layout/restricted_dialog_singlechoice.xml
@@ -37,8 +37,8 @@
android:ellipsize="marquee" />
<ImageView
android:id="@+id/restricted_lock_icon"
- android:layout_width="@*android:dimen/config_restricted_icon_size"
- android:layout_height="@*android:dimen/config_restricted_icon_size"
+ android:layout_width="@*android:dimen/config_restrictedIconSize"
+ android:layout_height="@*android:dimen/config_restrictedIconSize"
android:tint="?android:attr/colorAccent"
android:src="@*android:drawable/ic_info"
android:layout_marginLeft="@dimen/restricted_icon_padding"
diff --git a/res/layout/restricted_popup_menu_item.xml b/res/layout/restricted_popup_menu_item.xml
index 9f6da73..636e3f9 100644
--- a/res/layout/restricted_popup_menu_item.xml
+++ b/res/layout/restricted_popup_menu_item.xml
@@ -34,8 +34,8 @@
android:layout_alignParentLeft="true" />
<ImageView
android:id="@+id/restricted_icon"
- android:layout_width="@*android:dimen/config_restricted_icon_size"
- android:layout_height="@*android:dimen/config_restricted_icon_size"
+ android:layout_width="@*android:dimen/config_restrictedIconSize"
+ android:layout_height="@*android:dimen/config_restrictedIconSize"
android:scaleType="centerInside"
android:tint="?android:attr/colorAccent"
android:src="@*android:drawable/ic_info"
diff --git a/res/layout/restricted_radio_with_summary.xml b/res/layout/restricted_radio_with_summary.xml
index 4808460..5e7fcd8 100644
--- a/res/layout/restricted_radio_with_summary.xml
+++ b/res/layout/restricted_radio_with_summary.xml
@@ -41,7 +41,7 @@
android:ellipsize="marquee" />
<ImageView
android:id="@+id/restricted_icon"
- android:layout_width="@*android:dimen/config_restricted_icon_size"
+ android:layout_width="@*android:dimen/config_restrictedIconSize"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:tint="?android:attr/colorAccent"
diff --git a/res/layout/search_bar.xml b/res/layout/search_bar.xml
index 9e64db7..1ba64ad 100644
--- a/res/layout/search_bar.xml
+++ b/res/layout/search_bar.xml
@@ -45,5 +45,12 @@
android:layout_height="wrap_content"
android:text="@string/search_menu"/>
</Toolbar>
+ <ImageView
+ android:id="@+id/account_avatar"
+ android:layout_marginStart="@dimen/search_bar_avatar_start_margin"
+ android:layout_marginEnd="@dimen/search_bar_avatar_end_margin"
+ android:layout_width="@dimen/search_bar_avatar_size"
+ android:layout_height="@dimen/search_bar_avatar_size"
+ android:layout_gravity="end|center_vertical"/>
</androidx.cardview.widget.CardView>
</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/search_main.xml b/res/layout/search_main.xml
deleted file mode 100644
index 6de344d..0000000
--- a/res/layout/search_main.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-* Copyright 2016, 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.
-*/
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/main_content"
- android:layout_height="match_parent"
- android:layout_width="match_parent"/>
diff --git a/res/layout/search_slice_item.xml b/res/layout/search_slice_item.xml
deleted file mode 100644
index 1607209..0000000
--- a/res/layout/search_slice_item.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:minHeight="?android:attr/listPreferredItemHeight"
- android:paddingTop="16dp"
- android:paddingBottom="16dp"
- android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
- android:background="?android:attr/selectableItemBackground"
- android:clipToPadding="false">
-
- <include layout="@layout/search_icon_view"/>
-
- <android.app.slice.widget.SliceView
- android:id="@android:id/content"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/settings_data_plan_summary_preference.xml b/res/layout/settings_data_plan_summary_preference.xml
deleted file mode 100644
index e887474..0000000
--- a/res/layout/settings_data_plan_summary_preference.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2017 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:settings="http://schemas.android.com/apk/res-auto"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="8dp"
- android:paddingBottom="8dp"
- android:paddingStart="@dimen/preference_no_icon_padding_start"
- android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
- android:orientation="horizontal">
-
- <!-- Shows the data plan usage in chart -->
- <com.android.settings.widget.DonutView
- android:id="@+id/donut"
- android:layout_width="72dp"
- android:layout_height="72dp"
- android:layout_marginEnd="8dp"
- android:layout_gravity="center"
- android:paddingStart="?android:attr/listPreferredItemPaddingStart"
- android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
- android:gravity="end|center_vertical"
- settings:applyColorAccent="false"
- settings:showPercentString="false"
- settings:thickness="6dp"/>
-
- <LinearLayout
- android:id="@+id/data_plan_row"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="2dp"
- android:orientation="vertical">
-
- <!-- Shows the data plan usage -->
- <TextView
- android:id="@android:id/title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="0dp"
- android:paddingTop="0dp"
- android:fontFamily="@*android:string/config_headlineFontFamily"
- android:textAppearance="@android:style/TextAppearance.Material.Title"/>
-
- <!-- Shows the data plan name -->
- <TextView
- android:id="@android:id/text1"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingBottom="5dp"
- android:maxLines="3"
- android:textAppearance="@android:style/TextAppearance.Material.Subhead"
- android:textColor="?android:attr/textColorSecondary"/>
-
- <!-- Shows the data plan description -->
- <TextView
- android:id="@android:id/text2"
- android:textStyle="italic"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:maxLines="5"
- android:textAppearance="@android:style/TextAppearance.Material.Subhead"
- android:textColor="?android:attr/textColorSecondary"/>
- </LinearLayout>
-</LinearLayout>
diff --git a/res/layout/settings_entity_header.xml b/res/layout/settings_entity_header.xml
index 6698f3f..5f5fe00 100644
--- a/res/layout/settings_entity_header.xml
+++ b/res/layout/settings_entity_header.xml
@@ -16,60 +16,58 @@
-->
<!-- Entity header -->
-<LinearLayout
+<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/entity_header"
style="@style/EntityHeader"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingStart="@dimen/preference_no_icon_padding_start"
- android:paddingTop="24dp"
- android:paddingBottom="32dp"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/entity_header_content"
- android:layout_width="0dp"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_weight="1"
- android:background="?android:attr/selectableItemBackground"
+ android:layout_centerHorizontal="true"
+ android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/entity_header_icon"
android:layout_width="48dp"
android:layout_height="48dp"
- android:layout_marginBottom="16dp"
android:scaleType="fitXY"
- android:antialias="true" />
+ android:antialias="true"/>
<TextView
android:id="@+id/entity_header_title"
style="@style/TextAppearance.EntityHeaderTitle"
- android:layout_width="match_parent"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="false"
android:ellipsize="marquee"
- android:gravity="start"
- android:textDirection="locale" />
+ android:textDirection="locale"
+ android:layout_marginTop="8dp"/>
<TextView
android:id="@+id/install_type"
style="@style/TextAppearance.EntityHeaderSummary"
android:visibility="gone"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="2dp"/>
<TextView
android:id="@+id/entity_header_summary"
style="@style/TextAppearance.EntityHeaderSummary"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="2dp"/>
<TextView
android:id="@+id/entity_header_second_summary"
style="@style/TextAppearance.EntityHeaderSummary"
- android:layout_width="match_parent"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
@@ -78,6 +76,8 @@
android:id="@+id/entity_header_links"
android:layout_width="wrap_content"
android:layout_height="match_parent"
+ android:layout_centerVertical="true"
+ android:layout_alignParentEnd="true"
android:orientation="vertical">
<ImageButton
@@ -102,4 +102,4 @@
</LinearLayout>
-</LinearLayout>
+</RelativeLayout>
diff --git a/res/layout/settings_homepage.xml b/res/layout/settings_homepage.xml
index 83c771c..0140ced 100644
--- a/res/layout/settings_homepage.xml
+++ b/res/layout/settings_homepage.xml
@@ -15,8 +15,17 @@
limitations under the License.
-->
-<androidx.recyclerview.widget.RecyclerView
+<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/card_container"
android:layout_width="match_parent"
- android:layout_height="match_parent" />
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/card_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layoutAnimation="@anim/layout_animation_fall_down"/>
+
+ <include layout="@layout/horizontal_divider"/>
+</LinearLayout>
diff --git a/res/layout/settings_homepage_container.xml b/res/layout/settings_homepage_container.xml
index ba8b48a..5e0adec 100644
--- a/res/layout/settings_homepage_container.xml
+++ b/res/layout/settings_homepage_container.xml
@@ -15,44 +15,28 @@
limitations under the License.
-->
-<LinearLayout
+<androidx.core.widget.NestedScrollView
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">
+ android:layout_height="match_parent">
- <androidx.coordinatorlayout.widget.CoordinatorLayout
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1">
-
- <com.google.android.material.appbar.AppBarLayout
- android:id="@+id/homepage_appbar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- app:elevation="0dp">
-
- <include layout="@layout/search_bar"/>
-
- </com.google.android.material.appbar.AppBarLayout>
-
- <FrameLayout
- android:id="@id/main_content"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
- </androidx.coordinatorlayout.widget.CoordinatorLayout>
-
- <com.google.android.material.bottomnavigation.BottomNavigationView
- android:id="@+id/bottom_nav"
+ <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- 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"/>
+ android:orientation="vertical"
+ android:descendantFocusability="blocksDescendants">
-</LinearLayout>
+ <include layout="@layout/search_bar"/>
+
+ <FrameLayout
+ android:id="@+id/contextual_cards_content"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"/>
+
+ <FrameLayout
+ android:id="@+id/main_content"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"/>
+
+ </LinearLayout>
+</androidx.core.widget.NestedScrollView>
diff --git a/res/layout/spinner_dropdown_restricted_item.xml b/res/layout/spinner_dropdown_restricted_item.xml
index be85966..d95e4be 100644
--- a/res/layout/spinner_dropdown_restricted_item.xml
+++ b/res/layout/spinner_dropdown_restricted_item.xml
@@ -26,8 +26,8 @@
android:layout_height="?android:attr/listPreferredItemHeightSmall"
android:ellipsize="marquee" />
<ImageView android:id="@+id/restricted_icon"
- android:layout_width="@*android:dimen/config_restricted_icon_size"
- android:layout_height="@*android:dimen/config_restricted_icon_size"
+ android:layout_width="@*android:dimen/config_restrictedIconSize"
+ android:layout_height="@*android:dimen/config_restrictedIconSize"
android:tint="?android:attr/colorAccent"
android:src="@*android:drawable/ic_info"
android:baselineAlignBottom="true"
diff --git a/res/layout/suggestion_container.xml b/res/layout/suggestion_container.xml
deleted file mode 100644
index 3f57c33..0000000
--- a/res/layout/suggestion_container.xml
+++ /dev/null
@@ -1,33 +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"
- style="@style/SuggestionConditionStyle"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="2dp"
- android:orientation="vertical">
-
- <androidx.recyclerview.widget.RecyclerView
- android:id="@+id/suggestion_list"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingBottom="16dp"
- android:scrollbars="none"/>
-
-</LinearLayout>
diff --git a/res/layout/suggestion_tile.xml b/res/layout/suggestion_tile.xml
deleted file mode 100644
index 09431a8..0000000
--- a/res/layout/suggestion_tile.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-
-<androidx.cardview.widget.CardView
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/suggestion_card"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginStart="16dp"
- android:layout_marginEnd="16dp"
- app:cardPreventCornerOverlap="false"
- app:cardUseCompatPadding="true"
- app:cardElevation="2dp"
- app:cardCornerRadius="@dimen/suggestion_card_corner_radius">
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:minHeight="112dp"
- android:paddingBottom="8dp"
- android:orientation="vertical">
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
-
- <ImageView
- android:id="@android:id/icon"
- android:layout_width="@dimen/suggestion_card_icon_size"
- android:layout_height="@dimen/suggestion_card_icon_size"
- style="@style/SuggestionCardIcon"
- android:layout_marginTop="16dp"
- android:layout_marginBottom="6dp" />
-
-
- <FrameLayout
- android:id="@+id/close_button"
- android:layout_width="48dp"
- android:layout_height="48dp"
- android:layout_alignParentEnd="true"
- android:paddingTop="8dp"
- android:paddingEnd="8dp"
- android:orientation="horizontal"
- android:contentDescription="@string/dlg_close">
- <ImageView
- android:layout_width="18dp"
- android:layout_height="18dp"
- android:layout_gravity="end|top"
- android:alpha="0.54"
- android:src="@drawable/ic_suggestion_close_button"/>
- </FrameLayout>
-
- </RelativeLayout>
-
- <TextView
- android:id="@android:id/title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- style="@style/SuggestionCardText"
- android:layout_marginStart="12dp"
- android:layout_marginEnd="12dp"
- android:singleLine="true"
- android:textAppearance="@style/TextAppearance.SuggestionTitle"
- android:fadingEdge="horizontal" />
-
- <TextView
- android:id="@android:id/summary"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- style="@style/SuggestionCardText"
- android:layout_marginStart="12dp"
- android:layout_marginEnd="12dp"
- android:singleLine="true"
- android:textAppearance="@style/TextAppearance.SuggestionSummary" />
-
- </LinearLayout>
-
-</androidx.cardview.widget.CardView>
diff --git a/res/layout/suggestion_tile_two_cards.xml b/res/layout/suggestion_tile_two_cards.xml
deleted file mode 100644
index c75458b..0000000
--- a/res/layout/suggestion_tile_two_cards.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-
-<androidx.cardview.widget.CardView
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/suggestion_card"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- app:cardPreventCornerOverlap="false"
- app:cardUseCompatPadding="true"
- app:cardElevation="2dp"
- app:cardCornerRadius="@dimen/suggestion_card_corner_radius">
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:minHeight="112dp"
- android:orientation="vertical">
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
-
- <ImageView
- android:id="@android:id/icon"
- android:layout_width="@dimen/suggestion_card_icon_size"
- android:layout_height="@dimen/suggestion_card_icon_size"
- style="@style/SuggestionCardIcon"
- android:layout_marginTop="16dp"
- android:layout_marginBottom="8dp" />
-
- <FrameLayout
- android:id="@+id/close_button"
- android:layout_width="48dp"
- android:layout_height="48dp"
- android:layout_alignParentEnd="true"
- android:gravity="end|top"
- android:paddingTop="8dp"
- android:paddingEnd="8dp"
- android:orientation="horizontal"
- android:contentDescription="@string/dlg_close">
- <ImageView
- android:layout_width="18dp"
- android:layout_height="18dp"
- android:layout_gravity="end|top"
- android:alpha="0.54"
- android:src="@drawable/ic_suggestion_close_button"/>
- </FrameLayout>
-
- </RelativeLayout>
-
- <TextView
- android:id="@android:id/title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- style="@style/SuggestionCardText"
- android:layout_marginStart="12dp"
- android:layout_marginEnd="12dp"
- android:layout_marginBottom="16dp"
- android:gravity="center_vertical"
- android:textAppearance="@style/TextAppearance.SuggestionTitle"
- android:maxLines="3"
- android:ellipsize="end"
- android:fadingEdge="horizontal" />
-
- </LinearLayout>
-
-</androidx.cardview.widget.CardView>
diff --git a/res/layout/suggestion_tile_with_button.xml b/res/layout/suggestion_tile_with_button.xml
deleted file mode 100644
index 7d59dd9..0000000
--- a/res/layout/suggestion_tile_with_button.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-
-<androidx.cardview.widget.CardView
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/suggestion_card"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginStart="16dp"
- android:layout_marginEnd="16dp"
- app:cardPreventCornerOverlap="false"
- app:cardUseCompatPadding="true"
- app:cardElevation="2dp"
- app:cardCornerRadius="@dimen/suggestion_card_corner_radius">
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:minHeight="160dp"
- android:orientation="vertical">
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
-
- <ImageView
- android:id="@android:id/icon"
- android:layout_width="@dimen/suggestion_card_icon_size"
- android:layout_height="@dimen/suggestion_card_icon_size"
- style="@style/SuggestionCardIcon"
- android:layout_marginTop="16dp"
- android:layout_marginBottom="6dp" />
-
- <FrameLayout
- android:id="@+id/close_button"
- android:layout_width="48dp"
- android:layout_height="48dp"
- android:layout_alignParentEnd="true"
- android:paddingTop="8dp"
- android:paddingEnd="8dp"
- android:orientation="horizontal"
- android:contentDescription="@string/dlg_close">
- <ImageView
- android:layout_width="18dp"
- android:layout_height="18dp"
- android:layout_gravity="end|top"
- android:alpha="0.54"
- android:src="@drawable/ic_suggestion_close_button"/>
- </FrameLayout>
-
- </RelativeLayout>
-
- <TextView
- android:id="@android:id/title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- style="@style/SuggestionCardText"
- android:layout_marginStart="12dp"
- android:layout_marginEnd="12dp"
- android:singleLine="true"
- android:textAppearance="@style/TextAppearance.SuggestionTitle"
- android:fadingEdge="horizontal" />
-
- <TextView
- android:id="@android:id/summary"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- style="@style/SuggestionCardText"
- android:layout_marginStart="12dp"
- android:layout_marginEnd="12dp"
- android:singleLine="true"
- android:textAppearance="@style/TextAppearance.SuggestionSummary" />
-
- <FrameLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- style="@style/SuggestionCardButton">
- <Button
- android:id="@android:id/primary"
- style="@style/ActionPrimaryButton"
- android:layout_gravity="center"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/suggestion_button_text" />
- </FrameLayout>
-
- </LinearLayout>
-
-</androidx.cardview.widget.CardView>
diff --git a/res/layout/system_info_list_item.xml b/res/layout/system_info_list_item.xml
deleted file mode 100644
index 37806bd..0000000
--- a/res/layout/system_info_list_item.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:minHeight="?android:attr/listPreferredItemHeight"
- android:orientation="vertical"
- android:paddingStart="?android:attr/dialogPreferredPadding"
- android:paddingEnd="?android:attr/dialogPreferredPadding"
- android:paddingTop="8dp"
- android:paddingBottom="8dp">
- <TextView
- android:id="@+id/title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:singleLine="true"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:ellipsize="marquee"
- android:fadingEdge="horizontal"/>
- <TextView
- android:id="@+id/summary"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_below="@id/title"
- android:layout_alignStart="@id/title"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:textColor="?android:attr/textColorSecondary"
- android:maxLines="4"/>
-</LinearLayout>
diff --git a/res/layout/dashboard_spacer.xml b/res/layout/vertical_divider.xml
similarity index 73%
rename from res/layout/dashboard_spacer.xml
rename to res/layout/vertical_divider.xml
index 3ebcb09..4f1cc43 100644
--- a/res/layout/dashboard_spacer.xml
+++ b/res/layout/vertical_divider.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 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.
@@ -16,6 +17,7 @@
<View
xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="8dp"
- android:background="?android:attr/colorSecondary"/>
+ android:id="@+id/divider"
+ android:layout_width="@dimen/vertical_divider_width"
+ android:layout_height="match_parent"
+ android:background="?android:attr/dividerVertical"/>
diff --git a/res/layout/wifi_dialog.xml b/res/layout/wifi_dialog.xml
index 2330727..72eb011 100644
--- a/res/layout/wifi_dialog.xml
+++ b/res/layout/wifi_dialog.xml
@@ -483,6 +483,27 @@
</LinearLayout>
+ <LinearLayout android:id="@+id/privacy_settings_fields"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/wifi_item"
+ android:visibility="gone">
+
+ <TextView android:id="@+id/privacy_settings_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ style="@style/wifi_item_label"
+ android:text="@string/wifi_privacy_settings" />
+
+ <Spinner android:id="@+id/privacy_settings"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/wifi_item_spinner"
+ android:prompt="@string/wifi_privacy_settings"
+ android:entries="@array/wifi_privacy_entries"/>
+
+ </LinearLayout>
+
<LinearLayout android:id="@+id/staticip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
index 4ab326f..02369ae 100644
--- a/res/values-af/arrays.xml
+++ b/res/values-af/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Hanteer as beperk"</item>
<item msgid="2266114985518865625">"Hanteer as onbeperk"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Verstek (gebruik ewekansige MAC)"</item>
+ <item msgid="5398461510512959597">"Vertroud"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Nee"</item>
<item msgid="3863157480502955888">"Ja"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Ontfout"</item>
<item msgid="5286514712714822064">"Woordryk"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Net tuis"</item>
+ <item msgid="5034813753274486448">"Outomaties"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA verkies"</item>
+ <item msgid="807926878589867564">"Net GSM"</item>
+ <item msgid="488474605709912156">"Net WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA outomaties"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo outomaties"</item>
+ <item msgid="370391313511477301">"CDMA sonder EvDo"</item>
+ <item msgid="4678789463133969294">"Net EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Globaal"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Net TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Globaal"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index f5ebbd8..1804793 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Skep"</string>
<string name="allow" msgid="3349662621170855910">"Laat toe"</string>
<string name="deny" msgid="6947806159746484865">"Weier"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Maak toe"</string>
<string name="device_info_default" msgid="7847265875578739287">"Onbekend"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Nog net <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> stappe oor voordat jy \'n ontwikkelaar is.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Kies minstens een band vir Wi-Fi-warmkol:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP-instellings"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privaatheid"</string>
<string name="wifi_shared" msgid="844142443226926070">"Deel met ander toestelgebruikers"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(onveranderd)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Kies asseblief"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Kan nie PIN verander nie.\nMoontlik verkeerde PIN."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM-PIN is suksesvol verander"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Kan nie SIM-kaart se sluitstatus verander nie.\nMoontlik \'n verkeerde PIN."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Kan nie PIN deaktiveer nie."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Kan nie PIN aktiveer nie."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Kanselleer"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Verskeie SIMs gevind"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Wys %d versteekte items</item>
<item quantity="one">Wys %d versteekte item</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Vou in"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Netwerk en internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobiel"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"datagebruik"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"donker tema"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"fout"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Stemmingvertoning, sluitskermvertoning"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"sluitskermkennisgewing"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"gesig"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"vingerafdruk"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"verdof skerm, raakskerm, battery, slimhelderheid, dinamiese helderheid"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Interne gebruik: <xliff:g id="PERCENTAGE">%1$s</xliff:g> is gebruik – <xliff:g id="FREE_SPACE">%2$s</xliff:g> is beskikbaar"</string>
<string name="display_summary" msgid="6737806235882127328">"Slaap ná <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> se onaktiwiteit"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Muurpapier, slaap, lettergrootte"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Slaap ná 10 minute se onaktiwiteit"</string>
<string name="memory_summary" msgid="8080825904671961872">"Gemiddeld <xliff:g id="USED_MEMORY">%1$s</xliff:g> van <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> berging gebruik"</string>
<string name="users_summary" msgid="1674864467098487328">"Aangemeld as <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Netwerkbesonderhede"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Programme op jou foon kan jou toestelnaam sien. Ander mense sal dit dalk ook kan sien wanneer jy aan Bluetooth-toestelle koppel of \'n Wi-Fi-warmkol opstel."</string>
<string name="devices_title" msgid="7701726109334110391">"Toestelle"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Hoëfrekwensie-paneel"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Aktiveer virtuele hoëfrekwensie-paneel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Alle instellings"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Jou instellings"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Voorstelle"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-data"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-data"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Kies netwerk"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Kon nie netwerke kry nie. Probeer weer."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(verbode)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Geen SIM-kaart nie"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Gevorderde oproepe"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Voorkeurnetwerkmodus: WCDMA verkies"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Voorkeurnetwerkmodus: net GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Voorkeurnetwerkmodus: net WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Voorkeurnetwerkmodus: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Voorkeurnetwerkmodus: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Voorkeurnetwerkmodus: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Voorkeurnetwerkmodus: net CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Voorkeurnetwerkmodus: net EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Voorkeurnetwerkmodus: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Voorkeurnetwerkmodus: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Voorkeurnetwerkmodus: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Voorkeurnetwerkmodus: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Voorkeurnetwerkmodus: globaal"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Voorkeurnetwerkmodus: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Voorkeurnetwerkmodus: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Voorkeurnetwerkmodus: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Voorkeurnetwerkmodus: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Voorkeurnetwerkmodus: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Voorkeurnetwerkmodus: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Voorkeurnetwerkmodus: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Voorkeurnetwerkmodus: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Voorkeurnetwerkmodus: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Voorkeurnetwerkmodus: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Voorkeurnetwerkmodus: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Voorkeurnetwerkmodus: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Voorkeurnetwerkmodus: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (aanbeveel)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (aanbeveel)"</string>
+ <string name="network_global" msgid="959947774831178632">"Globaal"</string>
+ <string name="label_available" msgid="1731547832803057893">"Beskikbare netwerke"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Soek tans …"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registreer tans op <xliff:g id="NETWORK">%s</xliff:g> …"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Jou SIM-kaart laat nie \'n verbinding aan hierdie netwerk toe nie."</string>
+ <string name="connect_later" msgid="978991102125216741">"Kan nie op die oomblik aan hierdie netwerk koppel nie. Probeer later weer."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Geregistreer op netwerk."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Kies netwerk outomaties"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Diensverskafferstellings"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Stel datadiens op"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobiele data"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Kry toegang tot data deur selnetwerk"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Voorkeurnetwerktipe"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Verander die netwerkbedryfsmodus"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Voorkeurnetwerktipe"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Diensverskaffer"</string>
+ <string name="call_category" msgid="8108654745239563833">"Oproepe"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Diensverskaffervideo-oproepe"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Stelselkeuse"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Verander die CDMA-swerwingmodus"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Stelselkeuse"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Netwerk"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Netwerk"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA-intekening"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Wissel tussen RUIM/SIM en NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"intekening"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Outomatiese registrasie …"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Laat dataswerwing toe?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Kry pryse by jou netwerkverskaffer."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Programdatagebruik"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Ongeldige netwerkmodus <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignoreer."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Onbeskikbaar wanneer gekoppel aan <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Sien meer"</string>
+ <string name="see_less" msgid="1250265310929558370">"Sien minder"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> toestelle is gekoppel</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> toestel is gekoppel</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Geen gekoppelde toestelle nie"</string>
</resources>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index effed2b..69b8638 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"እንደ ተለካ አስተናግድ"</item>
<item msgid="2266114985518865625">"እንደ ያልተለካ አስተናግድ"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"ነባሪ (የዘፈቀደ ማክ ይጠቀሙ)"</item>
+ <item msgid="5398461510512959597">"የታመነ"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"አይ"</item>
<item msgid="3863157480502955888">"አዎ"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"አርም"</item>
<item msgid="5286514712714822064">"ዝርክርክ ቃላት"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"መነሻ ብቻ"</item>
+ <item msgid="5034813753274486448">"ራስ-ሰር"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA ይመረጣል"</item>
+ <item msgid="807926878589867564">"GSM ብቻ"</item>
+ <item msgid="488474605709912156">"WCDMA ብቻ"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA ራስ-ሰር"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo ራስ-ሰር"</item>
+ <item msgid="370391313511477301">"CDMA ያለEvDo"</item>
+ <item msgid="4678789463133969294">"EvDo ብቻ"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"ሁለንተናዊ"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA ብቻ"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"ሁለንተናዊ"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 92e1c9b..263b30a 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"ፍጠር"</string>
<string name="allow" msgid="3349662621170855910">"ይፍቀዱ"</string>
<string name="deny" msgid="6947806159746484865">"ይከልክሉ"</string>
- <string name="dlg_close" msgid="7471087791340790015">"ዝጋ"</string>
<string name="device_info_default" msgid="7847265875578739287">"ያልታወቀ"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">አሁን ገንቢ ለመሆን <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ደረጃዎች ይቀርዎታል።</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 ጊኸ"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"ለWi-Fi መገናኛ ነጥብ ቢያንስ አንድ ሞገድ ይምረጡ፦"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP ቅንብሮች"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"ግላዊነት"</string>
<string name="wifi_shared" msgid="844142443226926070">"ለሌሎች የመሣሪያ ተጠቃሚዎች አጋራ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ያልተለወጠ)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"እባክዎ ይምረጡ"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"ፒን መለወጥ አይቻልም::\n ምናልባት ልክ ያልኾነ ፒን ሊሆን ይችላል::"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM ፒን በተሳካ ተለውጧል"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"የሲም ካርድን ቆልፍ ሁኔታ ለመለወጥ አይቻልም። \n የተሳሳተ ፒን ሊሆን ይችላል።"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"ፒንን ማሰናከል አልተቻለም።"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"ፒንን ማንቃት አልተቻለም።"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"እሺ"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"ይቅር"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"በርካታ ሲሞች ተገኝተዋል"</string>
@@ -2931,7 +2933,6 @@
<item quantity="one">%d የተደበቁ ንጥሎችን አሳይ</item>
<item quantity="other">%d የተደበቁ ንጥሎችን አሳይ</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ሰብስብ"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"አውታረ መረብ እና በይነመረብ"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ሞባይል"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"የውሂብ አጠቃቀም"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"ጨለማ ገጽታ"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"ሳንካ"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ድባባዊ ማሳያ፣ የማያ ገጽ ቁልፍ ማሳያ"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"የማያ ገጽ ቁልፍ ማሳወቂያ"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"መልክ"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"የጣት አሻራ"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"የደበዘዘ ማያ ገጽ፣ ማያንካ፣ ባትሪ፣ ዘመናዊ ብሩህነት፣ ተለዋዋጭ ብሩህነት"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ውስጣዊ ማከማቻ፦ <xliff:g id="PERCENTAGE">%1$s</xliff:g> ጥቅም ላይ ውሏል - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ነጻ"</string>
<string name="display_summary" msgid="6737806235882127328">"ከ<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> እንቅስቃሴ-አልባነት በኋላ ተኛ"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"ልጣፍ፣ እንቅልፍ፣ የቅርጸ-ቁምፊ መጠን"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"ከ10 ደቂቃዎች እንቅስቃሴ-አልባነት በኋላ ተኛ"</string>
<string name="memory_summary" msgid="8080825904671961872">"በአማካይ <xliff:g id="USED_MEMORY">%1$s</xliff:g> ከ<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> ማህደረ ትውስጥ ስራ ላይ ውሏል"</string>
<string name="users_summary" msgid="1674864467098487328">"እንደ <xliff:g id="USER_NAME">%1$s</xliff:g> ሆነው ገብተዋል።"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"የአውታረ መረብ ዝርዝሮች"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"የእርስዎ መሣሪያ በእርስዎ ስልክ ላይ ላሉ መተግበሪያዎች የሚታይ ነው። ወድ ብሉቱዝ መሣሪያዎች ሲያገኙ ወይም የWi-Fi መገናኛ ነጥብን ሲያቀናብሩ በተጨማሪ በሌሎች ሰዎች የሚታይ ይሆናል።"</string>
<string name="devices_title" msgid="7701726109334110391">"መሣሪያዎች"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"ከፍተኛ ድግምግሞሽ ፓነል"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ምናባዊ የፈጣን ድግግሞሽ ፓነልን አንቃ"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ሁሉም ቅንብሮች"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"የእርስዎ ቅንብሮች"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"የአስተያየት ጥቆማዎች"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ውሂብ"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ውሂብ"</string>
<string name="choose_network_title" msgid="5702586742615861037">"አውታረ መረብ ይምረጡ"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"አውታረ መረቦችን ማግኘት አልተቻለም። እንደገና ይሞክሩ።"</string>
<string name="forbidden_network" msgid="4626592887509826545">"(የተከለከለ)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"ምንም ሲም ካርድ የለም"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"የላቀ ጥሪ ማድረግ"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"ተመራጭ የአውታረ መረብ፦ WCDMA ሁነታ ተመራጭ"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"ተመራጭ የአውታረ መረብ፦ GSM ብቻ"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"ተመራጭ የአውታረ መረብ፦ WCDMA ብቻ"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"ተመራጭ የአውታረ መረብ ሁነታ፦ GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"ተመራጭ የአውታረ መረብ፦ CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"ተመራጭ የአውታረ መረብ፦ CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"ተመራጭ የአውታረ መረብ፦ CDMA ብቻ"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"ተመራጭ የአውታረ መረብ ሁነታ፦ EvDo ብቻ"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"ተመራጭ የአውታረ መረብ ሁነታ፦ CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"ተመራጭ የአውታረ መረብ ሁነታ፦ LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"ተመራጭ የአውታረ መረብ ሁነታ፦ GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"ተመራጭ የአውታረ መረብ ሁነታ፦ CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"ተመራጭ የአውታረ መረብ ሁነታ፦ አለምአቀፍ"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"ተመራጭ የአውታረ መረብ ሁነታ፦ LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"ተመራጭ የአውታረ መረብ ሁነታ፦ LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"ተመራጭ የአውታረ መረብ ሁነታ፦ LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"የተመረጠው የአውታረ መረብ ሁነታ፦ TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"የተመረጠው የአውታረ መረብ ሁነታ፦ TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"የተመረጠው የአውታረ መረብ ሁነታ፦ LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"የተመረጠው የአውታረ መረብ ሁነታ፦ TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"የተመረጠው የአውታረ መረብ ሁነታ፦ LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"የተመረጠው የአውታረ መረብ ሁነታ፦ TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"የተመረጠው የአውታረ መረብ ሁነታ፦ LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"የተመረጠው የአውታረ መረብ ሁነታ፦ LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"የተመረጠው የአውታረ መረብ ሁነታ፦ CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"የተመረጠው የአውታረ መረብ ሁነታ፦ LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (የሚመከር)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4ጂ (የሚመከር)"</string>
+ <string name="network_global" msgid="959947774831178632">"ሁለንተናዊ"</string>
+ <string name="label_available" msgid="1731547832803057893">"የሚገኙ አውታረ መረቦች"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"በመፈለግ ላይ…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"በ<xliff:g id="NETWORK">%s</xliff:g> ላይ በመመዝገብ ላይ…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"የእርስዎ ሲም ካርድ ከዚህ አውታረ መረብ ጋር ግንኙነት አይፈቅድም።"</string>
+ <string name="connect_later" msgid="978991102125216741">"በአሁኑ ጊዜ ከዚህ አውታረ መረብ ጋር መገናኘት አልተቻለም። ቆይተው እንደገና ይሞክሩ።"</string>
+ <string name="registration_done" msgid="4573820010512184521">"በአውታረ መረብ ላይ የተመዘገበ።"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"አውታረ መረብን በራስ-ሰር ይምረጡ"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"የአገልግሎት አቅራቢ ቅንብሮች"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"የውሂብ አግልግሎት አዋቅር"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"የተንቀሳቃሽ ስልክ ውሂብ"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"የተንቀሳቃሽ ስልክ አውታረ መረብን በመጠቀም ውሂብን ይድረሱበት"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"የሚመረጠው የአውታረ መረብ አይነት"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"የአውታረ መረቡን የክወና ሁነታን ለውጥ"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"የሚመረጠው የአውታረ መረብ አይነት"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"አገልግሎት አቅራቢ"</string>
+ <string name="call_category" msgid="8108654745239563833">"በመደወል ላይ"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"የአገልግሎት አቅራቢ የቪዲዮ ጥሪ"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"የሥርዓት ምርጫ"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"የCDMA በእንቅስቃሴ ላይ ሁነታ ለውጥ"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"የሥርዓት ምርጫ"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"አውታረ መረብ"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"አውታረ መረብ"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"የCDMA ደንበኝነት ምዝገባ"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"በRUIM/SIM እና NV መካከል ለውጥ"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"የደንበኝነት ምዝገባ"</string>
+ <string name="register_automatically" msgid="518185886971595020">"ራስ-ሰር ምዝገባ…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"የውሂብ ዝውውር ይፈቀድ?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"ለዋጋው የአውታረ መረብ አቅራቢዎ ጋር ይመልከቱ።"</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"የመተግበሪያ ውሂብ አጠቃቀም"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"ልክ ያልሆነ አውታረ መረብ ሁነታ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>። ችላ በል።"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"ከ<xliff:g id="CARRIER">%1$s</xliff:g> ጋር ሲገናኝ የማይገኝ"</string>
+ <string name="see_more" msgid="5953815986207345223">"ተጨማሪ ይመልከቱ"</string>
+ <string name="see_less" msgid="1250265310929558370">"ያነሰ ይመልከቱ"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> መሣሪያዎች ተገናኝተዋል</item>
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> መሣሪያዎች ተገናኝተዋል</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"ምንም የተገናኙ መሣሪያዎች የሉም"</string>
</resources>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index 15fd9a8..5d19b07 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -219,7 +219,7 @@
<item msgid="2681427309183221543">"GID"</item>
</string-array>
<string-array name="app_install_location_entries">
- <item msgid="8151497958991952759">"سعة تخزين الجهاز الداخلية"</item>
+ <item msgid="8151497958991952759">"مساحة تخزين الجهاز الداخلية"</item>
<item msgid="3738430123799803530">"بطاقة SD قابلة للإزالة"</item>
<item msgid="4498124044785815005">"ترك القرار للنظام"</item>
</string-array>
@@ -290,8 +290,8 @@
<item msgid="5895843015407713543">"أجهزة استشعار الجسم"</item>
<item msgid="1436446526955010826">"قراءة رسائل البث الخلوي"</item>
<item msgid="884172201575690484">"موقع وهمي"</item>
- <item msgid="3591971310048485247">"قراءة سعة التخزين"</item>
- <item msgid="4041187808621866119">"كتابة سعة التخزين"</item>
+ <item msgid="3591971310048485247">"قراءة مساحة التخزين"</item>
+ <item msgid="4041187808621866119">"كتابة مساحة التخزين"</item>
<item msgid="6628873315024166197">"تشغيل الشاشة"</item>
<item msgid="3253368931113490863">"الحصول على الحسابات"</item>
<item msgid="780392378084812901">"التشغيل في الخلفية"</item>
@@ -357,8 +357,8 @@
<item msgid="7864822459293570891">"أجهزة استشعار الجسم"</item>
<item msgid="6798698496904810960">"قراءة رسائل البث الخلوي"</item>
<item msgid="5242052845700875820">"موقع وهمي"</item>
- <item msgid="1246296877820358565">"قراءة سعة التخزين"</item>
- <item msgid="2404067308793740341">"كتابة سعة التخزين"</item>
+ <item msgid="1246296877820358565">"قراءة مساحة التخزين"</item>
+ <item msgid="2404067308793740341">"كتابة مساحة التخزين"</item>
<item msgid="5832543806893763620">"تشغيل الشاشة"</item>
<item msgid="5258373962467495905">"الحصول على الحسابات"</item>
<item msgid="334625385979270703">"التشغيل في الخلفية"</item>
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"معاملة الشبكة باعتبارها ذات سعة محدودة"</item>
<item msgid="2266114985518865625">"معاملة الشبكة باعتبارها ذات سعة غير محدودة"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"الإعداد التلقائي (استخدام عنوان MAC عشوائي)"</item>
+ <item msgid="5398461510512959597">"موثوق به"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"لا"</item>
<item msgid="3863157480502955888">"نعم"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"تصحيح الأخطاء"</item>
<item msgid="5286514712714822064">"مطوّل"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"الرئيسية فقط"</item>
+ <item msgid="5034813753274486448">"تلقائي"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA المُفضَّل"</item>
+ <item msgid="807926878589867564">"نظام GSM فقط"</item>
+ <item msgid="488474605709912156">"WCDMA فقط"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA تلقائي"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo تلقائي"</item>
+ <item msgid="370391313511477301">"CDMA بدون EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo فقط"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"عام"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA فقط"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"بطاقة RUIM/شريحة SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"عام"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 4087215..ea25f18 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"إنشاء"</string>
<string name="allow" msgid="3349662621170855910">"سماح"</string>
<string name="deny" msgid="6947806159746484865">"رفض"</string>
- <string name="dlg_close" msgid="7471087791340790015">"إغلاق"</string>
<string name="device_info_default" msgid="7847265875578739287">"غير معروف"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="zero">لا يفصلك الآن عن الوصول إلى مرحلة مطوري البرامج أي خطوة (<xliff:g id="STEP_COUNT_1">%1$d</xliff:g>).</item>
@@ -374,7 +373,7 @@
<string name="location_settings_title" msgid="1369675479310751735">"الموقع"</string>
<string name="location_settings_master_switch_title" msgid="3560242980335542411">"استخدام الموقع الجغرافي"</string>
<string name="account_settings_title" msgid="626177544686329806">"الحسابات"</string>
- <string name="security_settings_title" msgid="4918904614964215087">"الحماية والموقع"</string>
+ <string name="security_settings_title" msgid="4918904614964215087">"الأمان والموقع الجغرافي"</string>
<string name="encryption_and_credential_settings_title" msgid="6514904533438791561">"التشفير وبيانات الاعتماد"</string>
<string name="encryption_and_credential_settings_summary" product="default" msgid="8721883002237981248">"تم تشفير الهاتف"</string>
<string name="decryption_settings_summary" product="default" msgid="5671817824042639849">"الهاتف ليس مشفّرًا."</string>
@@ -952,6 +951,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 غيغاهرتز"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"اختر نطاقًا واحدًا على الأقل لنقطة اتصال Wi‑Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"إعدادات IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"الخصوصية"</string>
<string name="wifi_shared" msgid="844142443226926070">"المشاركة مع مستخدمي الجهاز الآخرين"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(لم يتم التغيير)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"يُرجى التحديد"</string>
@@ -1269,6 +1269,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"لا يمكن تغيير رمز PIN.\nيحتمل أن يكون رمز PIN غير صحيح."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"تم تغيير رمز PIN لبطاقة SIM بنجاح"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"لا يمكن تغيير حالة تأمين شريحة SIM.\nيحتمل أن يكون رمز PIN غير صحيح."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"يتعذَّر إيقاف رقم التعريف الشخصي."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"يتعذَّر تفعيل رقم التعريف الشخصي."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"موافق"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"إلغاء"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"تم العثور على بطاقات SIM متعددة"</string>
@@ -1308,8 +1310,8 @@
<string name="storage_settings" msgid="4211799979832404953">"التخزين"</string>
<string name="storage_usb_settings" msgid="7293054033137078060">"التخزين"</string>
<string name="storage_settings_title" msgid="8746016738388094064">"إعدادات وحدة التخزين"</string>
- <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"إلغاء تركيب وحدة تخزين USB، وعرض سعة التخزين المتاحة"</string>
- <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"إلغاء تحميل بطاقة SD، عرض سعة التخزين المتاحة"</string>
+ <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"إلغاء تركيب وحدة تخزين USB، وعرض مساحة التخزين المتاحة"</string>
+ <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"إلغاء تحميل بطاقة SD، عرض مساحة التخزين المتاحة"</string>
<string name="imei_multi_sim" msgid="6387012961838800539">"IMEI (المنفذ %1$d لشريحة SIM)"</string>
<string name="status_number" product="tablet" msgid="1138837891091222272">"MDN (رقم دليل الجوال)"</string>
<string name="status_number" product="default" msgid="5948892105546651296">"رقم الهاتف"</string>
@@ -1393,7 +1395,7 @@
<string name="storage_menu_set_up" msgid="4263294929451685366">"إعداد"</string>
<string name="storage_menu_explore" msgid="4637496051816521560">"استكشاف"</string>
<string name="storage_menu_free" msgid="6386070442027135427">"إخلاء بعض المساحة"</string>
- <string name="storage_menu_manage" msgid="5914482953856430780">"إدارة سعة التخزين"</string>
+ <string name="storage_menu_manage" msgid="5914482953856430780">"إدارة مساحة التخزين"</string>
<string name="storage_title_usb" msgid="679612779321689418">"اتصال USB بالكمبيوتر"</string>
<string name="usb_connection_category" msgid="7805945595165422882">"اتصال كـ"</string>
<string name="usb_mtp_title" msgid="3399663424394065964">"جهاز الوسائط (MTP)"</string>
@@ -1403,7 +1405,7 @@
<string name="usb_midi_title" msgid="3069990264258413994">"MIDI"</string>
<string name="usb_midi_summary" msgid="539169474810956358">"للسماح للتطبيقات التي تمكّن MIDI بالعمل عبر USB باستخدام برامج MIDI على الكمبيوتر."</string>
<string name="storage_other_users" msgid="808708845102611856">"مستخدمون آخرون"</string>
- <string name="storage_internal_title" msgid="690771193137801021">"سعة التخزين للجهاز"</string>
+ <string name="storage_internal_title" msgid="690771193137801021">"مساحة التخزين للجهاز"</string>
<string name="storage_external_title" msgid="3433462910096848696">"وحدة تخزين محمولة"</string>
<string name="storage_volume_summary" msgid="7023441974367853372">"تم استخدام <xliff:g id="USED">%1$s</xliff:g> من <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
<string name="storage_size_large" msgid="5691585991420946254">"<xliff:g id="NUMBER">^1</xliff:g>"<small><small>" <xliff:g id="UNIT">^2</xliff:g>"</small></small>""</string>
@@ -1434,7 +1436,7 @@
<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_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_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>
<string name="storage_wizard_init_external_title" msgid="4867326438945303598">"الاستخدام كوحدة تخزين محمولة"</string>
<string name="storage_wizard_init_external_summary" msgid="7476105886344565074">"لنقل الصور والوسائط الأخرى بين الأجهزة."</string>
@@ -1469,10 +1471,10 @@
<string name="storage_wizard_init_v2_title" msgid="8858395869710288372">"كيف ستستخدم <xliff:g id="NAME">^1</xliff:g>؟"</string>
<string name="storage_wizard_init_v2_internal_title" product="tablet" msgid="4315585580670552654">"الاستخدام كوحدة تخزين إضافية بالجهاز اللوحي"</string>
<string name="storage_wizard_init_v2_internal_summary" product="tablet" msgid="570443086512059390">"للتطبيقات والملفات والوسائط على هذا الجهاز اللوحي فقط"</string>
- <string name="storage_wizard_init_v2_internal_action" product="tablet" msgid="7760758592993284143">"سعة تخزين الجهاز اللوحي"</string>
+ <string name="storage_wizard_init_v2_internal_action" product="tablet" msgid="7760758592993284143">"مساحة تخزين الجهاز اللوحي"</string>
<string name="storage_wizard_init_v2_internal_title" product="default" msgid="8373070138732653456">"الاستخدام كوحدة تخزين إضافية بالهاتف"</string>
<string name="storage_wizard_init_v2_internal_summary" product="default" msgid="685194340141573218">"للتطبيقات والملفات والوسائط على هذا الهاتف فقط"</string>
- <string name="storage_wizard_init_v2_internal_action" product="default" msgid="904425171564310150">"سعة تخزين الهاتف"</string>
+ <string name="storage_wizard_init_v2_internal_action" product="default" msgid="904425171564310150">"مساحة تخزين الهاتف"</string>
<string name="storage_wizard_init_v2_or" msgid="1958295749349454436">"أو"</string>
<string name="storage_wizard_init_v2_external_title" msgid="3565348221712759463">"الاستخدام كوحدة تخزين محمولة"</string>
<string name="storage_wizard_init_v2_external_summary" msgid="801198071793584445">"لنقل الملفات والوسائط بين الأجهزة"</string>
@@ -1482,8 +1484,8 @@
<string name="storage_wizard_format_confirm_v2_body" msgid="4614199613500900975">"يجب تنسيق <xliff:g id="NAME_0">^1</xliff:g> لتخزين التطبيقات والملفات والوسائط. \n\nسيؤدي التنسيق إلى محو المحتوى الحالي على <xliff:g id="NAME_1">^2</xliff:g>. ولتجنّب فقد المحتوى، يمكنك نسخه احتياطيًا إلى <xliff:g id="NAME_2">^3</xliff:g> أو جهاز آخر."</string>
<string name="storage_wizard_format_confirm_v2_action" msgid="8258363472135537500">"تنسيق <xliff:g id="NAME">^1</xliff:g>"</string>
<string name="storage_wizard_migrate_v2_title" msgid="31406330052996898">"هل تريد نقل المحتوى إلى <xliff:g id="NAME">^1</xliff:g>؟"</string>
- <string name="storage_wizard_migrate_v2_body" product="tablet" msgid="4476553430145054781">"يمكنك نقل الملفات والوسائط وتطبيقات معيّنة إلى <xliff:g id="NAME">^1</xliff:g>. \n\nإخلاء مساحة قدرها <xliff:g id="SIZE">^2</xliff:g> من سعة التخزين بالجهاز اللوحي وتستغرق في الغالب <xliff:g id="DURATION">^3</xliff:g> تقريبًا."</string>
- <string name="storage_wizard_migrate_v2_body" product="default" msgid="744760728669284385">"يمكنك نقل الملفات والوسائط وتطبيقات معيّنة إلى <xliff:g id="NAME">^1</xliff:g>. \n\nستؤدي عملية النقل هذه إلى إخلاء مساحة قدرها <xliff:g id="SIZE">^2</xliff:g> من سعة التخزين بالهاتف وتستغرق في الغالب <xliff:g id="DURATION">^3</xliff:g> تقريبًا."</string>
+ <string name="storage_wizard_migrate_v2_body" product="tablet" msgid="4476553430145054781">"يمكنك نقل الملفات والوسائط وتطبيقات معيّنة إلى <xliff:g id="NAME">^1</xliff:g>. \n\nإخلاء مساحة قدرها <xliff:g id="SIZE">^2</xliff:g> من مساحة التخزين بالجهاز اللوحي وتستغرق في الغالب <xliff:g id="DURATION">^3</xliff:g> تقريبًا."</string>
+ <string name="storage_wizard_migrate_v2_body" product="default" msgid="744760728669284385">"يمكنك نقل الملفات والوسائط وتطبيقات معيّنة إلى <xliff:g id="NAME">^1</xliff:g>. \n\nستؤدي عملية النقل هذه إلى إخلاء مساحة قدرها <xliff:g id="SIZE">^2</xliff:g> من مساحة التخزين بالهاتف وتستغرق في الغالب <xliff:g id="DURATION">^3</xliff:g> تقريبًا."</string>
<string name="storage_wizard_migrate_v2_checklist" msgid="1239103359606165360">"أثناء النقل:"</string>
<string name="storage_wizard_migrate_v2_checklist_media" msgid="7176991995007075843">"تجنّب إزالة <xliff:g id="NAME">^1</xliff:g>"</string>
<string name="storage_wizard_migrate_v2_checklist_apps" msgid="3671266712947078734">"لن تعمل بعض التطبيقات"</string>
@@ -1497,8 +1499,8 @@
<string name="storage_wizard_slow_v2_start_over" msgid="4126873669723115805">"البدء من جديد"</string>
<string name="storage_wizard_slow_v2_continue" msgid="49399942893518218">"متابعة"</string>
<string name="storage_wizard_ready_v2_external_body" msgid="11937346870534608">"يمكنك نقل محتوى إلى <xliff:g id="NAME">^1</xliff:g>"</string>
- <string name="storage_wizard_ready_v2_internal_body" msgid="4658433206901211269">"لنقل المحتوى إلى <xliff:g id="NAME">^1</xliff:g>، انتقِل إلى "<b>"الإعدادات > سعة التخزين"</b></string>
- <string name="storage_wizard_ready_v2_internal_moved_body" msgid="6239886818487538806">"تمّ نقل المحتوى إلى <xliff:g id="NAME_0">^1</xliff:g>. \n\nلإدارة <xliff:g id="NAME_1">^2</xliff:g>، انتقِل إلى "<b>"الإعدادات > سعة التخزين"</b>"."</string>
+ <string name="storage_wizard_ready_v2_internal_body" msgid="4658433206901211269">"لنقل المحتوى إلى <xliff:g id="NAME">^1</xliff:g>، انتقِل إلى "<b>"الإعدادات > مساحة التخزين"</b></string>
+ <string name="storage_wizard_ready_v2_internal_moved_body" msgid="6239886818487538806">"تمّ نقل المحتوى إلى <xliff:g id="NAME_0">^1</xliff:g>. \n\nلإدارة <xliff:g id="NAME_1">^2</xliff:g>، انتقِل إلى "<b>"الإعدادات > مساحة التخزين"</b>"."</string>
<string name="battery_status_title" msgid="9159414319574976203">"حالة البطارية"</string>
<string name="battery_level_title" msgid="2965679202786873272">"مستوى البطارية"</string>
<string name="apn_settings" msgid="3743170484827528406">"أسماء نقاط الوصول"</string>
@@ -1798,7 +1800,7 @@
<string name="install_text" msgid="884360662922471113">"تثبيت"</string>
<string name="disable_text" msgid="6544054052049395202">"إيقاف"</string>
<string name="enable_text" msgid="9217362512327828987">"تفعيل"</string>
- <string name="clear_user_data_text" msgid="355574089263023363">"مسح سعة تخزين"</string>
+ <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>
@@ -1839,7 +1841,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>
@@ -1874,7 +1876,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>
@@ -2587,10 +2589,10 @@
<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" msgid="7482834776510188134">"سيؤدي تفعيل تطبيق المشرف إلى السماح لتطبيق \"<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="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="sound_category_sound_title" msgid="1488759370067953996">"إعدادات عامة"</string>
@@ -3083,7 +3085,6 @@
<item quantity="other">عرض %d عنصر مخفي</item>
<item quantity="one">عرض %d عنصر مخفي</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"تصغير"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"الشبكة والإنترنت"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"الجوّال"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"استخدام البيانات"</string>
@@ -3153,6 +3154,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"مظهر مُعتِم"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"خطأ"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"العرض على الشاشة، عرض شاشة التأمين"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"إشعار شاشة التأمين"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"وجه"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"بصمة الإصبع"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"تعتيم الشاشة، شاشة تعمل باللمس، بطارية، سطوع ذكي، سطوع ديناميكي"</string>
@@ -3639,9 +3641,9 @@
<string name="storage_type_external" msgid="7738894330670001898">"وحدة تخزين خارجية"</string>
<string name="app_data_usage" msgid="7942375313697452803">"استخدام التطبيقات للبيانات"</string>
<string name="data_summary_format" msgid="6213211533341068366">"تم استخدام <xliff:g id="SIZE">%1$s</xliff:g> منذ <xliff:g id="DATE">%2$s</xliff:g>"</string>
- <string name="storage_used" msgid="7128074132917008743">"سعة التخزين المستخدمة"</string>
+ <string name="storage_used" msgid="7128074132917008743">"مساحة التخزين المستخدمة"</string>
<string name="change" msgid="6657848623929839991">"تغيير"</string>
- <string name="change_storage" msgid="600475265207060436">"تغيير سعة التخزين"</string>
+ <string name="change_storage" msgid="600475265207060436">"تغيير مساحة التخزين"</string>
<string name="notifications_label" msgid="2872668710589600731">"الإشعارات"</string>
<string name="notifications_enabled" msgid="6983396130566021385">"تشغيل"</string>
<string name="notifications_enabled_with_info" msgid="5669544704839269901">"<xliff:g id="NOTIFICATIONS_SENT">%1$s</xliff:g> / <xliff:g id="NOTIFICATIONS_CATEGORIES_OFF">%2$s</xliff:g>"</string>
@@ -3738,7 +3740,7 @@
<string name="default_app" msgid="6864503001385843060">"(تلقائي)"</string>
<string name="system_app" msgid="9068313769550747372">"(النظام)"</string>
<string name="system_default_app" msgid="3091113402349739037">"(الإعداد التلقائي للنظام)"</string>
- <string name="apps_storage" msgid="4353308027210435513">"سعة تخزين التطبيقات"</string>
+ <string name="apps_storage" msgid="4353308027210435513">"مساحة تخزين التطبيقات"</string>
<string name="usage_access" msgid="5479504953931038165">"الدخول إلى الاستخدام"</string>
<string name="permit_usage_access" msgid="4012876269445832300">"السماح بالدخول إلى الاستخدام"</string>
<string name="app_usage_preference" msgid="7065701732733134991">"تفضيلات استخدام التطبيقات"</string>
@@ -3938,6 +3940,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"وحدة التخزين الداخلية: <xliff:g id="PERCENTAGE">%1$s</xliff:g> مستخدمة - <xliff:g id="FREE_SPACE">%2$s</xliff:g> فارغة"</string>
<string name="display_summary" msgid="6737806235882127328">"السكون بعد <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> من عدم النشاط"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"خلفية، سكون، حجم الخط"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"السكون بعد 10 دقائق من عدم النشاط"</string>
<string name="memory_summary" msgid="8080825904671961872">"تم استخدام متوسط ذاكرة بحجم <xliff:g id="USED_MEMORY">%1$s</xliff:g> من إجمالي <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"تم تسجيل الدخول باسم <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4195,11 +4199,11 @@
<item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> ثانية</item>
<item quantity="one">ثانية واحدة</item>
</plurals>
- <string name="automatic_storage_manager_settings" msgid="7819434542155181607">"إدارة سعة التخزين"</string>
- <string name="automatic_storage_manager_text" msgid="4562950476680600604">"للمساعدة في تفريغ مساحة التخزين، يزيل مدير سعة التخزين من جهاز الصور والفيديوهات التي تم الاحتفاظ بنسخة احتياطية منها."</string>
+ <string name="automatic_storage_manager_settings" msgid="7819434542155181607">"إدارة مساحة التخزين"</string>
+ <string name="automatic_storage_manager_text" msgid="4562950476680600604">"للمساعدة في تفريغ مساحة التخزين، يزيل مدير مساحة التخزين من جهاز الصور والفيديوهات التي تم الاحتفاظ بنسخة احتياطية منها."</string>
<string name="automatic_storage_manager_days_title" msgid="2017913896160914647">"إزالة الصور والفيديوهات"</string>
- <string name="automatic_storage_manager_preference_title" msgid="5753702798151073383">"مدير سعة التخزين"</string>
- <string name="automatic_storage_manager_master_switch_title" msgid="6792996736190821417">"استخدام مدير سعة التخزين"</string>
+ <string name="automatic_storage_manager_preference_title" msgid="5753702798151073383">"مدير مساحة التخزين"</string>
+ <string name="automatic_storage_manager_master_switch_title" msgid="6792996736190821417">"استخدام مدير مساحة التخزين"</string>
<string name="deletion_helper_automatic_title" msgid="6605660435498272520">"تلقائي"</string>
<string name="deletion_helper_manual_title" msgid="7947432164411214029">"يدوي"</string>
<string name="deletion_helper_preference_title" msgid="5271510052022285884">"إخلاء بعض المساحة الآن"</string>
@@ -4250,7 +4254,7 @@
<string name="web_action_section_title" msgid="7364647086538399136">"التطبيقات الفورية"</string>
<string name="instant_apps_settings" msgid="8827777916518348213">"تفضيلات التطبيقات الفورية"</string>
<string name="domain_url_section_title" msgid="7046835219056428883">"التطبيقات المثبَّتة"</string>
- <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"تتم إدارة سعة التخزين لجهازك الآن عن طريق مدير سعة التخزين"</string>
+ <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"تتم إدارة مساحة التخزين لجهازك الآن عن طريق مدير مساحة التخزين"</string>
<string name="account_for_section_header" msgid="5356566418548737121">"حسابات <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
<string name="configure_section_header" msgid="7391183586410814450">"تهيئة"</string>
<string name="auto_sync_account_title" msgid="898796354710116383">"مزامنة البيانات تلقائيًا"</string>
@@ -4365,7 +4369,7 @@
<string name="storage_other_apps" msgid="5524321740031718083">"تطبيقات أخرى"</string>
<string name="storage_files" msgid="8581083146777364063">"الملفات"</string>
<string name="storage_size_large_alternate" msgid="3395208658399637645">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" "<font size="20">"<xliff:g id="UNIT">^2</xliff:g>"</font></small>""</string>
- <string name="storage_volume_total" msgid="3499221850532701342">"سعة التخزين المستخدمة من أصل <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
+ <string name="storage_volume_total" msgid="3499221850532701342">"مساحة التخزين المستخدمة من أصل <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"مستخدمة"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"مسح التطبيق"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"هل تريد إزالة هذا التطبيق الفوري؟"</string>
@@ -4388,11 +4392,11 @@
<string name="default_theme" msgid="7085644992078579076">"تلقائي"</string>
<string name="show_operator_name_title" msgid="805135053530442951">"اسم الشبكة"</string>
<string name="show_operator_name_summary" msgid="5962567590205757550">"عرض اسم الشبكة في شريط الحالة"</string>
- <string name="storage_manager_indicator" msgid="1516810749625915020">"إدارة سعة التخزين: <xliff:g id="STATUS">^1</xliff:g>"</string>
+ <string name="storage_manager_indicator" msgid="1516810749625915020">"إدارة مساحة التخزين: <xliff:g id="STATUS">^1</xliff:g>"</string>
<string name="storage_manager_indicator_off" msgid="7488057587180724388">"إيقاف"</string>
<string name="storage_manager_indicator_on" msgid="8625551710194584733">"تشغيل"</string>
<string name="install_type_instant" msgid="3174425974536078647">"تطبيق فوري"</string>
- <string name="automatic_storage_manager_deactivation_warning" msgid="5605210730828410482">"هل تريد إيقاف مدير سعة التخزين؟"</string>
+ <string name="automatic_storage_manager_deactivation_warning" msgid="5605210730828410482">"هل تريد إيقاف مدير مساحة التخزين؟"</string>
<string name="storage_movies_tv" msgid="5498394447562086890">"تطبيقات الأفلام والتلفزيون"</string>
<string name="carrier_provisioning" msgid="4398683675591893169">"معلومات توفير خدمة مشغل شبكة الجوال"</string>
<string name="trigger_carrier_provisioning" msgid="3434865918009286187">"بدء توفير خدمة مشغل شبكة الجوال"</string>
@@ -4446,10 +4450,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"تفاصيل الشبكة"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"اسم جهازك مرئي للتطبيقات على هاتفك. ويمكن أيضًا أن يراه أشخاص آخرون عند الاتصال بأجهزة بلوتوث أو إعداد نقطة اتصال Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"الأجهزة"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"لوحة التكرار العالي"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"تفعيل لوحة التكرار العالي الافتراضية"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"جميع الإعدادات"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"إعداداتك"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"اقتراحات"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"بيانات CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"بيانات CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"اختيار شبكة"</string>
@@ -4461,4 +4463,76 @@
<string name="network_query_error" msgid="7487714485362598410">"تعذّر العثور على شبكات. حاوِل مرة أخرى."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(محظورة)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"ليست هناك شريحة SIM."</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"اتصال متقدِّم"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"وضع الشبكة المُفضَّل: تمّ تفضيل WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"وضع الشبكة المُفضَّل: GSM فقط"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"وضع الشبكة المُفضَّل: WCDMA فقط"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"وضع الشبكة المُفضَّل: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"وضع الشبكة المُفضَّل: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"وضع الشبكة المُفضَّل: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"وضع الشبكة المُفضَّل: CDMA فقط"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"وضع الشبكة المُفضَّل: EvDo فقط"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"وضع الشبكة المُفضَّل: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"وضع الشبكة المُفضَّل: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"وضع الشبكة المُفضَّل: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"وضع الشبكة المُفضَّل: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"وضع الشبكة المُفضَّل: عام"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"وضع الشبكة المُفضَّل: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"وضع الشبكة المُفضَّل: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"وضع الشبكة المُفضَّل: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"وضع الشبكة المُفضَّل: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"وضع الشبكة المُفضَّل: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"وضع الشبكة المُفضَّل: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"وضع الشبكة المُفضَّل: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"وضع الشبكة المُفضَّل: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"وضع الشبكة المُفضَّل: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"وضع الشبكة المُفضَّل: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"وضع الشبكة المُفضَّل: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"وضع الشبكة المُفضَّل: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"وضع الشبكة المُفضَّل: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (مُستحسَن)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"الجيل الرابع (مُستحسَن)"</string>
+ <string name="network_global" msgid="959947774831178632">"عام"</string>
+ <string name="label_available" msgid="1731547832803057893">"الشبكات المُتاحة"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"جارٍ البحث…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"جارٍ التسجيل على <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"لا تسمح شريحة SIM بالاتصال بهذه الشبكة."</string>
+ <string name="connect_later" msgid="978991102125216741">"يتعذَّر الاتصال بهذه الشبكة في الوقت الحالي. حاول مرة أخرى لاحقًا."</string>
+ <string name="registration_done" msgid="4573820010512184521">"مُسجَّلة على الشبكة."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"اختيار الشبكة تلقائيًا"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"إعدادات مشغّل شبكة الجوال"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"إعداد خدمة البيانات"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"بيانات الجوّال"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"الوصول إلى البيانات باستخدام شبكة الجوّال"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"نوع الشبكة المُفضَّل"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"تغيير وضع تشغيل الشبكة"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"نوع الشبكة المُفضَّل"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"مشغّل شبكة جوّال"</string>
+ <string name="call_category" msgid="8108654745239563833">"الاتصال"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"مكالمة فيديو باستخدام مشغّل شبكة الجوال"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"اختيار النظام"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"تغيير وضع التجوال عبر CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"اختيار النظام"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"الشبكة"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"الشبكة"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"اشتراك CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"تغيير بين \"بطاقة RUIM/شريحة SIM\" وNV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"اشتراك"</string>
+ <string name="register_automatically" msgid="518185886971595020">"التسجيل التلقائي…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"هل تريد السماح بتجوال البيانات؟"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"راجع مقدِّم الشبكة للتعرُّف على الأسعار."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"استخدام بيانات التطبيق"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"وضع الشبكة <xliff:g id="NETWORKMODEID">%1$d</xliff:g> غير صالح، وعليك تجاهله."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"عدم التوفُّر عند الربط بمشغّل شبكة الجوّال <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"عرض المزيد"</string>
+ <string name="see_less" msgid="1250265310929558370">"عرض عناصر أقل"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="zero">تمَّ توصيل <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> جهاز.</item>
+ <item quantity="two">تمَّ توصيل جهازَين (<xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g>).</item>
+ <item quantity="few">تمَّ توصيل <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> أجهزة.</item>
+ <item quantity="many">تمَّ توصيل <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> جهازًا.</item>
+ <item quantity="other">تمَّ توصيل <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> جهاز.</item>
+ <item quantity="one">تمَّ توصيل جهاز واحد (<xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g>).</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"ليست هناك أجهزة متصلة."</string>
</resources>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
index 64fd3f1..46d9fa8 100644
--- a/res/values-as/arrays.xml
+++ b/res/values-as/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"মিটাৰ কৰা হিছাপে আচৰণ কৰক"</item>
<item msgid="2266114985518865625">"নিৰিখ অনিৰ্দিষ্ট বুলি গণ্য কৰক"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"ডিফ’ল্ট (যাদৃচ্ছিক MAC ব্যৱহাৰ কৰক)"</item>
+ <item msgid="5398461510512959597">"বিশ্বাসী"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"নহয়"</item>
<item msgid="3863157480502955888">"হয়"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"ডিবাগ"</item>
<item msgid="5286514712714822064">"ভাৰ্ব\'ছ"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"কেৱল গৃহ পৃষ্ঠাত"</item>
+ <item msgid="5034813753274486448">"স্বয়ংক্ৰিয়"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA অগ্ৰাধিকাৰপ্ৰাপ্ত"</item>
+ <item msgid="807926878589867564">"কেৱল GSM"</item>
+ <item msgid="488474605709912156">"কেৱল WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA স্বয়ংক্ৰিয়"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo স্বয়ংক্ৰিয়"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"কেৱল EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"গোলকীয়"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"কেৱল TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"০"</item>
+ <item msgid="8113210705878681550">"১"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"গোলকীয়"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"১০"</item>
+ <item msgid="4187053702071521357">"৮"</item>
+ <item msgid="5461421967189969022">"৯"</item>
+ </string-array>
</resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index b5cf811..393c893 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"সৃষ্টি কৰক"</string>
<string name="allow" msgid="3349662621170855910">"অনুমতি দিয়ক"</string>
<string name="deny" msgid="6947806159746484865">"প্ৰত্যাখ্যান কৰক"</string>
- <string name="dlg_close" msgid="7471087791340790015">"বন্ধ কৰক"</string>
<string name="device_info_default" msgid="7847265875578739287">"অজ্ঞাত"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">আপুনি এতিয়া বিকাশকৰ্তা হোৱাৰ পৰা<xliff:g id="STEP_COUNT_1">%1$d</xliff:g> পদক্ষেপ দূৰত।</item>
@@ -178,8 +177,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"পূৰ্বৱৰ্তী সংযোগ হোৱা ডিভাইচবোৰ"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"আগতে সংযোগ কৰা"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ব্লুটুথ অন কৰা হ\'ল"</string>
- <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
- <skip />
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"সকলো চাওক"</string>
<string name="date_and_time" msgid="9062980487860757694">"তাৰিখ আৰু সময়"</string>
<string name="choose_timezone" msgid="1362834506479536274">"সময় মণ্ডল নিৰ্বাচন কৰক"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -895,6 +893,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"৫.০ গিগাহাৰ্টজ"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"ৱাই-ফাই হ\'টস্প\'টৰ বাবে কমেও এটা বেণ্ড বাছনি কৰক:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"আইপি ছেটিংসমূহ"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"গোপনীয়তা"</string>
<string name="wifi_shared" msgid="844142443226926070">"ডিভাইচৰ অন্য ব্যৱহাৰকাৰীৰ সৈতে শ্বেয়াৰ কৰক"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(সালসলনি নাই)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"অনুগ্ৰহ কৰি বাছনি কৰক"</string>
@@ -1208,6 +1207,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"পিন সলনি কৰিব পৰা নহ\'ল৷\nসম্ভৱতঃ ভুল পিন নম্বৰ দিয়া হৈছে৷"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"ছিমৰ পিন সফলতাৰে সলনি কৰা হ\'ল"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"ছিম কাৰ্ড লক কৰা অৱস্থাটো সলনি কৰিব পৰা নহ\'ল৷\nসম্ভৱতঃ ভুল পিন নম্বৰ দিয়া হৈছে৷"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"পিন অক্ষম কৰিব নোৱাৰি।"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"পিন সক্ষম কৰিব নোৱাৰি।"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"ঠিক"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"বাতিল কৰক"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"একাধিক ছিম কাৰ্ড পোৱা গৈছে"</string>
@@ -2934,7 +2935,6 @@
<item quantity="one">লুকুৱাই থোৱা বস্তু %d দেখুৱাওক</item>
<item quantity="other">লুকুৱাই থোৱা বস্তু %d দেখুৱাওক</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"সংকুচিত কৰক"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"নেটৱৰ্ক আৰু ইণ্টাৰনেট"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ম’বাইল"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ডেটাৰ ব্যৱহাৰ"</string>
@@ -3005,6 +3005,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"গাঢ় ৰঙৰ থীম"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"বাগ"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"স্তিমিত ডিছপ্লে, বন্ধ স্ক্ৰীণৰ ডিছপ্লে"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"লক স্ক্ৰীণৰ জাননী"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"চেহেৰা"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"ফিংগাৰপ্ৰিণ্ট"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"অনুজ্জ্বল স্ক্ৰীণ, টাচ্চস্ক্ৰীণ, বেটাৰি, স্মার্ট উজ্জ্বলতা, গতিশীল উজ্জ্বলতা"</string>
@@ -3717,6 +3718,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"আভ্যন্তৰিণ সঞ্চয়াগাৰ: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ব্যৱহৃত - <xliff:g id="FREE_SPACE">%2$s</xliff:g> খালী"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> নিষ্ক্ৰিয় হৈ থাকিলে সুপ্ত কৰক"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"ৱালপেপাৰ, নিদ্ৰা, ফ\'ণ্টৰ আকাৰ"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"১০মিনিট ধৰি কোনো কাৰ্যকলাপ নহ\'লে সুপ্ত কৰক"</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>
@@ -4166,10 +4169,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"নেটৱৰ্কৰ সবিশেষ"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"আপোনাৰ ডিভাইচটোৰ নাম আপোনাৰ ফ\'নটোত থকা এপসমূহৰ বাবে দৃশ্যমান। আপুনি ব্লুটুথ ডিভাইচৰ সৈতে সংযোগ কৰোঁতে বা ৱাই-ফাই হ\'টস্প\'ট ছেট আপ কৰোঁতেও নামটো অইনে দেখা পাব পাৰে।"</string>
<string name="devices_title" msgid="7701726109334110391">"ডিভাইচসমূহ"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"উচ্চ ফ্ৰিকুএন্সী পেনেল"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ভাৰ্শ্বুৱল উচ্চ ফ্ৰিকুএন্সী পেনেল সক্ষম কৰক"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"সকলো ছেটিং"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"আপোনাৰ ছেটিংসমূহ"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"পৰামৰ্শ"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ডেটা"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ডেটা"</string>
<string name="choose_network_title" msgid="5702586742615861037">"নেটৱৰ্ক বাছনি কৰক"</string>
@@ -4181,4 +4182,71 @@
<string name="network_query_error" msgid="7487714485362598410">"নেটৱৰ্ক বিচাৰি পোৱা নগ\'ল। আকৌ চেষ্টা কৰক।"</string>
<string name="forbidden_network" msgid="4626592887509826545">"(নিষিদ্ধ)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"কোনো ছিম কাৰ্ড নাই"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"উন্নত কলিং সুবিধা"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: WCDMA অগ্ৰাধিকাৰপ্ৰাপ্ত"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: GSM মাত্ৰ"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: WCDMA মাত্ৰ"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: CDMA মাত্ৰ"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: EvDo মাত্ৰ"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: গোলকীয়"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম\'ড: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (চুপাৰিছ কৰা)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (চুপাৰিছ কৰা)"</string>
+ <string name="network_global" msgid="959947774831178632">"গোলকীয়"</string>
+ <string name="label_available" msgid="1731547832803057893">"উপলব্ধ নেটৱৰ্ক"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"সন্ধান চলি আছে…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g>ত পঞ্জীয়ন কৰি থকা হৈছে…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"আপোনাৰ ছিম কাৰ্ডখনে এই নেটৱৰ্কটোৰ সৈতে সংযোগ কৰিবলৈ অনুমতি নিদিয়ে।"</string>
+ <string name="connect_later" msgid="978991102125216741">"এই মুহূৰ্তত এই নেটৱৰ্কটোৰ সৈতে সংযোগ কৰিব নোৱাৰি। পিছত আকৌ চেষ্টা কৰক।"</string>
+ <string name="registration_done" msgid="4573820010512184521">"নেটৱৰ্কত পঞ্জীয়ন কৰা হ\'ল।"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"স্বয়ংক্ৰিয়ভাৱে নেটৱৰ্ক বাছনি কৰক"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"বাহকৰ ছেটিংসমূহ"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"ডেটা সেৱা ছেট আপ কৰক"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"ম\'বাইল ডেটা"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"ম\'বাইল নেটৱৰ্ক ব্যৱহাৰ কৰি ডেটা এক্সেছ কৰক"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ প্ৰকাৰ"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"নেটৱৰ্ক অপাৰেটিং ম\'ডটো সলনি কৰক"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ প্ৰকাৰ"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"বাহক"</string>
+ <string name="call_category" msgid="8108654745239563833">"কল ছেটিং"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"বাহকৰ ভিডিঅ\' কলিং"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"ছিষ্টেম বাছনি"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA ৰ\'মিং ম\'ড সলনি কৰক"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"ছিষ্টেম বাছনি"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"নেটৱৰ্ক"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"নেটৱৰ্ক"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA গ্ৰাহকভুক্তি"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM আৰু NVৰ মাজত সাল সলনি কৰক"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"গ্ৰাহকভুক্তি"</string>
+ <string name="register_automatically" msgid="518185886971595020">"স্বয়ংক্ৰিয় পঞ্জীয়ন…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"ডেটা ৰ\'মিঙত ব্যৱহাৰ কৰিবলৈ অনুমতি দিবনে?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"দাম জানিবলৈ আপোনাৰ বাহকৰ সৈতে যোগাযোগ কৰক।"</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"এপৰ ডেটা ব্যৱহাৰ"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"অমান্য নেটৱৰ্কৰ ম’ড <xliff:g id="NETWORKMODEID">%1$d</xliff:g>। উপেক্ষা কৰক।"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰিলে উপলব্ধ নহয়"</string>
+ <string name="see_more" msgid="5953815986207345223">"অধিক চাওক"</string>
+ <!-- no translation found for see_less (1250265310929558370) -->
+ <skip />
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-az/arrays.xml b/res/values-az/arrays.xml
index e14c413..122e384 100644
--- a/res/values-az/arrays.xml
+++ b/res/values-az/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Limitli olaraq qəbul edin"</item>
<item msgid="2266114985518865625">"Limitisiz olaraq qəbul edin"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Defolt (ixtiyari MAC-dan istifadə edin)"</item>
+ <item msgid="5398461510512959597">"Güvənli"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Xeyr"</item>
<item msgid="3863157480502955888">"Bəli"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Sazlama"</item>
<item msgid="5286514712714822064">"Verbose"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Yalnız daxili"</item>
+ <item msgid="5034813753274486448">"Avtomatik"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA seçilib"</item>
+ <item msgid="807926878589867564">"Yalnız GSM"</item>
+ <item msgid="488474605709912156">"Yalnız WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA avtomatik"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo avtomatik"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"Yalnız EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Qlobal"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"Yalnız TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Qlobal"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 2a12367..78abed9 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Yarat"</string>
<string name="allow" msgid="3349662621170855910">"İcazə verin"</string>
<string name="deny" msgid="6947806159746484865">"Rədd edin"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Qapadın"</string>
<string name="device_info_default" msgid="7847265875578739287">"Naməlum"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Tərtibatçı olmaqdan <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> addım uzaqsınız.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi‑Fi hotspotu üçün minimum bir bağlantı seçin:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP parametrləri"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Məxfilik"</string>
<string name="wifi_shared" msgid="844142443226926070">"Digər cihaz istifadəçiləri ilə paylaşın"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(dəyişilməyən)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Zəhmət olmasa, seçin"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PIN dəyişdirilə bilməz.\nBəlkə də PIN yanlışdır."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN uğurla dəyişdirildi"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"SIm kart kilid statusu dəyişdirilə bilmir.\nBəlkə PIN yanlışdır"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN-i deaktiv etmək mümkün deyil."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN-i aktiv etmək mümkün deyil."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Ləğv et"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Çoxsaylı SIM-lər tapıldı"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">%d gizli element göstərin</item>
<item quantity="one">%d gizli element göstərin</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Yığcamlaşdırın"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Şəbəkə və internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobil"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"data istifadəsi"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tünd tema"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"baq"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient displey, Kilid ekranı"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"kilid ekranı bildirişi"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"üz"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"barmaq izi"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"qara ekran, sensor ekran, batareya, yeni parlaqlıq, dinamik parlaqlıq"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Daxili yaddaş: <xliff:g id="PERCENTAGE">%1$s</xliff:g> istifadə olunub - <xliff:g id="FREE_SPACE">%2$s</xliff:g> boşdur"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> fəaliyyətsizlikdən sonra yuxu rejimi"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Divar kağızı, mürgü rejimi, şrift ölçüsü"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"10 dəqiqəlik fəaliyyətsizlikdən sonra yuxu rejiminə keçir"</string>
<string name="memory_summary" msgid="8080825904671961872">"Ümumi <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> yaddaşdan ortalama <xliff:g id="USED_MEMORY">%1$s</xliff:g> yaddaş istifadə olunub"</string>
<string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> kimi daxil olundu"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Şəbəkə məlumatları"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Cihazın adı telefondakı tətbiqlərdə görünəcək. Bluetooth cihazlarına qoşulduqda və ya Wi-Fi hotspotu ayarladıqda digərləri də onu görə bilər."</string>
<string name="devices_title" msgid="7701726109334110391">"Cihazlar"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Yüksək Tezlikli Panel"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Virtual Yüksək Tezlikli Paneli Aktiv Edin"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Bütün Ayarlar"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Ayarlarınız"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Təkliflər"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS Datası"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS Datası"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Şəbəkəni seçin"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Şəbəkə tapılmadı. Yenidən cəhd edin."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(qadağandır)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM kart yoxdur"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Qabaqcıl Zəng"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Tərcih edilmiş şəbəkə rejimi: WCDMA tərcih edilir"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Tərcih edilmiş şəbəkə rejimi: Yalnız GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Tərcih edilmiş şəbəkə rejimi: yalnız WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Tərcih edilmiş şəbəkə rejimi: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Tərcih edilmiş şəbəkə rejimi: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Tərcih edilmiş şəbəkə rejimi: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Tərcih edilmiş şəbəkə rejimi: CDMA only"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Tərcih edilmiş şəbəkə rejimi: yalnız EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Tərcih edilmiş şəbəkə rejimi: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Tərcih edilmiş şəbəkə rejimi: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Tərcih edilmiş şəbəkə rejimi: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Tərcih edilmiş şəbəkə rejimi: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Tərcih edilmiş şəbəkə rejimi: Qlobal"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Tərcih edilmiş şəbəkə rejimi: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Tərcih edilmiş şəbəkə rejimi: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Tərcih edilmiş şəbəkə rejimi: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Tərcih edilmiş şəbəkə rejimi: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Tərcih edilmiş şəbəkə rejimi: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Tərcih edilmiş şəbəkə rejimi: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Tərcih edilmiş şəbəkə rejimi: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Tərcih edilmiş şəbəkə rejimi: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Tərcih edilmiş şəbəkə rejimi: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Tərcih edilmiş şəbəkə rejimi: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Tərcih edilmiş şəbəkə rejimi: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Tərcih edilmiş şəbəkə rejimi: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Tərcih edilmiş şəbəkə rejimi: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (məsləhətlidir)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (məsləhətlidir)"</string>
+ <string name="network_global" msgid="959947774831178632">"Qlobal"</string>
+ <string name="label_available" msgid="1731547832803057893">"Əlçatan şəbəkələr"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Axtarılır..."</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> şəbəkəsində qeydiyyatdan keçirilir…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM kart bu şəbəkəyə qoşulmağa icazə vermir."</string>
+ <string name="connect_later" msgid="978991102125216741">"Hazırda bu şəbəkəyə qoşulmaq olmur. Sonra təkrar sınayın."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Şəbəkədə qeydiyyatlıdır."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Avtomatik olaraq şəbəkə seçin"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Operator ayarları"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Data xidmətini quraşdırın"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobil data"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Mobil şəbəkədən istifadə edərək dataya daxil olun"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Tərcih edilmiş şəbəkə növü"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Şəbəkə əməliyyat rejimini dəyişin"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Tərcih edilmiş şəbəkə növü"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operator"</string>
+ <string name="call_category" msgid="8108654745239563833">"Zəng edilir"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Operator video zəngi"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Sistem seçin"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA rouminq rejimini dəyişdirin"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Sistem seçin"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Şəbəkə"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Şəbəkə"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA abunəliyi"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM və NV-dən birini seçin"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"abunəlik"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Avtomatik qeydiyyat ..."</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Data rouminqinə icazə verilsin?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Qiymətlər üçün şəbəkə provayderi ilə yoxlayın."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Tətbiq data istifadəsi"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Yanlış Şəbəkə Rejimi <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. İqnor edin."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> ünvanına qoşulduqda əlçatan deyil"</string>
+ <string name="see_more" msgid="5953815986207345223">"Ətraflı"</string>
+ <string name="see_less" msgid="1250265310929558370">"Baxışı kiçildin"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> cihaz qoşuldu</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> cihaz qoşuldu</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Heç bir cihaz qoşulmayıb"</string>
</resources>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index 7493813..3a5900b 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Tretiraj kao mrežu sa ograničenjem"</item>
<item msgid="2266114985518865625">"Tretiraj kao mrežu bez ograničenja"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Podrazumevano (koristi nasumično izabranu MAC adresu)"</item>
+ <item msgid="5398461510512959597">"Pouzdano"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Ne"</item>
<item msgid="3863157480502955888">"Da"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Otkloni greške"</item>
<item msgid="5286514712714822064">"Detaljno"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Samo kućna"</item>
+ <item msgid="5034813753274486448">"Automatski"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA ima prednost"</item>
+ <item msgid="807926878589867564">"Samo GSM"</item>
+ <item msgid="488474605709912156">"Samo WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA automatski"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo automatski"</item>
+ <item msgid="370391313511477301">"CDMA bez EvDo-a"</item>
+ <item msgid="4678789463133969294">"Samo EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Globalna"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Samo TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Globalna"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 7e21c0b..63a319e 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Napravi"</string>
<string name="allow" msgid="3349662621170855910">"Dozvoli"</string>
<string name="deny" msgid="6947806159746484865">"Odbij"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Zatvori"</string>
<string name="device_info_default" msgid="7847265875578739287">"Nepoznato"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Treba da obavite još <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> korak da biste postali programer.</item>
@@ -907,6 +906,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Izaberite barem jedan opseg za Wi‑Fi hotspot:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP podešavanja"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privatnost"</string>
<string name="wifi_shared" msgid="844142443226926070">"Deli sa drugim korisnicima uređaja"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nepromenjeno)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Izaberite"</string>
@@ -1221,6 +1221,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Nije moguće promeniti PIN.\nMoguće je da je PIN netačan."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN je uspešno promenjen"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Nije moguće promeniti stanje zaključavanja SIM kartice.\nMoguće je da je PIN netačan."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Onemogućavanje PIN-a nije uspelo."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Omogućavanje PIN-a nije uspelo."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Potvrdi"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Otkaži"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Pronađeno je više SIM kartica"</string>
@@ -1297,7 +1299,7 @@
<string name="memory_media_usage" msgid="3738830697707880405">"Mediji"</string>
<string name="memory_downloads_usage" msgid="3755173051677533027">"Preuzimanja"</string>
<string name="memory_dcim_usage" msgid="558887013613822577">"Slike, video snimci"</string>
- <string name="memory_music_usage" msgid="1363785144783011606">"Audio (muzika, zvukovi zvona, potkastovi itd.)"</string>
+ <string name="memory_music_usage" msgid="1363785144783011606">"Audio (muzika, zvukovi zvona, potkasti itd.)"</string>
<string name="memory_media_misc_usage" msgid="6094866738586451683">"Druge datoteke"</string>
<string name="memory_media_cache_usage" msgid="6704293333141177910">"Keširani podaci"</string>
<string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Isklj. deljene memorije"</string>
@@ -2969,7 +2971,6 @@
<item quantity="few">Prikaži %d skrivene stavke</item>
<item quantity="other">Prikaži %d skrivenih stavki</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Skupi"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Mreža i internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilna mreža"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"potrošnja podataka"</string>
@@ -3039,6 +3040,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tamna tema"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"greška"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambijentalni ekran, prikaz na zaključanom ekranu"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"obaveštenje na zaključanom ekranu"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"lice"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"digitalni otisak"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"zatamniti ekran, dodirni ekran, baterija, pametna svetlina, dinamička svetlina"</string>
@@ -3767,6 +3769,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Interna memorija: <xliff:g id="PERCENTAGE">%1$s</xliff:g> je iskorišćeno – <xliff:g id="FREE_SPACE">%2$s</xliff:g> je slobodno"</string>
<string name="display_summary" msgid="6737806235882127328">"Pređi u režim spavanja posle <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Pozadina, režim spavanja, veličina fonta"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Prelazak u režim spavanja posle 10 minuta neaktivnosti"</string>
<string name="memory_summary" msgid="8080825904671961872">"U proseku je korišćeno <xliff:g id="USED_MEMORY">%1$s</xliff:g> od <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memorije"</string>
<string name="users_summary" msgid="1674864467098487328">"Prijavljeni ste kao <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4227,10 +4231,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Detalji o mreži"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Ime uređaja vide aplikacije na telefonu. Mogu da ga vide i drugi ljudi kad se povežete sa Bluetooth uređajima ili podesite Wi-Fi hotspot."</string>
<string name="devices_title" msgid="7701726109334110391">"Uređaji"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Ploča visoke frekvencije"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Omogućite virtuelnu ploču visoke frekvencije"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Sva podešavanja"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Podešavanja"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Predlozi"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS podaci"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS podaci"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Odaberite mrežu"</string>
@@ -4242,4 +4244,73 @@
<string name="network_query_error" msgid="7487714485362598410">"Nismo uspeli da pronađemo mreže. Probajte ponovo."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(zabranjeno)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Nema SIM kartice"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Napredno pozivanje"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Željeni režim mreže: WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Željeni režim mreže: samo GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Željeni režim mreže: samo WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Željeni režim mreže: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Željeni režim mreže: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Željeni režim mreže: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Željeni režim mreže: samo CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Željeni režim mreže: samo EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Željeni režim mreže: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Željeni režim mreže: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Željeni režim mreže: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Željeni režim mreže: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Željeni režim mreže: Globalno"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Željeni režim mreže: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Željeni mrežni režim: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Željeni režim mreže: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Željeni režim mreže: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Željeni režim mreže: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Željeni režim mreže: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Željeni režim mreže: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Željeni režim mreže: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Željeni režim mreže: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Željeni režim mreže: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Željeni režim mreže: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Željeni režim mreže: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Željeni režim mreže: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (preporučeno)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (preporučeno)"</string>
+ <string name="network_global" msgid="959947774831178632">"Globalna"</string>
+ <string name="label_available" msgid="1731547832803057893">"Dostupne mreže"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Pretražuje se…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registrujete se na mrežu <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM kartica ne dozvoljava vezu sa ovom mrežom."</string>
+ <string name="connect_later" msgid="978991102125216741">"Trenutno nije moguće povezati se sa ovom mrežom. Probajte ponovo kasnije."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registrovano na mreži."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Automatski izaberi mrežu"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Podešavanja operatera"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Podesite usl. prenosa podataka"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobilni podaci"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Koristi podatke preko mobilne mreže"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Željeni tip mreže"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Promena režima rada mreže"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Željeni tip mreže"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Mobilni operater"</string>
+ <string name="call_category" msgid="8108654745239563833">"Pozivanje"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Video pozivanje preko operatera"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Izbor sistema"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Promena režima CDMA rominga"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Izbor sistema"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Mreža"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Mreža"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA prijava"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Promenite mrežu sa RUIM/SIM na NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"prijava"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatska registracija..."</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Želite li da dozvolite prenos podataka u romingu?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Cene proverite kod mobilnog operatera."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Potrošnja podataka aplikacije"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Nevažeći režim mreže <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorišite."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nedostupno kada je uspostavljena veza sa operaterom <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Prikaži još"</string>
+ <string name="see_less" msgid="1250265310929558370">"Prikaži manje"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="one">Povezan je <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> uređaj</item>
+ <item quantity="few">Povezana su <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> uređaja</item>
+ <item quantity="other">Povezano je <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> uređaja</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Nema povezanih uređaja"</string>
</resources>
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
index ca7c7af..fdb8363 100644
--- a/res/values-be/arrays.xml
+++ b/res/values-be/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Лімітная"</item>
<item msgid="2266114985518865625">"Безлімітная"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Стандартны (пры выкарыстанні выпадковага MAC-адрасу)"</item>
+ <item msgid="5398461510512959597">"Давераны"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Не"</item>
<item msgid="3863157480502955888">"Так"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Наладзіць"</item>
<item msgid="5286514712714822064">"Падрабязна"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Толькі дамашнія сеткі"</item>
+ <item msgid="5034813753274486448">"Аўтаматычна"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Прыярытэт GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"Толькі GSM"</item>
+ <item msgid="488474605709912156">"Толькі WCDMA"</item>
+ <item msgid="1912421096218750039">"Аўтаматычны выбар GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"Аўтаматычны выбар CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"CDMA без EvDo"</item>
+ <item msgid="4678789463133969294">"Толькі EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Глабальная"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Толькі TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"R-UIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Глабальная"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 87ac9ed..85ef12b 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Стварыць"</string>
<string name="allow" msgid="3349662621170855910">"Дазволіць"</string>
<string name="deny" msgid="6947806159746484865">"Адмовіць"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Закрыць"</string>
<string name="device_info_default" msgid="7847265875578739287">"Невядома"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Зараз вы ў <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> кроку ад таго, каб стаць распрацоўшчыкам.</item>
@@ -922,6 +921,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 ГГц"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Выберыце як мінімум адзін дыяпазон для хот-спота Wi‑Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Налады IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Прыватнасць"</string>
<string name="wifi_shared" msgid="844142443226926070">"Падзяліцца з іншымі карыстальнікамі прылады"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(не зменена)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Калі ласка, выберыце"</string>
@@ -1238,6 +1238,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Немагчыма змян. PIN.\nМагч., няправ. PIN."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN-код SIM-карты паспяхова зменены"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Немагч. разблак. SIM.\nМагч., няправ. PIN."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Не ўдалося выключыць PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Не ўдалося ўключыць PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"ОК"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Скасаваць"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Знойдзена некалькі SIM-карт"</string>
@@ -1265,7 +1267,7 @@
<string name="hardware_revision" msgid="8893547686367095527">"Версія апаратнага забеспячэння"</string>
<string name="fcc_equipment_id" msgid="149114368246356737">"Iдэнтыфiкатар абсталявання"</string>
<string name="baseband_version" msgid="1848990160763524801">"Версія baseband"</string>
- <string name="kernel_version" msgid="9192574954196167602">"Вэрсія ядра"</string>
+ <string name="kernel_version" msgid="9192574954196167602">"Версія ядра"</string>
<string name="build_number" msgid="3075795840572241758">"Нумар зборкі"</string>
<string name="device_info_not_available" msgid="8062521887156825182">"Недаступны"</string>
<string name="device_status_activity_title" msgid="1411201799384697904">"Стан"</string>
@@ -3008,7 +3010,6 @@
<item quantity="many">Паказаць %d схаваных элементаў</item>
<item quantity="other">Паказаць %d схаванага элемента</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Згарнуць"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Сетка і інтэрнэт"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мабільная сетка"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"выкарыстанне трафіка"</string>
@@ -3078,6 +3079,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"цёмная тэма"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"памылка"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Аўтаматычнае ўключэнне экрана, экран блакіроўкі"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"апавяшчэнне экрана блакіроўкі"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"твар"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"адбітак пальца"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"зацямненне экрана, сэнсарны экран, акумулятар, разумная яркасць, дынамічная яркасць"</string>
@@ -3826,6 +3828,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Унутранае сховішча: <xliff:g id="PERCENTAGE">%1$s</xliff:g> занята – <xliff:g id="FREE_SPACE">%2$s</xliff:g> свабодна"</string>
<string name="display_summary" msgid="6737806235882127328">"Пераходзіць у рэжым сну пасля бяздзейнасці на працягу <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Шпалеры, рэжым сну, памер шрыфту"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Пераход у рэжым сну пасля бяздзейнасці на працягу 10 хвілін"</string>
<string name="memory_summary" msgid="8080825904671961872">"У сярэднім <xliff:g id="USED_MEMORY">%1$s</xliff:g> з <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> памяці выкарыстана"</string>
<string name="users_summary" msgid="1674864467098487328">"Вы ўвайшлі як <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4302,10 +4306,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Інфармацыя аб сетцы"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Назва вашай прылады даступная для праграм на вашым тэлефоне. Яе таксама будуць бачыць іншыя людзі, калі вы падключыцеся да прылад праз Bluetooth ці наладзіце хот-спот Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Прылады"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Высокачастотная панэль"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Уключыць віртуальную высокачастотную панэль"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Усе налады"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Вашы налады"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Прапановы"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Даныя CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Даныя CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Выбраць сетку"</string>
@@ -4317,4 +4319,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Не ўдалося знайсці сеткі. Паўтарыце спробу."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(забаронена)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Няма SIM-карты"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Пашыраныя магчымасці выкліку"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Прыярытэтны рэжым сеткі: пераважна WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Прыярытэтны рэжым сеткі: толькі GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Прыярытэтны рэжым сеткі: толькі WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Прыярытэтны рэжым сеткі: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Прыярытэтны рэжым сеткі: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Прыярытэтны рэжым сеткі: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Прыярытэтны рэжым сеткі: толькі CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Прыярытэтны рэжым сеткі: толькі EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Прыярытэтны рэжым сеткі: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Прыярытэтны рэжым сеткі: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Прыярытэтны рэжым сеткі: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Прыярытэтны рэжым сеткі: CDMA+LTE/EvDo"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Прыярытэтны рэжым сеткі: глабальная"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Прыярытэтны рэжым сеткі: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Прыярытэтны рэжым сеткі: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Прыярытэтны рэжым сеткі: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Прыярытэтны рэжым сеткі: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Прыярытэтны рэжым сеткі: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Прыярытэтны рэжым сеткі: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Прыярытэтны рэжым сеткі: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Прыярытэтны рэжым сеткі: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Прыярытэтны рэжым сеткі: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Прыярытэтны рэжым сеткі: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Прыярытэтны рэжым сеткі: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Прыярытэтны рэжым сеткі: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Прыярытэтны рэжым сеткі: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (рэкамендуецца)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (рэкамендуецца)"</string>
+ <string name="network_global" msgid="959947774831178632">"Глабальная"</string>
+ <string name="label_available" msgid="1731547832803057893">"Даступныя сеткі"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Ідзе пошук…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Выконваецца рэгістрацыя ў сетцы <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Ваша SIM-карта не дазваляе падключацца да гэтай сеткі."</string>
+ <string name="connect_later" msgid="978991102125216741">"Не ўдалося падключыцца да гэтай сеткі. Паўтарыце спробу пазней."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Зарэгістравана ў сетцы."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Выбіраць сетку аўтаматычна"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Налады аператара"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Налады перадачы даных"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Мабільная перадача даных"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Доступ да даных па мабільнай сетцы"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Прыярытэтны тып сеткі"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Змяніць рэжым работы сеткі"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Прыярытэтны тып сеткі"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Аператар"</string>
+ <string name="call_category" msgid="8108654745239563833">"Выклік"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Відэавыклікі праз аператара"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Выбар сістэмы"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Змяніць рэжым роўмінгу CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Выбар сістэмы"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Сетка"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Сетка"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Падпіска CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Пераключацца паміж R-UIM/SIM і NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"падпіска"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Выконваецца аўтаматычная рэгістрацыя…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Дазволіць перадачу даных у роўмінгу?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Высветліце цану ў свайго інтэрнэт-правайдара."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Выкарыстанне трафіка"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Несапраўдны рэжым сеткі <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ігнараваць."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Недаступна праз аператара \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
+ <string name="see_more" msgid="5953815986207345223">"Паказаць больш"</string>
+ <string name="see_less" msgid="1250265310929558370">"Паказаць менш"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index 9a65ae4..263561f 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Третиране като мрежа с отчитане"</item>
<item msgid="2266114985518865625">"Третиране като мрежа без отчитане"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"По подразбиране (използване на произволно генериран MAC адрес)"</item>
+ <item msgid="5398461510512959597">"Надеждно"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Не"</item>
<item msgid="3863157480502955888">"Да"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Отстраняване на грешки"</item>
<item msgid="5286514712714822064">"Подробно"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Само домашни мрежи"</item>
+ <item msgid="5034813753274486448">"Автоматично"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Предпочита се GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"Само GSM"</item>
+ <item msgid="488474605709912156">"Само WCDMA"</item>
+ <item msgid="1912421096218750039">"Авт. GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"Авт. CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"CDMA без EvDo"</item>
+ <item msgid="4678789463133969294">"Само EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Глобална мрежа"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Само TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Глобална мрежа"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 8f024cf..082273b 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Създаване"</string>
<string name="allow" msgid="3349662621170855910">"Разрешаване"</string>
<string name="deny" msgid="6947806159746484865">"Отказ"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Затваряне"</string>
<string name="device_info_default" msgid="7847265875578739287">"Неизвестно"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Вече сте на <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> стъпки от това, да бъдете програмист.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5 ГХц"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Изберете поне една честота за точката за достъп до Wi‑Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Настройки за IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Поверителност"</string>
<string name="wifi_shared" msgid="844142443226926070">"Споделяне с другите потребители на устройството"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(непроменени)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Моля, изберете"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"ПИН кодът не може да се промени.\nВъзможен неправилен ПИН."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"Успешна промяна на PIN за SIM карта"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Не може да се промени състоянието на заключване на SIM картата.\nВъзможен неправилен ПИН."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"ПИН кодът не може да бъде деактивиран."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"ПИН кодът не може да бъде активиран."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Отказ"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Открити са няколко SIM карти"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Показване на %d скрити елемента</item>
<item quantity="one">Показване на %d скрит елемент</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Свиване"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Мрежа и интернет"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мобилна мрежа"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"пренос на данни"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"тъмна тема"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"програмна грешка"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Дисплей, открояващ важни неща, дисплей на заключения екран"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"известие на заключения екран"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"лице"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"отпечатък"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"затъмняване на екрана, сензорен екран, батерия, интелигентна яркост, динамична яркост"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Вътрешно хранилище: Използвано място: <xliff:g id="PERCENTAGE">%1$s</xliff:g> – свободно място: <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"Преминаване в спящ режим след неактивност в продължение на <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Тапет, спящ режим, размер на шрифта"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Преминаване в спящ режим след 10-минутна неактивност"</string>
<string name="memory_summary" msgid="8080825904671961872">"Използвана памет: Средно <xliff:g id="USED_MEMORY">%1$s</xliff:g> от <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Влезли сте като <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Подробности за мрежата"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Името на устройството ви е видимо за приложенията на телефона ви. То може да се вижда и от други хора, когато се свържете с устройства с Bluetooth или настроите точка за достъп до Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Устройства"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Панел за висока честота"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Активиране на виртуалния панел за висока честота"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Всички настройки"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Вашите настройки"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Предложения"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Данни чрез CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Данни чрез CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Избиране на мрежа"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Не можаха да бъдат намерени мрежи. Опитайте отново."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(забранено)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Няма SIM карта"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Разширени обаждания"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Предпочитан режим на мрежата: Предпочита се WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Предпочитан режим на мрежата: Само GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Предпочитан режим на мрежата: Само WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Предпочитан режим на мрежата: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Предпочитан режим на мрежата: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Предпочитан режим на мрежата: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Предпочитан режим на мрежата: Само CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Предпочитан режим на мрежата: Само EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Предпочитан режим на мрежата: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Предпочитан режим на мрежата: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Предпочитан режим на мрежата: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Предпочитан режим на мрежата: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Предпочитан режим на мрежата: Глобална мрежа"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Предпочитан режим на мрежата: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Предпочитан мрежов режим: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Предпочитан режим на мрежата: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Предпочитан режим на мрежата: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Предпочитан режим на мрежата: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Предпочитан режим на мрежата: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Предпочитан режим на мрежата: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Предпочитан режим на мрежата: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Предпочитан режим на мрежата: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Предпочитан режим на мрежата: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Предпочитан режим на мрежата: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Предпочитан режим на мрежата: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Предпочитан режим на мрежата: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (препоръчително)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (препоръчително)"</string>
+ <string name="network_global" msgid="959947774831178632">"Глобална мрежа"</string>
+ <string name="label_available" msgid="1731547832803057893">"Налични мрежи"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Търси се…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Извършва се регистрация в(ъв) <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM картата ви не позволява връзка с тази мрежа."</string>
+ <string name="connect_later" msgid="978991102125216741">"В момента не може да се осъществи връзка с тази мрежа. Опитайте отново по-късно."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Извършена е регистрация в мрежа."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Автоматично избиране на мрежа"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Настройки за оператора"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Настройка на услугата за данни"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Мобилни данни"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Достъп до данните през мобилната мрежа"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Предпочитан тип мрежа"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Промяна на операционния режим на мрежата"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Предпочитан тип мрежа"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Оператор"</string>
+ <string name="call_category" msgid="8108654745239563833">"Обаждания"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Видеообаждания от оператора"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Избор на система"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Промяна на режима на роуминг на CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Избор на система"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Мрежа"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Мрежа"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Абонамент за CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Промяна между RUIM/SIM и NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"абонамент"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Регистрира се автоматично..."</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Да се разреши ли роуминг на данни?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"За цени се обърнете към оператора си."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Пренос на данни от приложенията"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Невалиден мрежов режим <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Пренебрегване."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Не е налице, когато е установена връзка с(ъс) <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Вижте още"</string>
+ <string name="see_less" msgid="1250265310929558370">"Преглед на по-малко"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other">Свързани са <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> устройства</item>
+ <item quantity="one">Свързано е <xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> устройство</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Няма свързани устройства"</string>
</resources>
diff --git a/res/values-bn/arrays.xml b/res/values-bn/arrays.xml
index d080ce0..5f6e72e 100644
--- a/res/values-bn/arrays.xml
+++ b/res/values-bn/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"মিটারিং চালু রাখুন"</item>
<item msgid="2266114985518865625">"মিটারিং এর দরকার নেই"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"ডিফল্ট (র্যান্ডমাইজ করা MAC ব্যবহার করুন)"</item>
+ <item msgid="5398461510512959597">"বিশ্বস্ত"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"না"</item>
<item msgid="3863157480502955888">"হ্যাঁ"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"ডিবাগ"</item>
<item msgid="5286514712714822064">"ভার্বোস"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"শুধুমাত্র হোমে"</item>
+ <item msgid="5034813753274486448">"অটোমেটিক"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA ব্যবহার করতে চাই"</item>
+ <item msgid="807926878589867564">"শুধুমাত্র GSM"</item>
+ <item msgid="488474605709912156">"শুধুমাত্র WCDMA"</item>
+ <item msgid="1912421096218750039">"অটোমেটিক GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"অটোমেটিক CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"EvDo ছাড়া CDMA"</item>
+ <item msgid="4678789463133969294">"শুধুমাত্র EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"গ্লোবাল"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"শুধুমাত্র TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/সিম"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"০"</item>
+ <item msgid="8113210705878681550">"১"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"গ্লোবাল"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"১০"</item>
+ <item msgid="4187053702071521357">"৮"</item>
+ <item msgid="5461421967189969022">"৯"</item>
+ </string-array>
</resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index f462535..cce0a9c 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"তৈরি করুন"</string>
<string name="allow" msgid="3349662621170855910">"অনুমতি দিন"</string>
<string name="deny" msgid="6947806159746484865">"অস্বীকার করুন"</string>
- <string name="dlg_close" msgid="7471087791340790015">"বন্ধ করুন"</string>
<string name="device_info_default" msgid="7847265875578739287">"অজানা"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">একজন ডেভেলপার হওয়া থেকে আপনি এখন <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> পদক্ষেপ দূরে রয়েছেন৷</item>
@@ -179,8 +178,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"আগে কানেক্ট করা ডিভাইস"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"আগে কানেক্ট করা"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ব্লুটুথ চালু হয়েছে"</string>
- <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
- <skip />
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"সবগুলি"</string>
<string name="date_and_time" msgid="9062980487860757694">"দিন ও তারিখ"</string>
<string name="choose_timezone" msgid="1362834506479536274">"সময় অঞ্চল বেছে নিন"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -893,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"৫.০ GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"ওয়াই-ফাই হটস্পটের জন্য অন্তত একটি ব্যান্ড বেছে নিন:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP সেটিংস"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"গোপনীয়তা"</string>
<string name="wifi_shared" msgid="844142443226926070">"অন্য ডিভাইস ব্যবহারকারীদের সাথে শেয়ার করুন"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(অপরিবর্তিত)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"অনুগ্রহ করে বেছে নিন"</string>
@@ -1206,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"পিন পরিবর্তন করা যাবে না।\nসম্ভবত ভুল পিন।"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"সিম পিন সফলভাবে পরিবর্তন করা হয়েছে"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"সিম কার্ড লক অবস্থা পরিবর্তন করা যাবে না।\nসম্ভবত ভুল পিন।"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"পিন বন্ধ করা যায়নি৷"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"পিন চালু করা যায়নি৷"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"ঠিক আছে"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"বাতিল করুন"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"একাধিক সিম পাওয়া গেছে"</string>
@@ -1673,7 +1674,7 @@
<string name="lockpattern_settings_power_button_instantly_locks_summary" msgid="8196258755143711694">"শুধুমাত্র <xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> দ্বারা আনলক করে রেখে দেওয়ার সময় ছাড়া"</string>
<string name="lockpattern_settings_choose_lock_pattern" msgid="1652352830005653447">"আনলক প্যাটার্ন সেট করুন"</string>
<string name="lockpattern_settings_change_lock_pattern" msgid="1123908306116495545">"আনলক প্যাটার্ন পরিবর্তন করুন"</string>
- <string name="lockpattern_settings_help_how_to_record" msgid="2614673439060830433">"কিভাবে একটি আনলক প্যাটার্ন আঁকবেন"</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="lock_settings_profile_title" msgid="2121876391814535295">"কর্মস্থলের প্রোফাইলের নিরাপত্তা"</string>
@@ -1733,7 +1734,7 @@
<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>
@@ -2852,7 +2853,7 @@
<string name="amber_alerts_summary" msgid="4312984614037904489">"শিশু অপহরণ সম্পর্কে বুলেটিন পান"</string>
<string name="repeat_title" msgid="6473587828597786996">"পুনরাবৃত্তি করুন"</string>
<string name="call_manager_enable_title" msgid="7718226115535784017">"কল ম্যানেজার সক্ষম করুন"</string>
- <string name="call_manager_enable_summary" msgid="8458447798019519240">"আপনার কল কিভাবে করা হবে তা পরিচালনা করতে এই পরিষেবাকে অনুমতি দিন।"</string>
+ <string name="call_manager_enable_summary" msgid="8458447798019519240">"আপনার কল কীভাবে করা হবে তা পরিচালনা করতে এই পরিষেবাকে অনুমতি দিন।"</string>
<string name="call_manager_title" msgid="4479949569744516457">"কল ম্যানেজার"</string>
<!-- no translation found for call_manager_summary (5918261959486952674) -->
<skip />
@@ -2932,7 +2933,6 @@
<item quantity="one">%dটি লুকানো আইটেম দেখান</item>
<item quantity="other">%dটি লুকানো আইটেম দেখান</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"সঙ্কুচিত করুন"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"নেটওয়ার্ক ও ইন্টারনেট"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"মোবাইল"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ডেটার ব্যবহার"</string>
@@ -3002,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"গাঢ় থিম"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"বাগ"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"অ্যাম্বিয়েন্ট ডিসপ্লে, লক স্ক্রিন ডিসপ্লে"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"লক স্ক্রিন বিজ্ঞপ্তি"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ফেস"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"আঙ্গুলের ছাপ"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"অনুজ্জ্বল স্ক্রিন, টাচস্ক্রিন, ব্যাটারি, স্মার্ট উজ্জ্বলতা, ডায়নামিক উজ্জ্বলতা"</string>
@@ -3190,11 +3191,11 @@
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"সমস্ত বিজ্ঞপ্তির সামগ্রীগুলি দেখান"</string>
<string name="lock_screen_notifications_summary_hide" msgid="8301305044690264958">"সংবেদনশীল কন্টেন্ট লুকান"</string>
<string name="lock_screen_notifications_summary_disable" msgid="859628910427886715">"কোনও বিজ্ঞপ্তি দেখাবেন না"</string>
- <string name="lock_screen_notifications_interstitial_message" msgid="6164532459432182244">"আপনার ডিভাইস লক করা অবস্থায় আপনি কিভাবে বিজ্ঞপ্তি প্রদর্শন করতে চান?"</string>
+ <string name="lock_screen_notifications_interstitial_message" msgid="6164532459432182244">"আপনার ডিভাইস লক করা অবস্থায় আপনি কীভাবে বিজ্ঞপ্তি প্রদর্শন করতে চান?"</string>
<string name="lock_screen_notifications_interstitial_title" msgid="1416589393106326972">"বিজ্ঞপ্তি"</string>
<string name="lock_screen_notifications_summary_show_profile" msgid="835870815661120772">"সমস্ত কর্মস্থলের বিজ্ঞপ্তির কন্টেন্ট দেখুন"</string>
<string name="lock_screen_notifications_summary_hide_profile" msgid="2005907007779384635">"কাজের সংবেদনশীল কন্টেন্ট লুকান"</string>
- <string name="lock_screen_notifications_interstitial_message_profile" msgid="8307705621027472346">"আপনার ডিভাইস লক করা অবস্থায় আপনি কিভাবে প্রোফাইল বিজ্ঞপ্তিগুলি প্রদর্শন করতে চান?"</string>
+ <string name="lock_screen_notifications_interstitial_message_profile" msgid="8307705621027472346">"আপনার ডিভাইস লক করা অবস্থায় আপনি কীভাবে প্রোফাইল বিজ্ঞপ্তিগুলি প্রদর্শন করতে চান?"</string>
<string name="lock_screen_notifications_interstitial_title_profile" msgid="3169806586032521333">"প্রোফাইল বিজ্ঞপ্তিগুলি"</string>
<string name="notifications_title" msgid="8086372779371204971">"বিজ্ঞপ্তি"</string>
<string name="app_notifications_title" msgid="5810577805218003760">"অ্যাপ বিজ্ঞপ্তি"</string>
@@ -3711,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ইন্টারনাল স্টোরেজ: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ব্যবহৃত হয়েছে - <xliff:g id="FREE_SPACE">%2$s</xliff:g> খালি আছে"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ধরে নিষ্ক্রিয় থাকার পরে নিদ্রা মোডে যায়"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"ওয়ালপেপার, নিদ্রা মোড, হরফের আকার"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"১০ মিনিট ধরে নিষ্ক্রিয় থাকার পরে নিদ্রা মোডে যায়"</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>
@@ -4070,7 +4073,7 @@
<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>
<string name="storage_photos_videos" msgid="319854636702241898">"ফটো এবং ভিডিওগুলি"</string>
<string name="storage_music_audio" msgid="789779084825206838">"মিউজিক ও অডিও"</string>
- <string name="storage_games" msgid="7703159201697117621">"গেম্স"</string>
+ <string name="storage_games" msgid="7703159201697117621">"গেম"</string>
<string name="storage_other_apps" msgid="5524321740031718083">"অন্যান্য অ্যাপ্লিকেশান"</string>
<string name="storage_files" msgid="8581083146777364063">"ফাইল"</string>
<string name="storage_size_large_alternate" msgid="3395208658399637645">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" "<font size="20">"<xliff:g id="UNIT">^2</xliff:g>"</font></small>""</string>
@@ -4079,7 +4082,7 @@
<string name="clear_instant_app_data" msgid="2004222610585890909">"অ্যাপের ডেটা সাফ করুন"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"আপনি কি এই ঝটপট অ্যাপটি সরাতে চান?"</string>
<string name="launch_instant_app" msgid="391581144859010499">"চালু করুন"</string>
- <string name="game_storage_settings" msgid="3410689937046696557">"গেম্স"</string>
+ <string name="game_storage_settings" msgid="3410689937046696557">"গেম"</string>
<string name="audio_files_title" msgid="4777048870657911307">"অডিও ফাইলগুলি"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"স্টোরেজ ব্যবহার হয়েছে"</string>
<string name="webview_uninstalled_for_user" msgid="1819903169194420983">"(ইউজার <xliff:g id="USER">%s</xliff:g> এর জন্য আনইনস্টল হয়েছে)"</string>
@@ -4155,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"নেটওয়ার্কের বিবরণ"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"আপনার ডিভাইসের নাম আপনার ফোনে থাকা অ্যাপে দেখা যাবে। আপনি যখন এটিকে ব্লুটুথ ডিভাইসের সাথে কানেক্ট করেন বা ওয়াই-ফাই হটস্পট সেট-আপ করেন তখন এটি অন্যরাও দেখতে পেতে পারেন।"</string>
<string name="devices_title" msgid="7701726109334110391">"ডিভাইস"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"উচ্চ ফ্রিকোয়েন্সি প্যানেল"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ভার্চুয়াল উচ্চ ফ্রিকোয়েন্সি প্যানেল চালু করুন"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"সমস্ত সেটিংস"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"আপনার সেটিংস"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"সাজেশন"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ডেটা"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ডেটা"</string>
<string name="choose_network_title" msgid="5702586742615861037">"নেটওয়ার্ক বেছে নিন"</string>
@@ -4170,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"নেটওয়ার্ক পাওয়া যায়নি। আবার চেষ্টা করুন।"</string>
<string name="forbidden_network" msgid="4626592887509826545">"(নিষিদ্ধ)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"কোনও সিম কার্ড নেই"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"আরও ভাল কলিং"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"পছন্দের নেটওয়ার্ক মোড: বেছে নেওয়া WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"পছন্দের নেটওয়ার্ক মোড: শুধুমাত্র GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"পছন্দের নেটওয়ার্ক মোড: শুধুমাত্র WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"পছন্দের নেটওয়ার্ক মোড: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"পছন্দের নেটওয়ার্ক মোড: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"পছন্দের নেটওয়ার্ক মোড: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"পছন্দের নেটওয়ার্ক মোড: শুধুমাত্র CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"পছন্দের নেটওয়ার্ক মোড: শুধুমাত্র EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"পছন্দের নেটওয়ার্ক মোড: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"পছন্দের নেটওয়ার্ক মোড: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"পছন্দের নেটওয়ার্ক মোড: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"পছন্দের নেটওয়ার্ক মোড: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"পছন্দের নেটওয়ার্ক মোড: গ্লোবাল"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"পছন্দের নেটওয়ার্ক মোড: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"পছন্দের নেটওয়ার্ক মোড: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"পছন্দের নেটওয়ার্ক মোড: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"পছন্দের নেটওয়ার্ক মোড: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"পছন্দের নেটওয়ার্ক মোড: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"পছন্দের নেটওয়ার্ক মোড: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"পছন্দের নেটওয়ার্ক মোড: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"পছন্দের নেটওয়ার্ক মোড: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"পছন্দের নেটওয়ার্ক মোড: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"পছন্দের নেটওয়ার্ক মোড: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"পছন্দের নেটওয়ার্ক মোড: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"পছন্দের নেটওয়ার্ক মোড: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"পছন্দের নেটওয়ার্ক মোড: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (সাজেস্ট করা হয়েছে)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (সাজেস্ট করা হয়েছে)"</string>
+ <string name="network_global" msgid="959947774831178632">"গ্লোবাল"</string>
+ <string name="label_available" msgid="1731547832803057893">"উপলভ্য নেটওয়ার্ক"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"সার্চ করছে..."</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g>-এ রেজিস্টার করা হচ্ছে…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"আপনার সিম কার্ড এই নেটওয়ার্কে কানেক্ট করার অনুমতি দেয় না।"</string>
+ <string name="connect_later" msgid="978991102125216741">"এই মুহূর্তে এই নেটওয়ার্কে কনেক্ট করা যাচ্ছে না। পরে আবার চেষ্টা করুন।"</string>
+ <string name="registration_done" msgid="4573820010512184521">"নেটওয়ার্কে রেজিস্টার করা হয়েছে।"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"নিজের থেকে নেটওয়ার্ক বেছে নিন"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"পরিষেবা প্রদানকারীর সেটিং"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"ডেটা পরিষেবা সেট-আপ করুন"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"মোবাইল ডেটা"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"মোবাইল নেটওয়ার্ক ব্যবহার করে ডেটা অ্যাক্সেস করুন"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"পছন্দের নেটওয়ার্ক"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"নেটওয়ার্ক অপারেটিং মোড পরিবর্তন করুন"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"পছন্দের নেটওয়ার্ক"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"পরিষেবা প্রদানকারী"</string>
+ <string name="call_category" msgid="8108654745239563833">"কল করা হচ্ছে"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"পরিষেবা প্রদানকারীর ভিডিও কলিং"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"সিস্টেমের বেছে নেওয়া"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA রোমিং মোডটি পরিবর্তন করুন"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"সিস্টেমের বেছে নেওয়া"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"নেটওয়ার্ক"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"নেটওয়ার্ক"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA সাবস্ক্রিপশন"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/সিম অথবা NV ব্যবহার করুন"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"সাবস্ক্রিপশন"</string>
+ <string name="register_automatically" msgid="518185886971595020">"অটেমেটিক রেজিস্ট্রেশন..."</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"ডেটা রোমিংয়ের অনুমতি দেবেন?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"দামের বিষয়ে জানতে নেটওয়ার্ক প্রদানকারীর সাথে যোগাযোগ করুন।"</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"অ্যাপ ডেটার ব্যবহার"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"ভুল নেটওয়ার্ক মোড <xliff:g id="NETWORKMODEID">%1$d</xliff:g>। এড়িয়ে যান।"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g>-এ কনেক্ট থাকলে উপলভ্য থাকে না"</string>
+ <string name="see_more" msgid="5953815986207345223">"আরও দেখুন"</string>
+ <string name="see_less" msgid="1250265310929558370">"কম দেখুন"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index 74f6655..5c6a72d 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Tretiraj kao vezu s ograničenjem"</item>
<item msgid="2266114985518865625">"Tretiraj kao vezu bez ograničenja"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Zadano (koristi nasumično određen MAC)"</item>
+ <item msgid="5398461510512959597">"Pouzdano"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Ne"</item>
<item msgid="3863157480502955888">"Da"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Otklanjanje grešaka"</item>
<item msgid="5286514712714822064">"Opširno"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Samo početna stranica"</item>
+ <item msgid="5034813753274486448">"Automatski"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Preferiraj GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"Samo GSM"</item>
+ <item msgid="488474605709912156">"Samo WCDMA"</item>
+ <item msgid="1912421096218750039">"Automatski GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"Automatski CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"Samo EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Globalno"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Samo TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Globalno"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 9cd8b7c..57d4bba 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Kreiraj"</string>
<string name="allow" msgid="3349662621170855910">"Dozvoli"</string>
<string name="deny" msgid="6947806159746484865">"Odbij"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Zatvori"</string>
<string name="device_info_default" msgid="7847265875578739287">"Nepoznato"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Još <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> korak vas dijeli od toga da postanete programer.</item>
@@ -130,18 +129,18 @@
<string name="bluetooth_ask_disablement" msgid="5890386255790160573">"<xliff:g id="APP_NAME">%1$s</xliff:g> želi uključiti Bluetooth"</string>
<string name="bluetooth_ask_enablement_no_name" msgid="1644353686104482763">"Aplikacija želi uključiti Bluetooth"</string>
<string name="bluetooth_ask_disablement_no_name" msgid="9218830122674868548">"Aplikacija želi isključiti Bluetooth"</string>
- <string name="bluetooth_ask_discovery" product="tablet" msgid="4791779658660357386">"<xliff:g id="APP_NAME">%1$s</xliff:g> želi da vaš tablet bude vidljiv drugim uređajima sa Bluetoothom <xliff:g id="TIMEOUT">%2$d</xliff:g> sek."</string>
- <string name="bluetooth_ask_discovery" product="default" msgid="1308225382575535366">"<xliff:g id="APP_NAME">%1$s</xliff:g> želi da vaš telefon bude vidljiv drugim uređajima sa Bluetoothom <xliff:g id="TIMEOUT">%2$d</xliff:g> sek."</string>
- <string name="bluetooth_ask_discovery_no_name" product="tablet" msgid="225715443477752935">"Aplikacija želi da vaš tablet bude vidljiv drugim uređajima sa Bluetoothom <xliff:g id="TIMEOUT">%1$d</xliff:g> sek."</string>
- <string name="bluetooth_ask_discovery_no_name" product="default" msgid="4949152735544109994">"Aplikacija želi da vaš telefon bude vidljiv drugim uređajima sa Bluetoothom <xliff:g id="TIMEOUT">%1$d</xliff:g> sek."</string>
+ <string name="bluetooth_ask_discovery" product="tablet" msgid="4791779658660357386">"<xliff:g id="APP_NAME">%1$s</xliff:g> želi da vaš tablet bude vidljiv drugim uređajima sa Bluetoothom <xliff:g id="TIMEOUT">%2$d</xliff:g> s."</string>
+ <string name="bluetooth_ask_discovery" product="default" msgid="1308225382575535366">"<xliff:g id="APP_NAME">%1$s</xliff:g> želi da vaš telefon bude vidljiv drugim uređajima sa Bluetoothom <xliff:g id="TIMEOUT">%2$d</xliff:g> s."</string>
+ <string name="bluetooth_ask_discovery_no_name" product="tablet" msgid="225715443477752935">"Aplikacija želi da vaš tablet bude vidljiv drugim uređajima sa Bluetoothom <xliff:g id="TIMEOUT">%1$d</xliff:g> s."</string>
+ <string name="bluetooth_ask_discovery_no_name" product="default" msgid="4949152735544109994">"Aplikacija želi da vaš telefon bude vidljiv drugim uređajima sa Bluetoothom <xliff:g id="TIMEOUT">%1$d</xliff:g> s."</string>
<string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="8528329166577187961">"<xliff:g id="APP_NAME">%1$s</xliff:g> želi da vaš tablet bude vidljiv drugim Bluetooth uređajima. Ovo možete promijeniti kasnije u postavkama za Bluetooth."</string>
<string name="bluetooth_ask_lasting_discovery" product="default" msgid="4398738575307583138">"<xliff:g id="APP_NAME">%1$s</xliff:g> želi da vaš telefon bude vidljiv drugim Bluetooth uređajima. Ovo možete promijeniti kasnije u postavkama za Bluetooth."</string>
<string name="bluetooth_ask_lasting_discovery_no_name" product="tablet" msgid="1702590641426207062">"Aplikacija želi da vaš tablet bude vidljiv drugim Bluetooth uređajima. Ovo možete kasnije promijeniti u postavkama za Bluetooth."</string>
<string name="bluetooth_ask_lasting_discovery_no_name" product="default" msgid="8549952177383992238">"Aplikacija želi da vaš telefon bude vidljiv drugim Bluetooth uređajima. Ovo možete promijeniti kasnije u postavkama za Bluetooth."</string>
- <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="1141843490422565755">"<xliff:g id="APP_NAME">%1$s</xliff:g> želi uključiti Bluetooth te učiniti vaš tablet vidljivim drugim uređajima <xliff:g id="TIMEOUT">%2$d</xliff:g> sek."</string>
- <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="5195836980079191473">"<xliff:g id="APP_NAME">%1$s</xliff:g> želi uključiti Bluetooth te učiniti vaš telefon vidljivim drugim uređajima <xliff:g id="TIMEOUT">%2$d</xliff:g> sek."</string>
- <string name="bluetooth_ask_enablement_and_discovery_no_name" product="tablet" msgid="7009338445281693765">"Aplikacija želi uključiti Bluetooth te učiniti vaš tablet vidljivim drugim uređajima <xliff:g id="TIMEOUT">%1$d</xliff:g> sek."</string>
- <string name="bluetooth_ask_enablement_and_discovery_no_name" product="default" msgid="8386904242279878734">"Aplikacija želi uključiti Bluetooth te učiniti vaš telefon vidljivim drugim uređajima <xliff:g id="TIMEOUT">%1$d</xliff:g> sek."</string>
+ <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="1141843490422565755">"<xliff:g id="APP_NAME">%1$s</xliff:g> želi uključiti Bluetooth te učiniti vaš tablet vidljivim drugim uređajima <xliff:g id="TIMEOUT">%2$d</xliff:g> s."</string>
+ <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="5195836980079191473">"<xliff:g id="APP_NAME">%1$s</xliff:g> želi uključiti Bluetooth te učiniti vaš telefon vidljivim drugim uređajima <xliff:g id="TIMEOUT">%2$d</xliff:g> s."</string>
+ <string name="bluetooth_ask_enablement_and_discovery_no_name" product="tablet" msgid="7009338445281693765">"Aplikacija želi uključiti Bluetooth te učiniti vaš tablet vidljivim drugim uređajima <xliff:g id="TIMEOUT">%1$d</xliff:g> s."</string>
+ <string name="bluetooth_ask_enablement_and_discovery_no_name" product="default" msgid="8386904242279878734">"Aplikacija želi uključiti Bluetooth te učiniti vaš telefon vidljivim drugim uređajima <xliff:g id="TIMEOUT">%1$d</xliff:g> s."</string>
<string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="2279471426575892686">"<xliff:g id="APP_NAME">%1$s</xliff:g> želi uključiti Bluetooth i učiniti vaš tablet vidljivim drugim uređajima. Ovo možete kasnije promijeniti u postavkama za Bluetooth."</string>
<string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="6961969825475461450">"<xliff:g id="APP_NAME">%1$s</xliff:g> želi uključiti Bluetooth i učiniti vaš telefon vidljivim drugim uređajima. Ovo možete kasnije promijeniti u postavkama za Bluetooth."</string>
<string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="tablet" msgid="692477613671555006">"Aplikacija želi uključiti Bluetooth i učiniti vaš tablet vidljivim drugim uređajima. Ovo možete kasnije promijeniti u postavkama za Bluetooth."</string>
@@ -907,6 +906,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Odaberite barem jedan frekvencijski pojas za Wi‑Fi pristupnu tačku:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP postavke"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privatnost"</string>
<string name="wifi_shared" msgid="844142443226926070">"Dijeli s ostalim korisnicima uređaja"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nepromijenjeno)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Odaberite"</string>
@@ -1221,6 +1221,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Nije moguće promijeniti PIN.\nMožda je PIN neispravan."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN za SIM uspješno promijenjen"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Ne možete otključati SIM.\nPIN je možda pogrešan."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Onemogućavanje PIN-a nije uspelo."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Omogućavanje PIN-a nije uspelo."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Uredu"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Otkaži"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Pronađeno više SIM-ova"</string>
@@ -1690,7 +1692,7 @@
<string name="lockpattern_settings_choose_lock_pattern" msgid="1652352830005653447">"Postavi uzorak otključavanja"</string>
<string name="lockpattern_settings_change_lock_pattern" msgid="1123908306116495545">"Promijeni uzorak za otključavanje"</string>
<string name="lockpattern_settings_help_how_to_record" msgid="2614673439060830433">"Kako nacrtati uzorak za otključavanje"</string>
- <string name="lockpattern_too_many_failed_confirmation_attempts" msgid="6909161623701848863">"Previše pogrešnih pokušaja. Pokušajte ponovo za <xliff:g id="NUMBER">%d</xliff:g> sek."</string>
+ <string name="lockpattern_too_many_failed_confirmation_attempts" msgid="6909161623701848863">"Previše pogrešnih pokušaja. Pokušajte ponovo za <xliff:g id="NUMBER">%d</xliff:g> s."</string>
<string name="activity_not_found" msgid="5551664692991605325">"Aplikacija nije instalirana na vašem telefonu."</string>
<string name="lock_settings_profile_title" msgid="2121876391814535295">"Sigurnost radnog profila"</string>
<string name="lock_settings_profile_screen_lock_title" msgid="3334747927367115256">"Zaključavanje ekrana radnog profila"</string>
@@ -2969,7 +2971,6 @@
<item quantity="few">Prikaži %d skrivene stavke</item>
<item quantity="other">Prikaži %d skrivenih stavki</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Suzite"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Mreža i internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilna mreža"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"prijenos podataka"</string>
@@ -3039,6 +3040,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tema po mraku"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"greška"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambijentalni prikaz, Prikaz zaključavanja ekrana"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"obavještenje o zaključavanju ekrana"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"lice"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"otisak prsta"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"zatamnjenje ekrana, ekran osjetljiv na dodir, baterija, pametna osvijetljenost, dinamička osvijetljenost"</string>
@@ -3767,6 +3769,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Unutrašnja pohrana: iskorišteno <xliff:g id="PERCENTAGE">%1$s</xliff:g> - slobodno <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"Pokreni stanje mirovanja nakon <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> neaktivnosti"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Pozadinska slika, mirovanje, veličina fonta"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Pokreni stanje mirovanja nakon 10 minuta neaktivnosti"</string>
<string name="memory_summary" msgid="8080825904671961872">"Iskorišteno prosječno <xliff:g id="USED_MEMORY">%1$s</xliff:g> od ukupno <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Prijavljeni ste kao <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4227,10 +4231,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Detalji o mreži"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Naziv uređaja mogu vidjeti aplikacije na telefonu. Mogu ga vidjeti i druge osobe kada se povežete na Bluetooth uređaje ili postavite WiFi pristupnu tačku."</string>
<string name="devices_title" msgid="7701726109334110391">"Uređaji"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Ploča visoke frekventnosti"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Omogućite Virtuelnu ploču visoke frekventnosti"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Sve postavke"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Vaše postavke"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Prijedlozi"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS podaci"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS podaci"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Odaberite mrežu"</string>
@@ -4242,4 +4244,73 @@
<string name="network_query_error" msgid="7487714485362598410">"Nisu pronađene mreže. Pokušajte ponovo."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(zabranjeno)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Nema SIM kartice"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Napredno pozivanje"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Preferirani način rada mreže: preferiraj WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Preferirani način rada mreže: samo GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Preferirani način rada mreže: samo WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Preferirani način rada mreže: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Preferirani način rada mreže: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Preferirani način rada mreže: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Preferirani način rada mreže: samo CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Preferirani način rada mreže: samo EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Preferirani način rada mreže: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Preferirani način rada mreže: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Preferirani način rada mreže: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Preferirani način rada mreže: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Preferirani način rada mreže: globalno"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Preferirani način rada mreže: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Preferirani način rada mreže: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Preferirani način rada mreže: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Preferirani način rada mreže: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Preferirani način rada mreže: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Preferirani način rada mreže: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Preferirani način rada mreže: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Preferirani način rada mreže: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Preferirani način rada mreže: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Preferirani način rada mreže: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Preferirani način rada mreže: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Preferirani način rada mreže: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Preferirani način rada mreže: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (preporučeno)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (preporučeno)"</string>
+ <string name="network_global" msgid="959947774831178632">"Globalno"</string>
+ <string name="label_available" msgid="1731547832803057893">"Dostupne mreže"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Pretraživanje…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registriranje na mrežu <xliff:g id="NETWORK">%s</xliff:g> je u toku…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Vaša SIM kartica ne dozvoljava povezivanje na ovu mrežu."</string>
+ <string name="connect_later" msgid="978991102125216741">"Trenutno se nije moguće povezati na ovu mrežu. Pokušajte ponovo kasnije."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registrirano na mrežu."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Automatski odaberi mrežu"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Postavke operatera"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Postavi prijenos podataka"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobilni podaci"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Pristup prijenosu podataka mobilnom mrežom"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Vrsta preferirane mreže"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Promijeni način rada mreže"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Vrsta preferirane mreže"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operater"</string>
+ <string name="call_category" msgid="8108654745239563833">"Pozivanje"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Operater video pozivanja"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Odabir sistema"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Promijeni način rada CDMA rominga"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Odabir sistema"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Mreža"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Mreža"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA pretplata"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Promjena između RUIM/SIM i NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"pretplata"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatska registracija…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Dozvoliti roming podataka?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Raspitajte se kod svog mobilnog operatera za cijene."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Prijenos podataka za aplikaciju"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Mrežni način <xliff:g id="NETWORKMODEID">%1$d</xliff:g> nije važeći. Zanemarite."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nedostupno kada ste povezani s operaterom <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Pogledajte više"</string>
+ <string name="see_less" msgid="1250265310929558370">"Vidi manje"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> povezani uređaj</item>
+ <item quantity="few"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> povezana uređaja</item>
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> povezanih uređaja</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Nema povezanih uređaja"</string>
</resources>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index 40184d7..8c88e70 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Tracta com a Wi-Fi amb límit de dades"</item>
<item msgid="2266114985518865625">"Tracta com a Wi-Fi sense límit de dades"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Predeterminada (utilitza una adreça MAC aleatòria)"</item>
+ <item msgid="5398461510512959597">"De confiança"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"No"</item>
<item msgid="3863157480502955888">"Sí"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Depura"</item>
<item msgid="5286514712714822064">"Detalla"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Només local"</item>
+ <item msgid="5034813753274486448">"Automàtic"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Mode GSM/WCDMA preferit"</item>
+ <item msgid="807926878589867564">"Només GSM"</item>
+ <item msgid="488474605709912156">"Només WCDMA"</item>
+ <item msgid="1912421096218750039">"Mode GSM/WCDMA automàtic"</item>
+ <item msgid="5072198667819683600">"Mode CDMA/EvDo automàtic"</item>
+ <item msgid="370391313511477301">"Mode CDMA sense EvDo"</item>
+ <item msgid="4678789463133969294">"Només EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Només TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 2e8122b..7c2dc9e 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Crea"</string>
<string name="allow" msgid="3349662621170855910">"Permet"</string>
<string name="deny" msgid="6947806159746484865">"Denega"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Tanca"</string>
<string name="device_info_default" msgid="7847265875578739287">"Desconegut"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Ara només et queden <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> passos per convertir-te en desenvolupador.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Tria almenys una banda per al punt d\'accés Wi-Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Configuració IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privadesa"</string>
<string name="wifi_shared" msgid="844142443226926070">"Comparteix amb altres usuaris del dispositiu"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(sense canvis)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Selecciona"</string>
@@ -1089,7 +1089,7 @@
<string name="account_settings" msgid="6403589284618783461">"Comptes"</string>
<string name="accessibility_category_work" msgid="4339262969083355720">"Comptes del perfil professional: <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
<string name="accessibility_category_personal" msgid="1263518850905945594">"Comptes del perfil personal"</string>
- <string name="accessibility_work_account_title" msgid="1231830766637939527">"Compte professional: <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
+ <string name="accessibility_work_account_title" msgid="1231830766637939527">"Compte de la feina: <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
<string name="accessibility_personal_account_title" msgid="2169071663029067826">"Compte personal: <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
<string name="search_settings" msgid="1910951467596035063">"Cerca"</string>
<string name="display_settings" msgid="7965901687241669598">"Pantalla"</string>
@@ -1178,7 +1178,7 @@
<string name="ambient_display_category_triggers" msgid="4359289754456268573">"Quan es mostra"</string>
<string name="doze_title" msgid="2375510714460456687">"Notificacions noves"</string>
<string name="doze_summary" msgid="3846219936142814032">"Activa la pantalla en rebre notificacions"</string>
- <string name="doze_always_on_title" msgid="1046222370442629646">"Sempre activat"</string>
+ <string name="doze_always_on_title" msgid="1046222370442629646">"Sempre activada"</string>
<string name="doze_always_on_summary" msgid="6978257596231155345">"Mostra l\'hora, les icones de notificació i altres dades. Consumeix més bateria."</string>
<string name="title_font_size" msgid="4405544325522105222">"Mida de la lletra"</string>
<string name="short_summary_font_size" msgid="6819778801232989076">"Amplia o redueix el text"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"No es pot canviar el PIN.\nÉs possible que sigui incorrecte."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN de la SIM canviat correctament"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"No es pot canviar l\'estat de bloqueig de la targeta SD.\nÉs possible que el PIN sigui incorrecte."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"No es pot desactivar el PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"No es pot activar el PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"D\'acord"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Cancel·la"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Diverses SIM detectades"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Mostra %d elements amagats</item>
<item quantity="one">Mostra %d element amagat</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Replega"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Xarxa i Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"xarxa mòbil"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ús de dades"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tema fosc"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"error"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Pantalla ambient, pantalla de bloqueig"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificació en pantalla de bloqueig"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"cara"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"empremta digital"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"pantalla atenuada, pantalla tàctil, bateria, brillantor intel·ligent, brillantor dinàmica"</string>
@@ -3187,7 +3189,7 @@
<string name="lock_screen_notifications_title" msgid="2583595963286467672">"A la pantalla de bloqueig"</string>
<string name="locked_work_profile_notification_title" msgid="8327882003361551992">"Si perfil professional bloquejat"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Mostra tot el contingut de les notificacions"</string>
- <string name="lock_screen_notifications_summary_hide" msgid="8301305044690264958">"Amaga el contingut confidencial"</string>
+ <string name="lock_screen_notifications_summary_hide" msgid="8301305044690264958">"Amaga el contingut sensible"</string>
<string name="lock_screen_notifications_summary_disable" msgid="859628910427886715">"No mostris les notificacions"</string>
<string name="lock_screen_notifications_interstitial_message" msgid="6164532459432182244">"Com vols que es mostrin les notificacions quan el dispositiu estigui bloquejat?"</string>
<string name="lock_screen_notifications_interstitial_title" msgid="1416589393106326972">"Notificacions"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Emmagatzematge intern: <xliff:g id="PERCENTAGE">%1$s</xliff:g> utilitzat, <xliff:g id="FREE_SPACE">%2$s</xliff:g> lliure"</string>
<string name="display_summary" msgid="6737806235882127328">"Entra en repòs després de <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> d\'inactivitat"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Fons de pantalla, repòs, mida de la lletra"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Entra en repòs després de 10 minuts d\'inactivitat"</string>
<string name="memory_summary" msgid="8080825904671961872">"Memòria mitjana utilitzada: <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Sessió iniciada com a <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -3967,7 +3971,7 @@
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Per veure l\'hora, les notificacions i altres dades, agafa el dispositiu."</string>
<string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Gest per activar la pantalla de bloqueig"</string>
<string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
- <string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Fes lliscar el sensor d\'empremtes per veure notificacions"</string>
+ <string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Llisca al sensor d\'empremtes per consultar les notificacions"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Fes lliscar l\'empremta digital"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Per consultar les notificacions, llisca cap avall al sensor d\'empremtes digitals de la part posterior del telèfon."</string>
<string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="902719947767712895">"Per consultar les notificacions, llisca cap avall al sensor d\'empremtes digitals situat a la part posterior de la tauleta."</string>
@@ -4004,7 +4008,7 @@
<string name="enterprise_privacy_exposure_category" msgid="7313392680107938517">"Tipus d\'informació que la teva organització pot veure"</string>
<string name="enterprise_privacy_exposure_changes_category" msgid="9079283547182933771">"Canvis fets per l\'administrador de la teva organització"</string>
<string name="enterprise_privacy_device_access_category" msgid="5423434164248819058">"El teu accés a aquest dispositiu"</string>
- <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dades associades al teu compte professional, com ara el correu electrònic i el calendari"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="2773968662865848413">"Dades associades al teu compte de la feina, com ara el correu electrònic i el calendari"</string>
<string name="enterprise_privacy_installed_packages" msgid="2313698828178764590">"Llista de les aplicacions que hi ha al dispositiu"</string>
<string name="enterprise_privacy_usage_stats" msgid="4398411405572759370">"Temps dedicat i dades utilitzades en cada aplicació"</string>
<string name="enterprise_privacy_network_logs" msgid="161722817268849590">"Registre del trànsit de xarxa més recent"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Detalls de la xarxa"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"El nom del dispositiu és visible per a les aplicacions del telèfon. També el poden veure altres persones si el connectes a un dispositiu Bluetooth o si configures un punt d\'accés Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Dispositius"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Tauler d\'alta freqüència"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Activa el tauler virtual d\'alta freqüència"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Tota la configuració"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"La teva configuració"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Suggeriments"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Dades CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dades CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Tria la xarxa"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"No s\'ha pogut trobar cap xarxa. Torna-ho a provar."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(prohibida)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"No hi ha cap targeta SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Trucades avançades"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Mode de xarxa preferit: WCDMA preferit"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Mode de xarxa preferit: només GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Mode de xarxa preferit: només WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Mode de xarxa preferit: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Mode de xarxa preferit: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Mode de xarxa preferit: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Mode de xarxa preferit: només CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Mode de xarxa preferit: només EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Mode de xarxa preferit: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Mode de xarxa preferit: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Mode de xarxa preferit: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Mode de xarxa preferit: CDMA+LTE/EvDo"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Mode de xarxa preferit: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Mode de xarxa preferit: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Mode de xarxa preferit: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Mode de xarxa preferit: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Mode de xarxa preferit: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Mode de xarxa preferit: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Mode de xarxa preferit: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Mode de xarxa preferit: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Mode de xarxa preferit: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Mode de xarxa preferit: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Mode de xarxa preferit: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Mode de xarxa preferit: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Mode de xarxa preferit: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Mode de xarxa preferit: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (opció recomanada)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (opció recomanada)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Xarxes disponibles"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"S\'està cercant…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"S\'està registrant a <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"La targeta SIM no et permet connectar-te a aquesta xarxa."</string>
+ <string name="connect_later" msgid="978991102125216741">"No es pot connectar a aquesta xarxa ara mateix. Torna-ho a provar més tard."</string>
+ <string name="registration_done" msgid="4573820010512184521">"S\'ha registrat a la xarxa."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Selecciona la xarxa automàticament"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Configuració de l\'operador"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Configura el servei de dades"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Dades mòbils"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Accedeix a les dades amb la xarxa mòbil"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Tipus de xarxa preferit"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Canvia el mode de funcionament de la xarxa"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Tipus de xarxa preferit"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operador de telefonia mòbil"</string>
+ <string name="call_category" msgid="8108654745239563833">"Trucades"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videotrucades amb l\'operador de telefonia mòbil"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Selecció del sistema"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Canvia el mode d\'itinerància CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Selecció del sistema"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Xarxa"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Xarxa"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Subscripció CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Canvia entre RUIM/SIM i NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"subscripció"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Registre automàtic…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Vols permetre la itinerància de dades?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Contacta amb el proveïdor de xarxa per saber els preus."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Ús de dades de l\'aplicació"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"El mode de xarxa <xliff:g id="NETWORKMODEID">%1$d</xliff:g> no és vàlid. Ignora."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"No està disponible quan està connectat a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Mostra\'n més"</string>
+ <string name="see_less" msgid="1250265310929558370">"Mostra\'n menys"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositius connectats</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> dispositiu connectat</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"No hi ha cap dispositiu connectat"</string>
</resources>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index 0aaf92c..45a3f1f 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Považovat za měřenou síť"</item>
<item msgid="2266114985518865625">"Považovat za neměřenou síť"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Výchozí (použít náhodně vygenerovanou adresu MAC)"</item>
+ <item msgid="5398461510512959597">"Důvěryhodný"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Ne"</item>
<item msgid="3863157480502955888">"Ano"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Ladění"</item>
<item msgid="5286514712714822064">"Podrobné"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Pouze plocha"</item>
+ <item msgid="5034813753274486448">"Automaticky"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA – preferováno"</item>
+ <item msgid="807926878589867564">"Pouze GSM"</item>
+ <item msgid="488474605709912156">"Pouze WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA – automaticky"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo – automaticky"</item>
+ <item msgid="370391313511477301">"CDMA bez EvDo"</item>
+ <item msgid="4678789463133969294">"Pouze EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Globální"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Pouze TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Globální"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 816bfe4..6bc77d3 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Vytvořit"</string>
<string name="allow" msgid="3349662621170855910">"Povolit"</string>
<string name="deny" msgid="6947806159746484865">"Odmítnout"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Zavřít"</string>
<string name="device_info_default" msgid="7847265875578739287">"Neznámé"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="few">Ještě <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> kroky a bude z vás vývojář.</item>
@@ -922,6 +921,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Vyberte alespoň jedno pásmo pro hotspot Wi-Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Nastavení IP adresy"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Ochrana soukromí"</string>
<string name="wifi_shared" msgid="844142443226926070">"Sdílet s ostatními uživateli zařízení"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nezměněno)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Vyberte"</string>
@@ -1237,6 +1237,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Kód PIN nelze změnit.\nMožná jste zadali nesprávný kód PIN."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN SIM karty byl úspěšně změněn."</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Stav zámku SIM karty nelze změnit.\nZřejmě jste zadali nesprávný kód PIN."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN nelze deaktivovat."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN nelze aktivovat."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Zrušit"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Bylo nalezeno několik SIM karet"</string>
@@ -3007,7 +3009,6 @@
<item quantity="other">Zobrazit %d skrytých položek</item>
<item quantity="one">Zobrazit %d skrytou položku</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Sbalit"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Síť a internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilní síť"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"využití dat"</string>
@@ -3077,6 +3078,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tmavý motiv"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"chyba"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambientní displej, displej zámku obrazovky"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"oznámení na obrazovce uzamčení"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"obličej"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"otisk prstu"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ztlumení obrazovky, dotyková obrazovka, baterie, chytrý jas, dynamický jas"</string>
@@ -3824,6 +3826,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Interní úložiště: využito <xliff:g id="PERCENTAGE">%1$s</xliff:g> – volné místo: <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"Po <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> nečinnosti přejít do režimu spánku"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Tapeta, režim spánku, velikost písma"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Po 10 minutách nečinnosti přejít do režimu spánku"</string>
<string name="memory_summary" msgid="8080825904671961872">"Přibližné využití paměti: <xliff:g id="USED_MEMORY">%1$s</xliff:g> z <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Jste přihlášeni jako <xliff:g id="USER_NAME">%1$s</xliff:g>."</string>
@@ -4300,10 +4304,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Podrobnosti sítě"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Název vašeho zařízení je viditelný pro aplikace v telefonu. Mohou ho vidět také ostatní uživatelé, když se připojíte k zařízení Bluetooth nebo hotspotu Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Zařízení"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Panel vysoké frekvence"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Povolit virtuální panel vysoké frekvence"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Všechna nastavení"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Nastavení"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Návrhy"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Data CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Data CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Vybrat síť"</string>
@@ -4315,4 +4317,74 @@
<string name="network_query_error" msgid="7487714485362598410">"Nebyla nalezena žádná síť. Zkuste to znovu."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(zakázáno)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Není vložena SIM karta"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Rozšířené volání"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Preferovaný režim sítě: preferováno WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Preferovaný režim sítě: pouze GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Preferovaný režim sítě: pouze WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Preferovaný režim sítě: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Preferovaný režim sítě: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Preferovaný režim sítě: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Preferovaný režim sítě: pouze CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Preferovaný režim sítě: pouze EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Preferovaný režim sítě: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Preferovaný režim sítě: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Preferovaný režim sítě: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Preferovaný režim sítě: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Preferovaný režim sítě: Globální"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Preferovaný režim sítě: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Preferovaný režim sítě: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Preferovaný režim sítě: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Preferovaný režim sítě: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Preferovaný režim sítě: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Preferovaný režim sítě: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Preferovaný režim sítě: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Preferovaný režim sítě: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Preferovaný režim sítě: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Preferovaný režim sítě: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Preferovaný režim sítě: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Preferovaný režim sítě: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Preferovaný režim sítě: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (doporučeno)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (doporučeno)"</string>
+ <string name="network_global" msgid="959947774831178632">"Globální"</string>
+ <string name="label_available" msgid="1731547832803057893">"Dostupné sítě"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Vyhledávání…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Probíhá registrace v síti <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Vaše SIM karta nepovoluje připojení k této síti."</string>
+ <string name="connect_later" msgid="978991102125216741">"K této síti se momentálně nelze přihlásit. Zkuste to znovu později."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Přihlášení k síti bylo úspěšné."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Vybírat síť automaticky"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Nastavení operátora"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Nastavit datovou službu"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobilní data"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Přistupovat k datům přes mobilní síť"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Preferovaný typ sítě"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Změnit provozní režim sítě"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Preferovaný typ sítě"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operátor"</string>
+ <string name="call_category" msgid="8108654745239563833">"Volání"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videohovory přes operátora"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Výběr systému"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Změnit režim roamingu CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Výběr systému"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Síť"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Síť"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Odběr CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Přepnout mezi RUIM/SIM a NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"odběr"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatická registrace…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Povolit datový roaming?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Ceny vám sdělí poskytovatel datových služeb."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Využití dat aplikací"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Neplatný režim sítě <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorovat."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Při připojení k operátorovi <xliff:g id="CARRIER">%1$s</xliff:g> nedostupné"</string>
+ <string name="see_more" msgid="5953815986207345223">"Zobrazit další"</string>
+ <string name="see_less" msgid="1250265310929558370">"Zobrazit méně"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="few"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> připojená zařízení</item>
+ <item quantity="many"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> připojeného zařízení</item>
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> připojených zařízení</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> připojené zařízení</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Nejsou připojena žádná zařízení"</string>
</resources>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index 17e06e8..ebf8719 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Håndter som forbrugsbaseret netværk"</item>
<item msgid="2266114985518865625">"Håndter som ubegrænset netværk"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Standard (anvend en tilfældig MAC-adresse)"</item>
+ <item msgid="5398461510512959597">"Betroet"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Nej"</item>
<item msgid="3863157480502955888">"Ja"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Fejlretning"</item>
<item msgid="5286514712714822064">"Omfattende"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Kun hjemme"</item>
+ <item msgid="5034813753274486448">"Automatisk"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA foretrækkes"</item>
+ <item msgid="807926878589867564">"Kun GSM"</item>
+ <item msgid="488474605709912156">"Kun WCDMA"</item>
+ <item msgid="1912421096218750039">"Automatisk GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"Automatisk CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"CDMA uden EvDo"</item>
+ <item msgid="4678789463133969294">"Kun EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA+LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Kun TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index e0ab541..7ea31af 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Opret"</string>
<string name="allow" msgid="3349662621170855910">"Tillad"</string>
<string name="deny" msgid="6947806159746484865">"Afvis"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Luk"</string>
<string name="device_info_default" msgid="7847265875578739287">"Ukendt"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Du er nu <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> skridt fra at være udvikler.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Vælg mindst ét frekvensbånd til Wi‑Fi-hotspottet:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP-indstillinger"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privatliv"</string>
<string name="wifi_shared" msgid="844142443226926070">"Del med andre enhedsbrugere"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(uændret)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Vælg"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Pinkoden kan ikke ændres.\nPinkoden er muligvis forkert."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN-koden til SIM-kortet er ændret"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"SIM-kortets tilstand kan ikke ændres.\nMuligvis pga. en forkert pinkode."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Pinkoden kan ikke deaktiveres."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Pinkoden kan ikke aktiveres."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Annuller"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Der blev fundet flere SIM-kort"</string>
@@ -2931,7 +2933,6 @@
<item quantity="one">Vis %d skjult element</item>
<item quantity="other">Vis %d skjulte elementer</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Skjul"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Netværk og internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilnetværk"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"dataforbrug"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"mørkt tema"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"fejl"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Aktiv låseskærm, visning af låseskærm"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"underretning på låseskærm"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ansigt"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingeraftryk"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dæmp skærmlys, touchskærm, batteri, intelligent lysstyrke, dynamisk klarhed"</string>
@@ -3160,7 +3162,7 @@
<string name="zen_onboarding_settings" msgid="9046451821239946868">"Indstillinger"</string>
<string name="zen_onboarding_new_setting_title" msgid="1893095176110470711">"Ingen lyd eller visuelle signaler fra underretninger"</string>
<string name="zen_onboarding_current_setting_title" msgid="776426065129609376">"Ingen lyd fra underretninger"</string>
- <string name="zen_onboarding_new_setting_summary" msgid="6293026064871880706">"Underretninger kan ikke ses eller høres. Opkald fra stjernemarkerede kontaktpersoner og gentagne opkald er tilladt."</string>
+ <string name="zen_onboarding_new_setting_summary" msgid="6293026064871880706">"Underretninger kan ikke ses eller høres. Opkald fra stjernemarkerede kontakter og gentagne opkald er tilladt."</string>
<string name="zen_onboarding_current_setting_summary" msgid="1280614488924843713">"(aktuel indstilling)"</string>
<string name="zen_onboarding_dnd_visual_disturbances_header" msgid="1352808651270918932">"Vil du ændre underretningsindstillingerne for Forstyr ikke?"</string>
<string name="sound_work_settings" msgid="6774324553228566442">"Lyde for arbejdsprofil"</string>
@@ -3333,7 +3335,7 @@
<string name="zen_mode_calls" msgid="7051492091133751208">"Opkald"</string>
<string name="zen_mode_calls_title" msgid="623395033931747661">"Tillad opkald"</string>
<string name="zen_mode_calls_footer" msgid="3618700268458237781">"Når Forstyr ikke er aktiveret, blokeres indgående opkald. Du kan ændre indstillingerne, så dine venner, dine familie eller andre kontaktpersoner kan få fat i dig."</string>
- <string name="zen_mode_starred_contacts_title" msgid="1848464279786960190">"Stjernemarkerede kontaktpersoner"</string>
+ <string name="zen_mode_starred_contacts_title" msgid="1848464279786960190">"Stjernemarkerede kontakter"</string>
<plurals name="zen_mode_starred_contacts_summary_additional_contacts" formatted="false" msgid="500105380255018671">
<item quantity="one"><xliff:g id="NUM_PEOPLE">%d</xliff:g> anden</item>
<item quantity="other"><xliff:g id="NUM_PEOPLE">%d</xliff:g> andre</item>
@@ -3346,8 +3348,8 @@
<string name="zen_mode_selected_messages_list" msgid="5309288435815759102">"nogle beskeder"</string>
<string name="zen_mode_from_anyone" msgid="2638322015361252161">"Fra hvem som helst"</string>
<string name="zen_mode_from_contacts" msgid="2232335406106711637">"Kun fra kontaktpersoner"</string>
- <string name="zen_mode_from_starred" msgid="2678345811950997027">"Kun fra stjernemarkerede kontaktpersoner"</string>
- <string name="zen_calls_summary_starred_repeat" msgid="4046151920710059778">"Fra stjernemarkerede kontaktpersoner og ved gentagne opkald"</string>
+ <string name="zen_mode_from_starred" msgid="2678345811950997027">"Kun fra stjernemarkerede kontakter"</string>
+ <string name="zen_calls_summary_starred_repeat" msgid="4046151920710059778">"Fra stjernemarkerede kontakter og ved gentagne opkald"</string>
<string name="zen_calls_summary_contacts_repeat" msgid="1528716671301999084">"Fra kontaktpersoner og ved gentagne opkald"</string>
<string name="zen_calls_summary_repeat_only" msgid="7105261473107715445">"Kun ved gentagne opkald"</string>
<string name="zen_mode_from_none" msgid="8219706639954614136">"Ingen"</string>
@@ -3365,7 +3367,7 @@
<string name="zen_mode_events_title" msgid="5597241655883329085">"Tillad begivenheder"</string>
<string name="zen_mode_all_callers" msgid="2378065871253871057">"alle"</string>
<string name="zen_mode_contacts_callers" msgid="5569804103920394175">"kontaktpersoner"</string>
- <string name="zen_mode_starred_callers" msgid="1023167821338514140">"stjernemarkerede kontaktpersoner"</string>
+ <string name="zen_mode_starred_callers" msgid="1023167821338514140">"stjernemarkerede kontakter"</string>
<string name="zen_mode_repeat_callers" msgid="5019521886428322131">"Gentagne opkald"</string>
<string name="zen_mode_repeat_callers_list" msgid="2529895519653237330">"gentagne opkald"</string>
<string name="zen_mode_repeat_callers_title" msgid="8553876328249671783">"Tillad gentagne opkald"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Intern lagerplads: <xliff:g id="PERCENTAGE">%1$s</xliff:g> er anvendt – <xliff:g id="FREE_SPACE">%2$s</xliff:g> ledig plads"</string>
<string name="display_summary" msgid="6737806235882127328">"Gå i dvale efter <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> uden aktivitet"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Baggrund, dvale, skriftstørrelse"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Gå i dvale efter 10 minutters inaktivitet"</string>
<string name="memory_summary" msgid="8080825904671961872">"I gennemsnit er <xliff:g id="USED_MEMORY">%1$s</xliff:g> ud af <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> hukommelse anvendt"</string>
<string name="users_summary" msgid="1674864467098487328">"Logget ind som <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4124,7 +4128,7 @@
<string name="disabled_dependent_setting_summary" msgid="8291322239940946902">"Er afhængig af en anden indstilling"</string>
<string name="unknown_unavailability_setting_summary" msgid="4589584678033059435">"Indstillingen er ikke tilgængelig"</string>
<string name="my_device_info_account_preference_title" msgid="342933638925781861">"Konto"</string>
- <string name="my_device_info_device_name_preference_title" msgid="7104085224684165324">"Enhedsnavn"</string>
+ <string name="my_device_info_device_name_preference_title" msgid="7104085224684165324">"Enhedens navn"</string>
<string name="bluetooth_on_while_driving_pref" msgid="2460847604498343330">"Brug Bluetooth, når du kører"</string>
<string name="bluetooth_on_while_driving_summary" msgid="3196190732516898541">"Aktivér Bluetooth automatisk, når du kører"</string>
<string name="change_wifi_state_title" msgid="3261945855372885427">"Styring af Wi-Fi"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Netværksoplysninger"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Navnet på din enhed er synligt for apps på din telefon. Det kan muligvis også ses af andre, når du opretter forbindelse til Bluetooth-enheder eller konfigurerer et Wi-Fi-hotspot."</string>
<string name="devices_title" msgid="7701726109334110391">"Enheder"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Panel for høj frekvens"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Aktivér det virtuelle panel for høj frekvens"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Alle indstillinger"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Dine indstillinger"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Forslag"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-data"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-data"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Vælg netværk"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Der kunne ikke findes nogen netværk. Prøv igen."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(forbudt)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Intet SIM-kort"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Avancerede opkald"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Foretrukken netværkstilstand: WCDMA foretrækkes"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Foretrukken netværkstilstand: Kun GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Foretrukken netværkstilstand: Kun WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Foretrukken netværkstilstand: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Foretrukken netværkstilstand: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Foretrukken netværkstilstand: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Foretrukken netværkstilstand: Kun CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Foretrukken netværkstilstand: Kun EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Foretrukken netværkstilstand: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Foretrukken netværkstilstand: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Foretrukken netværkstilstand: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Foretrukken netværkstilstand: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Foretrukken netværkstilstand: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Foretrukken netværkstilstand: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Foretrukket netværkstilstand: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Foretrukken netværkstilstand: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Foretrukken netværkstilstand: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Foretrukken netværkstilstand: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Foretrukken netværkstilstand: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Foretrukken netværkstilstand: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Foretrukken netværkstilstand: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Foretrukken netværkstilstand: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Foretrukken netværkstilstand: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Foretrukken netværkstilstand: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Foretrukken netværkstilstand: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Foretrukken netværkstilstand: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (anbefalet)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (anbefalet)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Tilgængelige netværk"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Søger…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registrerer på <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Dit SIM-kort tillader ikke en forbindelse til dette netværk."</string>
+ <string name="connect_later" msgid="978991102125216741">"Der kan ikke oprettes forbindelse til dette netværk lige nu. Prøv igen senere."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registreret på netværket."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Vælg netværk automatisk"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Indst. for mobilselskab"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Konfiguration af datatjeneste"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobildata"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Få adgang til data via mobilnetværk"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Foretrukken netværkstype"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Skift driftstilstand for netværket"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Foretrukken netværkstype"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Mobilselskab"</string>
+ <string name="call_category" msgid="8108654745239563833">"Opkald"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videoopkald via mobilselskab"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Systemvalg"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Skift CDMA-roamingtilstand"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Systemvalg"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Netværk"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Netværk"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA-abonnement"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Skift mellem RUIM/SIM og NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"abonnement"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatisk registrering…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Vil du tillade dataroaming?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Kontakt din netværksudbyder for at få oplyst priser."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Dataforbrug for apps"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Ugyldig netværkstilstand <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorer."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Utilgængelig ved forbindelse til <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Se mere"</string>
+ <string name="see_less" msgid="1250265310929558370">"Se mindre"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index e890515..d181334 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Als \"kostenpflichtig\" markieren"</item>
<item msgid="2266114985518865625">"Als \"nicht kostenpflichtig\" markieren"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Standard (zufällig festgelegte MAC-Adresse verwenden)"</item>
+ <item msgid="5398461510512959597">"Vertrauenswürdig"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Nein"</item>
<item msgid="3863157480502955888">"Ja"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Fehler beheben"</item>
<item msgid="5286514712714822064">"Ausführlich"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Nur Heimatnetz"</item>
+ <item msgid="5034813753274486448">"Automatisch"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA bevorzugt"</item>
+ <item msgid="807926878589867564">"Nur GSM"</item>
+ <item msgid="488474605709912156">"Nur WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA (automatisch)"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo (automatisch)"</item>
+ <item msgid="370391313511477301">"CDMA ohne EvDo"</item>
+ <item msgid="4678789463133969294">"Nur EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Nur TD-SCDMA"</item>
+ <item msgid="8373504428469988469">"TD-SCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TD-SCDMA"</item>
+ <item msgid="2272560096982726294">"TD-SCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TD-SCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TD-SCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TD-SCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TD-SCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TD-SCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TD-SCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index e6ab188..e960588 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Erstellen"</string>
<string name="allow" msgid="3349662621170855910">"Zulassen"</string>
<string name="deny" msgid="6947806159746484865">"Ablehnen"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Schließen"</string>
<string name="device_info_default" msgid="7847265875578739287">"Unbekannt"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">In <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> Schritten bist du Entwickler.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Bitte für den WLAN-Hotspot mindestens eine Bandbreite auswählen:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP-Einstellungen"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Datenschutz"</string>
<string name="wifi_shared" msgid="844142443226926070">"Für andere Gerätenutzer freigeben"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nicht geändert)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Auswählen"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PIN kann nicht geändert werden.\nEventuell ist es die falsche PIN."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM-PIN erfolgreich geändert"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Status der SIM-Kartensperrung kann nicht geändert werden.\nMöglicherweise falsche PIN."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN kann nicht deaktiviert werden."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN kann nicht aktiviert werden."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Abbrechen"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Mehrere SIM-Karten gefunden"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">%d ausgeblendete Elemente anzeigen</item>
<item quantity="one">%d ausgeblendetes Element anzeigen</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Minimieren"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Netzwerk & Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"Mobilfunknetz"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"Datennutzung"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"Dunkles Design"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"Fehler"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Inaktivitätsdisplay, Sperrbildschirm"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"benachrichtigung auf dem sperrbildschirm"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"Gesicht"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"Fingerabdruck"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"display dimmen, touchscreen, akku, intelligente helligkeit, dynamische helligkeit"</string>
@@ -3182,7 +3184,7 @@
<string name="recent_notifications_see_all_title" msgid="8572160812124540326">"Alle aus den letzten 7 Tagen ansehen"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"Erweitert"</string>
<string name="profile_section_header" msgid="2320848161066912001">"Geschäftliche Benachrichtigungen"</string>
- <string name="notification_badging_title" msgid="5938709971403474078">"Benachrichtigungspunkte erlauben"</string>
+ <string name="notification_badging_title" msgid="5938709971403474078">"Benachrichtigungspunkte zulassen"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"Licht blinken lassen"</string>
<string name="lock_screen_notifications_title" msgid="2583595963286467672">"Auf dem Sperrbildschirm"</string>
<string name="locked_work_profile_notification_title" msgid="8327882003361551992">"Wenn das Arbeitsprofil gesperrt ist"</string>
@@ -3531,7 +3533,7 @@
<string name="permit_usage_access" msgid="4012876269445832300">"Zugriff auf Nutzungsdaten gewähren"</string>
<string name="app_usage_preference" msgid="7065701732733134991">"App-Nutzungseinstellungen"</string>
<string name="time_spent_in_app_pref_title" msgid="649419747540933845">"In der App verbrachte Zeit"</string>
- <string name="usage_access_description" msgid="1352111094596416795">"Der Zugriff auf die Nutzungsdaten ermöglicht es einer App, verschiedene Informationen zu erfassen. Unter anderem, welche anderen Apps du wie oft verwendest, welchen Mobilfunkanbieter du nutzt und welche Spracheinstellungen du festgelegt hast."</string>
+ <string name="usage_access_description" msgid="1352111094596416795">"Der Zugriff auf die Nutzungsdaten ermöglicht es einer App, verschiedene Informationen zu erfassen – welche anderen Apps du wie oft verwendest, welchen Mobilfunkanbieter du nutzt, welche Spracheinstellungen du festgelegt hast usw."</string>
<string name="memory_settings_title" msgid="7490541005204254222">"Arbeitsspeicher"</string>
<string name="memory_details_title" msgid="8542565326053693320">"Speicherdetails"</string>
<string name="always_running" msgid="6042448320077429656">"Immer ausgeführt (<xliff:g id="PERCENTAGE">%s</xliff:g>)"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Interner Speicher: <xliff:g id="PERCENTAGE">%1$s</xliff:g> belegt – <xliff:g id="FREE_SPACE">%2$s</xliff:g> frei"</string>
<string name="display_summary" msgid="6737806235882127328">"Ruhemodus wird nach <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> Inaktivität aktiviert"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Hintergrund, Ruhemodus, Schriftgröße"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Ruhemodus wird nach 10 Minuten Inaktivität aktiviert"</string>
<string name="memory_summary" msgid="8080825904671961872">"Speicher: durchschnittlich <xliff:g id="USED_MEMORY">%1$s</xliff:g> von <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> belegt"</string>
<string name="users_summary" msgid="1674864467098487328">"Angemeldet als <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4055,7 +4059,7 @@
<item quantity="one">Kamera-App</item>
</plurals>
<string name="default_calendar_app_title" msgid="3545972964391065220">"Kalender-App"</string>
- <string name="default_contacts_app_title" msgid="3497370557378660098">"Kontakte-App"</string>
+ <string name="default_contacts_app_title" msgid="3497370557378660098">"Kontakte App"</string>
<plurals name="default_email_app_title" formatted="false" msgid="42826975161049245">
<item quantity="other">E-Mail-Client-Apps</item>
<item quantity="one">E-Mail-Client-App</item>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Netzwerkdetails"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Dein Gerätename ist für Apps auf deinem Smartphone sichtbar. Wenn du dich mit Bluetooth-Geräten verbindest oder einen WLAN-Hotspot einrichtest, kann er möglicherweise auch von anderen Personen gesehen werden."</string>
<string name="devices_title" msgid="7701726109334110391">"Geräte"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"High-Frequency-Steuerfeld"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Virtuelles High-Frequency-Steuerfeld aktivieren"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Alle Einstellungen"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Meine Einstellungen"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Vorschläge"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-Daten"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-Daten"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Netzwerk auswählen"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Netzwerke nicht gefunden. Bitte versuch es noch einmal."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(nicht zulässig)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Keine SIM-Karte"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Erweiterte Anruffunktionen"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Bevorzugter Netzwerkmodus: WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Bevorzugter Netzwerkmodus: nur GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Bevorzugter Netzwerkmodus: nur WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Bevorzugter Netzwerkmodus: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Bevorzugter Netzwerkmodus: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Bevorzugter Netzwerkmodus: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Bevorzugter Netzwerkmodus: nur CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Bevorzugter Netzwerkmodus: nur EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Bevorzugter Netzwerkmodus: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Bevorzugter Netzwerkmodus: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Bevorzugter Netzwerkmodus: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Bevorzugter Netzwerkmodus: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Bevorzugter Netzwerkmodus: global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Bevorzugter Netzwerkmodus: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Bevorzugter Netzwerkmodus: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Bevorzugter Netzwerkmodus: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Bevorzugter Netzwerkmodus: TD-SCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Bevorzugter Netzwerkmodus: TD-SCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Bevorzugter Netzwerkmodus: LTE/TD-SCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Bevorzugter Netzwerkmodus: TD-SCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Bevorzugter Netzwerkmodus: LTE/GSM/TD-SCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Bevorzugter Netzwerkmodus: TD-SCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Bevorzugter Netzwerkmodus: LTE/TD-SCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Bevorzugter Netzwerkmodus: LTE/TD-SCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Bevorzugter Netzwerkmodus: TD-SCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Bevorzugter Netzwerkmodus: LTE/TD-SCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (empfohlen)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (empfohlen)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Verfügbare Netzwerke"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Wird gesucht…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registrierung in <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Deine SIM-Karte lässt keine Verbindung mit diesem Netzwerk zu."</string>
+ <string name="connect_later" msgid="978991102125216741">"Momentan kann keine Verbindung mit diesem Netzwerk aufgebaut werden. Bitte versuch es später noch einmal."</string>
+ <string name="registration_done" msgid="4573820010512184521">"In Netzwerk registriert."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Netzwerk automatisch auswählen"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Mobilfunkanbieter-Einstellungen"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Datendienst einrichten"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobile Daten"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Datenzugriff über Mobilfunknetz"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Bevorzugter Netzwerktyp"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Netzwerkmodus ändern"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Bevorzugter Netzwerktyp"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Mobilfunkanbieter"</string>
+ <string name="call_category" msgid="8108654745239563833">"Anruffunktionen"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videoanrufe über Mobilfunkanbieter"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Systemauswahl"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA-Roamingmodus ändern"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Systemauswahl"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Netzwerk"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Netzwerk"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA-Abo"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Zwischen RUIM/SIM und NV wechseln"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"Abo"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatische Registrierung…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Daten-Roaming zulassen?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Wenn du Informationen zu Preisen erhalten möchtest, wende dich bitte an deinen Netzwerkanbieter."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Datennutzung durch Apps"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Ungültiger Netzwerkmodus <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorieren."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Bei Verbindung mit <xliff:g id="CARRIER">%1$s</xliff:g> nicht verfügbar"</string>
+ <string name="see_more" msgid="5953815986207345223">"Mehr anzeigen"</string>
+ <string name="see_less" msgid="1250265310929558370">"Weniger anzeigen"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index 54e01a0..5b176df 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Χρήση ως δικτύου με περιορισμούς"</item>
<item msgid="2266114985518865625">"Χρήση ως δικτύου χωρίς περιορισμούς"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Προεπιλογή (χρήση τυχαίας διεύθυνσης MAC)"</item>
+ <item msgid="5398461510512959597">"Αξιόπιστος"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Όχι"</item>
<item msgid="3863157480502955888">"Ναι"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Εντοπισμός σφαλμάτων"</item>
<item msgid="5286514712714822064">"Λεπτομερής"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Μόνο αρχική σελίδα"</item>
+ <item msgid="5034813753274486448">"Αυτόματo"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Προτιμώνται GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"Μόνο GSM"</item>
+ <item msgid="488474605709912156">"Μόνο WCDMA"</item>
+ <item msgid="1912421096218750039">"Αυτόματο GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"Αυτόματο EvDo/CDMA"</item>
+ <item msgid="370391313511477301">"CDMA χωρίς EvDo"</item>
+ <item msgid="4678789463133969294">"Μόνο EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Παγκόσμιο"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Μόνο TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Παγκόσμιο"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index a9bf0c3..3298cfc 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Δημιουργία"</string>
<string name="allow" msgid="3349662621170855910">"Αποδοχή"</string>
<string name="deny" msgid="6947806159746484865">"Απόρριψη"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Κλείσιμο"</string>
<string name="device_info_default" msgid="7847265875578739287">"Άγνωστο"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Απομένουν <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> βήματα για να γίνετε προγραμματιστής.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Επιλέξτε τουλάχιστον μία ζώνη συχνοτήτων για το σημείο πρόσβασης Wi‑Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Ρυθμίσεις IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Απόρρητο"</string>
<string name="wifi_shared" msgid="844142443226926070">"Κοινή χρήση με άλλους χρήστες της συσκευής"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(δεν έγινε αλλαγή)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Επιλέξτε"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Δεν αλλάζει το PIN.\nΊσως να είναι λάθος."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"Το PIN της κάρτας SIM άλλαξε"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Δεν είναι δυνατή η αλλαγή της κατάστασης κλειδώματος της κάρτας SIM.\nΠιθανόν το PIN να είναι λάθος."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Δεν είναι δυνατή η απενεργοποίηση του PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Δεν είναι δυνατή η ενεργοποίηση του PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Ακύρωση"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Βρέθηκαν πολλές SIM"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Εμφάνιση %d κρυφών στοιχείων</item>
<item quantity="one">Εμφάνιση %d κρυφού στοιχείου</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Σύμπτυξη"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Δίκτυο και διαδίκτυο"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"δίκτυο κινητής τηλεφωνίας"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"χρήση δεδομένων"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"σκούρο θέμα"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"σφάλμα"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Οθόνη περιβάλλοντος, Οθόνη κλειδώματος οθόνης"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ειδοποίηση οθόνης κλειδώματος"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"πρόσωπο"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"δακτυλικό αποτύπωμα"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"μείωση φωτεινότητας οθόνης, οθόνη αφής, μπαταρία, έξυπνη φωτεινότητα, δυναμική φωτεινότητα"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Εσωτερικός αποθηκευτικός χώρος: <xliff:g id="PERCENTAGE">%1$s</xliff:g> χρησιμοποιείται - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ελεύθερος"</string>
<string name="display_summary" msgid="6737806235882127328">"Αδράνεια μετά από <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> απουσίας δραστηριότητας"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Ταπετσαρία, αδράνεια, μέγεθος γραμματοσειράς"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Αδράνεια μετά από 10 λεπτά απουσίας δραστηριότητας"</string>
<string name="memory_summary" msgid="8080825904671961872">"Χρησιμοποιείται κατά μέσο όρο <xliff:g id="USED_MEMORY">%1$s</xliff:g> από <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> μνήμης"</string>
<string name="users_summary" msgid="1674864467098487328">"Συνδέθηκε ως <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Λεπτομέρειες δικτύου"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Το όνομα της συσκευής σας είναι ορατό σε εφαρμογές στο τηλέφωνό σας. Ενδέχεται επίσης να είναι ορατό και σε άλλα άτομα, όταν συνδέεστε σε συσκευές Bluetooth ή ρυθμίζετε ένα σημείο πρόσβασης Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Συσκευές"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Πίνακας υψηλών συχνοτήτων"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Ενεργοποίηση εικονικού πίνακα υψηλών συχνοτήτων"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Όλες οι ρυθμίσεις"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Οι ρυθμίσεις σας"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Προτάσεις"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Δεδομένα CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Δεδομένα CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Επιλογή δικτύου"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Δεν ήταν δυνατή η εύρεση δικτύων. Δοκιμάστε ξανά."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(απαγορευμένο)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Δεν υπάρχει κάρτα SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Σύνθετες λειτουργίες κλήσης"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Προτιμώμενη λειτουργία δικτύου: προτιμώμενο WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Προτιμώμενη λειτουργία δικτύου: μόνο GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Προτιμώμενη λειτουργία δικτύου: μόνο WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Προτιμώμενη λειτουργία δικτύου: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Προτιμώμενη λειτουργία δικτύου: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Προτιμώμενη λειτουργία δικτύου: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Προτιμώμενη λειτουργία δικτύου: μόνο CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Προτιμώμενη λειτουργία δικτύου: μόνο EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Προτιμώμενη λειτουργία δικτύου: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Προτιμώμενη λειτουργία δικτύου: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Προτιμώμενη λειτουργία δικτύου: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Προτιμώμενη λειτουργία δικτύου: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Προτιμώμενη λειτουργία δικτύου: Παγκόσμιο"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Προτιμώμενη λειτουργία δικτύου: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Προτιμώμενη λειτουργία δικτύου: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Προτιμώμενη λειτουργία δικτύου: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Προτιμώμενη λειτουργία δικτύου: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Προτιμώμενη λειτουργία δικτύου: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Προτιμώμενη λειτουργία δικτύου: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Προτιμώμενη λειτουργία δικτύου: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Προτιμώμενη λειτουργία δικτύου: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Προτιμώμενη λειτουργία δικτύου: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Προτιμώμενη λειτουργία δικτύου: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Προτιμώμενη λειτουργία δικτύου: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Προτιμώμενη λειτουργία δικτύου: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Προτιμώμενη λειτουργία δικτύου: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (συνιστάται)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (συνιστάται)"</string>
+ <string name="network_global" msgid="959947774831178632">"Παγκόσμιο"</string>
+ <string name="label_available" msgid="1731547832803057893">"Διαθέσιμα δίκτυα"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Αναζήτηση…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Εγγραφή στο δίκτυο <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Η κάρτα SIM δεν επιτρέπει τη σύνδεση σε αυτό το δίκτυο."</string>
+ <string name="connect_later" msgid="978991102125216741">"Δεν είναι δυνατή η σύνδεση στο δίκτυο αυτήν τη στιγμή. Προσπαθήστε ξανά αργότερα."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Εγγράφηκε στο δίκτυο."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Αυτόματη επιλογή δικτύου"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Ρυθμίσεις εταιρείας κινητής τηλεφωνίας"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Ρύθμιση υπηρεσίας δεδομένων"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Δεδομένα κινητής τηλεφωνίας"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Πρόσβαση σε δεδομένα μέσω δικτύου κινητής τηλεφωνίας"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Προτιμώμενος τύπος δικτύου"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Αλλαγή κατάστασης λειτουργίας δικτύου"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Προτιμώμενος τύπος δικτύου"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Εταιρεία κινητής τηλεφωνίας"</string>
+ <string name="call_category" msgid="8108654745239563833">"Κλήση"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Βιντεοκλήση μέσω εταιρείας κινητής τηλεφωνίας"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Επιλογή συστήματος"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Αλλαγή της λειτουργίας περιαγωγής CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Επιλογή συστήματος"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Δίκτυο"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Δίκτυο"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Συνδρομή CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Αλλαγή μεταξύ RUIM/SIM και NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"συνδρομή"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Αυτόματη εγγραφή…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Να επιτρέπεται η περιαγωγή δεδομένων;"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Επικοινωνήστε με τον πάροχο του δικτύου για πληροφορίες σχετικά με τις τιμές."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Χρήση δεδομένων εφαρμογών"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Μη έγκυρη λειτουργία δικτύου <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Παράβλεψη."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Δεν διατίθεται κατά τη σύνδεση σε <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Δείτε περισσότερα"</string>
+ <string name="see_less" msgid="1250265310929558370">"Εμφάνιση λιγότερων"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> συνδεδεμένες συσκευές</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> συνδεδεμένη συσκευή</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Δεν υπάρχουν συνδεδεμένες συσκευές"</string>
</resources>
diff --git a/res/values-en-rAU/arrays.xml b/res/values-en-rAU/arrays.xml
index e6bb9b5..4f1a76a 100644
--- a/res/values-en-rAU/arrays.xml
+++ b/res/values-en-rAU/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Treat as metered"</item>
<item msgid="2266114985518865625">"Treat as unmetered"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Default (use randomised MAC)"</item>
+ <item msgid="5398461510512959597">"Trusted"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"No"</item>
<item msgid="3863157480502955888">"Yes"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Debug"</item>
<item msgid="5286514712714822064">"Verbose"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Home only"</item>
+ <item msgid="5034813753274486448">"Automatic"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA preferred"</item>
+ <item msgid="807926878589867564">"GSM only"</item>
+ <item msgid="488474605709912156">"WCDMA only"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA auto"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo auto"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo only"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA only"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index a442510..026c58c 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Create"</string>
<string name="allow" msgid="3349662621170855910">"Allow"</string>
<string name="deny" msgid="6947806159746484865">"Deny"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Close"</string>
<string name="device_info_default" msgid="7847265875578739287">"Unknown"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">You are now <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steps away from being a developer.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Choose at least one band for Wi‑Fi hotspot:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP settings"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacy"</string>
<string name="wifi_shared" msgid="844142443226926070">"Share with other device users"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(unchanged)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Please select"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Can\'t change PIN.\nPossibly incorrect PIN."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN changed successfully"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Can\'t change SIM card lock state.\nPossibly incorrect PIN."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Can\'t disable PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Can\'t enable PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Cancel"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Multiple SIMs found"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Show %d hidden items</item>
<item quantity="one">Show %d hidden item</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Collapse"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Network & Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"Mobile"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"Data usage"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"dark theme"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"bug"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient display, Lock screen display"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lock screen notification"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"face"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim screen, touchscreen, battery, smart brightness, dynamic brightness"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Internal storage: <xliff:g id="PERCENTAGE">%1$s</xliff:g> used – <xliff:g id="FREE_SPACE">%2$s</xliff:g> free"</string>
<string name="display_summary" msgid="6737806235882127328">"Sleep after <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> of inactivity"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Wallpaper, sleep, font size"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Sleep after 10 minutes of inactivity"</string>
<string name="memory_summary" msgid="8080825904671961872">"Avg <xliff:g id="USED_MEMORY">%1$s</xliff:g> of <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memory used"</string>
<string name="users_summary" msgid="1674864467098487328">"Signed in as <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Network details"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Your device name is visible to apps on your phone. It may also be seen by other people when you connect to Bluetooth devices or set up a Wi-Fi hotspot."</string>
<string name="devices_title" msgid="7701726109334110391">"Devices"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"High Frequency Panel"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Enable Virtual High Frequency Panel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"All Settings"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Your Settings"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Suggestions"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS Data"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS Data"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Choose network"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Couldn’t find networks. Try again."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(forbidden)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"No SIM card"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Advanced Calling"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Preferred network mode: WCDMA preferred"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Preferred network mode: GSM only"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Preferred network mode: WCDMA only"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Preferred network mode: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Preferred network mode: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Preferred network mode: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Preferred network mode: CDMA only"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Preferred network mode: EvDo only"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Preferred network mode: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Preferred network mode: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Preferred network mode: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Preferred network mode: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Preferred network mode: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Preferred network mode: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Preferred network mode: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Preferred network mode: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Preferred network mode: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Preferred network mode: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Preferred network mode: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Preferred network mode: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Preferred network mode: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Preferred network mode: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Preferred network mode: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Preferred network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (recommended)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (recommended)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Available networks"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Searching…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registering on <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Your SIM card doesn’t allow a connection to this network."</string>
+ <string name="connect_later" msgid="978991102125216741">"Can’t connect to this network at the moment. Try again later."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registered on network."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Automatically select network"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Operator settings"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Set up data service"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobile data"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Access data using mobile network"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Preferred network type"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Change the network operating mode"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Preferred network type"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operator"</string>
+ <string name="call_category" msgid="8108654745239563833">"Calling"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Operator video calling"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"System select"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Change the CDMA roaming mode"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"System select"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Network"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Network"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA subscription"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Change between RUIM/SIM and NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"subscription"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatic registration…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Allow data roaming?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Check with your network provider for pricing."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"App data usage"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Invalid network mode <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignore."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Unavailable when connected to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"See more"</string>
+ <string name="see_less" msgid="1250265310929558370">"See less"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-en-rCA/arrays.xml b/res/values-en-rCA/arrays.xml
index e6bb9b5..4f1a76a 100644
--- a/res/values-en-rCA/arrays.xml
+++ b/res/values-en-rCA/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Treat as metered"</item>
<item msgid="2266114985518865625">"Treat as unmetered"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Default (use randomised MAC)"</item>
+ <item msgid="5398461510512959597">"Trusted"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"No"</item>
<item msgid="3863157480502955888">"Yes"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Debug"</item>
<item msgid="5286514712714822064">"Verbose"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Home only"</item>
+ <item msgid="5034813753274486448">"Automatic"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA preferred"</item>
+ <item msgid="807926878589867564">"GSM only"</item>
+ <item msgid="488474605709912156">"WCDMA only"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA auto"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo auto"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo only"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA only"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index dbb84e2..93eb896 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Create"</string>
<string name="allow" msgid="3349662621170855910">"Allow"</string>
<string name="deny" msgid="6947806159746484865">"Deny"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Close"</string>
<string name="device_info_default" msgid="7847265875578739287">"Unknown"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">You are now <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steps away from being a developer.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Choose at least one band for Wi‑Fi hotspot:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP settings"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacy"</string>
<string name="wifi_shared" msgid="844142443226926070">"Share with other device users"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(unchanged)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Please select"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Can\'t change PIN.\nPossibly incorrect PIN."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN changed successfully"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Can\'t change SIM card lock state.\nPossibly incorrect PIN."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Can\'t disable PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Can\'t enable PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Cancel"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Multiple SIMs found"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Show %d hidden items</item>
<item quantity="one">Show %d hidden item</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Collapse"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Network & Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"Mobile"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"Data usage"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"dark theme"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"bug"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient display, Lock screen display"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lock screen notification"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"face"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim screen, touchscreen, battery, smart brightness, dynamic brightness"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Internal storage: <xliff:g id="PERCENTAGE">%1$s</xliff:g> used – <xliff:g id="FREE_SPACE">%2$s</xliff:g> free"</string>
<string name="display_summary" msgid="6737806235882127328">"Sleep after <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> of inactivity"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Wallpaper, sleep, font size"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Sleep after 10 minutes of inactivity"</string>
<string name="memory_summary" msgid="8080825904671961872">"Avg <xliff:g id="USED_MEMORY">%1$s</xliff:g> of <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memory used"</string>
<string name="users_summary" msgid="1674864467098487328">"Signed in as <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Network details"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Your device name is visible to apps on your phone. It may also be seen by other people when you connect to Bluetooth devices or set up a Wi-Fi hotspot."</string>
<string name="devices_title" msgid="7701726109334110391">"Devices"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"High Frequency Panel"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Enable Virtual High Frequency Panel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"All Settings"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Your Settings"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Suggestions"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS Data"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS Data"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Choose network"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Couldn’t find networks. Try again."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(forbidden)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"No SIM card"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Advanced Calling"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Preferred network mode: WCDMA preferred"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Preferred network mode: GSM only"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Preferred network mode: WCDMA only"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Preferred network mode: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Preferred network mode: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Preferred network mode: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Preferred network mode: CDMA only"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Preferred network mode: EvDo only"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Preferred network mode: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Preferred network mode: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Preferred network mode: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Preferred network mode: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Preferred network mode: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Preferred network mode: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Preferred network mode: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Preferred network mode: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Preferred network mode: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Preferred network mode: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Preferred network mode: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Preferred network mode: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Preferred network mode: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Preferred network mode: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Preferred network mode: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Preferred network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (recommended)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (recommended)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Available networks"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Searching…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registering on <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Your SIM card doesn’t allow a connection to this network."</string>
+ <string name="connect_later" msgid="978991102125216741">"Can’t connect to this network at the moment. Try again later."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registered on network."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Automatically select network"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Operator settings"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Set up data service"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobile data"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Access data using mobile network"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Preferred network type"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Change the network operating mode"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Preferred network type"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operator"</string>
+ <string name="call_category" msgid="8108654745239563833">"Calling"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Operator video calling"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"System select"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Change the CDMA roaming mode"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"System select"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Network"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Network"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA subscription"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Change between RUIM/SIM and NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"subscription"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatic registration…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Allow data roaming?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Check with your network provider for pricing."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"App data usage"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Invalid network mode <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignore."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Unavailable when connected to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"See more"</string>
+ <string name="see_less" msgid="1250265310929558370">"See less"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> devices connected</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> device connected</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"No connected devices"</string>
</resources>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
index e6bb9b5..4f1a76a 100644
--- a/res/values-en-rGB/arrays.xml
+++ b/res/values-en-rGB/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Treat as metered"</item>
<item msgid="2266114985518865625">"Treat as unmetered"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Default (use randomised MAC)"</item>
+ <item msgid="5398461510512959597">"Trusted"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"No"</item>
<item msgid="3863157480502955888">"Yes"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Debug"</item>
<item msgid="5286514712714822064">"Verbose"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Home only"</item>
+ <item msgid="5034813753274486448">"Automatic"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA preferred"</item>
+ <item msgid="807926878589867564">"GSM only"</item>
+ <item msgid="488474605709912156">"WCDMA only"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA auto"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo auto"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo only"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA only"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index a442510..026c58c 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Create"</string>
<string name="allow" msgid="3349662621170855910">"Allow"</string>
<string name="deny" msgid="6947806159746484865">"Deny"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Close"</string>
<string name="device_info_default" msgid="7847265875578739287">"Unknown"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">You are now <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steps away from being a developer.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Choose at least one band for Wi‑Fi hotspot:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP settings"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacy"</string>
<string name="wifi_shared" msgid="844142443226926070">"Share with other device users"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(unchanged)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Please select"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Can\'t change PIN.\nPossibly incorrect PIN."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN changed successfully"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Can\'t change SIM card lock state.\nPossibly incorrect PIN."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Can\'t disable PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Can\'t enable PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Cancel"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Multiple SIMs found"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Show %d hidden items</item>
<item quantity="one">Show %d hidden item</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Collapse"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Network & Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"Mobile"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"Data usage"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"dark theme"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"bug"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient display, Lock screen display"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lock screen notification"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"face"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim screen, touchscreen, battery, smart brightness, dynamic brightness"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Internal storage: <xliff:g id="PERCENTAGE">%1$s</xliff:g> used – <xliff:g id="FREE_SPACE">%2$s</xliff:g> free"</string>
<string name="display_summary" msgid="6737806235882127328">"Sleep after <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> of inactivity"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Wallpaper, sleep, font size"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Sleep after 10 minutes of inactivity"</string>
<string name="memory_summary" msgid="8080825904671961872">"Avg <xliff:g id="USED_MEMORY">%1$s</xliff:g> of <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memory used"</string>
<string name="users_summary" msgid="1674864467098487328">"Signed in as <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Network details"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Your device name is visible to apps on your phone. It may also be seen by other people when you connect to Bluetooth devices or set up a Wi-Fi hotspot."</string>
<string name="devices_title" msgid="7701726109334110391">"Devices"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"High Frequency Panel"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Enable Virtual High Frequency Panel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"All Settings"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Your Settings"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Suggestions"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS Data"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS Data"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Choose network"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Couldn’t find networks. Try again."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(forbidden)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"No SIM card"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Advanced Calling"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Preferred network mode: WCDMA preferred"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Preferred network mode: GSM only"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Preferred network mode: WCDMA only"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Preferred network mode: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Preferred network mode: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Preferred network mode: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Preferred network mode: CDMA only"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Preferred network mode: EvDo only"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Preferred network mode: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Preferred network mode: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Preferred network mode: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Preferred network mode: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Preferred network mode: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Preferred network mode: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Preferred network mode: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Preferred network mode: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Preferred network mode: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Preferred network mode: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Preferred network mode: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Preferred network mode: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Preferred network mode: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Preferred network mode: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Preferred network mode: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Preferred network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (recommended)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (recommended)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Available networks"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Searching…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registering on <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Your SIM card doesn’t allow a connection to this network."</string>
+ <string name="connect_later" msgid="978991102125216741">"Can’t connect to this network at the moment. Try again later."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registered on network."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Automatically select network"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Operator settings"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Set up data service"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobile data"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Access data using mobile network"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Preferred network type"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Change the network operating mode"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Preferred network type"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operator"</string>
+ <string name="call_category" msgid="8108654745239563833">"Calling"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Operator video calling"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"System select"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Change the CDMA roaming mode"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"System select"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Network"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Network"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA subscription"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Change between RUIM/SIM and NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"subscription"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatic registration…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Allow data roaming?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Check with your network provider for pricing."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"App data usage"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Invalid network mode <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignore."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Unavailable when connected to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"See more"</string>
+ <string name="see_less" msgid="1250265310929558370">"See less"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-en-rIN/arrays.xml b/res/values-en-rIN/arrays.xml
index e6bb9b5..4f1a76a 100644
--- a/res/values-en-rIN/arrays.xml
+++ b/res/values-en-rIN/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Treat as metered"</item>
<item msgid="2266114985518865625">"Treat as unmetered"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Default (use randomised MAC)"</item>
+ <item msgid="5398461510512959597">"Trusted"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"No"</item>
<item msgid="3863157480502955888">"Yes"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Debug"</item>
<item msgid="5286514712714822064">"Verbose"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Home only"</item>
+ <item msgid="5034813753274486448">"Automatic"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA preferred"</item>
+ <item msgid="807926878589867564">"GSM only"</item>
+ <item msgid="488474605709912156">"WCDMA only"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA auto"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo auto"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo only"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA only"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index a442510..026c58c 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Create"</string>
<string name="allow" msgid="3349662621170855910">"Allow"</string>
<string name="deny" msgid="6947806159746484865">"Deny"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Close"</string>
<string name="device_info_default" msgid="7847265875578739287">"Unknown"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">You are now <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steps away from being a developer.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Choose at least one band for Wi‑Fi hotspot:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP settings"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacy"</string>
<string name="wifi_shared" msgid="844142443226926070">"Share with other device users"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(unchanged)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Please select"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Can\'t change PIN.\nPossibly incorrect PIN."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN changed successfully"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Can\'t change SIM card lock state.\nPossibly incorrect PIN."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Can\'t disable PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Can\'t enable PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Cancel"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Multiple SIMs found"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Show %d hidden items</item>
<item quantity="one">Show %d hidden item</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Collapse"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Network & Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"Mobile"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"Data usage"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"dark theme"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"bug"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient display, Lock screen display"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lock screen notification"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"face"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim screen, touchscreen, battery, smart brightness, dynamic brightness"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Internal storage: <xliff:g id="PERCENTAGE">%1$s</xliff:g> used – <xliff:g id="FREE_SPACE">%2$s</xliff:g> free"</string>
<string name="display_summary" msgid="6737806235882127328">"Sleep after <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> of inactivity"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Wallpaper, sleep, font size"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Sleep after 10 minutes of inactivity"</string>
<string name="memory_summary" msgid="8080825904671961872">"Avg <xliff:g id="USED_MEMORY">%1$s</xliff:g> of <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memory used"</string>
<string name="users_summary" msgid="1674864467098487328">"Signed in as <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Network details"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Your device name is visible to apps on your phone. It may also be seen by other people when you connect to Bluetooth devices or set up a Wi-Fi hotspot."</string>
<string name="devices_title" msgid="7701726109334110391">"Devices"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"High Frequency Panel"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Enable Virtual High Frequency Panel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"All Settings"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Your Settings"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Suggestions"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS Data"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS Data"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Choose network"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Couldn’t find networks. Try again."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(forbidden)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"No SIM card"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Advanced Calling"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Preferred network mode: WCDMA preferred"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Preferred network mode: GSM only"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Preferred network mode: WCDMA only"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Preferred network mode: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Preferred network mode: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Preferred network mode: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Preferred network mode: CDMA only"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Preferred network mode: EvDo only"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Preferred network mode: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Preferred network mode: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Preferred network mode: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Preferred network mode: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Preferred network mode: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Preferred network mode: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Preferred network mode: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Preferred network mode: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Preferred network mode: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Preferred network mode: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Preferred network mode: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Preferred network mode: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Preferred network mode: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Preferred network mode: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Preferred network mode: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Preferred network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (recommended)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (recommended)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Available networks"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Searching…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registering on <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Your SIM card doesn’t allow a connection to this network."</string>
+ <string name="connect_later" msgid="978991102125216741">"Can’t connect to this network at the moment. Try again later."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registered on network."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Automatically select network"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Operator settings"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Set up data service"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobile data"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Access data using mobile network"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Preferred network type"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Change the network operating mode"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Preferred network type"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operator"</string>
+ <string name="call_category" msgid="8108654745239563833">"Calling"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Operator video calling"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"System select"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Change the CDMA roaming mode"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"System select"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Network"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Network"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA subscription"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Change between RUIM/SIM and NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"subscription"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatic registration…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Allow data roaming?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Check with your network provider for pricing."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"App data usage"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Invalid network mode <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignore."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Unavailable when connected to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"See more"</string>
+ <string name="see_less" msgid="1250265310929558370">"See less"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-en-rXC/arrays.xml b/res/values-en-rXC/arrays.xml
index fcfec24..ea0b549 100644
--- a/res/values-en-rXC/arrays.xml
+++ b/res/values-en-rXC/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Treat as metered"</item>
<item msgid="2266114985518865625">"Treat as unmetered"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Default (use randomized MAC)"</item>
+ <item msgid="5398461510512959597">"Trusted"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"No"</item>
<item msgid="3863157480502955888">"Yes"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Debug"</item>
<item msgid="5286514712714822064">"Verbose"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Home only"</item>
+ <item msgid="5034813753274486448">"Automatic"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA preferred"</item>
+ <item msgid="807926878589867564">"GSM only"</item>
+ <item msgid="488474605709912156">"WCDMA only"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA auto"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo auto"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo only"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA only"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 5c0edeb..bea9276 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Create"</string>
<string name="allow" msgid="3349662621170855910">"Allow"</string>
<string name="deny" msgid="6947806159746484865">"Deny"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Close"</string>
<string name="device_info_default" msgid="7847265875578739287">"Unknown"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">You are now <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steps away from being a developer.</item>
@@ -891,6 +890,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Choose at least one band for Wi‑Fi hotspot:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP settings"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacy"</string>
<string name="wifi_shared" msgid="844142443226926070">"Share with other device users"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(unchanged)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Please select"</string>
@@ -1204,6 +1204,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Can’t change PIN.\nPossibly incorrect PIN."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN changed successfully"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Can’t change SIM card lock state.\nPossibly incorrect PIN."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Can\'t disable PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Can\'t enable PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Cancel"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Multiple SIMs found"</string>
@@ -2930,7 +2932,6 @@
<item quantity="other">Show %d hidden items</item>
<item quantity="one">Show %d hidden item</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Collapse"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Network & internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobile"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"data usage"</string>
@@ -3000,6 +3001,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"dark theme"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"bug"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient display, Lock screen display"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lock screen notification"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"face"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim screen, touchscreen, battery, smart brightness, dynamic brightness"</string>
@@ -3709,6 +3711,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Internal storage: <xliff:g id="PERCENTAGE">%1$s</xliff:g> used - <xliff:g id="FREE_SPACE">%2$s</xliff:g> free"</string>
<string name="display_summary" msgid="6737806235882127328">"Sleep after <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> of inactivity"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Wallpaper, sleep, font size"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Sleep after 10 minutes of inactivity"</string>
<string name="memory_summary" msgid="8080825904671961872">"Avg <xliff:g id="USED_MEMORY">%1$s</xliff:g> of <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memory used"</string>
<string name="users_summary" msgid="1674864467098487328">"Signed in as <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4153,10 +4157,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Network details"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Your device name is visible to apps on your phone. It may also be seen by other people when you connect to Bluetooth devices or set up a Wi-Fi hotspot."</string>
<string name="devices_title" msgid="7701726109334110391">"Devices"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"High Frequency Panel"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Enable Virtual High Frequency Panel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"All Settings"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Your Settings"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Suggestions"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS Data"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS Data"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Choose network"</string>
@@ -4168,4 +4170,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Couldn’t find networks. Try again."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(forbidden)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"No SIM card"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Advanced Calling"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Preferred network mode: WCDMA preferred"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Preferred network mode: GSM only"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Preferred network mode: WCDMA only"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Preferred network mode: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Preferred network mode: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Preferred network mode: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Preferred network mode: CDMA only"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Preferred network mode: EvDo only"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Preferred network mode: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Preferred network mode: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Preferred network mode: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Preferred network mode: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Preferred network mode: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Preferred network mode: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Preferred network mode: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Preferred network mode: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Preferred network mode: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Preferred network mode: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Preferred network mode: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Preferred network mode: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Preferred network mode: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Preferred network mode: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Preferred network mode: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Preferred network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (recommended)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (recommended)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Available networks"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Searching…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registering on <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Your SIM card doesn’t allow a connection to this network."</string>
+ <string name="connect_later" msgid="978991102125216741">"Can’t connect to this network right now. Try again later."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registered on network."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Automatically select network"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Carrier settings"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Set up data service"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobile data"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Access data using mobile network"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Preferred network type"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Change the network operating mode"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Preferred network type"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Carrier"</string>
+ <string name="call_category" msgid="8108654745239563833">"Calling"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Carrier video calling"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"System select"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Change the CDMA roaming mode"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"System select"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Network"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Network"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA subscription"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Change between RUIM/SIM and NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"subscription"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatic registration…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Allow data roaming?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Check with your network provider for pricing."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"App data usage"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Invalid Network Mode <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignore."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Unavailable when connected to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"See more"</string>
+ <string name="see_less" msgid="1250265310929558370">"See less"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> devices connected</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> device connected</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"No connected devices"</string>
</resources>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index 342e8f3..b20c31a 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Tratar como red de uso medido"</item>
<item msgid="2266114985518865625">"Tratar como red sin tarifa plana"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Predeterminada (usar dirección MAC aleatoria)"</item>
+ <item msgid="5398461510512959597">"De confianza"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"No"</item>
<item msgid="3863157480502955888">"Sí"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Depurado"</item>
<item msgid="5286514712714822064">"Detallado"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Página principal solamente"</item>
+ <item msgid="5034813753274486448">"Automático"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA preferido"</item>
+ <item msgid="807926878589867564">"Solo GSM"</item>
+ <item msgid="488474605709912156">"Solo WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA automático"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo automático"</item>
+ <item msgid="370391313511477301">"CDMA sin EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo solamente"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Solo TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 28e2ed1..276568e 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Crear"</string>
<string name="allow" msgid="3349662621170855910">"Permitir"</string>
<string name="deny" msgid="6947806159746484865">"Rechazar"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Cerrar"</string>
<string name="device_info_default" msgid="7847265875578739287">"Desconocido"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Estás a <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> pasos de ser programador.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Elige al menos una banda para el hotspot de Wi-Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Configuración de IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacidad"</string>
<string name="wifi_shared" msgid="844142443226926070">"Compartir con otros usuarios del dispositivo"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(sin cambios)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Selecciona"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"No se puede cambiar el PIN.\nPIN posiblemente incorrecto."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"El PIN de la tarjeta SIM se ha cambiado correctamente"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"No se puede cambiar el estado de bloqueo de la tarjeta SIM.\nPIN posiblemente incorrecto."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"No se puede inhabilitar el PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"No se puede habilitar el PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Aceptar"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Cancelar"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Se encontraron varias tarjetas SIM"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Mostrar %d elementos ocultos</item>
<item quantity="one">Mostrar %d elemento oculto</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Contraer"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Internet y red"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"red móvil"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"uso de datos"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tema oscuro"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"error"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Pantalla Ambiente, pantalla bloqueada"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificación en pantalla bloqueada"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"rostro"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"huella digital"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"atenuar pantalla, pantalla táctil, batería, brillo inteligente, brillo dinámico"</string>
@@ -3651,7 +3653,7 @@
<string name="system_alert_window_apps_title" msgid="7005760279028569491">"Aplicaciones"</string>
<string name="system_alert_window_access_title" msgid="6297115362542361241">"Mostrar sobre otras apps"</string>
<string name="permit_draw_overlay" msgid="7456536798718633432">"Permitir mostrar sobre otras apps"</string>
- <string name="allow_overlay_description" msgid="8961670023925421358">"Permite que esta app se muestre sobre otras que estén en uso. Es posible que interfiera con el uso de dichas apps o cambie su apariencia o comportamiento."</string>
+ <string name="allow_overlay_description" msgid="8961670023925421358">"Permite que esta app se muestre sobre otras en uso. Es posible que interfiera con el uso de esas apps o cambie afecte su apariencia o el comportamiento."</string>
<string name="keywords_vr_listener" msgid="7441221822576384680">"rv, procesador de realidad virtual, estéreo, servicio de ayuda"</string>
<string name="keywords_system_alert_window" msgid="5049498015597864850">"sistema, alerta, ventana, cuadro de diálogo, mostrar sobre otras apps"</string>
<string name="overlay_settings" msgid="6930854109449524280">"Mostrar sobre otras apps"</string>
@@ -3708,6 +3710,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Almacenamiento interno: <xliff:g id="PERCENTAGE">%1$s</xliff:g> en uso (<xliff:g id="FREE_SPACE">%2$s</xliff:g> libre)"</string>
<string name="display_summary" msgid="6737806235882127328">"Suspender después de <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> de inactividad"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Fondo de pantalla, suspender, tamaño de fuente"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Suspender después de 10 minutos de inactividad"</string>
<string name="memory_summary" msgid="8080825904671961872">"Se usó un promedio de <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memoria"</string>
<string name="users_summary" msgid="1674864467098487328">"Accediste como <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4152,10 +4156,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Detalles de la red"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"El nombre de tu dispositivo es visible para las apps del teléfono. Es posible que también lo vean otras personas cuando te conectes a dispositivos Bluetooth o configures un hotspot de Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Dispositivos"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Panel de alta frecuencia"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Habilitar panel virtual de alta frecuencia"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Toda la configuración"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Tu configuración"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Sugerencias"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Datos de CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Datos de CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Elegir una red"</string>
@@ -4167,4 +4169,70 @@
<string name="network_query_error" msgid="7487714485362598410">"No se encontraron redes. Vuelve a intentarlo."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(prohibida)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Sin tarjeta SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Llamadas avanzadas"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Modo de red preferido: WCDMA preferido"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Modo de red preferido: solo GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Modo de red preferido: solo WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Modo de red preferido: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Modo de red preferido: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Modo de red preferido: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Modo de red preferido: solo CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Modo de red preferido: solo EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Modo de red preferido: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Modo de red preferido: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Modo de red preferido: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Modo de red preferido: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Modo de red preferido: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Modo de red preferido: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Modo de red preferido: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Modo de red preferido: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Modo de red preferido: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Modo de red preferido: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Modo de red preferido: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Modo de red preferido: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Modo de red preferido: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Modo de red preferido: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Modo de red preferido: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Modo de red preferido: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Modo de red preferido: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Modo de red preferido: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (recomendado)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (recomendado)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Redes disponibles"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Buscando…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registrando en <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Tu tarjeta SIM no permite una conexión con esta red."</string>
+ <string name="connect_later" msgid="978991102125216741">"No se puede establecer una conexión con la red en este momento. Vuelve a intentarlo más adelante."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Se registró en la red."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Seleccionar red de forma automática"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Config. del proveedor"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Configurar servicio de datos"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Datos móviles"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Acceder a los datos usando la red móvil"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Tipo de red preferido"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Cambiar el modo operativo de la red"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Tipo de red preferido"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Proveedor"</string>
+ <string name="call_category" msgid="8108654745239563833">"Llamadas"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videollamada con el proveedor"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Sistema seleccionado"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Cambiar el modo de roaming de CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Sistema seleccionado"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Red"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Red"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Suscripción CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Cambiar entre RUIM/SIM y NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"suscripción"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Registro automático…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"¿Permitir el roaming de datos?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Para saber los precios, consulta con tu proveedor de red."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Uso de datos de la app"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"El modo de red no es válido: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorar."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"No está disponible cuando estás conectado a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Ver más"</string>
+ <string name="see_less" msgid="1250265310929558370">"Ver menos"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index fe1bf8d..b2cd991 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Tratar como red de uso medido"</item>
<item msgid="2266114985518865625">"Tratar como red de uso medido"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Predeterminado (usar dirección MAC aleatoria)"</item>
+ <item msgid="5398461510512959597">"De confianza"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"No"</item>
<item msgid="3863157480502955888">"Sí"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Depurar"</item>
<item msgid="5286514712714822064">"Detallado"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Solo sistema doméstico"</item>
+ <item msgid="5034813753274486448">"Automático"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Preferencia: GSM o WCDMA"</item>
+ <item msgid="807926878589867564">"Solo GSM"</item>
+ <item msgid="488474605709912156">"Solo WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM o WCDMA (automático)"</item>
+ <item msgid="5072198667819683600">"CDMA o EvDo (automático)"</item>
+ <item msgid="370391313511477301">"CDMA sin EvDo"</item>
+ <item msgid="4678789463133969294">"Solo EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA, EvDo, GSM o WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA y LTE o EvDo"</item>
+ <item msgid="8008611169788556519">"GSM, WCDMA o LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE o WCDMA"</item>
+ <item msgid="1879225673847443662">"Solo TD-SCDMA"</item>
+ <item msgid="8373504428469988469">"TD-SCDMA o WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE o TD-SCDMA"</item>
+ <item msgid="2272560096982726294">"TD-SCDMA o GSM"</item>
+ <item msgid="131738018826229696">"LTE, TD-SCDMA o GSM"</item>
+ <item msgid="629422387044789699">"TD-SCDMA, GSM o WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE, TD-SCDMA o WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE, TD-SCDMA, GSM o WCDMA"</item>
+ <item msgid="4107769721462339672">"TD-SCDMA, CDMA, EvDo, GSM o WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE, TD-SCDMA, CDMA, EvDo, GSM o WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE o CDMA"</item>
+ <item msgid="519208953133334357">"LTE, GSM o UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 7693839..483edb3 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Crear"</string>
<string name="allow" msgid="3349662621170855910">"Permitir"</string>
<string name="deny" msgid="6947806159746484865">"Denegar"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Cerrar"</string>
<string name="device_info_default" msgid="7847265875578739287">"Desconocido"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Solo te quedan <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> pasos de ser un desarrollador.</item>
@@ -364,7 +363,7 @@
<string name="profile_info_settings_title" msgid="3518603215935346604">"Información del perfil"</string>
<string name="Accounts_settings_title" msgid="1643879107901699406">"Cuentas"</string>
<string name="location_settings_title" msgid="1369675479310751735">"Ubicación"</string>
- <string name="location_settings_master_switch_title" msgid="3560242980335542411">"Utilizar la ubicación"</string>
+ <string name="location_settings_master_switch_title" msgid="3560242980335542411">"Utilizar ubicación"</string>
<string name="account_settings_title" msgid="626177544686329806">"Cuentas"</string>
<string name="security_settings_title" msgid="4918904614964215087">"Seguridad y ubicación"</string>
<string name="encryption_and_credential_settings_title" msgid="6514904533438791561">"Cifrado y credenciales"</string>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Selecciona al menos una banda para el punto de acceso Wi‑Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Ajustes de IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacidad"</string>
<string name="wifi_shared" msgid="844142443226926070">"Compartir con otros usuarios del dispositivo"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(no modificada)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Selecciona una opción"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"No se puede modificar el PIN.\nEs posible que el PIN no sea correcto."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"El PIN de la tarjeta SIM se ha modificado correctamente."</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"No se puede modificar el estado de bloqueo de la tarjeta SIM.\nEs posible que el PIN no sea correcto."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"No se puede inhabilitar el PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"No se puede habilitar el PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Aceptar"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Cancelar"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Varias SIM encontradas"</string>
@@ -2821,7 +2823,7 @@
<string name="nfc_payment_settings_title" msgid="1807298287380821613">"Toca y paga"</string>
<string name="nfc_payment_how_it_works" msgid="3028822263837896720">"Cómo funciona"</string>
<string name="nfc_payment_no_apps" msgid="5477904979148086424">"Paga en las tiendas con tu teléfono"</string>
- <string name="nfc_payment_default" msgid="8648420259219150395">"Aplicación de pago predeterminada"</string>
+ <string name="nfc_payment_default" msgid="8648420259219150395">"Aplicación de pagos predeterminada"</string>
<string name="nfc_payment_default_not_set" msgid="7485060884228447765">"No definida"</string>
<string name="nfc_payment_app_and_desc" msgid="7942415346564794258">"<xliff:g id="APP">%1$s</xliff:g> - <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
<string name="nfc_payment_use_default" msgid="3234730182120288495">"Usar aplicación predeterminada"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Mostrar %d elementos ocultos</item>
<item quantity="one">Mostrar %d elemento oculto</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Ocultar"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Redes e Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"móvil"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"uso de datos"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tema oscuro"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"error"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Pantalla ambiente, pantalla de bloqueo"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificación en pantalla de bloqueo"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"cara"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"huella digital"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"atenuar pantalla, pantalla táctil, batería, brillo inteligente, brillo dinámico"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Almacenamiento interno: <xliff:g id="PERCENTAGE">%1$s</xliff:g> usado (<xliff:g id="FREE_SPACE">%2$s</xliff:g> disponible)"</string>
<string name="display_summary" msgid="6737806235882127328">"Suspender tras <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> de inactividad"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Fondo de pantalla, suspensión, tamaño de la fuente"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Suspender tras 10 minutos de inactividad"</string>
<string name="memory_summary" msgid="8080825904671961872">"Se está usando una media de <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> de memoria"</string>
<string name="users_summary" msgid="1674864467098487328">"Has iniciado sesión como <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -3851,7 +3855,7 @@
<string name="battery_saver_on_summary" msgid="7722791295871319534">"Activado"</string>
<string name="battery_saver_off_scheduled_summary" msgid="3953785517002197881">"Se activará cuando esté al <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
<string name="battery_saver_off_summary" msgid="784360321235698247">"Desactivado"</string>
- <string name="battery_saver_button_turn_on" msgid="3699954061337848832">"Activar"</string>
+ <string name="battery_saver_button_turn_on" msgid="3699954061337848832">"Activar ahora"</string>
<string name="battery_saver_button_turn_off" msgid="5916996792004611890">"Desactivar"</string>
<string name="not_battery_optimizing" msgid="5362861851864837617">"No se está utilizando la optimización de la batería"</string>
<string name="lockscreen_remote_input" msgid="969871538778211843">"Si el dispositivo está bloqueado, evitar que se escriban respuestas u otros textos en las notificaciones"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Detalles de la red"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Las aplicaciones de tu teléfono pueden ver el nombre de tu dispositivo. También es posible que lo vean otros usuarios si lo conectas con dispositivos Bluetooth o configuras un punto de acceso Wi‑Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Dispositivos"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Panel de alta frecuencia"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Habilitar el panel virtual de alta frecuencia"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Todos los ajustes"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Tus ajustes"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Sugerencias"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Datos de CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Datos de CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Elegir red"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"No se ha encontrado ninguna red. Vuelve a intentarlo."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(prohibida)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"No hay ninguna tarjeta SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Llamadas avanzadas"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Preferencia de modo de red: WCDMA preferido"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Preferencia de modo de red: solo GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Preferencia de modo de red: solo WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Preferencia de modo de red: GSM o WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Preferencia de modo de red: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Preferencia de modo de red: CDMA o EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Preferencia de modo de red: solo CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Preferencia de modo de red: solo EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Preferencia de modo de red: CDMA, EvDo, GSM o WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Preferencia de modo de red: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Preferencia de modo de red: GSM, WCDMA o LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Preferencia de modo de red: CDMA y LTE o EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Preferencia de modo de red: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Preferencia de modo de red: LTE o WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Preferencia de modo de red: LTE, GSM o UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Preferencia de modo de red: LTE o CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Preferencia de modo de red: TD-SCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Preferencia de modo de red: TD-SCDMA o WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Preferencia de modo de red: LTE o TD-SCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Preferencia de modo de red: TD-SCDMA o GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Preferencia de modo de red: LTE, GSM o TD-SCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Preferencia de modo de red: TD-SCDMA, GSM o WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Preferencia de modo de red: LTE, TD-SCDMA o WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Preferencia de modo de red: LTE, TD-SCDMA, GSM o WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Preferencia de modo de red: TD-SCDMA, CDMA, EvDo, GSM o WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Preferencia de modo de red: LTE, TD-SCDMA, CDMA, EvDo, GSM o WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (recomendado)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (recomendado)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Redes disponibles"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Buscando…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registrándose en <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"La tarjeta SIM no permite establecer conexión con esta red."</string>
+ <string name="connect_later" msgid="978991102125216741">"No se puede conectar a la red en este momento. Inténtalo de nuevo más tarde."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registrado en la red."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Seleccionar una red automáticamente"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Ajustes del operador"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Configurar servicio de datos"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Datos móviles"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Acceder a los datos con la red móvil"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Preferencia de tipo de red"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Cambiar el modo operativo de la red"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Preferencia de tipo de red"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operador"</string>
+ <string name="call_category" msgid="8108654745239563833">"Llamadas"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videollamadas a través del operador"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Selección del sistema"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Cambiar modo de itinerancia CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Selección del sistema"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Red"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Red"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Suscripción CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Cambiar entre RUIM/SIM y NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"suscripción"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Registro automático…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"¿Permitir la itinerancia de datos?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Ponte en contacto con tu proveedor de red para consultar el precio."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Uso de datos de la aplicación"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"El modo de red <xliff:g id="NETWORKMODEID">%1$d</xliff:g> no es válido. Ignorar."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"No está disponible cuando se está conectado a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Ver más"</string>
+ <string name="see_less" msgid="1250265310929558370">"Ver menos"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositivos conectados</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> dispositivo conectado</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"No hay dispositivos conectados"</string>
</resources>
diff --git a/res/values-et/arrays.xml b/res/values-et/arrays.xml
index 2355f02..8a332e3 100644
--- a/res/values-et/arrays.xml
+++ b/res/values-et/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Käsitle mahupõhisena"</item>
<item msgid="2266114985518865625">"Käsitle mittemahupõhisena"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Vaikimisi (kasuta juhuslikku MAC-aadressi)"</item>
+ <item msgid="5398461510512959597">"Usaldusväärne"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Ei"</item>
<item msgid="3863157480502955888">"Jah"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Silumine"</item>
<item msgid="5286514712714822064">"Üksikasjalik"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Ainult kodus"</item>
+ <item msgid="5034813753274486448">"Automaatne"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Eelistatud: GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"Ainult GSM"</item>
+ <item msgid="488474605709912156">"Ainult WCDMA"</item>
+ <item msgid="1912421096218750039">"Automaatne GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"Automaatne CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"CDMA ilma EvDo-ta"</item>
+ <item msgid="4678789463133969294">"Ainult EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Üldine"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Ainult TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Üldine"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index bd7a4a4..a1abee3 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Loo"</string>
<string name="allow" msgid="3349662621170855910">"Luba"</string>
<string name="deny" msgid="6947806159746484865">"Keela"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Sule"</string>
<string name="device_info_default" msgid="7847265875578739287">"Tundmatu"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Olete nüüd <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> sammu kaugusel arendajastaatusest.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Valige WiFi-leviala lubamiseks vähemalt üks sagedusriba:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP-seaded"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privaatsus"</string>
<string name="wifi_shared" msgid="844142443226926070">"Jaga seadme teiste kasutajatega"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(muutmata)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Valige"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PIN-koodi ei saa muuta.\nPIN-kood võib vale olla."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM-i PIN-koodi muutmine õnnestus"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"SIM-kaardi lukustusolekut ei saa muuta.\nVõimalik, et PIN-kood on vale."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN-koodi ei saa keelata."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN-koodi ei saa lubada."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Tühista"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Leiti mitu SIM-kaarti"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Kuva %d peidetud üksust</item>
<item quantity="one">Kuva %d peidetud üksus</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Ahenda"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Võrk ja Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobiil"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"andmekasutus"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tume teema"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"viga"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Säästlik ekraan, lukustuskuva ekraan"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lukustuskuva märguanne"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"nägu"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"sõrmejälg"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ekraani hämardamine, puuteekraan, aku, nutikas heledus, dünaamiline heledus"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Sisemine salvestusruum: <xliff:g id="PERCENTAGE">%1$s</xliff:g> kasutatud, <xliff:g id="FREE_SPACE">%2$s</xliff:g> vaba"</string>
<string name="display_summary" msgid="6737806235882127328">"Pärast <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> tegevusetut olekut lülitatakse unerežiimi"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Taustapilt, unerežiim, fondi suurus"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Lülita unerežiimi pärast 10-minutilist tegevuseta olekut"</string>
<string name="memory_summary" msgid="8080825904671961872">"Keskmiselt on kasutusel <xliff:g id="USED_MEMORY">%1$s</xliff:g> mälu <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>-st"</string>
<string name="users_summary" msgid="1674864467098487328">"Sisse logitud kasutajana <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Võrgu üksikasjad"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Teie seadme nimi on telefonis rakendustele nähtav. Bluetoothi seadmetega ühendamisel või WiFi-pääsupunkti loomisel võivad seda näha ka teised inimesed."</string>
<string name="devices_title" msgid="7701726109334110391">"Seadmed"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Kõrgsageduslik paneel"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Luba virtuaalne kõrgsageduslik paneel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Kõik seaded"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Teie seaded"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Soovitused"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-i andmed"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-i andmed"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Vali võrk"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Võrke ei õnnestunud leida. Proovige uuesti."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(keelatud)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM-kaarti pole"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Täpsem helistamine"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Eelistatud võrgurežiim: eelistatud WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Eelistatud võrgurežiim: ainult GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Eelistatud võrgurežiim: ainult WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Eelistatud võrgurežiim: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Eelistatud võrgurežiim: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Eelistatud võrgurežiim: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Eelistatud võrgurežiim: ainult CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Eelistatud võrgurežiim: ainult EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Eelistatud võrgurežiim: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Eelistatud võrgurežiim: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Eelistatud võrgurežiim: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Eelistatud võrgurežiim: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Eelistatud võrgurežiim: üldine"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Eelistatud võrgurežiim: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Eelistatud võrgurežiim: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Eelistatud võrgurežiim: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Eelistatud võrgurežiim: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Eelistatud võrgurežiim: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Eelistatud võrgurežiim: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Eelistatud võrgurežiim: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Eelistatud võrgurežiim: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Eelistatud võrgurežiim: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Eelistatud võrgurežiim: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Eelistatud võrgurežiim: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Eelistatud võrgurežiim: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Eelistatud võrgurežiim: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (soovitatav)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (soovitatav)"</string>
+ <string name="network_global" msgid="959947774831178632">"Üldine"</string>
+ <string name="label_available" msgid="1731547832803057893">"Saadaolevad võrgud"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Otsimine …"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registreerimine võrgus <xliff:g id="NETWORK">%s</xliff:g> …"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Teie SIM-kaart ei võimalda ühendust selle võrguga."</string>
+ <string name="connect_later" msgid="978991102125216741">"Võrguga ei saa praegu ühendust. Proovige hiljem uuesti."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Võrgus registreeritud."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Vali võrk automaatselt"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Operaatori seaded"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Andmesideteenuse seadistamine"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobiilne andmeside"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Andmesideühendus mobiilsidevõrgu abil"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Eelistatud võrgutüüp"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Võrgu töörežiimi muutmine"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Eelistatud võrgutüüp"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operaator"</string>
+ <string name="call_category" msgid="8108654745239563833">"Helistamine"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Operaatori videokõne"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Süsteemi valimine"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA-rändlusrežiimi muutmine"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Süsteemi valimine"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Võrk"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Võrk"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA-tellimus"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM-i ja NV vahetamine"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"tellimus"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automaatne registreerimine …"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Kas lubada andmeside rändlus?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Hinnakirja küsige oma võrguteenuse pakkujalt."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Rakenduse andmekasutus"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Võrgu režiim <xliff:g id="NETWORKMODEID">%1$d</xliff:g> on sobimatu. Eirake seda."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Pole saadaval, kui on ühendus on loodud operaatoriga <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Kuva rohkem"</string>
+ <string name="see_less" msgid="1250265310929558370">"Kuva vähem"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other">Ühendatud on <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> seadet</item>
+ <item quantity="one">Ühendatud on <xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> seade</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Ühendatud seadmeid pole"</string>
</resources>
diff --git a/res/values-eu/arrays.xml b/res/values-eu/arrays.xml
index 6e92a23..e33d1a1 100644
--- a/res/values-eu/arrays.xml
+++ b/res/values-eu/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Tratatu sare mugatu gisa"</item>
<item msgid="2266114985518865625">"Tratatu mugatu gabeko sare gisa"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Lehenetsia (erabili ausaz aukeratutako MAC helbidea)"</item>
+ <item msgid="5398461510512959597">"Fidagarria"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Ez"</item>
<item msgid="3863157480502955888">"Bai"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Arazketa"</item>
<item msgid="5286514712714822064">"Xehatua"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Etxekoak soilik"</item>
+ <item msgid="5034813753274486448">"Automatikoa"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA hobetsita"</item>
+ <item msgid="807926878589867564">"GSM soilik"</item>
+ <item msgid="488474605709912156">"WCDMA soilik"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA automatikoa"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo automatikoa"</item>
+ <item msgid="370391313511477301">"EvDo gabeko CDMA"</item>
+ <item msgid="4678789463133969294">"EvDo soilik"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Orokorrak"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA soilik"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Orokorrak"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index f5e6e61..18491e0 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Sortu"</string>
<string name="allow" msgid="3349662621170855910">"Baimendu"</string>
<string name="deny" msgid="6947806159746484865">"Ukatu"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Itxi"</string>
<string name="device_info_default" msgid="7847265875578739287">"Ezezaguna"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other"><xliff:g id="STEP_COUNT_1">%1$d</xliff:g> urrats falta zaizkizu garatzaile izateko.</item>
@@ -83,7 +82,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 bere 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 bere 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 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_save" msgid="3450855718056759095">"Ados"</string>
<string name="sdcard_setting" product="nosdcard" msgid="8281011784066476192">"USB memoria"</string>
<string name="sdcard_setting" product="default" msgid="5922637503871474866">"SD txartela"</string>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Aukeratu gutxienez banda bat Wi-Fi sare publikorako:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP ezarpenak"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Pribatutasuna"</string>
<string name="wifi_shared" msgid="844142443226926070">"Partekatu gailuaren gainerako erabiltzaileekin"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(aldatu gabea)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Hautatu"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Ezin da PINa aldatu.\nAgian PINa okerra da."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIMaren PINa behar bezala aldatu da"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Ezin da SIM txartelaren blokeo-egoera aldatu.\nAgian PINa okerra da."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Ezin da desgaitu PIN kodea."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Ezin da gaitu PIN kodea."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Ados"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Utzi"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Hainbat SIM txartel aurkitu dira"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Erakutsi %d elementu ezkutu</item>
<item quantity="one">Erakutsi %d elementu ezkutu</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Tolestu"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Sareak eta Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mugikorra"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"datuen erabilera"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"gai iluna"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"akatsa"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Pantaila ilundua, pantaila blokeatuaren bistaratzea"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"pantaila blokeatuko jakinarazpena"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"aurpegia"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"hatz-marka"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ilundu pantaila, ukipen-pantaila, bateria, distira adimenduna, distira dinamikoa"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Barneko memoria: <xliff:g id="PERCENTAGE">%1$s</xliff:g> erabilita - <xliff:g id="FREE_SPACE">%2$s</xliff:g> libre"</string>
<string name="display_summary" msgid="6737806235882127328">"Lokartu <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> inaktibo egon ondoren"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Horma-papera, inaktibo ezartzea, letra-tipoaren tamaina"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Ezarri inaktibo hamar minutuan jarduerarik gabe egon ondoren"</string>
<string name="memory_summary" msgid="8080825904671961872">"<xliff:g id="USED_MEMORY">%1$s</xliff:g> / <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> erabili dira batez beste"</string>
<string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> gisa hasi duzu saioa"</string>
@@ -4111,7 +4115,7 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Egin GNSS konstelazio eta maiztasun guztien jarraipena, eginbeharren ziklorik gabe"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Erakutsi beti hutsegiteen leihoak"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Erakutsi leiho bat aplikazioren batek huts egiten duen bakoitzean"</string>
- <string name="angle_enabled_app" msgid="1841862539745838255">"Gaitu ANGLE-rekiko bateragarritasuna"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Hautatu ANGLE-rekin bateragarria den aplikazio bat"</string>
<string name="angle_enabled_app_not_set" msgid="864740024581634768">"Ez da gaitu ANGLE-rekiko bateragarritasuna"</string>
<string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE-rekin bateragarria den aplikazioa: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Direktoriorako sarbidea"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Sarearen xehetasunak"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Mugikorreko aplikazioek gailuaren izena ikus dezakete. Halaber, jendeak ere ikus dezake Bluetooth gailuetara konektatzean edo Wi-Fi sare publiko bat konfiguratzean."</string>
<string name="devices_title" msgid="7701726109334110391">"Gailuak"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Zehaztasun handiko panela"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Gaitu zehaztasun handiko panel birtuala"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Ezarpen guztiak"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Ezarpenak"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Iradokizunak"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS datuak"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS datuak"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Aukeratu sarea"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Ezin izan da aurkitu sarerik. Saiatu berriro."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(debekatuta)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Ez dago SIM txartelik"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Deitzeko aukera aurreratuak"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Sare modu hobetsia: WCDMA hobetsita"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Sare modu hobetsia: GSM soilik"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Sare modu hobetsia: WCDMA soilik"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Sare modu hobetsia: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Sare modu hobetsia: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Sare modu hobetsia: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Sare modu hobetsia: CDMA soilik"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Sare modu hobetsia: EvDo soilik"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Sare modu hobetsia: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Sare modu hobetsia: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Sare modu hobetsia: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Sare modu hobetsia: CDMA + LTE / EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Sare modu hobetsia: orokorra"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Sare modu hobetsia: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Sare modu hobetsia: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Sare modu hobetsia: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Sare modu hobetsia: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Sare modu hobetsia: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Sare modu hobetsia: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Sare modu hobetsia: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Sare modu hobetsia: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Sare modu hobetsia: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Sare modu hobetsia: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Sare modu hobetsia: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Sare modu hobetsia: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Sare modu hobetsia: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (gomendatua)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (gomendatua)"</string>
+ <string name="network_global" msgid="959947774831178632">"Orokorrak"</string>
+ <string name="label_available" msgid="1731547832803057893">"Sare erabilgarriak"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Bilatzen…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> sarean erregistratzen…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM txartelak ez dizu sare honetara konektatzea baimentzen."</string>
+ <string name="connect_later" msgid="978991102125216741">"Une honetan, ezin da konektatu sare horretara. Saiatu berriro geroago."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Erregistratu zara sarean."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Hautatu sarea automatikoki"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Operadorearen ezarpenak"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Konfiguratu datu-zerbitzua"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Datu-konexioa"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Atzitu datuak datu-konexioaren bidez"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Sare mota lehenetsia"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Aldatu sare modua"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Sare mota lehenetsia"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operadorea"</string>
+ <string name="call_category" msgid="8108654745239563833">"Deiak"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Operadorearen bideo-deiak"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Sistemaren hautapena"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Aldatu CDMA ibiltaritzaren modua"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Sistemaren hautapena"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Sarea"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Sarea"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA harpidetza"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Aldatu RUIM/SIM eta NV artean"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"harpidetza"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Erregistratze automatikoa…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Datu-ibiltaritza baimendu nahi duzu?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Eskatu prezioari buruzko informazioa sare-hornitzaileari."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Aplikazioen datuen erabilera"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"<xliff:g id="NETWORKMODEID">%1$d</xliff:g> sare moduak ez du balio. Egin ez ikusi."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Ez dago erabilgarri <xliff:g id="CARRIER">%1$s</xliff:g> operadorera konektatuta egoteagatik"</string>
+ <string name="see_more" msgid="5953815986207345223">"Ikusi gehiago"</string>
+ <string name="see_less" msgid="1250265310929558370">"Ikusi gutxiago"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> gailu daude konektatuta</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> gailu dago konektatuta</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Ez dago gailurik konektatuta"</string>
</resources>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index 956d69d..7f1de04 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"بهعنوان محدود در نظر شود"</item>
<item msgid="2266114985518865625">"بهعنوان نامحدود در نظر شود"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"پیشفرض (استفاده از MAC تصادفی)"</item>
+ <item msgid="5398461510512959597">"مورد اعتماد"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"نه"</item>
<item msgid="3863157480502955888">"بله"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"اشکالزدایی"</item>
<item msgid="5286514712714822064">"درازنویسی"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"فقط خانه"</item>
+ <item msgid="5034813753274486448">"خودکار"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA برگزیده"</item>
+ <item msgid="807926878589867564">"فقط GSM"</item>
+ <item msgid="488474605709912156">"فقط WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA خودکار"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo خودکار"</item>
+ <item msgid="370391313511477301">"CDMA بدون EvDo"</item>
+ <item msgid="4678789463133969294">"فقط EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"جهانی"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"فقط TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"جهانی"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 5ac72e3..4935060 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"ایجاد"</string>
<string name="allow" msgid="3349662621170855910">"مجاز است"</string>
<string name="deny" msgid="6947806159746484865">"اجازه ندارد"</string>
- <string name="dlg_close" msgid="7471087791340790015">"بستن"</string>
<string name="device_info_default" msgid="7847265875578739287">"ناشناس"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">اکنون <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> قدم با برنامهنویس شدن فاصله دارید.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"۵٫۰ گیگاهرتز"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"حداقل یک باند برای نقطه اتصال Wi‑Fi انتخاب کنید:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"تنظیمات IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"حریم خصوصی"</string>
<string name="wifi_shared" msgid="844142443226926070">"اشتراکگذاری با دیگر استفادهکنندگان از دستگاه"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(بدون تغییر)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"لطفاً انتخاب کنید"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"نمیتوانید پین را تغییر دهید.\nممکن است پین اشتباه باشد."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"پین سیم کارت با موفقیت تغییر کرد"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"نمیتوان وضعیت قفل سیم کارت را تغییر داد.\nاحتمالاً پین نادرست است."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"پین غیرفعال نشد."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"پین فعال نشد."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"تأیید"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"لغو"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"چندین سیمکارت یافت شد"</string>
@@ -2931,7 +2933,6 @@
<item quantity="one">نمایش %d مورد پنهان</item>
<item quantity="other">نمایش %d مورد پنهان</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"کوچک کردن"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"شبکه و اینترنت"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"دستگاه همراه"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"مصرف داده"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"طرح زمینه تیره"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"اشکال"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"نمایشگر محیطی. نمایشگر صفحه در حالت قفل"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"اعلان صفحه قفل"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"چهره"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"اثر انگشت"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"تار کردن صفحهنمایش، صفحه لمسی، باتری، روشنایی هوشمند، روشنایی پویا"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"فضای ذخیرهسازی داخلی: <xliff:g id="PERCENTAGE">%1$s</xliff:g> استفادهشده - <xliff:g id="FREE_SPACE">%2$s</xliff:g> آزاد"</string>
<string name="display_summary" msgid="6737806235882127328">"خواب پس از <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> عدم فعالیت"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"تصویرزمینه، حالت خواب، اندازه قلم"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"خواب پس از ۱۰ دقیقه عدم فعالیت"</string>
<string name="memory_summary" msgid="8080825904671961872">"بهطور متوسط <xliff:g id="USED_MEMORY">%1$s</xliff:g> از <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> حافظه استفاده شده است"</string>
<string name="users_summary" msgid="1674864467098487328">"واردشده به سیستم با <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"جزئیات شبکه"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"نام دستگاه شما برای برنامههای موجود در تلفنتان قابلمشاهده است. ممکن است وقتی به دستگاههای بلوتوث متصل میشوید یا نقطه اتصال Wi-Fi راهاندازی میکنید، برای سایر افراد نیز قابلمشاهده باشد."</string>
<string name="devices_title" msgid="7701726109334110391">"دستگاهها"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"پانل بسامد بالا"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"فعال کردن پانل مجازی بسامد بالا"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"همه تنظیمات"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"تنظیمات شما"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"پیشنهادها"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"دادههای CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"دادههای CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"انتخاب شبکه"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"شبکهها پیدا نشدند. دوباره امتحان کنید."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(ممنوع است)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"سیمکارت موجود نیست"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"تماس پیشرفته"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"حالت شبکه برگزیده: WCDMA برگزیده"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"حالت شبکه برگزیده: فقط GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"حالت شبکه برگزیده: فقط WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"حالت شبکه برگزیده: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"حالت شبکه برگزیده: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"حالت شبکه برگزیده: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"حالت شبکه برگزیده: فقط CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"حالت شبکه برگزیده: فقط EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"حالت شبکه برگزیده: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"حالت شبکه برگزیده: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"حالت شبکه برگزیده: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"حالت شبکه برگزیده: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"حالت شبکه برگزیده: سراسری"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"حالت شبکه برگزیده: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"حالت شبکه برگزیده: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"حالت شبکه برگزیده: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"حالت شبکه برگزیده: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"حالت شبکه برگزیده: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"حالت شبکه برگزیده: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"حالت شبکه برگزیده: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"حالت شبکه برگزیده: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"حالت شبکه برگزیده: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"حالت شبکه برگزیده: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"حالت شبکه برگزیده: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"حالت شبکه برگزیده: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"حالت شبکه برگزیده: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (توصیه میشود)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (توصیه شده)"</string>
+ <string name="network_global" msgid="959947774831178632">"جهانی"</string>
+ <string name="label_available" msgid="1731547832803057893">"شبکههای موجود"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"درحال جستجو…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"درحال ثبت در <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+ <string name="not_allowed" msgid="1667079919821581706">"سیمکارت اجازه اتصال به این شبکه را نمیدهد."</string>
+ <string name="connect_later" msgid="978991102125216741">"اتصال به این شبکه درحالحاضر امکانپذیر نیست. بعداً دوباره امتحان کنید."</string>
+ <string name="registration_done" msgid="4573820010512184521">"در شبکه ثبت شد."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"انتخاب خودکار شبکه"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"تنظیمات شرکت مخابراتی"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"تنظیم سرویسهای داده"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"داده تلفن همراه"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"دسترسی به دادهها با استفاده از شبکه تلفن همراه"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"نوع شبکه برگزیده"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"تغییر حالت عملکرد شبکه"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"نوع شبکه برگزیده"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"شرکت مخابراتی"</string>
+ <string name="call_category" msgid="8108654745239563833">"درحال تماس"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"تماس ویدیویی با شرکت مخابراتی"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"انتخاب سیستم"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"تغییر حالت رومینگ CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"انتخاب سیستم"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"شبکه"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"شبکه"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"اشتراک CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"تغییر بین RUIM/SIM و NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"اشتراک"</string>
+ <string name="register_automatically" msgid="518185886971595020">"ثبت خودکار..."</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"رومینگ داده مجاز است؟"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"برای قیمت با ارائهدهنده شبکهتان بررسی کنید."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"مصرف داده برنامه"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"حالت شبکه نامعتبر <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. نادیده گرفته شود."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"هنگام اتصال به <xliff:g id="CARRIER">%1$s</xliff:g>، دردسترس نیست"</string>
+ <string name="see_more" msgid="5953815986207345223">"موارد بیشتر"</string>
+ <string name="see_less" msgid="1250265310929558370">"مشاهده موارد کمتر"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> دستگاه متصل</item>
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> دستگاه متصل</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"دستگاه متصلی وجود ندارد"</string>
</resources>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index d6c0858..c952112 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Merkitse maksulliseksi"</item>
<item msgid="2266114985518865625">"Merkitse maksuttomaksi"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Oletus (käytä satunnaistettua MAC-osoitetta)"</item>
+ <item msgid="5398461510512959597">"Luotettu"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Ei"</item>
<item msgid="3863157480502955888">"Kyllä"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Virheenkorjaus"</item>
<item msgid="5286514712714822064">"Monisanainen"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Vain kotipuhelin"</item>
+ <item msgid="5034813753274486448">"Automaattinen"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Ensisijaisesti GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"Vain GSM"</item>
+ <item msgid="488474605709912156">"Vain WCDMA"</item>
+ <item msgid="1912421096218750039">"Automaattinen GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"Automaattinen CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"CDMA ilman EvDoa"</item>
+ <item msgid="4678789463133969294">"Vain EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Maailmanlaajuinen"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Vain TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Maailmanlaajuinen"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index a5c4519..ba2ae7b 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Luo"</string>
<string name="allow" msgid="3349662621170855910">"Salli"</string>
<string name="deny" msgid="6947806159746484865">"Hylkää"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Sulje"</string>
<string name="device_info_default" msgid="7847265875578739287">"Tuntematon"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Enää <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> vaihetta, niin sinusta tulee kehittäjä.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Valitse vähintään yksi kaista Wi‑Fi-hotspotille:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP-asetukset"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Tietosuoja"</string>
<string name="wifi_shared" msgid="844142443226926070">"Jaa muiden laitteen käyttäjien kanssa"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ei muutettu)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Valitse"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PIN-koodin vaihtaminen epäonnistui.\nSaatoit antaa väärän PIN-koodin."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM-kortin PIN-koodin vaihtaminen onnistui"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"SIM-kortin lukitustilan muuttaminen epäonnistui.\nPIN-koodi on mahdollisesti virheellinen."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN-koodin käytöstä poistaminen epäonnistui."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN-koodin käyttöönotto epäonnistui."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Peruuta"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"SIM-kortteja löytyi useita"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Näytä %d piilotettua kohdetta</item>
<item quantity="one">Näytä %d piilotettu kohde</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Tiivistä"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Verkko ja internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobiili"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"datan käyttö"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tumma teema"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"virhe"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Lepotilanäyttö, lukitusnäyttö"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lukitusnäyttöilmoitus"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"kasvot"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"sormenjälki"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"himmeä näyttö, kosketusnäyttö, akku, älykäs kirkkaus, dynaaminen kirkkaus"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Sisäinen tallennustila: <xliff:g id="PERCENTAGE">%1$s</xliff:g> käytössä, <xliff:g id="FREE_SPACE">%2$s</xliff:g> vapaana"</string>
<string name="display_summary" msgid="6737806235882127328">"Jos laitetta ei käytetä, se siirtyy virransäästötilaan, kun <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> on kulunut."</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Taustakuva, virransäästö, fonttikoko"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Jos laitetta ei käytetä, se siirtyy virransäästötilaan, kun 10 minuuttia on kulunut."</string>
<string name="memory_summary" msgid="8080825904671961872">"Muistia käytetty keskimäärin <xliff:g id="USED_MEMORY">%1$s</xliff:g>/<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Kirjautunut sisään käyttäjänä <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Verkon tiedot"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Puhelimen sovellukset näkevät laitteesi nimen. Muut voivat myös nähdä nimen, kun muodostat Bluetooth-yhteyden laitteisiin tai aktivoit Wi-Fi-hotspotin."</string>
<string name="devices_title" msgid="7701726109334110391">"Laitteet"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Korkeataajuuspaneeli"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Ota käyttöön virtuaalinen korkeataajuuspaneeli"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Kaikki asetukset"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Omat asetukset"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Ehdotukset"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-data"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-data"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Valitse verkko"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Verkkoja ei löytynyt. Yritä uudelleen."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(kielletty)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Ei SIM-korttia"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Puhelujen lisävaihtoehdot"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Ensisijainen verkkotila: ensisijaisesti WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Ensisijainen verkkotila: vain GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Ensisijainen verkkotila: vain WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Ensisijainen verkkotila: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Ensisijainen verkkotila: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Ensisijainen verkkotila: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Ensisijainen verkkotila: vain CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Ensisijainen verkkotila: vain EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Ensisijainen verkkotila: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Ensisijainen verkkotila: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Ensisijainen verkkotila: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Ensisijainen verkkotila: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Ensisijainen verkkotila: Maailmanlaajuinen"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Ensisijainen verkkotila: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Ensisijainen verkkotila: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Ensisijainen verkkotila: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Ensisijainen verkkotila: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Ensisijainen verkkotila: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Ensisijainen verkkotila: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Ensisijainen verkkotila: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Ensisijainen verkkotila: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Ensisijainen verkkotila: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Ensisijainen verkkotila: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Ensisijainen verkkotila: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Ensisijainen verkkotila: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Ensisijainen verkkotila: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (suositus)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (suositus)"</string>
+ <string name="network_global" msgid="959947774831178632">"Maailmanlaajuinen"</string>
+ <string name="label_available" msgid="1731547832803057893">"Käytettävissä olevat verkot"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Haetaan…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> rekisteröidään…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM-kortti ei anna muodostaa yhteyttä tähän verkkoon."</string>
+ <string name="connect_later" msgid="978991102125216741">"Tähän verkkoon ei saada juuri nyt yhteyttä. Yritä myöhemmin uudelleen."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Rekisteröity verkkoon"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Valitse verkko automaattisesti"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Operaattoriasetukset"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Määritä datapalvelu"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobiilidata"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Käytä mobiiliverkon dataa"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Ensisijainen verkko"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Vaihda verkon käyttötilaa"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Ensisijainen verkko"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operaattori"</string>
+ <string name="call_category" msgid="8108654745239563833">"Puhelut"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videopuheluiden operaattori"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Valitse järjestelmä"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Vaihda CDMA-roaming-tila"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Valitse järjestelmä"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Verkko"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Verkko"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA-tilaus"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Vaihda RUIM/SIM:n- ja NV:n välillä"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"tilaus"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automaattinen rekisteröinti…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Sallitaanko roaming?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Kysy hinnasta operaattorilta."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Sovelluksen datan käyttö"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Virheellinen verkkotila <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ohita."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Ei käytettävissä <xliff:g id="CARRIER">%1$s</xliff:g> ‑käytön aikana"</string>
+ <string name="see_more" msgid="5953815986207345223">"Lisää"</string>
+ <string name="see_less" msgid="1250265310929558370">"Näytä vähemmän"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> laitetta yhdistetty</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> laite yhdistetty</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Ei yhdistettyjä laitteita"</string>
</resources>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index d441da5..a88362f 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Traiter comme mesuré"</item>
<item msgid="2266114985518865625">"Traiter comme non mesuré"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Par défaut (utiliser une adresse MAC au hasard)"</item>
+ <item msgid="5398461510512959597">"Fiable"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Non"</item>
<item msgid="3863157480502955888">"Oui"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Déboguer"</item>
<item msgid="5286514712714822064">"Détaillé"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Réseaux domestiques uniquement"</item>
+ <item msgid="5034813753274486448">"Automatique"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA de préférence"</item>
+ <item msgid="807926878589867564">"GSM uniquement"</item>
+ <item msgid="488474605709912156">"WCDMA uniquement"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA automatique"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo automatique"</item>
+ <item msgid="370391313511477301">"CDMA sans EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo seulement"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA uniquement"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 63e1f61..d756cc6 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Créer"</string>
<string name="allow" msgid="3349662621170855910">"Autoriser"</string>
<string name="deny" msgid="6947806159746484865">"Refuser"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Fermer"</string>
<string name="device_info_default" msgid="7847265875578739287">"Inconnu"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Plus qu’<xliff:g id="STEP_COUNT_1">%1$d</xliff:g> étape pour devenir un développeur.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Choisissez au moins une bande pour le point d\'accès Wi-Fi :"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Paramètres IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Confidentialité"</string>
<string name="wifi_shared" msgid="844142443226926070">"Partager avec d\'autres utilisateurs d\'appareils"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(aucune modification)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Veuillez choisir"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Impossible de modifier le NIP.\nLe NIP est peut-être incorrect."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"Le NIP de la carte SIM a été modifié."</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Impossible de changer l\'état de verrouillage de la carte SIM.\nLe NIP est peut-être incorrect."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Impossible de désactiver le NIP."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Impossible d\'activer le NIP."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Annuler"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Plusieurs cartes SIM détectées"</string>
@@ -1476,7 +1478,7 @@
<string name="menu_restore" msgid="8260067415075573273">"Rétablir les valeurs par défaut"</string>
<string name="restore_default_apn_completed" msgid="2824775307377604897">"La réinitialisation des paramètres APN par défaut est terminée."</string>
<string name="reset_dashboard_title" msgid="6254873816990678620">"Options de réinitialisation"</string>
- <string name="reset_dashboard_summary" msgid="4851012632493522755">"Impossible de réinitialiser le réseau, les applications ou l\'appareil"</string>
+ <string name="reset_dashboard_summary" msgid="4851012632493522755">"Vous pouvez réinitialiser le réseau, les applications ou l\'appareil"</string>
<string name="reset_network_title" msgid="6166025966016873843">"Réinitialiser les paramètres Wi-Fi, cellulaires et Bluetooth"</string>
<string name="reset_network_desc" msgid="5547979398298881406">"Cette opération entraîne la réinitialisation de tous les paramètres réseau, y compris :\n\n"<li>"Le Wi‑Fi"</li>\n<li>"Les données cellulaires"</li>\n<li>"Le Bluetooth"</li></string>
<string name="reset_esim_title" msgid="2419812515540592802">"Réinitialiser aussi la carte eSIM"</string>
@@ -2595,7 +2597,7 @@
<string name="data_usage_tab_3g" msgid="6092169523081538718">"2G-3G"</string>
<string name="data_usage_list_mobile" msgid="5588685410495019866">"Cellulaire"</string>
<string name="data_usage_list_none" msgid="3933892774251050735">"Aucun"</string>
- <string name="data_usage_enable_mobile" msgid="986782622560157977">"Données mobiles"</string>
+ <string name="data_usage_enable_mobile" msgid="986782622560157977">"Données cellulaires"</string>
<string name="data_usage_enable_3g" msgid="6304006671869578254">"Données 2G-3G"</string>
<string name="data_usage_enable_4g" msgid="3635854097335036738">"Données 4G"</string>
<string name="data_roaming_enable_mobile" msgid="1523331545457578362">"Itinérance"</string>
@@ -2604,7 +2606,7 @@
<string name="data_usage_app_settings" msgid="2279171379771253165">"Paramètres de l\'application"</string>
<string name="data_usage_app_restrict_background" msgid="7359227831562303223">"Données en arrière-plan"</string>
<string name="data_usage_app_restrict_background_summary" msgid="5853552187570622572">"Activer l\'utilisation de données cellulaires en arrière-plan"</string>
- <string name="data_usage_app_restrict_background_summary_disabled" msgid="7401927377070755054">"Pour restreindre les données en arrière-plan, définissez un quota de données mobiles."</string>
+ <string name="data_usage_app_restrict_background_summary_disabled" msgid="7401927377070755054">"Pour restreindre les données en arrière-plan, définissez un quota de données cellulaires."</string>
<string name="data_usage_app_restrict_dialog_title" msgid="1613108390242737923">"Limiter les données en arrière-plan?"</string>
<string name="data_usage_app_restrict_dialog" msgid="1466689968707308512">"Cette fonctionnalité peut empêcher certaines applications de s\'exécuter lorsque celles-ci sont dépendantes des données en arrière-plan et que seuls des réseaux mobiles sont disponibles.\n\nVous trouverez des options plus adaptées en matière de contrôle de la consommation des données dans les paramètres de l\'application."</string>
<string name="data_usage_restrict_denied_dialog" msgid="55012417305745608">"La limitation des données en arrière-plan n\'est possible que si vous avez défini un plafond d\'utilisation pour les données cellulaires."</string>
@@ -2618,7 +2620,7 @@
<string name="data_usage_cycle_editor_positive" msgid="8821760330497941117">"Définir"</string>
<string name="data_usage_warning_editor_title" msgid="3704136912240060339">"Définir l\'avertissement d\'utilisation des données"</string>
<string name="data_usage_limit_editor_title" msgid="9153595142385030015">"Définir la limite de consommation des données"</string>
- <string name="data_usage_limit_dialog_title" msgid="3023111643632996097">"Limitation de la consommation de données mobiles"</string>
+ <string name="data_usage_limit_dialog_title" msgid="3023111643632996097">"Limitation de la consommation de données cellulaires"</string>
<string name="data_usage_limit_dialog_mobile" product="tablet" msgid="4983487893343645667">"Votre tablette désactivera les données cellulaires lorsqu\'elle atteindra la limite que vous définissez.\n\nComme c\'est votre tablette qui mesure la consommation des données, et que votre fournisseur de services peut utiliser un système de mesure différent, nous vous conseillons d\'utiliser une limite plus basse."</string>
<string name="data_usage_limit_dialog_mobile" product="default" msgid="3926320594049434225">"Votre téléphone désactivera les données cellulaires lorsqu\'il atteindra la limite que vous définissez.\n\nComme c\'est votre téléphone qui mesure la consommation des données, et que votre fournisseur de services peut utiliser un système de mesure différent, nous vous conseillons de définir une limite plus basse."</string>
<string name="data_usage_restrict_background_title" msgid="2201315502223035062">"Limiter les données en arrière-plan?"</string>
@@ -2869,8 +2871,8 @@
<string name="user_restrictions_controlled_by" msgid="3164078767438313899">"Contrôlées par <xliff:g id="APP">%1$s</xliff:g>"</string>
<string name="app_sees_restricted_accounts" msgid="7503264525057246240">"Cette application peut accéder à vos comptes."</string>
<string name="app_sees_restricted_accounts_and_controlled_by" msgid="6968697624437267294">"Cette application peut accéder à vos comptes. Contrôlée par <xliff:g id="APP">%1$s</xliff:g>."</string>
- <string name="restriction_wifi_config_title" msgid="8889556384136994814">"Wi‑Fi et données mobiles"</string>
- <string name="restriction_wifi_config_summary" msgid="70888791513065244">"Autoriser les modifications des paramètres du Wi‑Fi et des données mobiles"</string>
+ <string name="restriction_wifi_config_title" msgid="8889556384136994814">"Wi‑Fi et données cellulaires"</string>
+ <string name="restriction_wifi_config_summary" msgid="70888791513065244">"Autoriser les modifications des paramètres du Wi‑Fi et des données cellulaires"</string>
<string name="restriction_bluetooth_config_title" msgid="8871681580962503671">"Bluetooth"</string>
<string name="restriction_bluetooth_config_summary" msgid="8372319681287562506">"Autoriser les modifications des associations et des paramètres Bluetooth"</string>
<string name="restriction_nfc_enable_title" msgid="5888100955212267941">"NFC"</string>
@@ -2931,7 +2933,6 @@
<item quantity="one">Afficher %d élément masqué</item>
<item quantity="other">Afficher %d éléments masqués</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Réduire"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Réseau et Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"cellulaire"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"utilisation de données"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"thème sombre"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"bogue"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Affichage en mode Veille, écran de verrouillage"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notification sur l\'écran de verrouillage"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"visage"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"empreintes digitales"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"réduire la luminosité de l\'écran, écran tactile, pile, réglage intelligent de la luminosité, luminosité dynamique"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Stockage interne : <xliff:g id="PERCENTAGE">%1$s</xliff:g> utilisé - <xliff:g id="FREE_SPACE">%2$s</xliff:g> disponible"</string>
<string name="display_summary" msgid="6737806235882127328">"Passer en veille après <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> d\'inactivité"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Fond d\'écran, mode sommeil, taille de la police"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Veille après 10 minutes d\'inactivité"</string>
<string name="memory_summary" msgid="8080825904671961872">"Mémoire utilisée en moyenne : <xliff:g id="USED_MEMORY">%1$s</xliff:g> sur <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Connecté en tant que <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Détails du réseau"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Le nom de votre appareil est visible pour les applications de votre téléphone. Il est aussi possible que d\'autres personnes le voient lorsque vous vous connectez à des appareils Bluetooth ou lorsque vous configurez un point d\'accès Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Appareils"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Panneau haute fréquence"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Activer le panneau virtuel haute fréquence"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Tous les paramètres"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Vos paramètres"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Suggestions"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Données CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Données CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Choisir un réseau"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Impossible de trouver des réseaux. Réessayez."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(interdit)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Aucune carte SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Appels avancés"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Mode réseau préféré : WCDMA de préférence"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Mode réseau préféré : GSM uniquement"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Mode réseau préféré : WCDMA uniquement"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Mode réseau préféré : GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Mode réseau préféré : CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Mode réseau préféré : CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Mode réseau préféré : CDMA uniquement"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Mode réseau préféré : EvDo uniquement"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Mode réseau préféré : CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Mode réseau préféré : LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Mode réseau préféré : GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Mode réseau préféré : CDMA+LTE/EvDo"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Mode réseau préféré : global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Mode réseau préféré : LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Mode réseau préféré : LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Mode réseau préféré : LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Mode réseau préféré : TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Mode réseau préféré : TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Mode réseau préféré : LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Mode réseau préféré : TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Mode réseau préféré : LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Mode réseau préféré : TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Mode réseau préféré : LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Mode réseau préféré : LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Mode réseau préféré : TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Mode réseau préféré : LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (recommandé)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (recommandé)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Réseaux disponibles"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Recherche en cours…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Enregistrement sur <xliff:g id="NETWORK">%s</xliff:g> en cours…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Votre carte SIM ne vous permet pas de vous connecter à ce réseau."</string>
+ <string name="connect_later" msgid="978991102125216741">"Impossible de se connecter à ce réseau pour le moment. Veuillez réessayer plus tard."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Enregistré sur le réseau."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Sélectionner automatiquement le réseau"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Param. du fourn. de serv."</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Configurer service de données"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Données cellulaires"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Accéder aux données sur réseau cellulaire"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Type de réseau préféré"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Changer le mode de fonctionnement du réseau"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Type de réseau préféré"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Fournisseur de services"</string>
+ <string name="call_category" msgid="8108654745239563833">"Appels"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Appels vidéo par l\'entremise du fournisseur de services"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Sélection système"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Modifier le mode d\'itinérance CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Sélection système"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Réseau"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Réseau"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Abonnement CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Basculer entre les cartes RUIM/SIM et NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"abonnement"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Enregistrement automatique en cours…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Autoriser les données en itinérance?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Communiquez avec votre fournisseur réseau pour connaître les tarifs."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Utilisation des données par l\'application"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Mode réseau non valide : <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorer."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Indisponible lorsque vous êtes connectés au réseau de <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"En voir plus"</string>
+ <string name="see_less" msgid="1250265310929558370">"En voir moins"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> appareil connecté</item>
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> appareils connectés</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Aucun appareil connecté"</string>
</resources>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index ba13633..a80d768 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Considérer comme facturé à l\'usage"</item>
<item msgid="2266114985518865625">"Considérer comme non facturé à l\'usage"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Par défaut (utiliser une adresse MAC aléatoire)"</item>
+ <item msgid="5398461510512959597">"Fiable"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Non"</item>
<item msgid="3863157480502955888">"Oui"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Débogage"</item>
<item msgid="5286514712714822064">"Détaillé"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Réseaux domestiques uniquement"</item>
+ <item msgid="5034813753274486448">"Automatique"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA de préférence"</item>
+ <item msgid="807926878589867564">"GSM uniquement"</item>
+ <item msgid="488474605709912156">"WCDMA uniquement"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA automatique"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo automatique"</item>
+ <item msgid="370391313511477301">"CDMA sans EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo uniquement"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Général"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA uniquement"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Général"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index a8aef53..f09cdf3 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Créer"</string>
<string name="allow" msgid="3349662621170855910">"Autoriser"</string>
<string name="deny" msgid="6947806159746484865">"Refuser"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Fermer"</string>
<string name="device_info_default" msgid="7847265875578739287">"Inconnu"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Plus que <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> étape pour devenir développeur</item>
@@ -161,7 +160,7 @@
<string name="bluetooth_device_name_summary" msgid="522235742194965734">"Visible avec le nom \"<xliff:g id="DEVICE_NAME">^1</xliff:g>\" pour les autres appareils"</string>
<string name="bluetooth_off_footer" msgid="8406865700572772936">"Activez le Bluetooth pour vous connecter à d\'autres appareils."</string>
<string name="bluetooth_paired_device_title" msgid="8638994696317952019">"Vos appareils"</string>
- <string name="bluetooth_pairing_page_title" msgid="7712127387361962608">"Associer nouvel app."</string>
+ <string name="bluetooth_pairing_page_title" msgid="7712127387361962608">"Associer nouvel appareil"</string>
<string name="bluetooth_pref_summary" product="tablet" msgid="3520035819421024105">"Autoriser la tablette à communiquer avec les appareils Bluetooth à proximité"</string>
<string name="bluetooth_pref_summary" product="device" msgid="2205100629387332862">"Autoriser l\'appareil à communiquer avec les appareils Bluetooth à proximité"</string>
<string name="bluetooth_pref_summary" product="default" msgid="782032074675157079">"Autoriser le téléphone à communiquer avec les appareils Bluetooth à proximité"</string>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Sélectionnez au moins une bande pour le point d\'accès Wi-Fi :"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Paramètres IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Confidentialité"</string>
<string name="wifi_shared" msgid="844142443226926070">"Partager avec d\'autres utilisateurs de l\'appareil"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(aucune modification)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Veuillez sélectionner un élément"</string>
@@ -1006,7 +1006,7 @@
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Préférences en matière d\'itinérance"</string>
<string-array name="wifi_calling_mode_choices">
<item msgid="2124257075906188844">"Wi-Fi de préférence"</item>
- <item msgid="1335127656328817518">"Priorité au mobile"</item>
+ <item msgid="1335127656328817518">"Données mobiles de préférence"</item>
<item msgid="3132912693346866895">"Wi-Fi uniquement"</item>
</string-array>
<string-array name="wifi_calling_mode_choices_v2">
@@ -1021,7 +1021,7 @@
</string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi de préférence"</item>
- <item msgid="5074515506087318555">"Priorité au mobile"</item>
+ <item msgid="5074515506087318555">"Données mobiles de préférence"</item>
</string-array>
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Impossible de modifier le code PIN.\nLe code PIN est peut-être incorrect."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"Le code PIN de la carte SIM a été modifié."</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Impossible de changer l\'état de verrouillage de la carte SIM.\nLe code PIN est peut-être incorrect."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Impossible de désactiver le code."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Impossible d\'activer le code."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Annuler"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Plusieurs cartes SIM détectées"</string>
@@ -2421,7 +2423,7 @@
<string name="credentials_not_erased" msgid="7685932772284216097">"Impossible eff. stockage identifiants."</string>
<string name="credentials_configure_lock_screen_hint" msgid="8058230497337529036">"Avant de pouvoir utiliser le stockage des identifiants, vous devez définir un écran de verrouillage sécurisé sur votre appareil"</string>
<string name="credentials_configure_lock_screen_button" msgid="253239765216055321">"DÉFINIR VERROUILLAGE"</string>
- <string name="usage_access_title" msgid="332333405495457839">"Applis avec accès données util."</string>
+ <string name="usage_access_title" msgid="332333405495457839">"Applis avec accès données conso"</string>
<string name="emergency_tone_title" msgid="254495218194925271">"Signal de numérotation d\'urgence"</string>
<string name="emergency_tone_summary" msgid="722259232924572153">"Définir le comportement en cas d\'appel d\'urgence"</string>
<string name="privacy_settings_title" msgid="2978878794187459190">"Sauvegarde"</string>
@@ -2931,7 +2933,6 @@
<item quantity="one">Afficher %d élément masqué</item>
<item quantity="other">Afficher %d éléments masqués</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Réduire"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Réseau et Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobile"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"conso des données"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"thème foncé"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"bug"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"affichage en mode veille, affichage de l\'écran de verrouillage"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notification sur l\'écran de verrouillage"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"visage"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"empreinte digitale"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"réduire la luminosité de l\'écran, écran tactile, batterie, réglage intelligent de la luminosité, luminosité dynamique"</string>
@@ -3527,7 +3529,7 @@
<string name="system_app" msgid="9068313769550747372">"(Système)"</string>
<string name="system_default_app" msgid="3091113402349739037">"(Paramètres par défaut)"</string>
<string name="apps_storage" msgid="4353308027210435513">"Volume occupé par appli"</string>
- <string name="usage_access" msgid="5479504953931038165">"Accès aux données d\'utilisation"</string>
+ <string name="usage_access" msgid="5479504953931038165">"Accès à la conso des données"</string>
<string name="permit_usage_access" msgid="4012876269445832300">"Autoriser l\'accès aux données d\'utilisation"</string>
<string name="app_usage_preference" msgid="7065701732733134991">"Préférences d\'utilisation de l\'application"</string>
<string name="time_spent_in_app_pref_title" msgid="649419747540933845">"Temps passé sur l\'application"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Mémoire de stockage interne : <xliff:g id="PERCENTAGE">%1$s</xliff:g> utilisés – <xliff:g id="FREE_SPACE">%2$s</xliff:g> disponibles"</string>
<string name="display_summary" msgid="6737806235882127328">"Mode veille activé après <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> d\'inactivité"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Fond d\'écran, mise en veille, taille de police"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Mode veille après 10 minutes d\'inactivité"</string>
<string name="memory_summary" msgid="8080825904671961872">"Utilisation moyenne de <xliff:g id="USED_MEMORY">%1$s</xliff:g> sur <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> de mémoire"</string>
<string name="users_summary" msgid="1674864467098487328">"Connecté en tant que \"<xliff:g id="USER_NAME">%1$s</xliff:g>\""</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Détails du réseau"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Le nom de votre appareil est visible par les applications installées sur votre téléphone. Il peut l\'être également par d\'autres personnes en cas de connexion à des appareils Bluetooth ou de configuration d\'un point d\'accès Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Appareils"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Panneau haute fréquence"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Activer le panneau virtuel haute fréquence"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Tous les paramètres"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Vos paramètres"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Suggestions"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Données CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Données CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Sélectionner un réseau"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Réseaux introuvables. Veuillez réessayer."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(interdit)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Pas de carte SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Appel avancé"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Mode réseau préféré : WCDMA de préférence"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Mode réseau préféré : GSM uniquement"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Mode réseau préféré : WCDMA uniquement"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Mode réseau préféré : GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Mode réseau préféré : CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Mode réseau préféré : CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Mode réseau préféré : CDMA uniquement"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Mode réseau préféré : EvDo uniquement"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Mode réseau préféré : CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Mode réseau préféré : LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Mode réseau préféré : GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Mode réseau préféré : CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Mode réseau préféré : général"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Mode réseau préféré : LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Mode réseau préféré : LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Mode réseau préféré : LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Mode réseau préféré : TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Mode réseau préféré : TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Mode réseau préféré : LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Mode réseau préféré : TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Mode réseau préféré : LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Mode réseau préféré : TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Mode réseau préféré : LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Mode réseau préféré : LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Mode réseau préféré: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Mode réseau préféré : LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (recommandé)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (recommandé)"</string>
+ <string name="network_global" msgid="959947774831178632">"Général"</string>
+ <string name="label_available" msgid="1731547832803057893">"Réseaux disponibles"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Recherche…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Enregistrement sur <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Votre carte SIM ne permet pas de vous connecter à ce réseau."</string>
+ <string name="connect_later" msgid="978991102125216741">"Impossible de se connecter à ce réseau pour le moment. Réessayez plus tard."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Enregistré sur le réseau."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Sélectionner automatiquement le réseau"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Paramètres de l\'opérateur"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Configurer service données"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Données mobiles"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Accéder aux données via le réseau mobile"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Type de réseau préféré"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Changer le mode de fonctionnement du réseau"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Type de réseau préféré"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Opérateur"</string>
+ <string name="call_category" msgid="8108654745239563833">"Appels"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Appels vidéo via l\'opérateur"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Sélection système"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Modifier le mode d\'itinérance CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Sélection système"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Réseau"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Réseau"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Abonnement CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Basculer entre les cartes RUIM/SIM et NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"abonnement"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Enregistrement automatique…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Autoriser l\'itinérance des données ?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Vérifiez le tarif auprès de votre opérateur."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Consommation de données des applications"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Mode réseau non valide <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Action ignorée."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Indisponible lorsque connecté à <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Voir plus"</string>
+ <string name="see_less" msgid="1250265310929558370">"Moins de détails"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
index 5a7f471..34aa0a2 100644
--- a/res/values-gl/arrays.xml
+++ b/res/values-gl/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Tratar como rede de pago por consumo"</item>
<item msgid="2266114985518865625">"Tratar como rede sen límite de datos"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Predeterminado (utilizar enderezo MAC aleatorio)"</item>
+ <item msgid="5398461510512959597">"De confianza"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Non"</item>
<item msgid="3863157480502955888">"Si"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Depurar"</item>
<item msgid="5286514712714822064">"Detallar"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Só redes domésticas"</item>
+ <item msgid="5034813753274486448">"Automático"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Preferencia: GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"Só GSM"</item>
+ <item msgid="488474605709912156">"Só WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA automático"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo automático"</item>
+ <item msgid="370391313511477301">"CDMA sen EvDo"</item>
+ <item msgid="4678789463133969294">"Só EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA e LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Só TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index ac4007d..4737b59 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Crear"</string>
<string name="allow" msgid="3349662621170855910">"Permitir"</string>
<string name="deny" msgid="6947806159746484865">"Rexeitar"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Pechar"</string>
<string name="device_info_default" msgid="7847265875578739287">"Descoñecido"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Agora estás a <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> pasos de ser programador.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Selecciona polo menos unha banda para a zona wifi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Configuración IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacidade"</string>
<string name="wifi_shared" msgid="844142443226926070">"Compartir rede con outros usuarios do dispositivo"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(non cambiado)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Selecciona"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Non se pode cambiar o PIN.\nÉ posible que o PIN non sexa correcto."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN da SIM cambiado correctamente"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Non se pode cambiar o estado de bloqueo da tarxeta SIM.\nÉ posible que o PIN non sexa correcto."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Non se puido desactivar o PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Non se puido activar o PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Aceptar"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Cancelar"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Encontráronse varias tarxetas SIM"</string>
@@ -2932,7 +2934,6 @@
<item quantity="other">Mostrar %d elementos ocultos</item>
<item quantity="one">Mostrar %d elemento oculto</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Contraer"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Rede e Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"rede de telefonía móbil"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"uso de datos"</string>
@@ -3002,6 +3003,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tema escuro"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"erro"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Visualización da pantalla de bloqueo, pantalla ambiente"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificación da pantalla de bloqueo"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"cara"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"impresión dixital"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"atenuar pantalla, pantalla táctil, batería, brillo intelixente, brillo dinámico"</string>
@@ -3240,7 +3242,7 @@
<string name="no_vr_listeners" msgid="2689382881717507390">"Ningunha aplicación instalada solicitou executarse como servizos do asistente de RV."</string>
<string name="vr_listener_security_warning_title" msgid="8309673749124927122">"Queres permitir o acceso do servizo de RV para <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
<string name="vr_listener_security_warning_summary" msgid="6931541068825094653">"<xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g> poderá executarse cando utilices aplicacións no modo de realidade virtual."</string>
- <string name="display_vr_pref_title" msgid="8104485269504335481">"Cando o dispositivo está no modo de RV"</string>
+ <string name="display_vr_pref_title" msgid="8104485269504335481">"Cando o dispositivo está no modo RV"</string>
<string name="display_vr_pref_low_persistence" msgid="5707494209944718537">"Reducir desenfoque (recomendado)"</string>
<string name="display_vr_pref_off" msgid="2190091757123260989">"Reducir escintilación"</string>
<string name="picture_in_picture_title" msgid="5824849294270017113">"Pantalla superposta"</string>
@@ -3711,6 +3713,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Almacenamento interno: <xliff:g id="PERCENTAGE">%1$s</xliff:g> utilizado, <xliff:g id="FREE_SPACE">%2$s</xliff:g> libre"</string>
<string name="display_summary" msgid="6737806235882127328">"Despois de <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> de inactividade"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Fondo de pantalla, suspensión, tamaño do tipo de letra"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Suspensión tras 10 minutos de inactividade"</string>
<string name="memory_summary" msgid="8080825904671961872">"Uso medio da memoria: <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Iniciaches sesión como <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4155,10 +4159,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Detalles da rede"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"As aplicacións do teu teléfono poden consultar o nome do teu dispositivo. Tamén poden velo outros usuarios cando te conectes a dispositivos Bluetooth ou configures zonas wifi."</string>
<string name="devices_title" msgid="7701726109334110391">"Dispositivos"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Panel de alta frecuencia"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Activa o panel virtual de alta frecuencia"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Toda a configuración"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"A túa configuración"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Suxestións"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Datos de CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Datos de CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Escoller rede"</string>
@@ -4170,4 +4172,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Non se puido encontrar ningunha rede. Téntao de novo."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(rede non-permitida)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Non hai ningunha tarxeta SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Chamadas avanzadas"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Modo de rede preferido: WCDMA preferido"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Modo de rede preferido: só GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Modo de rede preferido: só WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Modo de rede preferido: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Modo de rede preferido: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Modo de rede preferido: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Modo de rede preferido: só CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Modo de rede preferido: só EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Modo de rede preferido: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Modo de rede preferido: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Modo de rede preferido: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Modo de rede preferido: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Modo de rede preferido: global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Modo de rede preferido: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Modo de rede preferido: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Modo de rede preferido: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Modo de rede preferido: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Modo de rede preferido: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Modo de rede preferido: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Modo de rede preferido: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Modo de rede preferido: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Modo de rede preferido: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Modo de rede preferido: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Modo de rede preferido: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Modo de rede preferido: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Modo de rede preferido: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (recomendado)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (recomendado)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Redes dispoñibles"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Buscando…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Rexistrando en <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"A tarxeta SIM non permite conectar o dispositivo a esta rede."</string>
+ <string name="connect_later" msgid="978991102125216741">"Non se pode conectar con esta rede nestes momentos. Téntao de novo máis tarde."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Realizouse o rexistro na rede."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Seleccionar rede automaticamente"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Configuración do operador"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Configurar servizo de datos"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Datos móbiles"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Acceder aos datos cunha rede de telefonía móbil"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Tipo de rede preferido"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Cambia o modo de funcionamento da rede"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Tipo de rede preferido"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operador"</string>
+ <string name="call_category" msgid="8108654745239563833">"Chamando"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videochamadas do operador"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Selección do sistema"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Cambia o modo de itinerancia CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Selección do sistema"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Rede"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Rede"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Subscrición a CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Cambia entre RUIM/SIM e NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"subscrición"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Rexistro automático…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Queres permitir a itinerancia de datos?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Consulta os prezos co teu provedor de rede."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Uso de datos da aplicación"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Modo de rede non-válido: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorar."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Non dispoñible cando o dispositivo está conectado a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Ver máis"</string>
+ <string name="see_less" msgid="1250265310929558370">"Ver menos"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-gu/arrays.xml b/res/values-gu/arrays.xml
index 3243690..bd7d915 100644
--- a/res/values-gu/arrays.xml
+++ b/res/values-gu/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"મીટર કરેલ તરીકે ગણો"</item>
<item msgid="2266114985518865625">"મીટર ન કરેલ તરીકે ગણો"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"ડિફૉલ્ટ (રેન્ડમ કરેલ MACનો ઉપયોગ કરો)"</item>
+ <item msgid="5398461510512959597">"વિશ્વસનીય"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"ના"</item>
<item msgid="3863157480502955888">"હા"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"ડિબગ કરો"</item>
<item msgid="5286514712714822064">"શબ્દબહુલ"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"માત્ર હોમ"</item>
+ <item msgid="5034813753274486448">"ઑટોમૅટિક"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA પસંદ કર્યો છે"</item>
+ <item msgid="807926878589867564">"માત્ર GSM"</item>
+ <item msgid="488474605709912156">"માત્ર WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA ઑટો"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo ઑટો"</item>
+ <item msgid="370391313511477301">"EvDo વિના CDMA"</item>
+ <item msgid="4678789463133969294">"માત્ર EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"વૈશ્વિક"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"માત્ર TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"વૈશ્વિક"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index a58b73ff..6304ccd 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"બનાવો"</string>
<string name="allow" msgid="3349662621170855910">"મંજૂરી આપો"</string>
<string name="deny" msgid="6947806159746484865">"નકારો"</string>
- <string name="dlg_close" msgid="7471087791340790015">"બંધ કરો"</string>
<string name="device_info_default" msgid="7847265875578739287">"અજાણ્યું"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">તમે હવે એક વિકાસકર્તા બનવાથી <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> પગલાં દૂર છો.</item>
@@ -179,8 +178,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"પહેલાં કનેક્ટ થયેલા ઉપકરણો"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"પહેલાં કનેક્ટ કરેલા"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"બ્લૂટૂથ ચાલુ કર્યું"</string>
- <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
- <skip />
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"બધા ડિવાઇસ જુઓ"</string>
<string name="date_and_time" msgid="9062980487860757694">"તારીખ અને સમય"</string>
<string name="choose_timezone" msgid="1362834506479536274">"સમય ઝોન પસંદ કરો"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -893,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"વાઇ-ફાઇ હૉટસ્પૉટ માટે ઓછામાં ઓછું એક બેન્ડ પસંદ કરો:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP સેટિંગ્સ"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"પ્રાઇવસી"</string>
<string name="wifi_shared" msgid="844142443226926070">"અન્ય ઉપકરણ વપરાશકર્તાઓ સાથે શેર કરો"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(અપરિવર્તિત)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"કૃપા કરીને પસંદ કરો"</string>
@@ -1206,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"પિન બદલી શકાતો નથી.\nસંભવિત રૂપે ખોટો પિન છે."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"સિમ પિનને સફળતાપૂર્વક બદલ્યો"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"સિમ કાર્ડ લૉક સ્થિતિ બદલી શકાતી નથી.\nસંભવિતરૂપે ખોટો પિન છે."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"પિન બંધ કરી શકાતો નથી."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"પિન ચાલુ કરી શકાતો નથી."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"ઓકે"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"રદ કરો"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"બહુવિધ સિમ મળી"</string>
@@ -2932,7 +2933,6 @@
<item quantity="one">%d છુપાયેલ આઇટમ બતાવો</item>
<item quantity="other">%d છુપાયેલ આઇટમ બતાવો</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"સંકુચિત કરો"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"નેટવર્ક અને ઇન્ટરનેટ"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"મોબાઇલ"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ડેટા વપરાશ"</string>
@@ -3002,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"ઘેરી થીમ"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"ખામી"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"વ્યાપક ડિસ્પ્લે, લૉક સ્ક્રીન ડિસ્પ્લે"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"લૉક સ્ક્રીન નોટિફિકેશન"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ચહેરો"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"ફિંગરપ્રિન્ટની સેટિંગ"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ઝાંખી સ્ક્રીન, ટચસ્ક્રીન, બૅટરી, સ્માર્ટ બ્રાઇટનેસ, ડાયનામિક બ્રાઇટનેસ"</string>
@@ -3711,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"આંતરિક સ્ટૉરેજ: <xliff:g id="PERCENTAGE">%1$s</xliff:g> વપરાયો - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ખાલી"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> સુધી કોઈ પ્રવૃત્તિ ન થવા પર નિષ્ક્રિય કરો"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"વૉલપેપર, નિષ્ક્રિય થાઓ, ફૉન્ટનું કદ"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<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>
@@ -4155,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"નેટવર્કની વિગતો"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"તમારા ઉપકરણનું નામ તમારા ફોનની ઍપ પર જોઈ શકાય છે. તમે બ્લૂટૂથથી કનેક્ટ કરો અથવા વાઇ-ફાઇ હૉટસ્પૉટને સેટ કરો ત્યારે તે અન્ય લોકોને પણ દેખાઈ શકે છે."</string>
<string name="devices_title" msgid="7701726109334110391">"ઉપકરણો"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"ઉચ્ચ આવર્તન પૅનલ"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"વર્ચ્યુઅલ ઉચ્ચ આવર્તન પૅનલ ચાલુ કરો"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"બધી સેટિંગ"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"તમારી સેટિંગ"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"સૂચનો"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ડેટા"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ડેટા"</string>
<string name="choose_network_title" msgid="5702586742615861037">"નેટવર્ક પસંદ કરો"</string>
@@ -4170,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"નેટવર્ક શોધી શક્યાં નથી. ફરી પ્રયાસ કરો."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(પ્રતિબંધિત)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"કોઈ સિમ કાર્ડ નથી"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"વિગતવાર કૉલિંગ"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"પસંદગીનો નેટવર્ક મોડ: WCDMA પસંદ કરેલ છે"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"પસંદગીનો નેટવર્ક મોડ: માત્ર GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"પસંદગીનો નેટવર્ક મોડ: માત્ર WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"પસંદગીનો નેટવર્ક મોડ: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"પસંદગીનો નેટવર્ક મોડ: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"પસંદગીનો નેટવર્ક મોડ: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"પસંદગીનો નેટવર્ક મોડ: માત્ર CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"પસંદગીનો નેટવર્ક મોડ: માત્ર EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"પસંદગીનો નેટવર્ક મોડ: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"પસંદગીનો નેટવર્ક મોડ: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"પસંદગીનો નેટવર્ક મોડ: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"પસંદગીનો નેટવર્ક મોડ: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"પસંદગીનો નેટવર્ક મોડ: વૈશ્વિક"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"પસંદગીનો નેટવર્ક મોડ: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"પસંદગીનો નેટવર્ક મોડ: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"પસંદગીનો નેટવર્ક મોડ: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"પસંદગીનો નેટવર્ક મોડ: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"પસંદગીનો નેટવર્ક મોડ: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"પસંદગીનો નેટવર્ક મોડ: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"પસંદગીનો નેટવર્ક મોડ: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"પસંદગીનો નેટવર્ક મોડ: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"પસંદગીનો નેટવર્ક મોડ: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"પસંદગીનો નેટવર્ક મોડ: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"પસંદગીનો નેટવર્ક મોડ: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"પસંદગીનો નેટવર્ક મોડ: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"પસંદગીનો નેટવર્ક મોડ: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (સુઝાવ આપેલ)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (સુઝાવ આપેલ)"</string>
+ <string name="network_global" msgid="959947774831178632">"વૈશ્વિક"</string>
+ <string name="label_available" msgid="1731547832803057893">"ઉપલબ્ધ નેટવર્ક"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"શોધી રહ્યાં છીએ…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g>પર નોંધણી કરી રહ્યાં છીએ…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"તમારું SIM કાર્ડ આ નેટવર્કથી કનેક્શનની મંજૂરી આપતું નથી."</string>
+ <string name="connect_later" msgid="978991102125216741">"હમણાં આ નેટવર્કથી કનેક્ટ કરી શકાતું નથી. થોડા સમય પછી ફરી પ્રયાસ કરો."</string>
+ <string name="registration_done" msgid="4573820010512184521">"નેટવર્ક પર નોંધણી કરી."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"નેટવર્ક ઑટોમૅટિક રીતે પસંદ કરો"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"કૅરિઅર સેટિંગ"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"ડેટા સેવા સેટઅપ કરો"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"મોબાઇલ ડેટા"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"મોબાઇલ નેટવર્કનો વપરાશ કરીને ડેટા ઍક્સેસ કરો"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"પસંદગીનો નેટવર્ક પ્રકાર"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"નેટવર્ક ઑપરેટિંગ મોડ બદલો"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"પસંદગીનો નેટવર્ક પ્રકાર"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"કૅરિઅર"</string>
+ <string name="call_category" msgid="8108654745239563833">"કૉલિંગ"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"કૅરિઅર વીડિયો કૉલિંગ"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"સિસ્ટમ પસંદગી"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA રોમિંગ મોડ બદલો"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"સિસ્ટમ પસંદગી"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"નેટવર્ક"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"નેટવર્ક"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA સબસ્ક્રિપ્શન"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM અને NV વચ્ચે બદલો"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"સબસ્ક્રિપ્શન"</string>
+ <string name="register_automatically" msgid="518185886971595020">"ઑટોમૅટિક નોંધણી…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"ડેટા રોમિંગને મંજૂરી આપીએ?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"કિંમત માટે તમારા નેટવર્ક પ્રદાતાનો સંપર્ક કરો."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"ઍપ ડેટા વપરાશ"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"અમાન્ય નેટવર્ક મોડ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. અવગણો."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"જ્યારે <xliff:g id="CARRIER">%1$s</xliff:g> સાથે કનેક્ટ થયેલ હોય, ત્યારે ઉપલબ્ધ નથી"</string>
+ <string name="see_more" msgid="5953815986207345223">"વધુ જુઓ"</string>
+ <string name="see_less" msgid="1250265310929558370">"ઓછું જુઓ"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index 430edaa..53c90eb 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"इस कनेक्शन में डेटा से जुड़ी पाबंदी है"</item>
<item msgid="2266114985518865625">"इस कनेक्शन में डेटा से जुड़ी पाबंदी नहीं है"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"डिफ़ॉल्ट (किसी एक MAC का इस्तेमाल करें)"</item>
+ <item msgid="5398461510512959597">"भरोसेमंद"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"नहीं"</item>
<item msgid="3863157480502955888">"हां"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"डीबग"</item>
<item msgid="5286514712714822064">"ज़्यादा जानकारी डालें"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"सिर्फ़ होम पेज"</item>
+ <item msgid="5034813753274486448">"अपने आप"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA पसंदीदा"</item>
+ <item msgid="807926878589867564">"सिर्फ़ GSM"</item>
+ <item msgid="488474605709912156">"सिर्फ़ WCDMA"</item>
+ <item msgid="1912421096218750039">"अपने आप GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"अपने आप CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"EvDo के बिना CDMA"</item>
+ <item msgid="4678789463133969294">"सिर्फ़ EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"हर जगह लागू"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"सिर्फ़ TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/सिम"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"हर जगह लागू"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 839773f..b16a760 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"बनाएं"</string>
<string name="allow" msgid="3349662621170855910">"अनुमति दें"</string>
<string name="deny" msgid="6947806159746484865">"अस्वीकार करें"</string>
- <string name="dlg_close" msgid="7471087791340790015">"बंद करें"</string>
<string name="device_info_default" msgid="7847265875578739287">"अज्ञात"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">अब आप डेवलपर बननेे से <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> चरण दूर हैं.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 गीगाहर्ट्ज़"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"वाई-फ़ाई हॉटस्पॉट से डिवाइस काे जाेड़ने के लिए कम से कम एक बैंड चुनें:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP सेटिंग"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"निजता"</string>
<string name="wifi_shared" msgid="844142443226926070">"अन्य डिवाइस उपयोगकर्ताओं से शेयर करें"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(अपरिवर्तित)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"कृपया चुनें"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"पिन नहीं बदल सकता.\nसंभवत: गलत पिन."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"सिम पिन सफलतापूर्वक बदला गया"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"सिम कार्ड लॉक स्थिति नहीं बदल सकता.\nसंभवत: गलत पिन."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"पिन को बंद नहीं किया जा सकता."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"पिन को चालू नहीं किया जा सकता."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"ठीक है"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"रद्द करें"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"एकाधिक सिम मिलीं"</string>
@@ -2931,7 +2933,6 @@
<item quantity="one">छिपे हुए %d आइटम दिखाएं</item>
<item quantity="other">छिपे हुए %d आइटम दिखाएं</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"छोटा करें"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"नेटवर्क और इंटरनेट"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"मोबाइल"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"डेटा खर्च"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"गहरे रंग वाली थीम"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"गड़बड़ी"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"हमेशा चालू स्क्रीन, लॉक स्क्रीन डिसप्ले"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"लॉक स्क्रीन सूचना"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"चेहरा"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"फ़िंगरप्रिंट"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"हल्की रोशनी वाली स्क्रीन, टचस्क्रीन, बैटरी, स्मार्ट ब्राइटनेस, डाइनैमिक ब्राइटनेस"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"डिवाइस की मेमोरी: <xliff:g id="PERCENTAGE">%1$s</xliff:g> इस्तेमाल किया गया - <xliff:g id="FREE_SPACE">%2$s</xliff:g> खाली है"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> तक कोई गतिविधि न होने पर, कम बैटरी मोड में जाएं"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"वॉलपेपर, सुलाएं (कम बैटरी मोड), फ़ॉन्ट आकार"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<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>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"नेटवर्क के बारे में जानकारी"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"आपके फ़ोन पर मौजूद ऐप्लिकेशन, आपके डिवाइस का नाम जान सकते हैं. ब्लूटूथ डिवाइस जोड़ते समय या वाई-फ़ाई हॉटस्पॉट सेटअप करते समय, इसे दूसरे लोग भी देख सकते हैं."</string>
<string name="devices_title" msgid="7701726109334110391">"डिवाइस"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"हाई फ़्रीक्वेंसी पैनल"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"वर्चुअल \'हाई फ़्रीक्वेंसी पैनल\' को चालू करें"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"सभी सेटिंग"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"आपकी सेटिंग"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"सुझाव"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS डेटा"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS डेटा"</string>
<string name="choose_network_title" msgid="5702586742615861037">"नेटवर्क चुनें"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"कोई नेटवर्क नहीं मिला. फिर से कोशिश करें."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(मना है)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"कोई SIM कार्ड नहीं है"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"बेहतर कॉलिंग"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"पसंदीदा नेटवर्क मोड: WCDMA को प्राथमिकता"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"पसंदीदा नेटवर्क मोड: सिर्फ़ GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"पसंदीदा नेटवर्क मोड: सिर्फ़ WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"पसंदीदा नेटवर्क मोड: CDMA / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"पसंदीदा नेटवर्क मोड: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"पसंदीदा नेटवर्क मोड: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"पसंदीदा नेटवर्क मोड: सिर्फ़ CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"पसंदीदा नेटवर्क मोड: सिर्फ़ EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"पसंदीदा नेटवर्क मोड: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"पसंदीदा नेटवर्क मोड: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"पसंदीदा नेटवर्क मोड: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"पसंदीदा नेटवर्क मोड: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"पसंदीदा नेटवर्क मोड: सभी जगह लागू"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"पसंदीदा नेटवर्क मोड: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"पसंदीदा नेटवर्क मोड: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"पसंदीदा नेटवर्क मोड: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"पसंदीदा नेटवर्क मोड: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"पसंदीदा नेटवर्क मोड: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"पसंदीदा नेटवर्क मोड: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"पसंदीदा नेटवर्क मोड: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"पसंदीदा नेटवर्क मोड: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"पसंदीदा नेटवर्क मोड: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"पसंदीदा नेटवर्क मोड: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"पसंदीदा नेटवर्क मोड: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"पसंदीदा नेटवर्क मोड: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"पसंदीदा नेटवर्क मोड: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (सुझाया गया)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (सुझाया गया)"</string>
+ <string name="network_global" msgid="959947774831178632">"हर जगह लागू"</string>
+ <string name="label_available" msgid="1731547832803057893">"उपलब्ध नेटवर्क"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"खोज की जा रही है…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> पर रजिस्टर किया जा रहा है…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"इस नेटवर्क पर आपका सिम कार्ड कनेक्शन की अनुमति नहीं देता है."</string>
+ <string name="connect_later" msgid="978991102125216741">"फ़िलहाल इस नेटवर्क से कनेक्ट नहीं कर सकते. कुछ देर बाद कोशिश करके देखें."</string>
+ <string name="registration_done" msgid="4573820010512184521">"नेटवर्क पर रजिस्टर किया गया."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"अपने आप नेटवर्क चुनें"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी से जुड़ी सेटिंग"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"डेटा सेवा सेट अप करें"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"मोबाइल डेटा"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"मोबाइल नेटवर्क का इस्तेमाल करके डेटा एक्सेस करें"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"पसंदीदा नेटवर्क प्रकार"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"नेटवर्क संचालन मोड बदलें"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"पसंदीदा नेटवर्क प्रकार"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी"</string>
+ <string name="call_category" msgid="8108654745239563833">"कॉल करना"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी की वीडियो कॉलिंग सुविधा"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"सिस्टम चुनें"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA रोमिंग मोड बदलें"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"सिस्टम चुनें"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"नेटवर्क"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"नेटवर्क"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA सदस्यता"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/सिम और NV में बदलाव करें"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"सदस्यता"</string>
+ <string name="register_automatically" msgid="518185886971595020">"अपने आप रजिस्ट्रेशन…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"डेटा रोमिंग की अनुमति दें?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"कीमतों की जानकारी के लिए आपको नेटवर्क सेवा देने वाली कंपनी से संपर्क करें."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"ऐप्लिकेशन का डेटा इस्तेमाल"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"गलत नेटवर्क मोड <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. अनदेखा करें."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> से कनेक्ट होने पर उपलब्ध नहीं है"</string>
+ <string name="see_more" msgid="5953815986207345223">"ज़्यादा देखें"</string>
+ <string name="see_less" msgid="1250265310929558370">"कम देखें"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index 868db93..77e77f3 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -241,7 +241,7 @@
<item msgid="6546959730920410907">"izmjena zapisnika poziva"</item>
<item msgid="446877710771379667">"čitanje kalendara"</item>
<item msgid="7674458294386319722">"izmjena kalendara"</item>
- <item msgid="8281201165558093009">"skeniranje Wi-Fi-ja"</item>
+ <item msgid="8281201165558093009">"skeniranje Wi-Fija"</item>
<item msgid="8694611243479480497">"obavijest"</item>
<item msgid="7776439107987345446">"skeniranje ćelije"</item>
<item msgid="514615766544675057">"poziv na telefon"</item>
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Mreža s ograničenim prometom"</item>
<item msgid="2266114985518865625">"Mreža bez ograničenja prometa"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Zadano (koristi nasumično određen MAC)"</item>
+ <item msgid="5398461510512959597">"Pouzdani"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Ne"</item>
<item msgid="3863157480502955888">"Da"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Otklanjanje pogrešaka"</item>
<item msgid="5286514712714822064">"Opširno"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Samo matično"</item>
+ <item msgid="5034813753274486448">"Automatski"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Preporučeno: GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"Samo GSM"</item>
+ <item msgid="488474605709912156">"Samo WCDMA"</item>
+ <item msgid="1912421096218750039">"Automatski GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"Automatski CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"CDMA bez EvDo-a"</item>
+ <item msgid="4678789463133969294">"Samo EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Globalno"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Samo TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Globalno"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 4781da9..45176d3 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Izradi"</string>
<string name="allow" msgid="3349662621170855910">"Dopusti"</string>
<string name="deny" msgid="6947806159746484865">"Odbij"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Zatvori"</string>
<string name="device_info_default" msgid="7847265875578739287">"Nepoznato"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Još <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> korak i postat ćete razvojni programer.</item>
@@ -37,7 +36,7 @@
<string name="radio_info_data_connection_disable" msgid="8541302390883231216">"Onemogući podatkovnu vezu"</string>
<string name="volte_provisioned_switch_string" msgid="7979882929810283786">"VoLTE omogućen"</string>
<string name="vt_provisioned_switch_string" msgid="7876998291744854759">"Pružena usluga videopoziva"</string>
- <string name="wfc_provisioned_switch_string" msgid="3985406545172898078">"Pružena usluga poziva putem Wi-Fi-ja"</string>
+ <string name="wfc_provisioned_switch_string" msgid="3985406545172898078">"Pružena usluga poziva putem Wi-Fija"</string>
<string name="eab_provisioned_switch_string" msgid="3482272907448592975">"Pruža se usluga EAB-a/prisutnosti"</string>
<string name="radio_info_radio_power" msgid="7187666084867419643">"Snaga mobilnog radija"</string>
<string name="radioInfo_menu_viewADN" msgid="7069468158519465139">"Prikaži imenik SIM-a"</string>
@@ -811,13 +810,13 @@
<string name="wifi_quick_toggle_title" msgid="8850161330437693895">"Wi-Fi"</string>
<string name="wifi_quick_toggle_summary" msgid="2696547080481267642">"Uključite Wi-Fi"</string>
<string name="wifi_settings" msgid="29722149822540994">"Wi-Fi"</string>
- <string name="wifi_settings_master_switch_title" msgid="4746267967669683259">"Upotreba Wi-Fi-ja"</string>
- <string name="wifi_settings_category" msgid="8719175790520448014">"Postavke Wi-Fi-ja"</string>
+ <string name="wifi_settings_master_switch_title" msgid="4746267967669683259">"Upotreba Wi-Fija"</string>
+ <string name="wifi_settings_category" msgid="8719175790520448014">"Postavke Wi-Fija"</string>
<string name="wifi_settings_title" msgid="3103415012485692233">"Wi-Fi"</string>
<string name="wifi_settings_summary" msgid="668767638556052820">"Postavljanje i upravljanje bežičnim pristupnim točkama"</string>
<string name="wifi_select_network" msgid="4210954938345463209">"Odaberite Wi‑Fi mrežu"</string>
- <string name="wifi_starting" msgid="6732377932749942954">"Uključivanje Wi-Fi-ja…"</string>
- <string name="wifi_stopping" msgid="8952524572499500804">"Isključivanje Wi-Fi-ja…"</string>
+ <string name="wifi_starting" msgid="6732377932749942954">"Uključivanje Wi-Fija…"</string>
+ <string name="wifi_stopping" msgid="8952524572499500804">"Isključivanje Wi-Fija…"</string>
<string name="wifi_error" msgid="3207971103917128179">"Pogreška"</string>
<string name="wifi_sap_no_channel_error" msgid="3108445199311817111">"U ovoj zemlji nije dostupna frekvencija od 5 GHz"</string>
<string name="wifi_in_airplane_mode" msgid="8652520421778203796">"U načinu rada u zrakoplovu"</string>
@@ -837,13 +836,13 @@
<string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="8472122600853650258">"Za upotrebu odaberite kompatibilnog ocjenjivača mreže"</string>
<string name="wifi_install_credentials" msgid="3551143317298272860">"Instaliranje certifikata"</string>
<string name="wifi_scan_notify_text" msgid="5544778734762998889">"Da bi se poboljšala točnost lokacije, aplikacije i usluge i dalje mogu tražiti Wi‑Fi mreže u bilo kojem trenutku, čak i kada je Wi‑Fi isključen. Na taj se način mogu, na primjer, poboljšati značajke i usluge koje se temelje na lokaciji. To možete promijeniti u <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>postavkama pretraživanja<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
- <string name="wifi_scan_notify_text_scanning_off" msgid="3426075479272242098">"Radi poboljšanja preciznosti lokacije uključite traženje Wi-Fi-ja u <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>postavkama traženja<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
+ <string name="wifi_scan_notify_text_scanning_off" msgid="3426075479272242098">"Radi poboljšanja preciznosti lokacije uključite traženje Wi-Fija u <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>postavkama traženja<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
<string name="wifi_scan_notify_remember_choice" msgid="7104867814641144485">"Ne prikazuj ponovno"</string>
<string name="wifi_setting_sleep_policy_title" msgid="5149574280392680092">"Zadrži Wi-Fi tijekom mirovanja"</string>
<string name="wifi_setting_on_during_sleep_title" msgid="8308975500029751565">"Wi‑Fi ostaje aktivan u mirovanju"</string>
<string name="wifi_setting_sleep_policy_error" msgid="8174902072673071961">"Pojavio se problem s promjenom postavke"</string>
<string name="wifi_suspend_efficiency_title" msgid="2338325886934703895">"Poboljšaj učinkovitost"</string>
- <string name="wifi_suspend_optimizations" msgid="1220174276403689487">"Optimizacija Wi-Fi-ja"</string>
+ <string name="wifi_suspend_optimizations" msgid="1220174276403689487">"Optimizacija Wi-Fija"</string>
<string name="wifi_suspend_optimizations_summary" msgid="4151428966089116856">"Minimiziraj potrošnju baterije kad je Wi-Fi uključen"</string>
<string name="wifi_limit_optimizations_summary" msgid="9000801068363468950">"Ograniči bateriju za Wi‑Fi"</string>
<string name="wifi_switch_away_when_unvalidated" msgid="8593144541347373394">"Prijeđi na mobilne podatke ako Wi‑Fi izgubi pristup internetu."</string>
@@ -869,7 +868,7 @@
<string name="wifi_empty_list_user_restricted" msgid="7322372065475939129">"Nemate dopuštenje za promjenu Wi‑Fi mreže."</string>
<string name="wifi_more" msgid="3195296805089107950">"Više"</string>
<string name="wifi_setup_wps" msgid="8128702488486283957">"Autom. postavljanje (WPS)"</string>
- <string name="wifi_settings_scanning_required_title" msgid="3815269816331500375">"Uključiti traženje Wi-Fi-ja?"</string>
+ <string name="wifi_settings_scanning_required_title" msgid="3815269816331500375">"Uključiti traženje Wi-Fija?"</string>
<string name="wifi_settings_scanning_required_summary" msgid="6352918945128328916">"Za automatsko uključivanje Wi‑Fi-ja najprije morate uključiti traženje Wi‑Fi-ja."</string>
<string name="wifi_settings_scanning_required_info" msgid="3155631874578023647">"Traženje Wi‑Fi-ja omogućuje aplikacijama i uslugama da traže Wi‑Fi mreže u bilo kojem trenutku, čak i kada je Wi‑Fi isključen. Na taj se način mogu, na primjer, poboljšati značajke i usluge koje se temelje na lokaciji."</string>
<string name="wifi_settings_scanning_required_turn_on" msgid="1364287182804820646">"Uključi"</string>
@@ -907,6 +906,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Odaberite barem jedan pojas za žarišnu točku Wi‑Fi-ja:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP postavke"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privatnost"</string>
<string name="wifi_shared" msgid="844142443226926070">"Podijeli s drugim korisnicima uređaja"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nepromijenjeno)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Odaberite"</string>
@@ -1221,6 +1221,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Nije moguće promijeniti PIN.\nPIN je možda netočan."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"Uspješno je promijenjen PIN SIM-a"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Nije moguće promijeniti stanje zaključanosti SIM kartice.\nMožda je PIN pogrešan."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Onemogućivanje PIN-a nije uspjelo."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Omogućivanje PIN-a nije uspjelo."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"U redu"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Odustani"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Pronađeno je više SIM-ova"</string>
@@ -1281,7 +1283,7 @@
<string name="status_signal_strength" msgid="3732655254188304547">"Jakost signala"</string>
<string name="status_roaming" msgid="2638800467430913403">"Roaming"</string>
<string name="status_operator" msgid="2274875196954742087">"Mreža"</string>
- <string name="status_wifi_mac_address" msgid="2202206684020765378">"MAC adresa Wi-Fi-ja"</string>
+ <string name="status_wifi_mac_address" msgid="2202206684020765378">"MAC adresa Wi-Fija"</string>
<string name="status_bt_address" msgid="4195174192087439720">"Bluetooth adresa"</string>
<string name="status_serial_number" msgid="2257111183374628137">"Serijski broj"</string>
<string name="status_up_time" msgid="7294859476816760399">"Vrijeme aktivnosti"</string>
@@ -1587,7 +1589,7 @@
<string name="location_scanning_bluetooth_always_scanning_description" msgid="1285526059945206128">"Dopustite aplikacijama i uslugama da traže uređaje u blizini u bilo kojem trenutku, čak i kada je Bluetooth isključen. Na taj se način mogu, na primjer, poboljšati značajke i usluge koje se temelje na lokaciji."</string>
<string name="location_network_based" msgid="9134175479520582215">"Lokacija Wi-Fi i mob. mreža"</string>
<string name="location_neighborhood_level" msgid="5141318121229984788">"Omogućite aplik. da upotrebljavaju Googleovu uslugu lokacije za brže lociranje. Anonimni podaci prikupljat će se i slati Googleu."</string>
- <string name="location_neighborhood_level_wifi" msgid="4234820941954812210">"Lokacija utvrđena pomoću Wi-Fi-ja"</string>
+ <string name="location_neighborhood_level_wifi" msgid="4234820941954812210">"Lokacija utvrđena pomoću Wi-Fija"</string>
<string name="location_gps" msgid="8392461023569708478">"GPS sateliti"</string>
<string name="location_street_level" product="tablet" msgid="1669562198260860802">"Omogućite aplikacijama da upotrebljavaju GPS na tabletnom računalu za označavanje vaše lokacije"</string>
<string name="location_street_level" product="default" msgid="4617445745492014203">"Omogućite aplikacijama da upotrebljavaju GPS na vašem telefonu za označavanje vaše lokacije"</string>
@@ -2316,7 +2318,7 @@
<string name="battery_action_app_details" msgid="7861051816778419018">"Info o aplikaciji"</string>
<string name="battery_action_app_settings" msgid="4570481408106287454">"Postavke aplikacije"</string>
<string name="battery_action_display" msgid="7338551244519110831">"Postavke zaslona"</string>
- <string name="battery_action_wifi" msgid="8181553479021841207">"Postavke Wi-Fi-ja"</string>
+ <string name="battery_action_wifi" msgid="8181553479021841207">"Postavke Wi-Fija"</string>
<string name="battery_action_bluetooth" msgid="8374789049507723142">"Bluetooth postavke"</string>
<string name="battery_desc_voice" msgid="8980322055722959211">"Baterija upotrijebljena uslugom glasovnog poziva"</string>
<string name="battery_desc_standby" product="tablet" msgid="6284747418668280364">"Upotreba baterije kad je tabletni uređaj u mirovanju"</string>
@@ -2474,7 +2476,7 @@
<string name="backup_erase_dialog_title" msgid="1027640829482174106"></string>
<string name="backup_erase_dialog_message" msgid="5221011285568343155">"Želite li zaustaviti stvaranje sigurnosnih kopija Wi-Fi zaporki, oznaka, drugih postavki i podataka aplikacija te izbrisati sve kopije na Googleovim poslužiteljima?"</string>
<string name="fullbackup_erase_dialog_message" msgid="694766389396659626">"Želite li zaustaviti sigurnosno kopiranje podatka s uređaja (kao što su zaporke za Wi-Fi i povijest poziva) i podataka aplikacija (kao što su postavke i datoteke koje aplikacije spremaju) te izbrisati sve kopije na udaljenim poslužiteljima?"</string>
- <string name="fullbackup_data_summary" msgid="960850365007767734">"Daljinski pokrenite automatsku izradu sigurnosne kopije podataka uređaja (kao što su zaporke Wi-Fi-ja i povijest poziva) i podataka aplikacija (kao što su postavke i datoteke koje aplikacije pohranjuju).\n\nKada uključite automatsku izradu sigurnosnih kopija, podaci uređaja i aplikacija periodično se daljinski spremaju. Podaci aplikacije mogu biti bilo koji podaci koje je aplikacija spremila (na temelju postavki razvojnog programera), uključujući potencijalno osjetljive podatke kao što su kontakti, poruke i fotografije."</string>
+ <string name="fullbackup_data_summary" msgid="960850365007767734">"Daljinski pokrenite automatsku izradu sigurnosne kopije podataka uređaja (kao što su zaporke Wi-Fija i povijest poziva) i podataka aplikacija (kao što su postavke i datoteke koje aplikacije pohranjuju).\n\nKada uključite automatsku izradu sigurnosnih kopija, podaci uređaja i aplikacija periodično se daljinski spremaju. Podaci aplikacije mogu biti bilo koji podaci koje je aplikacija spremila (na temelju postavki razvojnog programera), uključujući potencijalno osjetljive podatke kao što su kontakti, poruke i fotografije."</string>
<string name="device_admin_settings_title" msgid="4960761799560705902">"Postavke administratora uređaja"</string>
<string name="active_device_admin_msg" msgid="578748451637360192">"Aplikacija administratora uređaja"</string>
<string name="remove_device_admin" msgid="9207368982033308173">"Deaktiviraj aplikaciju administratora ovog uređaja"</string>
@@ -2969,7 +2971,6 @@
<item quantity="few">Prikaži %d skrivene stavke</item>
<item quantity="other">Prikaži %d skrivenih stavki</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Sažmi"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Mreža i internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilna mreža"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"potrošnja podatkovnog prometa"</string>
@@ -3039,6 +3040,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tamna tema"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"programska pogreška"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambijentalni zaslon, prikaz zaključanog zaslona"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"obavijest o zaključanom zaslonu"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"lice"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"otisak prsta"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"zatamnjenje zaslona, dodirni zaslon, baterija, pametna svjetlina, dinamična svjetlina"</string>
@@ -3767,6 +3769,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Interna pohrana: <xliff:g id="PERCENTAGE">%1$s</xliff:g> iskorišteno – <xliff:g id="FREE_SPACE">%2$s</xliff:g> slobodno"</string>
<string name="display_summary" msgid="6737806235882127328">"Mirovanje nakon <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> neaktivnosti"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Pozadina, mirovanje, veličina fonta"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Mirovanje nakon 10 minuta neaktivnosti"</string>
<string name="memory_summary" msgid="8080825904671961872">"Iskorišteno je prosječno <xliff:g id="USED_MEMORY">%1$s</xliff:g> od <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Prijavljeni ste kao <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -3800,9 +3804,9 @@
<string name="condition_battery_title" msgid="3272131008388575349">"Štednja baterije je uključena"</string>
<string name="condition_battery_summary" msgid="507347940746895275">"Štednja baterije isključuje neke značajke uređaja i ograničava aplikacije"</string>
<string name="condition_cellular_title" msgid="1327317003797575735">"Mobilni su podaci isključeni"</string>
- <string name="condition_cellular_summary" msgid="1818046558419658463">"Internet je dostupan samo putem Wi-Fi-ja"</string>
+ <string name="condition_cellular_summary" msgid="1818046558419658463">"Internet je dostupan samo putem Wi-Fija"</string>
<string name="condition_bg_data_title" msgid="2483860304802846542">"Štednja podat. prometa uključ."</string>
- <string name="condition_bg_data_summary" msgid="656957852895282228">"Pozadinski podaci dostupni su samo putem Wi-Fi-ja. To može utjecati na neke aplikacije ili usluge kada Wi-Fi nije dostupan."</string>
+ <string name="condition_bg_data_summary" msgid="656957852895282228">"Pozadinski podaci dostupni su samo putem Wi-Fija. To može utjecati na neke aplikacije ili usluge kada Wi-Fi nije dostupan."</string>
<string name="condition_work_title" msgid="7293722361184366648">"Radni je profil isključen"</string>
<string name="condition_work_summary" msgid="7543202177571590378">"Isključene su aplikacije, sinkronizacija u pozadini i ostale značajke povezane s vašim radnim profilom."</string>
<string name="condition_device_muted_action_turn_on_sound" msgid="4930240942726349213">"Uključi zvuk"</string>
@@ -3841,7 +3845,7 @@
<string name="usage" msgid="2977875522080448986">"Potrošnja"</string>
<string name="cellular_data_usage" msgid="2155683719898158203">"Potrošnja mobilnih podataka"</string>
<string name="app_cellular_data_usage" msgid="5468472735806533448">"Potrošnja podatkovnog prometa za aplikacije"</string>
- <string name="wifi_data_usage" msgid="771603760674507659">"Potrošnja podatkovnog prometa putem Wi-Fi-ja"</string>
+ <string name="wifi_data_usage" msgid="771603760674507659">"Potrošnja podatkovnog prometa putem Wi-Fija"</string>
<string name="ethernet_data_usage" msgid="5108764537574354616">"Potrošnja ethernet podataka"</string>
<string name="wifi" msgid="1081550856200013637">"Wi-Fi"</string>
<string name="ethernet" msgid="6600095783781389720">"Ethernet"</string>
@@ -4227,10 +4231,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Pojedinosti o mreži"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Naziv vašeg uređaja vidljiv je aplikacijama na vašem telefonu. Mogu ga vidjeti i drugi ljudi kada se povežete s Bluetooth uređajima ili postavite Wi-Fi žarišnu točku."</string>
<string name="devices_title" msgid="7701726109334110391">"Uređaji"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Ploča visoke frekvencije"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Omogući virtualnu ploču visoke frekvencije"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Sve postavke"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Vaše postavke"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Prijedlozi"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Podaci CBRS-a"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Podaci CBRS-a"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Odaberite mrežu"</string>
@@ -4242,4 +4244,73 @@
<string name="network_query_error" msgid="7487714485362598410">"Nije pronađena nijedna mreža. Pokušajte ponovo."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(zabranjeno)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Nema SIM kartice"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Napredno pozivanje"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Način željene mreže: Preferirano WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Način željene mreže: Samo GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Način željene mreže: Samo WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Način željene mreže: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Način željene mreže: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Način željene mreže: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Način željene mreže: Samo CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Način željene mreže: Samo EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Preferirani mrežni način: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Preferirani mrežni način: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Preferirani mrežni način: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Preferirani mrežni način: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Preferirani mrežni način: globalni"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Preferirani mrežni način: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Preferirani način mreže: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Način željene mreže: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Preferirani mrežni način: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Preporučeni mrežni način: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Preporučeni mrežni način: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Preporučeni mrežni način: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Preporučeni mrežni način: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Preporučeni mrežni način: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Preporučeni mrežni način: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Preporučeni mrežni način: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Preporučeni mrežni način: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Preporučeni mrežni način: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (preporučeno)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (preporučeno)"</string>
+ <string name="network_global" msgid="959947774831178632">"Globalno"</string>
+ <string name="label_available" msgid="1731547832803057893">"Dostupne mreže"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Pretraživanje…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Prijava na mrežu <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Vaša SIM kartica ne dopušta povezivanje s ovom mrežom."</string>
+ <string name="connect_later" msgid="978991102125216741">"Povezivanje s tom mrežom trenutačno nije moguće. Pokušajte kasnije."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registrirano na mreži."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Automatski odaberi mrežu"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Post. mobilnog operatera"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Postavljanje podatkovne usluge"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobilni podaci"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Pristupi podacima pomoću mobilne mreže"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Željena vrsta mreže"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Promijenite način rada mreže"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Željena vrsta mreže"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Dostavljač"</string>
+ <string name="call_category" msgid="8108654745239563833">"Pozivanje"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videopozivanje putem mobilnog operatera"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Odabir sustava"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Promijeni način rada CDMA roaminga"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Odabir sustava"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Mreža"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Mreža"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA pretplata"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Izmjenjivanje među RUIM/SIM i NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"pretplata"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatska prijava…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Dopusti roaming podataka?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Podatke o cijeni možete saznati od svojeg mrežnog operatera."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Potrošnja podatkovnog prometa za aplikacije"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Mrežni način <xliff:g id="NETWORKMODEID">%1$d</xliff:g> nije važeći. Zanemarite."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nedostupno kada je povezano s mobilnim operaterom <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Prikaži više"</string>
+ <string name="see_less" msgid="1250265310929558370">"Prikaži manje"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="one">Povezan je <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> uređaj.</item>
+ <item quantity="few">Povezana su <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> uređaja.</item>
+ <item quantity="other">Povezano je <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> uređaja.</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Nema povezanih uređaja"</string>
</resources>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index 05a2de0..ce0a59c 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Kezelje forgalomkorlátosként"</item>
<item msgid="2266114985518865625">"Kezelje nem forgalomkorlátosként"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Alapértelmezett (véletlenszerű MAC-cím használata)"</item>
+ <item msgid="5398461510512959597">"Megbízható"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Nem"</item>
<item msgid="3863157480502955888">"Igen"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Hibakeresés"</item>
<item msgid="5286514712714822064">"Részletes"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Csak otthoni"</item>
+ <item msgid="5034813753274486448">"Automatikus"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA a preferált"</item>
+ <item msgid="807926878589867564">"Csak GSM"</item>
+ <item msgid="488474605709912156">"Csak WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA – automatikus"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo – automatikus"</item>
+ <item msgid="370391313511477301">"CDMA EvDo nélkül"</item>
+ <item msgid="4678789463133969294">"Csak EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Globális"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Csak TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Globális"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index da26fe4..5df9f25 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Létrehozás"</string>
<string name="allow" msgid="3349662621170855910">"Engedélyezés"</string>
<string name="deny" msgid="6947806159746484865">"Elutasítás"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Bezárás"</string>
<string name="device_info_default" msgid="7847265875578739287">"Ismeretlen"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other"><xliff:g id="STEP_COUNT_1">%1$d</xliff:g> lépésre van attól, hogy fejlesztő legyen.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Válasszon legalább egy sávot a Wi-Fi-hotspot számára:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP-beállítások"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Adatvédelem"</string>
<string name="wifi_shared" msgid="844142443226926070">"Megosztás az eszköz más felhasználóival"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nem változott)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Kérjük, válasszon"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Nem lehet megváltoztatni a PIN-kódot.\nLehet, hogy hibás a PIN-kód."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"A SIM-kártya PIN-kódja sikeresen módosításra került"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Nem lehet megváltoztatni a SIM-kártya zárolási állapotát.\nLehet, hogy hibás a PIN-kód."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Nem sikerült letiltani a PIN-kódot."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Nem sikerült engedélyezni a PIN-kódot."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Mégse"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Több SIM kártyát találtunk"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">%d rejtett elem megjelenítése</item>
<item quantity="one">%d rejtett elem megjelenítése</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Összecsukás"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Hálózat és internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobil"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"adathasználat"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"sötét téma"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"programhiba"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Aktív kijelző, lezárási képernyő"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lezárási képernyőn megjelenő értesítés"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"arc"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"ujjlenyomat"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"képernyő halványítása, érintőképernyő, akkumulátor, okos fényerő, dinamikus fényerő"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Belső tárhely: Felhasznált: <xliff:g id="PERCENTAGE">%1$s</xliff:g> – Szabad: <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"Alvó mód bekapcsolása <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> inaktivitás után"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Háttérkép, Alvó mód, betűméret"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Alvó mód bekapcsolása 10 perc inaktivitás után"</string>
<string name="memory_summary" msgid="8080825904671961872">"Átlagosan <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>/<xliff:g id="USED_MEMORY">%1$s</xliff:g> memória használatban"</string>
<string name="users_summary" msgid="1674864467098487328">"Bejelentkezve mint <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Hálózati információk"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Eszköze neve látható a telefonján lévő alkalmazások számára. Mások is láthatják, ha csatlakoztatja telefonját más Bluetooth-eszközökhöz, vagy ha Wi-Fi-hotspotot állít be."</string>
<string name="devices_title" msgid="7701726109334110391">"Eszközök"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Gyakori frissítésű panel"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Gyakori frissítésű virtuális panel engedélyezése"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Minden beállítás"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Saját beállítások"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Javaslatok"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-adatok"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-adatok"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Hálózat kiválasztása"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Nincs hálózat. Próbálja újra."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(tiltott)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Nincs SIM-kártya"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Továbbfejlesztett telefonhívás"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Előnyben részesített hálózati mód: preferált WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Előnyben részesített hálózati mód: csak GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Előnyben részesített hálózati mód: csak WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Előnyben részesített hálózati mód: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Előnyben részesített hálózati mód: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Előnyben részesített hálózati mód: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Előnyben részesített hálózati mód: csak CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Előnyben részesített hálózati mód: csak EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Előnyben részesített hálózati mód: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Előnyben részesített hálózati mód: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Előnyben részesített hálózati mód: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Előnyben részesített hálózati mód: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Előnyben részesített hálózati mód: globális"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Előnyben részesített hálózati mód: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Előnyben részesített hálózati mód: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Előnyben részesített hálózati mód: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Előnyben részesített hálózati mód: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Előnyben részesített hálózati mód: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Előnyben részesített hálózati mód: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Előnyben részesített hálózati mód: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Előnyben részesített hálózati mód: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Előnyben részesített hálózati mód: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Előnyben részesített hálózati mód: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Előnyben részesített hálózati mód: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Előnyben részesített hálózati mód: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Előnyben részesített hálózati mód: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (javasolt)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (javasolt)"</string>
+ <string name="network_global" msgid="959947774831178632">"Globális"</string>
+ <string name="label_available" msgid="1731547832803057893">"Rendelkezésre álló hálózatok"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Keresés…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Regisztráció a(z) <xliff:g id="NETWORK">%s</xliff:g> hálózaton…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM-kártyája nem teszi lehetővé a kapcsolódást ehhez a hálózathoz."</string>
+ <string name="connect_later" msgid="978991102125216741">"Most nem lehet csatlakozni a hálózathoz. Próbálja meg később."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Regisztrálva a hálózaton."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Hálózat automatikus kiválasztása"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Szolgáltatói beállítások"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Adatszolgáltatás beállítása"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobiladat"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Adathozzáférés a mobilhálózaton keresztül"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Előnyben részesített hálózattípus"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"A hálózati üzemmód megváltoztatása"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Előnyben részesített hálózattípus"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Szolgáltató"</string>
+ <string name="call_category" msgid="8108654745239563833">"Hívás"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Szolgáltatói videohívás"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Rendszer kiválasztása"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"A CDMA-roaming mód módosítása"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Rendszer kiválasztása"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Hálózat"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Hálózat"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA-előfizetés"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Váltás RUIM/SIM és NV között"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"előfizetés"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatikus regisztráció…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Engedélyezi az adatbarangolást?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Az árakat a szolgáltatótól tudhatja meg."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Alkalmazás adathasználata"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Érvénytelen hálózati mód: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Figyelmen kívül hagyás."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nem hozzáférhető, amikor a következőhöz csatlakozik: <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Továbbiak"</string>
+ <string name="see_less" msgid="1250265310929558370">"Kevesebb megjelenítése"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> eszköz csatlakoztatva</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> eszköz csatlakoztatva</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Nincsenek csatlakoztatott eszközök"</string>
</resources>
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
index 6869b07..4062a14 100644
--- a/res/values-hy/arrays.xml
+++ b/res/values-hy/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Սահմանափակ"</item>
<item msgid="2266114985518865625">"Անսահմանափակ"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Կանխադրված (օգտագործել պատահական MAC հասցե)"</item>
+ <item msgid="5398461510512959597">"Վստահելի"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Ոչ"</item>
<item msgid="3863157480502955888">"Այո"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Վրիպազերծում"</item>
<item msgid="5286514712714822064">"Մանրամասն"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Միայն տնային ցանցերը"</item>
+ <item msgid="5034813753274486448">"Ավտոմատ"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA (նախընտրելի ռեժիմ)"</item>
+ <item msgid="807926878589867564">"Միայն GSM"</item>
+ <item msgid="488474605709912156">"Միայն WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA ավտոմատ"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo ավտոմատ"</item>
+ <item msgid="370391313511477301">"CDMA առանց EvDo"</item>
+ <item msgid="4678789463133969294">"Միայն EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA+LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Համաշխարհային"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Միայն TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Համաշխարհային"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index cd083f1..199ee8a 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Ստեղծել"</string>
<string name="allow" msgid="3349662621170855910">"Թույլատրել"</string>
<string name="deny" msgid="6947806159746484865">"Մերժել"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Փակել"</string>
<string name="device_info_default" msgid="7847265875578739287">"Անհայտ"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Ծրագրավորող դառնալու համար ձեզ մնացել է կատարել <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> քայլ:</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 ԳՀց"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Ընտրեք նվազագույնը մեկ հաճախականություն Wi‑Fi թեժ կետի համար՝"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP կարգավորումներ"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Գաղտնիություն"</string>
<string name="wifi_shared" msgid="844142443226926070">"Կիսվել այլ սարքերի օգտատերերի հետ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(անփոփոխ)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Ընտրեք"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Չհաջողվեց փոխել PIN-ը:\nՀնարավոր է` PIN-ը սխալ է:"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM քարտի PIN կոդը հաջողությամբ փոխվել է"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Հնարավոր չէ բացել SIM քարտի կողպված կարգավիճակը:\nՀնարավոր է` սխալ PIN է մուտքագրվել:"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Չհաջողվեց անջատել PIN կոդը"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Չհաջողվեց միացնել PIN կոդը"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Հաստատել"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Չեղարկել"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Բազմաթիվ SIM քարտեր են գտնվել"</string>
@@ -2931,7 +2933,6 @@
<item quantity="one">Show %d hidden items</item>
<item quantity="other">Ցույց տալ %d թաքնված տարրեր</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Կոծկել"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Ցանց և ինտերնետ"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"բջջային"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"տվյալների օգտագործում"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"մուգ թեմա"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"վրիպակ"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ամբիենտ էկրան, կողպէկրան"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ծանուցում կողպէկրանին"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"դեմք"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"մատնահետք"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"խամրեցված էկրան, հպէկրան, մարտկոց, խելացի պայծառություն, դինամիկ պայծառություն"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Ներքին հիշողություն՝ <xliff:g id="PERCENTAGE">%1$s</xliff:g> օգտագործված – <xliff:g id="FREE_SPACE">%2$s</xliff:g> ազատ"</string>
<string name="display_summary" msgid="6737806235882127328">"Ակտիվացնել քնի ռեժիմը <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> անգործուն մնալուց հետո"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Պաստառ, քնի ռեժիմ, տառաչափ"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<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>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Ցանցի տվյալներ"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Ձեր սարքի անունը տեսանելի է հեռախոսի հավելվածներին։ Այն կարող են տեսնել օգտատերերը, երբ միանում եք Bluetooth սարքերի կամ կարգավորում եք Wi-Fi թեժ կետը։"</string>
<string name="devices_title" msgid="7701726109334110391">"Սարքեր"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Հաճախականության վահանակ"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Միսցնել բարձր հաճախականության վիրտուալ վահանակը"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Բոլոր կարգավորումները"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Իմ կարգավորումները"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Առաջարկներ"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS տվյալներ"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS տվյալներ"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Ընտրել ցանց"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Չհաջողվեց ցանցեր գտնել: Նորից փորձեք:"</string>
<string name="forbidden_network" msgid="4626592887509826545">"(արգելված)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM քարտ չկա"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Ընդլայնված հնարավորություններով զանգեր"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Ցանցի նախընտրելի ռեժիմը՝ WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Ցանցի նախընտրելի ռեժիմը՝ միայն GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Ցանցի նախընտրելի ռեժիմը՝ միայն WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Ցանցի նախընտրելի ռեժիմը՝ GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Ցանցի նախընտրելի ռեժիմը՝ CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Ցանցի նախընտրելի ռեժիմը՝ CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Ցանցի նախընտրելի ռեժիմը՝ միայն CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Ցանցի նախընտրելի ռեժիմը՝ միայն EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Ցանցի նախընտրելի ռեժիմը՝ CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Ցանցի նախընտրելի ռեժիմը՝ LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Ցանցի նախընտրելի ռեժիմը՝ GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Ցանցի նախընտրելի ռեժիմը՝ CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Ցանցի նախընտրելի ռեժիմը՝ համաշխարհային"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Ցանցի նախընտրելի ռեժիմը՝ LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Ցանցի նախընտրելի ռեժիմը՝ LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Ցանցի նախընտրելի ռեժիմը` LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Ցանցի նախընտրելի ռեժիմը՝ TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Ցանցի նախընտրելի ռեժիմը՝ TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Ցանցի նախընտրելի ռեժիմը՝ LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Ցանցի նախընտրելի ռեժիմը՝ TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Ցանցի նախընտրելի ռեժիմը՝ LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Ցանցի նախընտրելի ռեժիմը՝ TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Ցանցի նախընտրելի ռեժիմը՝ LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Ցանցի նախընտրելի ռեժիմը՝ LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Ցանցի նախընտրելի ռեժիմը՝ TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Ցանցի նախընտրելի ռեժիմը՝ LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (խորհուրդ է տրվում)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (խորհուրդ է տրվում)"</string>
+ <string name="network_global" msgid="959947774831178632">"Համաշխարհային"</string>
+ <string name="label_available" msgid="1731547832803057893">"Հասանելի ցանցեր"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Որոնում…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Գրանցվում է <xliff:g id="NETWORK">%s</xliff:g>-ում..."</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Ձեր SIM քարտը թույլ չի տալիս այս ցանցին միանալ:"</string>
+ <string name="connect_later" msgid="978991102125216741">"Հնարավոր չէ միանալ այս ցանցին հիմա: Փորձեք ավելի ուշ:"</string>
+ <string name="registration_done" msgid="4573820010512184521">"Գրանցված է ցանցում:"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Ավտոմատ ընտրել ցանցը"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Օպերատորի կարգավորումներ"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Տվյալների փոխանցման կարգավորում"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Բջջային ինտերնետ"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Օգտվել բջջային ինտերնետից"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Ցանցի նախընտրելի տեսակը"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Ցանցի աշխատանքի ռեժիմի փոփոխություն"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Ցանցի նախընտրելի տեսակը"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Օպերատոր"</string>
+ <string name="call_category" msgid="8108654745239563833">"Զանգ"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Տեսազանգեր բջջային ցանցի միջոցով"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Համակարգի ընտրությում"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Փոխել CDMA ռոումինգի ռեժիմը"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Համակարգի ընտրություն"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Ցանց"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Ցանց"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA բաժանորդագրում"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Փոխել RUIM/SIM քարտի և NV-ի միջև"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"բաժանորդագրություն"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Ավտոմատ գրանցում..."</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Թույլատրե՞լ տվյալների ռոումինգը"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Գների վերաբերյալ տեղեկություններ ստանալու համար դիմեք ձեր օպերատորին:"</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Հավելվածների թրաֆիկ"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Ցանցի անվավեր ռեժիմ՝ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>։ Փակել։"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Հասանելի չէ <xliff:g id="CARRIER">%1$s</xliff:g>-ին միանալու դեպքում"</string>
+ <string name="see_more" msgid="5953815986207345223">"Տեսնել ավելին"</string>
+ <string name="see_less" msgid="1250265310929558370">"Տեսնել ավելի քիչ"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index d9403c3..15b37b7 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Perlakukan sebagai terukur"</item>
<item msgid="2266114985518865625">"Perlakukan sebagai belum terukur"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Default (gunakan MAC acak)"</item>
+ <item msgid="5398461510512959597">"Dipercaya"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Tidak"</item>
<item msgid="3863157480502955888">"Ya"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Debug"</item>
<item msgid="5286514712714822064">"Panjang"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Hanya Layar utama"</item>
+ <item msgid="5034813753274486448">"Otomatis"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA dipilih"</item>
+ <item msgid="807926878589867564">"Hanya GSM"</item>
+ <item msgid="488474605709912156">"Hanya WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA otomatis"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo otomatis"</item>
+ <item msgid="370391313511477301">"CDMA tanpa EvDo"</item>
+ <item msgid="4678789463133969294">"Hanya EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Hanya TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index ac496a6..3376e6f 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Buat"</string>
<string name="allow" msgid="3349662621170855910">"Izinkan"</string>
<string name="deny" msgid="6947806159746484865">"Tolak"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Tutup"</string>
<string name="device_info_default" msgid="7847265875578739287">"Tidak diketahui"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Tinggal <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> langkah untuk menjadi developer.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Pilih minimal satu pita frekuensi untuk hotspot Wi‑Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Setelan IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privasi"</string>
<string name="wifi_shared" msgid="844142443226926070">"Berbagi dengan pengguna perangkat lain"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(tidak diubah)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Pilih"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Tidak dapat mengubah PIN.\nPIN mungkin salah."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN SIM berhasil diubah"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Tidak bisa mengubah status kunci kartu SIM.\nPIN Mungkin salah."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Tidak dapat menonaktifkan PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Tidak dapat mengaktifkan PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Oke"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Batal"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Ditemukan beberapa SIM"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Tampilkan %d item tersembunyi</item>
<item quantity="one">Tampilkan %d item tersembunyi</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Ciutkan"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Jaringan & internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"seluler"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"penggunaan data"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tema gelap"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"bug"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Tampilan standby, tampilan Layar kunci"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notifikasi layar kunci"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"wajah"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"sidik jari"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"redupkan layar, layar sentuh, baterai, smart brightness, kecerahan dinamis"</string>
@@ -3678,7 +3680,7 @@
<string name="camera_gesture_desc" msgid="1831390075255870960">"Membuka aplikasi kamera dengan memutar pergelangan tangan dua kali"</string>
<string name="camera_double_tap_power_gesture_title" msgid="1651873760405034645">"Tekan tombol daya dua kali untuk kamera"</string>
<string name="camera_double_tap_power_gesture_desc" msgid="7355664631775680376">"Membuka kamera dengan cepat tanpa membuka kunci layar"</string>
- <string name="screen_zoom_title" msgid="5233515303733473927">"Ukuran layar"</string>
+ <string name="screen_zoom_title" msgid="5233515303733473927">"Ukuran tampilan"</string>
<string name="screen_zoom_short_summary" msgid="7291960817349834688">"Membuat item di layar menjadi lebih besar atau lebih kecil"</string>
<string name="screen_zoom_keywords" msgid="9176477565403352552">"layar, kepadatan, zoom layar, skala, penskalaan"</string>
<string name="screen_zoom_summary" msgid="6445488991799015407">"Buat item di layar jadi lebih kecil atau lebih besar. Beberapa aplikasi di layar dapat berubah posisi."</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Penyimpanan internal: <xliff:g id="PERCENTAGE">%1$s</xliff:g> digunakan - <xliff:g id="FREE_SPACE">%2$s</xliff:g> kososng"</string>
<string name="display_summary" msgid="6737806235882127328">"Tidur setelah <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> dalam keadaan tidak aktif"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Wallpaper, tidur, ukuran font"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Tidur setelah 10 menit dalam keadaan tidak aktif"</string>
<string name="memory_summary" msgid="8080825904671961872">"Rata-rata <xliff:g id="USED_MEMORY">%1$s</xliff:g> dari <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memori digunakan"</string>
<string name="users_summary" msgid="1674864467098487328">"Login sebagai <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Detail jaringan"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Nama perangkat terlihat oleh aplikasi di ponsel, dan juga mungkin dilihat oleh orang lain saat Anda menghubungkan ke perangkat Bluetooth atau menyiapkan hotspot Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Perangkat"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Panel Frekuensi Tinggi"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Aktifkan Panel Frekuensi Tinggi Virtual"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Semua Setelan"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Setelan Anda"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Saran"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Data CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Data CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Pilih jaringan"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Tidak dapat menemukan jaringan. Coba lagi."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(terlarang)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Tidak ada kartu SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Mode Panggilan Lanjutan"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Mode jaringan pilihan: WCDMA dipilih"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Mode jaringan pilihan: hanya GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Mode jaringan pilihan: hanya WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Mode jaringan pilihan: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Mode jaringan pilihan: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Mode jaringan pilihan: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Mode jaringan pilihan: hanya CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Mode jaringan pilihan: hanya EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Mode jaringan pilihan: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Mode jaringan pilihan: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Mode jaringan pilihan: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Mode jaringan pilihan: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Mode jaringan pilihan: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Mode jaringan pilihan: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Mode jaringan pilihan: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Mode jaringan pilihan: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Mode jaringan pilihan: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Mode jaringan pilihan: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Mode jaringan pilihan: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Mode jaringan pilihan: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Mode jaringan pilihan: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Mode jaringan pilihan: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Mode jaringan pilihan: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Mode jaringan pilihan: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Mode jaringan pilihan: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Mode jaringan pilihan: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (disarankan)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (disarankan)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Jaringan yang tersedia"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Mencari..."</string>
+ <string name="register_on_network" msgid="766516026652295941">"Mendaftarkan ke <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Kartu SIM Anda tidak mengizinkan sambungan ke jaringan ini."</string>
+ <string name="connect_later" msgid="978991102125216741">"Tidak dapat terhubung ke jaringan ini sekarang. Coba lagi nanti."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Terdaftar pada jaringan."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Pilih jaringan secara otomatis"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Setelan operator"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Siapkan layanan data"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Kuota"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Akses data menggunakan jaringan seluler"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Jenis jaringan pilihan"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Ubah mode pengoperasian jaringan"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Jenis jaringan pilihan"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operator"</string>
+ <string name="call_category" msgid="8108654745239563833">"Memanggil"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Video call operator"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Pilih sistem"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Mengubah mode roaming CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Pilih sistem"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Jaringan"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Jaringan"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Langganan CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Mengubah antara RUIM/SIM dan NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"langganan"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Pendaftaran otomatis..."</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Izinkan roaming data?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Hubungi penyedia jaringan untuk mengetahui harganya."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Penggunaan data aplikasi"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Mode Jaringan Tidak Valid <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Abaikan."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Tidak tersedia saat terhubung ke <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Lihat lainnya"</string>
+ <string name="see_less" msgid="1250265310929558370">"Lihat lebih sedikit"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> perangkat terhubung</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> perangkat terhubung</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Tidak ada perangkat yang terhubung"</string>
</resources>
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
index e197fe1..69cead3 100644
--- a/res/values-is/arrays.xml
+++ b/res/values-is/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Meðhöndla sem mælt"</item>
<item msgid="2266114985518865625">"Meðhöndla sem ótakmarkað"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Sjálfgefið (notaðu MAC-vistfang af handahófi)"</item>
+ <item msgid="5398461510512959597">"Traust"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Nei"</item>
<item msgid="3863157480502955888">"Já"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Kemba"</item>
<item msgid="5286514712714822064">"Ítarleg"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Aðeins heimakerfi"</item>
+ <item msgid="5034813753274486448">"Sjálfvirk"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA fyrsta val"</item>
+ <item msgid="807926878589867564">"GSM eingöngu"</item>
+ <item msgid="488474605709912156">"WCDMA eingöngu"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA sjálfvirkt"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo sjálfvirkt"</item>
+ <item msgid="370391313511477301">"CDMA án EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo eingöngu"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Alþjóðlegt"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Aðeins TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Alþjóðlegt"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 1e00af1..5783fd5 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Búa til"</string>
<string name="allow" msgid="3349662621170855910">"Leyfa"</string>
<string name="deny" msgid="6947806159746484865">"Hafna"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Loka"</string>
<string name="device_info_default" msgid="7847265875578739287">"Óþekkt"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Nú ertu <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> skrefi frá því að gerast þróunaraðili.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Veldu a.m.k. eitt svið fyrir heitan Wi‑Fi reit:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP-stillingar"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Persónuvernd"</string>
<string name="wifi_shared" msgid="844142443226926070">"Deila með öðrum notendum tækisins"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(óbreytt)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Veldu"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Ekki er hægt að breyta PIN-númerinu.\nPIN-númerið er hugsanlega rangt."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN-númeri SIM-korts var breytt"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Ekki er hægt að breyta stöðu SIM-kortaláss.\nPIN-númerið er hugsanlega rangt."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Ekki er hægt að óvirkja PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Ekki er hægt að virkja PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Í lagi"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Hætta við"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Mörg SIM-kort fundust"</string>
@@ -2931,7 +2933,6 @@
<item quantity="one">Sýna %d falið atriði</item>
<item quantity="other">Sýna %d falin atriði</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Draga saman"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Netkerfi og internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"farsími"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"gagnanotkun"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"dökkt þema"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"villa"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Umhverfisskjár, Lásskjár"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"tilkynningastillingar fyrir lásskjá"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"andlit"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingrafar"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"myrkva skjá, snertiskjár, rafhlaða, birtuaðlögun, kvikt birtustig"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Innra geymslurými: <xliff:g id="PERCENTAGE">%1$s</xliff:g> í notkun – <xliff:g id="FREE_SPACE">%2$s</xliff:g> laus"</string>
<string name="display_summary" msgid="6737806235882127328">"Hvíldarstaða eftir <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> af aðgerðaleysi"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Veggfóður, hvíldarstaða, leturstærð"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Hvíldarstaða eftir tíu mínútur af aðgerðaleysi"</string>
<string name="memory_summary" msgid="8080825904671961872">"Að meðaltali <xliff:g id="USED_MEMORY">%1$s</xliff:g> af <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> minni í notkun"</string>
<string name="users_summary" msgid="1674864467098487328">"Skráð(ur) inn sem <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Upplýsingar um net"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Heiti tækisins þíns er sýnilegt forritum í símanum. Heiti þess er hugsanlega einnig sýnilegt öðru fólki þegar þú tengist Bluetooth-tækjum eða setur upp heitan Wi-Fi reit."</string>
<string name="devices_title" msgid="7701726109334110391">"Tæki"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Hátíðnisvæði"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Kveikja á sýndarhátíðnisvæði"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Allar stillingar"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Stillingar þínar"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Tillögur"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-gögn"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-gögn"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Velja símkerfi"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Ekkert símkerfi fannst. Reyndu aftur."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(bannað)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Ekkert SIM-kort"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Betri símtöl"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Valin símkerfisstilling: WCDMA fyrsta val"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Valin símkerfisstilling: GSM eingöngu"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Valin símkerfisstilling: WCDMA eingöngu"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Valin símkerfisstilling: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Valin símkerfisstilling: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Valin símkerfisstilling: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Valin símkerfisstilling: CDMA eingöngu"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Valin símkerfisstilling: EvDo eingöngu"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Valin símkerfisstilling: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Valin símkerfisstilling: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Valin símkerfisstilling: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Valin símkerfisstilling: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Valin símkerfisstilling: Alþjóðleg"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Valin símkerfisstilling: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Valið símkerfi: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Valin símkerfisstilling: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Valin símkerfisstilling: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Valin símkerfisstilling: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Valin símkerfisstilling: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Valin símkerfisstilling: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Valin símkerfisstilling: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Valin símkerfisstilling: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Valin símkerfisstilling: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Valin símkerfisstilling: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Valin símkerfisstilling: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Valin símkerfisstilling: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (ráðlagt)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (ráðlagt)"</string>
+ <string name="network_global" msgid="959947774831178632">"Alþjóðlegt"</string>
+ <string name="label_available" msgid="1731547832803057893">"Símkerfi í boði"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Leitar…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Skráning á <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM-kortið leyfir ekki tengingu við þetta símkerfi."</string>
+ <string name="connect_later" msgid="978991102125216741">"Ekki næst tenging við þetta kerfi í augnablikinu. Reyndu aftur síðar."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Skráð á símkerfi."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Velja netkerfi sjálfkrafa"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Stillingar símafyrirtækis"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Setja upp gagnaþjónustu"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Farsímagögn"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Aðgangur að gögnum um farsímakerfi"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Valin símkerfistegund"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Breyta virknihætti símkerfis"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Valin símkerfistegund"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Símafyrirtæki"</string>
+ <string name="call_category" msgid="8108654745239563833">"Hringir"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Myndsímtöl um símkerfi"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Kerfisval"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Breyta CDMA-reikistillingu"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Kerfisval"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Netkerfi"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Netkerfi"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA-áskrift"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Skipta milli RUIM/SIM og NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"áskrift"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Sjálfvirk skráning…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Leyfa gagnareiki?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Upplýsingar um verð fást hjá símafyrirtækinu."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Gagnanotkun forrits"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Ógild símkerfisstilling <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Hunsa."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Ekki í boði þegar tenging við <xliff:g id="CARRIER">%1$s</xliff:g> er til staðar"</string>
+ <string name="see_more" msgid="5953815986207345223">"Sjá meira"</string>
+ <string name="see_less" msgid="1250265310929558370">"Sjá minna"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> tæki tengt</item>
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> tæki tengd</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Engin tengd tæki"</string>
</resources>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index 182b6b5..ae9ef2c 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Considera misurata"</item>
<item msgid="2266114985518865625">"Considera non misurata"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Valore predefinito (usa MAC casuale)"</item>
+ <item msgid="5398461510512959597">"Trusted"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"No"</item>
<item msgid="3863157480502955888">"Sì"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Debug"</item>
<item msgid="5286514712714822064">"Dettagliata"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Solo domestica"</item>
+ <item msgid="5034813753274486448">"Automatico"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA preferito"</item>
+ <item msgid="807926878589867564">"Solo GSM"</item>
+ <item msgid="488474605709912156">"Solo WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA automatico"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo automatico"</item>
+ <item msgid="370391313511477301">"CDMA senza EvDo"</item>
+ <item msgid="4678789463133969294">"Solo EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Globale"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Solo TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Globale"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 07899dd..2db9ac7 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Crea"</string>
<string name="allow" msgid="3349662621170855910">"Consenti"</string>
<string name="deny" msgid="6947806159746484865">"Rifiuta"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Chiudi"</string>
<string name="device_info_default" msgid="7847265875578739287">"Sconosciuto"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Ora ti mancano <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> passaggi per diventare uno sviluppatore.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Scegli almeno una banda per l\'hotspot Wi‑Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Impostazioni IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacy"</string>
<string name="wifi_shared" msgid="844142443226926070">"Condividi con altri utenti del dispositivo"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(invariato)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Seleziona un\'opzione"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Impossibile cambiare il PIN.\nIl PIN potrebbe essere errato."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN della SIM modificato"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Impossibile modificare lo stato di blocco della scheda SIM.\nIl PIN potrebbe essere errato."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Impossibile disattivare PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Impossibile attivare PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Annulla"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Trovate più SIM"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Mostra %d elementi nascosti</item>
<item quantity="one">Mostra %d elemento nascosto</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Comprimi"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Rete e Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"rete mobile"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"utilizzo dei dati"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tema scuro"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"bug"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Display ambient, display della schermata di blocco"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notifica schermata di blocco"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"volto"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"impronta digitale"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"attenuazione schermo, touchscreen, batteria, luminosità intelligente, luminosità dinamica"</string>
@@ -3188,7 +3190,7 @@
<string name="locked_work_profile_notification_title" msgid="8327882003361551992">"Con profilo di lavoro bloccato"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Mostra tutti i contenuti delle notifiche"</string>
<string name="lock_screen_notifications_summary_hide" msgid="8301305044690264958">"Nascondi contenuti sensibili"</string>
- <string name="lock_screen_notifications_summary_disable" msgid="859628910427886715">"Non visualizzare del tutto le notifiche"</string>
+ <string name="lock_screen_notifications_summary_disable" msgid="859628910427886715">"Non mostrare le notifiche"</string>
<string name="lock_screen_notifications_interstitial_message" msgid="6164532459432182244">"Quando il dispositivo è bloccato, come desideri che vengano visualizzate le notifiche?"</string>
<string name="lock_screen_notifications_interstitial_title" msgid="1416589393106326972">"Notifiche"</string>
<string name="lock_screen_notifications_summary_show_profile" msgid="835870815661120772">"Mostra tutti i contenuti delle notifiche di lavoro"</string>
@@ -3325,7 +3327,7 @@
<string name="zen_mode_schedule_rule_days" msgid="3195058680641389948">"Giorni"</string>
<string name="zen_mode_schedule_rule_days_none" msgid="4954143628634166317">"Nessuno"</string>
<string name="zen_mode_schedule_rule_days_all" msgid="146511166522076034">"Ogni giorno"</string>
- <string name="zen_mode_schedule_alarm_title" msgid="767054141267122030">"La sveglia può sostituire l\'ora di fine"</string>
+ <string name="zen_mode_schedule_alarm_title" msgid="767054141267122030">"La sveglia può ignorare l\'ora di fine"</string>
<string name="zen_mode_schedule_alarm_summary" msgid="4597050434723180422">"Interrompi all\'ora di fine o alla prossima sveglia, a seconda dell\'evento che si verifica per primo"</string>
<string name="summary_divider_text" msgid="7228986578690919294">", "</string>
<string name="summary_range_symbol_combination" msgid="5695218513421897027">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Memoria interna: <xliff:g id="PERCENTAGE">%1$s</xliff:g> in uso - <xliff:g id="FREE_SPACE">%2$s</xliff:g> disponibile"</string>
<string name="display_summary" msgid="6737806235882127328">"Sospendi dopo <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> di inattività"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Sfondo, sospensione, dimensione carattere"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Sospendi dopo 10 minuti di inattività"</string>
<string name="memory_summary" msgid="8080825904671961872">"Utilizzo medio di <xliff:g id="USED_MEMORY">%1$s</xliff:g> di memoria su <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Accesso eseguito come <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Dettagli rete"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Il nome del tuo dispositivo è visibile alle app installate sul telefono. Potrebbe essere visibile anche ad altre persone se ti connetti a dispositivi Bluetooth o configuri un hotspot Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Dispositivi"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Riquadro Alta frequenza"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Attiva il riquadro virtuale Alta frequenza"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Tutte le impostazioni"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Le tue impostazioni"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Suggerimenti"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Dati CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dati CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Scegli rete"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Impossibile trovare reti. Riprova."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(vietato)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Nessuna scheda SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Chiamata avanzata"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Modalità di rete preferita: WCDMA (preferita)"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Modalità di rete preferita: solo GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Modalità di rete preferita: solo WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Modalità di rete preferita: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Modalità di rete preferita: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Modalità di rete preferita: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Modalità di rete preferita: solo CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Modalità di rete preferita: solo EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Modalità di rete preferita: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Modalità di rete preferita: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Modalità di rete preferita: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Modalità di rete preferita: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Modalità di rete preferita: globale"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Modalità di rete preferita: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Modalità di rete preferita: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Modalità di rete preferita: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Modalità di rete preferita: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Modalità di rete preferita: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Modalità di rete preferita: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Modalità di rete preferita: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Modalità di rete preferita: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Modalità di rete preferita: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Modalità di rete preferita: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Modalità di rete preferita: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Modalità di rete preferita: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Modalità di rete preferita: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (opzione consigliata)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (opzione consigliata)"</string>
+ <string name="network_global" msgid="959947774831178632">"Globale"</string>
+ <string name="label_available" msgid="1731547832803057893">"Reti disponibili"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Ricerca…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registrazione su <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"La scheda SIM non consente la connessione a questa rete."</string>
+ <string name="connect_later" msgid="978991102125216741">"Impossibile connettersi a questa rete in questo momento. Riprova più tardi."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registrato sulla rete."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Seleziona rete automaticamente"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Impostazioni operatore"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Imposta servizio dati"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Dati mobili"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Accedi ai dati tramite la rete mobile"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Tipo di rete preferito"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Cambia la modalità di funzionamento della rete"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Tipo di rete preferito"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operatore"</string>
+ <string name="call_category" msgid="8108654745239563833">"Chiamata"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videochiamata dell\'operatore"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Selezione sistema"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Cambia la modalità roaming CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Selezione sistema"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Rete"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Rete"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Abbonamento CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Cambia tra RUIM/SIM e NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"abbonamento"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Registrazione automatica..."</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Consentire il roaming dei dati?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Verifica i costi con il tuo fornitore di rete."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Utilizzo dati dell\'app"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Modalità di rete <xliff:g id="NETWORKMODEID">%1$d</xliff:g> non valida. Ignora."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Non disponibile se è attiva la connessione a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Altro"</string>
+ <string name="see_less" msgid="1250265310929558370">"Comprimi"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositivi connessi</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> dispositivo connesso</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Nessun dispositivo connesso"</string>
</resources>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index bb449fc..d739820 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -309,7 +309,7 @@
<item msgid="6093344633066170692">"קרא יומן"</item>
<item msgid="1334886368750347692">"שנה יומן"</item>
<item msgid="1638204101698708656">"מיקום"</item>
- <item msgid="2154671955760380322">"פרסם התראה"</item>
+ <item msgid="2154671955760380322">"פירסום התראה"</item>
<item msgid="4282477730595931828">"מיקום"</item>
<item msgid="4891423912898525905">"שיחת טלפון"</item>
<item msgid="2623604824935968113">"קרא SMS/MMS"</item>
@@ -336,7 +336,7 @@
<item msgid="7983336752371254444">"עוצמת קול של צלצול"</item>
<item msgid="7878027809189330917">"עוצמת קול של מדיה"</item>
<item msgid="7260546305036218513">"עוצמת קול של התראה"</item>
- <item msgid="9103719301075748925">"עוצמת קול של הודעות"</item>
+ <item msgid="9103719301075748925">"עוצמת קול של התראות"</item>
<item msgid="7025966722295861512">"עוצמת קול של Bluetooth"</item>
<item msgid="4665183401128289653">"שמור במצב פעיל"</item>
<item msgid="8584357129746649222">"מיקום"</item>
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"יש להתייחס כרשת נמדדת"</item>
<item msgid="2266114985518865625">"יש להתייחס כרשת לא נמדדת"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"ברירת מחדל (בחירה ב-MAC אקראי)"</item>
+ <item msgid="5398461510512959597">"מהימן"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"לא"</item>
<item msgid="3863157480502955888">"כן"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"ניפוי באגים"</item>
<item msgid="5286514712714822064">"מרובה-מילים"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"בית בלבד"</item>
+ <item msgid="5034813753274486448">"אוטומטי"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA מועדפת"</item>
+ <item msgid="807926878589867564">"GSM בלבד"</item>
+ <item msgid="488474605709912156">"WCDMA בלבד"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA אוטומטית"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo אוטומטית"</item>
+ <item msgid="370391313511477301">"CDMA ללא EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo בלבד"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"כללי"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA בלבד"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"כללי"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index d242d78..7e6075f 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"צור"</string>
<string name="allow" msgid="3349662621170855910">"כן, זה בסדר"</string>
<string name="deny" msgid="6947806159746484865">"דחה"</string>
- <string name="dlg_close" msgid="7471087791340790015">"סגור"</string>
<string name="device_info_default" msgid="7847265875578739287">"לא ידוע"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="two">אתה כעת במרחק של <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> צעדים מלהיות מפתח.</item>
@@ -836,7 +835,7 @@
<string name="wifi_error" msgid="3207971103917128179">"שגיאה"</string>
<string name="wifi_sap_no_channel_error" msgid="3108445199311817111">"רצועת התדרים של 5 GHz אינה זמינה במדינה זו"</string>
<string name="wifi_in_airplane_mode" msgid="8652520421778203796">"במצב טיסה"</string>
- <string name="wifi_notify_open_networks" msgid="76298880708051981">"הודעה על רשתות פתוחות"</string>
+ <string name="wifi_notify_open_networks" msgid="76298880708051981">"התראה על רשתות פתוחות"</string>
<string name="wifi_notify_open_networks_summary" msgid="2761326999921366960">"הצג הודעה כאשר רשת ציבורית באיכות גבוהה זמינה"</string>
<string name="wifi_wakeup" msgid="8815640989361538036">"הפעל Wi‑Fi באופן אוטומטי"</string>
<string name="wifi_wakeup_summary" msgid="2530814331062997163">"Wi‑Fi יחזור לפעול בסביבת רשתות שמורות באיכות גבוהה, כמו הרשת הביתית שלך"</string>
@@ -922,6 +921,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"יש לבחור תדר אחד לכל הפחות לנקודת Wi‑Fi לשיתוף אינטרנט:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"הגדרות IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"פרטיות"</string>
<string name="wifi_shared" msgid="844142443226926070">"שתף עם משתמשים אחרים במכשיר"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ללא שינוי)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"בחר"</string>
@@ -1096,7 +1096,7 @@
<string name="audio_record_proc_title" msgid="4271091199976457534">"ביטול רעש"</string>
<string name="volume_media_description" msgid="7949355934788807863">"פריטי מוזיקה, סרטוני וידאו, משחקים ומדיה נוספת"</string>
<string name="volume_ring_description" msgid="5936851631698298989">"רינגטונים והודעות"</string>
- <string name="volume_notification_description" msgid="5810902320215328321">"הודעות"</string>
+ <string name="volume_notification_description" msgid="5810902320215328321">"התראות"</string>
<string name="volume_alarm_description" msgid="8322615148532654841">"התראות"</string>
<string name="volume_ring_mute" msgid="3018992671608737202">"השתק רינגטון והודעות"</string>
<string name="volume_media_mute" msgid="3399059928695998166">"השתק מוזיקה וסוגי מדיה אחרים"</string>
@@ -1211,7 +1211,7 @@
<string name="doze_title" msgid="2375510714460456687">"הודעות חדשות"</string>
<string name="doze_summary" msgid="3846219936142814032">"המסך יתעורר כשמתקבלות הודעות"</string>
<string name="doze_always_on_title" msgid="1046222370442629646">"פועל תמיד"</string>
- <string name="doze_always_on_summary" msgid="6978257596231155345">"הצגה של השעה, סמלי ההודעות ופרטים אחרים. צריכה מוגברת של הסוללה."</string>
+ <string name="doze_always_on_summary" msgid="6978257596231155345">"הצגה של השעה, סמלי ההתראות ופרטים אחרים. צריכה מוגברת של הסוללה."</string>
<string name="title_font_size" msgid="4405544325522105222">"גודל גופן"</string>
<string name="short_summary_font_size" msgid="6819778801232989076">"הגדלה או הקטנה של גודל הטקסט"</string>
<string name="sim_lock_settings" msgid="3392331196873564292">"הגדרות נעילת כרטיס SIM"</string>
@@ -1237,6 +1237,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"לא ניתן לשנות את קוד הגישה.\nכנראה שקוד הגישה שגוי."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"קוד הגישה של ה-SIM השתנה בהצלחה"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"לא ניתן לשנות מצב נעילה של כרטיס SIM.\nקוד הגישה שגוי."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"לא ניתן להשבית את קוד האימות."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"לא ניתן להפעיל את קוד האימות."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"אישור"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"ביטול"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"נמצאו מספר כרטיסי SIM"</string>
@@ -2017,7 +2019,7 @@
<string name="accessibility_autoclick_description" msgid="4908960598910896933">"אם נעשה שימוש בעכבר, אפשר להגדיר את הסמן כך שינקוט פעולה באופן אוטומטי כשהוא מפסיק לזוז למשך פרק זמן מסוים."</string>
<string name="accessibility_autoclick_delay_preference_title" msgid="3962261178385106006">"השהייה לפני לחיצה"</string>
<string name="accessibility_vibration_settings_title" msgid="3453277326300320803">"רטט"</string>
- <string name="accessibility_notification_vibration_title" msgid="660829933960942244">"רטט של צלצול והודעות"</string>
+ <string name="accessibility_notification_vibration_title" msgid="660829933960942244">"רטט של צלצול והתראות"</string>
<string name="accessibility_touch_vibration_title" msgid="7931823772673770492">"רטט מגע"</string>
<string name="accessibility_service_master_switch_title" msgid="6835441300276358239">"שימוש בשירות"</string>
<string name="accessibility_daltonizer_master_switch_title" msgid="8655284637968823154">"שימוש בתיקון צבע"</string>
@@ -2072,10 +2074,10 @@
<item quantity="one">השהיה ארוכה מאוד (<xliff:g id="CLICK_DELAY_LABEL_0">%1$d</xliff:g> מילישנייה)</item>
</plurals>
<string name="accessibility_vibration_summary" msgid="1372393829668784669">"צלצול <xliff:g id="SUMMARY_RING">%1$s</xliff:g>, מגע <xliff:g id="SUMMARY_TOUCH">%2$s</xliff:g>"</string>
- <string name="accessibility_vibration_summary_off" msgid="1753566394591809629">"רטט כבוי לצלצול ולהודעות"</string>
- <string name="accessibility_vibration_summary_low" msgid="7628418309029013867">"צלצול והודעות בעוצמה נמוכה"</string>
- <string name="accessibility_vibration_summary_medium" msgid="3422136736880414093">"צלצול והודעות בעוצמה בינונית"</string>
- <string name="accessibility_vibration_summary_high" msgid="3239807793182635729">"צלצול והודעות בעוצמה גבוהה"</string>
+ <string name="accessibility_vibration_summary_off" msgid="1753566394591809629">"רטט כבוי לצלצול ולהתראות"</string>
+ <string name="accessibility_vibration_summary_low" msgid="7628418309029013867">"צלצול והתראות בעוצמה נמוכה"</string>
+ <string name="accessibility_vibration_summary_medium" msgid="3422136736880414093">"צלצול והתראות בעוצמה בינונית"</string>
+ <string name="accessibility_vibration_summary_high" msgid="3239807793182635729">"צלצול והתראות בעוצמה גבוהה"</string>
<string name="accessibility_vibration_intensity_off" msgid="4613890213008630847">"כבוי"</string>
<string name="accessibility_vibration_intensity_low" msgid="2017572546489862987">"נמוכה"</string>
<string name="accessibility_vibration_intensity_medium" msgid="3782136025830279769">"בינונית"</string>
@@ -2528,7 +2530,7 @@
<string name="admin_disabled_other_options" msgid="7712694507069054530">"אפשרויות אחרות מושבתות על ידי מנהל המכשיר."</string>
<string name="admin_more_details" msgid="7901420667346456102">"פרטים נוספים"</string>
<string name="sound_category_sound_title" msgid="1488759370067953996">"כללי"</string>
- <string name="notification_log_title" msgid="3766148588239398464">"יומן הודעות"</string>
+ <string name="notification_log_title" msgid="3766148588239398464">"יומן התראות"</string>
<string name="sound_category_call_ringtone_vibrate_title" msgid="1543777228646645163">"צלצול ורטט שיחה"</string>
<string name="sound_category_system_title" msgid="1480844520622721141">"מערכת"</string>
<string name="wifi_setup_title" msgid="2970260757780025029">"הגדרת Wi-Fi"</string>
@@ -3009,7 +3011,6 @@
<item quantity="other">הצג %d פריטים מוסתרים</item>
<item quantity="one">הצג פריט %d מוסתר</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"כיווץ"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"רשת ואינטרנט"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"סלולרית"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"שימוש בנתונים"</string>
@@ -3021,7 +3022,7 @@
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"אפליקציות והודעות"</string>
<string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"הרשאות ואפליקציות המוגדרות כברירת מחדל"</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>
@@ -3079,6 +3080,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"עיצוב כהה"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"באג"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"תצוגה רגישה לסביבה, תצוגה של מסך נעילה"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"התראות במסך הנעילה"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"פנים"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"טביעת אצבע"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"עמעום מסך, מסך מגע, סוללה, בהירות חכמה, בהירות דינמית"</string>
@@ -3093,7 +3095,7 @@
<string name="keywords_default_browser" msgid="8324486019657636744">"ברירת מחדל, דפדפן ברירת המחדל"</string>
<string name="keywords_default_payment_app" msgid="3838565809518896799">"תשלום, ברירת מחדל"</string>
<string name="keywords_default_links" msgid="5830406261253835547">"ברירת מחדל"</string>
- <string name="keywords_ambient_display" msgid="3103487805748659132">"הודעה נכנסת"</string>
+ <string name="keywords_ambient_display" msgid="3103487805748659132">"התראה נכנסת"</string>
<string name="keywords_hotspot_tethering" msgid="1137511742967410918">"שיתוף אינטרנט בין מכשירים ב-USB, שיתוף אינטרנט בין מכשירים ב-Bluetooth, נקודת Wi-Fi לשיתוף אינטרנט"</string>
<string name="keywords_touch_vibration" msgid="5983211715076385822">"פיזי, רטט, מסך, רגישות"</string>
<string name="keywords_ring_vibration" msgid="2393528037008999296">"פיזי, רטט, טלפון, שיחה, רגישות"</string>
@@ -3114,11 +3116,11 @@
<string name="call_volume_option_title" msgid="1265865226974255384">"עוצמת קול של שיחות"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"עוצמת קול של התראה"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"עוצמת צלצול"</string>
- <string name="notification_volume_option_title" msgid="6064656124416882130">"עוצמת קול של הודעות"</string>
+ <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_ringtone_title" msgid="4468722874617061231">"צליל ברירת המחדל להתראות"</string>
<string name="notification_unknown_sound_title" msgid="2535027767851838335">"צליל שסיפקה האפליקציה"</string>
- <string name="notification_sound_default" msgid="565135733949733766">"צליל ברירת המחדל להודעות"</string>
+ <string name="notification_sound_default" msgid="565135733949733766">"צליל ברירת המחדל להתראות"</string>
<string name="alarm_ringtone_title" msgid="6344025478514311386">"צליל לשעון מעורר"</string>
<string name="vibrate_when_ringing_title" msgid="3806079144545849032">"הפעלת רטט גם עבור שיחות"</string>
<string name="other_sound_settings" msgid="3151004537006844718">"צלילים אחרים"</string>
@@ -3165,7 +3167,7 @@
<string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"חסימת הפרעות חזותיות"</string>
<string name="zen_mode_visual_signals_settings_subtitle" msgid="6308824824208120508">"הפעלת אותות חזותיים"</string>
<string name="zen_mode_settings_category" msgid="3982039687186952865">"כשמצב \'נא לא להפריע\' פועל"</string>
- <string name="zen_mode_restrict_notifications_title" msgid="478040192977063582">"הודעות"</string>
+ <string name="zen_mode_restrict_notifications_title" msgid="478040192977063582">"התראות"</string>
<string name="zen_mode_restrict_notifications_mute" msgid="3690261619682396872">"ללא צליל מהודעות"</string>
<string name="zen_mode_restrict_notifications_mute_summary" msgid="5810076116489877312">"יוצגו הודעות במסך"</string>
<string name="zen_mode_restrict_notifications_mute_footer" msgid="3465600930732602159">"כשיגיעו הודעות, הטלפון לא ישמיע צליל ולא יפעיל רטט."</string>
@@ -3186,9 +3188,9 @@
<string name="zen_mode_block_effect_light" msgid="8106976110224107316">"אל תציג אור מהבהב"</string>
<string name="zen_mode_block_effect_peek" msgid="6836997464098657115">"אל תציג הודעות קופצות במסך"</string>
<string name="zen_mode_block_effect_status" msgid="6642532634292373081">"הסתרה של סמלי שורת הסטטוס"</string>
- <string name="zen_mode_block_effect_badge" msgid="4656911773512844243">"הסתרה של סימני ההודעות"</string>
+ <string name="zen_mode_block_effect_badge" msgid="4656911773512844243">"הסתרה של סימני ההתראות"</string>
<string name="zen_mode_block_effect_ambient" msgid="4704755879961212658">"אני לא רוצה להציג הודעות"</string>
- <string name="zen_mode_block_effect_list" msgid="3882541635576592530">"הסתרה מרשימת ההודעות"</string>
+ <string name="zen_mode_block_effect_list" msgid="3882541635576592530">"הסתרה מרשימת ההתראות"</string>
<string name="zen_mode_block_effect_summary_none" msgid="2617875282623486256">"אף פעם"</string>
<string name="zen_mode_block_effect_summary_screen_off" msgid="1230265589026355094">"כאשר המסך כבוי"</string>
<string name="zen_mode_block_effect_summary_screen_on" msgid="6017536991063513394">"כאשר המסך פועל"</string>
@@ -3251,7 +3253,7 @@
<string name="work_use_personal_sounds_title" msgid="1148331221338458874">"השתמש בצלילי הפרופיל האישי"</string>
<string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"הצלילים זהים עבור הפרופיל האישי ופרופיל העבודה"</string>
<string name="work_ringtone_title" msgid="5806657896300235315">"רינגטון של טלפון מהעבודה"</string>
- <string name="work_notification_ringtone_title" msgid="6081247402404510004">"צליל ברירת המחדל להודעת עבודה"</string>
+ <string name="work_notification_ringtone_title" msgid="6081247402404510004">"צליל ברירת המחדל להתראת עבודה"</string>
<string name="work_alarm_ringtone_title" msgid="1441926676833738891">"צליל ברירת המחדל להתראת עבודה"</string>
<string name="work_sound_same_as_personal" msgid="3123383644475266478">"זהה לצלילים של הפרופיל האישי"</string>
<string name="work_sync_dialog_title" msgid="7123973297187354813">"להחליף צלילים?"</string>
@@ -3261,28 +3263,28 @@
<string name="ringtones_install_custom_sound_content" msgid="2195581481608512786">"קובץ זה יועתק לתיקייה <xliff:g id="FOLDER_NAME">%s</xliff:g>"</string>
<string name="ringtones_category_preference_title" msgid="5675912303120102366">"רינגטונים"</string>
<string name="other_sound_category_preference_title" msgid="2521096636124314015">"צלילים אחרים ורטט"</string>
- <string name="configure_notification_settings" msgid="7616737397127242615">"הודעות"</string>
+ <string name="configure_notification_settings" msgid="7616737397127242615">"התראות"</string>
<string name="recent_notifications" msgid="5660639387705060156">"נשלחו לאחרונה"</string>
<string name="recent_notifications_see_all_title" msgid="8572160812124540326">"הצגת כל האפליקציות מ-7 הימים האחרונים"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"אפשרויות מתקדמות"</string>
<string name="profile_section_header" msgid="2320848161066912001">"הודעות עבודה"</string>
- <string name="notification_badging_title" msgid="5938709971403474078">"הצגה של סימני הודעות"</string>
+ <string name="notification_badging_title" msgid="5938709971403474078">"הצגה של סימני התראות"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"אור מהבהב"</string>
<string name="lock_screen_notifications_title" msgid="2583595963286467672">"במסך הנעילה"</string>
<string name="locked_work_profile_notification_title" msgid="8327882003361551992">"כשפרופיל העבודה נעול"</string>
- <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"תוכן ההודעות יופיע במלואו"</string>
+ <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"תוכן ההתראות יופיע במלואו"</string>
<string name="lock_screen_notifications_summary_hide" msgid="8301305044690264958">"הסתרה של תוכן רגיש"</string>
<string name="lock_screen_notifications_summary_disable" msgid="859628910427886715">"לא יוצגו הודעות בכלל"</string>
<string name="lock_screen_notifications_interstitial_message" msgid="6164532459432182244">"איך להציג הודעות כשהמכשיר נעול?"</string>
- <string name="lock_screen_notifications_interstitial_title" msgid="1416589393106326972">"הודעות"</string>
- <string name="lock_screen_notifications_summary_show_profile" msgid="835870815661120772">"הצג את כל התוכן של הודעות מהעבודה"</string>
+ <string name="lock_screen_notifications_interstitial_title" msgid="1416589393106326972">"התראות"</string>
+ <string name="lock_screen_notifications_summary_show_profile" msgid="835870815661120772">"הצג את כל התוכן של התראות מהעבודה"</string>
<string name="lock_screen_notifications_summary_hide_profile" msgid="2005907007779384635">"הסתרה של תוכן עבודה רגיש"</string>
<string name="lock_screen_notifications_interstitial_message_profile" msgid="8307705621027472346">"כיצד אתה רוצה שיוצגו הודעות פרופיל כאשר המכשיר נעול?"</string>
<string name="lock_screen_notifications_interstitial_title_profile" msgid="3169806586032521333">"הודעות פרופיל"</string>
- <string name="notifications_title" msgid="8086372779371204971">"הודעות"</string>
- <string name="app_notifications_title" msgid="5810577805218003760">"הודעות אפליקציה"</string>
+ <string name="notifications_title" msgid="8086372779371204971">"התראות"</string>
+ <string name="app_notifications_title" msgid="5810577805218003760">"התראות אפליקציה"</string>
<string name="notification_channel_title" msgid="2260666541030178452">"קטגוריית הודעות"</string>
- <string name="notification_group_title" msgid="7180506440133859601">"קבוצת קטגוריות של הודעות"</string>
+ <string name="notification_group_title" msgid="7180506440133859601">"קבוצת קטגוריות של התראות"</string>
<string name="notification_importance_title" msgid="4368578960344731828">"התנהגות"</string>
<string name="notification_importance_unspecified" msgid="6622173510486113958">"הפעלת צליל"</string>
<string name="notification_importance_blocked" msgid="7938180808339386300">"לעולם אל תציג הודעות"</string>
@@ -3302,11 +3304,11 @@
<string name="notification_channel_summary_default" msgid="1111749130423589931">"חשיבות גבוהה"</string>
<string name="notification_channel_summary_high" msgid="2085017556511003283">"חשיבות דחופה"</string>
<string name="notification_switch_label" msgid="6843075654538931025">"הצגת הודעות"</string>
- <string name="default_notification_assistant" msgid="7631945224761430146">"אסיסטנט ההודעות"</string>
+ <string name="default_notification_assistant" msgid="7631945224761430146">"אסיסטנט ההתראות"</string>
<string name="notifications_sent_daily" msgid="3584506541352710975">"~<xliff:g id="NUMBER">%1$s</xliff:g> ביום"</string>
<string name="notifications_sent_weekly" msgid="1030525736746720584">"~<xliff:g id="NUMBER">%1$s</xliff:g> בשבוע"</string>
<string name="notifications_sent_never" msgid="1001964786456700536">"אף פעם"</string>
- <string name="manage_notification_access_title" msgid="7510080164564944891">"גישה אל הודעות"</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>
<plurals name="manage_notification_access_summary_nonzero" formatted="false" msgid="7930130030691218387">
@@ -3315,8 +3317,8 @@
<item quantity="other">%d אפליקציות יכולות לקרוא הודעות</item>
<item quantity="one">אפליקציה %d יכולה לקרוא הודעות</item>
</plurals>
- <string name="no_notification_listeners" msgid="3487091564454192821">"אין אפליקציות מותקנות שביקשו גישה להודעות."</string>
- <string name="notification_listener_security_warning_title" msgid="5522924135145843279">"האם להתיר ל-<xliff:g id="SERVICE">%1$s</xliff:g> לגשת אל הודעות?"</string>
+ <string name="no_notification_listeners" msgid="3487091564454192821">"אין אפליקציות מותקנות שביקשו גישה להתראות."</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_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>
@@ -3548,7 +3550,7 @@
<string name="storage_used" msgid="7128074132917008743">"שטח אחסון מנוצל"</string>
<string name="change" msgid="6657848623929839991">"שינוי"</string>
<string name="change_storage" msgid="600475265207060436">"שינוי אחסון"</string>
- <string name="notifications_label" msgid="2872668710589600731">"הודעות"</string>
+ <string name="notifications_label" msgid="2872668710589600731">"התראות"</string>
<string name="notifications_enabled" msgid="6983396130566021385">"מופעל"</string>
<string name="notifications_enabled_with_info" msgid="5669544704839269901">"<xliff:g id="NOTIFICATIONS_SENT">%1$s</xliff:g> / <xliff:g id="NOTIFICATIONS_CATEGORIES_OFF">%2$s</xliff:g>"</string>
<string name="notifications_disabled" msgid="1262114548434938079">"כבויות"</string>
@@ -3826,6 +3828,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"אחסון פנימי: <xliff:g id="PERCENTAGE">%1$s</xliff:g> בשימוש - <xliff:g id="FREE_SPACE">%2$s</xliff:g> פנוי"</string>
<string name="display_summary" msgid="6737806235882127328">"עבור למצב שינה לאחר <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> של חוסר פעילות"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"טפטים, שינה וגודל הגופן"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"עבור למצב שינה לאחר 10 דקות של חוסר פעילות"</string>
<string name="memory_summary" msgid="8080825904671961872">"ממוצע של <xliff:g id="USED_MEMORY">%1$s</xliff:g> מתוך <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> זיכרון בשימוש"</string>
<string name="users_summary" msgid="1674864467098487328">"מחובר בתור <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4029,7 +4033,7 @@
<string name="reset_shortcut_manager_throttling" msgid="6495066467198668994">"אפס הגבלת דירוג ב-ShortcutManager"</string>
<string name="reset_shortcut_manager_throttling_complete" msgid="1826770872063707900">"אופסה הגבלת דירוג ב-ShortcutManager"</string>
<string name="notification_suggestion_title" msgid="387052719462473500">"בחירת הפרטים שמופיעים במסך הנעילה"</string>
- <string name="notification_suggestion_summary" msgid="8521159741445416875">"הצג או הסתר תוכן הודעה"</string>
+ <string name="notification_suggestion_summary" msgid="8521159741445416875">"הצגה או הסתרה של תוכן ההתראה"</string>
<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>
@@ -4302,10 +4306,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"פרטי הרשת"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"שם המכשיר שלך גלוי לאפליקציות בטלפון שלך. כמו כן, ייתכן שאנשים אחרים יראו אותו בהתחברות למכשירי Bluetooth או כשמגדירים נקודת Wi-Fi לשיתוף אינטרנט."</string>
<string name="devices_title" msgid="7701726109334110391">"מכשירים"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"חלונית בתדר גבוה"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"הפעלה של חלונית וירטואלית בתדר גבוה"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"כל ההגדרות"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"ההגדרות שלך"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"הצעות"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"נתוני CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"נתוני CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"בחירת רשת"</string>
@@ -4317,4 +4319,70 @@
<string name="network_query_error" msgid="7487714485362598410">"לא נמצאו רשתות. אפשר לנסות שוב."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(אסור)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"אין כרטיס SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"שיחה משופרת"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"מצב רשת מועדפת: WCDMA מועדף"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"מצב רשת מועדפת: GSM בלבד"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"מצב רשת מועדפת: WCDMA בלבד"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"מצב רשת מועדפת: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"מצב רשת מועדפת: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"מצב רשת מועדפת: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"מצב רשת מועדפת: CDMA בלבד"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"מצב רשת מועדפת: EvDo בלבד"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"מצב רשת מועדפת: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"מצב רשת מועדפת: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"מצב רשת מועדפת: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"מצב רשת מועדפת: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"מצב רשת מועדפת: גלובלי"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"מצב רשת מועדפת: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"מצב רשת מועדפת: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"מצב רשת מועדפת: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"מצב רשת מועדפת: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"מצב רשת מועדפת: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"מצב רשת מועדפת: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"מצב רשת מועדפת: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"מצב רשת מועדפת: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"מצב רשת מועדפת: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"מצב רשת מועדפת: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"מצב רשת מועדפת: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"מצב רשת מועדפת: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"מצב רשת מועדפת: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (מומלץ)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (מומלץ)"</string>
+ <string name="network_global" msgid="959947774831178632">"כללי"</string>
+ <string name="label_available" msgid="1731547832803057893">"רשתות זמינות"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"מחפש…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"מתבצע רישום ב-<xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"כרטיס ה-SIM לא מאפשר חיבור לרשת זו."</string>
+ <string name="connect_later" msgid="978991102125216741">"לא ניתן להתחבר לרשת זו כעת. יש לנסות שוב מאוחר יותר."</string>
+ <string name="registration_done" msgid="4573820010512184521">"רשום ברשת."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"בחירה אוטומטית של הרשת"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"הגדרות ספק"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"הגדרת שירות נתונים"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"חבילת גלישה"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"שימוש בחבילת הגלישה דרך הרשת הסלולרית"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"סוג רשת מועדפת"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"שינוי מצב ההפעלה של הרשת"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"סוג רשת מועדפת"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"ספק"</string>
+ <string name="call_category" msgid="8108654745239563833">"שיחות"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"שיחות וידאו באמצעות הספק הסלולרי"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"בחירת מערכת"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"שינוי מצב נדידת CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"בחירת מערכת"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"רשת"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"רשת"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"הרשמה ל-CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"החלפה בין RUIM/SIM ל-NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"מינוי"</string>
+ <string name="register_automatically" msgid="518185886971595020">"רישום אוטומטי…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"האם לאפשר נדידה?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"למידע נוסף על המחירים, יש לפנות לספק השירות."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"שימוש בחבילת גלישה באפליקציה"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"מצב רשת לא חוקי <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. התעלמות."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"לא זמין כשהמכשיר מחובר ל-<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"הצגת פריטים נוספים"</string>
+ <string name="see_less" msgid="1250265310929558370">"הצג פחות"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index 451c408..6cd7f4e 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"従量制として処理"</item>
<item msgid="2266114985518865625">"定額制として処理"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"デフォルト(ランダムな MAC を使用)"</item>
+ <item msgid="5398461510512959597">"信頼済み"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"いいえ"</item>
<item msgid="3863157480502955888">"はい"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"デバッグ"</item>
<item msgid="5286514712714822064">"詳細"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"ホームのみ"</item>
+ <item msgid="5034813753274486448">"自動"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM / WCDMA を優先"</item>
+ <item msgid="807926878589867564">"GSM のみ"</item>
+ <item msgid="488474605709912156">"WCDMA のみ"</item>
+ <item msgid="1912421096218750039">"GSM / WCDMA 自動"</item>
+ <item msgid="5072198667819683600">"CDMA / EV-DO 自動"</item>
+ <item msgid="370391313511477301">"CDMA(EV-DO 非準拠)"</item>
+ <item msgid="4678789463133969294">"EV-DO のみ"</item>
+ <item msgid="3960210542349075517">"CDMA / EV-DO / GSM / WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA+LTE / EV-DO"</item>
+ <item msgid="8008611169788556519">"GSM / WCDMA / LTE"</item>
+ <item msgid="4486851520863433847">"グローバル"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA のみ"</item>
+ <item msgid="8373504428469988469">"TDSCDMA / WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE / TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA / GSM"</item>
+ <item msgid="131738018826229696">"LTE / TDSCDMA / GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA / GSM / WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE / TDSCDMA / WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE / TDSCDMA / GSM / WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE / TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM / SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"グローバル"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 2b64b9c..f9ce187 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"作成"</string>
<string name="allow" msgid="3349662621170855910">"許可"</string>
<string name="deny" msgid="6947806159746484865">"許可しない"</string>
- <string name="dlg_close" msgid="7471087791340790015">"閉じる"</string>
<string name="device_info_default" msgid="7847265875578739287">"不明"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">デベロッパーになるまであと<xliff:g id="STEP_COUNT_1">%1$d</xliff:g>ステップです。</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi‑Fi アクセス ポイントの帯域幅を少なくとも 1 つ選択してください。"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP設定"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"プライバシー"</string>
<string name="wifi_shared" msgid="844142443226926070">"他の端末ユーザーと共有する"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(変更なし)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"選択してください"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PINを変更できません。\nPINが正しくない可能性があります。"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PINが変更されました"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"SIMカードのロック状態を変更できません。\nPINが正しくない可能性があります。"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN を無効にできません。"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN を有効にできません。"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"キャンセル"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"複数のSIMが見つかりました"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">%d 件の非表示のアイテムを表示</item>
<item quantity="one">%d 件の非表示のアイテムを表示</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"折りたたむ"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"ネットワークとインターネット"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"モバイル"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"データ使用量"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"ダークテーマ"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"バグ"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"アンビエント表示, ロック画面表示"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ロック画面の通知"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"顔"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"指紋"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"画面を暗くする, タッチスクリーン, 電池, スマート ブライトネス, ダイナミック ブライトネス"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"内部ストレージ: 使用済み <xliff:g id="PERCENTAGE">%1$s</xliff:g> - 空き容量 <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"操作が行われない状態で <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>経過するとスリープ状態になります"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"壁紙、スリープ、フォントサイズ"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<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>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"ネットワークの詳細"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"端末名がスマートフォンのアプリに表示されます。また、Bluetooth デバイスに接続したり Wi-Fi アクセス ポイントを設定したりすると、他のユーザーも端末名を確認できるようになります。"</string>
<string name="devices_title" msgid="7701726109334110391">"端末"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"高頻度パネル"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"高頻度仮装パネルを有効にする"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"すべての設定"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"カスタマイズした設定"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"おすすめの設定"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS データ"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS データ"</string>
<string name="choose_network_title" msgid="5702586742615861037">"ネットワークを選択"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"ネットワークが見つかりませんでした。もう一度お試しください。"</string>
<string name="forbidden_network" msgid="4626592887509826545">"(禁止)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM カードなし"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"拡張モードでの通話"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"優先ネットワーク モード: WCDMA 優先"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"優先ネットワーク モード: GSM のみ"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"優先ネットワーク モード: WCDMA のみ"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"優先ネットワーク モード: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"優先ネットワーク モード: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"優先ネットワーク モード: CDMA / EV-DO"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"優先ネットワーク モード: CDMA のみ"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"優先ネットワーク モード: EV-DO のみ"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"優先ネットワーク モード: CDMA / EV-DO / GSM / WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"優先ネットワーク モード: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"優先ネットワーク モード: GSM / WCDMA / LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"優先ネットワーク モード: CDMA+LTE / EV-DO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"優先ネットワーク モード: グローバル"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"優先ネットワーク モード: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"推奨ネットワーク モード: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"優先ネットワーク モード: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"優先ネットワーク モード: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"優先ネットワーク モード: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"優先ネットワーク モード: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"優先ネットワーク モード: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"優先ネットワーク モード: LTE / GSM / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"優先ネットワーク モード: TDSCDMA / GSM / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"優先ネットワーク モード: LTE / TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"優先ネットワーク モード: LTE / TDSCDMA / GSM / WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"優先ネットワーク モード: TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"優先ネットワーク モード: LTE / TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE(推奨)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G(推奨)"</string>
+ <string name="network_global" msgid="959947774831178632">"グローバル"</string>
+ <string name="label_available" msgid="1731547832803057893">"利用可能なネットワーク"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"検索しています…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> に登録しています…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"お使いの SIM カードではこのネットワークに接続できません。"</string>
+ <string name="connect_later" msgid="978991102125216741">"現在このネットワークに接続できません。しばらくしてからもう一度お試しください。"</string>
+ <string name="registration_done" msgid="4573820010512184521">"ネットワークに登録しました。"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"ネットワークを自動的に選択"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"携帯通信会社の設定"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"データサービスの設定"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"モバイルデータ"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"モバイル ネットワーク経由でデータにアクセス"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"優先ネットワークの種類"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"ネットワーク動作モードの変更"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"優先ネットワークの種類"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"携帯通信会社"</string>
+ <string name="call_category" msgid="8108654745239563833">"通話"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"携帯通信会社のビデオ通話"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"システムの選択"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA ローミング モードを変更する"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"システムの選択"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"ネットワーク"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"ネットワーク"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA 登録"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM / SIM と NV を切り替える"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"登録"</string>
+ <string name="register_automatically" msgid="518185886971595020">"自動登録..."</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"データ ローミングを許可しますか?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"価格設定については、ネットワーク プロバイダにお問い合わせください。"</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"アプリのデータ使用量"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"ネットワーク モード <xliff:g id="NETWORKMODEID">%1$d</xliff:g> は無効です。無視してください。"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> への接続時は利用できません"</string>
+ <string name="see_more" msgid="5953815986207345223">"詳細"</string>
+ <string name="see_less" msgid="1250265310929558370">"一部を表示"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-ka/arrays.xml b/res/values-ka/arrays.xml
index 69e9aff..8db4b90 100644
--- a/res/values-ka/arrays.xml
+++ b/res/values-ka/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"ლიმიტირებულად ჩათვლა"</item>
<item msgid="2266114985518865625">"არალიმიტირებულად ჩათვლა"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"ნაგულისხმევი (შემთხვევითი MAC-მისამართის გამოყენება)"</item>
+ <item msgid="5398461510512959597">"სანდო"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"არა"</item>
<item msgid="3863157480502955888">"დიახ"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"შეცდომების გამართვა"</item>
<item msgid="5286514712714822064">"დაწვრილებითი"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"მხოლოდ საშინაო"</item>
+ <item msgid="5034813753274486448">"ავტომატური"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"სასურველია GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"მხოლოდ GSM"</item>
+ <item msgid="488474605709912156">"მხოლოდ WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA ავტომატური"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo ავტომატური"</item>
+ <item msgid="370391313511477301">"CDMA, EvDo-ს გარეშე"</item>
+ <item msgid="4678789463133969294">"მხოლოდ EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"გლობალური"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"მხოლოდ TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"გლობალური"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index af7f3c7..5a8539c 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"შექმნა"</string>
<string name="allow" msgid="3349662621170855910">"ნების დართვა"</string>
<string name="deny" msgid="6947806159746484865">"უარყოფა"</string>
- <string name="dlg_close" msgid="7471087791340790015">"დახურვა"</string>
<string name="device_info_default" msgid="7847265875578739287">"უცნობი"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">დეველოპერობამდე <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ნაბიჯი დაგრჩათ.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5 გჰც"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"აირჩიეთ მინიმუმ ერთი დიაპაზონი Wi‑Fi უსადენო ქსელისთვის:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP პარამეტრები"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"კონფიდენციალურობა"</string>
<string name="wifi_shared" msgid="844142443226926070">"მოწყობილობის სხვა მომხმარებლებთან გაზიარება"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(უცვლელი)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"გთხოვთ, აირჩიოთ"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PIN-ის შეცვლა შეუძლებელია.\nშესაძლოა შეყვანილია არასწორი PIN."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM-ის PIN-ი წარმატებით შეიცვალა"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"შეუძლებელი იყო SIM-ბარათის დაბლოკვის მდგომარეობის ცვლილება.\nშესაძლებელია, PIN-კოდი არასწორია."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN-კოდის გათიშვა ვერ მოხერხდა."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN-კოდის ჩართვა ვერ მოხერხდა."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"კარგი"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"გაუქმება"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"მოიძებნა სხვადასხვა SIM-ები"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">%d დამალული ერთეულის ჩვენება</item>
<item quantity="one">%d დამალული ერთეულის ჩვენება</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ჩაკეცვა"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"ქსელი და ინტერნეტი"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"მობილური"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"მონაცემთა მოხმარება"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"მუქი თემა"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"ხარვეზი"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ემბიენტური ეკრანი, ჩაკეტილი ეკრანი"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"შეტყობინება ჩაკეტილ ეკრანზე"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"სახე"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"თითის ანაბეჭდი"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ეკრანის გამქრქალება, სენსორული ეკრანი, ბატარეა, გონივრული სიკაშკაშე, დინამიკური სიკაშკაშე"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"შიდა მეხსიერება: გამოყენებულია <xliff:g id="PERCENTAGE">%1$s</xliff:g> — თავისუფალია <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> უმოქმედობის შემდეგ ძილის რეჟიმზე გადასვლა"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"ფონი, ძილი, შრიფტის ზომა"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"10-წუთიანი უმოქმედობის შემდეგ ძილის რეჟიმზე გადასვლა"</string>
<string name="memory_summary" msgid="8080825904671961872">"გამოყენებულია საშ. <xliff:g id="USED_MEMORY">%1$s</xliff:g> / <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>დან"</string>
<string name="users_summary" msgid="1674864467098487328">"შესული ხართ, როგორც <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"ქსელის დეტალები"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"თქვენი მოწყობილობის სახელი ხილულია თქვენს ტელეფონზე არსებული აპებისთვის. მისი დანახვას ასევე შეძლებენ სხვა პირები, როცა Bluetooth მოწყობილობებს დაუკავშირდებით ან Wi-Fi უსადენო ქსელით ისარგებლებთ."</string>
<string name="devices_title" msgid="7701726109334110391">"მოწყობილობები"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"მაღალი სიხშირეების პანელი"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"მაღალი სიხშირეების ვირტუალური პანელის ჩართვა"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ყველა პარამეტრი"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"თქვენი პარამეტრები"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"შემოთავაზებები"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS მონაცემები"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS მონაცემები"</string>
<string name="choose_network_title" msgid="5702586742615861037">"ქსელის არჩევა"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"ქსელები ვერ მოიძებნა. ცადეთ ხელახლა."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(აკრძალული)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM ბარათი არ არის"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"გაფართოებული დარეკვა"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"ქსელის სასურველი რეჟიმი: სასურველია WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"ქსელის სასურველი რეჟიმი: მხოლოდ GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"ქსელის სასურველი რეჟიმი: მხოლოდ WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"ქსელის სასურველი რეჟიმი: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"ქსელის სასურველი რეჟიმი: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"ქსელის სასურველი რეჟიმი: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"ქსელის სასურველი რეჟიმი: მხოლოდ CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"ქსელის სასურველი რეჟიმი: მხოლოდ EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"ქსელის სასურველი რეჟიმი: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"ქსელის სასურველი რეჟიმი: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"ქსელის სასურველი რეჟიმი: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"ქსელის სასურველი რეჟიმი: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"ქსელის სასურველი რეჟიმი: გლობალური"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"ქსელის სასურველი რეჟიმი: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"სასურველი ქსელის რეჟიმი: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"ქსელის სასურველი რეჟიმი: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"ქსელის სასურველი რეჟიმი: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"ქსელის სასურველი რეჟიმი: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"ქსელის სასურველი რეჟიმი: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"ქსელის სასურველი რეჟიმი: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"ქსელის სასურველი რეჟიმი: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"ქსელის სასურველი რეჟიმი: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"ქსელის სასურველი რეჟიმი: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"ქსელის სასურველი რეჟიმი: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"ქსელის სასურველი რეჟიმი: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"ქსელის სასურველი რეჟიმი: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (რეკომენდებული)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (რეკომენდებული)"</string>
+ <string name="network_global" msgid="959947774831178632">"გლობალური"</string>
+ <string name="label_available" msgid="1731547832803057893">"ხელმისაწვდომი ქსელები"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"მიმდინარეობს ძიება…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"მიმდინარეობს <xliff:g id="NETWORK">%s</xliff:g>-ზე რეგისტრაცია…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"თქვენი SIM ბარათი ამ ქსელთან დაკავშირების უფლებას არ იძლევა."</string>
+ <string name="connect_later" msgid="978991102125216741">"ამჟამად ამ ქსელთან დაკავშირება ვერ ხერხდება. ცადეთ მოგვიანებით."</string>
+ <string name="registration_done" msgid="4573820010512184521">"რეგისტრირებულია ქსელში."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"ქსელის ავტომატურად არჩევა"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"ოპერატორის პარამეტრები"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"მონაცემთა სერვისის დაყენება"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"მობილური ინტერნეტი"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"მობილურ ინტერნეტზე წვდომა მობილური ქსელით"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"ქსელის სასურველი ტიპი"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"ქსელის მუშაობის რეჟიმის შეცვლა"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"ქსელის სასურველი ტიპი"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"ოპერატორი"</string>
+ <string name="call_category" msgid="8108654745239563833">"დარეკვა"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"ვიდეო დარეკვა ოპერატორით"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"სისტემის არჩევა"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA როუმინგის რეჟიმის შეცვლა"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"სისტემის არჩევა"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"ქსელი"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"ქსელი"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA აბონირება"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM-სა და NV-ს შორის მონაცვლეობა"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"აბონირება"</string>
+ <string name="register_automatically" msgid="518185886971595020">"ავტომატური რეგისტრაცია…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"გსურთ, ჩაირთოს მობილური ინტერნეტის როუმინგი?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"ფასები შეამოწმეთ თქვენს ოპერატორთან."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"აპის მიერ მონაცემთა მოხმარება"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"ქსელის რეჟიმი (<xliff:g id="NETWORKMODEID">%1$d</xliff:g>) არასწორია. იგნორირება."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"მიუწვდომელია, როცა დაკავშირებულია <xliff:g id="CARRIER">%1$s</xliff:g>-თან"</string>
+ <string name="see_more" msgid="5953815986207345223">"მეტის ნახვა"</string>
+ <string name="see_less" msgid="1250265310929558370">"ნაკლების ნახვა"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index 7e34019..2e0f0c9 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Шектеулі"</item>
<item msgid="2266114985518865625">"Шектеусіз"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Әдепкі (кездейсоқ MAC қолдану)"</item>
+ <item msgid="5398461510512959597">"Сенімді"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Жоқ"</item>
<item msgid="3863157480502955888">"Иә"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Түзету"</item>
<item msgid="5286514712714822064">"Толық ақпарат"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Тек үй желісі"</item>
+ <item msgid="5034813753274486448">"Автоматты"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA (оңтайлы режим)"</item>
+ <item msgid="807926878589867564">"Тек GSM"</item>
+ <item msgid="488474605709912156">"Тек WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA (aвтоматты)"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo (автоматты)"</item>
+ <item msgid="370391313511477301">"EvDo-сыз CDMA"</item>
+ <item msgid="4678789463133969294">"Тек EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Бүкіл әлем"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Тек TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM картасы"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Бүкіл әлем"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 46d73d6..db8cd91 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Жасау"</string>
<string name="allow" msgid="3349662621170855910">"Рұқсат беру"</string>
<string name="deny" msgid="6947806159746484865">"Бас тарту"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Жабу"</string>
<string name="device_info_default" msgid="7847265875578739287">"Белгісіз"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Сіз қазір әзірлеуші болудан <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> қадам қашықсыз.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 ГГц"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi‑Fi хотспоты үшін кемінде бір диапазонды таңдаңыз:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP параметрлері"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Құпиялылық"</string>
<string name="wifi_shared" msgid="844142443226926070">"Басқа құрылғы пайдаланушыларымен бөлісу"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(өзгермеген)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Таңдаңыз"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PIN өзгерту мүмкін емес.\nPIN қате болуы ықтимал."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN коды сәтті өзгертілді"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"SIM картаны бекіту күйін өзгерту мүмкін емес. \nPIN коды қате болуы мүмкін."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN кодын ажырату мүмкін емес."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN кодын қосу мүмкін емес."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Жарайды"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Бас тарту"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Бірнеше SIM картасы табылды"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">%d жасырын элементті көрсету</item>
<item quantity="one">%d жасырын элементті көрсету</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Жию"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Желі және интернет"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мобильдік желі"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"дерек шығыны"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"күңгірт тақырып"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"қате"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Қосулы экран, құлып экраны"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"құлып экранындағы хабарландыру"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"бет"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"саусақ ізі"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"күңгірт экран, сенсорлық экран, батарея, ақылды жарықтық, динамикалық жарықтық"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Ішкі жад: <xliff:g id="PERCENTAGE">%1$s</xliff:g> пайдаланылды, <xliff:g id="FREE_SPACE">%2$s</xliff:g> бос"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> уақыт әрекетсіздіктен кейін ұйқы режиміне өту"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Тұсқағаз, ұйқы режимі, қаріп өлшемі"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<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>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Желі деректері"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Құрылғыңыздың аты телефоныңыздағы қолданбаларға көрінеді. Сонымен қатар Bluetooth құрылғыларына қосылғанда немесе Wi-Fi хотспотын орнатқанда, басқа адамдарға көрінуі мүмкін."</string>
<string name="devices_title" msgid="7701726109334110391">"Құрылғылар"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Жоғары жиілік панелі"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Виртуалды жоғары жиілік панелін қосу"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Барлық параметрлер"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Параметрлеріңіз"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Ұсыныстар"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS деректері"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS деректері"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Желі таңдау"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Желілер табылмады. Қайталап көріңіз."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(тыйым салынған)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM картасы салынбаған"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Қосымша қоңырау шалу мүмкіндіктері"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Оңтайлы желі режимі: WCDMA таңдалды"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Оңтайлы желі режимі: тек GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Оңтайлы желі режимі: тек WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Оңтайлы желі режимі: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Оңтайлы желі режимі: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Оңтайлы желі режимі: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Оңтайлы желі режимі: тек CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Оңтайлы желі режимі: тек EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Оңтайлы желі режимі: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Оңтайлы желі режимі: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Оңтайлы желі режимі: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Оңтайлы желі режимі: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Оңтайлы желі режимі: бүкіл әлем"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Оңтайлы желі режимі: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Оңтайлы желі режимі: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Оңтайлы желі режимі: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Оңтайлы желі режимі: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Оңтайлы желі режимі: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Оңтайлы желі режимі: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Оңтайлы желі режимі: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Оңтайлы желі режимі: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Оңтайлы желі режимі: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Оңтайлы желі режимі: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Оңтайлы желі режимі: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Оңтайлы желі режимі: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Оңтайлы желі режимі: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (ұсынылады)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (ұсынылады)"</string>
+ <string name="network_global" msgid="959947774831178632">"Бүкіл әлем"</string>
+ <string name="label_available" msgid="1731547832803057893">"Қолжетімді желілер"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Іздеу..."</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> желісіне тіркелуде…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM картаңыз бұл желіге қосылуға рұқсат бермейді."</string>
+ <string name="connect_later" msgid="978991102125216741">"Дәл қазір бұл желіге қосылу мүмкін емес. Кейінірек қайталап көріңіз."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Желіге тіркелді."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Желіні автоматты түрде таңдау"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Оператор параметрлері"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Деректер қызметін реттеу"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Мобильдік деректер"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Интернетке мобильдік желі арқылы кіру"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Оңтайлы желі түрі"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Желі жұмысының режимін өзгерту"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Оңтайлы желі түрі"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Оператор"</string>
+ <string name="call_category" msgid="8108654745239563833">"Қоңырау"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Оператор желісімен жасалатын бейне қоңыраулар"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Жүйе таңдау"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA роумингі режимін өзгерту"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Жүйе таңдау"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Желі"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Желі"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA жазылымы"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM және NV арасында ауысу"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"жазылым"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Aвтоматты тіркелу…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Деректер роумингіне рұқсат етілсін бе?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Бағасын желі провайдерінен біліңіз."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Қолданбаның дерек трафигі"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"<xliff:g id="NETWORKMODEID">%1$d</xliff:g> желі режимі дұрыс емес. Мән бермеңіз."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> операторына қосылып тұрғанда қолжетімді емес"</string>
+ <string name="see_more" msgid="5953815986207345223">"Басқаларын көру"</string>
+ <string name="see_less" msgid="1250265310929558370">"Азырақ көру"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
index b0ce319..763940e 100644
--- a/res/values-km/arrays.xml
+++ b/res/values-km/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"ចាត់ទុកថាមានការកំណត់"</item>
<item msgid="2266114985518865625">"ចាត់ទុកថាមិនមានការកំណត់ទេ"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"លំនាំដើម (ប្រើ MAC ចៃដន្យ)"</item>
+ <item msgid="5398461510512959597">"ជឿទុកចិត្ត"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"ទេ"</item>
<item msgid="3863157480502955888">"បាទ/ចាស"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"ជួសជុល"</item>
<item msgid="5286514712714822064">"រៀបរាប់"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"ផ្ទះប៉ុណ្ណោះ"</item>
+ <item msgid="5034813753274486448">"ស្វ័យប្រវត្តិ"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"ប្រើ GSM/WCDMA ជាអាទិភាព"</item>
+ <item msgid="807926878589867564">"GSM ប៉ុណ្ណោះ"</item>
+ <item msgid="488474605709912156">"WCDMA ប៉ុណ្ណោះ"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA ស្វ័យប្រវត្តិ"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo ស្វ័យប្រវត្តិ"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo ប៉ុណ្ណោះ"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"សកល"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA ប៉ុណ្ណោះ"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/ស៊ីម"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"សកល"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index bb8e4b3..e2e68ba 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"បង្កើត"</string>
<string name="allow" msgid="3349662621170855910">"អនុញ្ញាត"</string>
<string name="deny" msgid="6947806159746484865">"បដិសេធ"</string>
- <string name="dlg_close" msgid="7471087791340790015">"បិទ"</string>
<string name="device_info_default" msgid="7847265875578739287">"មិនស្គាល់"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">ឥឡូវនេះអ្នកនៅសល់ <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ជំហានទៀតដើម្បីក្លាយជាអ្នកអភិវឌ្ឍន៍។</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"សូមជ្រើសរើសប៊ែនយ៉ាងហោចណាស់មួយសម្រាប់ហតស្ប៉ត Wi‑Fi៖"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"ការកំណត់ IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"ឯកជនភាព"</string>
<string name="wifi_shared" msgid="844142443226926070">"ចែករំលែកជាមួយអ្នកប្រើឧបករណ៍ផ្សេងទៀត"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(មិនផ្លាស់ប្ដូរ)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"សូមជ្រើសរើស"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"មិនអាចប្ដូរកូដ PIN ។\nប្រហែលជាកូដ PIN មិនត្រឹមត្រូវ។"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"បានប្ដូរកូដ PIN ស៊ីមកាត់ដោយជោគជ័យ"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"មិនអាចប្ដូរស្ថានភាពការចាក់សោស៊ីមកាត។\nប្រហែលជាកូដ PIN មិនត្រឹមត្រូវ។"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"មិនអាចបិទកូដ PIN បានទេ។"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"មិនអាចបើកកូដ PIN បានទេ។"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"យល់ព្រម"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"បោះបង់"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"បានរកឃើញស៊ីមជាច្រើន"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">បង្ហាញធាតុ %d ដែលបានលាក់</item>
<item quantity="one">បង្ហាញធាតុ %d ដែលបានលាក់</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"បង្រួម"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"បណ្តាញ និងអ៊ីនធឺណិត"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ទូរសព្ទចល័ត"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ការប្រើទិន្នន័យ"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"រចនាប័ទ្មងងឹត"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"បញ្ហា"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"មុខងារអេក្រង់សម្ងំ មុខងារអេក្រង់ចាក់សោ"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ការជូនដំណឹងលើអេក្រង់ចាក់សោ"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"មុខ"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"ស្នាមម្រាមដៃ"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"អេក្រង់ខ្សោយពន្លឺ អេក្រង់ចុច ថ្ម ពន្លឺឆ្លាតវៃ ពន្លឺឌីណាមិក"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ទំហំផ្ទុកផ្នែកខាងក្នុង៖ ប្រើអស់ <xliff:g id="PERCENTAGE">%1$s</xliff:g> និងនៅសល់ <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"ដេកបន្ទាប់ពីអសកម្មរយៈពេល <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"ផ្ទាំងរូបភាព ដេក ទំហំពុម្ពអក្សរ"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"ដេកបន្ទាប់ពីអសកម្មរយៈពេល 10 នាទី"</string>
<string name="memory_summary" msgid="8080825904671961872">"អង្គចងចាំត្រូវបានប្រើអស់ជាមធ្យម <xliff:g id="USED_MEMORY">%1$s</xliff:g> នៃ <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"ចូលជា <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"ព័ត៌មានលម្អិតនៃបណ្ដាញ"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"ឈ្មោះឧបករណ៍របស់អ្នកអាចឱ្យកម្មវិធីនៅលើទូរសព្ទរបស់អ្នកមើលឃើញ។ វាក៏អាចឱ្យអ្នកដទៃមើលឃើញផងដែរ នៅពេលដែលអ្នកភ្ជាប់ទៅឧបករណ៍ប៊្លូធូស ឬរៀបចំហតស្ប៉ត Wi-Fi ។"</string>
<string name="devices_title" msgid="7701726109334110391">"ឧបករណ៍"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"ផ្ទាំងប្រេកង់ខ្ពស់"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"បើកផ្ទាំងប្រេកង់ខ្ពស់និម្មិត"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ការកំណត់ទាំងអស់"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"ការកំណត់របស់អ្នក"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"ការណែនាំ"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"ទិន្នន័យ CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"ទិន្នន័យ CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"ជ្រើសរើសបណ្តាញ"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"រកបណ្ដាញមិនឃើញទេ។ សូមព្យាយាមម្ដងទៀត។"</string>
<string name="forbidden_network" msgid="4626592887509826545">"(ហាម)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"គ្មានស៊ីមកាតទេ"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"ការហៅទូរសព្ទកម្រិតខ្ពស់"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ ប្រើ WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ GSM ប៉ុណ្ណោះ"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ WCDMA ប៉ុណ្ណោះ"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ CDMA ប៉ុណ្ណោះ"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ EvDo ប៉ុណ្ណោះ"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ សកល"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"មុខងារបណ្ដាញដែលប្រើជាអាទិភាព៖ LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (បានណែនាំ)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (បានណែនាំ)"</string>
+ <string name="network_global" msgid="959947774831178632">"សកល"</string>
+ <string name="label_available" msgid="1731547832803057893">"បណ្ដាញដែលអាចប្រើបាន"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"កំពុងស្វែងរក…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"កំពុងចុះឈ្មោះនៅលើ <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"មិនអនុញ្ញាតឱ្យស៊ីមកាតរបស់អ្នកភ្ជាប់បណ្ដាញនេះទេ។"</string>
+ <string name="connect_later" msgid="978991102125216741">"មិនអាចភ្ជាប់បណ្ដាញនេះនៅពេលនេះបានទេ។ សូមព្យាយាមម្ដងទៀតនៅពេលក្រោយ។"</string>
+ <string name="registration_done" msgid="4573820010512184521">"បានចុះឈ្មោះនៅលើបណ្ដាញ។"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"ជ្រើសរើសបណ្ដាញដោយស្វ័យប្រវត្តិ"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"ការកំណត់ក្រុមហ៊ុនសេវាទូរសព្ទ"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"រៀបចំសេវាកម្មទិន្នន័យ"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"ទិន្នន័យទូរសព្ទចល័ត"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"ចូលប្រើទិន្នន័យដោយប្រើបណ្ដាញទូរសព្ទចល័ត"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"ប្រភេទបណ្ដាញដែលប្រើជាអាទិភាព"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"ប្ដូរមុខងារប្រតិបត្តិការបណ្ដាញ"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"ប្រភេទបណ្ដាញដែលប្រើជាអាទិភាព"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"ក្រុមហ៊ុនសេវាទូរសព្ទ"</string>
+ <string name="call_category" msgid="8108654745239563833">"ការហៅទូរសព្ទ"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"ការហៅជាវីដេអូតាមរយៈក្រុមហ៊ុនសេវាទូរសព្ទ"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"ការជ្រើសរើសប្រព័ន្ធ"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"ប្ដូរមុខងាររ៉ូមីង CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"ការជ្រើសរើសប្រព័ន្ធ"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"បណ្ដាញ"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"បណ្ដាញ"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"ការជាវ CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"ប្ដូររវាង RUIM /ស៊ីម និង NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"ការជាវ"</string>
+ <string name="register_automatically" msgid="518185886971595020">"ការចុះឈ្មោះដោយស្វ័យប្រវត្តិ…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"អនុញ្ញាតឱ្យប្រើការរ៉ូមីងទិន្នន័យ?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"ពិនិត្យមើលតម្លៃជាមួយក្រុមហ៊ុនផ្ដល់សេវាបណ្ដាញរបស់អ្នក។"</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"ការប្រើទិន្នន័យកម្មវិធី"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"មុខងារបណ្ដាញមិនត្រឹមត្រូវ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>។ សូមកុំអើពើ។"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"មិនអាចប្រើបានទេ នៅពេលភ្ជាប់ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"មើលច្រើនទៀត"</string>
+ <string name="see_less" msgid="1250265310929558370">"មើលតិចជាង"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-kn/arrays.xml b/res/values-kn/arrays.xml
index 9fda993..69e6527 100644
--- a/res/values-kn/arrays.xml
+++ b/res/values-kn/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"ಮೀಟರ್ ಮಾಡಿದೆ ಎಂದು ಪರಿಗಣಿಸಿ"</item>
<item msgid="2266114985518865625">"ಮೀಟರ್ ಮಾಡಲಾಗಿಲ್ಲ ಎಂದು ಪರಿಗಣಿಸಿ"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"ಡೀಫಾಲ್ಟ್ (ಯಾದೃಚ್ಛಿಕವಾದ MAC ಅನ್ನು ಬಳಸಿ)"</item>
+ <item msgid="5398461510512959597">"ವಿಶ್ವಾಸಾರ್ಹ"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"ಇಲ್ಲ"</item>
<item msgid="3863157480502955888">"ಹೌದು"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"ಡೀಬಗ್ ಮಾಡಿ"</item>
<item msgid="5286514712714822064">"ಅತಿಯಾದ ಮಾತು"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"ಹೋಮ್ ಮಾತ್ರ"</item>
+ <item msgid="5034813753274486448">"ಸ್ವಯಂಚಾಲಿತ"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA ಗೆ ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಲಾಗಿದೆ"</item>
+ <item msgid="807926878589867564">"GSM ಮಾತ್ರ"</item>
+ <item msgid="488474605709912156">"WCDMA ಮಾತ್ರ"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA ಸ್ವಯಂ"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo ಸ್ವಯಂ"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo ಮಾತ್ರ"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"ಜಾಗತಿಕ"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA ಮಾತ್ರ"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/ಸಿಮ್"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"ಜಾಗತಿಕ"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index e91aa18..18372eb 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"ರಚಿಸು"</string>
<string name="allow" msgid="3349662621170855910">"ಅನುಮತಿಸಿ"</string>
<string name="deny" msgid="6947806159746484865">"ನಿರಾಕರಿಸಿ"</string>
- <string name="dlg_close" msgid="7471087791340790015">"ಮುಚ್ಚು"</string>
<string name="device_info_default" msgid="7847265875578739287">"ಅಪರಿಚಿತ"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">ಡೆವಲಪರ್ ಆಗಲು ಇದೀಗ ನೀವು ಕೇವಲ <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ಹೆಜ್ಜೆಗಳು ದೂರದಲ್ಲಿರುವಿರಿ.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"ವೈ-ಫೈ ಹಾಟ್ಸ್ಪಾಟ್ಗಾಗಿ ಕನಿಷ್ಠ ಒಂದು ಬ್ಯಾಂಡ್ ಆಯ್ಕೆಮಾಡಿ:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"ಗೌಪ್ಯತೆ"</string>
<string name="wifi_shared" msgid="844142443226926070">"ಇತರ ಸಾಧನ ಬಳಕೆದಾರರ ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳಿ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ಬದಲಾವಣೆಯಾಗದ)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"ದಯವಿಟ್ಟು ಆಯ್ಕೆಮಾಡಿ"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"ಪಿನ್ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.\nಬಹುಶಃ ತಪ್ಪಾದ ಪಿನ್."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"ಸಿಮ್ ಪಿನ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಬದಲಾಯಿಸಲಾಗಿದೆ"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"ಸಿಮ್ ಕಾರ್ಡ್ ಲಾಕ್ ಸ್ಥಿತಿಯನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.\nಬಹುಶಃ ತಪ್ಪಾದ ಪಿನ್."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"ಪಿನ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"ಪಿನ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"ಸರಿ"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"ರದ್ದುಮಾಡಿ"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"ಬಹು ಸಿಮ್ ಗಳು ಕಂಡುಬಂದಿವೆ"</string>
@@ -2931,7 +2933,6 @@
<item quantity="one">%d ಮರೆಮಾಡಲಾದ ಐಟಂಗಳನ್ನು ತೋರಿಸಿ</item>
<item quantity="other">%d ಮರೆಮಾಡಲಾದ ಐಟಂಗಳನ್ನು ತೋರಿಸಿ</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ಕುಗ್ಗಿಸಿ"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"ನೆಟ್ವರ್ಕ್ ಮತ್ತು ಇಂಟರ್ನೆಟ್"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ಮೊಬೈಲ್"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ಡೇಟಾ ಬಳಕೆ"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"ಗಾಢವಾದ ಥೀಮ್"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"ದೋಷ"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ಆಂಬಿಯೆಂಟ್ ಡಿಸ್ಪ್ಲೇ, ಲಾಕ್ ಸ್ಕ್ರೀನ್ ಡಿಸ್ಪ್ಲೇ"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ಲಾಕ್ ಸ್ಕ್ರೀನ್ ಅಧಿಸೂಚನೆ"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ಮುಖ"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"ಫಿಂಗರ್ ಪ್ರಿಂಟ್"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ಮಂದ ಪರದೆ, ಟಚ್ಸ್ಕ್ರೀನ್, ಬ್ಯಾಟರಿ, ಸ್ಮಾರ್ಟ್ ಪ್ರಖರತೆ, ಡೈನಾಮಿಕ್ ಪ್ರಖರತೆ"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ಆಂತರಿಕ ಸಂಗ್ರಹಣೆ: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ಬಳಸಲಾಗಿದೆ - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ಮುಕ್ತವಾಗಿದೆ"</string>
<string name="display_summary" msgid="6737806235882127328">"ನಿಷ್ಕ್ರಿಯತೆಯ <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ರ ಬಳಿಕ ನಿದ್ರಿಸು"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"ವಾಲ್ಪೇಪರ್, ಸ್ಲೀಪ್, ಫಾಂಟ್ ಗಾತ್ರ"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<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>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"ನೆಟ್ವರ್ಕ್ ವಿವರಗಳು"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"ನಿಮ್ಮ ಸಾಧನದ ಹೆಸರು ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿರುವ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಗೋಚರಿಸುತ್ತದೆ. ನೀವು ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳನ್ನು ಸಂಪರ್ಕಿಸಿದಾಗ ಅಥವಾ ವೈ-ಫೈ ಹಾಟ್ಸ್ಪಾಟ್ ಅನ್ನು ಹೊಂದಿಸಿದಾಗ ಇತರ ಜನರು ಸಹ ಅದನ್ನು ನೋಡಬಹುದು."</string>
<string name="devices_title" msgid="7701726109334110391">"ಸಾಧನಗಳು"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"ಅಧಿಕ ಆವರ್ತನ ಫಲಕ"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ವರ್ಚುವಲ್ ಅಧಿಕ ಆವರ್ತನ ಫಲಕವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ಎಲ್ಲಾ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"ನಿಮ್ಮ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"ಸಲಹೆಗಳು"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ಡೇಟಾ"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ಡೇಟಾ"</string>
<string name="choose_network_title" msgid="5702586742615861037">"ನೆಟ್ವರ್ಕ್ ಆಯ್ಕೆಮಾಡಿ"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"ನೆಟ್ವರ್ಕ್ಗಳನ್ನು ಹುಡುಕಲಾಗಲಿಲ್ಲ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(ನಿಷೇಧಿತ)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"ಯಾವುದೇ ಸಿಮ್ ಕಾರ್ಡ್ ಇಲ್ಲ"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"ಸುಧಾರಿತ ಕರೆ ಮಾಡುವಿಕೆ"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: WCDMA ಗೆ ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಲಾಗಿದೆ"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: GSM ಮಾತ್ರ"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: WCDMA ಮಾತ್ರ"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: CDMA ಮಾತ್ರ"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: EvDo ಮಾತ್ರ"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: ಜಾಗತಿಕ"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಮೋಡ್: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
+ <string name="network_global" msgid="959947774831178632">"ಜಾಗತಿಕ"</string>
+ <string name="label_available" msgid="1731547832803057893">"ಲಭ್ಯವಿರುವ ನೆಟ್ವರ್ಕ್ಗಳು"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"ಹುಡುಕಲಾಗುತ್ತಿದೆ..."</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> ನಲ್ಲಿ ನೋಂದಾಯಿಸಲಾಗುತ್ತಿದೆ…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"ನಿಮ್ಮ ಸಿಮ್ ಕಾರ್ಡ್ ಈ ನೆಟ್ವರ್ಕ್ಗೆ ಸಂಪರ್ಕವನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ."</string>
+ <string name="connect_later" msgid="978991102125216741">"ಈಗ ಈ ನೆಟ್ವರ್ಕ್ಗೆ ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
+ <string name="registration_done" msgid="4573820010512184521">"ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ನೋಂದಾಯಿಸಲಾಗಿದೆ."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆಯ್ಕೆಮಾಡಿ"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"ಕ್ಯಾರಿಯರ್ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"ಡೇಟಾ ಸೇವೆಯನ್ನು ಸೆಟಪ್ ಮಾಡಿ"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"ಮೊಬೈಲ್ ಡೇಟಾ"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ ಬಳಸಿ ಡೇಟಾ ಪ್ರವೇಶಿಸಿ"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಪ್ರಕಾರ"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"ನೆಟ್ವರ್ಕ್ ಕಾರ್ಯಾಚರಣೆ ಮೋಡ್ ಬದಲಾಯಿಸಿ"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್ವರ್ಕ್ ಪ್ರಕಾರ"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"ಕ್ಯಾರಿಯರ್"</string>
+ <string name="call_category" msgid="8108654745239563833">"ಕರೆಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"ವಾಹಕ ವೀಡಿಯೊ ಕರೆ ಮಾಡುವಿಕೆ"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"ಸಿಸ್ಟಂ ಆಯ್ಕೆ"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA ರೋಮಿಂಗ್ ಮೋಡ್ ಬದಲಾಯಿಸಿ"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"ಸಿಸ್ಟಂ ಆಯ್ಕೆ"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"ನೆಟ್ವರ್ಕ್"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"ನೆಟ್ವರ್ಕ್"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA ಸಬ್ಸ್ಕ್ರಿಪ್ಶನ್"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/ಸಿಮ್ ಮತ್ತು NV ನಡುವೆ ಬದಲಾಯಿಸಿ"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"ಸಬ್ಸ್ಕ್ರಿಪ್ಶನ್"</string>
+ <string name="register_automatically" msgid="518185886971595020">"ಸ್ವಯಂಚಾಲಿತ ನೋಂದಣಿ…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"ಡೇಟಾ ರೋಮಿಂಗ್ ಅನುಮತಿಸುವುದೇ?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"ಬೆಲೆ ನಿಗದಿಗಾಗಿ ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಪೂರೈಕೆದಾರರೊಂದಿಗೆ ಪರಿಶೀಲಿಸಿ."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"ಆ್ಯಪ್ ಡೇಟಾ ಬಳಕೆ"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"ಅಮಾನ್ಯ ನೆಟ್ವರ್ಕ್ ಮೋಡ್ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. ನಿರ್ಲಕ್ಷಿಸಿ."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> ಗೆ ಸಂಪರ್ಕಿಸಿದಾಗ ಲಭ್ಯವಿರುವುದಿಲ್ಲ"</string>
+ <string name="see_more" msgid="5953815986207345223">"ಇನ್ನಷ್ಟು ನೋಡಿ"</string>
+ <string name="see_less" msgid="1250265310929558370">"ಕಡಿಮೆ ನೋಡಿ"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index 31b972d..8980e01 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"전송량 제한이 있는 Wi-Fi로 취급"</item>
<item msgid="2266114985518865625">"전송량 제한이 없는 Wi-Fi로 취급"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"기본(임의의 MAC 사용)"</item>
+ <item msgid="5398461510512959597">"신뢰할 수 있음"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"아니요"</item>
<item msgid="3863157480502955888">"예"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"디버그"</item>
<item msgid="5286514712714822064">"상세"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"집 전용"</item>
+ <item msgid="5034813753274486448">"자동"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA로 기본 설정"</item>
+ <item msgid="807926878589867564">"GSM 전용"</item>
+ <item msgid="488474605709912156">"WCDMA 전용"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA 자동"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo 자동"</item>
+ <item msgid="370391313511477301">"CDMA(EvDo 없음)"</item>
+ <item msgid="4678789463133969294">"EvDo 전용"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA+LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"글로벌"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA 전용"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"글로벌"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index c9dbc24..1c25970 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"만들기"</string>
<string name="allow" msgid="3349662621170855910">"허용"</string>
<string name="deny" msgid="6947806159746484865">"거부"</string>
- <string name="dlg_close" msgid="7471087791340790015">"닫기"</string>
<string name="device_info_default" msgid="7847265875578739287">"알 수 없음"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other"><xliff:g id="STEP_COUNT_1">%1$d</xliff:g>단계만 더 완료하면 개발자가 될 수 있습니다.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi‑Fi 핫스팟 대역을 한 개 이상 선택하세요."</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP 설정"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"개인정보 보호"</string>
<string name="wifi_shared" msgid="844142443226926070">"다른 기기 사용자와 공유"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(변경 안함)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"선택하세요."</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PIN을 변경할 수 없습니다.\nPIN이 잘못된 것 같습니다."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN이 변경되었습니다."</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"SIM 카드 잠금 상태를 변경할 수 없습니다.\nPIN이 잘못된 것 같습니다."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN을 사용 중지할 수 없습니다."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN을 사용 설정할 수 없습니다."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"확인"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"취소"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"여러 개의 SIM이 있음"</string>
@@ -2517,7 +2519,7 @@
<string name="sync_error" msgid="5060969083117872149">"동기화 오류"</string>
<string name="last_synced" msgid="4242919465367022234">"마지막 동기화 시간: <xliff:g id="LAST_SYNC_TIME">%1$s</xliff:g>"</string>
<string name="sync_in_progress" msgid="5151314196536070569">"지금 동기화하는 중..."</string>
- <string name="settings_backup" msgid="2274732978260797031">"설정 백업"</string>
+ <string name="settings_backup" msgid="2274732978260797031">"백업 설정"</string>
<string name="settings_backup_summary" msgid="7916877705938054035">"내 설정 백업"</string>
<string name="sync_menu_sync_now" msgid="6154608350395805683">"지금 동기화"</string>
<string name="sync_menu_sync_cancel" msgid="8292379009626966949">"동기화 취소"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">%d개의 숨겨진 항목 표시</item>
<item quantity="one">%d개의 숨겨진 항목 표시</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"접기"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"네트워크 및 인터넷"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"모바일"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"데이터 사용"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"어두운 테마"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"버그"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"절전 모드 자동 해제, 잠금 화면 표시"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"잠금 화면 알림"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"얼굴"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"지문"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"화면 어둡게 하기, 터치스크린, 배터리, 스마트 밝기, 동적 밝기"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"내부 저장소: <xliff:g id="PERCENTAGE">%1$s</xliff:g> 사용 중 - <xliff:g id="FREE_SPACE">%2$s</xliff:g> 사용 가능"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> 동안 사용하지 않으면 절전 모드로 전환됩니다."</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"배경화면, 절전 모드, 글꼴 크기"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"10분 동안 사용하지 않으면 절전 모드로 전환됩니다."</string>
<string name="memory_summary" msgid="8080825904671961872">"평균 <xliff:g id="USED_MEMORY">%1$s</xliff:g>/<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> 저장용량 사용됨"</string>
<string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g>(으)로 로그인됨"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"네트워크 세부정보"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"휴대전화에 설치된 앱에 기기 이름이 표시됩니다. 기기 이름은 블루투스 기기에 연결하거나 Wi-Fi 핫스팟을 설정할 때 다른 사용자에게 표시될 수도 있습니다."</string>
<string name="devices_title" msgid="7701726109334110391">"기기"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"고주사율 패널"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"고주사율 가상 패널을 사용 설정합니다."</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"모든 설정"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"내 설정"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"추천"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS 데이터"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS 데이터"</string>
<string name="choose_network_title" msgid="5702586742615861037">"네트워크 선택"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"네트워크를 찾지 못했습니다. 다시 시도해 주세요."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(금지됨)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM 카드 없음"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"고급 통화"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"기본 네트워크 모드: WCDMA 선호"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"기본 네트워크 모드: GSM 전용"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"기본 네트워크 모드: WCDMA 전용"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"기본 네트워크 모드: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"기본 네트워크 모드: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"기본 네트워크 모드: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"기본 네트워크 모드: CDMA 전용"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"기본 네트워크 모드: EvDo 전용"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"기본 네트워크 모드: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"기본 네트워크 모드: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"기본 네트워크 모드: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"기본 네트워크 모드: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"기본 네트워크 모드: 글로벌"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"기본 네트워크 모드: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"기본 네트워크 모드: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"기본 네트워크 모드: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"기본 네트워크 모드: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"기본 네트워크 모드: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"기본 네트워크 모드: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"기본 네트워크 모드: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"기본 네트워크 모드: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"기본 네트워크 모드: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"기본 네트워크 모드: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"기본 네트워크 모드: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"기본 네트워크 모드: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"기본 네트워크 모드: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE(권장)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G(권장)"</string>
+ <string name="network_global" msgid="959947774831178632">"글로벌"</string>
+ <string name="label_available" msgid="1731547832803057893">"사용 가능한 네트워크"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"검색 중…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g>에 등록 중..."</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM 카드에서 이 네트워크에 연결할 수 없습니다."</string>
+ <string name="connect_later" msgid="978991102125216741">"현재 네트워크에 연결할 수 없습니다. 나중에 다시 시도해 주세요."</string>
+ <string name="registration_done" msgid="4573820010512184521">"네트워크에 등록되었습니다."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"네트워크 자동 선택"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"이동통신사 설정"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"데이터 서비스 설정"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"모바일 데이터"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"모바일 네트워크를 사용하여 데이터 액세스"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"기본 네트워크 유형"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"네트워크 작동 모드 변경"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"기본 네트워크 유형"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"이동통신사"</string>
+ <string name="call_category" msgid="8108654745239563833">"통화"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"이동통신사 화상 통화"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"시스템 선택"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA 로밍 모드 변경"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"시스템 선택"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"네트워크"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"네트워크"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA 가입"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM 및 NV 간 변경"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"가입"</string>
+ <string name="register_automatically" msgid="518185886971595020">"자동 등록..."</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"데이터 로밍을 허용하시겠습니까?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"요금은 이동통신사에 문의하세요."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"앱 데이터 사용량"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"잘못된 네트워크 모드(<xliff:g id="NETWORKMODEID">%1$d</xliff:g>)입니다. 무시하세요."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g>에 연결된 경우 사용할 수 없음"</string>
+ <string name="see_more" msgid="5953815986207345223">"더보기"</string>
+ <string name="see_less" msgid="1250265310929558370">"간략히 보기"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
index fe20253..f7ef412 100644
--- a/res/values-ky/arrays.xml
+++ b/res/values-ky/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Ченелет"</item>
<item msgid="2266114985518865625">"Ченелбейт"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Демейки (MAC дарегин кокустан тандоону колдонуу)"</item>
+ <item msgid="5398461510512959597">"Ишенимдүү"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Жок"</item>
<item msgid="3863157480502955888">"Ооба"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Мүчүлүштүктөрдү оңдоо"</item>
<item msgid="5286514712714822064">"Оозеки кирүү"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Башкы бет гана"</item>
+ <item msgid="5034813753274486448">"Автоматтык"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA артыкчылыктуу"</item>
+ <item msgid="807926878589867564">"GSM гана"</item>
+ <item msgid="488474605709912156">"WCDMA гана"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA авто"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo авто"</item>
+ <item msgid="370391313511477301">"CDMA EvDo\'суз"</item>
+ <item msgid="4678789463133969294">"EvDo гана"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Жалпы"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA гана"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Жалпы"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 220a949..bc2d9bd 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Түзүү"</string>
<string name="allow" msgid="3349662621170855910">"Уруксат"</string>
<string name="deny" msgid="6947806159746484865">"Тыюу салуу"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Жабуу"</string>
<string name="device_info_default" msgid="7847265875578739287">"Белгисиз"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Сиздин иштеп чыгуучу болушуңузга <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> кадам калды.</item>
@@ -878,7 +877,7 @@
<string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA тастыктамасы"</string>
<string name="wifi_eap_domain" msgid="8471124344218082064">"Домен"</string>
<string name="wifi_eap_user_cert" msgid="1291089413368160789">"Колдонуучунун тастыктамасы"</string>
- <string name="wifi_eap_identity" msgid="4359453783379679103">"Аныктыгы"</string>
+ <string name="wifi_eap_identity" msgid="4359453783379679103">"Идентификация"</string>
<string name="wifi_eap_anonymous" msgid="2989469344116577955">"Аныктыгы жашыруун"</string>
<string name="wifi_password" msgid="5948219759936151048">"Сырсөз"</string>
<string name="wifi_show_password" msgid="6461249871236968884">"Сырсөздү көрсөтүү"</string>
@@ -891,6 +890,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 ГГц"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi‑Fi туташуу түйүнүн иштетүү үчүн кеминде бир жыштыкты тандаңыз:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP жөндөөлөрү"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Купуялык"</string>
<string name="wifi_shared" msgid="844142443226926070">"Түзмөктүн башка колдонуучулары менен бөлүшүлсүн"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(өзгөрбөгөн)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Тандаңыз"</string>
@@ -1204,6 +1204,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PIN\'ди алмаштыруу мүмкүн эмес.\nPIN туура эмес өңдөнөт."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM картанын PIN коду алмаштырылды"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"SIM-картаны бөгөттөн чыгаруу мүмкүн эмес.\nPIN туура эмес өңдөнөт."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN код өчүрүлбөй жатат."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN код иштетилбей жатат."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Жарайт"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Жокко чыгаруу"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Бир нече SIM табылды"</string>
@@ -2930,7 +2932,6 @@
<item quantity="other">Жашырылган %d нерсе көрсөтүлсүн</item>
<item quantity="one">Жашырылган %d нерсе көрсөтүлсүн</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Жыйыштыруу"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Тармак жана Интернет"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мобилдик"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"дайындардын колдонулушу"</string>
@@ -3000,6 +3001,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"түнкү режим"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"мүчүлүштүк"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Экран автоматтык түрдө күйөт, экран кулпусу"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"кулпуланган экрандагы билдирме"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"жүз"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"манжа изи"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"күңүрт экран, сенсордук экран, батарея, акылдуу жарыктык, динамикалык жарыктык"</string>
@@ -3709,6 +3711,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Ички сактагыч: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ээленген – <xliff:g id="FREE_SPACE">%2$s</xliff:g> бош"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> мүнөт ишсиз тургандан кийин уйку режимине өтүү"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Тушкагаз, уйку режими, арип өлчөмү"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<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>
@@ -3983,7 +3987,7 @@
<string name="web_action_enable_title" msgid="4051513950976670853">"Ыкчам ачылуучу колдонмолор"</string>
<string name="web_action_enable_summary" msgid="3108127559723396382">"Түзмөктө орнотулган эмес болсо да, колдонмолордогу шилтемелерди ачасыз"</string>
<string name="web_action_section_title" msgid="7364647086538399136">"Ыкчам ачылуучу колдонмолор"</string>
- <string name="instant_apps_settings" msgid="8827777916518348213">"Ыкчам ачылуучу колдонмолордун параметрлери"</string>
+ <string name="instant_apps_settings" msgid="8827777916518348213">"Ыкчам ачылуучу колдонмолордун жөндөөлөрү"</string>
<string name="domain_url_section_title" msgid="7046835219056428883">"Орнотулган колдонмолор"</string>
<string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Учурда сактагычыңыз сактагычты көзөмөлдөгүч тарабынан башкарылууда"</string>
<string name="account_for_section_header" msgid="5356566418548737121">"<xliff:g id="USER_NAME">%1$s</xliff:g> таандык аккаунттар"</string>
@@ -4153,10 +4157,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Тармактын чоо-жайы"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Түзмөгүңүздүн аталышы телефонуңуздагы колдонмолорго көрүнүктүү. Bluetooth түзмөктөрүнө туташканыңызда же Wi‑Fi туташуу түйүнүн жөндөгөнүңүздө, аны башка адамдар да көрүшү мүмкүн."</string>
<string name="devices_title" msgid="7701726109334110391">"Түзмөктөр"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Жогорку жыштык панели"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Виртуалдык жогорку жыштык панелин иштетүү"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Бардык жөндөөлөр"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Жөндөөлөр"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Сунуштар"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Жарандык радио кызматынын дайындары"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Жарандык радио кызматынын дайындары"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Тармакты тандоо"</string>
@@ -4168,4 +4170,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Тармактар табылбай койду. Кайра аракет кылыңыз."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(тыюу салынган)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM-карта жок"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Өркүндөтүлгөн чалуу"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Тандалган тармак режими: WCDMA тандалган"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Тандалган тармак режими: GSM гана"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Тандалган тармак режими: WCDMA гана"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Тандалган тармак режими: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Тандалган тармак режими: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Тандалган тармак режими: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Тандалган тармак режими: CDMA гана"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Тандалган тармак режими: EvDo гана"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Тандалган тармак режими: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Тандалган тармак режими: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Тандалган тармак режими: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Тандалган тармак режими: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Тандалган тармак режими: Жалпы"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Тандалган тармак режими: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Тандалган тармак режими: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Тандалган тармак режими: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Тандалган тармак режими: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Тандалган тармак режими: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Тандалган тармак режими: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Тандалган тармак режими: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Тандалган тармак режими: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Тандалган тармак режими: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Тандалган тармак режими: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Тандалган тармак режими: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Тандалган тармак режими: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Тандалган тармак режими: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (сунушталат)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (сунушталат)"</string>
+ <string name="network_global" msgid="959947774831178632">"Жалпы"</string>
+ <string name="label_available" msgid="1731547832803057893">"Жеткиликтүү тармактар"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Издөөдө…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> тармагына катталууда…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Сиздин SIM-картаңыз менен бул тармакка туташууга болбойт."</string>
+ <string name="connect_later" msgid="978991102125216741">"Бул тармакка азыр кошулуу мүмкүн эмес. Кийинчерээк кайра аракет кылыңыз."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Тармакка катталды."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Тармак автоматтык түрдө тандалат"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Оператордун жөндөөлөрү"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Тарифтик планды жөндөө"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Мобилдик Интернет"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Интернетке мобилдик тармак аркылуу чыгуу"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Тандалган тармактын түрү"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Тармактын иштөө режимин өзгөртүңүз"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Тармактын түрү"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Байланыш оператору"</string>
+ <string name="call_category" msgid="8108654745239563833">"Чалуулар"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Видео чалуулар"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Тутум тандоо"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA роуминг режимин алмаштыруу"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Тутум тандоо"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Тармак"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Тармак"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA жазылуу"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM жана NV ортосунда которуштуруу"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"жазылуу"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Автоматтык катталуу…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Интернет-роумингди иштетесизби?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Бааларын байланыш операторуңуздан сурашыңыз керек."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Колдонмолордун трафиги"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Тармактын режими жараксыз: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Баш тартыңыз."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> операторуна туташып турганда жеткиликсиз"</string>
+ <string name="see_more" msgid="5953815986207345223">"Дагы көрүү"</string>
+ <string name="see_less" msgid="1250265310929558370">"Азыраак көрүү"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-lo/arrays.xml b/res/values-lo/arrays.xml
index 001caae..7102349 100644
--- a/res/values-lo/arrays.xml
+++ b/res/values-lo/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"ໃຊ້ແບບວັດແທກປະລິມານ"</item>
<item msgid="2266114985518865625">"ໃຊ້ແບບບໍ່ວັດແທກປະລິມານ"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"ຄ່າເລີ່ມຕົ້ນ (ໃຊ້ MAC ແບບສຸ່ມ)"</item>
+ <item msgid="5398461510512959597">"ເຊື່ອຖື"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"ບໍ່"</item>
<item msgid="3863157480502955888">"ແມ່ນ"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"ດີບັກ"</item>
<item msgid="5286514712714822064">"ບັນທຶກລະອຽດ"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"ເຄືອຂ່າຍພາຍໃນເທົ່ານັ້ນ"</item>
+ <item msgid="5034813753274486448">"ອັດຕະໂນມັດ"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"ຕ້ອງການ GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"GSM ເທົ່ານັ້ນ"</item>
+ <item msgid="488474605709912156">"WCDMA ເທົ່ານັ້ນ"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA ອັດຕະໂນມັດ"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo ອັດຕະໂນມັດ"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"CDMA ເທົ່ານັ້ນ"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"ທົ່ວໂລກ"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA ເທົ່ານັ້ນ"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"ທົ່ວໂລກ"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 00d0c7d..994519a 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"ສ້າງ"</string>
<string name="allow" msgid="3349662621170855910">"ອະນຸຍາດ"</string>
<string name="deny" msgid="6947806159746484865">"ປະຕິເສດ"</string>
- <string name="dlg_close" msgid="7471087791340790015">"ປິດ"</string>
<string name="device_info_default" msgid="7847265875578739287">"ບໍ່ຮູ້ຈັກ"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">ປະຈຸບັນທ່ານຍັງຢູ່ຫ່າງ <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ຂັ້ນຕອນຈາກການເປັນຜູ້ພັດທະນາ.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"ເລືອກແຖບຄວາມຖີ່ຢ່າງໜ້ອຍໜຶ່ງອັນສຳລັບ Wi‑Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"ຕັ້ງຄ່າ IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"ຄວາມເປັນສ່ວນຕົວ"</string>
<string name="wifi_shared" msgid="844142443226926070">"ແບ່ງປັນກັບຜູ້ໃຊ້ອຸປະກອນອື່ນ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ບໍ່ມີການປ່ຽນແປງ)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"ກະລຸນາເລືອກ"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"ບໍ່ສາມາດປ່ຽນລະຫັດ PIN ໄດ້.\nອາດເປັນເພາະລະຫັດ PIN ບໍ່ຖືກຕ້ອງ."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"ລະຫັດ PIN ຂອງ SIM ຖືກປ່ຽນສຳເລັດແລ້ວ"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"ບໍ່ສາມາດປ່ຽນສະຖານະການລັອກ SIM card ໄດ້.\nອາດເປັນຍ້ອນ PIN ບໍ່ຖືກຕ້ອງ."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"ບໍ່ສາມາດປິດການນຳໃຊ້ PIN ໄດ້."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"ບໍ່ສາມາດເປີດການນຳໃຊ້ PIN ໄດ້."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"ຕົກລົງ"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"ຍົກເລີກ"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"ພົບຫຼາຍ SIM"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">ສະແດງ %d ລາຍການທີ່ເຊື່ອງໄວ້</item>
<item quantity="one">ສະແດງ %d ລາຍການທີ່ເຊື່ອງໄວ້</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ຫຍໍ້ເຂົ້າ"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"ເຄືອຂ່າຍ ແລະ ອິນເຕີເນັດ"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ມືຖື"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ການນຳໃຊ້ຂໍ້ມູນ"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"ສີສັນໜ້າຕາແບບມືດ"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"ຂໍ້ຜິດພາດ"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ການສະແດງຜົນຕາມແສງສະພາບແວດລ້ອມ, ໜ້າຈໍລັອກ"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ການແຈ້ງເຕືອນໃນໜ້າຈໍລັອກ"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ໃບໜ້າ"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"ລາຍນີ້ວມື"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ຫຼຸດແສງໜ້າຈໍ, ໜ້າຈໍສຳຜັດ, ແບັດເຕີຣີ, ຄວາມສະຫວ່າງອັດສະລິຍະ, ຄວາມສະຫວ່າງແບບໄດນາມິກ"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ບ່ອນຈັດເກັບຂໍ້ມູນພາຍໃນ: ໃຊ້ໄປແລ້ວ <xliff:g id="PERCENTAGE">%1$s</xliff:g> - ຫວ່າງ <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"ຫຼັງຈາກ <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ທີ່ບໍ່ໄດ້ເຮັດຫຍັງ"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"ຮູບພື້ນຫຼັງ, ການປິດໜ້າຈໍ, ຂະໜາດຟອນ"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"ປິດໜ້າຈໍຫຼັງຈາກ 10 ນາທີຫາກບໍ່ໄດ້ເຮັດຫຍັງ"</string>
<string name="memory_summary" msgid="8080825904671961872">"ໂດຍສະເລ່ຍ ໃຊ້ຄວາມຈຳໄປແລ້ວ <xliff:g id="USED_MEMORY">%1$s</xliff:g> ຈາກທັງໝົດ <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"ເຂົ້າສູ່ລະບົບເປັນ <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"ລາຍລະອຽດເຄືອຂ່າຍ"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"ຊື່ອຸປະກອນຂອງທ່ານຈະສາມາດເບິ່ງເຫັນໄດ້ໂດຍແອັບຢູ່ໂທລະສັບຂອງທ່ານ. ນອກຈາກນັ້ນ, ຄົນອື່ນອາດຈະເຫັນມັນໄດ້ເມື່ອທ່ານເຊື່ອມຕໍ່ຫາອຸປະກອນ Bluetooth ຫຼື ຕັ້ງ Wi-Fi ຮັອດສະປອດ."</string>
<string name="devices_title" msgid="7701726109334110391">"ອຸປະກອນ"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"ແຜງຄວາມຖີ່ສູງ"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ເປີດໃຊ້ແຜງຄວາມຖີ່ສູງແບບສະເໝືອນ"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ການຕັ້ງຄ່າທັງໝົດ"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"ການຕັ້ງຄ່າຂອງທ່ານ"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"ຄຳແນະນຳ"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"ຂໍ້ມູນ CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"ຂໍ້ມູນ CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"ເລືອກເຄືອຂ່າຍ"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"ບໍ່ພົບເຄືອຂ່າຍ. ກະລຸນາລອງໃໝ່ອີກເທື່ອໜຶ່ງ."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(ຕ້ອງຫ້າມ)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"ບໍ່ມີຊິມກາດ"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"ການໂທຂັ້ນສູງ"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: ຕ້ອງການ WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: GSM ເທົ່ານັ້ນ"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: WCDMA ເທົ່ານັ້ນ"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: CDMA ເທົ່ານັ້ນ"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: EvDo ເທົ່ານັ້ນ"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: ທົ່ວໂລກ"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (ແນະນຳ)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (ແນະນຳ)"</string>
+ <string name="network_global" msgid="959947774831178632">"ທົ່ວໂລກ"</string>
+ <string name="label_available" msgid="1731547832803057893">"ເຄືອຂ່າຍທີ່ສາມາດໃຊ້ໄດ້"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"ກຳລັງຊອກຫາ..."</string>
+ <string name="register_on_network" msgid="766516026652295941">"ກຳລັງລົງທະບຽນໃນ <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM ກາດຂອງທ່ານບໍ່ອະນຸຍາດໃຫ້ເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍນີ້."</string>
+ <string name="connect_later" msgid="978991102125216741">"ບໍ່ສາມາດເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍນີ້ໄດ້ໃນຂະນະນີ້. ກະລຸນາລອງໃໝ່ໃນພາຍຫຼັງ."</string>
+ <string name="registration_done" msgid="4573820010512184521">"ລົງທະບຽນໃນເຄືອຂ່າຍແລ້ວ."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"ເລືອກເຄືອຂ່າຍອັດຕະໂນມັດ"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"ການຕັ້ງຄ່າຜູ້ໃຫ້ບໍລິການ"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"ຕັ້ງຄ່າການບໍລິການຂໍ້ມູນ"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"ອິນເຕີເນັດມືຖື"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"ເຂົ້າເຖິງອິນເຕີເນັດຜ່ານເຄືອຂ່າຍມືຖື"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"ປະເພດເຄືອຂ່າຍທີ່ຕ້ອງການ"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"ປ່ຽນໂໝດປະຕິບັດການຂອງເຄືອຂ່າຍ"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"ປະເພດເຄືອຂ່າຍທີ່ຕ້ອງການ"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"ຜູ້ໃຫ້ບໍລິການ"</string>
+ <string name="call_category" msgid="8108654745239563833">"ກຳລັງໂທ"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"ການໂທວິດີໂອຂອງຜູ້ໃຫ້ບໍລິການ"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"ການເລືອກລະບົບ"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"ປ່ຽນໂໝດໂຣມມິງ CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"ການເລືອກລະບົບ"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"ເຄືອຂ່າຍ"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"ເຄືອຂ່າຍ"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"ການສະໝັກໃຊ້ CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"ປ່ຽນລະຫວ່າງ RUIM/SIM ແລະ NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"ການສະໝັກໃຊ້"</string>
+ <string name="register_automatically" msgid="518185886971595020">"ການລົງທະບຽນອັດຕະໂນມັດ..."</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"ອະນຸຍາດໃຫ້ໂຣມມິງຂໍ້ມູນບໍ?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"ກະລຸນາກວດສອບລາຄາກັບຜູ້ໃຫ້ບໍລິການເຄືອຂ່າຍຂອງທ່ານ."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"ການໃຊ້ຂໍ້ມູນແອັບ"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"ໂໝດເຄືອຂ່າຍ <xliff:g id="NETWORKMODEID">%1$d</xliff:g> ບໍ່ຖືກຕ້ອງ. ບໍ່ສົນໃຈ."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"ບໍ່ສາມາດໃຊ້ໄດ້ເມື່ອເຊື່ອມຕໍ່ກັບ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"ເບິ່ງເພີ່ມເຕີມ"</string>
+ <string name="see_less" msgid="1250265310929558370">"ເບິ່ງໜ້ອຍລົງ"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index df99679..f7284be 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Laikyti matuojamu"</item>
<item msgid="2266114985518865625">"Laikyti nematuojamu"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Numatytasis (naudoti atsitiktine tvarka parinktą MAC)"</item>
+ <item msgid="5398461510512959597">"Patikimas"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Ne"</item>
<item msgid="3863157480502955888">"Taip"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Derinti"</item>
<item msgid="5286514712714822064">"Daugiažodis"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Tik pagrindinis"</item>
+ <item msgid="5034813753274486448">"Automatinis"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Pageidaujamas GSM / WCDMA"</item>
+ <item msgid="807926878589867564">"Tik GSM"</item>
+ <item msgid="488474605709912156">"Tik WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM / WCDMA automatinis"</item>
+ <item msgid="5072198667819683600">"CDMA / „EvDo“ automatinis"</item>
+ <item msgid="370391313511477301">"CDMA be „EvDo“"</item>
+ <item msgid="4678789463133969294">"Tik „EvDo“"</item>
+ <item msgid="3960210542349075517">"CDMA / „EvDo“ / GSM / WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA ir LTE / „EvDo“"</item>
+ <item msgid="8008611169788556519">"GSM / WCDMA / LTE"</item>
+ <item msgid="4486851520863433847">"Visuotinis"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"Tik TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA / WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE / TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA / GSM"</item>
+ <item msgid="131738018826229696">"LTE / TDSCDMA / GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA / GSM / WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE / TDSCDMA / WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE / TDSCDMA / GSM / WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA / CDMA / EVDO / GSM / WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE / TDSCDMA / CDMA / EVDO / GSM / WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM / SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Visuotinis"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 034fad7..e8998d1 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Kurti"</string>
<string name="allow" msgid="3349662621170855910">"Leisti"</string>
<string name="deny" msgid="6947806159746484865">"Atmesti"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Uždaryti"</string>
<string name="device_info_default" msgid="7847265875578739287">"Nežinomas"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Liko atlikti <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> veiksmą ir būsite kūrėjas.</item>
@@ -922,6 +921,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Pasirinkite bent vieną „Wi‑Fi“ viešosios interneto prieigos taško dažnio juostą:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP nustatymai"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privatumas"</string>
<string name="wifi_shared" msgid="844142443226926070">"Bendrinti su kitais įrenginio naudotojais"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nepakeista)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Pasirinkite"</string>
@@ -1237,6 +1237,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Nepavyksta pakeisti PIN kodo.\nTikriausiai netinkamas PIN kodas."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM kortelės PIN kodas sėkmingai pakeistas"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Neįmanoma pakeisti SIM kortelės užrakto būsenos.\nTikriausiai netinkamas PIN kodas."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Nepavyksta išjungti PIN kodo."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Nepavyksta įjungti PIN kodo."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Gerai"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Atšaukti"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Rastos kelios SIM"</string>
@@ -3007,7 +3009,6 @@
<item quantity="many">Rodyti %d paslėpto elemento</item>
<item quantity="other">Rodyti %d paslėptų elementų</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Sutraukti"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Tinklas ir internetas"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilusis"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"duomenų naudojimas"</string>
@@ -3077,6 +3078,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"Tamsi tema"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"riktas"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Aplinkos ekranas, užrakinimo ekranas"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"užrakinimo ekrano pranešimas"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"veidas"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"piršto antspaudas"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"pritemdyti ekraną, jutiklinis ekranas, akumuliatorius, išmanusis šviesumas, dinaminis šviesumas"</string>
@@ -3824,6 +3826,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Vidinė saugykla: panaudota: <xliff:g id="PERCENTAGE">%1$s</xliff:g>, laisva: <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"Įjungti miego būseną, jei <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> neatliekama jokių veiksmų"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Ekrano fonas, miego būsena, šrifto dydis"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Įjungti miego būseną, jei 10 minučių neatliekama jokių veiksmų"</string>
<string name="memory_summary" msgid="8080825904671961872">"Vid. naudojama atminties: <xliff:g id="USED_MEMORY">%1$s</xliff:g> iš <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Prisijungta kaip <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4300,10 +4304,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Išsami tinklo informacija"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Įrenginio pavadinimas matomas jūsų telefone esančioms programoms. Kai prisijungiate prie „Bluetooth“ įrenginių arba nustatote „Wi-Fi“ viešosios interneto prieigos tašką, jį taip pat gali matyti kiti žmonės."</string>
<string name="devices_title" msgid="7701726109334110391">"Įrenginiai"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Didelio dažnio skydelis"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Įgalinti virtualųjį didelio dažnio skydelį"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Visi nustatymai"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Jūsų nustatymai"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Pasiūlymai"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS duomenys"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS duomenys"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Pasirinkti tinklą"</string>
@@ -4315,4 +4317,74 @@
<string name="network_query_error" msgid="7487714485362598410">"Nepavyko rasti tinklų. Bandykite dar kartą."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(uždrausta)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Nėra SIM kortelės"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Išplėstinės skambinimo parinktys"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Pageidaujamas tinklo režimas: pageidautina WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Pageidaujamas tinklo režimas: tik GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Pageidaujamas tinklo režimas: tik WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Pageidaujamas tinklo režimas: CDMA / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Pageidaujamas tinklo režimas: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Pageidaujamas tinklo režimas: CDMA / „EvDo“"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Pageidaujamas tinklo režimas: tik CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Pageidaujamas tinklo režimas: tik „EvDo“"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Pageidaujamas tinklo režimas: CDMA / „EvDo“ / GSM / WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Pageidaujamas tinklo režimas: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Pageidaujamas tinklo režimas: GSM / WCDMA / LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Pageidaujamas tinklo režimas: CDMA ir LTE / EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Pageidaujamas tinklo režimas: pasaulinis"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Pageidaujamas tinklo režimas: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Pageidautinas tinklo režimas: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Pageidaujamas tinklo režimas: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Pageidaujamas tinklo režimas: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Pageidaujamas tinklo režimas: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Pageidaujamas tinklo režimas: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Pageidaujamas tinklo režimas: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Pageidaujamas tinklo režimas: LTE / GSM / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Pageidaujamas tinklo režimas: TDSCDMA / GSM / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Pageidaujamas tinklo režimas: LTE / TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Pageidaujamas tinklo režimas: LTE / TDSCDMA / GSM / WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Pageidaujamas tinklo režimas: TDSCDMA / CDMA / „EvDo“ / GSM / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Pageidaujamas tinklo režimas: LTE / TDSCDMA / CDMA / „EvDo“ / GSM / WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (rekomenduojama)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (rekomenduojama)"</string>
+ <string name="network_global" msgid="959947774831178632">"Visuotinis"</string>
+ <string name="label_available" msgid="1731547832803057893">"Galimi tinklai"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Ieškoma…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registruojama tinkle „<xliff:g id="NETWORK">%s</xliff:g>“…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM kortelė neleidžia užmegzti ryšio su šiuo tinklu."</string>
+ <string name="connect_later" msgid="978991102125216741">"Dabar prie šio tinklo prisijungti nepavyksta. Vėliau bandykite dar kartą."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registruota tinkle."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Automatiškai pasirinkti tinklą"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Operatoriaus nustatymai"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Nustatyti duomenų paslaugą"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobilieji duomenys"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Prieiga prie duomenų naudojant mobiliojo ryšio tinklą"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Pageidaujamas tinklo tipas"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Pakeisti tinklo veikimo režimą"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Pageidaujamas tinklo tipas"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operatorius"</string>
+ <string name="call_category" msgid="8108654745239563833">"Skambinama"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Operatoriaus vaizdo skambučiai"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Sistemos pasirinkimas"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Pakeisti tarptinklinio CDMA ryšio režimą"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Sistemos pasirinkimas"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Tinklas"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Tinklas"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA prenumerata"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Keisti RUIM / SIM ir NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"prenumerata"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatinė registracija…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Leisti tarptinklinį duomenų ryšį?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Daugiau kainodaros informacijos galite gauti susisiekę su tinklo paslaugų teikėju."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Programos duomenų naudojimas"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Netinkamas tinklo režimas (<xliff:g id="NETWORKMODEID">%1$d</xliff:g>). Nepaisyti."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nepasiekiama, kai prisijungta prie „<xliff:g id="CARRIER">%1$s</xliff:g>“"</string>
+ <string name="see_more" msgid="5953815986207345223">"Žr. daugiau"</string>
+ <string name="see_less" msgid="1250265310929558370">"Žr. mažiau"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> įrenginys prijungtas</item>
+ <item quantity="few"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> įrenginiai prijungti</item>
+ <item quantity="many"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> įrenginio prijungta</item>
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> įrenginių prijungta</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Nėra jokių prijungtų įrenginių"</string>
</resources>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index 2f7b245..12f76be 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Maksas"</item>
<item msgid="2266114985518865625">"Bezmaksas"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Noklusējuma (izmantot nejaušā secībā atlasītu MAC adresi)"</item>
+ <item msgid="5398461510512959597">"Uzticams"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Nē"</item>
<item msgid="3863157480502955888">"Jā"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Atkļūdošana"</item>
<item msgid="5286514712714822064">"Izvērsta informācija"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Tikai mājās"</item>
+ <item msgid="5034813753274486448">"Automātiski"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Ieteicamais režīms: GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"Tikai GSM"</item>
+ <item msgid="488474605709912156">"Tikai WCDMA"</item>
+ <item msgid="1912421096218750039">"Automātiskais režīms: GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"Automātiskais režīms: CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"CDMA bez EvDo"</item>
+ <item msgid="4678789463133969294">"Tikai EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA un LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Vispārējie"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Tikai TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Vispārējie"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index ada0144..e6f0feb 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Izveidot"</string>
<string name="allow" msgid="3349662621170855910">"Atļaut"</string>
<string name="deny" msgid="6947806159746484865">"Aizliegt"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Aizvērt"</string>
<string name="device_info_default" msgid="7847265875578739287">"Nezināms"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="zero">Lai jūs kļūtu par izstrādātāju, atlikušas <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> darbības.</item>
@@ -907,6 +906,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Izvēlieties vismaz vienu joslu Wi‑Fi tīklājam:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP iestatījumi"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Konfidencialitāte"</string>
<string name="wifi_shared" msgid="844142443226926070">"Koplietot ar citiem ierīces lietotājiem"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(bez izmaiņām)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Lūdzu, atlasiet"</string>
@@ -1221,6 +1221,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Nevar mainīt PIN kodu.\nIespējams, ka PIN kods nav pareizs."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN ir veiksmīgi nomainīts"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Nevar mainīt SIM kartes bloķēšanas stāvokli.\nIespējams, ka ievadījāt nepareizu PIN kodu."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Nevar atspējot PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Nevar iespējot PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Labi"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Atcelt"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Atrastas vairākas SIM kartes"</string>
@@ -2969,7 +2971,6 @@
<item quantity="one">Rādīt %d slēptu vienumu</item>
<item quantity="other">Rādīt %d slēptus vienumus</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Sakļaut"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Tīkls un internets"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilais tīkls"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"datu lietojums"</string>
@@ -3039,6 +3040,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tumšs motīvs"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"kļūda"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Gaidstāves ekrāns, bloķēšanas ekrāna attēlojums"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"bloķēšanas ekrāna paziņojums"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"seja"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"pirksta nospiedums"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"aptumšots ekrāns, skārienekrāns, akumulators, viedais spilgtums, dinamiskais spilgtums"</string>
@@ -3767,6 +3769,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Iekšējā krātuve: <xliff:g id="PERCENTAGE">%1$s</xliff:g> izmantota, <xliff:g id="FREE_SPACE">%2$s</xliff:g> brīva"</string>
<string name="display_summary" msgid="6737806235882127328">"Pāriešana miega režīmā, ja <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> nav aktivitātes"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Fona tapete, miega režīms, fonta lielums"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Miega režīms pēc 10 minūšu neaktivitātes"</string>
<string name="memory_summary" msgid="8080825904671961872">"Izmantotais atmiņas apjoms: vidēji <xliff:g id="USED_MEMORY">%1$s</xliff:g> no <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Pierakstījies kā: <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4227,10 +4231,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Dati par tīklu"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Jūsu ierīces nosaukums ir redzams tālrunī instalētajām lietotnēm. Ja izveidosiet savienojumu ar Bluetooth ierīcēm vai iestatīsiet Wi-Fi tīklāju, tas būs redzams arī citām personām."</string>
<string name="devices_title" msgid="7701726109334110391">"Ierīces"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Augstas frekv. panelis"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Iespējot virtuālo augstas frekvences paneli"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Visi iestatījumi"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Jūsu iestatījumi"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Ieteikumi"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS dati"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS dati"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Izvēlēties tīklu"</string>
@@ -4242,4 +4244,73 @@
<string name="network_query_error" msgid="7487714485362598410">"Neizdevās atrast tīklus. Mēģiniet vēlreiz."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(aizliegts)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Nav SIM kartes"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Paplašinātas zvanu iespējas"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Ieteicamais tīkla režīms: WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Ieteicamais tīkla režīms: tikai GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Ieteicamais tīkla režīms: tikai WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Ieteicamais tīkla režīms: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Ieteicamais tīkla režīms: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Ieteicamais tīkla režīms: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Ieteicamais tīkla režīms: tikai CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Ieteicamais tīkla režīms: tikai EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Ieteicamais tīkla režīms: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Ieteicamais tīkla režīms: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Ieteicamais tīkla režīms: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Ieteicamais tīkla režīms: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Ieteicamais tīkla režīms: vispārējs"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Ieteicamais tīkla režīms: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Ieteicamais tīkla režīms: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Ieteicamais tīkla režīms: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Ieteicamais tīkla režīms: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Ieteicamais tīkla režīms: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Ieteicamais tīkla režīms: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Ieteicamais tīkla režīms: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Ieteicamais tīkla režīms: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Ieteicamais tīkla režīms: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Ieteicamais tīkla režīms: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Ieteicamais tīkla režīms: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Ieteicamais tīkla režīms: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Ieteicamais tīkla režīms: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (ieteicams)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (ieteicams)"</string>
+ <string name="network_global" msgid="959947774831178632">"Vispārējie"</string>
+ <string name="label_available" msgid="1731547832803057893">"Pieejamie tīkli"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Notiek meklēšana…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Notiek reģistrēšana tīklā <xliff:g id="NETWORK">%s</xliff:g>..."</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM karte neļauj izveidot savienojumu ar šo tīklu."</string>
+ <string name="connect_later" msgid="978991102125216741">"Pašlaik nevar izveidot savienojumu ar šo tīklu. Vēlāk mēģiniet vēlreiz."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Reģistrēts tīklā."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Automātiski atlasīt tīklu"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Mobilo sakaru operatora iestatījumi"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Datu pakalpojuma iestatīšana"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobilie dati"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Piekļuve datiem, izmantojot mobilo tīklu"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Ieteicamais tīkla veids"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Mainiet tīkla darbības režīmu"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Ieteicamais tīkla veids"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Mobilo sakaru operators"</string>
+ <string name="call_category" msgid="8108654745239563833">"Zvanīšana"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Mobilo sakaru operatora videozvani"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Sistēmas atlasīšana"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Mainīt CDMA viesabonēšanas režīmu"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Sistēmas atlasīšana"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Tīkls"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Tīkls"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA abonements"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Mainīt uz RUIM/SIM vai NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"abonēšana"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automātiska reģistrācija..."</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Vai atļaut datu viesabonēšanu?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Sazinieties ar savu tīkla pakalpojumu sniedzēju, lai uzzinātu par tarifiem."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Lietotnes datu lietojums"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Nederīgs tīkla režīms: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorēt."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nav pieejams, ja izveidots savienojums ar operatoru <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Skatīt vairāk"</string>
+ <string name="see_less" msgid="1250265310929558370">"Skatīt mazāk"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="zero">Pievienotas <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> ierīces</item>
+ <item quantity="one">Pievienota <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> ierīce</item>
+ <item quantity="other">Pievienotas <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> ierīces</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Nav pievienota neviena ierīce"</string>
</resources>
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
index d2da66d..49dc9aa 100644
--- a/res/values-mk/arrays.xml
+++ b/res/values-mk/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Сметај како ограничена мрежа"</item>
<item msgid="2266114985518865625">"Сметај како неограничена мрежа"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Стандардно (користи рандомизирана MAC-адреса)"</item>
+ <item msgid="5398461510512959597">"Доверливо"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Не"</item>
<item msgid="3863157480502955888">"Да"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Отстранување грешка"</item>
<item msgid="5286514712714822064">"Опширно"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Само домашен"</item>
+ <item msgid="5034813753274486448">"Автоматски"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Претпочитан е GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"Само GSM"</item>
+ <item msgid="488474605709912156">"Само WCDMA"</item>
+ <item msgid="1912421096218750039">"Автоматски GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"Автоматски CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"CDMA без EvDo"</item>
+ <item msgid="4678789463133969294">"Само EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Глобален"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Само TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Глобален"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index fe18aaa..d267832 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Создај"</string>
<string name="allow" msgid="3349662621170855910">"Дозволи"</string>
<string name="deny" msgid="6947806159746484865">"Одбиј"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Затвори"</string>
<string name="device_info_default" msgid="7847265875578739287">"Непознато"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Сега сте на <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> чекор поблиску да станете програмер.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Изберете барем еден појас за Wi‑Fi точка на пристап:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Поставки на IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Приватност"</string>
<string name="wifi_shared" msgid="844142443226926070">"Сподели со други корисници на уредот"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(непроменети)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Изберете"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Не може да го промените PIN-от.\nМожно е PIN-от да е погрешен."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN на SIM картичката е успешно променет"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Не може да се промени состојбата на заклучување на SIM картичката.\nМожно е PIN-от да е погрешен."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Не може да се оневозможи PIN-от."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Не може да се овозможи PIN-от."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Во ред"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Откажи"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Пронајдени се повеќе SIM-картички"</string>
@@ -2931,7 +2933,6 @@
<item quantity="one">Прикажи %d сокриена ставка</item>
<item quantity="other">Прикажи %d сокриени ставки</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Собери"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Мрежа и интернет"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мобилна"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"потрошен сообраќај"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"темна тема"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"грешка"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Амбиентален екран, Екран за заклучување на екранот"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"известување на заклучен екран"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"лице"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"отпечаток"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"затемнет екран, екран на допир, батерија, паметна осветленост, динамична осветленост"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Внатрешен капацитет: искористено <xliff:g id="PERCENTAGE">%1$s</xliff:g> - слободно <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"Стави во режим на мирување по <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> неактивност"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Тапет, режим во мирување, големина на фонт"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Стави на режим во мирување по 10 минути неактивност"</string>
<string name="memory_summary" msgid="8080825904671961872">"Искористени се просечно <xliff:g id="USED_MEMORY">%1$s</xliff:g> од <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> меморија"</string>
<string name="users_summary" msgid="1674864467098487328">"Најавени сте како <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Детали за мрежа"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Името на уредот е видливо за апликациите на телефонот. Може да го видат и други луѓе кога ќе се поврзете со уреди со Bluetooth или кога ќе поставите Wi-Fi точка на пристап."</string>
<string name="devices_title" msgid="7701726109334110391">"Уреди"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Табла за висока фреквенц."</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Овозможи виртуелна табла за висока фреквенција"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Сите поставки"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Вашите поставки"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Предлози"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-податоци"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-податоци"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Изберете мрежа"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Не најдовме мрежи. Обидете се повторно."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(забранета)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Нема SIM-картичка"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Напредно повикување"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Претпочитан режим на мрежа: претпочитан е WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Претпочитан режим на мрежа: само GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Претпочитан режим на мрежа: само WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Претпочитан режим на мрежа: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Претпочитан режим на мрежа: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Претпочитан режим на мрежа: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Претпочитан режим на мрежа: само CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Претпочитан режим на мрежа: само EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Претпочитан режим на мрежа: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Претпочитан режим на мрежа: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Претпочитан режим на мрежа: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Претпочитан режим на мрежа: CDMA + LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Претпочитан режим на мрежа: глобален"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Претпочитан режим на мрежа: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Претпочитан режим на мрежа: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Претпочитан режим на мрежа: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Претпочитан режим на мрежа: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Претпочитан режим на мрежа: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Претпочитан режим на мрежа: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Претпочитан режим на мрежа: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Претпочитан режим на мрежа: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Претпочитан режим на мрежа: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Претпочитан режим на мрежа: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Претпочитан режим на мрежа: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Претпочитан режим на мрежа: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Претпочитан режим на мрежа: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (препорачано)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (препорачано)"</string>
+ <string name="network_global" msgid="959947774831178632">"Глобален"</string>
+ <string name="label_available" msgid="1731547832803057893">"Достапни мрежи"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Се пребарува…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Се регистрира на <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Вашата SIM-картичка не дозволува поврзување на мрежава."</string>
+ <string name="connect_later" msgid="978991102125216741">"Не може да се поврземе со мрежава во моментов. Обидете се повторно подоцна."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Регистрирано на мрежа."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Автоматски избирај мрежа"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Поставки за операторот"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Услуга за мобилен интернет"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Мобилен интернет"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Пристап на интернет преку мобилната мрежа"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Претпочитан тип мрежа"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Променете го режимот на работа на мрежата"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Претпочитан тип мрежа"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Оператор"</string>
+ <string name="call_category" msgid="8108654745239563833">"Повикување"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Видеоповици преку оператор"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Избирање систем"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Променете го режимот на роаминг на CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Избирање систем"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Мрежа"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Мрежа"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Претплата на CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Менувајте помеѓу RUIM/SIM и NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"претплата"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Автоматска регистрација…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Да се дозволи интернет-роаминг?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"За цени, проверете кај вашиот мрежен оператор."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Сообраќај на апликациите"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Неважечки режим на мрежа <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Игнорирајте."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Недостапно кога сте поврзани на <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Видете повеќе"</string>
+ <string name="see_less" msgid="1250265310929558370">"Види помалку"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-ml/arrays.xml b/res/values-ml/arrays.xml
index 277d342..83ecf46 100644
--- a/res/values-ml/arrays.xml
+++ b/res/values-ml/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"മീറ്റർ-മാപകമായി കണക്കാക്കുക"</item>
<item msgid="2266114985518865625">"മീറ്റർ മാപകമല്ലാത്തതായി കണക്കാക്കുക"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"ഡിഫോൾട്ട് (ക്രമരഹിതമാക്കിയ MAC ഉപയോഗിക്കുക)"</item>
+ <item msgid="5398461510512959597">"വിശ്വസ്തൻ"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"ഇല്ല"</item>
<item msgid="3863157480502955888">"ഉവ്വ്"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"ഡീബഗ് ചെയ്യുക"</item>
<item msgid="5286514712714822064">"വെർബോസ്"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"ഹോം മാത്രം"</item>
+ <item msgid="5034813753274486448">"സ്വമേധയാ"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"മുൻഗണന നൽകുന്നത് GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"GSM മാത്രം"</item>
+ <item msgid="488474605709912156">"WCDMA മാത്രം"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA സ്വമേധയാ"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo സ്വമേധയാ"</item>
+ <item msgid="370391313511477301">"EvDo ഇല്ലാത്ത CDMA"</item>
+ <item msgid="4678789463133969294">"EvDo മാത്രം"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"ആഗോളം"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA മാത്രം"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/സിം"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"ആഗോളം"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 05c298c..c558c09 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"സൃഷ്ടിക്കുക"</string>
<string name="allow" msgid="3349662621170855910">"അനുവദിക്കുക"</string>
<string name="deny" msgid="6947806159746484865">"നിരസിക്കുക"</string>
- <string name="dlg_close" msgid="7471087791340790015">"അടയ്ക്കുക"</string>
<string name="device_info_default" msgid="7847265875578739287">"അജ്ഞാതം"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">ഒരു ഡവലപ്പറാകുന്നതിൽ നിന്നും നിങ്ങൾ <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ചുവട് മാത്രം അകലെയാണ്.</item>
@@ -179,8 +178,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"മുമ്പ് കണക്റ്റ് ചെയ്തിട്ടുള്ള ഉപകരണങ്ങൾ"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"മുമ്പേ കണക്റ്റ് ചെയ്തവ"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth ഓണാക്കി"</string>
- <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
- <skip />
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"എല്ലാം കാണുക"</string>
<string name="date_and_time" msgid="9062980487860757694">"തീയതിയും സമയവും"</string>
<string name="choose_timezone" msgid="1362834506479536274">"സമയ മേഖല തിരഞ്ഞെടുക്കുക"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -893,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"വൈഫൈ ഹോട്ട്സ്പോട്ടിനായി കുറഞ്ഞത് ഒരു ബാൻഡ് എങ്കിലും തിരഞ്ഞെടുക്കുക:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP ക്രമീകരണം"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"സ്വകാര്യത"</string>
<string name="wifi_shared" msgid="844142443226926070">"മറ്റ് ഉപകരണ ഉപയോക്താക്കളുമായി പങ്കിടുക"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(മാറ്റം വരുത്തിയിട്ടില്ല)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"തിരഞ്ഞെടുക്കുക"</string>
@@ -1206,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"പിൻ മാറ്റാനായില്ല.\nപിൻ തെറ്റായിരിക്കാൻ സാധ്യതയുണ്ട്."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"സിമ്മിന്റെ പിൻ മാറ്റി"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"സിം കാർഡ് ലോക്ക് നില മാറ്റാനായില്ല.\nപിൻ തെറ്റായിരിക്കാൻ സാധ്യതയുണ്ട്."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"പിൻ പ്രവർത്തനരഹിതമാക്കാനാവില്ല."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"പിൻ പ്രവർത്തനക്ഷമമാക്കാനാവില്ല."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"ശരി"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"റദ്ദാക്കുക"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"ഒന്നിലധികം സിം-കൾ കണ്ടെത്തി"</string>
@@ -2932,7 +2933,6 @@
<item quantity="other">മറച്ച %d ഇനങ്ങൾ കാണിക്കുക</item>
<item quantity="one">മറച്ച %d ഇനം കാണിക്കുക</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ചുരുക്കുക"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"നെറ്റ്വർക്കും ഇന്റർനെറ്റും"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"മൊബൈല്"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ഡാറ്റ ഉപയോഗം"</string>
@@ -3002,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"ഇരുണ്ട തീം"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"ബഗ്"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"പാതിമയക്ക ഡിസ്പ്ലേ, ലോക്ക് സ്ക്രീൻ ഡിസ്പ്ലേ"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ലോക്ക് സ്ക്രീൻ അറിയിപ്പ്"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"മുഖം"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"ഫിംഗർപ്രിന്റ്"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"സ്ക്രീൻ മങ്ങിക്കൽ, ടച്ച്സ്ക്രീൻ, ബാറ്ററി, സ്മാർട്ട് തെളിച്ചം, ചലനാത്മക തെളിച്ചം"</string>
@@ -3711,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ഉള്ളിലെ മെമ്മറി: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ഉപയോഗിച്ചു - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ശേഷിക്കുന്നു"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> നിഷ്ക്രിയമാണെങ്കിൽ സ്ലീപ്പിലാക്കുക"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"വാൾപേപ്പർ, സ്ലീപ്പ്, ഫോണ്ട് വലുപ്പം"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"10 മിനിറ്റ് നിഷ്ക്രിയമാണെങ്കിൽ സ്ലീപ്പിലാക്കുക"</string>
<string name="memory_summary" msgid="8080825904671961872">"ശരാശരി <xliff:g id="USED_MEMORY">%1$s</xliff:g> / <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> മെമ്മറി ഉപയോഗിച്ചു"</string>
<string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> എന്നയാളായി സൈൻ ഇൻ ചെയ്തു"</string>
@@ -4155,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"നെറ്റ്വർക്ക് വിശദാംശങ്ങൾ"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"നിങ്ങളുടെ ഫോണിലെ അപ്ലിക്കേഷനുകൾക്ക് നിങ്ങളുടെ ഉപകരണത്തിന്റെ പേര് ദൃശ്യമാണ്. വൈഫൈ ഹോട്ട്സ്പോട്ട് സജ്ജീകരിക്കുമ്പോഴോ Bluetooth ഉപകരണങ്ങളുമായി കണക്റ്റ് ചെയ്യുമ്പോഴോ, ഇത് മറ്റ് ആളുകൾക്കും കാണാനായേക്കും."</string>
<string name="devices_title" msgid="7701726109334110391">"ഉപകരണങ്ങൾ"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"ഉയർന്ന ആവൃത്തി പാനൽ"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"വെർച്വലായ ഉയർന്ന ആവൃത്തി പാനൽ പ്രവർത്തനക്ഷമമാക്കൂ"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"എല്ലാ ക്രമീകരണവും"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"നിങ്ങളുടെ ക്രമീകരണം"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"നിർദ്ദേശങ്ങൾ"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ഡാറ്റ"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ഡാറ്റ"</string>
<string name="choose_network_title" msgid="5702586742615861037">"നെറ്റ്വര്ക്ക് തിരഞ്ഞെടുക്കുക"</string>
@@ -4170,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"നെറ്റ്വർക്കുകൾ കണ്ടെത്താനായില്ല. വീണ്ടും ശ്രമിക്കുക."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(നിരോധിക്കപ്പെട്ടത്)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"സിം കാർഡില്ല"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"വിപുലമായ കോളിംഗ്"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: WCDMA-യ്ക്ക് മുൻഗണന"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: GSM മാത്രം"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: WCDMA മാത്രം"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: CDMA മാത്രം"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: EvDo മാത്രം"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: ആഗോളം"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് മോഡ്: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (ശുപാർശചെയ്തത്)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (ശുപാർശചെയ്തത്)"</string>
+ <string name="network_global" msgid="959947774831178632">"ആഗോളം"</string>
+ <string name="label_available" msgid="1731547832803057893">"ലഭ്യമായ നെറ്റ്വർക്കുകൾ"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"തിരയുന്നു..."</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> എന്നതിൽ രജിസ്റ്റർ ചെയ്യുന്നു…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"നിങ്ങളുടെ സിം കാർഡ്, ഈ നെറ്റ്വർക്കിലേക്ക് കണക്ഷൻ അനുവദിക്കുന്നില്ല."</string>
+ <string name="connect_later" msgid="978991102125216741">"ഈ നെറ്റ്വർക്കിലേക്ക് ഇപ്പോൾ കണക്റ്റ് ചെയ്യാനാവുന്നില്ല. പിന്നീട് വീണ്ടും ശ്രമിക്കുക."</string>
+ <string name="registration_done" msgid="4573820010512184521">"നെറ്റ്വർക്കിൽ രജിസ്റ്റർ ചെയ്തു."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"സ്വമേധയാ നെറ്റ്വർക്ക് തിരഞ്ഞെടുക്കുക"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"കാരിയർ ക്രമീകരണം"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"ഡാറ്റാ സേവനം സജ്ജീകരിക്കുക"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"മൊബൈൽ ഡാറ്റ"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"മൊബൈൽ നെറ്റ്വർക്ക് ഉപയോഗിച്ച് ഡാറ്റ ആക്സസ് ചെയ്യുക"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് തരം"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"നെറ്റ്വർക്ക് പ്രവർത്തിക്കുന്ന മോഡ് മാറ്റുക"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"മുൻഗണന നൽകുന്ന നെറ്റ്വർക്ക് തരം"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"കാരിയര്"</string>
+ <string name="call_category" msgid="8108654745239563833">"കോൾചെയ്യുന്നു"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"കാരിയർ വീഡിയോ കോളിംഗ്"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"സിസ്റ്റം സെലക്ട്"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA റോമിംഗ് മോഡ് മാറ്റുക"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"സിസ്റ്റം സെലക്ട്"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"നെറ്റ്വർക്ക്"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"നെറ്റ്വർക്ക്"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA സബ്സ്ക്രിപ്ഷൻ"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/സിം, NV എന്നിവ പരസ്പരം മാറ്റുക"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"സബ്സ്ക്രിപ്ഷൻ"</string>
+ <string name="register_automatically" msgid="518185886971595020">"സ്വമേധയായുള്ള രജിസ്ട്രേഷൻ…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"ഡാറ്റാ റോമിംഗ് അനുവദിക്കണോ?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"നിരക്കിനായി, നെറ്റ്വർക്ക് ദാതാവിനെ ബന്ധപ്പെടുക."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"ആപ്പിന്റെ ഡാറ്റ ഉപയോഗം"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"നെറ്റ്വര്ക്ക് മോഡ് <xliff:g id="NETWORKMODEID">%1$d</xliff:g> അസാധുവാണ്. അവഗണിക്കുക."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> എന്നതിലേക്ക് കണക്റ്റ് ചെയ്തിരിക്കുമ്പോൾ ലഭ്യമല്ല"</string>
+ <string name="see_more" msgid="5953815986207345223">"കൂടുതൽ കാണുക"</string>
+ <string name="see_less" msgid="1250265310929558370">"കുറച്ച് കാണുക"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index 8f89670..0953820 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Хязгаартайгаар тохируулах"</item>
<item msgid="2266114985518865625">"Хязгааргүйгээр тохируулах"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Өгөгдмөл (үүсгэсэн MAC ашиглах)"</item>
+ <item msgid="5398461510512959597">"Итгэмжлэгдсэн"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Үгүй"</item>
<item msgid="3863157480502955888">"Тийм"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Дебаг хийх"</item>
<item msgid="5286514712714822064">"Verbose"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Зөвхөн гэр"</item>
+ <item msgid="5034813753274486448">"Автомат"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA нь давуу эрхтэй"</item>
+ <item msgid="807926878589867564">"Зөвхөн GSM"</item>
+ <item msgid="488474605709912156">"Зөвхөн WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA автомат"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo автомат"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"Зөвхөн EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Глобал"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"Зөвхөн TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Глобал"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index e2bd2d0..97d78b5 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Үүсгэх"</string>
<string name="allow" msgid="3349662621170855910">"Зөвшөөрөх"</string>
<string name="deny" msgid="6947806159746484865">"Татгалзах"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Хаах"</string>
<string name="device_info_default" msgid="7847265875578739287">"Тодорхойгүй"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Танд одоо хөгжүүлэгч болоход <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> алхам дутуу байна.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 Гц"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi-Fi сүлжээний цэгт хамгийн багадаа нэг зурвасыг сонгоно уу:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP тохиргоо"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Нууцлал"</string>
<string name="wifi_shared" msgid="844142443226926070">"Төхөөрөмжийн бусад хэрэглэгчтэй хуваалцах"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(өөрчлөгдөөгүй)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Сонгоно уу"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PIN-г өөрчилж чадахгүй.\nБуруу PIN бололтой."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN амжилттай өөрчлөгдсөн"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"SIM картын түгжигдсэн байдлыг өөрчлөх боломжгүй.\nБуруу PIN байж магадгүй."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"ПИН-г идэвхгүй болгож чадсангүй."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"ПИН-г идэвхжүүлж чадсангүй."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Цуцлах"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Олон SIM байна"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Нуусан %d зүйлийг харуулах</item>
<item quantity="one">Нуусан %d зүйлийг харуулах</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Буулгах"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Сүлжээ & интернэт"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мобайл"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"дата ашиглалт"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"бараан загвар"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"алдаа"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Орчинтой тохирсон дэлгэц, Түгжигдсэн дэлгэцийн дэлгэц"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"түгжигдсэн дэлгэцийн мэдэгдэл"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"царай"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"хурууны хээ"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"бүдэг дэлгэц, мэдрэмтгий дэлгэц, батарей, ухаалаг гэрэлтүүлэг, динамик гэрэлтүүлэг"</string>
@@ -3708,6 +3710,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Дотоод сан: <xliff:g id="PERCENTAGE">%1$s</xliff:g>-г ашигласан - <xliff:g id="FREE_SPACE">%2$s</xliff:g> сул"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> идэвхгүй байсны дараа унтах"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Ханын зураг, идэвхгүй, фонтын хэмжээ"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<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>
@@ -4152,10 +4156,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Сүлжээний мэдээлэл"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Таны төхөөрөмжийн нэр таны утасны аппуудад харагдана. Та Bluetooth төхөөрөмжүүдэд холбогдох эсвэл Wi-Fi сүлжээний цэгийг тохируулах үед энэ нь бусад хүмүүст харагдаж болзошгүй."</string>
<string name="devices_title" msgid="7701726109334110391">"Төхөөрөмжүүд"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Өндөр давтамжтай самбар"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Виртуал өндөр давтамжтай самбарыг идэвхжүүлэх"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Бүх тохиргоо"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Таны тохиргоо"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Зөвлөмж"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS Дата"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS Дата"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Сүлжээ сонгох"</string>
@@ -4167,4 +4169,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Сүлжээ олдсонгүй. Дахин оролдоно уу."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(хориглосон)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM карт алга"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Дэвшилтэт дуудлага"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Давуу эрхтэй сүлжээний горим: WCDMA давуу эрхтэй"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Давуу эрхтэй сүлжээний горим: зөвхөн GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Давуу эрхтэй сүлжээний горим: зөвхөн WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Давуу эрхтэй сүлжээний горим: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Давуу эрхтэй сүлжээний горим: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Давуу эрхтэй сүлжээний горим: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Давуу эрхтэй сүлжээний горим: зөвхөн CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Давуу эрхтэй сүлжээний горим: зөвхөн EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Давуу эрхтэй сүлжээний горим: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Давуу эрхтэй сүлжээний горим: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Давуу эрхтэй сүлжээний горим: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Давуу эрхтэй сүлжээний горим: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Давуу эрхтэй сүлжээний горим: Глобал"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Давуу эрхтэй сүлжээний горим: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Давуу эрхтэй сүлжээний горим: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Давуу эрхтэй сүлжээний горим: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Давуу эрхтэй сүлжээний горим: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Давуу эрхтэй сүлжээний горим: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Давуу эрхтэй сүлжээний горим: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Давуу эрхтэй сүлжээний горим: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Давуу эрхтэй сүлжээний горим: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Давуу эрхтэй сүлжээний горим: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Давуу эрхтэй сүлжээний горим: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Давуу эрхтэй сүлжээний горим: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Давуу эрхтэй сүлжээний горим: CDMA/EvDo/GSM/WCDMAj"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Давуу эрхтэй сүлжээний горим: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (санал болгосон)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (санал болгосон)"</string>
+ <string name="network_global" msgid="959947774831178632">"Глобал"</string>
+ <string name="label_available" msgid="1731547832803057893">"Боломжтой сүлжээнүүд"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Хайж байна…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g>-д бүртгэж байна…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Таны SIM карт энэ сүлжээнд холбогдохыг зөвшөөрөхгүй байна."</string>
+ <string name="connect_later" msgid="978991102125216741">"Энэ сүлжээнд одоо холбогдох боломжгүй байна. Дараа дахин оролдоно уу."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Сүлжээнд бүртгэсэн."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Сүлжээг автоматаар сонгох"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Оператор компанийн тохиргоо"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Дата үйлчилгээг тохируулах"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Мобайл дата"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Мобайл сүлжээг ашиглан датад холбогдох"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Давуу эрхтэй сүлжээний төрөл"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Сүлжээний ажиллах горимыг өөрчлөх"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Давуу эрхтэй сүлжээний төрөл"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Оператор компани"</string>
+ <string name="call_category" msgid="8108654745239563833">"Дуудлага"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Оператор компанийн видео дуудлага"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Систем сонгох"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA роуминг горимыг өөрчлөх"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Систем сонгох"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Сүлжээ"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Сүлжээ"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA захиалга"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM болон NV-н хооронд өөрчлөх"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"захиалга"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Автомат бүртгэл…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Дата роумингийг зөвшөөрөх үү?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Үнийг нь сүлжээний үйлчилгээ үзүүлэгчээсээ тодруулна уу."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Аппын дата ашиглалт"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Буруу сүлжээний горим <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Үл хэрэгсэнэ үү."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g>-д холбогдсон үед боломжгүй"</string>
+ <string name="see_more" msgid="5953815986207345223">"Дэлгэрэнгүй үзэх"</string>
+ <string name="see_less" msgid="1250265310929558370">"Цөөнийг харах"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index 3e015b2..94756e5 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -195,7 +195,7 @@
<item msgid="8084938354605535381">"IPv4/IPv6"</item>
</string-array>
<string-array name="bearer_entries">
- <item msgid="1697455674244601285">"निर्दिष्ट केले नाही"</item>
+ <item msgid="1697455674244601285">"नमूद केले नाही"</item>
<item msgid="1317061551798123908">"LTE"</item>
<item msgid="5005435684511894770">"HSPAP"</item>
<item msgid="7700603056475539235">"HSPA"</item>
@@ -411,9 +411,9 @@
</string-array>
<string-array name="vpn_types_long">
<item msgid="2732002039459078847">"PPTP VPN"</item>
- <item msgid="3799752201662127867">"पूर्व-सामायिक की सह L2TP/IPSec VPN"</item>
+ <item msgid="3799752201662127867">"पूर्व-शेअर की सह L2TP/IPSec VPN"</item>
<item msgid="4725504331295252103">"प्रमाणपत्रांसह L2TP/IPSec VPN"</item>
- <item msgid="7526551163264034377">"पूर्व-सामायिक की आणि Xauth प्रमाणीकरणासह IPSec VPN"</item>
+ <item msgid="7526551163264034377">"पूर्व-शेअर की आणि Xauth प्रमाणीकरणासह IPSec VPN"</item>
<item msgid="8064740940687465039">"प्रमाणपत्रे आणि Xauth प्रमाणीकरणासह IPSec VPN"</item>
<item msgid="4946199982372391490">"प्रमाणपत्रे आणि संकरित प्रमाणीकरणासह IPSec VPN"</item>
</string-array>
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"मीटरने मोजले जात असल्याचे धरा"</item>
<item msgid="2266114985518865625">"मीटरने मोजले जात नसल्याचे धरा"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"डीफॉल्ट (रँडमाइझ केलेले MAC वापरा)"</item>
+ <item msgid="5398461510512959597">"विश्वासू"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"नाही"</item>
<item msgid="3863157480502955888">"होय"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"डीबग करा"</item>
<item msgid="5286514712714822064">"शब्दबंबाळ"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"केवळ होम"</item>
+ <item msgid="5034813753274486448">"आपोआप"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA प्राधान्यकृत"</item>
+ <item msgid="807926878589867564">"केवळ GSM"</item>
+ <item msgid="488474605709912156">"केवळ WCDMA"</item>
+ <item msgid="1912421096218750039">"आपोआप GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"आपोआप CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"केवळ EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"जागतिक"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"केवळ TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/सिम"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"जागतिक"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 450924f..3e422a1 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"तयार करा"</string>
<string name="allow" msgid="3349662621170855910">"अनुमती द्या"</string>
<string name="deny" msgid="6947806159746484865">"नकार द्या"</string>
- <string name="dlg_close" msgid="7471087791340790015">"बंद करा"</string>
<string name="device_info_default" msgid="7847265875578739287">"अज्ञात"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">तुम्ही आता विकासक बनण्यापासून <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> चरण दूर आहात.</item>
@@ -179,8 +178,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"याआधी कनेक्ट केलेली डिव्हाइस"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"याआधी कनेक्ट केलेले"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ब्लूटूथ सुरू केले"</string>
- <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
- <skip />
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"सर्व पाहा"</string>
<string name="date_and_time" msgid="9062980487860757694">"तारीख आणि वेळ"</string>
<string name="choose_timezone" msgid="1362834506479536274">"टाइम झोन निवडा"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -309,7 +307,7 @@
<string name="roaming_reenable_message" msgid="9141007271031717369">"तुम्ही डेटा रोमिंग बंद करून तुमचे होम नेटवर्क सोडल्यामुळे तुम्ही डेटा कनेक्टिव्हिटी गमावली आहे."</string>
<string name="roaming_turn_it_on_button" msgid="4387601818162120589">"हे चालू करा"</string>
<string name="roaming_warning" msgid="4275443317524544705">"आपल्याला बर्याच प्रमाणात शुल्क लागू शकते."</string>
- <string name="roaming_warning_multiuser" product="tablet" msgid="6458990250829214777">"जेव्हा तुम्ही डेटा रोमिंगला अनुमती देता, तेव्हा आपल्याला महत्त्वाचे रोमिंग शुल्क आकारले जाऊ शकते!\n\nही सेटिंग या टॅब्लेटवरील सर्व वापरकर्ते प्रभावित करते."</string>
+ <string name="roaming_warning_multiuser" product="tablet" msgid="6458990250829214777">"जेव्हा तुम्ही डेटा रोमिंगला अनुमती देता, तेव्हा तुम्हाला महत्त्वाचे रोमिंग शुल्क आकारले जाऊ शकते!\n\nही सेटिंग या टॅब्लेटवरील सर्व वापरकर्ते प्रभावित करते."</string>
<string name="roaming_warning_multiuser" product="default" msgid="6368421100292355440">"जेव्हा तुम्ही डेटा रोमिंगला अनुमती देता, तेव्हा आपल्याकडून महत्त्वाचे रोमिंग शुल्क आकारले जाऊ शकते!\n\nही सेटिंग या फोनवरील सर्व वापरकर्ते प्रभावित करते."</string>
<string name="roaming_reenable_title" msgid="6068100976707316772">"डेटा रोमिंगला अनुमती द्यायची?"</string>
<string name="networks" msgid="6333316876545927039">"ऑपरेटर निवड"</string>
@@ -455,7 +453,7 @@
<string name="security_settings_fingerprint_enroll_finish_message" msgid="8970048776120548976">"तुम्हाला हा आयकन दिसल्यावर, ओळख पडताळणीसाठी किंवा खरेदी मंजूर करण्यासाठी तुमचे फिंगरप्रिंट वापरा"</string>
<string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="3710211704052369752">"हे नंतर करा"</string>
<string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"फिंगरप्रिंट सेटअप वगळायचे?"</string>
- <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"तुम्ही तुमचा फोन अनलॉक करण्याची एक पद्धत म्हणून तुम्ही तुमचे फिंगरप्रिंट वापरणे निवडले. आता तुम्ही वगळल्यास, आपल्याला हे नंतर सेट करण्याची आवश्यकता असेल. सेटअपला केवळ एक मिनिट लागेल."</string>
+ <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"तुम्ही तुमचा फोन अनलॉक करण्याची एक पद्धत म्हणून तुम्ही तुमचे फिंगरप्रिंट वापरणे निवडले. आता तुम्ही वगळल्यास, तुम्हाला हे नंतर सेट करण्याची आवश्यकता असेल. सेटअपला केवळ एक मिनिट लागेल."</string>
<string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"स्क्रीन लॉक सेट करा"</string>
<string name="security_settings_fingerprint_enroll_done" msgid="4014607378328187567">"पूर्ण झाले"</string>
<string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="1863561601428695160">"अरेरे, तो सेन्सर नाही"</string>
@@ -489,7 +487,7 @@
<string name="crypt_keeper_low_charge_text" msgid="2029407131227814893">"तुमची बॅटरी चार्ज करा आणि पुन्हा प्रयत्न करा."</string>
<string name="crypt_keeper_unplugged_text" msgid="4785376766063053901">"तुमचा चार्जर प्लग इन करा आणि पुन्हा प्रयत्न करा."</string>
<string name="crypt_keeper_dialog_need_password_title" msgid="4058971800557767">"कोणताही लॉक स्क्रीन पिन किंवा पासवर्ड नाही"</string>
- <string name="crypt_keeper_dialog_need_password_message" msgid="4071395977297369642">"तुम्ही एनक्रिप्शन सुरु करण्यापूर्वी आपल्याला एक लॉक स्क्रीन पिन किंवा पासवर्ड सेट करण्याची आवश्यकता आहे."</string>
+ <string name="crypt_keeper_dialog_need_password_message" msgid="4071395977297369642">"तुम्ही एनक्रिप्शन सुरु करण्यापूर्वी तुम्हाला एक लॉक स्क्रीन पिन किंवा पासवर्ड सेट करण्याची आवश्यकता आहे."</string>
<string name="crypt_keeper_confirm_title" msgid="5100339496381875522">"एंक्रिप्ट करायचे?"</string>
<string name="crypt_keeper_final_desc" product="tablet" msgid="517662068757620756">"एंक्रिप्शन कार्य परत न करता येणारे आहे आणि तुम्ही त्यात व्यत्यय आणल्यास, तुमचा डेटा गमावेल. एंक्रिप्शनला एखादा तास किंवा जास्त वेळ लागतो, यादरम्यान टॅबलेट कित्येक वेळा रीस्टार्ट होईल."</string>
<string name="crypt_keeper_final_desc" product="default" msgid="287503113671320916">"एंक्रिप्शन कार्य परत न करता येणारे आहे आणि तुम्ही त्यात व्यत्यय आणल्यास, तुमचा डेटा गमावेल. एंक्रिप्शनला एखादा तास किंवा जास्त वेळ लागतो, यादरम्यान फोन कित्येक वेळा रीस्टार्ट होईल."</string>
@@ -503,11 +501,11 @@
<string name="crypt_keeper_warn_wipe" msgid="2738374897337991667">"चेतावणी: अनलॉक करण्याच्या आणखी <xliff:g id="COUNT">^1</xliff:g> अयशस्वी प्रयत्नांनंतर तुमचे डिव्हाइस पुसले जाईल."</string>
<string name="crypt_keeper_enter_password" msgid="2223340178473871064">"तुमचा पासवर्ड टाइप करा"</string>
<string name="crypt_keeper_failed_title" msgid="7133499413023075961">"एंक्रिप्शन अयशस्वी"</string>
- <string name="crypt_keeper_failed_summary" product="tablet" msgid="8219375738445017266">"कूटबद्धीकरणात व्यत्यय आला आणि हे पूर्ण होऊ शकत नाही. परिणामस्वरूप, आपल्या टॅबलेटवरील डेटा यापुढे प्रवेशयोग्य राहणार नाही. \n\n तुमचा टॅबलेट वापरून पुन्हा सुरु करण्यासाठी, आपल्याला फॅक्टरी रीसेट करण्याची आवश्यकता आहे. रीसेट केल्यानंतर तुम्ही तुमचा टॅबलेट सेट करता, तेव्हा आपल्याकडे आपल्या Google खात्यावर बॅकअप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
- <string name="crypt_keeper_failed_summary" product="default" msgid="3270131542549577953">"कूटबद्धीकरणात व्यत्यय आला आणि पूर्ण होऊ शकत नाही. परिणामस्वरूप, आपल्या फोनवरील डेटा यापुढे प्रवेशयोग्य नाही.\n\nतुमचा फोन वापरणे पुन्हा सुरु करण्यासाठी, आपल्याला फॅक्टरी रीसेट करण्याची आवश्यकता आहे. रीसेट केल्यानंतर जेव्हा तुम्ही तुमचा फोन सेट करता, तेव्हा आपल्याकडे आपल्या Google खात्यावर बॅकअप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
+ <string name="crypt_keeper_failed_summary" product="tablet" msgid="8219375738445017266">"कूटबद्धीकरणात व्यत्यय आला आणि हे पूर्ण होऊ शकत नाही. परिणामस्वरूप, आपल्या टॅबलेटवरील डेटा यापुढे प्रवेशयोग्य राहणार नाही. \n\n तुमचा टॅबलेट वापरून पुन्हा सुरु करण्यासाठी, तुम्हाला फॅक्टरी रीसेट करण्याची आवश्यकता आहे. रीसेट केल्यानंतर तुम्ही तुमचा टॅबलेट सेट करता, तेव्हा आपल्याकडे आपल्या Google खात्यावर बॅकअप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
+ <string name="crypt_keeper_failed_summary" product="default" msgid="3270131542549577953">"कूटबद्धीकरणात व्यत्यय आला आणि पूर्ण होऊ शकत नाही. परिणामस्वरूप, आपल्या फोनवरील डेटा यापुढे प्रवेशयोग्य नाही.\n\nतुमचा फोन वापरणे पुन्हा सुरु करण्यासाठी, तुम्हाला फॅक्टरी रीसेट करण्याची आवश्यकता आहे. रीसेट केल्यानंतर जेव्हा तुम्ही तुमचा फोन सेट करता, तेव्हा आपल्याकडे आपल्या Google खात्यावर बॅकअप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
<string name="crypt_keeper_data_corrupt_title" msgid="8759119849089795751">"विकूटन अयशस्वी"</string>
- <string name="crypt_keeper_data_corrupt_summary" product="tablet" msgid="840107296925798402">"तुम्ही एंटर केलेला पासवर्ड चुकीचा आहे, परंतु दुर्दैवाने तुमचा डेटा दूषित आहे. \n\nतुमचा टॅबलेट वापरणे पुनः सुरु करण्यासाठी, आपल्याला फॅक्टरी रीसेट करणे आवश्यक आहे. रीसेट केल्यानंतर तुम्ही तुमचा टॅबलेट सेट करता, तेव्हा आपल्याला आपल्या Google खात्यावर बॅक अप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
- <string name="crypt_keeper_data_corrupt_summary" product="default" msgid="8843311420059663824">"तुम्ही एंटर केलेला पासवर्ड बरोबर आहे, परंतु दुर्दैवाने तुमचा डेटा दूषित आहे. \n\nतुमचा फोन वापरणे पुनः सुरु करण्यासाठी, आपल्याला फॅक्टरी रीसेट करणे आवश्यक आहे. रीसेट केल्यानंतर तुम्ही तुमचा फोन सेट करता, तेव्हा आपल्याला आपल्या Google खात्यावर बॅक अप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
+ <string name="crypt_keeper_data_corrupt_summary" product="tablet" msgid="840107296925798402">"तुम्ही एंटर केलेला पासवर्ड चुकीचा आहे, परंतु दुर्दैवाने तुमचा डेटा दूषित आहे. \n\nतुमचा टॅबलेट वापरणे पुनः सुरु करण्यासाठी, तुम्हाला फॅक्टरी रीसेट करणे आवश्यक आहे. रीसेट केल्यानंतर तुम्ही तुमचा टॅबलेट सेट करता, तेव्हा तुम्हाला आपल्या Google खात्यावर बॅक अप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
+ <string name="crypt_keeper_data_corrupt_summary" product="default" msgid="8843311420059663824">"तुम्ही एंटर केलेला पासवर्ड बरोबर आहे, परंतु दुर्दैवाने तुमचा डेटा दूषित आहे. \n\nतुमचा फोन वापरणे पुनः सुरु करण्यासाठी, तुम्हाला फॅक्टरी रीसेट करणे आवश्यक आहे. रीसेट केल्यानंतर तुम्ही तुमचा फोन सेट करता, तेव्हा तुम्हाला आपल्या Google खात्यावर बॅक अप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
<string name="crypt_keeper_switch_input_method" msgid="4168332125223483198">"इनपुट पद्धत स्विच करा"</string>
<string name="suggested_lock_settings_title" msgid="8498743819223200961">"तुमचा फोन सुरक्षित ठेवा"</string>
<string name="suggested_lock_settings_summary" product="tablet" msgid="2296800316150748710">"टॅबलेटचे संरक्षण करण्यासाठी स्क्रीन लॉक सेट करा"</string>
@@ -701,8 +699,8 @@
<string name="bluetooth_enable_alphanumeric_pin" msgid="7222713483058171357">"पिन मध्ये अक्षरे किंवा प्रतीके आहेत"</string>
<string name="bluetooth_pin_values_hint" msgid="3815897557875873646">"सामान्यतः 0000 किंवा 1234"</string>
<string name="bluetooth_pin_values_hint_16_digits" msgid="7849359451584101077">"16 अंक असणे आवश्यक आहे"</string>
- <string name="bluetooth_enter_pin_other_device" msgid="4637977124526813470">"आपल्याला इतर डिव्हाइसवर देखील हा पिन टाईप करण्याची आवश्यकता असू शकते."</string>
- <string name="bluetooth_enter_passkey_other_device" msgid="2798719004030279602">"आपल्याला इतर डिव्हाइसवर देखील ही पासकी टाईप करण्याची आवश्यकता असू शकते."</string>
+ <string name="bluetooth_enter_pin_other_device" msgid="4637977124526813470">"तुम्हाला इतर डिव्हाइसवर देखील हा पिन टाईप करण्याची आवश्यकता असू शकते."</string>
+ <string name="bluetooth_enter_passkey_other_device" msgid="2798719004030279602">"तुम्हाला इतर डिव्हाइसवर देखील ही पासकी टाईप करण्याची आवश्यकता असू शकते."</string>
<string name="bluetooth_confirm_passkey_msg" msgid="3708312912841950052">"यासह जोडण्यासाठी:<br><b><xliff:g id="DEVICE_NAME">%1$s</xliff:g></b><br><br>हे ही पासकी दर्शवत असल्याचे सुनिश्चित करा:<br><b><xliff:g id="PASSKEY">%2$s</xliff:g></b>"</string>
<string name="bluetooth_incoming_pairing_msg" msgid="1615930853859551491">"यावरून:<br><b><xliff:g id="DEVICE_NAME">%1$s</xliff:g></b><br><br>हे डिव्हाइस जोडायचे?"</string>
<string name="bluetooth_display_passkey_pin_msg" msgid="2796550001376088433">"यासह जोडण्यासाठी:<xliff:g id="BOLD1_0"><br><b></xliff:g><xliff:g id="DEVICE_NAME">%1$s</xliff:g><xliff:g id="END_BOLD1"></b><br><br></xliff:g>यावर टाइप करा:<xliff:g id="BOLD2_1"><br><b></xliff:g><xliff:g id="PASSKEY">%2$s</xliff:g><xliff:g id="END_BOLD2"></b></xliff:g>, नंतर Return किंवा Enter दाबा."</string>
@@ -718,7 +716,7 @@
<string name="bluetooth_preference_paired_dialog_keyboard_option" msgid="2271954176947879628">"कीबोर्ड"</string>
<string name="bluetooth_preference_paired_dialog_contacts_option" msgid="7747163316331917594">"संपर्क आणि कॉल इतिहास"</string>
<string name="bluetooth_pairing_dialog_title" msgid="1417255032435317301">"या डिव्हाइसशी जोडायचे?"</string>
- <string name="bluetooth_pairing_dialog_sharing_phonebook_title" msgid="7664141669886358618">"फोन बुक सामायिक करायचे?"</string>
+ <string name="bluetooth_pairing_dialog_sharing_phonebook_title" msgid="7664141669886358618">"फोन बुक शेअर करायचे?"</string>
<string name="bluetooth_pairing_dialog_contants_request" msgid="5531109163573611348">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> आपल्या संपर्कांवर आणि कॉल इतिहासावर प्रवेश करू इच्छित आहे."</string>
<string name="bluetooth_pairing_dialog_paring_request" msgid="8451248193517851958">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ब्लूटूथ सह जोडू इच्छिते. कनेक्ट केले असताना, त्यास आपल्या संपर्कांवर आणि कॉल इतिहासावर अॅक्सेस असेल."</string>
<string name="bluetooth_preference_found_media_devices" msgid="1617401232446299411">"उपलब्ध डिव्हाइस"</string>
@@ -893,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"५.० GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"वाय-फाय हॉटस्पॉटसाठी किमान एक बँड निवडा:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP सेटिंग्ज"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"गोपनीयता"</string>
<string name="wifi_shared" msgid="844142443226926070">"इतर डिव्हाइस वापरकर्त्यांसह शेअर करा"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(न बदललेले)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"कृपया निवडा"</string>
@@ -900,9 +899,9 @@
<string name="wifi_use_system_certs" msgid="5270879895056893783">"सिस्टम प्रमाणपत्रे वापरा"</string>
<string name="wifi_do_not_provide_eap_user_cert" msgid="5160499244977160665">"प्रदान करू नका"</string>
<string name="wifi_do_not_validate_eap_server" msgid="4266754430576348471">"प्रमाणित करू नका"</string>
- <string name="wifi_do_not_validate_eap_server_warning" msgid="1787190245542586660">"कोणतेही प्रमाणपत्र निर्दिष्ट केले नाही. तुमचे कनेक्शन खाजगी होणार नाही."</string>
+ <string name="wifi_do_not_validate_eap_server_warning" msgid="1787190245542586660">"कोणतेही प्रमाणपत्र नमूद केले नाही. तुमचे कनेक्शन खाजगी होणार नाही."</string>
<string name="wifi_ssid_too_long" msgid="3474753269579895244">"नेटवर्कचे नाव फार लांबलचक आहे."</string>
- <string name="wifi_no_domain_warning" msgid="5223011964091727376">"एक डोमेन निर्दिष्ट करणे आवश्यक आहे."</string>
+ <string name="wifi_no_domain_warning" msgid="5223011964091727376">"एक डोमेन नमूद करणे आवश्यक आहे."</string>
<string name="wifi_wps_available_first_item" msgid="4422547079984583502">"WPS उपलब्ध"</string>
<string name="wifi_wps_available_second_item" msgid="8427520131718215301">" (WPS उपलब्ध)"</string>
<string name="wifi_wps_nfc_enter_password" msgid="2288214226916117159">"तुमचा नेटवर्क पासवर्ड एंटर करा"</string>
@@ -1080,8 +1079,8 @@
<string name="dock_audio_summary_none" product="default" msgid="289909253741048784">"फोन डॉक केला नाही"</string>
<string name="dock_audio_summary_unknown" msgid="4465059868974255693">"संलग्न डॉकसाठी सेटिंग्ज"</string>
<string name="dock_not_found_title" msgid="3290961741828952424">"डॉक आढळले नाही"</string>
- <string name="dock_not_found_text" product="tablet" msgid="8405432495282299143">"ऑडिओ डॉक करणे सेट करण्यापूर्वी आपल्याला टॅबलेट डॉक करण्याची आवश्यकता आहे."</string>
- <string name="dock_not_found_text" product="default" msgid="1460497923342627801">"ऑडिओ डॉक करणे सेट करण्यापूर्वी आपल्याला फोन डॉक करण्याची आवश्यकता आहे."</string>
+ <string name="dock_not_found_text" product="tablet" msgid="8405432495282299143">"ऑडिओ डॉक करणे सेट करण्यापूर्वी तुम्हाला टॅबलेट डॉक करण्याची आवश्यकता आहे."</string>
+ <string name="dock_not_found_text" product="default" msgid="1460497923342627801">"ऑडिओ डॉक करणे सेट करण्यापूर्वी तुम्हाला फोन डॉक करण्याची आवश्यकता आहे."</string>
<string name="dock_sounds_enable_title" msgid="885839627097024110">"ध्वनी घाला डॉक"</string>
<string name="dock_sounds_enable_summary_on" product="tablet" msgid="838102386448981339">"डॉकमध्ये टॅबलेट घालताना किंवा त्यातून काढताना ध्वनी प्ले करा"</string>
<string name="dock_sounds_enable_summary_on" product="default" msgid="8491180514199743771">"डॉकवरून फोन घालताना किंवा काढताना ध्वनी प्ले करा"</string>
@@ -1206,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"पिन बदलू शकत नाही.\nकदाचित अयोग्य पिन."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"सिम पिन यशस्वीरित्या बदलला"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"सिम कार्ड लॉक स्थिती बदलू शकत नाही.\nकदाचित अयोग्य पिन."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"पिन बंद करू शकत नाही."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"पिन सुरू करू शकत नाही."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"ठीक"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"रद्द करा"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"एकाधिक सिम आढळली"</string>
@@ -1284,7 +1285,7 @@
<string name="memory_music_usage" msgid="1363785144783011606">"ऑडिओ (संगीत, रिंगटोन, पॉडकास्ट इ.)"</string>
<string name="memory_media_misc_usage" msgid="6094866738586451683">"इतर फायली"</string>
<string name="memory_media_cache_usage" msgid="6704293333141177910">"कॅश केलेला डेटा"</string>
- <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"सामायिक केलेले संचयन अनमाउंट करा"</string>
+ <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"शेअर केलेले संचयन अनमाउंट करा"</string>
<string name="sd_eject" product="default" msgid="6915293408836853020">"SD कार्ड अनमाउंट करा"</string>
<string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"अंतर्गत USB स्टोरेज अनमाउंट करा"</string>
<string name="sd_eject_summary" product="default" msgid="3300599435073550246">"SD कार्ड अनमाउंट करा जेणेकरून तुम्ही ते सुरक्षितपणे काढू शकता"</string>
@@ -1330,9 +1331,9 @@
<string name="storage_title_usb" msgid="679612779321689418">"USB कॉंप्युटर कनेक्शन"</string>
<string name="usb_connection_category" msgid="7805945595165422882">"म्हणून कनेक्ट करा"</string>
<string name="usb_mtp_title" msgid="3399663424394065964">"मीडिया डिव्हाइस (MTP)"</string>
- <string name="usb_mtp_summary" msgid="4617321473211391236">"Windows वरील मीडिया फायली वापरून किंवा Mac वरील Android फाईल स्थानांतरण वापरून आपल्याला मीडिया फायली स्थानांतरण करू देते (www.android.com/filetransfer पहा)"</string>
+ <string name="usb_mtp_summary" msgid="4617321473211391236">"Windows वरील मीडिया फायली वापरून किंवा Mac वरील Android फाईल स्थानांतरण वापरून तुम्हाला मीडिया फायली स्थानांतरण करू देते (www.android.com/filetransfer पहा)"</string>
<string name="usb_ptp_title" msgid="3852760810622389620">"कॅमेरा (PTP)"</string>
- <string name="usb_ptp_summary" msgid="7406889433172511530">"आपल्याला कॅमेरा सॉफ्टवेअर वापरून फोटो स्थानांतर आणि MTP वर समर्थित नसलेल्या संगणकावर कोणत्याही फायली स्थानांतर करू देते"</string>
+ <string name="usb_ptp_summary" msgid="7406889433172511530">"तुम्हाला कॅमेरा सॉफ्टवेअर वापरून फोटो स्थानांतर आणि MTP वर समर्थित नसलेल्या संगणकावर कोणत्याही फायली स्थानांतर करू देते"</string>
<string name="usb_midi_title" msgid="3069990264258413994">"MIDI"</string>
<string name="usb_midi_summary" msgid="539169474810956358">"MIDI सक्षम असलेल्या अनुप्रयोगांना आपल्या संगणकावर MIDI सॉफ्टवेअरसह USB वर कार्य करू द्या."</string>
<string name="storage_other_users" msgid="808708845102611856">"इतर वापरकर्ते"</string>
@@ -1493,8 +1494,8 @@
<string name="reset_esim_error_msg" msgid="8434956817922668388">"एका एररमुळे eSIM रीसेट करता येणार नाहीत."</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="9146059417023157222">"हे आपल्या टॅब्लेटच्या "<b>"अंतर्गत संचयना"</b>" वरील सर्व डेटा मिटवेल, यासह:\n\n"<li>"तुमचे Google खाते"</li>\n<li>"सिस्टम आणि अॅप डेटा आणि सेटिंग्ज"</li>\n<li>"डाउनलोड केलेले अॅप्स"</li></string>
- <string name="master_clear_desc" product="default" msgid="4800386183314202571">"हे तुमच्या फोनच्या "<b>"अंतर्गत स्टोरेज"</b>" वरील सर्व डेटा मिटवेल, यासह:\n\n"<li>"तुमचे Google खाते"</li>\n<li>"सिस्टम आणि अॅप डेटा आणि सेटिंग्ज"</li>\n<li>"डाउनलोड केलेले अॅप्स"</li></string>
+ <string name="master_clear_desc" product="tablet" msgid="9146059417023157222">"हे आपल्या टॅब्लेटच्या "<b>"अंतर्गत संचयना"</b>" वरील सर्व डेटा मिटवेल, यासह:\n\n"<li>"तुमचे Google खाते"</li>\n<li>"सिस्टम आणि अॅप डेटा आणि सेटिंग्ज"</li>\n<li>"डाउनलोड केलेली अॅप्स"</li></string>
+ <string name="master_clear_desc" product="default" msgid="4800386183314202571">"हे तुमच्या फोनच्या "<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>
<string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"संगीत"</li>\n<li>"फोटो"</li>\n<li>"अन्य वापरकर्ता डेटा"</li></string>
@@ -1511,7 +1512,7 @@
<string name="erase_esim_storage_description" product="tablet" msgid="1780953956941209107">"टॅबलेटवरील सर्व eSIM मिटवा. यामुळे तुमचा मोबाइल सेवा प्लॅन रद्द होणार नाही."</string>
<string name="master_clear_button_text" product="tablet" msgid="3130786116528304116">"टॅबलेट रीसेट करा"</string>
<string name="master_clear_button_text" product="default" msgid="7550632653343157971">"फोन रीसेट करा"</string>
- <string name="master_clear_final_desc" msgid="7318683914280403086">"तुमची सर्व वैयक्तिक माहिती आणि डाउनलोड केलेले अॅप्स मिटवायचे? तुम्ही ही क्रिया पूर्ववत करू शकत नाही!"</string>
+ <string name="master_clear_final_desc" msgid="7318683914280403086">"तुमची सर्व वैयक्तिक माहिती आणि डाउनलोड केलेली अॅप्स मिटवायचे? तुम्ही ही क्रिया पूर्ववत करू शकत नाही!"</string>
<string name="master_clear_final_button_text" msgid="5390908019019242910">"प्रत्येकगोष्ट मिटवा"</string>
<string name="master_clear_failed" msgid="2503230016394586353">"सिस्टम साफ करा सेवा उपलब्ध नसल्यामुळे कोणतेही रीसेट केले नाही."</string>
<string name="master_clear_confirm_title" msgid="7572642091599403668">"रीसेट करायचे?"</string>
@@ -2652,7 +2653,7 @@
<string name="vpn_mppe" msgid="6639001940500288972">"PPP एंक्रिप्शन (MPPE)"</string>
<string name="vpn_l2tp_secret" msgid="529359749677142076">"L2TP गुपीत"</string>
<string name="vpn_ipsec_identifier" msgid="4098175859460006296">"IPSec ओळखकर्ता"</string>
- <string name="vpn_ipsec_secret" msgid="4526453255704888704">"IPSec पूर्व-सामायिक की"</string>
+ <string name="vpn_ipsec_secret" msgid="4526453255704888704">"IPSec पूर्व-शेअर की"</string>
<string name="vpn_ipsec_user_cert" msgid="6880651510020187230">"IPSec वापरकर्ता प्रमाणपत्र"</string>
<string name="vpn_ipsec_ca_cert" msgid="91338213449148229">"IPSec CA प्रमाणपत्र"</string>
<string name="vpn_ipsec_server_cert" msgid="6599276718456935010">"IPSec सर्व्हर प्रमाणपत्र"</string>
@@ -2668,7 +2669,7 @@
<string name="vpn_no_server_cert" msgid="2167487440231913330">"(सर्व्हरवरुन प्राप्त झालेले)"</string>
<string name="vpn_always_on_invalid_reason_type" msgid="7574518311224455825">"हा VPN प्रकार सर्व वेळी कनेक्ट केलेला राहू शकत नाही"</string>
<string name="vpn_always_on_invalid_reason_server" msgid="477304620899799383">"नेहमी-चालू VPN केवळ अंकीय सर्व्हर पत्त्यांना समर्थित करतात"</string>
- <string name="vpn_always_on_invalid_reason_no_dns" msgid="2226648961940273294">"नेहमी-चालू VPN साठी DNS सर्व्हर निर्दिष्ट करणे आवश्यक आहे"</string>
+ <string name="vpn_always_on_invalid_reason_no_dns" msgid="2226648961940273294">"नेहमी-चालू VPN साठी DNS सर्व्हर नमूद करणे आवश्यक आहे"</string>
<string name="vpn_always_on_invalid_reason_dns" msgid="3551394495620249972">"नेहमी-चालू VPN साठी DNS सर्व्हर पत्ते अंकीय असणे आवश्यक आहे"</string>
<string name="vpn_always_on_invalid_reason_other" msgid="5959352052515258208">"एंटर केलेली माहिती नेहमी-चालू VPN ला समर्थित करत नाही"</string>
<string name="vpn_cancel" msgid="1979937976123659332">"रद्द करा"</string>
@@ -2761,7 +2762,7 @@
<string name="user_add_user_or_profile_menu" msgid="6923838875175259418">"वापरकर्ता किंवा प्रोफाइल जोडा"</string>
<string name="user_add_user_menu" msgid="1675956975014862382">"वापरकर्ता जोडा"</string>
<string name="user_summary_restricted_profile" msgid="6354966213806839107">"प्रतिबंधित प्रोफाईल"</string>
- <string name="user_need_lock_message" msgid="5879715064416886811">"तुम्ही एक प्रतिबंधित प्रोफाईल तयार करु शकण्यापूर्वी आपल्याला तुमचे अॅप्स आणि वैयक्तिक डेटा संरक्षित करण्यासाठी एक स्क्रीन लॉक सेट करण्याची आवश्यकता राहील."</string>
+ <string name="user_need_lock_message" msgid="5879715064416886811">"तुम्ही एक प्रतिबंधित प्रोफाईल तयार करु शकण्यापूर्वी तुम्हाला तुमचे अॅप्स आणि वैयक्तिक डेटा संरक्षित करण्यासाठी एक स्क्रीन लॉक सेट करण्याची आवश्यकता राहील."</string>
<string name="user_set_lock_button" msgid="8311219392856626841">"लॉक सेट करा"</string>
<string name="user_summary_not_set_up" msgid="8778205026866794909">"सेट केलेले नाही"</string>
<string name="user_summary_restricted_not_set_up" msgid="1628116001964325544">"सेट केलेले नाही - प्रतिबंधित प्रोफाईल"</string>
@@ -2812,7 +2813,7 @@
<string name="user_enable_calling_sms" msgid="9172507088023097063">"फोन कॉल आणि SMS चालू करा"</string>
<string name="user_remove_user" msgid="6490483480937295389">"वापरकर्ता काढा"</string>
<string name="user_enable_calling_confirm_title" msgid="4315789475268695378">"फोन कॉल चालू करायचे?"</string>
- <string name="user_enable_calling_confirm_message" msgid="8061594235219352787">"या वापरकर्त्याशी कॉल इतिहास सामायिक केला जाईल."</string>
+ <string name="user_enable_calling_confirm_message" msgid="8061594235219352787">"या वापरकर्त्याशी कॉल इतिहास शेअर केला जाईल."</string>
<string name="user_enable_calling_and_sms_confirm_title" msgid="7243308401401932681">"फोन कॉल आणि SMS चालू करायचे?"</string>
<string name="user_enable_calling_and_sms_confirm_message" msgid="4025082715546544967">"या वापरकर्त्याशी कॉल आणि SMS इतिहास शेअर केला जाईल."</string>
<string name="emergency_info_title" msgid="208607506217060337">"आणीबाणी माहिती"</string>
@@ -2830,13 +2831,13 @@
<string name="nfc_payment_favor_default" msgid="5743781166099608372">"नेहमी"</string>
<string name="nfc_payment_favor_open" msgid="1923314062109977944">"दुसरा पेमेंट अॅप खुला असतो तेव्हा त्यास वगळून"</string>
<string name="nfc_payment_pay_with" msgid="7524904024378144072">"टॅप आणि पे टर्मिनलवर, यासह पे करा:"</string>
- <string name="nfc_how_it_works_title" msgid="1984068457698797207">"टर्मिनलवर देय द्या"</string>
+ <string name="nfc_how_it_works_title" msgid="1984068457698797207">"टर्मिनलवर पेमेंट करा"</string>
<string name="nfc_how_it_works_content" msgid="4749007806393224934">"पेमेंट अॅप सेट करा. त्यानंतर संपर्करहित आयकन असलेल्या कोणत्याही टर्मिनलवर आपल्या फोनची मागील बाजू धरा."</string>
<string name="nfc_how_it_works_got_it" msgid="259653300203217402">"समजले"</string>
<string name="nfc_more_title" msgid="815910943655133280">"आणखी..."</string>
<string name="nfc_payment_set_default_label" msgid="7315817259485674542">"तुमचे प्राधान्य म्हणून सेट करायचे?"</string>
- <string name="nfc_payment_set_default" msgid="8532426406310833489">"तुम्ही टॅप करता आणि देय देता तेव्हा नेहमी <xliff:g id="APP">%1$s</xliff:g> वापरायचे?"</string>
- <string name="nfc_payment_set_default_instead_of" msgid="6993301165940432743">"तुम्ही टॅप करता आणि देय देता तेव्हा <xliff:g id="APP_1">%2$s</xliff:g> ऐवजी नेहमी <xliff:g id="APP_0">%1$s</xliff:g> वापरायचे?"</string>
+ <string name="nfc_payment_set_default" msgid="8532426406310833489">"तुम्ही टॅप करता आणि पेमेंट देता तेव्हा नेहमी <xliff:g id="APP">%1$s</xliff:g> वापरायचे?"</string>
+ <string name="nfc_payment_set_default_instead_of" msgid="6993301165940432743">"तुम्ही टॅप करता आणि पेमेंट देता तेव्हा <xliff:g id="APP_1">%2$s</xliff:g> ऐवजी नेहमी <xliff:g id="APP_0">%1$s</xliff:g> वापरायचे?"</string>
<string name="restriction_settings_title" msgid="4233515503765879736">"निर्बंध"</string>
<string name="restriction_menu_reset" msgid="2067644523489568173">"प्रतिबंध काढून टाका"</string>
<string name="restriction_menu_change_pin" msgid="740081584044302775">"पिन बदला"</string>
@@ -2933,7 +2934,6 @@
<item quantity="one">%d लपविलेला आयटम दर्शवा</item>
<item quantity="other">%d लपविलेले आयटम दर्शवा</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"कोलॅप्स"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"नेटवर्क आणि इंटरनेट"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"मोबाइल"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"डेटा वापर"</string>
@@ -2992,7 +2992,7 @@
<string name="keywords_profile_challenge" msgid="789611397846512845">"कार्य आव्हान, कार्य, प्रोफाईल"</string>
<string name="keywords_unification" msgid="1922900767659821025">"कार्य प्रोफाईल, व्यवस्थापित केलेले प्रोफाईल, एकीकरण, एकीकरण करणे, कार्य, प्रोफाईल"</string>
<string name="keywords_gesture" msgid="3526905012224714078">"जेश्चर"</string>
- <string name="keywords_payment_settings" msgid="5220104934130446416">"देय द्या, टॅप करा, पेमेंट"</string>
+ <string name="keywords_payment_settings" msgid="5220104934130446416">"पेमेंट करा, टॅप करा, पेमेंट"</string>
<string name="keywords_backup" msgid="470070289135403022">"बॅकअप, बॅक अप"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"जेश्चर"</string>
<string name="keywords_face_unlock" msgid="254144854349092754">"चेहरा, अनलॉक, प्रमाणीकरण, साइन इन"</string>
@@ -3003,6 +3003,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"गडद थीम"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"बग"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"अँबियन्ट डिस्प्ले, लॉक स्क्रीन डिस्प्ले"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"लॉक स्क्रीन सूचना"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"चेहरा"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"फिंगरप्रिंट"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"मंद स्क्रीन, टचस्क्रीन, बॅटरी, स्मार्ट ब्राइटनेस, डायनॅमिक ब्राइटनेस"</string>
@@ -3245,7 +3246,7 @@
<string name="display_vr_pref_low_persistence" msgid="5707494209944718537">"अस्पष्टता कमी करा (शिफारस केलेले)"</string>
<string name="display_vr_pref_off" msgid="2190091757123260989">"फ्लिकर कमी करा"</string>
<string name="picture_in_picture_title" msgid="5824849294270017113">"चित्रा-मध्ये-चित्र"</string>
- <string name="picture_in_picture_empty_text" msgid="685224245260197779">"कोणतेही इंस्टॉल केलेले अॅप्स चित्रा मध्ये चित्रचे समर्थन करत नाहीत"</string>
+ <string name="picture_in_picture_empty_text" msgid="685224245260197779">"कोणतेही इंस्टॉल केलेली अॅप्स चित्रा मध्ये चित्रचे समर्थन करत नाहीत"</string>
<string name="picture_in_picture_keywords" msgid="8361318686701764690">"चि. म. चि. चित्रामध्ये"</string>
<string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"चित्रा मध्ये चित्र"</string>
<string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"चित्रामध्ये चित्राची अनुमती द्या"</string>
@@ -3439,10 +3440,10 @@
<string name="imei_information_summary" msgid="2074095606556565233">"IMEI सापेक्ष माहिती"</string>
<string name="slot_number" msgid="3762676044904653577">"(स्लॉट<xliff:g id="SLOT_NUM">%1$d</xliff:g>)"</string>
<string name="launch_by_default" msgid="1840761193189009248">"डीफॉल्टनुसार उघडा"</string>
- <string name="app_launch_domain_links_title" msgid="1160925981363706090">"उघडणारे दुवे"</string>
- <string name="app_launch_open_domain_urls_title" msgid="8914721351596745701">"समर्थित दुवे उघडा"</string>
+ <string name="app_launch_domain_links_title" msgid="1160925981363706090">"उघडणारे लिंक"</string>
+ <string name="app_launch_open_domain_urls_title" msgid="8914721351596745701">"समर्थित लिंक उघडा"</string>
<string name="app_launch_open_domain_urls_summary" msgid="5367573364240712217">"न विचारता उघडा"</string>
- <string name="app_launch_supported_domain_urls_title" msgid="8250695258211477480">"समर्थित दुवे"</string>
+ <string name="app_launch_supported_domain_urls_title" msgid="8250695258211477480">"समर्थित लिंक"</string>
<string name="app_launch_other_defaults_title" msgid="2516812499807835178">"इतर डीफॉल्ट"</string>
<string name="storage_summary_format" msgid="5419902362347539755">"<xliff:g id="STORAGE_TYPE">%2$s</xliff:g> मध्ये <xliff:g id="SIZE">%1$s</xliff:g> वापरले"</string>
<string name="storage_type_internal" msgid="6042049833565674948">"अंतर्गत स्टोरेज"</string>
@@ -3483,7 +3484,7 @@
<string name="runtime_permissions_summary_no_permissions_granted" msgid="1679758182657005375">"कोणत्याही परवानग्यांना मंजूरी दिली नाही"</string>
<string name="runtime_permissions_summary_no_permissions_requested" msgid="7655100570513818534">"कोणत्याही परवानग्यांची विनंती केली नाही"</string>
<string name="filter_all_apps" msgid="1988403195820688644">"सर्व अॅप्स"</string>
- <string name="filter_enabled_apps" msgid="5395727306799456250">"इंस्टॉल केलेले अॅप्स"</string>
+ <string name="filter_enabled_apps" msgid="5395727306799456250">"इंस्टॉल केलेली अॅप्स"</string>
<string name="filter_instant_apps" msgid="574277769963965565">"इन्स्टंट अॅप्स"</string>
<string name="filter_personal_apps" msgid="3277727374174355971">"वैयक्तिक"</string>
<string name="filter_work_apps" msgid="24519936790795574">"कार्य"</string>
@@ -3500,14 +3501,14 @@
<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="domain_urls_title" msgid="3132983644568821250">"उघडणारे दुवे"</string>
- <string name="domain_urls_summary_none" msgid="2639588015479657864">"समर्थित दुवे उघडू नका"</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>
<string name="domain_urls_summary_some" msgid="3950089361819428455">"<xliff:g id="DOMAIN">%s</xliff:g>आणि अन्य URL उघडा"</string>
- <string name="domain_urls_apps_summary_off" msgid="1833056772600031220">"कोणतेही अॅप समर्थित दुवे उघडू शकत नाहीत"</string>
+ <string name="domain_urls_apps_summary_off" msgid="1833056772600031220">"कोणतेही अॅप समर्थित लिंक उघडू शकत नाहीत"</string>
<plurals name="domain_urls_apps_summary_on" formatted="false" msgid="240214361240709399">
- <item quantity="one">समर्थित दुवे उघडणारे <xliff:g id="COUNT">%d</xliff:g> अॅप</item>
- <item quantity="other">समर्थित दुवे उघडणारी <xliff:g id="COUNT">%d</xliff:g> अॅप्स</item>
+ <item quantity="one">समर्थित लिंक उघडणारे <xliff:g id="COUNT">%d</xliff:g> अॅप</item>
+ <item quantity="other">समर्थित लिंक उघडणारी <xliff:g id="COUNT">%d</xliff:g> अॅप्स</item>
</plurals>
<string name="app_link_open_always" msgid="2474058700623948148">"हा अॅप उघडा"</string>
<string name="app_link_open_ask" msgid="7800878430190575991">"प्रत्येक वेळी विचारा"</string>
@@ -3572,7 +3573,7 @@
<string name="additional_permissions" msgid="6463784193877056080">"अतिरिक्त परवानग्या"</string>
<string name="additional_permissions_more" msgid="3538612272673191451">"<xliff:g id="COUNT">%1$d</xliff:g> अधिक"</string>
<string name="share_remote_bugreport_dialog_title" msgid="1124840737776588602">"बग रीपोर्ट शेअर करायचा?"</string>
- <string name="share_remote_bugreport_dialog_message_finished" msgid="4973886976504823801">"आपल्या IT प्रशासकाने या डिव्हाइसच्या समस्येचे निवारण करण्यात मदत करण्यासाठी दोष अहवालाची विनंती केली. अॅप्स आणि डेटा सामायिक केले जाऊ शकतात."</string>
+ <string name="share_remote_bugreport_dialog_message_finished" msgid="4973886976504823801">"आपल्या IT प्रशासकाने या डिव्हाइसच्या समस्येचे निवारण करण्यात मदत करण्यासाठी दोष अहवालाची विनंती केली. अॅप्स आणि डेटा शेअर केले जाऊ शकतात."</string>
<string name="share_remote_bugreport_dialog_message" msgid="3495929560689435496">"तुमच्या IT प्रशासकाने या डिव्हाइस च्या समस्येचे निवारण करण्यात मदत करण्यासाठी एका दोष अहवालाची विनंती केली. अॅप्स आणि डेटा शेअर केले जाऊ शकतात आणि तुमचे डिव्हाइस तात्पुरते धीमे होऊ शकते."</string>
<string name="sharing_remote_bugreport_dialog_message" msgid="5859287696666024466">"हा बग रीपोर्ट आपल्या IT प्रशासकासह शेअर केला जात आहे. अधिक तपशीलांसाठी त्यांच्याशी संपर्क साधा."</string>
<string name="share_remote_bugreport_action" msgid="532226159318779397">"शेअर करा"</string>
@@ -3615,7 +3616,7 @@
<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>
+ <string name="assist_footer" msgid="1982791172085896864">"साहाय्यक अॅप्स तुम्ही पाहत असलेल्या स्क्रीनवरील माहितीच्या आधारावर तुम्हाला मदत करू शकतात. काही अॅप्स तुम्हाला एकत्रित सहाय्य देण्यासाठी लॉन्चर आणि व्हॉइस इनपुट सेवा दोघांना समर्थन देतात."</string>
<string name="average_memory_use" msgid="829566450150198512">"सरासरी मेमरी वापर"</string>
<string name="maximum_memory_use" msgid="7493720799710132496">"कमाल मेमरी वापर"</string>
<string name="memory_usage" msgid="1781358557214390033">"मेमरी वापर"</string>
@@ -3712,6 +3713,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"अंतर्गत स्टोरेज: <xliff:g id="PERCENTAGE">%1$s</xliff:g> वापरले - <xliff:g id="FREE_SPACE">%2$s</xliff:g> मोकळे"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> च्या निष्क्रियतेनंतर निष्क्रिय करा"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"वॉलपेपर, निष्क्रिय करा, फॉंट आकार"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<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>
@@ -3761,7 +3764,7 @@
<string name="night_display_suggestion_title" msgid="6602129097059325291">"रात्रीच्या प्रकाशाचे वेळापत्रक सेट करा"</string>
<string name="night_display_suggestion_summary" msgid="228346372178218442">"दररोज रात्री स्क्रीन आपोआप टिंट करा"</string>
<string name="condition_night_display_title" msgid="5599814941976856183">"रात्रीचा प्रकाश चालू आहे"</string>
- <string name="condition_night_display_summary" msgid="5443722724310650381">"स्क्रीनची रंगछटा पिवळसर तपकिरी आहे. यामुळे आपल्याला झोप येण्यात मदत होईल."</string>
+ <string name="condition_night_display_summary" msgid="5443722724310650381">"स्क्रीनची रंगछटा पिवळसर तपकिरी आहे. यामुळे तुम्हाला झोप येण्यात मदत होईल."</string>
<string name="suggestions_title_v2" msgid="5601181602924147569">"तुमच्यासाठी सुचवलेले"</string>
<string name="suggestions_title" msgid="7280792342273268377">"सूचना"</string>
<string name="suggestions_summary" msgid="2509040178581728056">"+<xliff:g id="ID_1">%1$d</xliff:g>"</string>
@@ -3875,7 +3878,7 @@
<string name="notification_log_details_badge" msgid="3258183328267662285">"बॅज दर्शवू शकता"</string>
<string name="notification_log_details_content_intent" msgid="1113554570409128083">"हेतू"</string>
<string name="notification_log_details_delete_intent" msgid="905118520685297007">"हेतू हटवा"</string>
- <string name="notification_log_details_full_screen_intent" msgid="7118560817013522978">"पूर्ण स्क्रीन हेतू"</string>
+ <string name="notification_log_details_full_screen_intent" msgid="7118560817013522978">"फुल स्क्रीन हेतू"</string>
<string name="notification_log_details_actions" msgid="242523930165118066">"कृती:"</string>
<string name="notification_log_details_title" msgid="7177091647508863295">"शीर्षक"</string>
<string name="notification_log_details_remoteinput" msgid="8328591329858827409">"दूरस्थ इनपुट"</string>
@@ -3984,10 +3987,10 @@
<string name="oem_lock_info_message" msgid="9218313722236417510">"डिव्हाइस संरक्षण वैशिष्ट्य सुरू करण्यासाठी कृपया डिव्हाइस रीस्टार्ट करा."</string>
<string name="automatic_storage_manager_freed_bytes" msgid="7517560170441007788">"एकूण <xliff:g id="SIZE">%1$s</xliff:g> उपलब्ध केली \n\n<xliff:g id="DATE">%2$s</xliff:g> रोजी अंतिम चालविले"</string>
<string name="web_action_enable_title" msgid="4051513950976670853">"इन्स्टंट अॅप्स"</string>
- <string name="web_action_enable_summary" msgid="3108127559723396382">"अॅप्समध्ये दुवे उघडा, ते इंस्टॉल केलेले नसले तरीही"</string>
+ <string name="web_action_enable_summary" msgid="3108127559723396382">"अॅप्समध्ये लिंक उघडा, ते इंस्टॉल केलेले नसले तरीही"</string>
<string name="web_action_section_title" msgid="7364647086538399136">"इन्स्टंट अॅप्स"</string>
<string name="instant_apps_settings" msgid="8827777916518348213">"इंस्टंट अॅप्स प्राधान्ये"</string>
- <string name="domain_url_section_title" msgid="7046835219056428883">"इंस्टॉल केलेले अॅप्स"</string>
+ <string name="domain_url_section_title" msgid="7046835219056428883">"इंस्टॉल केलेली अॅप्स"</string>
<string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"तुमचा स्टोरेज आता स्टोरेज व्यवस्थापक व्यवस्थापित करत आहे"</string>
<string name="account_for_section_header" msgid="5356566418548737121">"<xliff:g id="USER_NAME">%1$s</xliff:g> साठी खाती"</string>
<string name="configure_section_header" msgid="7391183586410814450">"कॉन्फिगर करा"</string>
@@ -4013,7 +4016,7 @@
<string name="enterprise_privacy_bug_reports" msgid="843225086779037863">"सर्वात अलीकडील बग रीपोर्ट"</string>
<string name="enterprise_privacy_security_logs" msgid="5377362481617301074">"सर्वात अलीकडील सुरक्षा लॉग"</string>
<string name="enterprise_privacy_none" msgid="7706621148858381189">"काहीही नाही"</string>
- <string name="enterprise_privacy_enterprise_installed_packages" msgid="6353757812144878828">"इंस्टॉल केलेले अॅप्स"</string>
+ <string name="enterprise_privacy_enterprise_installed_packages" msgid="6353757812144878828">"इंस्टॉल केलेली अॅप्स"</string>
<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="one">किमान <xliff:g id="COUNT_1">%d</xliff:g> अॅप</item>
@@ -4078,7 +4081,7 @@
<string name="storage_volume_total" msgid="3499221850532701342">"<xliff:g id="TOTAL">%1$s</xliff:g> पैकी वापरले"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"वापरलेली"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"अॅप साफ करा"</string>
- <string name="clear_instant_app_confirmation" msgid="7451671214898856857">"आपल्याला हे इन्स्टंट अॅप काढायचे आहे का?"</string>
+ <string name="clear_instant_app_confirmation" msgid="7451671214898856857">"तुम्हाला हे इन्स्टंट अॅप काढायचे आहे का?"</string>
<string name="launch_instant_app" msgid="391581144859010499">"उघडा"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"गेम"</string>
<string name="audio_files_title" msgid="4777048870657911307">"ऑडिओ फायली"</string>
@@ -4156,10 +4159,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"नेटवर्क तपशील"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"तुमचे डिव्हाइस नाव तुमच्या फोनवरील अॅप्सना दृश्यमान आहे. तुम्ही ब्लूटूथ डिव्हाइसशी जोडता किंवा वाय-फाय हॉटस्पॉट सेट करता, तेव्हा हे इतर लोकांद्वारे देखील बघितले जाऊ शकते."</string>
<string name="devices_title" msgid="7701726109334110391">"डिव्हाइस"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"उच्च अचूकता पॅनल"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"व्हर्च्युअल उच्च अचूकता पॅनल सुरू करा"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"सर्व सेटिंग्ज"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"तुमच्या सेटिंग्ज"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"सूचना"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS डेटा"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS डेटा"</string>
<string name="choose_network_title" msgid="5702586742615861037">"नेटवर्क निवडा"</string>
@@ -4171,4 +4172,70 @@
<string name="network_query_error" msgid="7487714485362598410">"नेटवर्क मिळू शकले नाहीत. पुन्हा प्रयत्न करा."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(मनाई केलेले)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"सिम कार्ड नाही"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"प्रगत कॉलिंग"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"प्राधान्यकृत नेटवर्क मोड: WCDMA प्राधान्यकृत"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"प्राधान्यकृत नेटवर्क मोड: केवळ GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"प्राधान्यकृत नेटवर्क प्रकार: केवळ WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"प्राधान्यकृत नेटवर्क मोड: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"प्राधान्यकृत नेटवर्क मोड: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"प्राधान्यकृत नेटवर्क मोड: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"प्राधान्यकृत नेटवर्क मोड: केवळ CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"प्राधान्यकृत नेटवर्क मोड: केवळ EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"प्राधान्यकृत नेटवर्क मोड: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"प्राधान्यकृत नेटवर्क मोड: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"प्राधान्यकृत नेटवर्क मोड: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"प्राधान्यकृत नेटवर्क मोड: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"प्राधान्यकृत नेटवर्क मोड: जागतिक"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"प्राधान्यकृत नेटवर्क मोड: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"प्राधान्यकृत नेटवर्क मोड: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"प्राधान्यकृत नेटवर्क मोड: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"प्राधान्यकृत नेटवर्क मोड: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"प्राधान्यकृत नेटवर्क मोड: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"प्राधान्यकृत नेटवर्क मोड: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"प्राधान्यकृत नेटवर्क मोड: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"प्राधान्यकृत नेटवर्क मोड: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"प्राधान्यकृत नेटवर्क मोड: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"प्राधान्यकृत नेटवर्क मोड: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"प्राधान्यकृत नेटवर्क मोड: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"प्राधान्यकृत नेटवर्क मोड: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"प्राधान्यकृत नेटवर्क मोड: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (शिफारस केलेले)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (शिफारस केलेले)"</string>
+ <string name="network_global" msgid="959947774831178632">"जागतिक"</string>
+ <string name="label_available" msgid="1731547832803057893">"उपलब्ध नेटवर्क"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"शोधत आहे…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> वर नोंदणी करत आहे…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"तुमचे सिम कार्ड या नेटवर्कच्या कनेक्शनला अनुमती देत नाही."</string>
+ <string name="connect_later" msgid="978991102125216741">"आत्ता या नेटवर्कशी कनेक्ट करू शकत नाही. नंतर पुन्हा प्रयत्न करा."</string>
+ <string name="registration_done" msgid="4573820010512184521">"नेटवर्कवर नोंदणी केली."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"आपोआप नेटवर्क निवडायचे का"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"वाहक सेटिंग्ज"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"डेटा सेवा सेट करा"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"मोबाइल डेटा"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"मोबाइल नेटवर्क वापरून डेटा अॅक्सेस करा"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"प्राधान्यकृत नेटवर्क प्रकार"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"नेटवर्क कार्य करण्याचा मोड बदला"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"प्राधान्यकृत नेटवर्क प्रकार"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"वाहक"</string>
+ <string name="call_category" msgid="8108654745239563833">"कॉलिंग"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"वाहक व्हिडिओ कॉलिंग"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"सिस्टम निवडा"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA रोमिंग मोड बदला"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"सिस्टम निवडा"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"नेटवर्क"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"नेटवर्क"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA सदस्यत्व"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/सिम आणि NV मध्ये बदला"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"सदस्यत्व"</string>
+ <string name="register_automatically" msgid="518185886971595020">"आपोआप नोंदणी…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"डेटा रोमिंगला अनुमती द्यायची का?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"किमतींबद्दल तुमच्या नेटवर्क पुरवठादाराला विचारा."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"अॅप डेटा वापर"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"चुकीचा नेटवर्क मोड <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. दुर्लक्ष करा."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g>शी कनेक्ट केले असल्यास उपलब्ध नाही"</string>
+ <string name="see_more" msgid="5953815986207345223">"आणखी पाहा"</string>
+ <string name="see_less" msgid="1250265310929558370">"कमी पहा"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-ms/arrays.xml b/res/values-ms/arrays.xml
index 51c3eee..547b7e8 100644
--- a/res/values-ms/arrays.xml
+++ b/res/values-ms/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Anggap sebagai bermeter"</item>
<item msgid="2266114985518865625">"Anggap sebagai tidak bermeter"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Lalai (gunakan MAC terawak)"</item>
+ <item msgid="5398461510512959597">"Dipercayai"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Tidak"</item>
<item msgid="3863157480502955888">"Ya"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Nyahpepijat"</item>
<item msgid="5286514712714822064">"Berjela-jela"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Rumah sahaja"</item>
+ <item msgid="5034813753274486448">"Automatik"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA diutamakan"</item>
+ <item msgid="807926878589867564">"GSM sahaja"</item>
+ <item msgid="488474605709912156">"WCDMA sahaja"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA auto"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo auto"</item>
+ <item msgid="370391313511477301">"CDMA tanpa EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo sahaja"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA sahaja"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index c326d68..f98f513 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Buat"</string>
<string name="allow" msgid="3349662621170855910">"Benarkan"</string>
<string name="deny" msgid="6947806159746484865">"Nafikan"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Tutup"</string>
<string name="device_info_default" msgid="7847265875578739287">"Tidak diketahui"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Anda kini <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> langkah daripada menjadi pembangun.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Pilih sekurang-kurangnya satu jalur untuk tempat liputan Wi-Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Tetapan IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privasi"</string>
<string name="wifi_shared" msgid="844142443226926070">"Kongsi dengan pengguna peranti yang lain"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(tidak berubah)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Sila pilih"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Tidak boleh menukar PIN.\nBerkemungkinan PIN salah."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN SIM berjaya ditukar"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Tidak boleh menukar keadaan kunci kad SIM.\nMungkin PIN salah."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Tidak dapat melumpuhkan PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Tidak dapat mendayakan PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Batal"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Berbilang SIM ditemui"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Tunjukkan %d item yang tersembunyi</item>
<item quantity="one">Tunjukkan %d item yang tersembunyi</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Runtuhkan"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Rangkaian & Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mudah alih"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"penggunaan data"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tema gelap"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"pepijat"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Paparan ambien, Paparan skrin kunci"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"pemberitahuan skrin kunci"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"wajah"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"cap jari"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"malapkan skrin, skrin sentuh, bateri, kecerahan pintar, kecerahan dinamik"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Storan dalaman: <xliff:g id="PERCENTAGE">%1$s</xliff:g> digunakan - <xliff:g id="FREE_SPACE">%2$s</xliff:g> kosong"</string>
<string name="display_summary" msgid="6737806235882127328">"Tidur selepas <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> tanpa aktiviti"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Kertas dinding, tidur, saiz fon"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Tidur selepas 10 minit tidak aktif"</string>
<string name="memory_summary" msgid="8080825904671961872">"Purata <xliff:g id="USED_MEMORY">%1$s</xliff:g> daripada <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memori digunakan"</string>
<string name="users_summary" msgid="1674864467098487328">"Dilog masuk sebagai <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Butiran rangkaian"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Nama peranti anda kelihatan kepada apl pada telefon anda. Nama ini mungkin dapat dilihat oleh orang lain juga apabila anda menyambung ke peranti Bluetooth atau menyediakan tempat liputan Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Peranti"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Panel Kekerapan Tinggi"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Dayakan Panel Kekerapan Tinggi Maya"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Semua Tetapan"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Tetapan Anda"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Cadangan"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Data CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Data CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Pilih rangkaian"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Tidak menemui rangkaian. Cuba lagi."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(dilarang)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Tiada kad SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Panggilan Lanjutan"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Mod rangkaian pilihan: WCDMA diutamakan"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Mod rangkaian pilihan: GSM sahaja"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Mod rangkaian pilihan: WCDMA sahaja"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Mod rangkaian pilihan: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Mod rangkaian diutamakan: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Mod rangkaian diutamakan: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Mod rangkaian pilihan: CDMA sahaja"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Mod rangkaian pilihan: EvDo sahaja"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Mod rangkaian pilihan: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Mod rangkaian pilihan: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Mod rangkaian pilihan: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Mod rangkaian pilihan: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Mod rangkaian pilihan: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Mod rangkaian pilihan: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Mod rangkaian pilihan: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Mod rangkaian pilihan: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Mod rangkaian pilihan: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Mod rangkaian pilihan: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Mod rangkaian pilihan: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Mod rangkaian pilihan: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Mod rangkaian pilihan: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Mod rangkaian pilihan: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Mod rangkaian pilihan: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Mod rangkaian pilihan: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Mod rangkaian pilihan: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Mod rangkaian pilihan: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (disyorkan)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (disyorkan)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Rangkaian tersedia"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Mencari…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Mendaftar di <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Kad SIM anda tidak membenarkan sambungan ke rangkaian ini."</string>
+ <string name="connect_later" msgid="978991102125216741">"Tidak dapat menyambung ke rangkaian ini sekarang. Cuba lagi nanti."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Didaftarkan pada rangkaian."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Pilih rangkaian secara automatik"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Tetapan pembawa"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Sediakan perkhidmatan data"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Data mudah alih"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Akses data menggunakan rangkaian mudah alih"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Jenis rangkaian pilihan"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Tukar mod pengendalian rangkaian"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Jenis rangkaian pilihan"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Pembawa"</string>
+ <string name="call_category" msgid="8108654745239563833">"Memanggil"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Panggilan video pembawa"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Pilihan sistem"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Tukar mod perayauan CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Pilihan sistem"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Rangkaian"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Rangkaian"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Langganan CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Tukar antara RUIM/SIM dengan NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"langganan"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Pendaftaran automatik…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Benarkan perayauan data?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Semak dengan penyedia rangkaian untuk mendapatkan harga."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Penggunaan data apl"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Mod Rangkaian <xliff:g id="NETWORKMODEID">%1$d</xliff:g> Tidak Sah. Abaikan."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Tidak tersedia apabila disambungkan ke <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Lihat lagi"</string>
+ <string name="see_less" msgid="1250265310929558370">"Lihat kurang"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-my/arrays.xml b/res/values-my/arrays.xml
index 3da38f0..d01fe28 100644
--- a/res/values-my/arrays.xml
+++ b/res/values-my/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"အခမဲ့ မဟုတ်သော အသုံးပြုခြင်းအဖြစ် သတ်မှတ်ရန်"</item>
<item msgid="2266114985518865625">"အခမဲ့ အသုံးပြုခြင်းအဖြစ် သတ်မှတ်ရန်"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"မူရင်း (ကျပန်း MAC ကို အသုံးပြုသည်)"</item>
+ <item msgid="5398461510512959597">"ယုံကြည်ထားသည်"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"No"</item>
<item msgid="3863157480502955888">"Yes"</item>
@@ -487,8 +491,55 @@
<item msgid="6385301106124765323">"အမြဲပိတ်ခြင်း"</item>
</string-array>
<string-array name="autofill_logging_level_entries">
- <item msgid="1036676483322832067">"ပိတ်ပါ"</item>
+ <item msgid="1036676483322832067">"ပိတ်ထားသည်"</item>
<item msgid="2182686878828390312">"အမှားရှာပြင်ခြင်း"</item>
<item msgid="5286514712714822064">"Verbose"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"အိမ်ကိုသာ"</item>
+ <item msgid="5034813753274486448">"အလိုအလျောက်"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA သုံးလိုပါသည်"</item>
+ <item msgid="807926878589867564">"GSM သာ"</item>
+ <item msgid="488474605709912156">"WCDMA သာ"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA အလိုအလျောက်ပြောင်းရန်"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo အလိုအလျောက်ပြောင်းရန်"</item>
+ <item msgid="370391313511477301">"EvDo မပါသည့် CDMA"</item>
+ <item msgid="4678789463133969294">"EvDo သာ"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"ကမ္ဘာအနှံ့"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA သာ"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"၀"</item>
+ <item msgid="8113210705878681550">"၁"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"ကမ္ဘာအနှံ့"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"၁၀"</item>
+ <item msgid="4187053702071521357">"၈"</item>
+ <item msgid="5461421967189969022">"၉"</item>
+ </string-array>
</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 2b52d7f..8deb6fe 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"ဖန်တီးရန်"</string>
<string name="allow" msgid="3349662621170855910">"ခွင့်ပြုပါ"</string>
<string name="deny" msgid="6947806159746484865">"ငြင်းပယ်ရန်"</string>
- <string name="dlg_close" msgid="7471087791340790015">"ပိတ်ရန်"</string>
<string name="device_info_default" msgid="7847265875578739287">"မသိပါ"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">သင်သည် ယခု ဆောဖ့်ဝဲရေးသားသူထံမှ <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> အဆင့်အကွာအဝေးတွင် ရှိနေပါသည်။</item>
@@ -872,7 +871,7 @@
<string name="wifi_speed" msgid="3526198708812322037">"လိုင်းအမြန်နှုန်း"</string>
<string name="wifi_frequency" msgid="7791090119577812214">"လှိုင်းနှုန်း"</string>
<string name="wifi_ip_address" msgid="1440054061044402918">"အိုင်ပီလိပ်စာ"</string>
- <string name="passpoint_label" msgid="6381371313076009926">"မှတဆင့် သိမ်းဆည်းရန်"</string>
+ <string name="passpoint_label" msgid="6381371313076009926">"မှတဆင့် သိမ်းရန်"</string>
<string name="passpoint_content" msgid="8447207162397870483">"<xliff:g id="NAME">%1$s</xliff:g> အထောက်အထားများ"</string>
<string name="wifi_eap_method" msgid="8529436133640730382">"EAPနည်းလမ်း"</string>
<string name="please_select_phase2" msgid="5231074529772044898">"အဆင့်(၂) စစ်မှန်ကြောင်းအတည်ပြုခြင်း"</string>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"၅.၀ GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi‑Fi ဟော့စပေါ့အတွက် အနည်းဆုံး လိုင်းတစ်လိုင်းရွေးပါ−"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP ဆက်တင်များ"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"ပုဂ္ဂိုလ်ရေး"</string>
<string name="wifi_shared" msgid="844142443226926070">"အခြားစက်ပစ္စည်းအသုံးပြုသူများဖြင့် မျှဝေ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ပြောင်းလဲခြင်းမရှိ)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"ကျေးဇူးပြု၍ ရွေးချယ်ပါ"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"ပင်နံပါတ်ပြောင်း၍မရပါ\nပင်နံပါတ်အမှား ဖြစ်နိုင်သည်"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"ဆင်းကဒ် ပင်နံပါတ် ပြောင်းခြင်းအောင်မြင်ပါသည်"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"ဆင်းမ်ကဒ်သော့ကျနေမှုအခြေအနေအား ပြောင်းမရပါ။ \nပင်နံပါတ်မှားယွင်းမှု ဖြစ်နိုင်သည်။"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"ပင်နံပါတ်ကို ပိတ်၍မရပါ။"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"ပင်နံပါတ်ကို ဖွင့်၍မရပါ။"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"မလုပ်တော့"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"ဆင်းမ်များ အများအပြား တွေ့ထား"</string>
@@ -1366,7 +1368,7 @@
<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_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_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>
<string name="storage_wizard_init_external_title" msgid="4867326438945303598">"ရွှေ့လျားနိုင်သည့် သိုလှောင်မှုအဖြစ် သုံးမည်"</string>
<string name="storage_wizard_init_external_summary" msgid="7476105886344565074">"စက်ပစ္စည်းများအကြား ပုံများနှင့် အခြားမီဒီယာများရွှေ့လျားရန်အတွက်။"</string>
@@ -1411,7 +1413,7 @@
<string name="storage_wizard_init_v2_external_action" msgid="8662451480642784031">"ဖြုတ်လွယ်သွင်းလွယ် သိုလှောင်ခန်း"</string>
<string name="storage_wizard_init_v2_later" msgid="1080613420170749130">"နောက်မှ စနစ်သတ်မှတ်ရန်"</string>
<string name="storage_wizard_format_confirm_v2_title" msgid="5744790239994621663">"<xliff:g id="NAME">^1</xliff:g> ကို ဖော်မက်လုပ်လိုပါသလား။"</string>
- <string name="storage_wizard_format_confirm_v2_body" msgid="4614199613500900975">"ဤ <xliff:g id="NAME_0">^1</xliff:g> တွင် အက်ပ်၊ ဖိုင်နှင့် မီဒီယာများကို သိမ်းဆည်းရန် ဖော်မက်လုပ်ရပါမည်။ \n\nဖော်မက်လုပ်ခြင်းဖြင့် <xliff:g id="NAME_1">^2</xliff:g> ရှိ အရာအားလုံးကို ဖျက်လိုက်ပါမည်။ အကြောင်းအရာများ မဆုံးရှုံးစေရန် အခြား <xliff:g id="NAME_2">^3</xliff:g> သို့မဟုတ် စက်ပစ္စည်းတစ်ခုသို့ မိတ္တူကူးထားပါ။"</string>
+ <string name="storage_wizard_format_confirm_v2_body" msgid="4614199613500900975">"ဤ <xliff:g id="NAME_0">^1</xliff:g> တွင် အက်ပ်၊ ဖိုင်နှင့် မီဒီယာများကို သိမ်းရန် ဖော်မက်လုပ်ရပါမည်။ \n\nဖော်မက်လုပ်ခြင်းဖြင့် <xliff:g id="NAME_1">^2</xliff:g> ရှိ အရာအားလုံးကို ဖျက်လိုက်ပါမည်။ အကြောင်းအရာများ မဆုံးရှုံးစေရန် အခြား <xliff:g id="NAME_2">^3</xliff:g> သို့မဟုတ် စက်ပစ္စည်းတစ်ခုသို့ မိတ္တူကူးထားပါ။"</string>
<string name="storage_wizard_format_confirm_v2_action" msgid="8258363472135537500">"<xliff:g id="NAME">^1</xliff:g> ဖော်မက်လုပ်ရန်"</string>
<string name="storage_wizard_migrate_v2_title" msgid="31406330052996898">"အကြောင်းအရာကို <xliff:g id="NAME">^1</xliff:g> သို့ ရွှေ့မလား။"</string>
<string name="storage_wizard_migrate_v2_body" product="tablet" msgid="4476553430145054781">"ဖိုင်၊ မီဒီယာနှင့် အချို့သော အက်ပ်များကို ဤ <xliff:g id="NAME">^1</xliff:g> သို့ ရွှေ့နိုင်ပါသည်။ \n\nဤသို့ ရွှေ့ခြင်းအားဖြင့် သင့်တက်ဘလက်သိုလှောင်ခန်းတွင် <xliff:g id="SIZE">^2</xliff:g> နေရာလွတ်သွားစေမည်ဖြစ်ပြီး <xliff:g id="DURATION">^3</xliff:g> ခန့် ကြာနိုင်ပါသည်။"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">ဖျောက်ထားသည့် %d ခုကို ပြပါ</item>
<item quantity="one">ဖျောက်ထားသည့် %d ခုကို ပြပါ</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ချုံ့ကြည့်ရန်"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"ကွန်ရက်နှင့် အင်တာနက်"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"မိုဘိုင်း"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ဒေတာသုံးစွဲမှု"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"မှောင်သည့် အပြင်အဆင်"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"ချွတ်ယွင်းမှု"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ဝန်းကျင်ကို ပြကွက်၊ လော့ခ်ချထားချိန် မျက်နှာပြင်"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"လော့ခ်ချထားချိန် မျက်နှာပြင် အကြောင်းကြားချက်"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"မျက်နှာ"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"လက်ဗွေ"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"မျက်နှာပြင် အမှိန်၊ တို့ထိမျက်နှာပြင်၊ ဘက်ထရီ၊ အဆင့်မြင့် တောက်ပမှု၊ အားကောင်းသောတောက်ပမှု"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"စက်တွင်းသိုလှောင်ခန်း− <xliff:g id="PERCENTAGE">%1$s</xliff:g> ကို အသုံးပြုထားပြီး - <xliff:g id="FREE_SPACE">%2$s</xliff:g> လွတ်နေပါသည်"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ကြာမျှ လှုပ်ရှားမှုမရှိလျှင် ပိတ်လိုက်ပါ"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"နောက်ခံပုံ၊ နားခြင်း၊ ဖောင့်အရွယ်အစား"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"၁၀ မိနစ်ကြာမျှ လှုပ်ရှားမှုမရှိလျှင် ပိတ်လိုက်ပါ"</string>
<string name="memory_summary" msgid="8080825904671961872">"Avg သည်ယာယီမှတ်ဉာဏ် <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>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"ကွန်ရက် အသေးစိတ်များ"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"သင့်စက်ပစ္စည်းအမည်ကို သင့်ဖုန်းပေါ်ရှိ အက်ပ်များက မြင်ရပါသည်။ သင် \'ဘလူးတုသ်\' စက်ပစ္စည်းများသို့ ချိတ်ဆက်သည့်အခါ သို့မဟုတ် Wi-Fi ဟော့စပေါ့ ထုတ်လွှင့်သည့်အခါ အခြားသူများက မြင်နိုင်ပါသည်။"</string>
<string name="devices_title" msgid="7701726109334110391">"စက်များ"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"ကြိမ်နှုန်းမြင့် အကန့်"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ပကတိအသွင် ကြိမ်နှုန်းမြင့် အကန့်ကို အသုံးပြုသည်"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ဆက်တင်အားလုံး"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"သင့်ဆက်တင်များ"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"အကြံပြုချက်များ"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ဒေတာ"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ဒေတာ"</string>
<string name="choose_network_title" msgid="5702586742615861037">"ကွန်ရက် ရွေးရန်"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"ကွန်ရက် ရှာမတွေ့ပါ။ ထပ်စမ်းကြည့်ပါ။"</string>
<string name="forbidden_network" msgid="4626592887509826545">"(တားမြစ်ထားသည်)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"ဆင်းမ်ကတ် မရှိပါ"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"အဆင့်မြင့်ဖုန်းခေါ်ဆိုခြင်း"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- GSM သီးသန့်"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- WCDMA သာ"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- CDMA only"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- EvDo သီးသန့်"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- ကမ္ဘာအနှံ့"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်- LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (အကြံပြုထားသည်)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (အကြုံပြုထားသည်)"</string>
+ <string name="network_global" msgid="959947774831178632">"ကမ္ဘာအနှံ့"</string>
+ <string name="label_available" msgid="1731547832803057893">"ရရှိနိုင်သော ကွန်ရက်များ"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"ရှာဖွေနေသည်…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> တွင် မှတ်ပုံတင်နေသည်…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"ဤကွန်ရက်နှင့် ချိတ်ဆက်ခြင်းအား သင့်ဆင်းမ်ကတ်က ခွင့်မပြုပါ။"</string>
+ <string name="connect_later" msgid="978991102125216741">"ဤကွန်ရက်ကို ဆက်သွယ်၍ မရပါ။ နောက်မှ ပြန်ကြိုးစားပါ။"</string>
+ <string name="registration_done" msgid="4573820010512184521">"ကွန်ရက်ပေါ်တွင် မှတ်ပုံတင်ထားသည်။"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"ကွန်ရက်ကို အလိုအလျောက် ရွေးချယ်ရန်"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"ဖုန်းကုမ္ပဏီ ဆက်တင်များ"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"ဒေတာဝန်ဆောင်မှု စတင်ရန်"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"မိုဘိုင်းဒေတာ"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"မိုဘိုင်းကွန်ရက်သုံးပြီး ဒေတာကို ဝင်သုံးခွင့်ပေးပါ"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"အသုံးပြုလိုသော ကွန်ရက် အမျိုးအစား"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"ကွန်ရက် လုပ်ဆောင်မှုစနစ်ကို ပြောင်းပါ"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"အသုံးပြုလိုသော ကွန်ရက် အမျိုးအစား"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"ဝန်ဆောင်မှုပေးသူ"</string>
+ <string name="call_category" msgid="8108654745239563833">"ခေါ်ဆိုနေသည်"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"ဝန်ဆောင်မှုပေးသူ ဗီဒီယိုခေါ်ဆိုခြင်း"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"စနစ်ကို ရွေးချယ်ရန်"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA ပြင်ပကွန်ရက်နှင့် ချိတ်ဆက်ခြင်းစနစ်ကို ပြောင်းရန်"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"စနစ်ကို ရွေးချယ်ရန်"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"ကွန်ရက်"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"ကွန်ရက်"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA လျှောက်ထားမှု"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM နှင့် NV အကြားပြောင်းလဲခြင်း"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"စာရင်းသွင်းမှု"</string>
+ <string name="register_automatically" msgid="518185886971595020">"အလိုအလျောက် မှတ်ပုံတင်ခြင်း…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"ကွန်ရက်ပြင်ပဒေတာ သုံးခွင့်ပြုမလား။"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"ဈေးနှုန်းသိရှိရန် သင်၏ ကွန်ရက်ဝန်ဆောင်မှုပေးသူကို မေးပါ။"</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"အက်ပ်ဒေတာ သုံးစွဲမှု"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"မမှန်ကန်သည့် ကွန်ရက်မုဒ် <xliff:g id="NETWORKMODEID">%1$d</xliff:g>။ လျစ်လျူရှုပါ။"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> တွင် ချိတ်ဆက်ထားသည့်အခါ မရနိုင်ပါ"</string>
+ <string name="see_more" msgid="5953815986207345223">"ပိုပြရန်"</string>
+ <string name="see_less" msgid="1250265310929558370">"လျှော့ ကြည့်ရန်"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other">စက်ပစ္စည်း <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> ခု ချိတ်ဆက်ထားသည်</item>
+ <item quantity="one">စက်ပစ္စည်း <xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> ခု ချိတ်ဆက်ထားသည်</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"ချိတ်ဆက်ထားသော စက်များမရှိပါ"</string>
</resources>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index df661c5..3f0215e 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Behandle som med datamåling"</item>
<item msgid="2266114985518865625">"Behandle som uten datamåling"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Standard (bruk tilfeldig valgt MAC)"</item>
+ <item msgid="5398461510512959597">"Pålitelig"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Nei"</item>
<item msgid="3863157480502955888">"Ja"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Feilsøk"</item>
<item msgid="5286514712714822064">"Omfattende"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Kun hjemmenett"</item>
+ <item msgid="5034813753274486448">"Automatisk"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA er foretrukket"</item>
+ <item msgid="807926878589867564">"Bare GSM"</item>
+ <item msgid="488474605709912156">"Bare WCDMA"</item>
+ <item msgid="1912421096218750039">"Automatisk GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"Automatisk CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"CDMA uten EvDo"</item>
+ <item msgid="4678789463133969294">"Bare EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Globalt"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Bare TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Globalt"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 4d28b7d..d06c9a0 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Opprett"</string>
<string name="allow" msgid="3349662621170855910">"Tillat"</string>
<string name="deny" msgid="6947806159746484865">"Avslå"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Lukk"</string>
<string name="device_info_default" msgid="7847265875578739287">"Ukjent"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Nå er du <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steg fra å bli utvikler.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Velg minst ett bånd for Wi-Fi-sonen:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP-innstillinger"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Personvern"</string>
<string name="wifi_shared" msgid="844142443226926070">"Del med andre brukere av enheten"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(uendret)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Velg"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Kan ikke endre personlig kode.\nMuligens feil kode."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN-koden for SIM-kortet ble endret."</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Kan ikke endre SIM-kortlåsens tilstand.\nMuligens feil personlig kode."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Kan ikke slå av PIN-koden."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Kan ikke slå på PIN-koden."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Avbryt"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Flere SIM-kort er funnet"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Vis %d skjulte elementer</item>
<item quantity="one">Vis %d skjult element</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Skjul"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Nettverk og Internett"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobil"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"databruk"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"mørkt tema"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"Feil"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Passiv skjerm, låseskjerm"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"varsel på låseskjermen"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ansikt"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingeravtrykk"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim skjermen, berøringsskjerm, batteri, smart lysstyrke, dynamisk lysstyrke"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Intern lagring: <xliff:g id="PERCENTAGE">%1$s</xliff:g> brukt – <xliff:g id="FREE_SPACE">%2$s</xliff:g> ledig"</string>
<string name="display_summary" msgid="6737806235882127328">"Hvilemodus etter <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> med inaktivitet"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Bakgrunn, hvilemodus, skriftstørrelse"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Hvilemodus etter 10 minutter uten aktivitet"</string>
<string name="memory_summary" msgid="8080825904671961872">"Gjennomsnittlig er <xliff:g id="USED_MEMORY">%1$s</xliff:g> av <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> minne er brukt"</string>
<string name="users_summary" msgid="1674864467098487328">"Logget på som <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Nettverksdetaljer"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Enhetsnavnet ditt er synlig for apper på telefonen. Det kan også ses av andre personer når du kobler til Bluetooth-enheter eller konfigurerer en Wi-Fi-sone."</string>
<string name="devices_title" msgid="7701726109334110391">"Enheter"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Høyfrekvenspanel"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Slå på virtuelt høyfrekvenspanel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Alle innstillinger"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Innstillingene dine"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Forslag"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-data"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-data"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Velg nettverk"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Fant ingen nettverk. Prøv på nytt."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(forbudt)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM-kortet mangler"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Avansert ringemodus"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Foretrukket nettverksmodus: WCDMA foretrekkes"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Foretrukket nettverksmodus: kun GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Foretrukket nettverksmodus: kun WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Foretrukket nettverksmodus: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Foretrukket nettverksmodus: CMDA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Foretrukket nettverksmodus: CMDA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Foretrukket nettverksmodus: kun CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Foretrukket nettverksmodus: kun EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Foretrukket nettverksmodus: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Foretrukket nettverksmodus: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Foretrukket nettverksmodus: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Foretrukket nettverksmodus: CDMA + LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Foretrukket nettverksmodus: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Foretrukket nettverksmodus: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Foretrukket nettverksmodus: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Foretrukket nettverksmodus: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Foretrukket nettverksmodus: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Foretrukket nettverksmodus: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Foretrukket nettverksmodus: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Foretrukket nettverksmodus: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Foretrukket nettverksmodus: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Foretrukket nettverksmodus: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Foretrukket nettverksmodus: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Foretrukket nettverksmodus: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Foretrukket nettverksmodus: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Foretrukket nettverksmodus: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (anbefalt)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (anbefalt)"</string>
+ <string name="network_global" msgid="959947774831178632">"Globalt"</string>
+ <string name="label_available" msgid="1731547832803057893">"Tilgjengelige nettverk"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Søker …"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registrerer på <xliff:g id="NETWORK">%s</xliff:g> …"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM-kortet ditt tillater ingen tilkobling til dette nettverket."</string>
+ <string name="connect_later" msgid="978991102125216741">"Kan ikke koble til dette nettverket akkurat nå. Prøv på nytt senere."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registrert på nettverket."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Velg nettverk automatisk"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Operatørinnstillinger"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Konfigurer datatjeneste"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobildata"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Bruk data via mobilnettverket"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Foretrukket nettverkstype"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Bytt nettverksmodus"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Foretrukket nettverkstype"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operatør"</string>
+ <string name="call_category" msgid="8108654745239563833">"Anrop"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videoanrop via mobiloperatør"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Systemvalg"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Endre CDMA-roamingmodus"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Systemvalg"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Nettverk"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Nettverk"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA-abonnement"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Bytt mellom RUIM/SIM og NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"Abonnement"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatisk registrering"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Vil du tillate data-roaming?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Sjekk med nettverksleverandøren din for priser."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Appens databruk"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Ugyldig nettverksmodus (<xliff:g id="NETWORKMODEID">%1$d</xliff:g>). Ignorer."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Utilgjengelig når du er koblet til <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Se flere"</string>
+ <string name="see_less" msgid="1250265310929558370">"Se mindre"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
index fcedcf4..d4cfb71 100644
--- a/res/values-ne/arrays.xml
+++ b/res/values-ne/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"मिटर गरिएको रूपमा व्यवहार गर्नुहोस्"</item>
<item msgid="2266114985518865625">"मिटर नगरिएको रूपमा व्यवहार गर्नुहोस्"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"पूर्वनिर्धारित (क्रमरहित MAC प्रयोग गर्नुहोस्)"</item>
+ <item msgid="5398461510512959597">"विश्वसनीय"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"होइन"</item>
<item msgid="3863157480502955888">"हो"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"डिबग"</item>
<item msgid="5286514712714822064">"भर्बोज"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"घरमा मात्र"</item>
+ <item msgid="5034813753274486448">"स्वचालित"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA रुचाइयो"</item>
+ <item msgid="807926878589867564">"GSM मात्र"</item>
+ <item msgid="488474605709912156">"WCDMA मात्र"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA स्वतः"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo स्वतः"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo मात्र"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"विश्वव्यापी"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA मात्र"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"विश्वव्यापी"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index a3fc843..3cf7a18 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"सिर्जना गर्नुहोस्"</string>
<string name="allow" msgid="3349662621170855910">"अनुमति दिनुहोस्"</string>
<string name="deny" msgid="6947806159746484865">"अस्वीकार गर्नुहोस्"</string>
- <string name="dlg_close" msgid="7471087791340790015">"बन्द गर्नुहोस्"</string>
<string name="device_info_default" msgid="7847265875578739287">"अज्ञात"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">अहिले तपाईं विकासकर्ता हुनका लागि <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> चरण टाढा हुनुहुन्छ।</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"५.० GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi‑Fi हटस्पटका लागि कम्तीमा एक ब्यान्ड छनौट गर्नुहोस्:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP सेटिङहरू"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"गोपनीयता"</string>
<string name="wifi_shared" msgid="844142443226926070">"अन्य यन्त्र प्रयोगकर्ताहरूसँग साझेदारी गर्नुहोस्"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(अपरिवर्तित)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"कृपया चयन गर्नुहोस्"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PIN बदल्न सक्दैन।\n सम्भवत: गलत PIN।"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN सफलतापूर्वक परिवर्तन गरियो"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"SIM कार्डको लक स्थितिलाई बदल्न सकिँदैन। \n सम्भवत गलत PIN।"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN असक्षम पार्न सकिँदैन।"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN सक्षम पार्न सकिँदैन।"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"ठिक छ"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"रद्द गर्नुहोस्"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"धेरै SIM हरू भेटियो"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">लुकाइएका %d वस्तुहरू देखाउनुहोस्</item>
<item quantity="one">लुकाइएको %d वस्तु देखाउनुहोस्</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"संक्षिप्त गर्नुहोस्"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"नेटवर्क र इन्टरनेट"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"मोबाइल"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"डेटाको प्रयोग"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"अँध्यारो विषयवस्तु"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"बग"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"परिवेशको प्रदर्शन, लक स्क्रिनको प्रदर्शन"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"लक स्क्रिनको सूचना"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"अनुहार"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"फिंगरप्रिन्ट"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"मधुरो स्क्रिन, टचस्क्रिन, ब्याट्री, स्मार्ट चमक, गतिशील उज्यालोपन"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"आन्तरिक भण्डारण: <xliff:g id="PERCENTAGE">%1$s</xliff:g> प्रयोग गरिएको - <xliff:g id="FREE_SPACE">%2$s</xliff:g> खाली"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> को निष्क्रियता पछिको शयन"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"वालपेपर, शयन अवस्था, फन्टको आकार"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"१० मिनेटको निष्क्रियता पछिको शयन"</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>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"नेटवर्कसम्बन्धी विवरणहरू"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"तपाईंको फोनमा रहेका अनुप्रयोगहरूले तपाईंको यन्त्रको नाम देख्न सक्छन्। तपाईंले ब्लुटुथ यन्त्रहरूमा जडान गर्दा वा कुनै Wi-Fi हटस्पट सेटअप गर्दा अरू मान्छेहरू पनि यसलाई देख्न सक्छन्।"</string>
<string name="devices_title" msgid="7701726109334110391">"यन्त्रहरू"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"उच्च आवृत्ति प्यानल"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"भर्चुअल उच्च आवृत्ति प्यानल सक्षम पार्नुहोस्"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"सबै सेटिङहरू"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"तपाईंका सेटिङहरू"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"सुझावहरू"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS डेटा"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS डेटा"</string>
<string name="choose_network_title" msgid="5702586742615861037">"नेटवर्क छनौट गर्नुहोस्"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"नेटवर्कहरू फेला पार्न सकिएन। फेरि प्रयास गर्नुहोस्।"</string>
<string name="forbidden_network" msgid="4626592887509826545">"(निषेध गरिएको)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM कार्ड छैन"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"उन्नत कल गर्दै"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"रुचाइएको नेटवर्क मोड: WCDMA रुचाइएको"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"रुचाइएको नेटवर्क मोड: GSM मात्र"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"रुचाइएको नेटवर्क मोड: WCDMA मात्र"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"रुचाइएको नेटवर्क मोड: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"रुचाइएको नेटवर्क मोड: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"रुचाइएको नेटवर्क मोड: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"रुचाइएको नेटवर्क मोड: CDMA मात्र"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"रुचाइएको नेटवर्क मोड: EvDo मात्र"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"रुचाइएको नेटवर्क मोड: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"रुचाइएको नेटवर्क मोड: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"रुचाइएको नेटवर्क मोड: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"रुचाइएको नेटवर्क मोड: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"रुचाइएको नेटवर्क मोड: विश्वव्यापी"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"रुचाइएको नेटवर्क मोड: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"रुचाइएको नेटवर्क मोड: LTE /GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"रुचाइएको नेटवर्क मोड: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"रुचाइएको नेटवर्क मोड: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"रुचाइएको नेटवर्क मोड: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"रुचाइएको नेटवर्क मोड: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"रुचाइएको नेटवर्क मोड: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"रुचाइएको नेटवर्क मोड: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"रुचाइएको नेटवर्क मोड: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"रुचाइएको नेटवर्क मोड: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"रुचाइएको नेटवर्क मोड: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"रुचाइएको नेटवर्क मोड: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"रुचाइएको नेटवर्क मोड: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (सिफारिस गरिएको)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (सिफारिस गरिएको)"</string>
+ <string name="network_global" msgid="959947774831178632">"विश्वव्यापी"</string>
+ <string name="label_available" msgid="1731547832803057893">"उपलब्ध नेटवर्कहरू"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"खोजी गरिँदै छ…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> मा दर्ता गर्दै…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"तपाईंको SIM कार्ड यो नेटवर्कलाई जडानको अनुमति दिँदैन।"</string>
+ <string name="connect_later" msgid="978991102125216741">"यो नेटवर्कमा अहिले नै जडान गर्न सकिँदैन। पछि फेरि प्रयास गर्नुहोस्।"</string>
+ <string name="registration_done" msgid="4573820010512184521">"नेटवर्कमा दर्ता गरियो।"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"स्वतः नेटवर्क चयन गर्नुहोस्"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"सेवा प्रदायकसम्बन्धी सेटिङहरू"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"डेटा सेवा सेटअप गर्नुहोस्"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"मोबाइल डेटा"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"मोबाइल नेटवर्क प्रयोग गरी डेटामाथि पहुँच राख्नुहोस्"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"रुचाइएको नेटवर्कको प्रकार"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"नेटवर्क अपरेटिङ मोड परिवर्तन गर्नुहोस्"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"रुचाइएको नेटवर्कको प्रकार"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"सेवा प्रदायक"</string>
+ <string name="call_category" msgid="8108654745239563833">"कल गर्दै"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"सेवा प्रदायकको भिडियो कल"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"प्रणाली चयन गर्नुहोस्"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA रोमिङ मोड परिवर्तन गर्नुहोस्"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"प्रणाली चयन गर्नुहोस्"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"नेटवर्क"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"नेटवर्क"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA को सदस्यता"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM र NV का बीच बदल्नुहोस्"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"सदस्यता"</string>
+ <string name="register_automatically" msgid="518185886971595020">"स्वतः दर्ता…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"डेटा रोमिङलाई अनुमति दिने हो?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"मूल्यसम्बन्धी जानकारीका लागि आफ्नो नेटवर्क प्रदायकलाई सोध्नुहोस्।"</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"अनुप्रयोगको डेटाको प्रयोग"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"अमान्य नेटवर्क मोड <xliff:g id="NETWORKMODEID">%1$d</xliff:g>। बेवास्ता गर्नुहोस्।"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> मा जडान हुँदा उपलब्ध छैन"</string>
+ <string name="see_more" msgid="5953815986207345223">"थप हेर्नुहोस्"</string>
+ <string name="see_less" msgid="1250265310929558370">"कम हेर्नुहोस्"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index dc43c87..f231665 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Behandelen als gemeten"</item>
<item msgid="2266114985518865625">"Behandelen als niet-gemeten"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Standaard (willekeurig MAC-adres gebruiken)"</item>
+ <item msgid="5398461510512959597">"Betrouwbaar"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Nee"</item>
<item msgid="3863157480502955888">"Ja"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Fouten opsporen"</item>
<item msgid="5286514712714822064">"Uitgebreid"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Alleen thuis"</item>
+ <item msgid="5034813753274486448">"Automatisch"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Voorkeur voor GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"Alleen GSM"</item>
+ <item msgid="488474605709912156">"Alleen WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA automatisch"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo automatisch"</item>
+ <item msgid="370391313511477301">"CDMA zonder EvDo"</item>
+ <item msgid="4678789463133969294">"Alleen EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Algemeen"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Alleen TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Algemeen"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index f69b440..c82b8c5 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Aanmaken"</string>
<string name="allow" msgid="3349662621170855910">"Toestaan"</string>
<string name="deny" msgid="6947806159746484865">"Weigeren"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Sluiten"</string>
<string name="device_info_default" msgid="7847265875578739287">"Onbekend"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Je moet nog <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> stappen uitvoeren om ontwikkelaar te worden.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Kies ten minste één band voor je wifi-hotspot:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP-instellingen"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacy"</string>
<string name="wifi_shared" msgid="844142443226926070">"Delen met andere apparaatgebruikers"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ongewijzigd)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Maak een keuze"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Kan pincode niet wijzigen.\nPincode mogelijk onjuist."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM-pincode gewijzigd"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Kan status van simkaartblokkering niet wijzigen.\nPincode mogelijk onjuist."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Kan pincode niet uitschakelen."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Kan pincode niet inschakelen."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Annuleren"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Meerdere simkaarten gevonden"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">%d verborgen items weergeven</item>
<item quantity="one">%d verborgen item weergeven</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Samenvouwen"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Netwerk en internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobiel"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"datagebruik"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"donker thema"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"bug"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Inactieve display, vergrendelingsscherm"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"melding op vergrendelingsscherm"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"gezicht"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"vingerafdruk"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"scherm dimmen, touchscreen, batterij, slimme helderheid, dynamische helderheid"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Interne opslag: <xliff:g id="PERCENTAGE">%1$s</xliff:g> gebruikt - <xliff:g id="FREE_SPACE">%2$s</xliff:g> vrij"</string>
<string name="display_summary" msgid="6737806235882127328">"Slaapstand na <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> inactiviteit"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Achtergrond, slaapstand, lettergrootte"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Slaapstand na 10 minuten inactiviteit"</string>
<string name="memory_summary" msgid="8080825904671961872">"Gem. <xliff:g id="USED_MEMORY">%1$s</xliff:g> van <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> geheugen gebruikt"</string>
<string name="users_summary" msgid="1674864467098487328">"Ingelogd als <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Netwerkgegevens"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"De naam van je apparaat is zichtbaar voor apps op je telefoon. De apparaatnaam kan ook door andere mensen worden gezien wanneer je verbinding maakt met Bluetooth-apparaten of een wifi-hotspot instelt."</string>
<string name="devices_title" msgid="7701726109334110391">"Apparaten"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Hoge-frequentievenster"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Virtueel venster voor hoge frequentie inschakelen"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Alle instellingen"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Je instellingen"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Suggesties"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-gegevens"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-gegevens"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Netwerk kiezen"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Kan geen netwerken vinden. Probeer het opnieuw."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(niet toegestaan)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Geen simkaart"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Geavanceerd bellen"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Voorkeursnetwerkmodus: voorkeur voor WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Voorkeursnetwerkmodus: alleen GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Voorkeursnetwerkmodus: alleen WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Voorkeursnetwerkmodus: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Voorkeursnetwerkmodus: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Voorkeursnetwerkmodus: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Voorkeursnetwerkmodus: alleen CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Voorkeursnetwerkmodus: alleen EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Voorkeursnetwerkmodus: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Voorkeursnetwerkmodus: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Voorkeursnetwerkmodus: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Voorkeursnetwerkmodus: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Voorkeursnetwerkmodus: Wereldwijd"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Voorkeursnetwerkmodus: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Voorkeursmodus voor netwerk: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Voorkeursnetwerkmodus: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Voorkeursnetwerkmodus: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Voorkeursnetwerkmodus: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Voorkeursnetwerkmodus: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Voorkeursnetwerkmodus: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Voorkeursnetwerkmodus: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Voorkeursnetwerkmodus: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Voorkeursnetwerkmodus: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Voorkeursnetwerkmodus: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Voorkeursnetwerkmodus: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Voorkeursnetwerkmodus: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (aanbevolen)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (aanbevolen)"</string>
+ <string name="network_global" msgid="959947774831178632">"Algemeen"</string>
+ <string name="label_available" msgid="1731547832803057893">"Beschikbare netwerken"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Zoeken…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registreren op <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Je simkaart staat geen verbinding met dit netwerk toe."</string>
+ <string name="connect_later" msgid="978991102125216741">"Kan nu geen verbinding maken met dit netwerk. Probeer het later opnieuw."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Geregistreerd op netwerk."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Netwerk automatisch selecteren"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Providerinstellingen"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Gegevensservice instellen"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobiele data"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Datatoegang via mobiel netwerk"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Voorkeursnetwerktype"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"De netwerkgebruiksmodus wijzigen"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Voorkeursnetwerktype"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Provider"</string>
+ <string name="call_category" msgid="8108654745239563833">"Bellen"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Provider videogesprekken"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Systeem selecteren"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"De CDMA-roamingmodus wijzigen"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Systeem selecteren"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Netwerk"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Netwerk"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA-abonnement"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Schakelen tussen RUIM/SIM en NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"abonnement"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatische registratie…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Dataroaming toestaan?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Neem contact op met je netwerkprovider over de prijzen."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Datagebruik van app"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Ongeldige netwerkmodus <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Negeren."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Niet beschikbaar wanneer verbonden met <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Meer bekijken"</string>
+ <string name="see_less" msgid="1250265310929558370">"Minder weergeven"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> verbonden apparaten</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> verbonden apparaat</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Geen verbonden apparaten"</string>
</resources>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
index 04fe239..9bccadd 100644
--- a/res/values-or/arrays.xml
+++ b/res/values-or/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"ମାପ ହୋଇଥିବା ସଂଯୋଗ ରୂପେ ବିବେଚନା କରନ୍ତୁ"</item>
<item msgid="2266114985518865625">"ଅପରିମିତ ସଂଯୋଗ ରୂପେ ବିବେଚନା କରନ୍ତୁ"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"ଡିଫଲ୍ଟ (ରେଣ୍ଡମ୍ MAC ବ୍ୟବହାର କରନ୍ତୁ)"</item>
+ <item msgid="5398461510512959597">"ବିଶ୍ବସ୍ତ"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"ନା"</item>
<item msgid="3863157480502955888">"ହଁ"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"ଡିବଗ୍ କରନ୍ତୁ"</item>
<item msgid="5286514712714822064">"ଶବ୍ଦବହୁଳ"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"କେବଳ ହୋମ୍ ନେଟ୍ୱର୍କ"</item>
+ <item msgid="5034813753274486448">"ସ୍ୱଚାଳିତ"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA ପସନ୍ଦ କରାଯାଇଛି"</item>
+ <item msgid="807926878589867564">"କେବଳ GSM"</item>
+ <item msgid="488474605709912156">"କେବଳ WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA ଅଟୋ"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo ଅଟୋ"</item>
+ <item msgid="370391313511477301">"EvDo ବିନା CDMA"</item>
+ <item msgid="4678789463133969294">"କେବଳ EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"ଗ୍ଲୋବାଲ୍"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"କେବଳ TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"ଗ୍ଲୋବାଲ୍"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 7469628..f001d87 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"ତିଆରି କରନ୍ତୁ"</string>
<string name="allow" msgid="3349662621170855910">"ଅନୁମତି"</string>
<string name="deny" msgid="6947806159746484865">"ପ୍ରତ୍ୟାଖ୍ୟାନ"</string>
- <string name="dlg_close" msgid="7471087791340790015">"ବନ୍ଦ କରନ୍ତୁ"</string>
<string name="device_info_default" msgid="7847265875578739287">"ଅଜଣା"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">ଜଣେ ଡେଭଲପର୍ ହେବାରେ ଆପଣ ବର୍ତ୍ତମାନ <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ଟି ପଦାଙ୍କ ଦୂରରେ ଅଛନ୍ତି।</item>
@@ -178,8 +177,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"ପୂର୍ବରୁ ଯୋଡ଼ିହୋଇଥିବା ଡିଭାଇସ୍"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"ପୂର୍ବରୁ କନେକ୍ଟ ହୋଇଛି"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ବ୍ଲୁ-ଟୁଥ୍ ଅନ୍ କରାଗଲା"</string>
- <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
- <skip />
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"ସବୁ ଦେଖନ୍ତୁ"</string>
<string name="date_and_time" msgid="9062980487860757694">"ତାରିଖ ଓ ସମୟ"</string>
<string name="choose_timezone" msgid="1362834506479536274">"ସମୟ ଅଞ୍ଚଳ ବାଛନ୍ତୁ"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -404,12 +402,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"ହୋଇଗଲା"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"ମୁହଁ ବ୍ୟବହାର କରନ୍ତୁ"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"ଆପଣଙ୍କର ଡିଭାଇସ୍ ଅନ୍ଲକ୍ କରନ୍ତୁ"</string>
- <!-- no translation found for security_settings_face_settings_use_face_for_apps (5751549943998662469) -->
- <skip />
- <!-- no translation found for security_settings_face_settings_require_attention (1638445716306615123) -->
- <skip />
- <!-- no translation found for security_settings_face_settings_require_attention_details (5749808567341263288) -->
- <skip />
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"ଆପ୍ ସାଇନ୍ ଇନ୍ ଓ ପେମେଣ୍ଟ"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"ଅନଲକ୍ କରିବା ପାଇଁ ଆଖି ଖୋଲନ୍ତୁ"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"ମୁହଁ ପ୍ରମାଣୀକରଣ ବ୍ୟବହାର କରିବା ସମୟରେ, ଆପଣଙ୍କ ଆଖି ଖୋଲା ରହିଥିବା ଦରକାର"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"ମୁହଁ ଡାଟା କାଢ଼ନ୍ତୁ"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"ଆପଣଙ୍କର ମୁହଁ ଡାଟା ଉନ୍ନତ କରନ୍ତୁ"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"ଆପଣଙ୍କର ଡିଭାଇସ୍ ଅନ୍ଲକ୍ ଏବଂ ଆପ୍ସ ଆକ୍ସେସ୍ କରିବାକୁ ଆପଣଙ୍କ ମୁହଁକୁ ବ୍ୟବହାର କରି ହେବ। "<annotation id="url">"ଅଧିକ ଜାଣନ୍ତୁ"</annotation></string>
@@ -895,6 +890,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"2.4 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"ୱାଇ-ଫାଇ ହଟସ୍ପଟ୍ ପାଇଁ ଅତିକମ୍ରେ ଗୋଟିଏ ବ୍ୟାଣ୍ଡକୁ ଚୟନ କରନ୍ତୁ:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP ସେଟିଙ୍ଗ"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"ଗୋପନୀୟତା"</string>
<string name="wifi_shared" msgid="844142443226926070">"ଅନ୍ୟାନ୍ୟ ଡିଭାଇସ୍ ଉପଯୋଗକର୍ତ୍ତାଙ୍କ ସହ ଶେୟାର୍ କରନ୍ତୁ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ଅପରିବର୍ତ୍ତିତ)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"ଦୟାକରି ଚୟନ କରନ୍ତୁ"</string>
@@ -1208,6 +1204,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PIN ପରିବର୍ତ୍ତନ କରିପାରିବ ନାହିଁ।\nସମ୍ଭବତଃ ଭୁଲ୍ PIN।"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"ସିମ୍ ପିନ୍ ବଦଳାଇଦିଆଗଲା"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"SIM କାର୍ଡ ଲକ୍ ସ୍ଥିତି ପରିବର୍ତ୍ତନ କରିପାରିବେ ନାହିଁ।\nସମ୍ଭବତଃ ଭୁଲ୍ PIN ଅଟେ।"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN ଅକ୍ଷମ କରିହେବ ନାହିଁ।"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN ସକ୍ଷମ କରିହେବ ନାହିଁ।"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"ଠିକଅଛି"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"କ୍ୟାନ୍ସଲ୍ କରନ୍ତୁ"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"ଏକାଧିକ ସିମ୍ ମିଳିଛି"</string>
@@ -2934,7 +2932,6 @@
<item quantity="other">ଲୁଚିଥିବା %d ଆଇଟମ୍ଗୁଡ଼ିକୁ ଦେଖାନ୍ତୁ</item>
<item quantity="one">ଲୁଚିଥିବା %d ଆଇଟମ୍ ଦେଖାନ୍ତୁ</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"କୋଲାପ୍ସ"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"ନେଟ୍ୱର୍କ ଓ ଇଣ୍ଟରନେଟ୍"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ମୋବାଇଲ୍"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ଡାଟା ଉପଯୋଗ"</string>
@@ -2996,8 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"ପୈଠ, ଟାପ୍, ପେମେଣ୍ଟ"</string>
<string name="keywords_backup" msgid="470070289135403022">"ବ୍ୟାକ୍ଅପ୍, ବ୍ୟାକ୍ ଅପ୍ ନିଅନ୍ତୁ"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ଇଙ୍ଗିତ"</string>
- <!-- no translation found for keywords_face_unlock (254144854349092754) -->
- <skip />
+ <string name="keywords_face_unlock" msgid="254144854349092754">"ମୁହଁ, ଅନଲକ୍, ପ୍ରମାଣୀକରଣ, ସାଇନ୍ ଇନ୍"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl ଭର୍ସନ୍, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"ନେଟ୍ୱର୍କ, ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ସ୍ଥିତି, ସେବା ସ୍ଥିତି, ସିଗ୍ନାଲ୍ ଶକ୍ତି, ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ପ୍ରକାର, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"କ୍ରମିକ ସଂଖ୍ୟା, ହାର୍ଡୱେର୍ ଭର୍ସନ୍"</string>
@@ -3005,6 +3001,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"ଡାର୍କ ଥିମ୍"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"ବଗ୍"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ଆମ୍ବିଏଣ୍ଟ ଡିସ୍ପ୍ଲେ, ଲକ୍ ସ୍କ୍ରୀନ୍ ଡିସ୍ପ୍ଲେ"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ସ୍କ୍ରିନ୍ ବିଜ୍ଞପ୍ତିକୁ ଲକ୍ କରନ୍ତୁ"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ଫେସ୍"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"ଆଙ୍ଗୁଠି ଚିହ୍ନ"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"କମ୍ ଆଲୋକ ଥିବା ସ୍କ୍ରୀନ୍, ଟଚ୍ସ୍କ୍ରୀନ୍, ବ୍ୟାଟେରୀ, ସ୍ମାର୍ଟ ଉଜ୍ଵଳତା, ଡାଇନାମିକ୍ ଉଜ୍ଵଳତା"</string>
@@ -3717,6 +3714,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ଇଣ୍ଟର୍ନାଲ୍ ଷ୍ଟୋରେଜ୍: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ବ୍ୟବହୃତ - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ଖାଲି"</string>
<string name="display_summary" msgid="6737806235882127328">"ନିଷ୍କ୍ରିୟତାର <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ପରେ ସୁପ୍ତାବସ୍ଥା"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"ୱାଲ୍ପେପର୍, ସୁପ୍ତ, ଫଣ୍ଟ ସାଇଜ୍"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"କାମ ନ କରିବାର ୧୦ ମିନିଟ ପରେ ଶୁଆଇଦିଅ"</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>
@@ -3967,14 +3966,12 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"ଫୋନ୍କୁ ପରଖିବା ପାଇଁ ଉଠାନ୍ତୁ"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"ଟାବଲେଟ୍ ଯାଞ୍ଚ କରିବାକୁ ଉଠାନ୍ତୁ"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"ଡିଭାଇସ୍ ଯାଞ୍ଚ କରିବାକୁ ଉଠାନ୍ତୁ"</string>
- <!-- no translation found for ambient_display_wake_screen_title (4091523525326925790) -->
- <skip />
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"ୱେକ୍ ଅପ୍ ଡିସ୍ପ୍ଲେ"</string>
<string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"ସମୟ, ବିଜ୍ଞପ୍ତି, ଏବଂ ଅନ୍ୟ ସୂଚନା ଦେଖିବାକୁ, ଆପଣଙ୍କ ଫୋନ୍ ଉଠାନ୍ତୁ।"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"ସମୟ, ବିଜ୍ଞପ୍ତି, ଏବଂ ଅନ୍ୟ ସୂଚନା ଦେଖିବାକୁ, ଆପଣଙ୍କ ଟାବ୍ଲେଟ୍ ଉଠାନ୍ତୁ।"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"ସମୟ, ବିଜ୍ଞପ୍ତି, ଏବଂ ଅନ୍ୟ ସୂଚନା ଦେଖିବାକୁ, ଆପଣଙ୍କ ଡିଭାଇସ୍ ଉଠାନ୍ତୁ।"</string>
- <!-- no translation found for ambient_display_wake_lock_screen_title (562547995385322349) -->
- <skip />
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"ୱେକ୍ ଲକ୍ ସ୍କ୍ରୀନ୍ ଜେଶ୍ଚର୍"</string>
<string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"ବିଜ୍ଞପ୍ତି ପାଇଁ ଆଙ୍ଗୁଠି ଚିହ୍ନ ସ୍ୱାଇପ୍ କରନ୍ତୁ"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"ଆଙ୍ଗୁଠି ଚିହ୍ନ ସ୍ୱାଇପ୍ କରନ୍ତୁ"</string>
@@ -4120,12 +4117,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ଉପଯୋଗିତା ଅନୁପାତ ନଥିବା ସମସ୍ତ GNSS ଉପଗ୍ରହ ସମଷ୍ଟି ଓ ଫ୍ରିକ୍ୱେନ୍ସୀକୁ ଟ୍ରାକ୍ କରନ୍ତୁ"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"କ୍ରାଶ୍ ହୋଇଥିବା ଡାୟଲଗ୍କୁ ସର୍ବଦା ଦେଖାନ୍ତୁ"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"ପ୍ରତ୍ୟେକ ଥର ଗୋଟିଏ ଆପ୍ କ୍ରାଶ୍ ହେବାପରେ ଡାୟଲଗ୍ ଦେଖାନ୍ତୁ"</string>
- <!-- no translation found for angle_enabled_app (1841862539745838255) -->
- <skip />
- <!-- no translation found for angle_enabled_app_not_set (864740024581634768) -->
- <skip />
- <!-- no translation found for angle_enabled_app_set (226015765615525056) -->
- <skip />
+ <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="directory_access" msgid="4722237210725864244">"ଡାଇରେକ୍ଟୋରୀ ଆକ୍ସେସ୍"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"ଡାଇରେକ୍ଟୋରୀ ଆକ୍ସେସ୍"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4166,10 +4160,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"ନେଟୱର୍କ୍ର ବିବରଣୀ"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"ଆପଣଙ୍କ ଡିଭାଇସ୍ରେ ଥିବା ଆପ୍ଗୁଡ଼ିକୁ ଆପଣଙ୍କର ଡିଭାଇସ୍ ନାମ ଦେଖାଯାଉଛି। ବ୍ଲୁ-ଟୂଥ୍ ଡିଭାଇସ୍ ସହ ଯୋଡ଼ି ହେବାବେଳେ କିମ୍ୱା ଏକ ୱାଇ-ଫାଇ ହଟସ୍ପଟ୍ ସେଟ୍ କରିବା ସମୟରେ, ଏହା ଅନ୍ୟ ଲୋକମାନଙ୍କୁ ମଧ୍ୟ ଦେଖାଦେଇପାରେ।"</string>
<string name="devices_title" msgid="7701726109334110391">"ଡିଭାଇସ୍"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"ଉଚ୍ଚମାନର ଫ୍ରିକ୍ୟୁଏନ୍ସି ପ୍ୟାନେଲ୍"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ଭର୍ଚୁଆଲ୍ ଉଚ୍ଚମାନର ଫ୍ରିକ୍ୟୁଏନ୍ସି ପ୍ୟାନେଲ୍ ସକ୍ଷମ କରନ୍ତୁ"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ସମସ୍ତ ସେଟିଂସ୍"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"ଆପଣଙ୍କ ସେଟିଂସ୍"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"ପରାମର୍ଶ"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ଡାଟା"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ଡାଟା"</string>
<string name="choose_network_title" msgid="5702586742615861037">"ନେଟ୍ୱର୍କ ବାଛନ୍ତୁ"</string>
@@ -4181,4 +4173,71 @@
<string name="network_query_error" msgid="7487714485362598410">"ନେଟ୍ୱର୍କ ମିଳୁନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
<string name="forbidden_network" msgid="4626592887509826545">"(ଅନୁମତିପ୍ରାପ୍ତ ନୁହେଁ)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM କାର୍ଡ ନାହିଁ"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"ଉନ୍ନତ କଲିଂ"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: WCDMAକୁ ପସନ୍ଦ କରାଯାଇଛି"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: GSM କେବଳ"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: କେବଳ WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: CDMA କେବଳ"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: EvDo କେବଳ"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: ଗ୍ଲୋବାଲ୍"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: LTE /GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (ସୁପାରିଶ କରାଯାଇଛି)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (ସୁପାରିଶ କରାଯାଇଛି)"</string>
+ <string name="network_global" msgid="959947774831178632">"ଗ୍ଲୋବାଲ୍"</string>
+ <string name="label_available" msgid="1731547832803057893">"ଉପଲବ୍ଧ ଥିବା ନେଟ୍ୱର୍କ"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"ସନ୍ଧାନ କରୁଛି…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g>ରେ ପଞ୍ଜିକରଣ ହେଉଛି…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"ଆପଣଙ୍କର SIM କାର୍ଡ ଏହି ନେଟ୍ୱର୍କରେ ସଂଯୁକ୍ତ ହେବା ପାଇଁ ଅନୁମତି ଦିଏ ନାହିଁ।"</string>
+ <string name="connect_later" msgid="978991102125216741">"ବର୍ତ୍ତମାନ ଏହି ନେଟ୍ୱର୍କରେ ସଂଯୋଗ କରାଯାଇପାରିବ ନାହିଁ। ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
+ <string name="registration_done" msgid="4573820010512184521">"ଏହି ନେଟ୍ୱର୍କରେ ପଞ୍ଜିକୃତ କରାଯାଇଛି।"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"ସ୍ଵଚାଳିତ ଭାବେ ନେଟ୍ୱର୍କ ଚୟନ କରନ୍ତୁ"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"ବାହକ ସେଟିଂସ୍"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"ଡାଟା ସେବା ସେଟ୍ଅପ୍ କରନ୍ତୁ"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"ମୋବାଇଲ୍ ଡାଟା"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"ମୋବାଇଲ୍ ନେଟ୍ୱର୍କକୁ ବ୍ୟବହାର କରି ଡାଟା ଆକ୍ସେସ୍ କରନ୍ତୁ"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ପ୍ରକାର"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"ନେଟ୍ୱର୍କ ଅପରେଟିଙ୍ଗ ମୋଡ୍କୁ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"ମନପସନ୍ଦର ନେଟ୍ୱର୍କ ପ୍ରକାର"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"ବାହକ"</string>
+ <string name="call_category" msgid="8108654745239563833">"କଲିଂ"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"ବାହକ ଭିଡିଓ କଲିଂ"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"ସିଷ୍ଟମ୍ ଚୟନ କରନ୍ତୁ"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMAର ରୋମିଂ ମୋଡ୍କୁ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"ସିଷ୍ଟମ୍ ଚୟନ କରନ୍ତୁ"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"ନେଟ୍ୱର୍କ"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"ନେଟ୍ୱର୍କ"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA ସଦସ୍ୟତା"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM ଓ NV ମଧ୍ୟରେ ଅଦଳବଦଳ କରନ୍ତୁ"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"ସଦସ୍ୟତା"</string>
+ <string name="register_automatically" msgid="518185886971595020">"ସ୍ଵଚାଳିତ ପଞ୍ଜିକରଣ…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"ଡାଟା ରୋମିଂର ଅନୁମତି ଦେବେ?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"ମୂଲ୍ୟ ଜାଣିବା ପାଇଁ ନିଜର ନେଟ୍ୱର୍କ ପ୍ରଦାତାଙ୍କ ସହ ସମ୍ପର୍କ କରନ୍ତୁ।"</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"ଆପ୍ର ଡାଟା ବ୍ୟବହାର"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"ଅବୈଧ ନେଟ୍ୱର୍କ ମୋଡ୍ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>। ଅବଜ୍ଞା କରନ୍ତୁ।"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g>କୁ ସଂଯୁକ୍ତ ହୋଇଥିବା ସମୟରେ ଉପଲବ୍ଧ ନଥାଏ"</string>
+ <string name="see_more" msgid="5953815986207345223">"ଅଧିକ ଦେଖନ୍ତୁ"</string>
+ <!-- no translation found for see_less (1250265310929558370) -->
+ <skip />
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-pa/arrays.xml b/res/values-pa/arrays.xml
index e3c9427..d834304 100644
--- a/res/values-pa/arrays.xml
+++ b/res/values-pa/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"ਮੀਟਰਬੱਧ ਮੰਨੋ"</item>
<item msgid="2266114985518865625">"ਗੈਰ-ਮੀਟਰਬੱਧ ਮੰਨੋ"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"ਪੂਰਵ-ਨਿਰਧਾਰਤ (ਬੇਤਰਤੀਬਾ MAC ਵਰਤੋ)"</item>
+ <item msgid="5398461510512959597">"ਭਰੋਸੇਯੋਗ"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"ਨਹੀਂ"</item>
<item msgid="3863157480502955888">"ਹਾਂ"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"ਡੀਬੱਗ"</item>
<item msgid="5286514712714822064">"ਵਰਬੋਸ"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"ਸਿਰਫ਼ ਹੋਮ"</item>
+ <item msgid="5034813753274486448">"ਸਵੈਚਲਿਤ"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA ਤਰਜੀਹੀ"</item>
+ <item msgid="807926878589867564">"ਸਿਰਫ਼ GSM"</item>
+ <item msgid="488474605709912156">"ਸਿਰਫ਼ WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA ਸਵੈਚਲਿਤ"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo ਸਵੈਚਲਿਤ"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"ਸਿਰਫ਼ EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"ਗਲੋਬਲ"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"ਸਿਰਫ਼ TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"ਗਲੋਬਲ"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index cb4ae0d..e7784dd 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"ਬਣਾਓ"</string>
<string name="allow" msgid="3349662621170855910">"ਆਗਿਆ ਦਿਓ"</string>
<string name="deny" msgid="6947806159746484865">"ਅਸਵੀਕਾਰ ਕਰੋ"</string>
- <string name="dlg_close" msgid="7471087791340790015">"ਬੰਦ ਕਰੋ"</string>
<string name="device_info_default" msgid="7847265875578739287">"ਅਗਿਆਤ"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">ਤੁਸੀਂ ਹੁਣ ਇੱਕ ਵਿਕਾਸਕਾਰ ਬਣਨ ਤੋਂ <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ਕਦਮ ਦੂਰ ਹੋ।</item>
@@ -179,8 +178,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"ਪਹਿਲਾਂ ਤੋਂ ਕਨੈਕਟ ਕੀਤੇ ਡੀਵਾਈਸ"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"ਪਹਿਲਾਂ ਤੋਂ ਕਨੈਕਟ ਕੀਤੇ"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ਬਲੂਟੁੱਥ ਚਾਲੂ ਕੀਤਾ ਗਿਆ"</string>
- <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
- <skip />
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"ਸਭ ਦੇਖੋ"</string>
<string name="date_and_time" msgid="9062980487860757694">"ਤਾਰੀਖ ਅਤੇ ਸਮਾਂ"</string>
<string name="choose_timezone" msgid="1362834506479536274">"ਸਮਾਂ ਜ਼ੋਨ ਚੁਣੋ"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -381,7 +379,7 @@
<string name="disabled_by_administrator_summary" msgid="1601828700318996341">"ਪ੍ਰਸ਼ਾਸਕ ਦੁਆਰਾ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ"</string>
<string name="security_status_title" msgid="5848766673665944640">"ਸੁਰੱਖਿਆ ਸਥਿਤੀ"</string>
<string name="security_dashboard_summary_face" msgid="268234254306703218">"ਸਕ੍ਰੀਨ ਲਾਕ, ਚਿਹਰਾ ਅਣਲਾਕ"</string>
- <string name="security_dashboard_summary" msgid="6757421634477554939">"ਸਕ੍ਰੀਨ ਲਾਕ , ਫਿੰਗਰਪ੍ਰਿੰਟ"</string>
+ <string name="security_dashboard_summary" msgid="6757421634477554939">"ਸਕ੍ਰੀਨ ਲਾਕ, ਫਿੰਗਰਪ੍ਰਿੰਟ"</string>
<string name="security_dashboard_summary_no_fingerprint" msgid="8129641548372335540">"ਸਕ੍ਰੀਨ ਲਾਕ"</string>
<string name="security_settings_face_preference_summary" msgid="1290187225482642821">"ਚਿਹਰਾ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
<string name="security_settings_face_preference_summary_none" msgid="5460349732790152186">"ਚਿਹਰਾ ਪ੍ਰਮਾਣੀਕਰਨ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
@@ -893,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"ਵਾਈ-ਫਾਈ ਹੌਟਸਪੌਟ ਲਈ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਬੈਂਡ ਚੁਣੋ:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP ਸੈਟਿੰਗਾਂ"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"ਪਰਦੇਦਾਰੀ"</string>
<string name="wifi_shared" msgid="844142443226926070">"ਹੋਰ ਡੀਵਾਈਸ ਵਰਤੋਂਕਾਰਾਂ ਨਾਲ ਸਾਂਝਾ ਕਰੋ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ਬਿਨਾਂ ਬਦਲਿਆ)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"ਕਿਰਪਾ ਕਰਕੇ ਚੁਣੋ"</string>
@@ -1206,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"ਪਿੰਨ ਨਹੀਂ ਬਦਲ ਸਕਦਾ।\nਸ਼ਾਇਦ ਪਿੰਨ ਗਲਤ ਹੈ।"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"ਸਿਮ ਪਿੰਨ ਸਫਲਤਾਪੂਰਵਕ ਬਦਲਿਆ ਗਿਆ"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"ਸਿਮ ਕਾਰਡ ਲਾਕ ਦੀ ਸਥਿਤੀ ਨਹੀਂ ਬਦਲ ਸਕਦੀ।\nਸੰਭਾਵਿਤ ਤੌਰ \'ਤੇ ਗਲਤ ਪਿੰਨ।"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"ਪਿੰਨ ਨੂੰ ਬੰਦ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"ਪਿੰਨ ਨੂੰ ਚਾਲੂ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"ਠੀਕ"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"ਰੱਦ ਕਰੋ"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"ਮਲਟੀਪਲ SIM ਮਿਲੇ"</string>
@@ -2932,7 +2933,6 @@
<item quantity="one">%d ਲੁਕੀਆਂ ਹੋਈਆਂ ਆਈਟਮਾਂ ਦਿਖਾਓ </item>
<item quantity="other">%d ਲੁਕੀਆਂ ਹੋਈਆਂ ਆਈਟਮਾਂ ਦਿਖਾਓ </item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ਸਮੇਟੋ"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"ਨੈੱਟਵਰਕ ਅਤੇ ਇੰਟਰਨੈੱਟ"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ਮੋਬਾਈਲ"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ਡਾਟਾ ਵਰਤੋਂ"</string>
@@ -3002,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"ਗੂੜ੍ਹਾ ਥੀਮ"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"ਬੱਗ"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ਤੱਕਣੀਯੋਗ ਡਿਸਪਲੇ, ਲਾਕ ਸਕ੍ਰੀਨ ਡਿਸਪਲੇ"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ਲਾਕ ਸਕ੍ਰੀਨ ਸੂਚਨਾ"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ਚਿਹਰਾ"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"ਫਿੰਗਰਪ੍ਰਿੰਟ"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ਡਿਮ ਸਕ੍ਰੀਨ, ਟੱਚਸਕ੍ਰੀਨ, ਬੈਟਰੀ, ਸਮਾਰਟ ਚਮਕ, ਗਤੀਸ਼ੀਲ ਚਮਕ"</string>
@@ -3711,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"ਅੰਦਰੂਨੀ ਸਟੋਰੇਜ: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ਵਰਤੀ ਗਈ - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ਖਾਲੀ"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ਅਕਿਰਿਆਸ਼ੀਲ ਰਹਿਣ ਤੋਂ ਬਾਅਦ ਸਲੀਪ ਮੋਡ ਵਿੱਚ ਜਾਓ"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"ਵਾਲਪੇਪਰ, ਸਲੀਪ ਮੋਡ, ਫੌਂਟ ਆਕਾਰ"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<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>
@@ -4155,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"ਨੈੱਟਵਰਕ ਵੇਰਵੇ"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਨਾਮ ਤੁਹਾਡੇ ਫ਼ੋਨ \'ਤੇ ਐਪਾਂ ਨੂੰ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ। ਇਹ ਤੁਹਾਡੇ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਜਾਂ ਵਾਈ-ਫਾਈ ਹੌਟਸਪੌਟ ਸੈੱਟਅੱਪ ਕਰਨ \'ਤੇ ਹੋਰ ਲੋਕਾਂ ਵੱਲੋਂ ਵੀ ਦੇਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।"</string>
<string name="devices_title" msgid="7701726109334110391">"ਡੀਵਾਈਸਾਂ"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"ਉੱਚ ਬਾਰੰਬਾਰਤਾ ਪੈਨਲ"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ਆਭਾਸੀ ਉੱਚ ਬਾਰੰਬਾਰਤਾ ਪੈਨਲ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ਸਾਰੀਆਂ ਸੈਟਿੰਗਾਂ"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"ਤੁਹਾਡੀਆਂ ਸੈਟਿੰਗਾਂ"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"ਸੁਝਾਅ"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ਡਾਟਾ"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ਡਾਟਾ"</string>
<string name="choose_network_title" msgid="5702586742615861037">"ਨੈੱਟਵਰਕ ਚੁਣੋ"</string>
@@ -4170,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"ਨੈੱਟਵਰਕ ਨਹੀਂ ਮਿਲ ਸਕੇ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
<string name="forbidden_network" msgid="4626592887509826545">"(ਵਰਜਿਤ)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"ਕੋਈ ਸਿਮ ਕਾਰਡ ਨਹੀਂ"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"ਉੱਨਤ ਕਾਲਿੰਗ"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: ਤਰਜੀਹੀ WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: ਸਿਰਫ਼ GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: ਸਿਰਫ਼ WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: ਸਿਰਫ਼ CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: ਸਿਰਫ਼ EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: ਗਲੋਬਲ"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (ਸਿਫ਼ਾਰਸ਼ੀ)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (ਸਿਫ਼ਾਰਸ਼ੀ)"</string>
+ <string name="network_global" msgid="959947774831178632">"ਗਲੋਬਲ"</string>
+ <string name="label_available" msgid="1731547832803057893">"ਉਪਲਬਧ ਨੈੱਟਵਰਕ"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"ਖੋਜਿਆ ਜਾ ਰਿਹਾ ਹੈ…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> \'ਤੇ ਰਜਿਸਟਰ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"ਤੁਹਾਡਾ ਸਿਮ ਕਾਰਡ ਇਸ ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਹੋਣ ਦਿੰਦਾ ਹੈ।"</string>
+ <string name="connect_later" msgid="978991102125216741">"ਫਿਲਹਾਲ ਇਸ ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
+ <string name="registration_done" msgid="4573820010512184521">"ਨੈੱਟਵਰਕ \'ਤੇ ਰਜਿਸਟਰ ਕੀਤਾ ਗਿਆ।"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਨੈੱਟਵਰਕ ਚੁਣੋ"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"ਕੈਰੀਅਰ ਸੈਟਿੰਗਾਂ"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"ਡਾਟਾ ਸੇਵਾ ਸੈੱਟਅੱਪ ਕਰੋ"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"ਮੋਬਾਈਲ ਡਾਟਾ"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਦੀ ਕਿਸਮ"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"ਨੈੱਟਵਰਕ ਓਪਰੇਟਿੰਗ ਮੋਡ ਬਦਲੋ"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਦੀ ਕਿਸਮ"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"ਕੈਰੀਅਰ"</string>
+ <string name="call_category" msgid="8108654745239563833">"ਕਾਲਿੰਗ"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"ਕੈਰੀਅਰ ਵੀਡੀਓ ਕਾਲਿੰਗ"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"ਸਿਸਟਮ ਵੱਲੋਂ ਚੁਣਿਆ"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA ਰੋਮਿੰਗ ਮੋਡ ਬਦਲੋ"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"ਸਿਸਟਮ ਵੱਲੋਂ ਚੁਣਿਆ"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"ਨੈੱਟਵਰਕ"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"ਨੈੱਟਵਰਕ"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA ਗਾਹਕੀ"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM ਅਤੇ NV ਵਿਚਾਲੇ ਬਦਲੋ"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"ਗਾਹਕੀ"</string>
+ <string name="register_automatically" msgid="518185886971595020">"ਸਵੈਚਲਿਤ ਰਜਿਸਟਰੇਸ਼ਨ…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"ਕੀ ਡਾਟਾ ਰੋਮਿੰਗ ਵਿਕਲਪ ਵਰਤਣਾ ਹੈ?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"ਕੀਮਤਾਂ ਜਾਣਨ ਲਈ ਆਪਣੇ ਨੈੱਟਵਰਕ ਪ੍ਰਦਾਨਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"ਐਪ ਡਾਟਾ ਵਰਤੋਂ"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"ਅਵੈਧ ਨੈੱਟਵਰਕ ਮੋਡ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. ਅਣਡਿੱਠ ਕਰੋ।"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੋਣ \'ਤੇ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
+ <string name="see_more" msgid="5953815986207345223">"ਹੋਰ ਦੇਖੋ"</string>
+ <string name="see_less" msgid="1250265310929558370">"ਘੱਟ ਵੇਖੋ"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index 9ca2e8d..89a2dd9 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Traktuj jako sieć z pomiarem użycia danych"</item>
<item msgid="2266114985518865625">"Traktuj jako sieć bez pomiaru użycia danych"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Domyślny (używaj randomizowanego adresu MAC)"</item>
+ <item msgid="5398461510512959597">"Zaufany"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Nie"</item>
<item msgid="3863157480502955888">"Tak"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Debuguj"</item>
<item msgid="5286514712714822064">"Szczegółowe"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Tylko domowe"</item>
+ <item msgid="5034813753274486448">"Automatycznie"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Preferowany GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"Tylko GSM"</item>
+ <item msgid="488474605709912156">"Tylko WCDMA"</item>
+ <item msgid="1912421096218750039">"Automatyczny GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"Automatyczny CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"CDMA bez EvDo"</item>
+ <item msgid="4678789463133969294">"Tylko EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Globalny"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Tylko TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Globalny"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index e898a41..78105e6 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Utwórz"</string>
<string name="allow" msgid="3349662621170855910">"Zezwól"</string>
<string name="deny" msgid="6947806159746484865">"Odmów"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Zamknij"</string>
<string name="device_info_default" msgid="7847265875578739287">"Nieznane"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="few">Od zostania programistą dzielą Cię już tylko <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> kroki.</item>
@@ -922,6 +921,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wybierz co najmniej jedno pasmo dla hotspotu Wi-Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Ustawienia IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Prywatność"</string>
<string name="wifi_shared" msgid="844142443226926070">"Udostępnij innym użytkownikom urządzenia"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nie zmieniono)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Wybierz"</string>
@@ -1237,6 +1237,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Nie można zmienić kodu PIN.\nWpisany kod PIN może być błędny."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"Kod PIN do karty SIM został pomyślnie zmieniony"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Nie można zmienić stanu blokady karty SIM.\nWpisany kod PIN może być błędny."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Nie można wyłączyć kodu PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Nie można włączyć kodu PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Anuluj"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Znaleziono wiele kart SIM"</string>
@@ -3007,7 +3009,6 @@
<item quantity="other">Pokaż %d ukrytego elementu</item>
<item quantity="one">Pokaż %d ukryty element</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Zwiń"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Sieć i internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"sieć komórkowa"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"użycie danych"</string>
@@ -3077,6 +3078,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"ciemny motyw"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"błąd"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ekran dostosowany do otoczenia, ekran blokady"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"powiadomienie na ekranie blokady"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"twarz"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"odcisk palca"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"przyciemnianie ekranu, ekran dotykowy, bateria, inteligentne dostosowanie jasności, dynamiczna jasność"</string>
@@ -3416,7 +3418,7 @@
<string name="zen_mode_schedule_rule_days_none" msgid="4954143628634166317">"Brak"</string>
<string name="zen_mode_schedule_rule_days_all" msgid="146511166522076034">"Codziennie"</string>
<string name="zen_mode_schedule_alarm_title" msgid="767054141267122030">"Alarm może zastąpić godzinę zakończenia"</string>
- <string name="zen_mode_schedule_alarm_summary" msgid="4597050434723180422">"Zatrzymaj o godzinie zakończenia lub przy następnym alarmie, w zależności od tego, co nastąpi wcześniej"</string>
+ <string name="zen_mode_schedule_alarm_summary" msgid="4597050434723180422">"Zatrzymaj o godzinie zakończenia lub przy następnym alarmie, w zależności od tego, co nastąpi wcześniej."</string>
<string name="summary_divider_text" msgid="7228986578690919294">", "</string>
<string name="summary_range_symbol_combination" msgid="5695218513421897027">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
<string name="summary_range_verbal_combination" msgid="8467306662961568656">"Od: <xliff:g id="START">%1$s</xliff:g> do: <xliff:g id="END">%2$s</xliff:g>"</string>
@@ -3824,6 +3826,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Pamięć wewnętrzna: <xliff:g id="PERCENTAGE">%1$s</xliff:g> zajęte – <xliff:g id="FREE_SPACE">%2$s</xliff:g> wolne"</string>
<string name="display_summary" msgid="6737806235882127328">"Uśpienie po <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> bezczynności"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Tapeta, uśpienie, rozmiar czcionki"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Uśpienie po 10 minutach bezczynności"</string>
<string name="memory_summary" msgid="8080825904671961872">"Średnie wykorzystanie pamięci: <xliff:g id="USED_MEMORY">%1$s</xliff:g> z <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Jesteś zalogowany jako <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4300,10 +4304,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Szczegóły sieci"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Nazwa urządzenia jest widoczna dla aplikacji na telefonie. Mogą ją też zobaczyć inne osoby, gdy łączysz się z urządzeniami przez Bluetooth lub konfigurujesz hotspot Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Urządzenia"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Panel wys. częstotliwości"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Włącz wirtualny panel wys. częstotliwości"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Wszystkie ustawienia"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Twoje ustawienia"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Sugestie"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Dane CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dane CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Wybierz sieć"</string>
@@ -4315,4 +4317,74 @@
<string name="network_query_error" msgid="7487714485362598410">"Nie udało się znaleźć sieci. Spróbuj ponownie."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(dostęp zabroniony)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Brak karty SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Zaawansowane połączenia"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Preferowany tryb sieci: preferowany WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Preferowany tryb sieci: tylko GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Preferowany tryb sieci: tylko WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Preferowany tryb sieci: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Preferowany tryb sieci: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Preferowany tryb sieci: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Preferowany tryb sieci: tylko CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Preferowany tryb sieci: tylko EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Preferowany tryb sieci: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Preferowany tryb sieci: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Preferowany tryb sieci: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Preferowany tryb sieci: CDMA + LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Preferowany tryb sieci: globalny"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Preferowany tryb sieci: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Preferowany tryb sieci: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Preferowany tryb sieci: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Preferowany tryb sieci: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Preferowany tryb sieci: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Preferowany tryb sieci: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Preferowany tryb sieci: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Preferowany tryb sieci: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Preferowany tryb sieci: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Preferowany tryb sieci: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Preferowany tryb sieci: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Preferowany tryb sieci: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Preferowany tryb sieci: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (zalecana)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (zalecana)"</string>
+ <string name="network_global" msgid="959947774831178632">"Globalna"</string>
+ <string name="label_available" msgid="1731547832803057893">"Dostępne sieci"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Wyszukuję…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Rejestruję w sieci <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Karta SIM nie pozwala na połączenia z tą siecią."</string>
+ <string name="connect_later" msgid="978991102125216741">"Nie można teraz połączyć się z tą siecią. Spróbuj ponownie później."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Zarejestrowano w sieci."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Automatycznie wybieraj sieć"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Ustawienia operatora"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Skonfiguruj transmisję danych"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobilna transmisja danych"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Korzystaj z danych przy użyciu sieci komórkowej"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Preferowany typ sieci"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Zmień tryb działania sieci"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Preferowany typ sieci"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operator"</string>
+ <string name="call_category" msgid="8108654745239563833">"Połączenia"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Rozmowy wideo w sieci operatora"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Wybór systemu"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Zmień tryb roamingu CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Wybór systemu"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Sieć"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Sieć"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Subskrypcja CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Zmiana między RUIM/SIM i NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"subskrypcja"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatyczna rejestracja…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Zezwalać na roaming danych?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Aby poznać ceny, skontaktuj się z operatorem."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Użycie danych przez aplikację"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Nieprawidłowy tryb sieci <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignoruj."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Niedostępne po połączeniu z siecią <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Pokaż więcej"</string>
+ <string name="see_less" msgid="1250265310929558370">"Pokaż mniej"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="few"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> połączone urządzenia</item>
+ <item quantity="many"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> połączonych urządzeń</item>
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> połączonego urządzenia</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> połączone urządzenie</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Brak połączonych urządzeń"</string>
</resources>
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index dbe1168..c5a9295 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Tratar como limitada"</item>
<item msgid="2266114985518865625">"Tratar como ilimitada"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Padrão (usar MAC aleatório)"</item>
+ <item msgid="5398461510512959597">"Confiável"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Não"</item>
<item msgid="3863157480502955888">"Sim"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Depuração"</item>
<item msgid="5286514712714822064">"Detalhado"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Somente doméstica"</item>
+ <item msgid="5034813753274486448">"Automático"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA preferencial"</item>
+ <item msgid="807926878589867564">"Somente GSM"</item>
+ <item msgid="488474605709912156">"Somente WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA automático"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo automático"</item>
+ <item msgid="370391313511477301">"CDMA sem EvDo"</item>
+ <item msgid="4678789463133969294">"Somente EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"Somente TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"R-UIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 8a41a0c..f211f49 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Criar"</string>
<string name="allow" msgid="3349662621170855910">"Permitir"</string>
<string name="deny" msgid="6947806159746484865">"Recusar"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Fechar"</string>
<string name="device_info_default" msgid="7847265875578739287">"Desconhecido"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Faltam <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> etapas para você se tornar um desenvolvedor.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Escolha pelo menos uma banda para o ponto de acesso Wi-Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Configurações de IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacidade"</string>
<string name="wifi_shared" msgid="844142443226926070">"Compartilhar com outros usuários do dispositivo"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(sem alteração)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Selecione"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Não é possível alterar o PIN.\nPIN possivelmente incorreto."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN do chip alterado"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Não é possível alterar o estado de bloqueio do chip.\nPIN possivelmente incorreto."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Não é possível desativar o PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Não é possível ativar o PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Cancelar"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Vários SIMs encontrados"</string>
@@ -2931,7 +2933,6 @@
<item quantity="one">Mostrar %d item oculto</item>
<item quantity="other">Mostrar %d itens ocultos</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Recolher"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Rede e internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"rede móvel"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"uso de dados"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tema escuro"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"bug"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Exibição ambiente, exibição de tela de bloqueio"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificação na tela de bloqueio"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"rosto"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"impressão digital"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"escurecer tela, touchscreen, bateria, brilho inteligente, brilho dinâmico"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Armazenamento interno: <xliff:g id="PERCENTAGE">%1$s</xliff:g> de utilização - <xliff:g id="FREE_SPACE">%2$s</xliff:g> livres"</string>
<string name="display_summary" msgid="6737806235882127328">"Entrar no modo de suspensão após <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> de inatividade"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Plano de fundo, suspensão, tamanho da fonte"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Entrar no modo de suspensão após 10 minutos de inatividade"</string>
<string name="memory_summary" msgid="8080825904671961872">"Média de <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> de memória usados"</string>
<string name="users_summary" msgid="1674864467098487328">"Conectado como <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Detalhes da rede"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"O nome do seu dispositivo está visível para os apps no seu smartphone. Ele também pode ser visto por outras pessoas quando você se conecta a dispositivos Bluetooth ou configura um ponto de acesso Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Dispositivos"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Painel de alta frequência"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Ativar o Painel de alta frequência virtual"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Todas as configurações"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Suas configurações"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Sugestões"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Dados CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dados CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Escolher rede"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Não foi possível encontrar redes. Tente novamente."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(proibida)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Sem chip"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Chamada avançada"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Modo de rede preferencial: WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Modo de rede preferencial: somente GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Modo de rede preferencial: somente WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Modo de rede preferencial: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Modo de rede preferencial: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Modo de rede preferencial: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Modo de rede preferencial: somente CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Modo de rede preferencial: somente EvDO"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Modo de rede preferencial: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Modo de rede preferencial: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Modo de rede preferencial: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Modo de rede preferencial: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Modo de rede preferencial: global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Modo de rede preferencial: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Modo de rede preferencial: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Modo de rede preferencial: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Modo de rede preferencial: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Modo de rede preferencial: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Modo de rede preferencial: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Modo de rede preferencial: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Modo de rede preferencial: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Modo de rede preferencial: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Modo de rede preferencial: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Modo de rede preferencial: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Modo de rede preferencial: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Modo de rede preferencial: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (recomendado)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (recomendado)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Redes disponíveis"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Pesquisando…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registrando na rede <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Seu chip não permite uma conexão com esta rede."</string>
+ <string name="connect_later" msgid="978991102125216741">"Não é possível se conectar a esta rede no momento. Tente novamente mais tarde."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registrado na rede."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Selecionar a rede automaticamente"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Config. da operadora"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Configurar serviço de dados"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Dados móveis"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Acessar os dados pela rede móvel"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Tipo de rede preferencial"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Alterar o modo de operação de rede"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Tipo de rede preferencial"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operadora"</string>
+ <string name="call_category" msgid="8108654745239563833">"Chamadas"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videochamadas pela operadora"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Seleção de sistema"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Alterar o modo de roaming CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Seleção de sistema"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Rede"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Rede"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Inscrição CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Alterar entre R-UIM/SIM e NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"inscrição"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Registro automático…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Permitir roaming de dados?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Consulte os preços com seu provedor de rede."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Uso de dados do app"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Modo de rede <xliff:g id="NETWORKMODEID">%1$d</xliff:g> inválido. Ignorar."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Indisponível quando conectado à <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Ver mais"</string>
+ <string name="see_less" msgid="1250265310929558370">"Ver menos"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositivo conectado</item>
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositivos conectados</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Nenhum dispositivo conectado"</string>
</resources>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index 842e507..420f876 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Tratar como acesso limitado"</item>
<item msgid="2266114985518865625">"Tratar como acesso ilimitado"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Predefinição (utilizar MAC aleatório)"</item>
+ <item msgid="5398461510512959597">"Fidedigno"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Não"</item>
<item msgid="3863157480502955888">"Sim"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Depuração"</item>
<item msgid="5286514712714822064">"Verboso"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Apenas redes domésticas"</item>
+ <item msgid="5034813753274486448">"Automático"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA preferido"</item>
+ <item msgid="807926878589867564">"Apenas GSM"</item>
+ <item msgid="488474605709912156">"Apenas WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA automático"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo automático"</item>
+ <item msgid="370391313511477301">"CDMA sem EvDo"</item>
+ <item msgid="4678789463133969294">"Apenas EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Apenas TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index a4ddbfc..c807afe 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Criar"</string>
<string name="allow" msgid="3349662621170855910">"Permitir"</string>
<string name="deny" msgid="6947806159746484865">"Recusar"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Fechar"</string>
<string name="device_info_default" msgid="7847265875578739287">"Desconhecido"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Está agora a <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> passos de se tornar um programador.</item>
@@ -404,7 +403,7 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Concluído"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Utilizar rosto para"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Desbloq. dispositivo"</string>
- <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Início de ses. em apl./pagam."</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Início de sessão e pagamentos na aplicação"</string>
<string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Olhos abertos para desbloquear"</string>
<string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Para utilizar a autenticação facial, os olhos têm de estar abertos."</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Remover dados rosto"</string>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Selecione, pelo menos, uma banda para a zona Wi-Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Definições de IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacidade"</string>
<string name="wifi_shared" msgid="844142443226926070">"Partilhar com outros utilizadores do dispositivo"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(não alterado)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Selecione"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Não é possível alterar o PIN.\nPIN possivelmente incorreto."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN do SIM mudado com sucesso"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Não é possível alterar o estado de bloqueio do cartão SIM. \nPIN possivelmente incorreto."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Não é possível desativar o PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Não é possível ativar o PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Cancelar"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Vários SIMs encontrados"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Mostrar %d itens ocultos</item>
<item quantity="one">Mostrar %d item oculto</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Reduzir"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Rede e Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"rede móvel"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"utilização de dados"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tema escuro"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"erro"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Visualização de ambiente, visualização de ecrã de bloqueio"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificação no ecrã de bloqueio"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"rosto"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"impressão digital"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"escurecer ecrã, ecrã tátil, bateria, brilho inteligente, brilho dinâmico"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Memória de armazenamento interno: <xliff:g id="PERCENTAGE">%1$s</xliff:g> utilizado – <xliff:g id="FREE_SPACE">%2$s</xliff:g> livre(s)"</string>
<string name="display_summary" msgid="6737806235882127328">"Suspender após <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> de inatividade"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Imagem de fundo, suspensão, tamanho da letra"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Suspender após 10 minutos de inatividade"</string>
<string name="memory_summary" msgid="8080825904671961872">"Média de <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> de memória utilizado(s)"</string>
<string name="users_summary" msgid="1674864467098487328">"Sessão iniciada como <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Detalhes da rede"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"O nome do seu dispositivo é visível para as aplicações do telemóvel. Também pode ser visto por outras pessoas quando se liga a dispositivos Bluetooth ou configura uma zona Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Dispositivos"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Painel de alta frequência"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Ativar painel virtual de alta frequência"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Todas as definições"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"As suas definições"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Sugestões"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Dados de CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dados de CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Escolher rede"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Não foi possível encontrar qualquer rede. Tente novamente."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(proibida)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Nenhum cartão SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Chamadas avançadas"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Modo de rede preferido: apenas WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Modo de rede preferido: apenas GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Modo de rede preferido: apenas WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Modo de rede preferido: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Modo de rede preferido: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Modo de rede preferido: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Modo de rede preferido: apenas CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Modo de rede preferido: apenas EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Modo de rede preferido: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Modo de rede preferido: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Modo de rede preferido: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Modo de rede preferido: CDMA+LTE/EvDo"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Modo de rede preferido: global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Modo de rede preferido: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Modo de rede preferido: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Modo de rede preferido: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Modo de rede preferido: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Modo de rede preferido: TDSCDMA/WCDMAA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Modo de rede preferido: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Modo de rede preferido: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Modo de rede preferido: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Modo de rede preferido: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Modo de rede preferido: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Modo de rede preferido: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Modo de rede preferido: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Modo de rede preferido: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (recomendado)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (recomendado)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Redes disponíveis"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"A pesquisar…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"A registar na rede <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"O cartão SIM não permite uma ligação a esta rede."</string>
+ <string name="connect_later" msgid="978991102125216741">"De momento, não é possível estabelecer ligação a esta rede. Tente novamente mais tarde."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registado na rede."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Selecionar automaticamente a rede"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Definições do operador"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Configurar serviço de dados"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Dados móveis"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Aceder aos dados através de rede móvel"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Tipo de rede preferido"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Alterar o modo de funcionamento em rede"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Tipo de rede preferido"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operador"</string>
+ <string name="call_category" msgid="8108654745239563833">"Chamadas"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videochamadas do operador"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Selecionar sistema"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Alterar o modo de roaming CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Selecionar sistema"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Rede"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Rede"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Subscrição CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Alternar entre RUIM/SIM e NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"subscrição"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Registo automático…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Pretende permitir roaming de dados?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Consulte o seu fornecedor de serviços de rede para obter preços."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Utilização de dados da aplicação"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Modo de rede inválido: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignore."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Indisponível quando ligado a <xliff:g id="CARRIER">%1$s</xliff:g>."</string>
+ <string name="see_more" msgid="5953815986207345223">"Ver mais"</string>
+ <string name="see_less" msgid="1250265310929558370">"Ver menos"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositivos ligados</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> dispositivo ligado</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Nenhum dispositivo ligado"</string>
</resources>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index dbe1168..c5a9295 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Tratar como limitada"</item>
<item msgid="2266114985518865625">"Tratar como ilimitada"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Padrão (usar MAC aleatório)"</item>
+ <item msgid="5398461510512959597">"Confiável"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Não"</item>
<item msgid="3863157480502955888">"Sim"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Depuração"</item>
<item msgid="5286514712714822064">"Detalhado"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Somente doméstica"</item>
+ <item msgid="5034813753274486448">"Automático"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA preferencial"</item>
+ <item msgid="807926878589867564">"Somente GSM"</item>
+ <item msgid="488474605709912156">"Somente WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA automático"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo automático"</item>
+ <item msgid="370391313511477301">"CDMA sem EvDo"</item>
+ <item msgid="4678789463133969294">"Somente EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"Somente TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"R-UIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 8a41a0c..f211f49 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Criar"</string>
<string name="allow" msgid="3349662621170855910">"Permitir"</string>
<string name="deny" msgid="6947806159746484865">"Recusar"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Fechar"</string>
<string name="device_info_default" msgid="7847265875578739287">"Desconhecido"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Faltam <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> etapas para você se tornar um desenvolvedor.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Escolha pelo menos uma banda para o ponto de acesso Wi-Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Configurações de IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacidade"</string>
<string name="wifi_shared" msgid="844142443226926070">"Compartilhar com outros usuários do dispositivo"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(sem alteração)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Selecione"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Não é possível alterar o PIN.\nPIN possivelmente incorreto."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN do chip alterado"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Não é possível alterar o estado de bloqueio do chip.\nPIN possivelmente incorreto."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Não é possível desativar o PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Não é possível ativar o PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Cancelar"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Vários SIMs encontrados"</string>
@@ -2931,7 +2933,6 @@
<item quantity="one">Mostrar %d item oculto</item>
<item quantity="other">Mostrar %d itens ocultos</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Recolher"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Rede e internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"rede móvel"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"uso de dados"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tema escuro"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"bug"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Exibição ambiente, exibição de tela de bloqueio"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificação na tela de bloqueio"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"rosto"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"impressão digital"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"escurecer tela, touchscreen, bateria, brilho inteligente, brilho dinâmico"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Armazenamento interno: <xliff:g id="PERCENTAGE">%1$s</xliff:g> de utilização - <xliff:g id="FREE_SPACE">%2$s</xliff:g> livres"</string>
<string name="display_summary" msgid="6737806235882127328">"Entrar no modo de suspensão após <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> de inatividade"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Plano de fundo, suspensão, tamanho da fonte"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Entrar no modo de suspensão após 10 minutos de inatividade"</string>
<string name="memory_summary" msgid="8080825904671961872">"Média de <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> de memória usados"</string>
<string name="users_summary" msgid="1674864467098487328">"Conectado como <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Detalhes da rede"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"O nome do seu dispositivo está visível para os apps no seu smartphone. Ele também pode ser visto por outras pessoas quando você se conecta a dispositivos Bluetooth ou configura um ponto de acesso Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Dispositivos"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Painel de alta frequência"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Ativar o Painel de alta frequência virtual"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Todas as configurações"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Suas configurações"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Sugestões"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Dados CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dados CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Escolher rede"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Não foi possível encontrar redes. Tente novamente."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(proibida)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Sem chip"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Chamada avançada"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Modo de rede preferencial: WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Modo de rede preferencial: somente GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Modo de rede preferencial: somente WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Modo de rede preferencial: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Modo de rede preferencial: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Modo de rede preferencial: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Modo de rede preferencial: somente CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Modo de rede preferencial: somente EvDO"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Modo de rede preferencial: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Modo de rede preferencial: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Modo de rede preferencial: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Modo de rede preferencial: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Modo de rede preferencial: global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Modo de rede preferencial: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Modo de rede preferencial: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Modo de rede preferencial: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Modo de rede preferencial: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Modo de rede preferencial: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Modo de rede preferencial: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Modo de rede preferencial: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Modo de rede preferencial: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Modo de rede preferencial: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Modo de rede preferencial: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Modo de rede preferencial: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Modo de rede preferencial: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Modo de rede preferencial: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (recomendado)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (recomendado)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Redes disponíveis"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Pesquisando…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registrando na rede <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Seu chip não permite uma conexão com esta rede."</string>
+ <string name="connect_later" msgid="978991102125216741">"Não é possível se conectar a esta rede no momento. Tente novamente mais tarde."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registrado na rede."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Selecionar a rede automaticamente"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Config. da operadora"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Configurar serviço de dados"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Dados móveis"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Acessar os dados pela rede móvel"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Tipo de rede preferencial"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Alterar o modo de operação de rede"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Tipo de rede preferencial"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operadora"</string>
+ <string name="call_category" msgid="8108654745239563833">"Chamadas"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videochamadas pela operadora"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Seleção de sistema"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Alterar o modo de roaming CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Seleção de sistema"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Rede"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Rede"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Inscrição CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Alterar entre R-UIM/SIM e NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"inscrição"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Registro automático…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Permitir roaming de dados?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Consulte os preços com seu provedor de rede."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Uso de dados do app"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Modo de rede <xliff:g id="NETWORKMODEID">%1$d</xliff:g> inválido. Ignorar."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Indisponível quando conectado à <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Ver mais"</string>
+ <string name="see_less" msgid="1250265310929558370">"Ver menos"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositivo conectado</item>
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> dispositivos conectados</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Nenhum dispositivo conectado"</string>
</resources>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index 589b9e6..510bedb 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Tratați ca fiind contorizată"</item>
<item msgid="2266114985518865625">"Tratați ca fiind necontorizată"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Standard (folosiți MAC randomizat)"</item>
+ <item msgid="5398461510512959597">"De încredere"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Nu"</item>
<item msgid="3863157480502955888">"Da"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Remediați erorile"</item>
<item msgid="5286514712714822064">"Detaliat"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Doar domiciliu"</item>
+ <item msgid="5034813753274486448">"Automat"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA preferat"</item>
+ <item msgid="807926878589867564">"Numai GSM"</item>
+ <item msgid="488474605709912156">"Numai WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA automat"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo automat"</item>
+ <item msgid="370391313511477301">"CDMA fără EvDo"</item>
+ <item msgid="4678789463133969294">"Numai EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Numai TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 01f7b00..ab4d0c4 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Creați"</string>
<string name="allow" msgid="3349662621170855910">"Permiteți"</string>
<string name="deny" msgid="6947806159746484865">"Refuzați"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Închideți"</string>
<string name="device_info_default" msgid="7847265875578739287">"Necunoscut"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="few">Mai aveți <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> pași pentru a deveni dezvoltator.</item>
@@ -907,6 +906,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Alegeți cel puțin o bandă pentru hotspot Wi-Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Setări IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Confidențialitate"</string>
<string name="wifi_shared" msgid="844142443226926070">"Permiteți accesul și altor utilizatori ai dispozitivului"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(neschimbate)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Selectați"</string>
@@ -1221,6 +1221,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Nu se poate schimba codul PIN.\nCodul PIN poate fi incorect."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"Codul PIN pentru SIM a fost modificat"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Nu se poate modifica starea de blocare a cardului SIM.\nCodul PIN poate fi incorect."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Nu se poate dezactiva codul PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Nu se poate activa codul PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Anulați"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Mai multe carduri SIM găsite"</string>
@@ -2969,7 +2971,6 @@
<item quantity="other">Afișați %d de elemente ascunse</item>
<item quantity="one">Afișați %d element ascuns</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Restrângeți"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Rețea și internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"rețeaua mobilă"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"utilizarea datelor"</string>
@@ -3039,6 +3040,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"temă întunecată"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"eroare"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Afișare ambient, Afișare ecran de blocare"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificare ecran de blocare"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"chip"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"amprentă"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"reduceți luminozitatea ecranului, ecran tactil, luminozitate inteligentă, luminozitate dinamică"</string>
@@ -3767,6 +3769,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Memorie internă: <xliff:g id="PERCENTAGE">%1$s</xliff:g> folosită - <xliff:g id="FREE_SPACE">%2$s</xliff:g> liberă"</string>
<string name="display_summary" msgid="6737806235882127328">"Se dezactivează după <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> de inactivitate"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Imagine de fundal, inactivitate, dimensiunea fontului"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Se dezactivează după 10 minute de inactivitate"</string>
<string name="memory_summary" msgid="8080825904671961872">"Memorie folosită în medie: <xliff:g id="USED_MEMORY">%1$s</xliff:g> din <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"V-ați conectat ca <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4227,10 +4231,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Detalii despre rețea"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Numele dispozitivului este vizibil aplicațiilor de pe telefon. Poate fi văzut și de alte persoane când vă conectați la dispozitivele Bluetooth sau configurați un hotspot Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Dispozitive"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Panou de frecvență înaltă"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Activați panoul virtual de frecvență înaltă"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Toate setările"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Setări"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Sugestii"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Date CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Date CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Alegeți o rețea"</string>
@@ -4242,4 +4244,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Nu s-au găsit rețele. Încercați din nou."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(interzisă)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Niciun card SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Apelare avansată"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Mod de rețea preferat: de preferat WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Mod de rețea preferat: numai GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Mod de rețea preferat: numai WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Mod de rețea preferat: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Mod de rețea preferat: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Mod de rețea preferat: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Mod de rețea preferat: numai CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Mod de rețea preferat: numai EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Mod de rețea preferat: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Mod de rețea preferat: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Mod de rețea preferat: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Mod de rețea preferat: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Mod de rețea preferat: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Mod de rețea preferat: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Mod de rețea preferat: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Mod de rețea preferat: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Mod de rețea preferat: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Mod de rețea preferat: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Mod de rețea preferat: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Mod de rețea preferat: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Mod de rețea preferat: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Mod de rețea preferat: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Mod de rețea preferat: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Mod de rețea preferat: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Mod de rețea preferat: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Mod de rețea preferat: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (recomandat)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (recomandat)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Rețele disponibile"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Se caută…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Se înregistrează pe <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Cardul dvs. SIM nu permite conexiunea la această rețea."</string>
+ <string name="connect_later" msgid="978991102125216741">"Nu se poate efectua conectarea la această rețea chiar acum. Încercați din nou mai târziu."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Înregistrat în rețea."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Selectați automat rețeaua"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Setări operator"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Configurați serviciul de date"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Date mobile"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Accesați datele folosind rețeaua mobilă"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Tipul de rețea preferat"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Schimbați modul de operare a rețelei"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Tipul de rețea preferat"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operator"</string>
+ <string name="call_category" msgid="8108654745239563833">"Se apelează"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Apelare video prin operator"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Selectați sistemul"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Schimbați modul de roaming CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Selectați sistemul"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Rețea"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Rețea"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Abonament CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Comutați între RUIM/SIM și NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"abonament"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Înregistrare automată…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Permiteți roamingul de date?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Consultați furnizorul de rețea în privința prețurilor."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Utilizarea datelor în aplicație"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Mod nevalid de rețea <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignoră."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Indisponibil când este conectat la <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Vedeți mai multe"</string>
+ <string name="see_less" msgid="1250265310929558370">"Afișați mai puține"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index 39836e8..d4f5eee 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"С тарификацией"</item>
<item msgid="2266114985518865625">"Без тарификации"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"По умолчанию (использовать случайный MAC-адрес)"</item>
+ <item msgid="5398461510512959597">"Надежный"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Нет"</item>
<item msgid="3863157480502955888">"Да"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Сведения об отладке"</item>
<item msgid="5286514712714822064">"Подробная информация"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Только домашние сети"</item>
+ <item msgid="5034813753274486448">"Автоматически"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA (предпочтительный режим)"</item>
+ <item msgid="807926878589867564">"Только GSM"</item>
+ <item msgid="488474605709912156">"Только WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA (авторежим)"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo (авторежим)"</item>
+ <item msgid="370391313511477301">"CDMA без EvDo"</item>
+ <item msgid="4678789463133969294">"Только EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA и LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Весь мир"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Только TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Весь мир"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 32fac9f..4833b3e 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Создать"</string>
<string name="allow" msgid="3349662621170855910">"Разрешить"</string>
<string name="deny" msgid="6947806159746484865">"Отклонить"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Закрыть"</string>
<string name="device_info_default" msgid="7847265875578739287">"Неизвестно"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Вы почти у цели. Остался <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> шаг.</item>
@@ -922,6 +921,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 ГГц"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Выберите хотя бы один диапазон частот для точек доступа Wi-Fi."</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Настройки IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Конфиденциальность"</string>
<string name="wifi_shared" msgid="844142443226926070">"Поделиться с другими пользователями устройства"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(без изменений)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Выберите"</string>
@@ -1237,6 +1237,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Не удается изменить PIN.\nВозможно, код введен неверно."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN-код SIM-карты успешно изменен"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Не удалось изменить состояние блокировки SIM-карты.\nВозможно, введен неверный PIN-код."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Не удалось отключить PIN-код"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Не удалось включить PIN-код"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"ОК"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Отмена"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Обнаружено более одной SIM-карты"</string>
@@ -3007,7 +3009,6 @@
<item quantity="many">Показать %d скрытых объектов</item>
<item quantity="other">Показать %d скрытых объекта</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Свернуть"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Сеть и Интернет"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"моб. сети"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"передача данных"</string>
@@ -3077,6 +3078,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"темная тема"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"ошибка"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Автоматическое включение экрана, заблокированный экран"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"уведомление на заблокированном экране"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"лицо"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"отпечаток пальца"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"снижение яркости, сенсорный экран, батарея, умная яркость, динамическая яркость"</string>
@@ -3824,6 +3826,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Внутренний накопитель: использовано <xliff:g id="PERCENTAGE">%1$s</xliff:g>, свободно <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"Устройство переходит в спящий режим после <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> бездействия"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Обои, спящий режим, размер шрифта"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Устройство переходит в спящий режим через 10 минут бездействия"</string>
<string name="memory_summary" msgid="8080825904671961872">"Используется в среднем <xliff:g id="USED_MEMORY">%1$s</xliff:g> из <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Вы вошли как <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4300,10 +4304,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Сведения о сети"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"У приложений на телефоне есть доступ к названию устройства. Его могут видеть другие пользователи, когда вы подключаетесь к устройствам по Bluetooth или настраиваете точку доступа Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Устройства"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"High Frequency Panel"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Включить виртуальную High Frequency Panel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Все настройки"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Ваши настройки"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Подсказки"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Данные CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Данные CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Выбрать сеть"</string>
@@ -4315,4 +4317,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Сети не найдены. Повторите попытку."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(доступ запрещен)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Нет SIM-карты."</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Расширенный вызов"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Предпочтительный режим: WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Предпочтительный режим: только GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Предпочтительный режим: только WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Предпочтительный режим: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Предпочтительный режим: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Предпочтительный режим: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Предпочтительный режим: только CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Предпочтительный режим: только EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Предпочтительный режим: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Предпочтительный режим: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Предпочтительный режим: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Предпочтительный режим: CDMA и LTE/EvDo"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Предпочтительный режим: весь мир"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Предпочтительный режим: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Предпочтительный режим: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Предпочтительный режим: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Предпочтительный режим: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Предпочтительный режим: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Предпочтительный режим: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Предпочтительный режим: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Предпочтительный режим: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Предпочтительный режим: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Предпочтительный режим: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Предпочтительный режим: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Предпочтительный режим: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Предпочтительный режим: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (рекомендуется)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (рекомендуется)"</string>
+ <string name="network_global" msgid="959947774831178632">"Весь мир"</string>
+ <string name="label_available" msgid="1731547832803057893">"Доступные сети"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Поиск…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Регистрация в сети \"<xliff:g id="NETWORK">%s</xliff:g>\"…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Ваша SIM-карта не поддерживает подключение к этой сети."</string>
+ <string name="connect_later" msgid="978991102125216741">"Не удалось подключиться к сети. Повторите попытку позже."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Регистрация в сети завершена."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Выбирать сеть автоматически"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Настройки оператора"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Настройка передачи данных"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Мобильный Интернет"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Доступ к Интернету по мобильной сети"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Предпочтительный тип сети"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Изменение режима работы сети"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Предпочтительный тип сети"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Оператор"</string>
+ <string name="call_category" msgid="8108654745239563833">"Вызовы"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Видеозвонки"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Выбор системы"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Изменить режим роуминга CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Выбор системы"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Сеть"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Выбрать сеть"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Подписка на CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Переключение между RUIM/SIM и NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"подписка"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Автоматическая регистрация"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Разрешить интернет-роуминг?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Информацию о тарифах вы можете получить у интернет-провайдера."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Трафик приложений"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Недопустимый режим сети (<xliff:g id="NETWORKMODEID">%1$d</xliff:g>). Не используется."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Недоступны при подключении к <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Ещё"</string>
+ <string name="see_less" msgid="1250265310929558370">"Скрыть"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
index 840f383..023b55d 100644
--- a/res/values-si/arrays.xml
+++ b/res/values-si/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"මනින ලද ලෙස සලකන්න"</item>
<item msgid="2266114985518865625">"නොමනින ලද ලෙස සලකන්න"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"පෙරනිමි (සසම්භාවී MAC භාවිත කරන්න)"</item>
+ <item msgid="5398461510512959597">"විශ්වාසවන්තයි"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"නැත"</item>
<item msgid="3863157480502955888">"ඔව්"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"නිදොස්කරණය"</item>
<item msgid="5286514712714822064">"කථික"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"නිවසේ පමණි"</item>
+ <item msgid="5034813753274486448">"ස්වයංක්රිය"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA කැමතියි"</item>
+ <item msgid="807926878589867564">"GSM පමණි"</item>
+ <item msgid="488474605709912156">"WCDMA පමණි"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA ස්වයංක්රිය"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo ස්වයංක්රිය"</item>
+ <item msgid="370391313511477301">"EvDo රහිත CDMA"</item>
+ <item msgid="4678789463133969294">"EvDo පමණි"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"ගෝලීය"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA පමණි"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"ගෝලීය"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 5e019a7..79e92a4 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"නිර්මාණය කරන්න"</string>
<string name="allow" msgid="3349662621170855910">"අවසර දෙන්න"</string>
<string name="deny" msgid="6947806159746484865">"ප්රතික්ෂේප කරන්න"</string>
- <string name="dlg_close" msgid="7471087791340790015">"වසන්න"</string>
<string name="device_info_default" msgid="7847265875578739287">"නොදනී"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">ඔබට දැන් සංවර්ධකයකු වීමට ඇත්තේ පියවර <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> කි.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi-Fi හොට්ස්පොට් සඳහා අවම වශයෙන් එක් කලාපයක් තෝරන්න:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP සැකසීම්"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"රහස්යතාව"</string>
<string name="wifi_shared" msgid="844142443226926070">"අනෙකුත් උපාංග පරිශීලකයන් සමග බෙදා ගන්න"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(වෙනස් නොකළ)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"කරුණාකර තෝරන්න"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PIN එක වෙනස් කළ නොහැක.\nවැරදි PIN එකක් විය හැක."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN සාර්ථකව වෙනස් කෙරුණි."</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"SIM කාඩ් පතෙහි අඟුළු තත්වය වෙනස් කළ නොහැකි විය.\nබොහෝදුරට වැරදි PIN එකක් විය හැකිය."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN අබල කිරීමට නොහැකිය."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN සබල කිරීමට නොහැකිය."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"හරි"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"අවලංගු කරන්න"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"SIM කිහිපයක් සොයාගන්නා ලදි."</string>
@@ -2931,7 +2933,6 @@
<item quantity="one">සඟවන ලද අයිතම %dක් පෙන්වන්න</item>
<item quantity="other">සඟවන ලද අයිතම %dක් පෙන්වන්න</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"හකුළන්න"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"ජාලය සහ අන්තර්ජාලය"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"ජංගම"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"දත්ත භාවිතය"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"අඳුරු තේමාව"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"දෝෂය"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"පරිසර දර්ශකය, අගුලු තිර දර්ශකය"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"අගුළු තිර දැනුම්දීම"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"මුහුණ"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"ඇඟිලි සලකුණ"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"අඳුරු තිරය, ස්පර්ශ තිරය, බැටරිය, ස්මාර්ට් දීප්තිය, ගතික දීප්තිය"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"අභ්යන්තර ආචයනය: <xliff:g id="PERCENTAGE">%1$s</xliff:g> භාවිතා කර ඇත - <xliff:g id="FREE_SPACE">%2$s</xliff:g> හිස්ය"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>ක අක්රිය කාලයකට පසුව නිදන්න"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"වෝල්පේපරය, නින්ද, ෆොන්ට තරම"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<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>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"ජාල විස්තර"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"ඔබගේ උපාංගයේ නම ඔබගේ දුරකථනයේ යෙදුම්වලට දෘශ්යමානය. ඔබ බ්ලූටූත්වලට සම්බන්ධ වූ විට හෝ Wi-Fi හොට්ස්පොට් එකක් පිහිට වූ විට වෙනත් පුද්ගලයන්ද එය දැකිය හැකිය."</string>
<string name="devices_title" msgid="7701726109334110391">"උපාංග"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"අධිසංඛ්යාත පුවරුව"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"අතථ්ය අධිසංඛ්යාත පුවරුව සබල කරන්න"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"සියලු සැකසීම්"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"ඔබගේ සැකසීම්"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"යෝජනා"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS දත්ත"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS දත්ත"</string>
<string name="choose_network_title" msgid="5702586742615861037">"ජාලය තෝරන්න"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"ජාල සොයා ගත නොහැකි විය. නැවත උත්සාහ කරන්න."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(තහනම්)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM කාඩ්පතක් නැත"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"උසස් ඇමතුම"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"ප්රිය ජාල ආකාරය: WCDMA කැමතියි"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"ප්රිය ජාල ආකාරය: GSM පමණි"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"ප්රිය ජාල ආකාරය: WCDMA පමණි"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"ප්රියකරන ජාල ආකාරය: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"ප්රිය ජාල ආකාරය: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"ප්රිය ජාල ආකාරය: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"ප්රිය ජාල ආකාරය: CDMA පමණි"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"ප්රියකරන ජාල ආකාරය: EvDo පමණි"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"ප්රිය ජාල ආකාරය: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"ප්රිය ජාල ආකාරය: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"ප්රිය ජාල ආකාරය: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"ප්රිය ජාල ආකාරය: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"ප්රිය ජාල ආකාරය: ගෝලීය"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"ප්රිය ජාල ආකාරය: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"කැමති ජාල ආකාරය: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"ප්රිය ජාල ආකාරය: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"මනාප ජාල ප්රකාරය: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"වඩා කැමති ජාල ප්රකාරය: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"වඩා කැමති ජාල ප්රකාරය: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"වඩා කැමති ජාල ප්රකාරය: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"වඩා කැමති ජාල ප්රකාරය: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"වඩා කැමති ජාල ප්රකාරය: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"වඩා කැමති ජාල ප්රකාරය: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"වඩා කැමති ජාල ප්රකාරය: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"වඩා කැමති ජාල ප්රකාරය: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"වඩා කැමති ජාල ප්රකාරය: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (නිර්දෙශිත)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (නිර්දෙශිත)"</string>
+ <string name="network_global" msgid="959947774831178632">"ගෝලීය"</string>
+ <string name="label_available" msgid="1731547832803057893">"තිබෙන ජාල"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"සොයමින්…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> මත ලියාපදිංචි වෙමින්…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"ඔබගේ SIM කාඩ් පත මෙම ජාලය වෙත සම්බන්ධ වීමට අවසර නොදේ."</string>
+ <string name="connect_later" msgid="978991102125216741">"මෙම අවස්ථාවේදී මෙම ජාලයට සම්බන්ධ විය නොහැක. පසුව යළි උත්සාහ කරන්න."</string>
+ <string name="registration_done" msgid="4573820010512184521">"ජාලය මත ලියාපදිංචි වෙමින්."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"ස්වයංක්රියව ජාලය තෝරන්න"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"වාහකයේ සැකසීම්"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"දත්ත සේවාව සකසන්න"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"ජංගම දත්ත"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"ජංගම ජාලය භාවිතයෙන් දත්ත වෙත ප්රවේශ වන්න"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"ප්රියකරන ජාල වර්ගය"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"ජාල මෙහෙයුම් ආකාරය වෙනස් කරන්න"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"ප්රියකරන ජාල වර්ගය"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"වාහකය"</string>
+ <string name="call_category" msgid="8108654745239563833">"අමතමින්"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"වාහක වීඩියෝ ඇමතීම"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"පද්ධතිය තේරුම"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA රෝමින් ආකාරය වෙනස් කරන්න"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"පද්ධතිය තේරුම"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"ජාලය"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"ජාලය"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA දායකත්වය"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM සහ NV අතර වෙනස් කරන්න"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"දායකත්වය"</string>
+ <string name="register_automatically" msgid="518185886971595020">"ස්වයංක්රීය ලියාපදිංචිය…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"දත්ත රෝමින් සඳහා අවසර දෙන්න ද"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"මිල ගණන් සඳහා ඔබගේ ජාල සැපයුම්කරු සමඟ පරීක්ෂා කරන්න."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"යෙදුම් දත්ත භාවිතය"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"වලංගු නොවන ජාල ප්රකාරය <xliff:g id="NETWORKMODEID">%1$d</xliff:g> . නොසලකා හරින්න."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> වෙත සම්බන්ධ වූ විට නොමැත"</string>
+ <string name="see_more" msgid="5953815986207345223">"තව බලන්න"</string>
+ <string name="see_less" msgid="1250265310929558370">"අඩුවෙන් බලන්න"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index bb15750..b6da27a 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Považovať za sieť s meraním dát"</item>
<item msgid="2266114985518865625">"Považovať za sieť bez merania dát"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Predvolené (použiť náhodnú adresu MAC)"</item>
+ <item msgid="5398461510512959597">"Dôveryhodné"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Nie"</item>
<item msgid="3863157480502955888">"Áno"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Ladenie"</item>
<item msgid="5286514712714822064">"Podrobné informácie"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Iba plocha"</item>
+ <item msgid="5034813753274486448">"Automatický"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA – preferované"</item>
+ <item msgid="807926878589867564">"Iba GSM"</item>
+ <item msgid="488474605709912156">"Iba WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA – automaticky"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo – automaticky"</item>
+ <item msgid="370391313511477301">"CDMA bez EvDo"</item>
+ <item msgid="4678789463133969294">"Iba EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Globálne"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Iba TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Globálne"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 5ec90b0..75b9e5a 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Vytvoriť"</string>
<string name="allow" msgid="3349662621170855910">"Povoliť"</string>
<string name="deny" msgid="6947806159746484865">"Odmietnuť"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Zavrieť"</string>
<string name="device_info_default" msgid="7847265875578739287">"Neznáme"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="few">Ešte <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> krok a bude z vás vývojár.</item>
@@ -922,6 +921,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Vyberte aspoň jedno pásmo pre hotspot Wi-Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Nastavenia adresy IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Ochrana súkromia"</string>
<string name="wifi_shared" msgid="844142443226926070">"Zdieľať s ostatnými používateľmi zariadenia"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nezmenené)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Vyberte"</string>
@@ -1237,6 +1237,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Kód PIN nie je možné zmeniť.\nKód PIN je zrejme nesprávny."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"Kód PIN SIM karty bol zmenený."</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Stav zámku SIM karty nie je možné zmeniť.\nZrejme ste zadali nesprávny kód PIN."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Kód PIN sa nedá deaktivovať."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Kód PIN sa nedá aktivovať."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Zrušiť"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Našlo sa viacero SIM kariet"</string>
@@ -3007,7 +3009,6 @@
<item quantity="other">Zobraziť %d skrytých položiek</item>
<item quantity="one">Zobraziť %d skrytú položku</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Zbaliť"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Sieť a internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilné"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"spotreba dát"</string>
@@ -3077,6 +3078,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tmavý motív"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"chyba"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambientné zobrazenie, zobrazenie uzamknutej obrazovky"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"upozornenie na uzamknutej obrazovke"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"tvár"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"odtlačok prsta"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"stmavenie obrazovky, dotyková obrazovka, batéria, inteligentný jas, dynamický jas"</string>
@@ -3824,6 +3826,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Vnútorné úložisko: využité <xliff:g id="PERCENTAGE">%1$s</xliff:g> – voľné <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"Režim spánku sa spustí po <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> nečinnosti"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Tapeta, režim spánku, veľkosť písma"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Režim spánku sa spustí po 10 minútach nečinnosti"</string>
<string name="memory_summary" msgid="8080825904671961872">"Využíva sa v priemere <xliff:g id="USED_MEMORY">%1$s</xliff:g> z celkovej pamäte <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Prihlásený používateľ <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4300,10 +4304,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Podrobnosti siete"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Názov zariadenia je viditeľný pre aplikácie v telefóne. Môže sa zobrazovať aj ostatným používateľom po pripojení k zariadeniu Bluetooth alebo nastavení hotspotu Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Zariadenia"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Vysokofrekvenčný panel"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Povoliť virtuálny vysokofrekvenčný panel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Všetky nastavenia"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Vaše nastavenia"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Návrhy"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Dáta CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dáta CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Vybrať sieť"</string>
@@ -4315,4 +4317,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Nepodarilo sa nájsť siete. Skúste to znova."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(zakázané)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Žiadna SIM karta"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Rozšírené volanie"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Preferovaný režim siete: preferované WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Preferovaný režim siete: iba GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Preferovaný režim siete: iba WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Preferovaný režim siete: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Preferovaný režim siete: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Preferovaný režim siete: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Preferovaný režim siete: iba CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Preferovaný režim siete: iba EVDO"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Preferovaný režim siete: CDMA / EvDo / GSM / WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Preferovaný režim siete: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Preferovaný režim siete: GSM / WCDMA / LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Preferovaný režim siete: CDMA + LTE / EvDo"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Preferovaný režim siete: globálny"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Preferovaný režim siete: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Uprednostňovaný režim siete: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Preferovaný režim siete: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Preferovaný režim siete: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Preferovaný režim siete: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Preferovaný režim siete: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Preferovaný režim siete: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Preferovaný režim siete: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Preferovaný režim siete: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Preferovaný režim siete: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Preferovaný režim siete: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Preferovaný režim siete: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Preferovaný režim siete: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (odporúčané)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (odporúčané)"</string>
+ <string name="network_global" msgid="959947774831178632">"Globálne"</string>
+ <string name="label_available" msgid="1731547832803057893">"Dostupné siete"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Hľadá sa…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Prebieha registrácia v sieti <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Vaša SIM karta nepovoľuje pripojenie k tejto sieti."</string>
+ <string name="connect_later" msgid="978991102125216741">"V tejto chvíli sa nedá pripojiť k sieti. Skúste to znova neskôr."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Prihlásenie k sieti prebehlo úspešne."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Vybrať sieť automaticky"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Nastavenia operátora"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Nastaviť dátovú službu"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobilné dáta"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Prístup k dátam pomocou mobilnej siete"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Preferovaný typ siete"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Zmeniť prevádzkový režim siete"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Preferovaný typ siete"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operátor"</string>
+ <string name="call_category" msgid="8108654745239563833">"Volanie"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videohovory prostredníctvom operátora"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Výber systému"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Zmeniť režim roamingu CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Výber systému"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Sieť"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Sieť"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Odber CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Prepnúť medzi RUIM/SIM a NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"odber"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatická registrácia…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Chcete povoliť dátový roaming?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Informácie o cenách získate od svojho poskytovateľa siete."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Spotreba dát aplikácie"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Neplatný režim siete <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorovať."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nie je k dispozícii pri pripojení k operátorovi <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Zobraziť viac"</string>
+ <string name="see_less" msgid="1250265310929558370">"Zobraziť menej"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index adbc0ba..4861923 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Obravnavaj kot omrežje z omejeno količino prenosa podatkov"</item>
<item msgid="2266114985518865625">"Obravnavaj kot omrežje z neomejeno količino prenosa podatkov"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Privzeto (uporabi naključno izbran naslov MAC)"</item>
+ <item msgid="5398461510512959597">"Zaupanja vredno"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Ne"</item>
<item msgid="3863157480502955888">"Da"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Odpravljanje napak"</item>
<item msgid="5286514712714822064">"Podrobno"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Samo domače"</item>
+ <item msgid="5034813753274486448">"Samodejno"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Prednostno GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"Samo GSM"</item>
+ <item msgid="488474605709912156">"Samo WCDMA"</item>
+ <item msgid="1912421096218750039">"Samodejno GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"Samodejno CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"CDMA brez EvDo"</item>
+ <item msgid="4678789463133969294">"Samo EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Globalno"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Samo TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Globalno"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 3e84831..b4c4969 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Ustvari"</string>
<string name="allow" msgid="3349662621170855910">"Dovoli"</string>
<string name="deny" msgid="6947806159746484865">"Zavrni"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Zapri"</string>
<string name="device_info_default" msgid="7847265875578739287">"Neznano"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one"><xliff:g id="STEP_COUNT_1">%1$d</xliff:g> korak vas loči od tega, da postanete razvijalec.</item>
@@ -922,6 +921,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Izberite vsaj en pas za dostopno točko Wi‑Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Nastavitve naslova IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Zasebnost"</string>
<string name="wifi_shared" msgid="844142443226926070">"Skupna raba z drugimi uporabniki naprave"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nespremenjeno)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Izberite"</string>
@@ -1237,6 +1237,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Kode PIN ni mogoče spremeniti.\nKoda PIN je morda napačna."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"Sprememba kode PIN za kartico SIM je uspela"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Zaklepanja kartice SIM ni mogoče spremeniti.\nMorda je koda PIN napačna."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Kode PIN ni mogoče onemogočiti."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Kode PIN ni mogoče omogočiti."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"V redu"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Prekliči"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Najdenih je bilo več kartic SIM"</string>
@@ -3007,7 +3009,6 @@
<item quantity="few">Pokaži %d skrite elemente</item>
<item quantity="other">Pokaži %d skritih elementov</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Strni"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Omrežje in internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilno"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"prenesena količina podatkov"</string>
@@ -3077,6 +3078,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"temna tema"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"napaka"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"prikaz na podlagi okolja, prikaz na zaklenjenem zaslonu"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"obvestilo na zaklenjenem zaslonu"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"obraz"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"prstni odtis"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"zatemnitev zaslona, zaslon na dotik, akumulator, pametna svetlost, dinamična svetlost"</string>
@@ -3824,6 +3826,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Notranji pomnilnik: <xliff:g id="PERCENTAGE">%1$s</xliff:g> uporabljeno – <xliff:g id="FREE_SPACE">%2$s</xliff:g> prosto"</string>
<string name="display_summary" msgid="6737806235882127328">"Stanje pripravljenosti po <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> nedejavnosti"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Ozadje, stanje pripravljenosti, velikost pisave"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Stanje pripravljenosti po 10 minutah nedejavnosti"</string>
<string name="memory_summary" msgid="8080825904671961872">"Povprečna uporaba pomnilnika: <xliff:g id="USED_MEMORY">%1$s</xliff:g> od <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Prijavljeni ste kot <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4081,7 +4085,7 @@
<string name="double_twist_for_camera_mode_title" msgid="4877834147983530479">"Obrat fotoaparata"</string>
<string name="double_twist_for_camera_mode_summary" msgid="122977081337563340"></string>
<string name="double_twist_for_camera_suggestion_title" msgid="4689410222517954869">"Hitrejši vklop načina za sebke"</string>
- <string name="swipe_up_to_switch_apps_title" msgid="2513907834903543667">"Povlecite navzgor po gumbu za začetni zaslon"</string>
+ <string name="swipe_up_to_switch_apps_title" msgid="2513907834903543667">"Vlečenje navzgor po gumbu za začetni zaslon"</string>
<string name="swipe_up_to_switch_apps_summary" msgid="5367798220225997418">"Če želite preklopiti med aplikacijami, povlecite navzgor po gumbu za začetni zaslon. Znova povlecite navzgor, da prikažete vse aplikacije. To deluje na katerem koli zaslonu. Gumb »Pregled« ne bo več prikazan v spodnjem desnem delu zaslona."</string>
<string name="swipe_up_to_switch_apps_suggestion_title" msgid="1465200107913259595">"Preskus novega gumba za začetni zaslon"</string>
<string name="swipe_up_to_switch_apps_suggestion_summary" msgid="4825314186907812743">"Vklop nove poteze za preklop aplikacij"</string>
@@ -4300,10 +4304,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"O omrežju"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Ime naprave je vidno aplikacijam v telefonu. Ko vzpostavite povezavo z napravami Bluetooth ali nastavite dostopno točko Wi-Fi, ga bodo morda videle tudi druge osebe."</string>
<string name="devices_title" msgid="7701726109334110391">"Naprave"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Plošča za hitro osvežev."</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Omogoči navidezno ploščo za hitro osveževanje"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Vse nastavitve"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Vaše nastavitve"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Predlogi"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Podatki CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Podatki CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Izbira omrežja"</string>
@@ -4315,4 +4317,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Omrežij ni bilo mogoče najti. Poskusite znova."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(prepovedano)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Ni kartice SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Napredno klicanje"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Prednostni način omrežja: prednostno WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Prednostni način omrežja: samo GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Prednostni način omrežja: samo WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Prednostni način omrežja: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Želeni način omrežja: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Želeni način omrežja: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Prednostni način omrežja: samo CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Prednostni način omrežja: samo EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Prednostni način omrežja: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Prednostni način omrežja: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Prednostni način omrežja: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Prednostni način omrežja: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Prednostni način omrežja: globalno"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Prednostni način omrežja: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Prednostni omrežni način: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Prednostni način omrežja: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Prednostni način omrežja: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Prednostni način omrežja: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Prednostni način omrežja: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Prednostni način omrežja: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Prednostni način omrežja: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Prednostni način omrežja: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Prednostni način omrežja: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Prednostni način omrežja: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Prednostni način omrežja: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Prednostni način omrežja: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (priporočeno)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (priporočeno)"</string>
+ <string name="network_global" msgid="959947774831178632">"Globalno"</string>
+ <string name="label_available" msgid="1731547832803057893">"Razpoložljiva omrežja"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Iskanje …"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registriranje v omrežje <xliff:g id="NETWORK">%s</xliff:g>"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Kartica SIM ne dovoljuje povezave s tem omrežjem."</string>
+ <string name="connect_later" msgid="978991102125216741">"S tem omrežjem trenutno ni mogoče vzpostaviti povezave. Poskusite znova pozneje."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registrirano v omrežju."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Samodejno izberi omrežje"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Nastavitve operaterja"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Nastavitev podatkovne storitve"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Prenos podatkov v mobilnem omrežju"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Dostop do podatkov prek mobilnega omrežja"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Prednostna vrsta omrežja"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Sprememba načina delovanja omrežja"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Prednostna vrsta omrežja"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operater"</string>
+ <string name="call_category" msgid="8108654745239563833">"Klicanje"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videoklicanje prek operaterja"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Sistemska izbira"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Spremeni način gostovanja CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Sistemska izbira"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Omrežje"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Omrežje"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Naročnina CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Preklopi med RUIM/SIM in NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"naročnina"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Samodejna registracija …"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Želite dovoliti podatkovno gostovanje?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Preverite cene pri operaterju omrežja."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Prenesena količina podatkov aplikacije"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Neveljaven način omrežja: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Prezri."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Ni na voljo ob vzpostavljeni povezavi z operaterjem <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Pokaži več"</string>
+ <string name="see_less" msgid="1250265310929558370">"Pokaži manj"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-sq/arrays.xml b/res/values-sq/arrays.xml
index 2b59b72..c6533ac 100644
--- a/res/values-sq/arrays.xml
+++ b/res/values-sq/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Trajto si me matje"</item>
<item msgid="2266114985518865625">"Trajto si pa matje"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"E parazgjedhur (përdor MAC të rastësishëm)"</item>
+ <item msgid="5398461510512959597">"I certifikuar"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Jo"</item>
<item msgid="3863157480502955888">"Po"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Korrigjo"</item>
<item msgid="5286514712714822064">"Me shumë fjalë"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Vetëm rrjeti vendor"</item>
+ <item msgid="5034813753274486448">"Automatik"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA i preferuar"</item>
+ <item msgid="807926878589867564">"Vetëm GSM"</item>
+ <item msgid="488474605709912156">"Vetëm WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA automatik"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo automatik"</item>
+ <item msgid="370391313511477301">"CDMA pa EvDo"</item>
+ <item msgid="4678789463133969294">"Vetëm EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Globale"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"Vetëm TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Globale"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 419e186..fbb024f 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Krijo"</string>
<string name="allow" msgid="3349662621170855910">"Lejo"</string>
<string name="deny" msgid="6947806159746484865">"Refuzo"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Mbyll"</string>
<string name="device_info_default" msgid="7847265875578739287">"I panjohur"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Tani je <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> hapa larg të qenët programues.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Zgjidh të paktën një brez për zonën e qasjes për internet për Wi‑Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Cilësimet e IP-së"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privatësia"</string>
<string name="wifi_shared" msgid="844142443226926070">"Ndaje me përdoruesit e tjerë të pajisjes"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(i pandryshuar)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Zgjidh"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Kodi PIN nuk ndryshoi.\nKod PIN i gabuar."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN-i i kartës SIM u ndryshua me sukses."</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Karta SIM ende e kyçur.\nKod PIN i gabuar."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Kodi PIN nuk mund të çaktivizohet."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Kodi PIN nuk mund të aktivizohet."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Në rregull"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Anulo"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"U gjetën shumë karta SIM"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Shfaq %d artikuj të fshehur</item>
<item quantity="one">Shfaq %d artikull të fshehur</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Palos"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Rrjeti dhe interneti"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"celular"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"përdorimi i të dhënave"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tema e errët"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"defekt në kod"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Shfaqja e ambientit, shfaqja e ekranit të kyçjes"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"njoftimi i ekranit të kyçjes"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"fytyrë"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"gjurmë gishti"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"errëso ekranin, ekrani me prekje, bateria, ndriçimi inteligjent, ndriçimi dinamik"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Hapësira ruajtëse e brendshme: <xliff:g id="PERCENTAGE">%1$s</xliff:g> e përdorur - <xliff:g id="FREE_SPACE">%2$s</xliff:g> e lirë"</string>
<string name="display_summary" msgid="6737806235882127328">"Në gjumë pas <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> pa aktivitet"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Sfond, fjetje, madhësia e shkrimit"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Në gjumë pas 10 minutash pa aktivitet"</string>
<string name="memory_summary" msgid="8080825904671961872">"Mesatarisht <xliff:g id="USED_MEMORY">%1$s</xliff:g> nga <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memorie të përdorura"</string>
<string name="users_summary" msgid="1674864467098487328">"Identifikuar si <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Detajet e rrjetit"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Emri i pajisjes sate është i dukshëm për aplikacionet në telefonin tënd. Ai mund të shikohet po ashtu nga persona të tjerë kur lidhesh me pajisje me Bluetooth ose kur konfiguron një zonë të qasjes për internet me Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Pajisjet"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Paneli me frekuencë të lartë"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Aktivizo panelin virtual me frekuencë të lartë"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Të gjitha cilësimet"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Cilësimet e tua"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Sugjerime"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Të dhënat e CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Të dhënat e CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Zgjidh rrjetin"</string>
@@ -4169,4 +4171,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Rrjetet nuk mund të gjendeshin. Provo përsëri."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(ndalohet)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Nuk ka kartë SIM"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Telefonatë e përparuar"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Modaliteti i rrjetit të preferuar: preferohet WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Modaliteti i rrjetit të preferuar: vetëm GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Modaliteti i rrjetit të preferuar: vetëm WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Modaliteti i rrjetit të preferuar: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Modaliteti i rrjetit të preferuar: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Modaliteti i rrjetit të preferuar: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Modaliteti i rrjetit të preferuar: vetëm CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Modaliteti i rrjetit të preferuar: vetëm EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Modaliteti i rrjetit të preferuar: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Modaliteti i rrjetit të preferuar: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Modaliteti i rrjetit të preferuar: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Modaliteti i rrjetit të preferuar: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Modaliteti i rrjetit të preferuar: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Modaliteti i rrjetit të preferuar: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Modaliteti i rrjetit të preferuar: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Modaliteti i rrjetit të preferuar: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Modaliteti i rrjetit të preferuar: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Modaliteti i rrjetit të preferuar: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Modaliteti i rrjetit të preferuar: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Modaliteti i rrjetit të preferuar: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Modaliteti i rrjetit të preferuar: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Modaliteti i rrjetit të preferuar: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Modaliteti i rrjetit të preferuar: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Modaliteti i rrjetit të preferuar: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Modaliteti i rrjetit të preferuar: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Modaliteti i rrjetit të preferuar: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (rekomandohet)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (rekomandohet)"</string>
+ <string name="network_global" msgid="959947774831178632">"Globale"</string>
+ <string name="label_available" msgid="1731547832803057893">"Rrjete të arritshme"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Po kërkon…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Po regjistron në <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Karta SIM nuk lejon lidhje me këtë rrjet."</string>
+ <string name="connect_later" msgid="978991102125216741">"Nuk mund të lidhet me këtë rrjet tani. Provo sërish më vonë."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Regjistruar në rrjet."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Zgjidh automatikisht rrjetin"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Cilësimet e operatorit"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Konfiguro shërbimin e të dhënave"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Të dhënat celulare"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Qasu te të dhënat duke përdorur rrjetin celular"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Lloji i rrjetit të preferuar"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Ndrysho modalitetin e operimit të rrjetit"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Lloji i rrjetit të preferuar"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operatori celular"</string>
+ <string name="call_category" msgid="8108654745239563833">"Po telefonon"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Telefonata me video e operatorit celular"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Përzgjedhja e sistemit"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Ndrysho modalitetin CDMA të roaming-ut"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Përzgjedhja e sistemit"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Rrjeti"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Rrjeti"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Abonimi CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Ndrysho mes RUIM/SIM dhe NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"abonimi"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Regjistrim automatik…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Të lejohet shfrytëzimi i roaming-ut?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Kontakto me operatorin celular të rrjetit për çmimin."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Përdorimi i të dhënave të aplikacioneve"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Regjim i pavlefshëm i rrjetit <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Shpërfille."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Nuk ofrohet kur është e lidhur me <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Shiko më shumë"</string>
+ <string name="see_less" msgid="1250265310929558370">"Shiko më pak"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> pajisje të lidhura</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> pajisje e lidhur</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Nuk ka pajisje të lidhura"</string>
</resources>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index b3be54b..25f0c9d 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Третирај као мрежу са ограничењем"</item>
<item msgid="2266114985518865625">"Третирај као мрежу без ограничења"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Подразумевано (користи насумично изабрану MAC адресу)"</item>
+ <item msgid="5398461510512959597">"Поуздано"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Не"</item>
<item msgid="3863157480502955888">"Да"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Отклони грешке"</item>
<item msgid="5286514712714822064">"Детаљно"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Само кућна"</item>
+ <item msgid="5034813753274486448">"Аутоматски"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA има предност"</item>
+ <item msgid="807926878589867564">"Само GSM"</item>
+ <item msgid="488474605709912156">"Само WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA аутоматски"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo аутоматски"</item>
+ <item msgid="370391313511477301">"CDMA без EvDo-а"</item>
+ <item msgid="4678789463133969294">"Само EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Глобална"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Само TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Глобална"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 9cc2b8c..40d3cbb 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Направи"</string>
<string name="allow" msgid="3349662621170855910">"Дозволи"</string>
<string name="deny" msgid="6947806159746484865">"Одбиј"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Затвори"</string>
<string name="device_info_default" msgid="7847265875578739287">"Непознато"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Треба да обавите још <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> корак да бисте постали програмер.</item>
@@ -907,6 +906,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Изаберите барем један опсег за Wi‑Fi хотспот:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP подешавања"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Приватност"</string>
<string name="wifi_shared" msgid="844142443226926070">"Дели са другим корисницима уређаја"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(непромењено)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Изаберите"</string>
@@ -1221,6 +1221,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Није могуће променити PIN.\nМогуће је да је PIN нетачан."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN је успешно промењен"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Није могуће променити стање закључавања SIM картице.\nМогуће је да је PIN нетачан."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Онемогућавање PIN-а није успело."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Омогућавање PIN-а није успело."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Потврди"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Откажи"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Пронађено је више SIM картица"</string>
@@ -1297,7 +1299,7 @@
<string name="memory_media_usage" msgid="3738830697707880405">"Медији"</string>
<string name="memory_downloads_usage" msgid="3755173051677533027">"Преузимања"</string>
<string name="memory_dcim_usage" msgid="558887013613822577">"Слике, видео снимци"</string>
- <string name="memory_music_usage" msgid="1363785144783011606">"Аудио (музика, звукови звона, поткастови итд.)"</string>
+ <string name="memory_music_usage" msgid="1363785144783011606">"Аудио (музика, звукови звона, поткасти итд.)"</string>
<string name="memory_media_misc_usage" msgid="6094866738586451683">"Друге датотеке"</string>
<string name="memory_media_cache_usage" msgid="6704293333141177910">"Кеширани подаци"</string>
<string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Искљ. дељене меморије"</string>
@@ -2969,7 +2971,6 @@
<item quantity="few">Прикажи %d скривене ставке</item>
<item quantity="other">Прикажи %d скривених ставки</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Скупи"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Мрежа и интернет"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мобилна мрежа"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"потрошња података"</string>
@@ -3039,6 +3040,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"тамна тема"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"грешка"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Амбијентални екран, приказ на закључаном екрану"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"обавештење на закључаном екрану"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"лице"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"дигитални отисак"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"затамнити екран, додирни екран, батерија, паметна светлина, динамичка светлина"</string>
@@ -3767,6 +3769,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Интерна меморија: <xliff:g id="PERCENTAGE">%1$s</xliff:g> је искоришћено – <xliff:g id="FREE_SPACE">%2$s</xliff:g> је слободно"</string>
<string name="display_summary" msgid="6737806235882127328">"Пређи у режим спавања после <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Позадина, режим спавања, величина фонта"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Прелазак у режим спавања после 10 минута неактивности"</string>
<string name="memory_summary" msgid="8080825904671961872">"У просеку је коришћено <xliff:g id="USED_MEMORY">%1$s</xliff:g> од <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> меморије"</string>
<string name="users_summary" msgid="1674864467098487328">"Пријављени сте као <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4227,10 +4231,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Детаљи о мрежи"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Име уређаја виде апликације на телефону. Могу да га виде и други људи кад се повежете са Bluetooth уређајима или подесите Wi-Fi хотспот."</string>
<string name="devices_title" msgid="7701726109334110391">"Уређаји"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Плоча високе фреквенције"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Омогућите виртуелну плочу високе фреквенције"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Сва подешавања"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Подешавања"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Предлози"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS подаци"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS подаци"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Одаберите мрежу"</string>
@@ -4242,4 +4244,73 @@
<string name="network_query_error" msgid="7487714485362598410">"Нисмо успели да пронађемо мреже. Пробајте поново."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(забрањено)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Нема SIM картице"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Напредно позивање"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Жељени режим мреже: WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Жељени режим мреже: само GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Жељени режим мреже: само WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Жељени режим мреже: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Жељени режим мреже: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Жељени режим мреже: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Жељени режим мреже: само CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Жељени режим мреже: само EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Жељени режим мреже: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Жељени режим мреже: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Жељени режим мреже: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Жељени режим мреже: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Жељени режим мреже: Глобално"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Жељени режим мреже: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Жељени мрежни режим: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Жељени режим мреже: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Жељени режим мреже: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Жељени режим мреже: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Жељени режим мреже: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Жељени режим мреже: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Жељени режим мреже: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Жељени режим мреже: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Жељени режим мреже: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Жељени режим мреже: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Жељени режим мреже: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Жељени режим мреже: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (препоручено)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (препоручено)"</string>
+ <string name="network_global" msgid="959947774831178632">"Глобална"</string>
+ <string name="label_available" msgid="1731547832803057893">"Доступне мреже"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Претражује се…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Региструјете се на мрежу <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM картица не дозвољава везу са овом мрежом."</string>
+ <string name="connect_later" msgid="978991102125216741">"Тренутно није могуће повезати се са овом мрежом. Пробајте поново касније."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Регистровано на мрежи."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Аутоматски изабери мрежу"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Подешавања оператера"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Подесите усл. преноса података"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Мобилни подаци"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Користи податке преко мобилне мреже"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Жељени тип мреже"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Промена режима рада мреже"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Жељени тип мреже"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Мобилни оператер"</string>
+ <string name="call_category" msgid="8108654745239563833">"Позивање"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Видео позивање преко оператера"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Избор система"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Промена режима CDMA роминга"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Избор система"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Мрежа"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Мрежа"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA пријава"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Промените мрежу са RUIM/SIM на NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"пријава"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Аутоматска регистрација..."</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Желите ли да дозволите пренос података у ромингу?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Цене проверите код мобилног оператера."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Потрошња података апликације"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Неважећи режим мреже <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Игноришите."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Недоступно када је успостављена веза са оператером <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Прикажи још"</string>
+ <string name="see_less" msgid="1250265310929558370">"Прикажи мање"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="one">Повезан је <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> уређај</item>
+ <item quantity="few">Повезана су <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> уређаја</item>
+ <item quantity="other">Повезано је <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> уређаја</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Нема повезаних уређаја"</string>
</resources>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index 6822fdf..06a8686 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Behandla som nätverk med datapriser"</item>
<item msgid="2266114985518865625">"Behandla som nätverk utan datapriser"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Standard (använd slumpgenererad MAC-adress)"</item>
+ <item msgid="5398461510512959597">"Betrodda"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Nej"</item>
<item msgid="3863157480502955888">"Ja"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Felsökning"</item>
<item msgid="5286514712714822064">"Utförlig"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Endast hemma"</item>
+ <item msgid="5034813753274486448">"Automatisk"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Föredrar GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"Endast GSM"</item>
+ <item msgid="488474605709912156">"Endast WCDMA"</item>
+ <item msgid="1912421096218750039">"Automatiskt GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"Automatiskt CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"CDMA utan EvDo"</item>
+ <item msgid="4678789463133969294">"Endast EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Globalt"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Endast TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Globalt"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index aa0a64a..d06e5a1 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Skapa"</string>
<string name="allow" msgid="3349662621170855910">"Tillåt"</string>
<string name="deny" msgid="6947806159746484865">"Neka"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Stäng"</string>
<string name="device_info_default" msgid="7847265875578739287">"Okänd"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Du är nu <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steg från att bli utvecklare.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Välj minst ett band för Wi‑Fi-surfzon:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP-inställningar"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Sekretess"</string>
<string name="wifi_shared" msgid="844142443226926070">"Dela med andra som använder enheten"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(oförändrat)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Välj"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Det går inte att ändra PIN-koden.\n Du kan ha angett fel PIN-kod."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM-kortets PIN-kod har ändrats"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Det gick inte att ändra SIM-kortets låsstatus.\nDu kan ha angett fel PIN-kod."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Det gick inte att inaktivera pinkoden."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Det gick inte att aktivera pinkoden."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Avbryt"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Flera SIM-kort har hittats"</string>
@@ -1668,7 +1670,7 @@
<string name="lockpattern_settings_enable_visible_pattern_title" msgid="2615606088906120711">"Gör grafiskt lösenord synligt"</string>
<string name="lockpattern_settings_enable_visible_pattern_title_profile" msgid="4864525074768391381">"Gör det grafiska lösenordet för profilen synligt"</string>
<string name="lockpattern_settings_enable_tactile_feedback_title" msgid="4389015658335522989">"Vibrera vid tryck"</string>
- <string name="lockpattern_settings_enable_power_button_instantly_locks" msgid="5735444062633666327">"Avstängningsknappen låser direkt"</string>
+ <string name="lockpattern_settings_enable_power_button_instantly_locks" msgid="5735444062633666327">"Strömbrytaren låser direkt"</string>
<string name="lockpattern_settings_power_button_instantly_locks_summary" msgid="8196258755143711694">"Utom när den hålls olåst av <xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g>"</string>
<string name="lockpattern_settings_choose_lock_pattern" msgid="1652352830005653447">"Ange grafiskt lösenord"</string>
<string name="lockpattern_settings_change_lock_pattern" msgid="1123908306116495545">"Byt grafiskt lösenord"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Visa %d dolda objekt</item>
<item quantity="one">Visa %d dolt objekt</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Komprimera"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Nätverk och internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobilnätverk"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"dataanvändning"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"mörkt tema"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"fel"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Aktiv låsskärm, visning av låsskärm"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"avisering på låsskärm"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ansikte"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingeravtryck"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"nedtonad skärm, pekskärm, batteri, intelligent ljusstyrka, dynamisk ljusstyrka"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Internt lagringsutrymme: <xliff:g id="PERCENTAGE">%1$s</xliff:g> används, <xliff:g id="FREE_SPACE">%2$s</xliff:g> ledigt"</string>
<string name="display_summary" msgid="6737806235882127328">"Aktivera viloläge efter <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> av inaktivitet"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Bakgrund, viloläge, teckenstorlek"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Viloläget aktiveras efter tio minuters inaktivitet"</string>
<string name="memory_summary" msgid="8080825904671961872">"Genomsnittlig minnesanvändning: <xliff:g id="USED_MEMORY">%1$s</xliff:g> av <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Inloggad som <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Nätverksinformation"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Enhetens namn är synligt för appar i mobilen. Det kan också vara synligt för andra personer när du ansluter till Bluetooth-enheter eller om du skapar en Wi-Fi-surfzon."</string>
<string name="devices_title" msgid="7701726109334110391">"Enheter"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Panel för hög frekvens"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Aktivera den virtuella panelen för hög frekvens"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Alla inställningar"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Dina inställningar"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Förslag"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Data via CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Data via CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Välj nätverk"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Det gick inte att hitta nätverk. Försök igen."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(förbjudet)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Inget SIM-kort"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Avancerade samtal"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Föredraget nätverksläge: Föredrar WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Föredraget nätverksläge: Endast GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Föredraget nätverksläge: Endast WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Föredraget nätverksläge: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Föredraget nätverksläge: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Föredraget nätverksläge: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Föredraget nätverksläge: Endast CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Föredraget nätverksläge: Endast EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Föredraget nätverksläge: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Föredraget nätverksläge: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Föredraget nätverksläge: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Föredraget nätverksläge: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Föredraget nätverksläge: globalt"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Föredraget nätverksläge: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Föredraget nätverksläge: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Föredraget nätverksläge: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Föredraget nätverksläge: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Föredraget nätverksläge: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Föredraget nätverksläge: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Föredraget nätverksläge: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Föredraget nätverksläge: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Föredraget nätverksläge: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Föredraget nätverksläge: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Föredraget nätverksläge: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Föredraget nätverksläge: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Föredraget nätverksläge: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (rekommenderas)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (rekommenderas)"</string>
+ <string name="network_global" msgid="959947774831178632">"Globalt"</string>
+ <string name="label_available" msgid="1731547832803057893">"Tillgängliga nätverk"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Söker …"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Registrerar på <xliff:g id="NETWORK">%s</xliff:g> …"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Ditt SIM-kort tillåter inte anslutning till detta nätverk."</string>
+ <string name="connect_later" msgid="978991102125216741">"Det går inte att ansluta till det här nätverket just nu. Försök igen senare."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Registrerad på nätverk."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Välj nätverk automatiskt"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Operatörsinställningar"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Konfigurera datatjänst"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobildata"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Få åtkomst till data via mobilt nätverk"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Önskad nätverkstyp"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Ändra nätverksläge"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Önskad nätverkstyp"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operatör"</string>
+ <string name="call_category" msgid="8108654745239563833">"Ringer upp"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Videosamtal via operatören"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Systemval"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Ändra CDMA-roamingläge"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Systemval"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Nätverk"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Nätverk"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA-prenumeration"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Växla mellan RUIM/SIM och NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"prenumeration"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Automatisk registrering …"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Vill du tillåta dataroaming?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Kontakta din nätoperatör för priser."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Appens dataanvändning"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Ogiltigt nätverksläge: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorera."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Inte tillgänglig vid anslutning till <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Visa mer"</string>
+ <string name="see_less" msgid="1250265310929558370">"Visa färre"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
index 93a0627..449dac6 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Tumia kama mtandao unaopima data"</item>
<item msgid="2266114985518865625">"Tumia kama mtandao usiopima data"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Chaguomsingi (tumia MAC isiyo na mpangilio)"</item>
+ <item msgid="5398461510512959597">"Anayeaminiwa"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Hapana"</item>
<item msgid="3863157480502955888">"Ndiyo"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Tatua"</item>
<item msgid="5286514712714822064">"Maneno mengi"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Nyumbani tu"</item>
+ <item msgid="5034813753274486448">"Otomatiki"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"inapendelea GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"GSM pekee"</item>
+ <item msgid="488474605709912156">"WCDMA pekee"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA otomatiki"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo otomatiki"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo pekee"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Jumla"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA pekee"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Jumla"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 1f084e1..9f712c5 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Unda"</string>
<string name="allow" msgid="3349662621170855910">"Ruhusu"</string>
<string name="deny" msgid="6947806159746484865">"Kataa"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Funga"</string>
<string name="device_info_default" msgid="7847265875578739287">"Haijulikani"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Umebakisha hatua <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ili uwe msanidi programu.</item>
@@ -194,7 +193,7 @@
<string name="proxy_port_label" msgid="5655276502233453400">"Poti ya proksi"</string>
<string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Proksi ya Bypass ya"</string>
<string name="proxy_defaultView_text" msgid="6387985519141433291">"Rejesha kwa chaguo misingi"</string>
- <string name="proxy_action_text" msgid="2957063145357903951">"Kwisha"</string>
+ <string name="proxy_action_text" msgid="2957063145357903951">"Nimemaliza"</string>
<string name="proxy_hostname_label" msgid="8490171412999373362">"Jina la mwenyeji wa proksi"</string>
<string name="proxy_error" msgid="8926675299638611451">"Zingatia"</string>
<string name="proxy_error_dismiss" msgid="4993171795485460060">"Sawa"</string>
@@ -268,7 +267,7 @@
<item quantity="other">Ungependa kuondoa lugha zilizochaguliwa?</item>
<item quantity="one">Ungependa kuondoa lugha iliyochaguliwa?</item>
</plurals>
- <string name="dlg_remove_locales_message" msgid="1361354927342876114">"Itaonyesha maandishi katika lugha nyingine."</string>
+ <string name="dlg_remove_locales_message" msgid="1361354927342876114">"Maandishi yataonyeshwa katika lugha nyingine."</string>
<string name="dlg_remove_locales_error_title" msgid="2653242337224911425">"Haiwezi kuondoa lugha zote"</string>
<string name="dlg_remove_locales_error_message" msgid="6697381512654262821">"Hifadhi angalau lugha moja unayopendelea"</string>
<string name="locale_not_translated" msgid="516862628177166755">"Huenda isipatikane katika baadhi ya programu"</string>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"GHz 5.0"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Chagua angalau bendi moja ya mtandao-hewa wa Wi‑Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Mipangilio ya IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Faragha"</string>
<string name="wifi_shared" msgid="844142443226926070">"Shiriki na watumiaji wengine wa kifaa"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(haijabadilishwa)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Tafadhali chagua"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Hawezi kubadilika PIN. \n Inawezekana PIN si sahihi."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"Umefaulu kubadilisha PIN ya SIM"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Hauwezi kubadilisha hali ya kifungio cha SIM kadi. \n Inawezekana PIN si sahihi."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Imeshindwa kuzima PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Imeshindwa kuwasha PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Sawa"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Ghairi"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"SIM nyingi zimepatikana"</string>
@@ -1727,7 +1729,7 @@
<string name="disable_text" msgid="6544054052049395202">"Zima"</string>
<string name="enable_text" msgid="9217362512327828987">"Washa"</string>
<string name="clear_user_data_text" msgid="355574089263023363">"Futa hifadhi"</string>
- <string name="app_factory_reset" msgid="6635744722502563022">"Sanidua Masasisho"</string>
+ <string name="app_factory_reset" msgid="6635744722502563022">"Ondoa masasisho"</string>
<string name="auto_launch_enable_text" msgid="4275746249511874845">"Umechagua kuzindua programu hii kwa mbadala kwa baadhi ya vitendo."</string>
<string name="always_allow_bind_appwidgets_text" msgid="566822577792032925">"Umechagua kuruhusu programu hii kuunda wijeti na kufikia data yao."</string>
<string name="auto_launch_disable_text" msgid="7800385822185540166">"Hakuna chaguo-misingi zilizowekwa."</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Onyesha vipengee %d vilivyofichwa</item>
<item quantity="one">Onyesha kipengee %d kilichofichwa</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Kunja"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Mtandao na intaneti"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"kifaa cha mkononi"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"matumizi ya data"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"mandhari meusi"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"hitilafu"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Onyesho tulivu, Skrini iliyofungwa"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"arifa ya skrini iliyofungwa"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"uso"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"alama ya kidole"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"skrini yenye mwanga hafifu, skrini ya kugusa, betri, mwangaza mahiri, ung\'avu maalum"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Hifadhi ya mfumo: <xliff:g id="PERCENTAGE">%1$s</xliff:g> imetumika - imesalia <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"Weka katika hali tuli baada ya <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ya kutokuwa na shughuli"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Mandhari, hali tuli, ukubwa wa fonti"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Iweke katika hali tuli baada ya dakika 10 za kutokuwa na shughuli"</string>
<string name="memory_summary" msgid="8080825904671961872">"Takriban <xliff:g id="USED_MEMORY">%1$s</xliff:g> kati ya <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> za hifadhi zimetumika"</string>
<string name="users_summary" msgid="1674864467098487328">"Umeingia katika akaunti ukitumia <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Maelezo ya mtandao"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Jina la kifaa chako litaonekana kwenye programu zilizo katika simu yako. Pia linaweza kuonekana kwa watu wengine wakati unaunganisha vifaa vya Bluetooth au kuweka mtandao hewa wa Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Vifaa"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Kidirisha cha Masafa Pepe ya Juu"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Washa Kidirisha cha Masafa Pepe ya Juu"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Mipangilio Yote"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Mipangilio Yako"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Mapendekezo"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Data ya CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Data ya CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Chagua mtandao"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Imeshindwa kupata mitandao. Jaribu tena."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(hairuhusiwi)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Hakuna SIM kadi"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Upigaji Simu Ulioimarishwa"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Hali ya mtandao inayopendelewa: WCDMA pendekezwa"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Hali ya mtandao inayopendelewa: GSM pekee"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Hali ya mtandao inayopendelewa: WCDMA pekee"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Hali ya mtandao inayopendelewa: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Hali ya mtandao inayopendelewa: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Hali ya mtandao inayopendelewa: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Hali ya mtandao inayopendelewa: CDMA pekee"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Hali ya mtandao inayopendelewa: EvDo pekee"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Hali ya mtandao inayopendelewa: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Hali ya mtandao inayopendelewa: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Hali ya mtandao inayopendelewa: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Hali ya mtandao inayopendelewa: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Hali ya mtandao inayopendelewa: Jumla"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Hali ya mtandao inayopendelewa: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Hali ya mtandao inayopendelewa: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Hali ya mtandao inayopendelewa: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Hali ya mtandao inayopendelewa: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Hali ya mtandao inayopendelewa: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Hali ya mtandao inayopendelewa: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Hali ya mtandao inayopendelewa: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Hali ya mtandao inayopendelewa: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Hali ya mtandao inayopendelewa: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Hali ya mtandao inayopendelewa: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Hali ya mtandao inayopendelewa: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Hali ya mtandao inayopendelewa: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Hali ya mtandao inayopendelewa: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (inapendekezwa)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (inapendekezwa)"</string>
+ <string name="network_global" msgid="959947774831178632">"Jumla"</string>
+ <string name="label_available" msgid="1731547832803057893">"Mitandao inayopatikana"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Inatafuta…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Inasajili kwenye <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM kadi yako hairuhusu muunganisho wa mtandao huu."</string>
+ <string name="connect_later" msgid="978991102125216741">"Imeshindwa kuunganisha na mtandao huu hivi sasa. Jaribu tena baadaye."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Imesajiliwa katika mtandao."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Chagua mtandao kiotomatiki"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Mipangilio ya mtoa huduma"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Weka huduma ya data"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Data ya mtandao wa simu"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Tumia data ya mtandao wa simu"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Aina ya mtandao inayopendelewa"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Badilisha hali ya utendaji wa mtandao"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Aina ya mtandao inayopendelewa"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Mtoa huduma"</string>
+ <string name="call_category" msgid="8108654745239563833">"Kupiga simu"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Kupiga simu ya video kupitia kampuni ya simu"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Chagua mfumo"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Badilisha hali upigaji simu ukiwa nje ya mtandao wa kawaida kwa kutumia CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Chagua mfumo"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Mtandao"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Mtandao"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Usajili wa CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Badilisha kati ya RUIM/SIM na NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"usajili"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Usajili wa kiotomatiki…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Ungependa kuruhusu matumizi ya mitandao ya ng\'ambo?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Wasiliana na mtoa huduma za mtandao kwa maelezo kuhusu bei."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Matumizi ya data ya programu"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Hali ya Mtandao Isiyo sahihi <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Puuza"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Haipatikani inapounganishwa kwenye <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Angalia zaidi"</string>
+ <string name="see_less" msgid="1250265310929558370">"Angalia chache"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-sw720dp-land/dimens.xml b/res/values-sw720dp-land/dimens.xml
index b1ec4c7..7f707d2 100644
--- a/res/values-sw720dp-land/dimens.xml
+++ b/res/values-sw720dp-land/dimens.xml
@@ -17,10 +17,6 @@
<resources>
<dimen name="settings_side_margin">112dp</dimen>
- <!-- Dashboard padding in its container -->
- <dimen name="dashboard_padding_start">160dp</dimen>
- <dimen name="dashboard_padding_end">160dp</dimen>
-
<!-- ActionBar contentInsetStart -->
<dimen name="actionbar_contentInsetStart">128dp</dimen>
<dimen name="actionbar_subsettings_contentInsetStart">128dp</dimen>
diff --git a/res/values-sw720dp/dimens.xml b/res/values-sw720dp/dimens.xml
index ec4e22f..6accad7 100644
--- a/res/values-sw720dp/dimens.xml
+++ b/res/values-sw720dp/dimens.xml
@@ -31,18 +31,6 @@
<dimen name="actionbar_contentInsetStart">80dp</dimen>
<dimen name="actionbar_subsettings_contentInsetStart">80dp</dimen>
- <!-- Dashboard margins between each tiles within the layout -->
- <dimen name="dashboard_cell_gap_x">24dp</dimen>
- <dimen name="dashboard_cell_gap_y">0dp</dimen>
-
- <!-- Dashboard padding in its container -->
- <dimen name="dashboard_padding_start">80dp</dimen>
- <dimen name="dashboard_padding_end">80dp</dimen>
-
- <!-- Dashboard category padding start / end -->
- <dimen name="dashboard_category_padding_start">24dp</dimen>
- <dimen name="dashboard_category_padding_end">24dp</dimen>
-
<!-- SwitchBar sub settings margin start / end -->
<dimen name="switchbar_subsettings_margin_start">80dp</dimen>
<dimen name="switchbar_subsettings_margin_end">80dp</dimen>
diff --git a/res/values-ta/arrays.xml b/res/values-ta/arrays.xml
index a8bec06..e60c4b3 100644
--- a/res/values-ta/arrays.xml
+++ b/res/values-ta/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"டேட்டா அளவிடப்பட்டது"</item>
<item msgid="2266114985518865625">"டேட்டா அளவிடப்படாதது"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"இயல்பு (ரேண்டம் MACகைப் பயன்படுத்தும்)"</item>
+ <item msgid="5398461510512959597">"நம்பகமானது"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"வேண்டாம்"</item>
<item msgid="3863157480502955888">"ஆம்"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"பிழைத்திருத்து"</item>
<item msgid="5286514712714822064">"அதிகச் சொற்கள்"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"வீட்டிற்கு மட்டும்"</item>
+ <item msgid="5034813753274486448">"தானியங்கு"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMAக்கு முன்னுரிமை"</item>
+ <item msgid="807926878589867564">"GSM மட்டும்"</item>
+ <item msgid="488474605709912156">"WCDMA மட்டும்"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA தானியங்கு"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo தானியங்கு"</item>
+ <item msgid="370391313511477301">"EvDo இல்லாமல் CDMA"</item>
+ <item msgid="4678789463133969294">"EvDo மட்டும்"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"குளோபல்"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA மட்டும்"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"குளோபல்"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index fbf0439..607ccb6 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"உருவாக்கு"</string>
<string name="allow" msgid="3349662621170855910">"அனுமதி"</string>
<string name="deny" msgid="6947806159746484865">"நிராகரி"</string>
- <string name="dlg_close" msgid="7471087791340790015">"மூடு"</string>
<string name="device_info_default" msgid="7847265875578739287">"தெரியவில்லை"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">டெவெலப்பராவதற்கு இப்போது <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> படிகளே உள்ளன.</item>
@@ -179,8 +178,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"இதற்கு முன்னர் இணைத்த சாதனங்கள்"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"ஏற்கனவே இணைத்தவை"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"புளூடூத் ஆன் செய்யப்பட்டது"</string>
- <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
- <skip />
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"இணைக்கப்பட்ட சாதனங்கள் அனைத்தும்"</string>
<string name="date_and_time" msgid="9062980487860757694">"தேதி & நேரம்"</string>
<string name="choose_timezone" msgid="1362834506479536274">"நேரமண்டலத்தைத் தேர்வுசெய்க"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -405,7 +403,7 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"முடிந்தது"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"முகத்தை உபயோகித்து"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"சாதனத்தைத் திற"</string>
- <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"ஆப்ஸில் உள்நுழை, பேமெண்ட்டுகள்"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"ஆப்ஸ் உள்நுழைவும் பேமெண்ட்டும்"</string>
<string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"தடைநீக்க, கண்களைத் திறத்தல்"</string>
<string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"முக அடையாளத்தைப் பயன்படுத்தும்போது, கண்களைத் திறந்திருக்க வேண்டும்"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"முகங்களை அகற்று"</string>
@@ -893,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"வைஃபை ஹாட்ஸ்பாட்டிற்கு, குறைந்தது ஒரு பேண்ட்டைத் தேர்வுசெய்யவும்:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP அமைப்பு"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"தனியுரிமை"</string>
<string name="wifi_shared" msgid="844142443226926070">"பிற சாதனப் பயனர்களுடன் பகிர்"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(மாற்றப்படவில்லை)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"தேர்ந்தெடுக்கவும்"</string>
@@ -1206,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"பின்னை மாற்ற முடியவில்லை.\nதவறான பின்னாக இருக்கலாம்."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"சிம் பின் வெற்றிகரமாக மாற்றப்பட்டது"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"சிம் கார்டின் பூட்டு நிலையை மாற்ற முடியவில்லை.\nதவறான பின்னாக இருக்கலாம்."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"பின்னை முடக்க இயலவில்லை."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"பின்னை இயக்க இயலவில்லை."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"சரி"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"ரத்துசெய்"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"பல SIMகள் உள்ளன"</string>
@@ -2425,7 +2426,7 @@
<string name="usage_access_title" msgid="332333405495457839">"உபயோக அணுகலுடைய ஆப்ஸ்"</string>
<string name="emergency_tone_title" msgid="254495218194925271">"அவசரகால டயலிங் சிக்னல்"</string>
<string name="emergency_tone_summary" msgid="722259232924572153">"அவசர அழைப்பு இயக்கப்பட்டிருக்கும்போது நடத்தையை அமை"</string>
- <string name="privacy_settings_title" msgid="2978878794187459190">"காப்புப் பிரதி"</string>
+ <string name="privacy_settings_title" msgid="2978878794187459190">"காப்புப்பிரதி"</string>
<string name="backup_summary_state_on" msgid="6407084627816231202">"ஆன் செய்யப்பட்டுள்ளது"</string>
<string name="backup_summary_state_off" msgid="7388321532624105594">"ஆஃப் செய்யப்பட்டுள்ளது"</string>
<string name="backup_section_title" msgid="7952232291452882740">"காப்புப் பிரதி & மீட்டெடுத்தல்"</string>
@@ -2932,7 +2933,6 @@
<item quantity="other">மறைந்துள்ள %d உருப்படிகளைக் காட்டு</item>
<item quantity="one">மறைந்துள்ள %d உருப்படியைக் காட்டு</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"சுருக்கும்"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"நெட்வொர்க் & இன்டர்நெட்"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"மொபைல்"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"டேட்டா உபயோகம்"</string>
@@ -3002,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"டார்க் தீம்"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"பிழை"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"சூழல்சார் திரை, லாக் ஸ்கிரீன்"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"பூட்டுத் திரை அறிவிப்பு"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"முகம்"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"கைரேகை"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"மங்கல் திரை, டச்ஸ்கிரீன், பேட்டரி, ஸ்மார்ட் பிரைட்னஸ், சிறப்பு ஒளிர்வு"</string>
@@ -3711,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"சாதனச் சேமிப்பகம்: <xliff:g id="PERCENTAGE">%1$s</xliff:g> பயன்படுத்தப்பட்டது - <xliff:g id="FREE_SPACE">%2$s</xliff:g> பயன்படுத்துவதற்கு உள்ளது"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> நிமிடங்களாக எந்தச் செயல்பாடும் இல்லை எனில், உறக்கநிலைக்குச் செல்லும்"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"வால்பேப்பர், உறக்கம், எழுத்தின் அளவு"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<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>
@@ -3966,7 +3969,7 @@
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"நேரம், அறிவிப்புகள் மற்றும் பிற தகவலைப் பார்க்க உங்கள் மொபைலைக் கையில் எடுக்கவும்."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"நேரம், அறிவிப்புகள் மற்றும் பிற தகவலைப் பார்க்க உங்கள் டேப்லெட்டைக் கையில் எடுக்கவும்."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"நேரம், அறிவிப்புகள் மற்றும் பிற தகவலைப் பார்க்க உங்கள் சாதனத்தைக் கையில் எடுக்கவும்."</string>
- <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"எழுப்புவதற்கான பூட்டுத் திரைச் சைகை"</string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Wake lock திரைச் சைகை"</string>
<string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"அறிவிப்புகளைப் பெற சென்சாரில் ஸ்வைப் செய்தல்"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"கைரேகை ஸ்வைப்"</string>
@@ -4155,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"நெட்வொர்க் விவரங்கள்"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"உங்களது மொபைலில் உள்ள ஆப்ஸிற்கு, உங்கள் சாதனத்தின் பெயர் தெரியும். புளூடூத் சாதனங்களுடன் இணைக்கும்போது அல்லது வைஃபை ஹாட்ஸ்பாட்டை அமைக்கும்போது, அப்பெயர் பிறருக்குக் காட்டப்படலாம்."</string>
<string name="devices_title" msgid="7701726109334110391">"சாதனங்கள்"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"உயர் அதிர்வெண் பேனல்"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"விரிச்சுவல் உயர் அதிர்வெண் பேனலை இயக்கு"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"அனைத்து அமைப்புகளும்"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"உங்கள் அமைப்புகள்"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"பரிந்துரைகள்"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS டேட்டா"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS டேட்டா"</string>
<string name="choose_network_title" msgid="5702586742615861037">"நெட்வொர்க்கைத் தேர்வுசெய்"</string>
@@ -4170,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"நெட்வொர்க்குகளைக் கண்டறிய முடியவில்லை. மீண்டும் முயலவும்."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(தடுக்கப்பட்டது)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"சிம் கார்டு இல்லை"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"மேம்பட்ட அழைப்பு"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"விருப்பமான நெட்வொர்க் பயன்முறை: WCDMAக்கு முன்னுரிமை"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"விருப்பமான நெட்வொர்க் பயன்முறை: GSM மட்டும்"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"விருப்பமான நெட்வொர்க் பயன்முறை: WCDMA மட்டும்"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"விருப்பமான நெட்வொர்க் பயன்முறை: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"விருப்பமான நெட்வொர்க் பயன்முறை: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"விருப்பமான நெட்வொர்க் பயன்முறை: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"விருப்பமான நெட்வொர்க் பயன்முறை: CDMA மட்டும்"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"விருப்பமான நெட்வொர்க் பயன்முறை: EvDo மட்டும்"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"விருப்பமான நெட்வொர்க் பயன்முறை: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"விருப்பமான நெட்வொர்க் பயன்முறை: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"விருப்பமான நெட்வொர்க் பயன்முறை: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"விருப்பமான நெட்வொர்க் பயன்முறை: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"விருப்பமான நெட்வொர்க் பயன்முறை: குளோபல்"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"விருப்பமான நெட்வொர்க் பயன்முறை: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"விருப்பமான நெட்வொர்க் பயன்முறை: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"விருப்பமான நெட்வொர்க் பயன்முறை: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"விருப்பமான நெட்வொர்க் பயன்முறை: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"விருப்பமான நெட்வொர்க் பயன்முறை: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"விருப்பமான நெட்வொர்க் பயன்முறை: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"விருப்பமான நெட்வொர்க் பயன்முறை: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"விருப்பமான நெட்வொர்க் பயன்முறை: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"விருப்பமான நெட்வொர்க் பயன்முறை: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"விருப்பமான நெட்வொர்க் பயன்முறை: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"விருப்பமான நெட்வொர்க் பயன்முறை: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"விருப்பமான நெட்வொர்க் பயன்முறை: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"விருப்பமான நெட்வொர்க் பயன்முறை: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (பரிந்துரைக்கப்பட்டது)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (பரிந்துரைக்கப்பட்டது)"</string>
+ <string name="network_global" msgid="959947774831178632">"குளோபல்"</string>
+ <string name="label_available" msgid="1731547832803057893">"கிடைக்கும் நெட்வொர்க்குகள்"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"தேடுகிறது…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> இல் பதிவுசெய்கிறது…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"இந்த நெட்வொர்க்குடன் இணைப்பதை உங்கள் சிம் கார்டு அனுமதிக்கவில்லை."</string>
+ <string name="connect_later" msgid="978991102125216741">"இப்போது இந்த நெட்வொர்க்குடன் இணைக்க இயலவில்லை. மீண்டும் முயலவும்."</string>
+ <string name="registration_done" msgid="4573820010512184521">"நெட்வொர்க்கில் பதிவுசெய்யப்பட்டது."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"தானாகவே நெட்வொர்க்கைத் தேர்ந்தெடு"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"மொபைல் நிறுவன அமைப்புகள்"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"டேட்டா சேவையை அமைத்தல்"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"மொபைல் டேட்டா"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"மொபைல் நெட்வொர்க் மூலம் டேட்டாவைப் பயன்படுத்துதல்"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"விருப்பமான நெட்வொர்க் வகை"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"நெட்வொர்க் இயங்கும் பயன்முறையை மாற்று"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"விருப்பமான நெட்வொர்க் வகை"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"மொபைல் நிறுவனம்"</string>
+ <string name="call_category" msgid="8108654745239563833">"அழைப்பு"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"மொபைல் நிறுவன வீடியோ அழைப்பு"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"சிஸ்டம் தேர்வு"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"\'CDMA ரோமிங்\' பயன்முறையை மாற்று"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"சிஸ்டம் தேர்வு"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"நெட்வொர்க்"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"நெட்வொர்க்"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA சந்தா"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM மற்றும் NVக்கு இடையே மாறலாம்"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"சந்தா"</string>
+ <string name="register_automatically" msgid="518185886971595020">"தானியங்குப் பதிவு…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"டேட்டா ரோமிங்கை அனுமதிக்கவா?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"கட்டணம் பற்றி அறிய நெட்வொர்க் வழங்குநரைத் தொடர்புகொள்ளவும்."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"ஆப்ஸின் டேட்டா பயன்பாடு"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"தவறான நெட்வொர்க் பயன்முறை <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. நிராகரி."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> உடன் இணைந்திருக்கும்போது கிடைக்காது"</string>
+ <string name="see_more" msgid="5953815986207345223">"மேலும் காட்டு"</string>
+ <string name="see_less" msgid="1250265310929558370">"குறைவாகக் காட்டு"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-te/arrays.xml b/res/values-te/arrays.xml
index acc372b..7404eff 100644
--- a/res/values-te/arrays.xml
+++ b/res/values-te/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"గణించబడేదానిగా పరిగణించండి"</item>
<item msgid="2266114985518865625">"గణించబడనిదిగా పరిగణించండి"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"డిఫాల్ట్ (యాదృచ్ఛిక MACను ఉపయోగించండి)"</item>
+ <item msgid="5398461510512959597">"విశ్వసనీయ"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"లేదు"</item>
<item msgid="3863157480502955888">"అవును"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"డీబగ్"</item>
<item msgid="5286514712714822064">"విశదీకృత"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"ఇల్లు మాత్రమే"</item>
+ <item msgid="5034813753274486448">"ఆటోమేటిక్"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"ప్రాధాన్యత ఉన్న నెట్వర్క్ మోడ్లు: GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"GSM మాత్రమే"</item>
+ <item msgid="488474605709912156">"WCDMA మాత్రమే"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA స్వయంచాలకం"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo స్వయంచాలకం"</item>
+ <item msgid="370391313511477301">"CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo మాత్రమే"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"అంతర్జాతీయ"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA మాత్రమే"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"అంతర్జాతీయ"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMT"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 6f3cdc4..ca52cf0 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"సృష్టించు"</string>
<string name="allow" msgid="3349662621170855910">"అనుమతించు"</string>
<string name="deny" msgid="6947806159746484865">"తిరస్కరించు"</string>
- <string name="dlg_close" msgid="7471087791340790015">"మూసివేయి"</string>
<string name="device_info_default" msgid="7847265875578739287">"తెలియదు"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">మీరు ఇప్పుడు డెవలపర్ కావడానికి <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> అడుగుల దూరంలో ఉన్నారు.</item>
@@ -179,8 +178,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"మునుపు కనెక్ట్ చేసిన పరికరాలు"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"ఇంతకు మునుపు కనెక్ట్ చేయబడినవి"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"బ్లూటూత్ ఆన్ చేయబడింది"</string>
- <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
- <skip />
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"అన్నీ చూడండి"</string>
<string name="date_and_time" msgid="9062980487860757694">"తేదీ & సమయం"</string>
<string name="choose_timezone" msgid="1362834506479536274">"సమయ మండలిని ఎంచుకోండి"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -893,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi-Fi హాట్స్పాట్ కోసం కనీసం ఒక బ్యాండ్ను ఎంచుకోండి:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP సెట్టింగ్లు"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"గోప్యత"</string>
<string name="wifi_shared" msgid="844142443226926070">"ఇతర పరికర వినియోగదారులతో భాగస్వామ్యం చేయి"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(మారలేదు)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"దయచేసి ఎంచుకోండి"</string>
@@ -1206,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"పిన్ మార్చడం కుదరదు.\nబహుశా పిన్ చెల్లనిది అయ్యి ఉంటుంది."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"సిమ్ పిన్ విజయవంతంగా మార్చబడింది"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"సిమ్ కార్డు లాక్ స్థితిని మార్చడం కుదరదు.\nబహుశా పిన్ చెల్లనిది అయ్యి ఉంటుంది."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PINని నిలిపివేయడం సాధ్యం కాదు."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PINను ఆరంభించడం సాధ్యం కాదు."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"సరే"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"రద్దు చేయి"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"బహుళ SIMలు కనుగొనబడ్డాయి"</string>
@@ -2932,7 +2933,6 @@
<item quantity="other">%d దాచబడిన అంశాలను చూపుతుంది</item>
<item quantity="one">%d దాచబడిన అంశాన్ని చూపుతుంది</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"కుదించండి"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"నెట్వర్క్ & ఇంటర్నెట్"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"మొబైల్"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"డేటా వినియోగం"</string>
@@ -3002,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"ముదురు రంగు థీమ్"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"బగ్"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"విస్తార ప్రదర్శన, లాక్ స్క్రీన్ ప్రదర్శన"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"లాక్ స్క్రీన్ నోటిఫికేషన్"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ముఖం"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"వేలిముద్ర"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"కాంతిహీన స్క్రీన్, టచ్స్క్రీన్, బ్యాటరీ, స్మార్ట్ ప్రకాశం, గతిశీల ప్రకాశం"</string>
@@ -3713,6 +3714,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"అంతర్గత నిల్వ: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ఉపయోగించబడింది - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ఖాళీగా ఉంది"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ఇనాక్టివ్గా ఉన్న తర్వాత నిద్రావస్థకు వెళ్తుంది"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"వాల్పేపర్, నిద్రావస్థ, ఫాంట్ పరిమాణం"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<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>
@@ -4157,10 +4160,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"నెట్వర్క్ వివరాలు"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"మీ ఫోన్లోని యాప్లకు మీ పరికరం పేరు కనిపిస్తుంది. మీరు బ్లూటూత్ పరికరాలకు కనెక్ట్ చేసినప్పుడు లేదా Wi-Fi హాట్స్పాట్ని సెటప్ చేసినప్పుడు ఇతర వ్యక్తులకు కూడా ఇది కనిపించవచ్చు."</string>
<string name="devices_title" msgid="7701726109334110391">"పరికరాలు"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"హై ఫ్రీక్వెన్సీ ప్యానెల్"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"వర్చువల్ హై ఫ్రీక్వెన్సీ ప్యానెల్ను ప్రారంభించండి"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"అన్ని సెట్టింగ్లు"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"మీ సెట్టింగ్లు"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"సూచనలు"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS డేటా"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS డేటా"</string>
<string name="choose_network_title" msgid="5702586742615861037">"నెట్వర్క్ను ఎంచుకోండి"</string>
@@ -4172,4 +4173,70 @@
<string name="network_query_error" msgid="7487714485362598410">"నెట్వర్క్లను కనుగొనడం సాధ్యపడలేదు. మళ్లీ ప్రయత్నించండి."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(నిషేధించబడింది)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM కార్డ్ లేదు"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"అధునాతన కాలింగ్"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: WCDMAకు ప్రాధాన్యత"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: GSM మాత్రమే"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: WCDMA మాత్రమే"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: CDMA మాత్రమే"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: EvDo మాత్రమే"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"ఎంచుకోబడే నెట్వర్క్ మోడ్: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: గ్లోబల్"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"ప్రాధాన్యత గల నెట్వర్క్ మోడ్: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (సిఫార్సు చేయబడింది)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (సిఫార్సు చేయబడింది)"</string>
+ <string name="network_global" msgid="959947774831178632">"అంతర్జాతీయ"</string>
+ <string name="label_available" msgid="1731547832803057893">"అందుబాటులో ఉన్న నెట్వర్క్లు"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"వెతకబడుతున్నాయి…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g>లో నమోదు చేయబడుతోంది…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"మీ SIM కార్డు ఈ నెట్వర్క్కు కనెక్షన్ను అనుమతించదు."</string>
+ <string name="connect_later" msgid="978991102125216741">"ప్రస్తుతం ఈ నెట్వర్క్కు కనెక్ట్ చేయడం సాధ్యపడదు. తర్వాత మళ్లీ ప్రయత్నించండి."</string>
+ <string name="registration_done" msgid="4573820010512184521">"నెట్వర్క్లో నమోదు చేయబడింది."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"నెట్వర్క్ను ఆటోమేటిక్గా ఎంచుకో"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"క్యారియర్ సెట్టింగ్లు"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"డేటా సేవను సెటప్ చేయండి"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"మొబైల్ డేటా"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"మొబైల్ నెట్వర్క్ను ఉపయోగించి డేటాను యాక్సెస్ చేయండి"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"ప్రాధాన్యత గల నెట్వర్క్ రకం"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"నెట్వర్క్ ఆపరేటింగ్ మోడ్ను మార్చండి"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"ప్రాధాన్యత గల నెట్వర్క్ రకం"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"క్యారియర్"</string>
+ <string name="call_category" msgid="8108654745239563833">"కాల్ చేయడం"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"క్యారియర్ వీడియో కాలింగ్"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"సిస్టమ్ ఎంపిక"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA రోమింగ్ మోడ్ను మార్చండి"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"సిస్టమ్ ఎంపిక"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"నెట్వర్క్"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"నెట్వర్క్"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA సభ్యత్వం"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM మరియు NV మధ్య మారండి"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"సభ్యత్వం"</string>
+ <string name="register_automatically" msgid="518185886971595020">"ఆటోమేటిక్ నమోదు…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"డేటా రోమింగ్ను అనుమతించాలా?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"ధరల కోసం మీ నెట్వర్క్ ప్రదాతను అడగండి."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"యాప్ డేటా వినియోగం"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"చెల్లని నెట్వర్క్ మోడ్<xliff:g id="NETWORKMODEID">%1$d</xliff:g>. విస్మరించు."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g>కి కనెక్ట్ చేసినప్పుడు అందుబాటులో ఉండదు"</string>
+ <string name="see_more" msgid="5953815986207345223">"మరిన్నింటిని చూడండి"</string>
+ <string name="see_less" msgid="1250265310929558370">"తక్కువ చూడండి"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index d478cf9..65a73b8 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"ถือว่ามีการวัดปริมาณอินเทอร์เน็ต"</item>
<item msgid="2266114985518865625">"ถือว่าไม่มีการวัดปริมาณอินเทอร์เน็ต"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"ค่าเริ่มต้น (ใช้ MAC ที่เป็นแบบสุ่ม)"</item>
+ <item msgid="5398461510512959597">"เชื่อถือได้"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"ไม่"</item>
<item msgid="3863157480502955888">"ใช่"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"แก้ไขข้อบกพร่อง"</item>
<item msgid="5286514712714822064">"รายละเอียด"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"เครือข่ายบ้านเท่านั้น"</item>
+ <item msgid="5034813753274486448">"อัตโนมัติ"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"ต้องการ GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"GSM เท่านั้น"</item>
+ <item msgid="488474605709912156">"WCDMA เท่านั้น"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA อัตโนมัติ"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo อัตโนมัติ"</item>
+ <item msgid="370391313511477301">"CDMA ที่ไม่มี EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo เท่านั้น"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"ทั่วโลก"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA เท่านั้น"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"ทั่วโลก"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index b1da482..35ef1ff 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"สร้าง"</string>
<string name="allow" msgid="3349662621170855910">"อนุญาต"</string>
<string name="deny" msgid="6947806159746484865">"ปฏิเสธ"</string>
- <string name="dlg_close" msgid="7471087791340790015">"ปิด"</string>
<string name="device_info_default" msgid="7847265875578739287">"ไม่ทราบ"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">คุณกำลังจะได้เป็นนักพัฒนาซอฟต์แวร์ในอีก <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ขั้นตอน</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"เลือกอย่างน้อยหนึ่งย่านความถี่สำหรับฮอตสปอต Wi‑Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"การตั้งค่า IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"ความเป็นส่วนตัว"</string>
<string name="wifi_shared" msgid="844142443226926070">"แชร์กับผู้ใช้อุปกรณ์คนอื่นๆ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ไม่เปลี่ยน)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"โปรดเลือก"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"ไม่สามารถเปลี่ยน PIN\nPIN อาจไม่ถูกต้อง"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"เปลี่ยนซิม PIN สำเร็จแล้ว"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"เปลี่ยนสถานะการล็อกซิมการ์ดไม่ได้\nPIN อาจไม่ถูกต้อง"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"ปิดใช้ PIN ไม่ได้"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"เปิดใช้ PIN ไม่ได้"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"ตกลง"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"ยกเลิก"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"พบหลายซิม"</string>
@@ -2457,7 +2459,7 @@
<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_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" msgid="6249331160676175009">"เปิดใช้งานโปรแกรมจัดการโปรไฟล์ไหม"</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>
@@ -2931,7 +2933,6 @@
<item quantity="other">แสดงรายการที่ซ่อน %d รายการ</item>
<item quantity="one">แสดงรายการที่ซ่อน %d รายการ</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"ยุบ"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"เครือข่ายและอินเทอร์เน็ต"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"มือถือ"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ปริมาณการใช้อินเทอร์เน็ต"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"ธีมสีเข้ม"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"ข้อบกพร่อง"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"หน้าจอแอมเบียนท์ หน้าจอล็อก"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"การแจ้งเตือนในหน้าจอล็อก"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ใบหน้า"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"ลายนิ้วมือ"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"หน้าจอสลัว หน้าจอสัมผัส แบตเตอรี่ ความสว่างอัจฉริยะ ความสว่างแบบไดนามิก"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"พื้นที่เก็บข้อมูลภายใน: ใช้ไป <xliff:g id="PERCENTAGE">%1$s</xliff:g> - เหลือ <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"เข้าสู่โหมดสลีปหลังจากไม่มีการใช้งาน <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"วอลเปเปอร์ สลีป ขนาดตัวอักษร"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"เข้าโหมดสลีปหลังจากไม่มีการใช้งาน 10 นาที"</string>
<string name="memory_summary" msgid="8080825904671961872">"ใช้หน่วยความจำไป <xliff:g id="USED_MEMORY">%1$s</xliff:g> จาก <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> โดยเฉลี่ย"</string>
<string name="users_summary" msgid="1674864467098487328">"ลงชื่อเข้าใช้เป็น <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"รายละเอียดเครือข่าย"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"แอปในโทรศัพท์จะเห็นชื่อของอุปกรณ์ และคนอื่นก็อาจเห็นเช่นกันหากคุณเชื่อมต่อกับอุปกรณ์บลูทูธหรือตั้งค่าฮอตสปอต Wi-Fi"</string>
<string name="devices_title" msgid="7701726109334110391">"อุปกรณ์"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"แผงความถี่สูง"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"เปิดใช้แผงความถี่สูงเสมือน"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"การตั้งค่าทั้งหมด"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"การตั้งค่าของคุณ"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"คำแนะนำ"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"ข้อมูล CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"ข้อมูล CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"เลือกเครือข่าย"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"ไม่พบเครือข่าย โปรดลองอีกครั้ง"</string>
<string name="forbidden_network" msgid="4626592887509826545">"(ห้ามใช้)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"ไม่มีซิมการ์ด"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"การโทรขั้นสูง"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"โหมดเครือข่ายที่ต้องการ: ต้องการ WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"โหมดเครือข่ายที่ต้องการ: GSM เท่านั้น"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"โหมดเครือข่ายที่ต้องการ: WCDMA เท่านั้น"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"โหมดเครือข่ายที่ต้องการ: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"โหมดเครือข่ายที่ต้องการ: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"โหมดเครือข่ายที่ต้องการ: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"โหมดเครือข่ายที่ต้องการ: CDMA เท่านั้น"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"โหมดเครือข่ายที่ต้องการ: EvDo เท่านั้น"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"โหมดเครือข่ายที่ต้องการ: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"โหมดเครือข่ายที่ต้องการ: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"โหมดเครือข่ายที่ต้องการ: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"โหมดเครือข่ายที่ต้องการ: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"โหมดเครือข่ายที่ต้องการ: ทั่วโลก"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"โหมดเครือข่ายที่ต้องการ: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"โหมดเครือข่ายที่ต้องการ: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"โหมดเครือข่ายที่ต้องการ: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"โหมดเครือข่ายที่ต้องการ: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"โหมดเครือข่ายที่ต้องการ: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"โหมดเครือข่ายที่ต้องการ: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"โหมดเครือข่ายที่ต้องการ: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"โหมดเครือข่ายที่ต้องการ: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"โหมดเครือข่ายที่ต้องการ: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"โหมดเครือข่ายที่ต้องการ: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"โหมดเครือข่ายที่ต้องการ: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"โหมดเครือข่ายที่ต้องการ: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"โหมดเครือข่ายที่ต้องการ: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (แนะนำ)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (แนะนำ)"</string>
+ <string name="network_global" msgid="959947774831178632">"ทั่วโลก"</string>
+ <string name="label_available" msgid="1731547832803057893">"เครือข่ายที่ใช้งานได้"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"กำลังค้นหา…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"กำลังลงทะเบียนใน <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"ซิมการ์ดของคุณไม่อนุญาตให้เชื่อมต่อกับเครือข่ายนี้"</string>
+ <string name="connect_later" msgid="978991102125216741">"เชื่อมต่อเครือข่ายนี้ไม่ได้ในขณะนี้ โปรดลองอีกครั้งในภายหลัง"</string>
+ <string name="registration_done" msgid="4573820010512184521">"ลงทะเบียนในเครือข่ายแล้ว"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"เลือกเครือข่ายโดยอัตโนมัติ"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"การตั้งค่าผู้ให้บริการ"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"ตั้งค่าบริการข้อมูล"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"เน็ตมือถือ"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"เข้าถึงข้อมูลโดยใช้เครือข่ายมือถือ"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"ประเภทเครือข่ายที่ต้องการ"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"เปลี่ยนโหมดปฏิบัติการของเครือข่าย"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"ประเภทเครือข่ายที่ต้องการ"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"ผู้ให้บริการ"</string>
+ <string name="call_category" msgid="8108654745239563833">"การโทร"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"วิดีโอคอลผ่านผู้ให้บริการ"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"การเลือกระบบ"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"เปลี่ยนโหมดการเชื่อมต่อกับเครือข่าย CDMA อื่น"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"การเลือกระบบ"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"เครือข่าย"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"เครือข่าย"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"การสมัครใช้บริการ CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"เปลี่ยนระหว่าง RUIM/SIM และ NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"การสมัครใช้บริการ"</string>
+ <string name="register_automatically" msgid="518185886971595020">"การลงทะเบียนอัตโนมัติ…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"อนุญาตการโรมมิ่งข้อมูลไหม"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"โปรดสอบถามผู้ให้บริการเครือข่ายสำหรับข้อมูลเกี่ยวกับราคา"</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"ปริมาณการใช้อินเทอร์เน็ตของแอป"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"โหมดเครือข่ายไม่ถูกต้อง <xliff:g id="NETWORKMODEID">%1$d</xliff:g> ไม่สนใจ"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"ใช้ไม่ได้เมื่อเชื่อมต่อกับ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"ดูเพิ่ม"</string>
+ <string name="see_less" msgid="1250265310929558370">"ดูน้อยลง"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index 6ea2e5d..745870d 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Ituring bilang nakametro"</item>
<item msgid="2266114985518865625">"Ituring bilang hindi nakametro"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Default (gumamit ng naka-randomize na MAC)"</item>
+ <item msgid="5398461510512959597">"Pinagkakatiwalaan"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Hindi"</item>
<item msgid="3863157480502955888">"Oo"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Debug"</item>
<item msgid="5286514712714822064">"Verbose"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Home lang"</item>
+ <item msgid="5034813753274486448">"Awtomatiko"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Mas gusto ang GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"GSM lang"</item>
+ <item msgid="488474605709912156">"WCDMA lang"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA auto"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo auto"</item>
+ <item msgid="370391313511477301">"CDMA na walang EvDo"</item>
+ <item msgid="4678789463133969294">"EvDo lang"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Pangkalahatan"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"TDSCDMA lang"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Pangkalahatan"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index d02636f..806d4af 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Gawin"</string>
<string name="allow" msgid="3349662621170855910">"Payagan"</string>
<string name="deny" msgid="6947806159746484865">"Tanggihan"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Isara"</string>
<string name="device_info_default" msgid="7847265875578739287">"Hindi Kilala"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one"><xliff:g id="STEP_COUNT_1">%1$d</xliff:g> hakbang na lang, magiging developer ka na.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Pumili ng kahit isang band para sa Wi‑Fi hotspot:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Mga setting ng IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Privacy"</string>
<string name="wifi_shared" msgid="844142443226926070">"Ibahagi sa iba pang mga user ng device"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(di-nabago)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Mangyaring pumili"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Hindi mapalitan ang PIN.\nPosibleng maling PIN."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"Matagumpay na binago ang PIN ng SIM"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Hindi mabago ang katayuan ng lock ng SIM card.\nPosibleng maling PIN."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Hindi ma-disable ang PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Hindi ma-enable ang PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Kanselahin"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Maraming SIM ang nakita"</string>
@@ -2931,7 +2933,6 @@
<item quantity="one">Ipakita ang %d nakatagong item</item>
<item quantity="other">Ipakita ang %d na nakatagong item</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"I-collapse"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Network at internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobile"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"paggamit ng data"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"madilim na tema"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"bug"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient na display, Display ng lock screen"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notification sa lock screen"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"mukha"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"madilim na screen, touchscreen, baterya, smart brightness, dynamic na liwanag"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Internal storage: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ang ginagamit - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ang bakante"</string>
<string name="display_summary" msgid="6737806235882127328">"Mag-sleep pagkalipas ng <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> na walang aktibidad"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Wallpaper, sleep, laki ng font"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Mag-sleep pagkalipas ng 10 minuto na walang aktibidad"</string>
<string name="memory_summary" msgid="8080825904671961872">"Avg <xliff:g id="USED_MEMORY">%1$s</xliff:g> ng <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> ng ginamit na memory"</string>
<string name="users_summary" msgid="1674864467098487328">"Naka-sign in bilang <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Mga detalye ng network"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Nakikita ang pangalan ng iyong device sa mga app sa iyong telepono. Maaari rin itong makita ng ibang tao kapag kumonekta ka sa mga Bluetooth device o nag-set up ka ng Wi-Fi hotspot."</string>
<string name="devices_title" msgid="7701726109334110391">"Mga Device"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"High Frequency na Panel"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"I-enable ang High Frequency na Virtual Panel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Lahat ng Setting"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Ang Iyong Mga Setting"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Mga Mungkahi"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Data ng CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Data ng CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Pumili ng network"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Hindi makahanap ng mga network. Subukang muli."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(ipinagbabawal)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Walang SIM card"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Advanced na Pagtawag"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Mas gustong network mode: WCDMA ang mas gusto"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Mas gustong network mode: GSM lang"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Mas gustong network mode: WCDMA lang"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Mas gustong network mode: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Mas gustong network mode: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Mas gustong network mode: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Mas gustong network mode: CDMA lang"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Mas gustong network mode: EvDo lang"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Mas gustong network mode: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Mas gustong network mode: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Mas gustong network mode: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Mas gustong network mode: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Mas gustong network mode: Pangkalahatan"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Mas gustong network mode: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Mas gustong network mode: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Mas gustong network mode: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Mas gustong network mode: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Mas gustong network mode: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Mas gustong network mode: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Mas gustong network mode: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Mas gustong network mode: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Mas gustong network mode: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Mas gustong network mode: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Mas gustong network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Mas gustong network mode: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Mas gustong network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (inirerekomenda)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (inirerekomenda)"</string>
+ <string name="network_global" msgid="959947774831178632">"Pangkalahatan"</string>
+ <string name="label_available" msgid="1731547832803057893">"Mga available na network"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Naghahanap…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Nagpaparehistro sa <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Hindi pinapayagan ng iyong SIM card ang koneksyon sa network na ito."</string>
+ <string name="connect_later" msgid="978991102125216741">"Hindi makakonekta sa network na ito sa ngayon. Subukang muli sa ibang pagkakataon."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Nakarehistro sa network."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Awtomatikong piliin ang network"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Mga setting ng carrier"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"I-set up ang serbisyo ng data"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobile data"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"I-access ang data gamit ang mobile network"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Mas gustong network type"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Baguhin ang network operating mode"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Mas gustong network type"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Carrier"</string>
+ <string name="call_category" msgid="8108654745239563833">"Pagtawag"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Pakikipag-video call gamit ang carrier"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Pagpili ng system"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Baguhin ang CDMA roaming mode"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Pagpili ng system"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Network"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Network"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Subscription ng CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Magpalit sa pagitan ng RUIM/SIM at NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"subscription"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Awtomatikong pagpaparehistro…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Payagan ang data roaming?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Magtanong sa iyong network provider para sa pagpepresyo."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Paggamit ng data ng app"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Invalid ang Network Mode na <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Balewalain."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Hindi available kapag nakakonekta sa <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Tumingin pa"</string>
+ <string name="see_less" msgid="1250265310929558370">"Tumingin nang kaunti"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 852a7d8..989ed96 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Sınırlı olarak ele al"</item>
<item msgid="2266114985518865625">"Sınırsız olarak ele al"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Varsayılan (rastgele MAC kullan)"</item>
+ <item msgid="5398461510512959597">"Güvenilir"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Hayır"</item>
<item msgid="3863157480502955888">"Evet"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Hata ayıklama"</item>
<item msgid="5286514712714822064">"Ayrıntılı"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Yalnızca ev"</item>
+ <item msgid="5034813753274486448">"Otomatik"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA tercih edilen"</item>
+ <item msgid="807926878589867564">"Yalnızca GSM"</item>
+ <item msgid="488474605709912156">"Yalnızca WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA otomatik"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo otomatik"</item>
+ <item msgid="370391313511477301">"EvDo olmadan CDMA"</item>
+ <item msgid="4678789463133969294">"Yalnızca EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Genel"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Yalnızca TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Genel"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 3963c27..0093984 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Oluştur"</string>
<string name="allow" msgid="3349662621170855910">"İzin ver"</string>
<string name="deny" msgid="6947806159746484865">"Reddet"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Kapat"</string>
<string name="device_info_default" msgid="7847265875578739287">"Bilinmiyor"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Geliştirici olmanıza <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> adım kaldı.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Kablosuz hotspot için en az bir grup seçin:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP ayarları"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Gizlilik"</string>
<string name="wifi_shared" msgid="844142443226926070">"Diğer cihaz kullanıcılarıyla paylaş"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(değişmedi)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Lütfen seçin"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PIN değiştirilemiyor.\nPIN yanlış olabilir."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN kodu başarıyla değiştirildi"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"SIM kartın kilit durumu değiştirilemiyor.\nPIN yanlış olabilir."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN devre dışı bırakılamıyor."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN etkinleştirilemiyor."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"Tamam"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"İptal"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Birden çok SIM bulundu"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Gizli %d öğeyi göster</item>
<item quantity="one">Gizli %d öğeyi göster</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Daralt"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Ağ ve İnternet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobil"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"veri kullanımı"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"koyu tema"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"hata"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ekran ambiyansı, Ekran kilidi ekranı"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"kilit ekranı bildirimi"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"yüz"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"dijital parmak izi"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ekranı karartma, dokunmatik ekran, pil, akıllı parlaklık, dinamik parlakık"</string>
@@ -3531,7 +3533,7 @@
<string name="permit_usage_access" msgid="4012876269445832300">"Kullanım erişimine izin ver"</string>
<string name="app_usage_preference" msgid="7065701732733134991">"Uygulama kullanım tercihleri"</string>
<string name="time_spent_in_app_pref_title" msgid="649419747540933845">"Uygulama içinde geçirilen süre"</string>
- <string name="usage_access_description" msgid="1352111094596416795">"Kullanım erişimi; bir uygulamanın, başka hangi uygulamaları ne sıklıkta kullandığınızı, ayrıca operatörünüzü, dil ayarlarınızı ve diğer ayrıntıları takip etmesine izin verir."</string>
+ <string name="usage_access_description" msgid="1352111094596416795">"Kullanım erişimi vermeniz halinde uygulama, başka hangi uygulamaları ne sıklıkta kullandığınızı, operatörünüzü, dil ayarlarınızı ve diğer ayrıntıları takip edebilir."</string>
<string name="memory_settings_title" msgid="7490541005204254222">"Bellek"</string>
<string name="memory_details_title" msgid="8542565326053693320">"Bellek ayrıntıları"</string>
<string name="always_running" msgid="6042448320077429656">"Her zaman çalışıyor (<xliff:g id="PERCENTAGE">%s</xliff:g>)"</string>
@@ -3652,7 +3654,7 @@
<string name="system_alert_window_settings" msgid="8466613169103527868">"Diğer uygulamaların üzerinde göster"</string>
<string name="system_alert_window_apps_title" msgid="7005760279028569491">"Uygulamalar"</string>
<string name="system_alert_window_access_title" msgid="6297115362542361241">"Diğer uygulamaların üzerinde göster"</string>
- <string name="permit_draw_overlay" msgid="7456536798718633432">"Diğer uyg. üstünde gösterime izin ver"</string>
+ <string name="permit_draw_overlay" msgid="7456536798718633432">"Diğer uyg. üzerinde gösterime izin ver"</string>
<string name="allow_overlay_description" msgid="8961670023925421358">"Bu uygulamaya, kullandığınız diğer uygulamaların üzerinde gösterme izin verir. Bu durum, diğer uygulamaların kullanımını etkileyebilir veya görünüşünü ya da davranışını değiştirebilir."</string>
<string name="keywords_vr_listener" msgid="7441221822576384680">"vr sanal gerçeklik dinleyici stereo yardımcı hizmeti"</string>
<string name="keywords_system_alert_window" msgid="5049498015597864850">"sistem uyarı penceresi iletişim kutusu gösterme en üstte diğer uygulamalar"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Dahili depolama alanı: <xliff:g id="PERCENTAGE">%1$s</xliff:g> kullanılıyor - <xliff:g id="FREE_SPACE">%2$s</xliff:g> boş"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> süreyle işlem yapılmadığında uyku moduna geç"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Duvar kağıdı, uyku, yazı tipi boyutu"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"10 dakika işlem yapılmadığında uyku moduna geç"</string>
<string name="memory_summary" msgid="8080825904671961872">"Toplam <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> belleğin ortalama <xliff:g id="USED_MEMORY">%1$s</xliff:g> kadarı kullanılıyor"</string>
<string name="users_summary" msgid="1674864467098487328">"<xliff:g id="USER_NAME">%1$s</xliff:g> olarak oturum açıldı"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Ağ ayrıntıları"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Telefonunuzdaki uygulamalar cihazınızın adını görür. Bluetooth cihazlarına bağlandığınızda veya bir kablosuz hotspot ayarladığınızda başka kişiler de bu adı görebilir."</string>
<string name="devices_title" msgid="7701726109334110391">"Cihazlar"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Yüksek Frekans Paneli"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Sanal Yüksek Frekans Panelini Etkinleştir"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Tüm Ayarlar"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Ayarlarınız"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Öneriler"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS Verileri"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS Verileri"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Ağ seç"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Ağ bulunamadı. Tekrar deneyin."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(yasak)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM kart yok"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Gelişmiş Arama"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Tercih edilen ağ modu: WCDMA tercih edilir"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Tercih edilen ağ modu: Yalnızca GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Tercih edilen ağ modu: Yalnızca WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Tercih edilen ağ modu: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Tercih edilen ağ modu: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Tercih edilen ağ modu: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Tercih edilen ağ modu: Yalnızca CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Tercih edilen ağ modu: Yalnızca EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Tercih edilen ağ modu: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Tercih edilen ağ modu: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Tercih edilen ağ modu: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Tercih edilen ağ modu: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Tercih edilen ağ modu: Dünya Genelinde"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Tercih edilen ağ modu: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Tercih edilen ağ modu: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Tercih edilen ağ modu: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Tercih edilen ağ modu: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Tercih edilen ağ modu: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Tercih edilen ağ modu: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Tercih edilen ağ modu: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Tercih edilen ağ modu: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Tercih edilen ağ modu: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Tercih edilen ağ modu: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Tercih edilen ağ modu: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Tercih edilen ağ modu: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Tercih edilen ağ modu: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (önerilir)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (önerilir)"</string>
+ <string name="network_global" msgid="959947774831178632">"Küresel"</string>
+ <string name="label_available" msgid="1731547832803057893">"Kullanılabilir ağlar"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Aranıyor…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> ağına kaydediliyor..."</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM kartınız bu ağa bağlanmaya izin vermiyor."</string>
+ <string name="connect_later" msgid="978991102125216741">"Bu ağa şu an bağlanılamıyor. Daha sonra tekrar deneyin."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Ağa kaydedildi."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Ağı otomatik seç"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Operatör ayarları"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Veri hizmetini kurun"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobil veri"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Verilere mobil ağ üzerinden erişim"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Tercih edilen ağ türü"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Ağın çalışma modunu değiştir"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Tercih edilen ağ türü"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Operatör"</string>
+ <string name="call_category" msgid="8108654745239563833">"Çağrı"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Operatör görüntülü görüşmesi"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Sistem seç"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA dolaşım modunu değiştir"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Sistem seç"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Ağ"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Ağ"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA aboneliği"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM ve NV arasında değiştir"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"abonelik"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Otomatik kayıt..."</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Veri dolaşımına izin verilsin mi?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Fiyat bilgisi için ağ sağlayıcınıza başvurun."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Uygulama veri kullanımı"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"<xliff:g id="NETWORKMODEID">%1$d</xliff:g> Geçersiz Ağ Modu. Yoksayın."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> operatörüne bağlıyken kullanılamaz"</string>
+ <string name="see_more" msgid="5953815986207345223">"Daha fazla"</string>
+ <string name="see_less" msgid="1250265310929558370">"Daha az göster"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index eef3a0d..d4e332b 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Вважати тарифікованою"</item>
<item msgid="2266114985518865625">"Вважати нетарифікованою"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"За умовчанням (використовувати довільну MAC-адресу)"</item>
+ <item msgid="5398461510512959597">"Довірений"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Ні"</item>
<item msgid="3863157480502955888">"Так"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Налагодження"</item>
<item msgid="5286514712714822064">"Докладно"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Лише домашні мережі"</item>
+ <item msgid="5034813753274486448">"Автоматично"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Рекомендовано GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"Лише GSM"</item>
+ <item msgid="488474605709912156">"Лише WCDMA"</item>
+ <item msgid="1912421096218750039">"Авто GSM/WCDMA"</item>
+ <item msgid="5072198667819683600">"Авто CDMA/EvDo"</item>
+ <item msgid="370391313511477301">"CDMA без EvDo"</item>
+ <item msgid="4678789463133969294">"Лише EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Загальний"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Лише TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Загальний"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 9e3d8a6..c7faeb1 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Створити"</string>
<string name="allow" msgid="3349662621170855910">"Дозволити"</string>
<string name="deny" msgid="6947806159746484865">"Заборонити"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Закрити"</string>
<string name="device_info_default" msgid="7847265875578739287">"Невідомо"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Щоб стати розробником, залишився ще <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> крок.</item>
@@ -922,6 +921,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5 ГГц"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Виберіть принаймні один діапазон для точки доступу Wi-Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Налаштування IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Конфіденційність"</string>
<string name="wifi_shared" msgid="844142443226926070">"Надати доступ іншим користувачам пристрою"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(без змін)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Виберіть"</string>
@@ -1237,6 +1237,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Неможливо змінити PIN-код.\nМожливо, неправильний PIN-код."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"PIN SIM-карти успішно змінено"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Неможливо змінити стан блокування SIM-карти.\nМожливо, неправильний PIN-код."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Не вдається вимкнути PIN-код."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Не вдається ввімкнути PIN-код."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Скасувати"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Виявлено декілька SIM-карт"</string>
@@ -3007,7 +3009,6 @@
<item quantity="many">Показати %d схованих елементів</item>
<item quantity="other">Показати %d схованого елемента</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Згорнути"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Мережа й Інтернет"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"мобільна мережа"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"використання трафіку"</string>
@@ -3077,6 +3078,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"темна тема"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"помилка"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Активний екран, заблокований екран"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"сповіщення на заблокованому екрані"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"обличчя"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"відбиток пальця"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"затемнений екран, сенсорний екран, акумулятор, розумна яскравість, динамічна яскравість"</string>
@@ -3824,6 +3826,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Внутрішня пам’ять: використано <xliff:g id="PERCENTAGE">%1$s</xliff:g>, вільно <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"Перейти в режим сну після <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> бездіяльності"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Фоновий малюнок, режим сну та розмір шрифту"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Перейти в режим сну після 10 хвилин бездіяльності"</string>
<string name="memory_summary" msgid="8080825904671961872">"У середньому використовується <xliff:g id="USED_MEMORY">%1$s</xliff:g> пам’яті з <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Ви ввійшли як <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4300,10 +4304,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Дані мережі"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Додатки на телефоні бачать назву пристрою. Її також можуть бачити інші люди, коли ви під’єднуєтеся до пристроїв Bluetooth або налаштовуєте точку доступу Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Пристрої"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Панель високих частот"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Увімкнути віртуальну панель високих частот"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Усі налаштування"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Ваші налаштування"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Пропозиції"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Дані CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Дані CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Вибрати мережу"</string>
@@ -4315,4 +4317,74 @@
<string name="network_query_error" msgid="7487714485362598410">"Не вдалося знайти мережу. Повторіть спробу."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(заборонено)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Немає SIM-карти"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Виклики з розширеними можливостями"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Рекомендований режим мережі: бажано WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Рекомендований режим мережі: лише GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Рекомендований режим мережі: лише WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Рекомендований режим мережі: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Рекомендований режим мережі: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Рекомендований режим мережі: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Рекомендований режим мережі: лише CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Рекомендований режим мережі: лише EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Рекомендований режим мережі: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Рекомендований режим мережі: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Рекомендований режим мережі: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Рекомендований режим мережі: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Рекомендований режим мережі: загальний"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Рекомендований режим мережі: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Рекомендований режим мережі: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Рекомендований режим мережі: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Рекомендований режим мережі: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Рекомендований режим мережі: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Рекомендований режим мережі: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Рекомендований режим мережі: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Рекомендований режим мережі: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Рекомендований режим мережі: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Рекомендований режим мережі: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Рекомендований режим мережі: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Рекомендований режим мережі: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Рекомендований режим мережі: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (рекомендовано)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (рекомендовано)"</string>
+ <string name="network_global" msgid="959947774831178632">"Загальний"</string>
+ <string name="label_available" msgid="1731547832803057893">"Доступні мережі"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Пошук…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Реєстрація в мережі <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Вашій SIM-карті заборонено підключатися до цієї мережі."</string>
+ <string name="connect_later" msgid="978991102125216741">"Зараз не вдається підключитися до цієї мережі. Повторіть спробу пізніше."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Зареєстровано в мережі"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Вибирати мережу автоматично"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Налаштування оператора"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Налаштувати мобільний Інтернет"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Мобільне передавання даних"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Доступ до Інтернету через мобільну мережу"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Рекомендований тип мережі"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Змінити режим роботи мережі"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Рекомендований тип мережі"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Оператор"</string>
+ <string name="call_category" msgid="8108654745239563833">"Виклики"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Відеовиклики в мережі оператора"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Вибір системи"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Змінити режим CDMA-роумінгу"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Вибір системи"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Мережа"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Мережа"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Підписка CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Змінити RUIM/SIM-карту на NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"підписка"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Автоматична реєстрація…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Дозволити роумінг даних?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Докладніше про ціни можна дізнатися в оператора мережі."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Використання трафіку додатків"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Недійсний режим мережі: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ігнорувати."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Недоступно, коли підключено до оператора <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Докладніше"</string>
+ <string name="see_less" msgid="1250265310929558370">"Показати менше"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="one">Підключено <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> пристрій</item>
+ <item quantity="few">Підключено <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> пристрої</item>
+ <item quantity="many">Підключено <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> пристроїв</item>
+ <item quantity="other">Підключено <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> пристрою</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Немає підключених пристроїв"</string>
</resources>
diff --git a/res/values-ur/arrays.xml b/res/values-ur/arrays.xml
index c28fca2..f822f0f 100644
--- a/res/values-ur/arrays.xml
+++ b/res/values-ur/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"میٹر شدہ کے بطور خیال کریں"</item>
<item msgid="2266114985518865625">"غیر میٹر شدہ کے بطور خیال کریں"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"ڈیفالٹ (بے ترتیب MAC استعمال کریں)"</item>
+ <item msgid="5398461510512959597">"قابل اعتماد"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"نہیں"</item>
<item msgid="3863157480502955888">"ہاں"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"ڈیبگ کریں"</item>
<item msgid="5286514712714822064">"وربوس"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"صرف ہوم"</item>
+ <item msgid="5034813753274486448">"خودکار"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA ترجیحی"</item>
+ <item msgid="807926878589867564">"صرف GSM"</item>
+ <item msgid="488474605709912156">"صرف WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA خودکار"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo خودکار"</item>
+ <item msgid="370391313511477301">"EvDo کے بغیر CDMA"</item>
+ <item msgid="4678789463133969294">"صرف EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"عالمی"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"صرف TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"عالمی"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index b796033..a1b47aa 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"بنائیں"</string>
<string name="allow" msgid="3349662621170855910">"اجازت دیں"</string>
<string name="deny" msgid="6947806159746484865">"رد کریں"</string>
- <string name="dlg_close" msgid="7471087791340790015">"بند کریں"</string>
<string name="device_info_default" msgid="7847265875578739287">"نامعلوم"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">اب آپ ایک ڈویلپر بننے سے <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> قدم دور ہیں۔</item>
@@ -404,12 +403,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"ہو گیا"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"چہرے کے استعمال سے"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"اپنے آلہ کو غیر مقفل کریں"</string>
- <!-- no translation found for security_settings_face_settings_use_face_for_apps (5751549943998662469) -->
- <skip />
- <!-- no translation found for security_settings_face_settings_require_attention (1638445716306615123) -->
- <skip />
- <!-- no translation found for security_settings_face_settings_require_attention_details (5749808567341263288) -->
- <skip />
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"ایپ سائن ان اور ادائیگی"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"غیر مقفل کرنے کیلئے آنکھیں کھلی ہونا"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"چہرے کی شناخت کرتے وقت، آپ کی آنکھیں کھلی ہونی چاہئیں"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"چہرے کا ڈیتا ہٹائیں"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"اپنے چہرے کا ڈیٹا بہتر بنائیں"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"آپ کے چہرے کے استعمال سے آپ آلہ غیر مقفل کیا جا سکتا ہے اور ایپس تک رسائی حاصل کی جا سکتی ہے۔ "<annotation id="url">"مزید جانیں"</annotation></string>
@@ -895,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi‑Fi ہاٹ اسپاٹ کیلئے کم از کم ایک بینڈ منتخب کریں:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP ترتیبات"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"رازداری"</string>
<string name="wifi_shared" msgid="844142443226926070">"دوسرے آلہ صارفین کے ساتھ اشتراک کریں"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(غیر تبدیل شدہ)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"براہ مہربانی منتخب کریں"</string>
@@ -1208,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PIN تبدیل نہیں کر سکتے ہیں۔\nممکنہ طور پر غلط PIN۔"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM PIN کامیابی کے ساتھ تبدیل ہو گیا"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"SIM کارڈ لاک کی حالت کو تبدیل نہيں کر سکتے ہیں۔\nممکنہ طور پر غلط PIN۔"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN کو غیر فعال نہیں کیا جا سکتا۔"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN کو فعال نہیں کیا جا سکتا۔"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"ٹھیک ہے"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"منسوخ کریں"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"متعدد SIMs ملے"</string>
@@ -2932,7 +2931,6 @@
<string name="dashboard_title" msgid="5453710313046681820">"ترتیبات"</string>
<!-- String.format failed for translation -->
<!-- no translation found for settings_suggestion_header_summary_hidden_items (5597356221942118048) -->
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"سکیڑیں"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"نیٹ ورک اور انٹرنیٹ"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"موبائل"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ڈیٹا کا استعمال"</string>
@@ -2994,8 +2992,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"ادائیگی کریں، تھپتھپائیں، ادائیگیاں"</string>
<string name="keywords_backup" msgid="470070289135403022">"بیک اپ، بیک اپ لیں"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"اشارہ"</string>
- <!-- no translation found for keywords_face_unlock (254144854349092754) -->
- <skip />
+ <string name="keywords_face_unlock" msgid="254144854349092754">"چہرہ، غیر مقفل کرنا، اجازت دینا، سائن ان"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl ورژن، imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"نیٹ ورک، موبائل نیٹ ورک کی صورت حال، سروس کی صورت حال، سگنل کی قوت، موبائل نیٹ ورک کی قسم، رومنگ، iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"نمبر شمار، ہارڈ ویئر کا ورژن"</string>
@@ -3003,6 +3000,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"گہری تھیم"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"بگ"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ايمبيئنٹ ڈسپلے، لاک اسکرین ڈسپلے"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"مقفل اسکرین کی اطلاع"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"چہرہ"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"فنگر پرنٹ"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"مدھم اسکرین، ٹچ اسکرین، بیٹری، اسمارٹ چمک، ڈائنیمک چمک"</string>
@@ -3712,6 +3710,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"داخلی اسٹوریج: <xliff:g id="PERCENTAGE">%1$s</xliff:g> استعمال کردہ - <xliff:g id="FREE_SPACE">%2$s</xliff:g> خالی"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> کی غیر فعالیت کے بعد سلیپ وضع میں بھیج دیں"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"وال پیپر، سلیپ وضع، فونٹ سائز"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<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>
@@ -3962,14 +3962,12 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"چیک کرنے کیلئے فون کو اٹھائیں"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"چیک کرنے کیلئے ٹیبلیٹ کو اٹھائیں"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"چیک کرنے کیلئے آلہ کو اٹھائیں"</string>
- <!-- no translation found for ambient_display_wake_screen_title (4091523525326925790) -->
- <skip />
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"بیداری کا ڈسپلے"</string>
<string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"وقت، اطلاعات، اور دیگر معلومات چیک کرنے کے لیے اپنا فون اٹھائیں۔"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"وقت، اطلاعات، اور دیگر معلومات چیک کرنے کے لیے اپنا ٹیبلیٹ اٹھائیں۔"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"وقت، اطلاعات، اور دیگر معلومات چیک کرنے کے لیے اپنا آلہ اٹھائیں۔"</string>
- <!-- no translation found for ambient_display_wake_lock_screen_title (562547995385322349) -->
- <skip />
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"بیداری کے قفل کی اسکرین کا اشارہ"</string>
<string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"اطلاعات کیلئے فنگر پرنٹ سوائپ"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"فنگر پرنٹ سوائپ کریں"</string>
@@ -4115,12 +4113,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ڈیوٹی سائیکلنگ کے بغیر سبھی GNSS مجموعوں اور کثرتوں کو ٹریک کریں"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"ہمیشہ ناکامی کا ڈائیلاگ دکھائیں"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"جب بھی ایپ ناکام ہو تو ڈائیلاگ دکھائیں"</string>
- <!-- no translation found for angle_enabled_app (1841862539745838255) -->
- <skip />
- <!-- no translation found for angle_enabled_app_not_set (864740024581634768) -->
- <skip />
- <!-- no translation found for angle_enabled_app_set (226015765615525056) -->
- <skip />
+ <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="directory_access" msgid="4722237210725864244">"ڈائرکٹری تک رسائی"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"ڈائرکٹری تک رسائی"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4161,10 +4156,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"نیٹ ورک کی تفصیلات"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"آپ کے آلہ کا نام آپ کے فون پر موجود ایپس میں مرئی ہوتا ہے۔ جب آپ بلوٹوتھ آلات سے منسلک ہوتے ہیں یا Wi-Fi ہاٹ اسپاٹ سیٹ اپ کرتے ہیں تو دوسرے لوگ بھی اسے دیکھ سکتے ہیں۔"</string>
<string name="devices_title" msgid="7701726109334110391">"آلات"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"اعلی فریکوئنسی پینل"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ورچوئل اعلی فریکوئنسی پینل فعال کریں"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"تمام ترتیبات"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"آپ کی ترتیبات"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"تجاویز"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ڈیٹا"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ڈیٹا"</string>
<string name="choose_network_title" msgid="5702586742615861037">"نیٹ ورک کا انتخاب کریں"</string>
@@ -4176,4 +4169,70 @@
<string name="network_query_error" msgid="7487714485362598410">"نیٹ ورکس نہیں مل سکے۔ دوبارہ کوشش کریں۔"</string>
<string name="forbidden_network" msgid="4626592887509826545">"(ممنوع)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"کوئی SIM کارڈ نہیں ہے"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"اعلی درجے کی کالنگ"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"ترجیحی نیٹ ورک کی وضع: WCDMA ترجیحی"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"ترجیحی نیٹ ورک کی وضع: صرف GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"ترجیحی نیٹ ورک کی وضع: صرف WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"ترجیحی نیٹ ورک کی وضع: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"ترجیحی نیٹ ورک کی وضع: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"ترجیحی نیٹ ورک کی وضع: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"ترجیحی نیٹ ورک کی وضع: صرف CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"ترجیحی نیٹ ورک کی وضع: صرف EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"ترجیحی نیٹ ورک کی وضع: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"ترجیحی نیٹ ورک کی وضع: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"ترجیحی نیٹ ورک کی وضع: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"ترجیحی نیٹ ورک کی وضع: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"ترجیحی نیٹ ورک کی وضع: عالمی"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"ترجیحی نیٹ ورک کی وضع: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"ترجیحی نیٹ ورک کی وضع: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"ترجیحی نیٹ ورک کی وضع: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"ترجیحی نیٹ ورک کی وضع: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"ترجیحی نیٹ ورک کی وضع: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"ترجیحی نیٹ ورک کی وضع: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"ترجیحی نیٹ ورک کی وضع: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"ترجیحی نیٹ ورک کی وضع: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"ترجیحی نیٹ ورک کی وضع: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"ترجیحی نیٹ ورک کی وضع: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"ترجیحی نیٹ ورک کی وضع: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"ترجیحی نیٹ ورک کی وضع: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"ترجیحی نیٹ ورک کی وضع: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (تجویز کردہ)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (تجویز کردہ)"</string>
+ <string name="network_global" msgid="959947774831178632">"عالمی"</string>
+ <string name="label_available" msgid="1731547832803057893">"دستیاب نیٹ ورکس"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"تلاش کیا جا رہا ہے…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> پر رجسٹر کیا جا رہا ہے…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"آپ کے SIM کارڈ کو اس نیٹ ورک سے منسلک ہونے کی اجازت نہیں ہے۔"</string>
+ <string name="connect_later" msgid="978991102125216741">"ابھی اس نیٹ ورک سے منسلک نہیں ہو سکتا۔ بعد میں دوبارہ کوشش کریں۔"</string>
+ <string name="registration_done" msgid="4573820010512184521">"نیٹ ورک پر رجسٹرڈ ہو گیا۔"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"خودکار طور پر نیٹ ورک منتخب کریں"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"کیریئر کی ترتیبات"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"ڈیٹا سروس سیٹ اپ کریں"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"موبائل ڈیٹا"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"موبائل نیٹ ورک استعمال کر کے ڈیٹا تک رسائی حاصل کریں"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"ترجیحی نیٹ ورک کی قسم"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"نیٹ ورک آپریٹ کرنے کی وضع تبدیل کریں"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"ترجیحی نیٹ ورک کی قسم"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"کیریئر"</string>
+ <string name="call_category" msgid="8108654745239563833">"کالنگ"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"کیرئیر ویڈیو کالنگ"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"سسٹم کا انتخاب"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA رومنگ وضع تبدیل کریں"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"سسٹم کا انتخاب"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"نیٹ ورک"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"نیٹ ورک"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA سبسکرپشن"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM اور NV کے درمیان تبدیل کریں"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"سبسکرپشن"</string>
+ <string name="register_automatically" msgid="518185886971595020">"خود کار رجسٹریشن…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"ڈیٹا رومنگ کی اجازت دیں؟"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"اپنے نیٹ ورک فراہم کنندہ سے قیمت معلوم کریں۔"</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"ایپ ڈیٹا کا استعمال"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"غلط نیٹ ورک موڈ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>۔ نظر انداز کریں۔"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> سے منسلک ہونے پر دستیاب نہیں ہے"</string>
+ <string name="see_more" msgid="5953815986207345223">"مزید دیکھیں"</string>
+ <string name="see_less" msgid="1250265310929558370">"کم دیکھیں"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-uz/arrays.xml b/res/values-uz/arrays.xml
index 41da5b1..007df73 100644
--- a/res/values-uz/arrays.xml
+++ b/res/values-uz/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Bu – pulli tarmoq"</item>
<item msgid="2266114985518865625">"Bu – bepul tarmoq"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Standart (ixtiyoriy MAC)"</item>
+ <item msgid="5398461510512959597">"Ishonchli"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Yo‘q"</item>
<item msgid="3863157480502955888">"Ha"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Tuzatish"</item>
<item msgid="5286514712714822064">"Batafsil"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Faqat uy"</item>
+ <item msgid="5034813753274486448">"Avtomatik"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA (afzal)"</item>
+ <item msgid="807926878589867564">"Faqat GSM"</item>
+ <item msgid="488474605709912156">"Faqat WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA (avtomatik)"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo (avtomatik)"</item>
+ <item msgid="370391313511477301">"CDMA (EvDo imkoniyatisiz)"</item>
+ <item msgid="4678789463133969294">"Faqat EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA va LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Global"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Faqat TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Global"</item>
+ <item msgid="817971827645657949">"LTE / CDMA"</item>
+ <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 38cf85f..88c93b7 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Yaratish"</string>
<string name="allow" msgid="3349662621170855910">"Ruxsat berish"</string>
<string name="deny" msgid="6947806159746484865">"Rad etish"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Yopish"</string>
<string name="device_info_default" msgid="7847265875578739287">"Noma’lum"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Dasturchi sifatida ro‘yxatdan o‘tishni yakunlashga <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> qadam qoldi.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5,0 GGs"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Wi‑Fi hotspot uchun kamida bitta chastota tanlang:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP sozlamalari"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Maxfiylik"</string>
<string name="wifi_shared" msgid="844142443226926070">"Qurilmaning boshqa foydalanuvchilari bilan ulashish"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(o‘zgartirilmagan)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Tanlang"</string>
@@ -916,7 +916,7 @@
<string name="wifi_hotspot_connect" msgid="5065506390164939225">"ULANISH"</string>
<string name="no_internet_access_text" msgid="5926979351959279577">"Bu tarmoqda internet aloqasi yo‘q. Shu tarmoqda qolasizmi?"</string>
<string name="no_internet_access_remember" msgid="4697314331614625075">"Bu tarmoq uchun boshqa so‘ralmasin"</string>
- <string name="lost_internet_access_title" msgid="5779478650636392426">"Wi-Fi aloqasi bor, lekin Internetga ulanmagan"</string>
+ <string name="lost_internet_access_title" msgid="5779478650636392426">"Wi-Fi aloqasi bor, lekin Internetga ulanmagansiz"</string>
<string name="lost_internet_access_text" msgid="9029649339816197345">"Agar Wi-Fi signali yomon bo‘lsa, istalgan vaqtda mobil internetga o‘tishingiz mumkin. Sarflangan trafik uchun haq olinishi mumkin."</string>
<string name="lost_internet_access_switch" msgid="2262459569601190039">"Mobil internetni yoqish"</string>
<string name="lost_internet_access_cancel" msgid="338273139419871110">"Wi-Fi tarmog‘ida qoling"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"PIN-kod o‘zgartirilmadi.\nNoto‘g‘ri PIN-kod terildi shekilli."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"SIM karta PIN kodi o‘zgartirildi"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"SIM karta qulfi holati o‘zgarmadi.\nPIN-kod noto‘g‘ri kiritildi shekilli."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"PIN kod faolsizlantirilmadi."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"PIN kod yoqilmadi."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Bekor qilish"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Bir nechta SIM karta topildi"</string>
@@ -2947,7 +2949,6 @@
<item quantity="other">%d ta yashirin elementni ko‘rsatish</item>
<item quantity="one">%d ta yashirin elementni ko‘rsatish</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Yig‘ish"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Tarmoq va Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"mobil"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"trafik sarfi"</string>
@@ -3017,6 +3018,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"tungi mavzu"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"xato"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ekranning avtomatik yonishi, ekran qulfi"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"qulflangan ekrandagi bildirishnoma"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"yuz"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"barmoq izi"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"xira ekran, sensorli ekran, batareya, smart yorqinlik, dinamik yorqinlik"</string>
@@ -3259,7 +3261,7 @@
<string name="display_vr_pref_low_persistence" msgid="5707494209944718537">"Xiralikni kamaytirish (tavsiya etiladi)"</string>
<string name="display_vr_pref_off" msgid="2190091757123260989">"Miltillashni kamaytirish"</string>
<string name="picture_in_picture_title" msgid="5824849294270017113">"Tasvir ustida tasvir"</string>
- <string name="picture_in_picture_empty_text" msgid="685224245260197779">"O‘rnatilgan ilovalar Tasvir ustida tasvir rejimi bilan mos emas"</string>
+ <string name="picture_in_picture_empty_text" msgid="685224245260197779">"Oʻrnatilgan ilovalar Tasvir ustida tasvir rejimi bilan mos emas"</string>
<string name="picture_in_picture_keywords" msgid="8361318686701764690">"tasvir ustida tasvir"</string>
<string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Tasvir ustida tasvir"</string>
<string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Tasvir ustida tasvir rejimiga ruxsat berish"</string>
@@ -3497,7 +3499,7 @@
<string name="runtime_permissions_summary_no_permissions_granted" msgid="1679758182657005375">"Hech qanday ruxsat berilmagan"</string>
<string name="runtime_permissions_summary_no_permissions_requested" msgid="7655100570513818534">"Hech qanday ruxsat so‘ralmagan"</string>
<string name="filter_all_apps" msgid="1988403195820688644">"Barcha ilovalar"</string>
- <string name="filter_enabled_apps" msgid="5395727306799456250">"O‘rnatilgan ilovalar"</string>
+ <string name="filter_enabled_apps" msgid="5395727306799456250">"Oʻrnatilgan ilovalar"</string>
<string name="filter_instant_apps" msgid="574277769963965565">"Darhol ochiladigan ilovalar"</string>
<string name="filter_personal_apps" msgid="3277727374174355971">"Shaxsiy"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Ishga oid"</string>
@@ -3726,6 +3728,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Ichki xotira: <xliff:g id="PERCENTAGE">%1$s</xliff:g> band – <xliff:g id="FREE_SPACE">%2$s</xliff:g> bo‘sh"</string>
<string name="display_summary" msgid="6737806235882127328">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> nofaollikdan keyin uyqu rejimiga o‘tish"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Fon rasmi, uyqu rejimi, shrift"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"10 daqiqa nofaollikdan keyin uyqu rejimiga o‘tish"</string>
<string name="memory_summary" msgid="8080825904671961872">"O‘rtacha <xliff:g id="USED_MEMORY">%1$s</xliff:g> ishlatilmoqda, jami: <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"Siz <xliff:g id="USER_NAME">%1$s</xliff:g> sifatida kirgansiz"</string>
@@ -4001,7 +4005,7 @@
<string name="web_action_enable_summary" msgid="3108127559723396382">"Havolalarni ilovalarda (hatto ular o‘rnatilmagan bo‘lsa ham) ochish"</string>
<string name="web_action_section_title" msgid="7364647086538399136">"Darhol ochiladigan ilovalar"</string>
<string name="instant_apps_settings" msgid="8827777916518348213">"Darhol ochiladigan ilovalar sozlamalari"</string>
- <string name="domain_url_section_title" msgid="7046835219056428883">"O‘rnatilgan ilovalar"</string>
+ <string name="domain_url_section_title" msgid="7046835219056428883">"Oʻrnatilgan ilovalar"</string>
<string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Xotirangiz hozirda xotira boshqaruvi tomonidan boshqarilmoqda"</string>
<string name="account_for_section_header" msgid="5356566418548737121">"<xliff:g id="USER_NAME">%1$s</xliff:g> – hisoblar"</string>
<string name="configure_section_header" msgid="7391183586410814450">"Sozlash"</string>
@@ -4027,7 +4031,7 @@
<string name="enterprise_privacy_bug_reports" msgid="843225086779037863">"Eng oxirgi xatoliklar hisoboti"</string>
<string name="enterprise_privacy_security_logs" msgid="5377362481617301074">"Eng oxirgi xavfsizlik jurnali"</string>
<string name="enterprise_privacy_none" msgid="7706621148858381189">"Hech qanday"</string>
- <string name="enterprise_privacy_enterprise_installed_packages" msgid="6353757812144878828">"O‘rnatilgan ilovalar"</string>
+ <string name="enterprise_privacy_enterprise_installed_packages" msgid="6353757812144878828">"Oʻrnatilgan ilovalar"</string>
<string name="enterprise_privacy_apps_count_estimation_info" msgid="7433213592572082606">"Ilovalar soni hisoblanmoqda. Play Market orqali o‘rnatilmagan ilovalar hisoblanmasligi mumkin."</string>
<plurals name="enterprise_privacy_number_packages_lower_bound" formatted="false" msgid="3005116533873542976">
<item quantity="other">Kamida <xliff:g id="COUNT_1">%d</xliff:g> ta ilova</item>
@@ -4170,10 +4174,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Tarmoq tafsilotlari"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Telefoningizdagi barcha ilovalarga qurilma nomi ko‘rinadi. Qurilmalarga Bluetooth orqali ulanganingizda yoki Wi-Fi hotspot sozlaganingizda boshqa foydalanuvchilarni ularni ko‘rishi mumkin."</string>
<string name="devices_title" msgid="7701726109334110391">"Qurilmalar"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Yuqori chastota paneli"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Virtual yuqori chastota panelini yoqish"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Barcha sozlamalar"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Sozlamalaringiz"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Takliflar"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS axboroti"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS axboroti"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Tarmoqni tanlash"</string>
@@ -4185,4 +4187,72 @@
<string name="network_query_error" msgid="7487714485362598410">"Hech qanday tarmoq topilmadi. Qaytadan urining."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(taqiqlangan)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"SIM karta solinmagan"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Kengaytirilgan chaqiruv"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Tanlangan tarmoq rejimi: WCDMA tanlangan"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Tanlangan tarmoq rejimi: faqat GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Tanlangan tarmoq rejimi: faqat WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Tanlangan tarmoq rejimi: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Tanlangan tarmoq rejimi: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Tanlangan tarmoq rejimi: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Tanlangan tarmoq rejimi: faqat CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Tanlangan tarmoq rejimi: faqat EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Tanlangan tarmoq rejimi: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Tanlangan tarmoq rejimi: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Tanlangan tarmoq rejimi: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Tanlangan tarmoq rejimi: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Tanlangan tarmoq rejimi: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Tanlangan tarmoq rejimi: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Ma’qul tarmoq rejimi: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Ma’qul tarmoq rejimi: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Tanlangan tarmoq rejimi: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Tavsiya etilgan tarmoq rejimi: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Tavsiya etilgan tarmoq rejimi: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Tavsiya etilgan tarmoq rejimi: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Tavsiya etilgan tarmoq rejimi: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Tavsiya etilgan tarmoq rejimi: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Tavsiya etilgan tarmoq rejimi: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Tavsiya etilgan tarmoq rejimi: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Tavsiya etilgan tarmoq rejimi: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Tavsiya etilgan tarmoq rejimi: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (tavsiya etiladi)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (tavsiya etiladi)"</string>
+ <string name="network_global" msgid="959947774831178632">"Global"</string>
+ <string name="label_available" msgid="1731547832803057893">"Mavjud tarmoqlar"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Qidirilmoqda…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"<xliff:g id="NETWORK">%s</xliff:g> tarmogʻiga qayd qilinmoqda…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"SIM kartangiz ushbu tarmoqqa ulanishga ruxsat bermaydi."</string>
+ <string name="connect_later" msgid="978991102125216741">"Hozirda bu tarmoqqa ulanish imkonsiz. Keyinroq qaytadan urining."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Tarmoqda qayd qilingan."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Tarmoqni avtomatik tanlash"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Operator sozlamalari"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Internet xizmatini sozlash"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Mobil internet"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Mobil tarmoq orqali internetdan foydalanish"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Tarmoq turi"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Tarmoq rejimini almashtiring"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Tarmoq turi"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Aloqa operatori"</string>
+ <string name="call_category" msgid="8108654745239563833">"Chaqiruvlar"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Operator orqali videomuloqot"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Tizimni tanlang"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"CDMA tarmoq rouming rejimini almashtirish"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Tizimni tanlang"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Tarmoq"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Tarmoq"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA uchun obuna"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"RUIM/SIM va NV orasida almashish"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"obuna"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Avtomatik registratsiya…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Internet-roumingga ruxsat berilsinmi?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Paketlar narxlari haqidagi ma’lumotni internet provayderingizdan olishingiz mumkin."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Ilova sarflagan trafik"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Notanish tarmoq rejimi: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Inkor qilish"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"<xliff:g id="CARRIER">%1$s</xliff:g> bilan ishlamaydi"</string>
+ <string name="see_more" msgid="5953815986207345223">"Yana"</string>
+ <string name="see_less" msgid="1250265310929558370">"Kamroq"</string>
+ <plurals name="show_connected_devices" formatted="false" msgid="5484062660312192006">
+ <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> ta qurilma ulandi</item>
+ <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> ta qurilma ulandi</item>
+ </plurals>
+ <string name="no_connected_devices" msgid="6657176404588389594">"Hech qanday qurilma ulanmagan"</string>
</resources>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index e7d84854..f2627fa 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Xử lý như là mạng có đo lượng dữ liệu"</item>
<item msgid="2266114985518865625">"Xử lý như là mạng không đo lượng dữ liệu"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Mặc định (sử dụng địa chỉ MAC được gán ngẫu nhiên)"</item>
+ <item msgid="5398461510512959597">"Đáng tin cậy"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Không"</item>
<item msgid="3863157480502955888">"Có"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Gỡ lỗi"</item>
<item msgid="5286514712714822064">"Chi tiết"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Chỉ nhà riêng"</item>
+ <item msgid="5034813753274486448">"Tự động"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA được ưu tiên"</item>
+ <item msgid="807926878589867564">"Chỉ GSM"</item>
+ <item msgid="488474605709912156">"Chỉ WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA tự động"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo tự động"</item>
+ <item msgid="370391313511477301">"CDMA không có EvDo"</item>
+ <item msgid="4678789463133969294">"Chỉ EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Toàn cầu"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"Chỉ TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Toàn cầu"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index fc9198a..1099362 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Tạo"</string>
<string name="allow" msgid="3349662621170855910">"Cho phép"</string>
<string name="deny" msgid="6947806159746484865">"Từ chối"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Đóng"</string>
<string name="device_info_default" msgid="7847265875578739287">"Không xác định"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">Bây giờ, bạn chỉ cần thực hiện <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> bước nữa là trở thành nhà phát triển.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Chọn ít nhất một băng tần cho điểm phát sóng Wi‑Fi:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Cài đặt IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Quyền riêng tư"</string>
<string name="wifi_shared" msgid="844142443226926070">"Chia sẻ với những người khác cũng dùng thiết bị này"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(không thay đổi)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Vui lòng chọn"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Không thể thay đổi mã PIN.\nCó thể mã PIN không đúng."</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"Mã PIN của SIM đã được thay đổi thành công"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Không thể thay đổi trạng thái khóa thẻ SIM.\nCó thể mã PIN không đúng."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Không thể tắt mã PIN."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Không thể bật mã PIN."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"OK"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Hủy"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Tìm thấy nhiều SIM"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">Hiển thị %d mục ẩn</item>
<item quantity="one">Hiển thị %d mục ẩn</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Thu gọn"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Mạng và Internet"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"thiết bị di động"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"sử dụng dữ liệu"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"chủ đề màu tối"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"lỗi"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Màn hình sáng, Màn hình ở chế độ màn hình khóa"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"thông báo trên màn hình khóa"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"khuôn mặt"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"vân tay"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"làm mờ màn hình, màn hình cảm ứng, pin, độ sáng thông minh, độ sáng động"</string>
@@ -3528,7 +3530,7 @@
<string name="system_default_app" msgid="3091113402349739037">"(Mặc định của hệ thống)"</string>
<string name="apps_storage" msgid="4353308027210435513">"Bộ nhớ ứng dụng"</string>
<string name="usage_access" msgid="5479504953931038165">"Truy cập dữ liệu sử dụng"</string>
- <string name="permit_usage_access" msgid="4012876269445832300">"Cho phép quyền truy cập sử dụng"</string>
+ <string name="permit_usage_access" msgid="4012876269445832300">"Cho phép truy cập dữ liệu sử dụng"</string>
<string name="app_usage_preference" msgid="7065701732733134991">"Tùy chọn sử dụng ứng dụng"</string>
<string name="time_spent_in_app_pref_title" msgid="649419747540933845">"Thời gian dùng ứng dụng"</string>
<string name="usage_access_description" msgid="1352111094596416795">"Quyền truy cập vào dữ liệu sử dụng cho phép một ứng dụng theo dõi các ứng dụng khác mà bạn đang sử dụng và tần suất sử dụng cũng như thông tin nhà mạng, thông tin cài đặt ngôn ngữ và các chi tiết khác."</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Bộ nhớ trong: Đã sử dụng <xliff:g id="PERCENTAGE">%1$s</xliff:g> - Còn trống <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"Chuyển sang chế độ ngủ sau <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> không hoạt động"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Hình nền, ngủ, kích thước phông chữ"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Chuyển sang chế độ ngủ sau 10 phút không hoạt động"</string>
<string name="memory_summary" msgid="8080825904671961872">"Trung bình <xliff:g id="USED_MEMORY">%1$s</xliff:g>/<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> bộ nhớ được sử dụng"</string>
<string name="users_summary" msgid="1674864467098487328">"Đã đăng nhập với tên <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Thông tin chi tiết về mạng"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Tên thiết bị của bạn sẽ hiển thị với các ứng dụng trên điện thoại. Những người khác cũng có thể thấy tên thiết bị này khi bạn kết nối với thiết bị Bluetooth hoặc thiết lập điểm phát sóng Wi-Fi."</string>
<string name="devices_title" msgid="7701726109334110391">"Thiết bị"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Bảng tần suất làm mới cao"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Bật Bảng ảo tần suất làm mới cao"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Tất cả tùy chọn cài đặt"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Tùy chọn cài đặt của bạn"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Đề xuất"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Dữ liệu CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dữ liệu CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Chọn mạng"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Không tìm thấy mạng. Hãy thử lại."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(cấm)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Không có thẻ SIM nào"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Gọi nâng cao"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Chế độ mạng ưa thích: ưu tiên WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Chế độ mạng ưa thích: chỉ GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Chế độ mạng ưa thích: chỉ WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Chế độ mạng ưa thích: GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Chế độ mạng ưa thích: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Chế độ mạng ưa thích: CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Chế độ mạng ưa thích: chỉ CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Chế độ mạng ưa thích: chỉ EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Chế độ mạng ưa thích: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Chế độ mạng ưa thích: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Chế độ mạng ưa thích: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Chế độ mạng ưa thích: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Chế độ mạng ưa thích: Toàn cầu"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Chế độ mạng ưa thích: LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Chế độ mạng ưa thích: LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Chế độ mạng ưa thích: LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Chế độ mạng ưa thích: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Chế độ mạng ưa thích: TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Chế độ mạng ưa thích: LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Chế độ mạng ưa thích: TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Chế độ mạng ưa thích: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Chế độ mạng ưa thích: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Chế độ mạng ưa thích: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Chế độ mạng ưa thích: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Chế độ mạng ưa thích: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Chế độ mạng ưa thích: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (đề xuất)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (đề xuất)"</string>
+ <string name="network_global" msgid="959947774831178632">"Toàn cầu"</string>
+ <string name="label_available" msgid="1731547832803057893">"Mạng có sẵn"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Đang tìm kiếm…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Đang đăng ký trên <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"Thẻ SIM của bạn không cho phép kết nối với mạng này."</string>
+ <string name="connect_later" msgid="978991102125216741">"Không thể kết nối với mạng này ngay bây giờ. Hãy thử lại sau."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Đã đăng ký trên mạng."</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Tự động chọn mạng"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Cài đặt nhà mạng"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Thiết lập dịch vụ dữ liệu"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Dữ liệu di động"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Truy cập dữ liệu bằng mạng di động"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Loại mạng ưa thích"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Thay đổi chế độ hoạt động của mạng"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Loại mạng ưa thích"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Nhà mạng"</string>
+ <string name="call_category" msgid="8108654745239563833">"Gọi điện"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Tính năng gọi video của nhà mạng"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Chọn hệ thống"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Thay đổi chế độ chuyển vùng CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Chọn hệ thống"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Mạng"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Mạng"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Gói đăng ký CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Thay đổi giữa RUIM/SIM và NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"gói đăng ký"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Đăng ký tự động..."</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Cho phép chuyển vùng dữ liệu?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Hãy liên hệ với nhà mạng của bạn để biết giá cước."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Mức sử dụng dữ liệu của ứng dụng"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Chế độ mạng <xliff:g id="NETWORKMODEID">%1$d</xliff:g> không hợp lệ. Bỏ qua."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Không sử dụng được khi kết nối với <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Xem thêm"</string>
+ <string name="see_less" msgid="1250265310929558370">"Xem bớt"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index d3c2868..af5ac2e 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"视为按流量计费"</item>
<item msgid="2266114985518865625">"视为不按流量计费"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"默认(使用随机 MAC)"</item>
+ <item msgid="5398461510512959597">"受信任"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"否"</item>
<item msgid="3863157480502955888">"是"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"调试"</item>
<item msgid="5286514712714822064">"详细"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"仅本地系统"</item>
+ <item msgid="5034813753274486448">"自动"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"首选 GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"仅限 GSM"</item>
+ <item msgid="488474605709912156">"仅限 WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA 自动选择"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo 自动选择"</item>
+ <item msgid="370391313511477301">"CDMA,无 EvDo 功能"</item>
+ <item msgid="4678789463133969294">"仅限 EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"通用"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"仅限 TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"通用"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 51546df..9059250 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"创建"</string>
<string name="allow" msgid="3349662621170855910">"允许"</string>
<string name="deny" msgid="6947806159746484865">"拒绝"</string>
- <string name="dlg_close" msgid="7471087791340790015">"关闭"</string>
<string name="device_info_default" msgid="7847265875578739287">"未知"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">现在只需再执行 <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> 步操作即可进入开发者模式。</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"请为 WLAN 热点至少选择一个频段:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP 设置"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"隐私"</string>
<string name="wifi_shared" msgid="844142443226926070">"与其他设备用户共享"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(未更改)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"请选择"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"无法更改PIN码。\n输入的PIN码可能不正确。"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"已成功更改 SIM 卡 PIN 码"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"无法更改 SIM 卡锁定状态。\nPIN 码可能不正确。"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"无法停用 PIN 码。"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"无法启用 PIN 码。"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"确定"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"取消"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"找到多张SIM卡"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">显示 %d 项隐藏内容</item>
<item quantity="one">显示 %d 项隐藏内容</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"收起"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"网络和互联网"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"移动网络"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"流量使用"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"深色主题背景"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"错误"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"主动显示, 锁定屏幕显示"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"锁定屏幕通知"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"面孔"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"指纹"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"降低屏幕亮度, 触摸屏, 电池, 智能亮度, 动态亮度"</string>
@@ -3331,7 +3333,7 @@
<string name="summary_range_symbol_combination" msgid="5695218513421897027">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
<string name="summary_range_verbal_combination" msgid="8467306662961568656">"<xliff:g id="START">%1$s</xliff:g>到<xliff:g id="END">%2$s</xliff:g>"</string>
<string name="zen_mode_calls" msgid="7051492091133751208">"来电"</string>
- <string name="zen_mode_calls_title" msgid="623395033931747661">"允许进行通话"</string>
+ <string name="zen_mode_calls_title" msgid="623395033931747661">"允许通话"</string>
<string name="zen_mode_calls_footer" msgid="3618700268458237781">"开启勿扰模式后,系统会屏蔽来电。您可以调整相应设置,以便允许您的好友、家人或其他联系人与您联系。"</string>
<string name="zen_mode_starred_contacts_title" msgid="1848464279786960190">"已加星标的联系人"</string>
<plurals name="zen_mode_starred_contacts_summary_additional_contacts" formatted="false" msgid="500105380255018671">
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"内部存储空间:已使用 <xliff:g id="PERCENTAGE">%1$s</xliff:g>,还剩 <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"闲置 <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>后进入休眠状态"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"壁纸、休眠、字体大小"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"闲置 10 分钟后会进入休眠状态"</string>
<string name="memory_summary" msgid="8080825904671961872">"平均内存用量为 <xliff:g id="USED_MEMORY">%1$s</xliff:g>,共 <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
<string name="users_summary" msgid="1674864467098487328">"目前登录的用户为:<xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"网络详情"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"您的设备名称会显示在手机上的应用中。此外,当您连接到蓝牙设备或设置 WLAN 热点时,其他人可能也会看到您的设备名称。"</string>
<string name="devices_title" msgid="7701726109334110391">"设备"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"高频面板"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"启用虚拟高频面板"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"所有设置"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"您的设置"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"建议"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS 数据"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS 数据"</string>
<string name="choose_network_title" msgid="5702586742615861037">"选择网络"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"找不到网络,请重试。"</string>
<string name="forbidden_network" msgid="4626592887509826545">"(禁止)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"没有 SIM 卡"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"高级通话"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"首选网络模式:首选 WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"首选网络模式:仅限 GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"首选网络模式:仅限 WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"首选网络模式:GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"首选网络模式:CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"首选网络模式:CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"首选网络模式:仅限 CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"首选网络模式:仅限 EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"首选网络模式:CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"首选网络模式:LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"首选网络模式:GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"首选网络模式:CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"首选网络模式:通用"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"首选网络模式:LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"首选网络模式:LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"首选网络模式:LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"首选网络模式:TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"首选网络模式:TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"首选网络模式:LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"首选网络模式:TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"首选网络模式:LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"首选网络模式:TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"首选网络模式:LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"首选网络模式:LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"首选网络模式:TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"首选网络模式:LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE(推荐)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G(推荐)"</string>
+ <string name="network_global" msgid="959947774831178632">"通用"</string>
+ <string name="label_available" msgid="1731547832803057893">"可用网络"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"正在搜索…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"正在<xliff:g id="NETWORK">%s</xliff:g>上注册…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"您的 SIM 卡不允许连接到此网络。 daisy 您的 SIM 卡无法连接到此网络。"</string>
+ <string name="connect_later" msgid="978991102125216741">"目前无法连接到此网络,请稍后重试。"</string>
+ <string name="registration_done" msgid="4573820010512184521">"已在网络上注册。"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"自动选择网络"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"运营商设置"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"设置数据服务"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"移动数据"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"通过移动网络访问数据"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"首选网络类型"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"更改网络运行方式"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"首选网络类型"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"运营商"</string>
+ <string name="call_category" msgid="8108654745239563833">"通话"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"运营商视频通话"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"系统选择"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"更改 CDMA 漫游模式"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"系统选择"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"网络"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"网络"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA 订阅"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"在 RUIM/SIM 和 NV 之间切换"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"订阅"</string>
+ <string name="register_automatically" msgid="518185886971595020">"自动注册…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"要允许数据网络漫游吗?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"请与您的网络服务提供商联系以了解定价。"</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"应用的流量使用情况"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"无效的网络模式<xliff:g id="NETWORKMODEID">%1$d</xliff:g>。忽略。"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"连接到<xliff:g id="CARRIER">%1$s</xliff:g>时无法使用"</string>
+ <string name="see_more" msgid="5953815986207345223">"查看更多"</string>
+ <string name="see_less" msgid="1250265310929558370">"隐藏部分"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index 1919a63..2ff7c6a 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"設定為按數據用量收費"</item>
<item msgid="2266114985518865625">"設定為不限數據用量收費"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"預設 (隨機使用 MAC)"</item>
+ <item msgid="5398461510512959597">"可信任"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"否"</item>
<item msgid="3863157480502955888">"是"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"偵錯"</item>
<item msgid="5286514712714822064">"詳細"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"僅限住宅電話"</item>
+ <item msgid="5034813753274486448">"自動"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"首選 GSM/WCDMA"</item>
+ <item msgid="807926878589867564">"只限 GSM"</item>
+ <item msgid="488474605709912156">"只限 WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA 自動切換"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo 自動切換"</item>
+ <item msgid="370391313511477301">"CDMA (沒有 EvDo)"</item>
+ <item msgid="4678789463133969294">"只限 EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"全球"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"只限 TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"全球"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 2841efd..0286d79 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"建立"</string>
<string name="allow" msgid="3349662621170855910">"允許"</string>
<string name="deny" msgid="6947806159746484865">"拒絕"</string>
- <string name="dlg_close" msgid="7471087791340790015">"關閉"</string>
<string name="device_info_default" msgid="7847265875578739287">"未知"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">您只需完成 <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> 個步驟,即可成為開發人員。</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"請為 Wi-Fi 熱點至少選擇一個頻段:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP 設定"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"私隱"</string>
<string name="wifi_shared" msgid="844142443226926070">"與其他裝置使用者分享"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(未變更)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"請選取"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"無法更改 PIN 碼。\nPIN 碼可能不正確。"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"成功更改 SIM PIN"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"無法更改 SIM 卡鎖定狀態。\n可能輸入了不正確的 PIN 碼。"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"無法停用 PIN。"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"無法啟用 PIN。"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"確定"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"取消"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"找到多張 SIM 卡"</string>
@@ -2932,7 +2934,6 @@
<item quantity="other">顯示 %d 個隱藏項目</item>
<item quantity="one">顯示 %d 個隱藏項目</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"收合"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"網絡和互聯網"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"流動網絡"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"數據用量"</string>
@@ -3002,6 +3003,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"深色主題背景"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"錯誤"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"環境顯示,上鎖畫面顯示"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"上鎖畫面通知"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"臉孔"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"指紋"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"螢幕變暗, 觸控螢幕, 電池, 智能亮度, 動態亮度"</string>
@@ -3483,7 +3485,7 @@
<string name="runtime_permissions_summary_no_permissions_requested" msgid="7655100570513818534">"沒有要求權限"</string>
<string name="filter_all_apps" msgid="1988403195820688644">"所有應用程式"</string>
<string name="filter_enabled_apps" msgid="5395727306799456250">"已安裝的應用程式"</string>
- <string name="filter_instant_apps" msgid="574277769963965565">"即時應用程式"</string>
+ <string name="filter_instant_apps" msgid="574277769963965565">"免安裝應用程式"</string>
<string name="filter_personal_apps" msgid="3277727374174355971">"個人"</string>
<string name="filter_work_apps" msgid="24519936790795574">"工作"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"應用程式:全部"</string>
@@ -3711,6 +3713,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"內部儲存空間:已使用 <xliff:g id="PERCENTAGE">%1$s</xliff:g>,剩餘 <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"閒置 <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>後進入休眠狀態"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"桌布、休眠、字型大小"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"閒置 10 分鐘後進入休眠狀態"</string>
<string name="memory_summary" msgid="8080825904671961872">"平均記憶體用量為 <xliff:g id="USED_MEMORY">%1$s</xliff:g> (共 <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>)"</string>
<string name="users_summary" msgid="1674864467098487328">"已使用<xliff:g id="USER_NAME">%1$s</xliff:g>的身分登入"</string>
@@ -3982,10 +3986,10 @@
<string name="oem_unlock_enable_disabled_summary_sim_locked_device" msgid="4149387448213399630">"無法在已遭流動網絡供應商鎖定的裝置上啟用"</string>
<string name="oem_lock_info_message" msgid="9218313722236417510">"請重新啟動裝置以啟用裝置保護功能。"</string>
<string name="automatic_storage_manager_freed_bytes" msgid="7517560170441007788">"已釋放共 <xliff:g id="SIZE">%1$s</xliff:g>\n\n上次執行時間:<xliff:g id="DATE">%2$s</xliff:g>"</string>
- <string name="web_action_enable_title" msgid="4051513950976670853">"即時應用程式"</string>
+ <string name="web_action_enable_title" msgid="4051513950976670853">"免安裝應用程式"</string>
<string name="web_action_enable_summary" msgid="3108127559723396382">"即使您沒有安裝應用程式,亦可在應用程式內開啟連結"</string>
- <string name="web_action_section_title" msgid="7364647086538399136">"即時應用程式"</string>
- <string name="instant_apps_settings" msgid="8827777916518348213">"即時應用程式偏好設定"</string>
+ <string name="web_action_section_title" msgid="7364647086538399136">"免安裝應用程式"</string>
+ <string name="instant_apps_settings" msgid="8827777916518348213">"免安裝應用程式偏好設定"</string>
<string name="domain_url_section_title" msgid="7046835219056428883">"已安裝的應用程式"</string>
<string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"您的儲存空間即將由儲存空間管理員管理"</string>
<string name="account_for_section_header" msgid="5356566418548737121">"<xliff:g id="USER_NAME">%1$s</xliff:g>的帳戶"</string>
@@ -4077,7 +4081,7 @@
<string name="storage_volume_total" msgid="3499221850532701342">"已使用 (共 <xliff:g id="TOTAL">%1$s</xliff:g>)"</string>
<string name="storage_percent_full" msgid="6095012055875077036">"已使用"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"清除應用程式"</string>
- <string name="clear_instant_app_confirmation" msgid="7451671214898856857">"您要移除此即時應用程式嗎?"</string>
+ <string name="clear_instant_app_confirmation" msgid="7451671214898856857">"您要移除此免安裝應用程式嗎?"</string>
<string name="launch_instant_app" msgid="391581144859010499">"開啟"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"遊戲"</string>
<string name="audio_files_title" msgid="4777048870657911307">"音訊檔案"</string>
@@ -4100,7 +4104,7 @@
<string name="storage_manager_indicator" msgid="1516810749625915020">"儲存空間管理員:<xliff:g id="STATUS">^1</xliff:g>"</string>
<string name="storage_manager_indicator_off" msgid="7488057587180724388">"關閉"</string>
<string name="storage_manager_indicator_on" msgid="8625551710194584733">"開啟"</string>
- <string name="install_type_instant" msgid="3174425974536078647">"即時應用程式"</string>
+ <string name="install_type_instant" msgid="3174425974536078647">"免安裝應用程式"</string>
<string name="automatic_storage_manager_deactivation_warning" msgid="5605210730828410482">"要停用儲存空間管理員嗎?"</string>
<string name="storage_movies_tv" msgid="5498394447562086890">"電影和電視應用程式"</string>
<string name="carrier_provisioning" msgid="4398683675591893169">"流動網絡供應商佈建資料"</string>
@@ -4155,10 +4159,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"網絡詳細資料"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"您的裝置名稱會在手機的應用程式上顯示。當您連接藍牙裝置或設定 Wi-Fi 熱點時,其他人亦可能會看到您的裝置名稱。"</string>
<string name="devices_title" msgid="7701726109334110391">"裝置"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"高頻率面板"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"啟用虛擬高頻率面板"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"所有設定"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"您的設定"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"建議"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS 數據"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS 數據"</string>
<string name="choose_network_title" msgid="5702586742615861037">"選擇網絡"</string>
@@ -4170,4 +4172,70 @@
<string name="network_query_error" msgid="7487714485362598410">"找不到網絡,請再試一次。"</string>
<string name="forbidden_network" msgid="4626592887509826545">"(禁止)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"沒有 SIM 卡"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"進階通話"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"首選網絡模式:首選 WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"首選網絡模式:僅限 GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"首選網絡模式:僅限 WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"首選網絡模式:GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"首選網絡模式:CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"首選網絡模式:CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"首選網絡模式:僅限 CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"首選網絡模式:僅限 EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"首選網絡模式:CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"首選網絡模式:LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"首選網絡模式:GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"首選網絡模式:CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"首選網絡模式:全球"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"首選網絡模式:LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"首選網絡模式:LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"首選網絡模式:LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"首選網絡模式:TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"首選網絡模式:TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"首選網絡模式:LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"首選網絡模式:TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"首選網絡模式:LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"首選網絡模式:TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"首選網絡模式:LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"首選網絡模式:LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"首選網絡模式:TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"首選網絡模式:LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (建議)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (建議)"</string>
+ <string name="network_global" msgid="959947774831178632">"全球"</string>
+ <string name="label_available" msgid="1731547832803057893">"可用的網絡"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"正在搜尋…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"正在註冊<xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"您的 SIM 卡無法連接這個網絡。"</string>
+ <string name="connect_later" msgid="978991102125216741">"目前無法連接這個網絡,請稍後再試。"</string>
+ <string name="registration_done" msgid="4573820010512184521">"已在網絡上註冊。"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"自動選取網絡"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"流動網絡供應商設定"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"設定數據服務"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"流動數據"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"使用流動網絡存取數據"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"首選網絡類型"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"更改網絡操作模式"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"首選網絡類型"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"流動網絡供應商"</string>
+ <string name="call_category" msgid="8108654745239563833">"通話"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"流動網絡供應商視像通話"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"系統選擇"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"更改 CDMA 漫遊模式"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"系統選擇"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"網絡"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"網絡"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA 訂閱"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"在 RUIM/SIM 和 NV 之間切換"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"訂閱"</string>
+ <string name="register_automatically" msgid="518185886971595020">"自動註冊…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"要允許數據漫遊嗎?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"請聯絡您的網絡供應商查詢定價。"</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"應用程式數據用量"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"網絡模式 <xliff:g id="NETWORKMODEID">%1$d</xliff:g> 無效。忽略。"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"無法在連接至<xliff:g id="CARRIER">%1$s</xliff:g>時使用"</string>
+ <string name="see_more" msgid="5953815986207345223">"查看更多"</string>
+ <string name="see_less" msgid="1250265310929558370">"顯示較少"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index f43ce76..24a958c 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"視為計量付費"</item>
<item msgid="2266114985518865625">"視為非計量付費"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"預設 (使用隨機化 MAC)"</item>
+ <item msgid="5398461510512959597">"可信任"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"否"</item>
<item msgid="3863157480502955888">"是"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"偵錯"</item>
<item msgid="5286514712714822064">"詳細"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"僅限家用網路"</item>
+ <item msgid="5034813753274486448">"自動"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"GSM/WCDMA 優先"</item>
+ <item msgid="807926878589867564">"僅限 GSM"</item>
+ <item msgid="488474605709912156">"僅限 WCDMA"</item>
+ <item msgid="1912421096218750039">"GSM/WCDMA 自動切換"</item>
+ <item msgid="5072198667819683600">"CDMA/EvDo 自動切換"</item>
+ <item msgid="370391313511477301">"CDMA (不具 EvDo)"</item>
+ <item msgid="4678789463133969294">"僅限 EvDo"</item>
+ <item msgid="3960210542349075517">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"通用"</item>
+ <item msgid="8516691658640163073">"LTE"</item>
+ <item msgid="3108828968591899719">"LTE/WCDMA"</item>
+ <item msgid="1879225673847443662">"僅限 TDSCDMA"</item>
+ <item msgid="8373504428469988469">"TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"通用"</item>
+ <item msgid="817971827645657949">"LTE/CDMA"</item>
+ <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 1de5ff7..c6a6af7 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"建立"</string>
<string name="allow" msgid="3349662621170855910">"允許"</string>
<string name="deny" msgid="6947806159746484865">"拒絕"</string>
- <string name="dlg_close" msgid="7471087791340790015">"關閉"</string>
<string name="device_info_default" msgid="7847265875578739287">"不明"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="other">你只需完成剩餘的 <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> 個步驟,即可成為開發人員。</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"請至少選擇一個用於 Wi‑Fi 無線基地台的頻帶:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP 設定"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"隱私權"</string>
<string name="wifi_shared" msgid="844142443226926070">"與裝置的其他使用者共用"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(未變更)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"請選取"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"無法變更 PIN。\nPIN 碼可能不正確。"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"成功變更 SIM PIN"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"無法變更 SIM 卡鎖定狀態。\n可能輸入了不正確的 PIN。"</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"無法停用 PIN 碼。"</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"無法啟用 PIN 碼。"</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"確定"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"取消"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"找到多張 SIM 卡"</string>
@@ -2931,7 +2933,6 @@
<item quantity="other">顯示 %d 個隱藏項目</item>
<item quantity="one">顯示 %d 個隱藏項目</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"收合"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"網路和網際網路"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"行動網路"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"數據用量"</string>
@@ -3001,6 +3002,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"深色主題"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"錯誤"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"微光螢幕, 螢幕鎖定畫面"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"螢幕鎖定通知"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"臉孔"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"指紋"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"調暗螢幕, 觸控螢幕, 電池, 智慧型亮度, 動態亮度"</string>
@@ -3710,6 +3712,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"內部儲存空間:已使用 <xliff:g id="PERCENTAGE">%1$s</xliff:g> - 尚餘 <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_summary" msgid="6737806235882127328">"閒置 <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>後休眠"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"桌布、休眠、字型大小"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"閒置 10 分鐘後休眠"</string>
<string name="memory_summary" msgid="8080825904671961872">"平均記憶體用量為 <xliff:g id="USED_MEMORY">%1$s</xliff:g> (共 <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>)"</string>
<string name="users_summary" msgid="1674864467098487328">"登入身分:<xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4154,10 +4158,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"網路詳細資料"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"你的裝置名稱會顯示在手機的應用程式上。此外,當你連上藍牙裝置或設定 Wi-Fi 無線基地台時,其他人可能也會看到你的裝置名稱。"</string>
<string name="devices_title" msgid="7701726109334110391">"裝置"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"高頻率面板"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"啟用虛擬高頻率面板"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"所有設定"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"你的設定"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"建議"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS 資料"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS 資料"</string>
<string name="choose_network_title" msgid="5702586742615861037">"選擇網路"</string>
@@ -4169,4 +4171,70 @@
<string name="network_query_error" msgid="7487714485362598410">"找不到網路,請再試一次。"</string>
<string name="forbidden_network" msgid="4626592887509826545">"(已禁止)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"沒有 SIM 卡"</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"進階通話功能"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"首選網路模式:首選 WCDMA"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"首選網路模式:僅限 GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"首選網路模式:僅限 WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"首選網路模式:GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"首選網路模式:CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"首選網路模式:CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"首選網路模式:僅限 CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"首選網路模式:僅限 EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"首選網路模式:CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"首選網路模式:LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"首選網路模式:GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"首選網路模式:CDMA + LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"首選網路模式:通用"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"首選網路模式:LTE/WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"首選網路模式:LTE/GSM/UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"首選網路模式:LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"首選網路模式:TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"首選網路模式:TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"首選網路模式:LTE/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"首選網路模式:TDSCDMA/GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"首選網路模式:LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"首選網路模式:TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"首選網路模式:LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"首選網路模式:LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"首選網路模式:TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"首選網路模式:LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"LTE (建議)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"4G (建議)"</string>
+ <string name="network_global" msgid="959947774831178632">"通用"</string>
+ <string name="label_available" msgid="1731547832803057893">"可用的網路"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"搜尋中…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"正在註冊「<xliff:g id="NETWORK">%s</xliff:g>」…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"你的 SIM 卡無法連上這個網路。"</string>
+ <string name="connect_later" msgid="978991102125216741">"目前無法連上這個網路,請稍後再試。"</string>
+ <string name="registration_done" msgid="4573820010512184521">"註冊網路成功。"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"自動選取網路"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"電信業者設定"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"設定數據傳輸服務"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"行動數據"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"使用行動網路存取數據"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"首選網路類型"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"變更網路操作模式"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"首選網路類型"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"電信業者"</string>
+ <string name="call_category" msgid="8108654745239563833">"通話"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"電信業者視訊通話"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"選取系統"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"變更 CDMA 漫遊模式"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"選取系統"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"網路"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"網路"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"CDMA 訂閱"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"在 RUIM/SIM 和 NV 之間切換"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"訂閱"</string>
+ <string name="register_automatically" msgid="518185886971595020">"自動註冊…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"要允許漫遊服務嗎?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"請向你的網路供應商洽詢定價。"</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"應用程式數據用量"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"網路模式 <xliff:g id="NETWORKMODEID">%1$d</xliff:g> 無效。忽略。"</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"無法在連線到「<xliff:g id="CARRIER">%1$s</xliff:g>」時使用"</string>
+ <string name="see_more" msgid="5953815986207345223">"顯示更多"</string>
+ <string name="see_less" msgid="1250265310929558370">"顯示較少"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
index 3147f40..4431a1d 100644
--- a/res/values-zu/arrays.xml
+++ b/res/values-zu/arrays.xml
@@ -477,6 +477,10 @@
<item msgid="8745603368609022803">"Phatha njengokulinganisiwe"</item>
<item msgid="2266114985518865625">"Phatha njengokungalinganisiwe"</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item msgid="5222330396373765981">"Okuzenzakalelayo (sebenzisa i-MAC engahleliwe)"</item>
+ <item msgid="5398461510512959597">"Othenjiwe"</item>
+ </string-array>
<string-array name="wifi_hidden_entries">
<item msgid="234221371123852300">"Cha"</item>
<item msgid="3863157480502955888">"Yebo"</item>
@@ -491,4 +495,51 @@
<item msgid="2182686878828390312">"Susa iphutha"</item>
<item msgid="5286514712714822064">"I-Verbose"</item>
</string-array>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="8727887686723706826">"Ekhaya kuphela"</item>
+ <item msgid="5034813753274486448">"Okuzenzekelayo"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="4168919392737496563">"Okukhethwayo kwe-GSM / WCDMA"</item>
+ <item msgid="807926878589867564">"I-GSM kuphela"</item>
+ <item msgid="488474605709912156">"I-WCDMA kuphela"</item>
+ <item msgid="1912421096218750039">"Okuzenzakalelayo kwe-GSM /WCDMA"</item>
+ <item msgid="5072198667819683600">"I-CDMA / EvDo ezenzakalelayo"</item>
+ <item msgid="370391313511477301">"I-CDMA w/o EvDo"</item>
+ <item msgid="4678789463133969294">"I-EvDo kuphela"</item>
+ <item msgid="3960210542349075517">"I-CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="2961817320209454599">"I-CDMA + LTE/EvDo"</item>
+ <item msgid="8008611169788556519">"I-GSM/WCDMA/LTE"</item>
+ <item msgid="4486851520863433847">"Okomhlaba jikelele"</item>
+ <item msgid="8516691658640163073">"I-LTE"</item>
+ <item msgid="3108828968591899719">"I-LTE / WCDMA"</item>
+ <item msgid="1879225673847443662">"I-TDSCDMA kuphela"</item>
+ <item msgid="8373504428469988469">"I-TDSCDMA/WCDMA"</item>
+ <item msgid="8097271911945758303">"I-LTE/TDSCDMA"</item>
+ <item msgid="2272560096982726294">"I-TDSCDMA/GSM"</item>
+ <item msgid="131738018826229696">"I-LTE/TDSCDMA/GSM"</item>
+ <item msgid="629422387044789699">"I-TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="5686260911275077041">"I-LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="4545655348143499596">"I-LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="4107769721462339672">"I-TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="8811683254058088466">"I-LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="8753271080005095725">"I-RUIM/SIM"</item>
+ <item msgid="2214656470548320124">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="3697517500945829780">"0"</item>
+ <item msgid="8113210705878681550">"1"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="1054992858056320116">"Okomhlaba jikelele"</item>
+ <item msgid="817971827645657949">"I-LTE / CDMA"</item>
+ <item msgid="519208953133334357">"I-LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="3904215366284600030">"10"</item>
+ <item msgid="4187053702071521357">"8"</item>
+ <item msgid="5461421967189969022">"9"</item>
+ </string-array>
</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index e44d118..639c2fc 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -21,7 +21,6 @@
<string name="create" msgid="3578857613172647409">"Yakha"</string>
<string name="allow" msgid="3349662621170855910">"Vumela"</string>
<string name="deny" msgid="6947806159746484865">"Nqaba"</string>
- <string name="dlg_close" msgid="7471087791340790015">"Vala"</string>
<string name="device_info_default" msgid="7847265875578739287">"Akwaziwa"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="7201398282729229649">
<item quantity="one">Manje ususele ngamagxathu angu-<xliff:g id="STEP_COUNT_1">%1$d</xliff:g> ukuthi ube ngunjiniyela.</item>
@@ -892,6 +891,7 @@
<string name="wifi_ap_5G" msgid="4020713496716329468">"5.0 GHz"</string>
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"Khetha okungenani ibhendi eyodwa ye-Wi‑Fi hotspot:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"Izilungiselelo ze-IP"</string>
+ <string name="wifi_privacy_settings" msgid="5500777170960315928">"Ubumfihlo"</string>
<string name="wifi_shared" msgid="844142443226926070">"Yabelana nabanye abasebenzisi bedivayisi"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(akushintshiwe)"</string>
<string name="wifi_unspecified" msgid="4917316464723064807">"Sicela ukhethe"</string>
@@ -1205,6 +1205,8 @@
<string name="sim_change_failed" msgid="3602072380172511475">"Ayikwazi ukushintsha i-PIN.\nMhlawumbe i-PIN engalungile"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"I-PIN ye-SIM ishintshwe ngempumelelo"</string>
<string name="sim_lock_failed" msgid="2489611099235575984">"Ayikwazi ukushintsha isimo sokuvala ikhadi le-SIM.\nKungenzeka i-PIN engalungile."</string>
+ <string name="sim_pin_disable_failed" msgid="7932981135799678220">"Ayikwazi ukukhubaza iphinikhodi."</string>
+ <string name="sim_pin_enable_failed" msgid="3414621075632931753">"Ayikwazi ukunika amandla iphinikhodi."</string>
<string name="sim_enter_ok" msgid="6475946836899218919">"KULUNGILE"</string>
<string name="sim_enter_cancel" msgid="6240422158517208036">"Khansela"</string>
<string name="sim_multi_sims_title" msgid="9159427879911231239">"Kutholakele ama-SIM amaningi"</string>
@@ -2932,7 +2934,6 @@
<item quantity="one">Bonisa izinto ezingu-%d ezifihliwe</item>
<item quantity="other">Bonisa izinto ezingu-%d ezifihliwe</item>
</plurals>
- <string name="dashboard_suggestion_condition_footer_content_description" msgid="2898588191174845961">"Goqa"</string>
<string name="network_dashboard_title" msgid="3135144174846753758">"Inethiwekhi ne-inthanethi"</string>
<string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"iselula"</string>
<string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ukusetshenziswa kwedatha"</string>
@@ -3002,6 +3003,7 @@
<string name="keywords_systemui_theme" msgid="9112852512550404882">"itimu emnyama"</string>
<string name="keywords_device_feedback" msgid="564493721125966719">"isiphazamisi"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Isibonisi se-Ambient, isibonisi sesikrini sokukhiya"</string>
+ <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"isaziso sokukhiya isikrini"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ubuso"</string>
<string name="keywords_fingerprint_settings" msgid="239222512315619538">"izigxivizo zeminwe"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"fiphalisa isikrini, isikrini esithintwayo, ibhethri, ukukhanya okuhlakaniphile, ukukhanya okuguqukayo"</string>
@@ -3711,6 +3713,8 @@
<string name="storage_summary_with_sdcard" msgid="3290457009629490121">"Isitoreij sangaphakathi: <xliff:g id="PERCENTAGE">%1$s</xliff:g> okusetshenzisiwe - <xliff:g id="FREE_SPACE">%2$s</xliff:g> okukhululekile"</string>
<string name="display_summary" msgid="6737806235882127328">"Lala ngemuva ko-<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ukungasebenzi"</string>
<string name="display_dashboard_summary" msgid="4145888780290131488">"Isithombe sangemuva, ukulala, usayizi wefonti"</string>
+ <!-- no translation found for display_dashboard_nowallpaper_summary (7840559323355210111) -->
+ <skip />
<string name="display_summary_example" msgid="9102633726811090523">"Lalisa ngemuva kwamaminithi angu-10 okungasebenzi"</string>
<string name="memory_summary" msgid="8080825904671961872">"Okumaphakathi okungu-<xliff:g id="USED_MEMORY">%1$s</xliff:g> kokungu-<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> imemori esetshenzisiwe"</string>
<string name="users_summary" msgid="1674864467098487328">"Ungene ngemvume njengo-<xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4155,10 +4159,8 @@
<string name="pref_title_network_details" msgid="7186418845727358964">"Imininingwane yenethiwekhi"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"Igama ledivayisi yakho liyabonakala kuzinhlelo zokusebenza efonini yakho. Futhi lingabonwa ngabanye abantu uma uxhuma kumadivayisi e-Bluetooth noma usetha i-Wi-Fi hotspot."</string>
<string name="devices_title" msgid="7701726109334110391">"Amadivayisi"</string>
- <string name="high_frequency_display_device_title" msgid="2327369124536178715">"Iphaneli yemvamisa ephezulu"</string>
- <string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Nika amandla iphaneli ebonakalayo yemvamisa ephezulu"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Zonke izilungiselelo"</string>
- <string name="homepage_personal_settings" msgid="3998213046366125494">"Izilungiselelo zakho"</string>
+ <string name="homepage_personal_settings" msgid="1570415428680432319">"Iziphakamiso"</string>
<string name="cbrs_data_switch" msgid="2438108549734702331">"Idatha ye-CBRS"</string>
<string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Idatha ye-CBRS"</string>
<string name="choose_network_title" msgid="5702586742615861037">"Khetha inethiwekhi"</string>
@@ -4170,4 +4172,70 @@
<string name="network_query_error" msgid="7487714485362598410">"Ayikwazanga ukuthola amanethiwekhi. Zama futhi."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(kunqatshelwe)"</string>
<string name="no_sim_card" msgid="1360669528113557381">"Alikho ikhadi le-SIM."</string>
+ <string name="enhanced_4g_lte_mode_title_variant" msgid="758804404006513787">"Ukushaya okuthuthukile"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="3956515670308744433">"Imodi yenethiwekhi ekhethwayo: i-WCDMA ekhethwayo"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="5225727680228194864">"Imodi yenethiwekhi ekhethwayo: i-GSM kuphela"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="8956197584659205699">"Imodi yenethiwekhi ekhethwayo: i-WCDMA kuphela"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="4290654515569144276">"Imodi yenethiwekhi ekhethwayo: i-GSM/WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="854981096234906594">"Imodi yenethiwekhi ekhethwayo: i-CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="2578065433446506616">"Imodi yenethiwekhi ekhethwayo: i-CDMA/EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="6604102246309629962">"Imodi yenethiwekhi ekhethwayo: i-CDMA kuphela"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="7558385602277592784">"Imodi yenethiwekhi ekhethwayo: i-EvDo kuphela"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="1742638677806401815">"Imodi yenethiwekhi ekhethwayo: i-CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8528755811985330696">"Imodi yenethiwekhi ekhethwayo: i-LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="6632007438739933645">"Imodi yenethiwekhi ekhethwayo: i-GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5464960267483576515">"Imodi yenethiwekhi ekhethwayo: i-CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="8552400100470153638">"Imodi yenethiwekhi ekhethwayo: Umhlaba jikelele"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="8037915274486919940">"Imodi yenethiwekhi ekhethwayo: i-LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="104110625441127919">"Imodi yenethiwekhi encanyelwayo: i-LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="2561159741461407053">"Imodi yenethiwekhi ekhethwayo: i-LTE/CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="1111689194136766011">"Imodi yenethiwekhi encanyelwayo: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="4272515966019344433">"Imodi yenethiwekhi ekhethwayo: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3138210224248737600">"Imodi yenethiwekhi ekhethwayo: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="7575595856957063853">"Imodi yenethiwekhi ekhethwayo: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1512046749970721629">"Imodi yenethiwekhi ekhethwayo: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="1038314909945393905">"Imodi yenethiwekhi ekhethwayo: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="3277980364222159279">"Imodi yenethiwekhi ekhethwayo: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="1572937828071126891">"Imodi yenethiwekhi ekhethwayo: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8393145171649288912">"Imodi yenethiwekhi ekhethwayo: i-CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5544016990994809932">"Imodi yenethiwekhi ekhethwayo: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="network_lte" msgid="1287709529829131860">"I-LTE (inconyiwe)"</string>
+ <string name="network_4G" msgid="8611758013994499559">"I-4G (inconyiwe)"</string>
+ <string name="network_global" msgid="959947774831178632">"Okomhlaba jikelele"</string>
+ <string name="label_available" msgid="1731547832803057893">"Amanethiwekhi atholakalayo"</string>
+ <string name="load_networks_progress" msgid="7709402068413190831">"Iyasesha…"</string>
+ <string name="register_on_network" msgid="766516026652295941">"Ibhalisa ku-<xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="1667079919821581706">"I-SIM card yakho ayivumeli ukuxhumeka kule nethiwekhi."</string>
+ <string name="connect_later" msgid="978991102125216741">"Ayikwazi ukuxhumeka kule nethiwekhi khona manje. Zama futhi ngemuva kwesikhathi."</string>
+ <string name="registration_done" msgid="4573820010512184521">"Ibhalisiwe kwinethiwekhi"</string>
+ <string name="select_automatically" msgid="7318032984017853975">"Khetha ngokuzenzakalela inethiwekhi"</string>
+ <string name="carrier_settings_title" msgid="3503012527671299886">"Izilungiselelo zenkampani yenethiwekhi"</string>
+ <string name="cdma_lte_data_service" msgid="8507044148856536098">"Misa isevisi yedatha"</string>
+ <string name="mobile_data_settings_title" msgid="7674604042461065482">"Idatha yeselula"</string>
+ <string name="mobile_data_settings_summary" msgid="2708261377199805404">"Finyelela kudatha usebenzisa inethiwekhi yeselula"</string>
+ <string name="preferred_network_mode_title" msgid="6505630109389684100">"Uhlobo lwenethiwekhi oluncamelayo"</string>
+ <string name="preferred_network_mode_summary" msgid="1216219115667163264">"Shintsha imodi esebenzayo yenethiwekhi"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="849254040214447984">"Uhlobo lwenethiwekhi oluncamelayo"</string>
+ <string name="carrier_settings_euicc" msgid="8658562169133242581">"Inkampani yenethiwekhi"</string>
+ <string name="call_category" msgid="8108654745239563833">"Iyashaya"</string>
+ <string name="video_calling_settings_title" msgid="8153216918491498505">"Ukushaya kwevidiyo kwenkampani yenethiwekhi"</string>
+ <string name="cdma_system_select_title" msgid="7210256688912895790">"Ukukhetha isistimu"</string>
+ <string name="cdma_system_select_summary" msgid="3413863051181111941">"Sintsha imodi yokuzulazula ye-cdma"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="1198883288864916563">"Ukukhetha isistimu"</string>
+ <string name="network_operator_category" msgid="8451238364605724918">"Inethiwekhi"</string>
+ <string name="network_select_title" msgid="8394621216255081026">"Inethiwekhi"</string>
+ <string name="cdma_subscription_title" msgid="1473189596933979467">"Okubhalisile kwe-CDMA"</string>
+ <string name="cdma_subscription_summary" msgid="7191590908367194209">"Shintsha phakathi kwe-RUIM/SIM ne-NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="9153005469617575361">"Okubhalisile"</string>
+ <string name="register_automatically" msgid="518185886971595020">"Ukubhalisa okuzenzakalelayo…"</string>
+ <string name="roaming_alert_title" msgid="7458177294163751484">"Vumela ukuhamba kwedatha?"</string>
+ <string name="roaming_check_price_warning" msgid="4979418631753681300">"Hlola ngomhlinzeki wakho wenethiwekhi ukuze uthole intengo."</string>
+ <string name="mobile_data_usage_title" msgid="7862429216994894656">"Ukusetshenziswa kwedatha yohlelo lokusebenza"</string>
+ <string name="mobile_network_mode_error" msgid="4784347953600013818">"Imodi yenethiwekhi engavumelekile <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ziba."</string>
+ <string name="manual_mode_disallowed_summary" msgid="2085670341790561153">"Ayitholakali uma ixhumeke ku-<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="see_more" msgid="5953815986207345223">"Bona okuningi"</string>
+ <string name="see_less" msgid="1250265310929558370">"Buka okuncane"</string>
+ <!-- no translation found for show_connected_devices (5484062660312192006) -->
+ <!-- no translation found for no_connected_devices (6657176404588389594) -->
+ <skip />
</resources>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 6cc10fe..c3faaba 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -215,10 +215,12 @@
<string-array name="wifi_security">
<!-- The Wi-Fi network does not have any security. -->
<item>@string/wifi_security_none</item>
+ <item translatable="false">@string/wifi_security_owe</item>
<item translatable="false">@string/wifi_security_wep</item>
<item translatable="false">@string/wifi_security_psk_generic</item>
+ <item translatable="false">@string/wifi_security_sae</item>
<item translatable="false">@string/wifi_security_eap</item>
-
+ <item translatable="false">@string/wifi_security_eap_suiteb</item>
</string-array>
<!-- Match this with the constants in AccessPoint. --> <skip />
@@ -228,6 +230,7 @@
<item>@string/wifi_security_none</item>
<item translatable="false">@string/wifi_security_wep</item>
<item translatable="false">@string/wifi_security_psk_generic</item>
+ <item translatable="false">@string/wifi_security_sae</item>
</string-array>
<!-- Security types for wireless tether -->
@@ -1081,6 +1084,11 @@
<item>Treat as unmetered</item>
</string-array>
+ <string-array name="wifi_privacy_entries">
+ <item>Default (use randomized MAC)</item>
+ <item>Trusted</item>
+ </string-array>
+
<string-array name="wifi_hidden_entries">
<item>No</item>
<item>Yes</item>
@@ -1092,6 +1100,11 @@
<item>2</item>
</string-array>
+ <string-array name="wifi_privacy_values" translatable="false">
+ <item>0</item>
+ <item>1</item>
+ </string-array>
+
<!-- Titles for ui dark mode preference. -->
<string-array name="dark_ui_mode_entries" >
<item>Automatic (based on time of day)</item>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index f398d92..11c1aaf 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -113,18 +113,20 @@
<!-- Dashboard/homepage icon background colors -->
<color name="homepage_network_background">#2196F3</color>
- <color name="homepage_connected_device_background">#71A234</color>
+ <color name="homepage_connected_device_background">#72B70F</color>
<color name="homepage_app_and_notification_background">#FF7E0F</color>
<color name="homepage_battery_background">#258982</color>
- <color name="homepage_display_background">#FFB600</color>
+ <color name="homepage_display_background">#FFA727</color>
<color name="homepage_sound_background">#01B1AF</color>
<color name="homepage_storage_background">#C14CE6</color>
<color name="homepage_security_background">#0F9D58</color>
<color name="homepage_accounts_background">#F15B8D</color>
<color name="homepage_accessibility_background">#5011C1</color>
- <color name="homepage_system_background">#757575</color>
+ <color name="homepage_system_background">#9E9E9E</color>
<color name="homepage_support_background">#26459C</color>
<color name="homepage_generic_icon_background">#1A73E8</color>
+ <color name="homepage_location_background">#2EC7DC</color>
+ <color name="homepage_about_background">#9FA8DA</color>
<!-- End of dashboard/homepage icon background colors -->
<color name="glif_error_color">@*android:color/material_red_A700</color>
diff --git a/res/values/config.xml b/res/values/config.xml
index 8e60505..a9fe35d 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -134,15 +134,15 @@
have distinct intensity levels -->
<bool name="config_vibration_supports_multiple_intensities">false</bool>
+ <!--
+ Whether or not the homepage should be powered by legacy suggestion (versus contextual cards)
+ Default to true as not all devices support contextual cards.
+ -->
+ <bool name="config_use_legacy_suggestion">true</bool>
+
+ <!-- Whether or not homepage should display user's account avatar -->
+ <bool name="config_show_avatar_in_homepage">false</bool>
+
<!-- Whether or not TopLevelSettings should force rounded icon for injected tiles -->
<bool name="config_force_rounded_icon_TopLevelSettings">true</bool>
-
- <!-- TODO(b/115429501): move those 3 configs to framework-->
- <!-- Show enabled lte option for lte device -->
- <bool name="config_enabled_lte" translatable="false">false</bool>
- <!-- Show enabled tdscdma option for device -->
- <bool name="config_support_tdscdma" translatable="false">false</bool>
- <!-- Show enabled tdscdma option for device when connect roaming network -->
- <string-array name="config_support_tdscdma_roaming_on_networks"
- translatable="false"></string-array>
</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index a11dd5f..caaea90 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -79,19 +79,6 @@
<dimen name="actionbar_contentInsetStart">16dp</dimen>
<dimen name="actionbar_subsettings_contentInsetStart">72dp</dimen>
- <!-- Dashboard padding in its container -->
- <dimen name="dashboard_padding_start">0dp</dimen>
- <dimen name="dashboard_padding_end">0dp</dimen>
- <dimen name="dashboard_padding_top">0dp</dimen>
- <dimen name="dashboard_padding_bottom">0dp</dimen>
-
- <!-- Dashboard category padding start / end -->
- <dimen name="dashboard_category_padding_start">0dp</dimen>
- <dimen name="dashboard_category_padding_end">0dp</dimen>
-
- <!-- Dashboard tile minimum height -->
- <dimen name="dashboard_tile_minimum_height">72dp</dimen>
-
<!-- Dashboard image tile size -->
<dimen name="dashboard_tile_image_size">36dp</dimen>
@@ -101,8 +88,8 @@
<!-- Dashboard foreground image inset (from background edge to foreground edge) -->
<dimen name="dashboard_tile_foreground_image_inset">6dp</dimen>
- <!-- Dashboard tile image margin start / end -->
- <dimen name="dashboard_tile_image_margin">18dp</dimen>
+ <!-- Preference icon foreground image inset (from background edge to foreground edge) -->
+ <dimen name="preference_icon_foreground_image_inset">12dp</dimen>
<!-- SwitchBar sub settings margin start / end -->
<dimen name="switchbar_subsettings_margin_start">72dp</dimen>
@@ -119,6 +106,9 @@
<dimen name="search_bar_text_size">16dp</dimen>
<dimen name="search_bar_card_elevation">2dp</dimen>
<dimen name="search_bar_content_inset">64dp</dimen>
+ <dimen name="search_bar_avatar_size">32dp</dimen>
+ <dimen name="search_bar_avatar_start_margin">4dp</dimen>
+ <dimen name="search_bar_avatar_end_margin">16dp</dimen>
<!-- Dimensions for Wifi Assistant Card -->
<dimen name="wifi_assistant_padding_top_bottom">16dp</dimen>
@@ -267,7 +257,7 @@
<!-- Restricted icon in switch bar -->
<dimen name="restricted_icon_margin_end">16dp</dimen>
<!-- Restricted icon size in switch bar -->
- <dimen name="restricted_icon_size">@*android:dimen/config_restricted_icon_size</dimen>
+ <dimen name="restricted_icon_size">@*android:dimen/config_restrictedIconSize</dimen>
<!-- Display Size and Font Size preview screen -->
<dimen name="preview_pager_padding">8dp</dimen>
@@ -311,17 +301,7 @@
<!-- Suggestion/condition header padding -->
<dimen name="suggestion_condition_header_padding_collapsed">10dp</dimen>
<dimen name="suggestion_condition_header_padding_expanded">5dp</dimen>
-
- <!-- Suggestion cards size and padding -->
- <dimen name="suggestion_card_icon_size">24dp</dimen>
- <dimen name="suggestion_card_outer_margin">14dp</dimen>
- <dimen name="suggestion_card_inner_margin">12dp</dimen>
- <dimen name="suggestion_card_padding_bottom_one_card">16dp</dimen>
- <dimen name="suggestion_card_corner_radius">2dp</dimen>
- <dimen name="suggestion_card_icon_side_margin">12dp</dimen>
- <dimen name="suggestion_card_button_side_margin">8dp</dimen>
- <dimen name="suggestion_card_button_top_margin">16dp</dimen>
- <dimen name="suggestion_card_button_bottom_margin">18dp</dimen>
+ <dimen name="condition_header_height">36dp</dimen>
<!-- Condition cards size and padding -->
<dimen name="condition_card_elevation">2dp</dimen>
@@ -340,17 +320,34 @@
<dimen name="homepage_bottombar_fab_cradle">68dp</dimen>
<!-- Homepage cards size and padding -->
+ <dimen name="homepage_card_icon_size">24dp</dimen>
<dimen name="homepage_card_corner_radius">8dp</dimen>
<dimen name="homepage_card_elevation">2dp</dimen>
- <dimen name="homepage_card_top_margin">6dp</dimen>
- <dimen name="homepage_card_bottom_margin">6dp</dimen>
- <dimen name="homepage_card_side_margin">16dp</dimen>
+ <dimen name="homepage_card_vertical_margin">4dp</dimen>
+ <dimen name="homepage_card_side_margin">8dp</dimen>
<dimen name="homepage_card_padding_start">16dp</dimen>
<dimen name="homepage_card_padding_end">16dp</dimen>
- <dimen name="homepage_card_padding_top">6dp</dimen>
- <dimen name="homepage_card_padding_bottom">6dp</dimen>
+
+ <!-- Horizontal divider size and margin -->
+ <dimen name="horizontal_divider_margin_top">4dp</dimen>
+ <dimen name="horizontal_divider_margin_bottom">8dp</dimen>
+ <dimen name="horizontal_divider_height">.75dp</dimen>
+
+ <!-- Vertical divider size -->
+ <dimen name="vertical_divider_width">.75dp</dimen>
<!-- Signal icon in NetworkSelectSetting -->
<dimen name="signal_strength_icon_size">24dp</dimen>
+ <!-- Condition cards size and padding -->
+ <dimen name="homepage_condition_card_title_margin_bottom">2dp</dimen>
+ <dimen name="homepage_condition_half_card_height">150dp</dimen>
+ <dimen name="homepage_condition_half_card_padding_top">12dp</dimen>
+ <dimen name="homepage_condition_half_card_title_margin_top">12dp</dimen>
+ <dimen name="homepage_condition_half_card_summary_margin_bottom">12dp</dimen>
+ <dimen name="homepage_condition_full_card_padding_start">24dp</dimen>
+ <dimen name="homepage_condition_full_card_padding_end">24dp</dimen>
+ <dimen name="homepage_condition_full_card_padding_top">12dp</dimen>
+ <dimen name="homepage_condition_full_card_padding_bottom">12dp</dimen>
+
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index b52bfea..01c89aa 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -25,9 +25,6 @@
<!-- Strings for Dialog deny button -->
<string name="deny">Deny</string>
- <!-- Strings for Dialog close button [CHAR LIMIT=20] -->
- <string name="dlg_close">Close</string>
-
<!-- Device Info screen. Used for a status item's value when the proper value is not known -->
<string name="device_info_default">Unknown</string>
<!-- [CHAR LIMIT=NONE] Device Info screen. Countdown for user taps to enable development settings -->
@@ -681,7 +678,7 @@
<!-- check box to allow data usage when roaming [CHAR LIMIT=41] -->
<string name="allow_data_usage_title">Allow data usage when roaming</string>
<!-- mobile network settings screen, setting check box title -->
- <string name="roaming">Data roaming</string>
+ <string name="roaming">Roaming</string>
<!-- mobile network settings screen, setting option summary text when check box is selected -->
<string name="roaming_enable">Connect to data services when roaming</string>
<!-- mobile network settings screen, setting option summary text when check box is clear -->
@@ -817,11 +814,13 @@
<string name="location_settings_title">Location</string>
<!-- Used in the location settings to control turning on/off the feature entirely -->
<string name="location_settings_master_switch_title">Use location</string>
+ <!-- Summary for Location settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
+ <string name="location_settings_summary">Scanning, location history</string>
<!-- Main Settings screen setting option title for the item to take you to the accounts screen [CHAR LIMIT=22] -->
<string name="account_settings_title">Accounts</string>
<!-- Main Settings screen setting option title for the item to take you to the security screen -->
- <string name="security_settings_title">Security & location</string>
+ <string name="security_settings_title">Security</string>
<!-- Security Settings screen setting option title for the item to take you to the encryption and credential screen -->
<string name="encryption_and_credential_settings_title">Encryption & credentials</string>
<!-- Security Settings screen Encryption and crendential summary -->
@@ -1054,9 +1053,6 @@
<!-- Button to confirm the last removing the last fingerprint. [CHAR LIMIT=20]-->
<string name="fingerprint_last_delete_confirm">Yes, remove</string>
- <!-- Content description for the fingerprint icon when the user is prompted to enter his credentials. Not shown on the screen. [CHAR LIMIT=NONE] -->
- <string name="confirm_fingerprint_icon_content_description">Use your fingerprint to continue.</string>
-
<!-- Title of the preferences category for preference items to control encryption -->
<string name="crypt_keeper_settings_title">Encryption</string>
@@ -2052,6 +2048,8 @@
<string name="wifi_ap_band_select_one">Choose at least one band for Wi\u2011Fi hotspot:</string>
<!-- Label for the spinner to show ip settings [CHAR LIMIT=25] -->
<string name="wifi_ip_settings">IP settings</string>
+ <!-- Label for the spinner to show Wifi MAC randomization [CHAR LIMIT=25] -->
+ <string name="wifi_privacy_settings">Privacy</string>
<!-- Label for the check box to share a network with other users on the same device -->
<string name="wifi_shared">Share with other device users</string>
<!-- Hint for unchanged fields -->
@@ -2768,6 +2766,10 @@
<string name="sim_change_succeeded">SIM PIN changed successfully</string>
<!-- SIM card lock settings screen, toast after not entering correct SIM PIN [CHAR LIMIT=40] -->
<string name="sim_lock_failed">Can\u2019t change SIM card lock state.\nPossibly incorrect PIN.</string>
+ <!-- SIM card lock settings screen, toast after disabling PIN failed from modem -->
+ <string name="sim_pin_disable_failed">Can\'t disable PIN.</string>
+ <!-- SIM card lock settings screen, toast after enabling PIN failed from modem -->
+ <string name="sim_pin_enable_failed">Can\'t enable PIN.</string>
<!-- SIM card lock settings screen, SIM PIN dialog button labels: [CHAR LIMIT=40] -->
<string name="sim_enter_ok">OK</string>
<!-- SIM card lock settings screen, SIM PIN dialog button labels: [CHAR LIMIT=40] -->
@@ -3706,6 +3708,10 @@
<!-- About phone settings screen, Safety Legal dialog title until the link is fully loaded -->
<string name="settings_safetylegal_activity_loading">Loading\u2026</string>
+ <!-- ConfirmDeviceCredential settings-->
+ <!-- Button text shown on BiometricPrompt (system dialog that asks for biometric authentication) giving the user the option to use an alternate form of authentication (Pin/Pattern/Pass) [CHAR LIMIT=30] -->
+ <string name="confirm_device_credential_use_alternate_method">Use alternate method</string>
+
<!-- Lock Pattern settings -->
<!-- Header on first screen of choose password/PIN flow [CHAR LIMIT=40] -->
<string name="lockpassword_choose_your_screen_lock_header">Set screen lock</string>
@@ -3768,8 +3774,8 @@
<string name="lockpassword_confirm_your_password_generic_profile">Enter your work password to continue</string>
<!-- This string shows up on a screen where a user can enter a pattern that
- unlocks their device. This is an extra security measure that's required for them to
- continue. [CHAR LIMIT=100] -->
+ unlocks their device. This is an extra security measure that's required for them to
+ continue. [CHAR LIMIT=100] -->
<string name="lockpassword_strong_auth_required_device_pattern">For added security, use your device pattern</string>
<!-- This string shows up on a screen where a user can enter a PIN that unlocks their device.
This is an extra security measure that's required for them to continue. [CHAR LIMIT=100]
@@ -5651,12 +5657,18 @@
<string name="remove_and_uninstall_device_admin">Deactivate & uninstall</string>
<!-- Label for screen showing to select device admin apps -->
<string name="select_device_admin_msg">Device admin apps</string>
+
<!-- Message when there are no available device admin apps to display -->
<string name="no_device_admins">No device admin apps available</string>
<!-- Title for personal device admin apps on the list [CHAR_LIMIT=25] -->
<string name="personal_device_admin_title">Personal</string>
<!-- Title for managed device admin apps on the list [CHAR_LIMIT=25] -->
<string name="managed_device_admin_title">Work</string>
+ <!-- Title for whether to enable SMS access restriction [CHAR LIMIT=50]-->
+ <string name="sms_access_restriction_enabled">Restrict SMS & call log access</string>
+ <!-- Summary for whether to enable SMS access restriction [CHAR LIMIT=NONE]-->
+ <string name="sms_access_restriction_enabled_summary">Only default phone and messaging apps have SMS & call log permissions</string>
+
<!-- Message when there are no available trust agents to display -->
<string name="no_trust_agents">No available trust agents</string>
@@ -6865,9 +6877,6 @@
<item quantity="other">Show %d hidden items</item>
</plurals>
- <!-- Content description for suggestion footer button. Double tapping will cause suggestion list to collapse [CHAR LIMIT=NONE]-->
- <string name="dashboard_suggestion_condition_footer_content_description">Collapse</string>
-
<!-- Title for setting tile leading to network and Internet settings [CHAR LIMIT=40]-->
<string name="network_dashboard_title">Network & internet</string>
<!-- Summary for Network and Internet settings, explaining it contains mobile network setting [CHAR LIMIT=NONE]-->
@@ -7185,20 +7194,26 @@
<string name="zen_mode_behavior_alarms_only">No sound except alarms and media</string>
<!-- Do not disturb: Title for the zen mode automation option in Settings. [CHAR LIMIT=40] -->
- <string name="zen_mode_automation_settings_title">Turn on automatically</string>
+ <string name="zen_mode_automation_settings_title">Schedules</string>
<!-- Do not disturb: Title for the zen mode automatic rules page in settings. [CHAR LIMIT=30] -->
- <string name="zen_mode_automation_settings_page_title">Automatic rules</string>
+ <string name="zen_mode_automation_settings_page_title">Do Not Disturb</string>
<!-- Do not disturb: Title for a specific zen mode automatic rule in settings. [CHAR LIMIT=30] -->
<string name="zen_mode_automatic_rule_settings_page_title">Automatic rule</string>
+ <!-- Do not disturb: Title do not disturb settings representing automatic (scheduled) do not disturb rules. [CHAR LIMIT=30] -->
+ <string name="zen_mode_schedule_category_title">Schedule</string>
+
<!-- Do not disturb: Title for the zen mode automation option Suggestion. [CHAR LIMIT=46] -->
<string name="zen_mode_automation_suggestion_title">Silence phone at certain times</string>
<!-- Do not disturb: Summary for the zen mode automation option Suggestion. [CHAR LIMIT=55] -->
<string name="zen_mode_automation_suggestion_summary">Set Do Not Disturb rules</string>
+ <!-- Do not disturb: Header for the Do Not Disturb automatic rules. [CHAR LIMIT=55] -->
+ <string name="zen_mode_schedule_title">Schedule</string>
+
<!-- Do not disturb: Switch toggle to toggle whether to use an automatic dnd rule or not [CHAR LIMIT=40] -->
<string name="zen_mode_use_automatic_rule">Use rule</string>
@@ -7221,10 +7236,10 @@
<string name="zen_mode_visual_signals_settings_subtitle">Allow visual signals</string>
<!-- Do not disturb: zen settings screens category title [CHAR LIMIT=100] -->
- <string name="zen_mode_settings_category">When Do Not Disturb is turned on</string>
+ <string name="zen_mode_settings_category">When Do Not Disturb is on</string>
- <!-- Do not disturb: restrict notifications title [CHAR LIMIT=60] -->
- <string name="zen_mode_restrict_notifications_title">Notifications</string>
+ <!-- Do not disturb: restrict notifications title [CHAR LIMIT=80] -->
+ <string name="zen_mode_restrict_notifications_title">Notification restrictions</string>
<!-- Do not disturb: Mute notifications option [CHAR LIMIT=60] -->
<string name="zen_mode_restrict_notifications_mute">No sound from notifications</string>
<!-- Do not disturb:Mute notifications summary [CHAR LIMIT=NONE] -->
@@ -7265,9 +7280,9 @@
<!-- Do not disturb: what to block option [CHAR LIMIT=NONE] -->
<string name="zen_mode_block_effect_peek">Don\'t pop notifications on screen</string>
<!-- Do not disturb: what to block option [CHAR LIMIT=NONE] -->
- <string name="zen_mode_block_effect_status">Hide status bar icons</string>
+ <string name="zen_mode_block_effect_status">Hide status bar icons at top of screen</string>
<!-- Do not disturb: what to block option [CHAR LIMIT=NONE] -->
- <string name="zen_mode_block_effect_badge">Hide notification dots</string>
+ <string name="zen_mode_block_effect_badge">Hide notification dots on app icons</string>
<!-- Do not disturb: what to block option [CHAR LIMIT=NONE] -->
<string name="zen_mode_block_effect_ambient">Don\'t wake for notifications</string>
<!-- Do not disturb: what to block option [CHAR LIMIT=NONE] -->
@@ -7356,15 +7371,15 @@
<item quantity="other"><xliff:g id="on_count" example="3">%d</xliff:g> rules can turn on automatically</item>
</plurals>
- <!-- Do not disturb settings, category header [CHAR LIMIT=100]-->
- <string name="zen_category_behavior">Behavior</string>
- <!-- Do not disturb settings, category header [CHAR LIMIT=100]-->
+ <!-- Do not disturb settings, category header [CHAR LIMIT=120]-->
+ <string name="zen_category_behavior">Mute phone, but allow exceptions</string>
+ <!-- Do not disturb settings, exceptions to dnd title [CHAR LIMIT=100]-->
<string name="zen_category_exceptions">Exceptions</string>
<!-- Do not disturb settings, category header [CHAR LIMIT=100]-->
<string name="zen_category_schedule">Schedule</string>
- <!-- Do not disturb settings, sound and vibrations title [CHAR LIMIT=100]-->
- <string name="zen_sound_title">Sound & vibration</string>
+ <!-- Do not disturb settings, sound and vibrations exceptions title [CHAR LIMIT=100]-->
+ <string name="zen_sound_title">See all exceptions</string>
<!-- Do not disturb settings, sound and vibrations screen footer [CHAR LIMIT=NONE]-->
<string name="zen_sound_footer">When Do Not Disturb is on, sound and vibration will be muted, except for the items you allow above.</string>
<!-- Do not disturb settings, sound and vibrations screen category [CHAR LIMIT=100]-->
@@ -7816,8 +7831,8 @@
<!-- [CHAR LIMIT=100] Zen mode settings: Warning text for invalid zen rule names -->
<string name="zen_mode_rule_name_warning">Rule name already in use</string>
- <!-- [CHAR LIMIT=40] Zen mode settings: Add rule menu option name -->
- <string name="zen_mode_add_rule">Add rule</string>
+ <!-- [CHAR LIMIT=40] Zen mode settings: Add another automatic zen rule option name-->
+ <string name="zen_mode_add_rule">Add more</string>
<!-- [CHAR LIMIT=40] Zen mode settings: Add event-based rule, set rule name title -->
<string name="zen_mode_add_event_rule">Add event rule</string>
@@ -7942,6 +7957,9 @@
<!-- [CHAR LIMIT=20] Zen mode settings: Messages option -->
<string name="zen_mode_messages">Messages</string>
+ <!-- Do not disturb settings, messages, events and reminders footer [CHAR LIMIT=NONE]-->
+ <string name="zen_mode_messages_footer">When Do Not Disturb is on, incoming text messages are blocked. You can adjust settings to allow your friends, family, or other contacts to reach you.</string>
+
<!-- [CHAR LIMIT=40] Zen mode settings: Allow messages toggle title -->
<string name="zen_mode_messages_title">Allow messages</string>
@@ -7978,42 +7996,36 @@
<!-- [CHAR LIMIT=40] Zen mode settings: Calls or messages option value: None -->
<string name="zen_mode_from_none">None</string>
- <!-- [CHAR LIMIT=50] Zen mode settings: Alarms option -->
- <string name="zen_mode_alarms">Alarms</string>
+ <!-- [CHAR LIMIT=80] Zen mode settings: Allow alarms option -->
+ <string name="zen_mode_alarms">Allow alarms</string>
<!-- [CHAR LIMIT=50] Zen mode settings: Alarms option (ie: sound from alarm clock) -->
<string name="zen_mode_alarms_list">alarms</string>
- <!-- [CHAR LIMIT=50] Zen mode settings: Media option -->
- <string name="zen_mode_media">Media</string>
+ <!-- [CHAR LIMIT=80] Zen mode settings: Allow media (sound from video) to bypass dnd -->
+ <string name="zen_mode_media">Allow media</string>
<!-- [CHAR LIMIT=50] Zen mode settings: Media (ie: sound from video) -->
<string name="zen_mode_media_list">media</string>
- <!-- [CHAR LIMIT=50] Zen mode settings: System option which includes sounds such as touch sounds -->
- <string name="zen_mode_system">Touch sounds</string>
+ <!-- [CHAR LIMIT=80] Zen mode settings: allow touch sounds to bypass DND -->
+ <string name="zen_mode_system">Allow touch sounds</string>
<!-- [CHAR LIMIT=50] Zen mode settings: System sounds (ie: touch sounds) -->
<string name="zen_mode_system_list">touch sounds</string>
- <!-- [CHAR LIMIT=50] Zen mode settings: Reminders option -->
- <string name="zen_mode_reminders">Reminders</string>
+ <!-- [CHAR LIMIT=80] Zen mode settings: Allow reminder notifications/sounds to bypass DND -->
+ <string name="zen_mode_reminders">Allow reminders</string>
<!-- [CHAR LIMIT=50] Zen mode settings: Reminders (ie: calendar reminders are allowed to bypass dnd) -->
<string name="zen_mode_reminders_list">reminders</string>
- <!-- [CHAR LIMIT=70] Zen mode settings: Allow reminders toggle title -->
- <string name="zen_mode_reminders_title">Allow reminders</string>
-
- <!-- [CHAR LIMIT=50] Zen mode settings: Events option -->
- <string name="zen_mode_events">Events</string>
+ <!-- [CHAR LIMIT=80] Zen mode settings: Allow event notifications/sounds to bypass DND -->
+ <string name="zen_mode_events">Allow events</string>
<!-- [CHAR LIMIT=50] Zen mode settings: Events (ie: calendar events) -->
<string name="zen_mode_events_list">events</string>
- <!-- [CHAR LIMIT=70] Zen mode settings: Allow events toggle title -->
- <string name="zen_mode_events_title">Allow events</string>
-
<!-- [CHAR LIMIT=50] Zen mode settings: All callers summary -->
<string name="zen_mode_all_callers">anyone</string>
@@ -8371,9 +8383,6 @@
<!-- Explanation that the app that will NEVER be launched to open web links to domains that it understands -->
<string name="app_link_open_never">Don’t open in this app</string>
- <!-- Fingerprint hint message when finger was not recognized.-->
- <string name="fingerprint_not_recognized">Not recognized</string>
-
<!-- Title for Default Apps settings [CHAR LIMIT=30] -->
<string name="default_apps_title">Default</string>
@@ -8920,6 +8929,10 @@
<string name="display_summary">Sleep after <xliff:g id="timeout_description" example="10 minutes">%1$s</xliff:g> of inactivity</string>
<!-- Summary for Display settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
<string name="display_dashboard_summary">Wallpaper, sleep, font size</string>
+
+ <!-- Summary for Display settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
+ <string name="display_dashboard_nowallpaper_summary">Sleep, font size</string>
+
<!-- Example summary of display used in Setup Wizard preview screen [CHAR LIMIT=NONE] -->
<string name="display_summary_example">Sleep after 10 minutes of inactivity</string>
@@ -8932,12 +8945,6 @@
<!-- Summary of payment screen [CHAR LIMIT=NONE] -->
<string name="payment_summary"><xliff:g id="app_name" example="Payment App">%1$s</xliff:g> is default</string>
- <!-- Summary of location on screen [CHAR LIMIT=NONE] -->
- <string name="location_on_summary">On</string>
-
- <!-- Location off [CHAR LIMIT=NONE] -->
- <string name="location_off_summary">Off</string>
-
<!-- Backup disabled summary [CHAR LIMIT=NONE] -->
<string name="backup_disabled">Back up disabled</string>
@@ -9957,15 +9964,6 @@
<!-- UI debug setting: ANGLE enabled app has been set [CHAR LIMIT=NONE] -->
<string name="angle_enabled_app_set">ANGLE enabled application: <xliff:g id="app_name" example="com.company.app">%1$s</xliff:g></string>
- <!-- Title for Directory Access settings -->
- <string name="directory_access">Directory access</string>
- <!-- Keywords for Directory Access settings -->
- <string name="keywords_directory_access">directory access</string>
-
- <!-- String used to describe the name of a directory in a volume; it must
- show both names, with the directory name wrapped in parenthesis -->
- <string name="directory_on_volume"><xliff:g id="volume" example="SD Card">%1$s</xliff:g> (<xliff:g id="directory" example="Movies">%2$s</xliff:g>)</string>
-
<!-- Slices Strings -->
<!-- Summary text on a card explaining that a setting does not exist / is not supported on the device [CHAR_LIMIT=NONE]-->
@@ -10003,11 +10001,6 @@
<!-- Title for preference showing the name of the device. [CHAR LIMIT=60]-->
<string name="my_device_info_device_name_preference_title">Device name</string>
- <!-- Settings item title for automatic Bluetooth on while driving preference [CHAR LIMIT=35] -->
- <string name="bluetooth_on_while_driving_pref">Use Bluetooth when driving</string>
- <!-- Settings item summary for automatic Bluetooth on while driving preference [CHAR LIMIT=100] -->
- <string name="bluetooth_on_while_driving_summary">Turn on Bluetooth automatically when driving</string>
-
<!-- Title for Wifi Access settings [CHAR LIMIT=35] -->
<string name="change_wifi_state_title">Wi-Fi control</string>
@@ -10053,7 +10046,7 @@
<!-- Title for prevent ringing gesture screen -->
<string name="gesture_prevent_ringing_screen_title">Prevent ringing</string>
<!-- Title for prevent ringing setting -->
- <string name="gesture_prevent_ringing_title">Press Power & Volume Up together</string>
+ <string name="gesture_prevent_ringing_title">Press Power & Volume Up together to</string>
<!-- Title for prevent ringing setting -->
<string name="gesture_prevent_ringing_sound_title">Shortcut to prevent ringing</string>
<!-- Option for prevent ringing setting -->
@@ -10078,12 +10071,6 @@
<!-- Title for Connected device shortcut [CHAR LIMIT=30] -->
<string name="devices_title">Devices</string>
- <!-- UI debug setting: Enable High Refresh Rate virtual panel [CHAR LIMIT=25] -->
- <string name="high_frequency_display_device_title">High Frequency Panel</string>
-
- <!-- UI debug setting: Enable High Refresh Rate virtual panel [CHAR LIMIT=50] -->
- <string name="high_frequency_display_device_summary">Enable Virtual High Frequency Panel</string>
-
<!-- Homepage bottom menu. Title for display all Settings [CHAR LIMIT=30] -->
<string name="homepage_all_settings">All Settings</string>
@@ -10186,9 +10173,6 @@
<!-- Text for Network global [CHAR LIMIT=NONE] -->
<string name="network_global">Global</string>
- <!-- Configuration setting for world mode Format is <true;GID if any to be checked> [CHAR LIMIT=NONE] -->
- <string translatable="false" name="config_world_mode"/>
-
<!-- Available networks screen title/heading [CHAR LIMIT=NONE] -->
<string name="label_available">Available networks</string>
<!-- Mobile network settings screen, toast when searching for available networks [CHAR LIMIT=NONE] -->
@@ -10255,6 +10239,36 @@
<!-- Mobile network settings screen, message asking the user to check their pricing with their Carrier, when enabling Data roaming. [CHAR LIMIT=NONE] -->
<string name="roaming_check_price_warning">Check with your network provider for pricing.</string>
+ <!-- Title for mobile data preference, to display the mobile data usage for each app. [CHAR LIMIT=NONE]-->
+ <string name="mobile_data_usage_title">App data usage</string>
+ <!-- Summary to show the current network mode is invalid. [CHAR LIMIT=NONE]-->
+ <string name="mobile_network_mode_error">Invalid Network Mode <xliff:g id="networkModeId" example="0">%1$d</xliff:g>. Ignore.</string>
+ <!-- Title for Apn settings in mobile network settings [CHAR LIMIT=60] -->
+ <string name="mobile_network_apn_title">Access Point Names</string>
+
<!-- Available networks screen, summary when button disallowed due to permanent automatic mode [CHAR LIMIT=NONE] -->
<string name="manual_mode_disallowed_summary">Unavailable when connected to <xliff:g id="carrier" example="verizon">%1$s</xliff:g></string>
+
+ <!-- Used for EmergencyInfoSlice slice helper class -->
+ <string name="emergency_info_contextual_card_summary" translatable="false">Medical info, emergency contacts</string>
+
+ <!-- See more items in contextual homepage [CHAR LIMIT=30]-->
+ <string name="see_more">See more</string>
+ <!-- See less items in contextual homepage [CHAR LIMIT=30]-->
+ <string name="see_less">See less</string>
+
+ <!-- Title for Network connection request Dialog [CHAR LIMIT=30] -->
+ <string name="network_connection_request_dialog_title">Choose device</string>
+
+ <plurals name="show_connected_devices">
+ <item quantity="one"><xliff:g id="number_device_count">%1$d</xliff:g> device connected</item>
+ <item quantity="other"><xliff:g id="number_device_count">%1$d</xliff:g> devices connected</item>
+ </plurals>
+ <!-- Title for no connected devices in connected device slice. [CHAR LIMIT=NONE] -->
+ <string name="no_connected_devices">No connected devices</string>
+
+ <!-- UI debug setting: force desktop mode [CHAR LIMIT=50] -->
+ <string name="force_desktop_mode">Force desktop mode</string>
+ <!-- UI debug setting: force desktop mode summary [CHAR LIMIT=150] -->
+ <string name="force_desktop_mode_summary">Force experimental desktop mode on secondary displays</string>
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index b096cf8..a954c5e 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -308,10 +308,21 @@
<item name="android:textColor">?android:attr/colorAccent</item>
</style>
+ <style name="TextAppearance.ConditionCardTitle"
+ parent="@android:style/TextAppearance.Material.Body2">
+ <item name="android:textSize">16sp</item>
+ </style>
+
+ <style name="TextAppearance.ConditionCardSummary"
+ parent="@android:style/TextAppearance.Material.Body1">
+ <item name="android:textColor">?android:attr/textColorSecondary</item>
+ </style>
+
<style name="TextAppearance.EntityHeaderTitle"
parent="@android:style/TextAppearance.Material.Subhead">
+ <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
<item name="android:textColor">?android:attr/textColorPrimary</item>
- <item name="android:textSize">16sp</item>
+ <item name="android:textSize">20sp</item>
</style>
<style name="TextAppearance.EntityHeaderSummary"
@@ -321,6 +332,7 @@
<item name="android:gravity">start</item>
<item name="android:singleLine">true</item>
<item name="android:ellipsize">marquee</item>
+ <item name="android:textSize">14sp</item>
</style>
<style name="TextAppearance.ZenOnboardingButton">
@@ -333,10 +345,6 @@
<item name="android:padding">8dp</item>
</style>
- <style name="SuggestionConditionStyle">
- <item name="android:background">?android:attr/colorPrimary</item>
- </style>
-
<style name="SuggestionCardText">
<item name="android:textAlignment">viewStart</item>
</style>
@@ -344,16 +352,8 @@
<style name="SuggestionCardIcon">
<item name="android:layout_centerHorizontal">false</item>
<item name="android:layout_alignParentStart">true</item>
- <item name="android:layout_marginStart">@dimen/suggestion_card_icon_side_margin</item>
- <item name="android:layout_marginEnd">@dimen/suggestion_card_icon_side_margin</item>
- </style>
-
- <style name="SuggestionCardButton">
- <item name="android:layout_gravity">start</item>
- <item name="android:layout_marginStart">@dimen/suggestion_card_button_side_margin</item>
- <item name="android:layout_marginEnd">@dimen/suggestion_card_button_side_margin</item>
- <item name="android:layout_marginTop">@dimen/suggestion_card_button_top_margin</item>
- <item name="android:layout_marginBottom">@dimen/suggestion_card_button_bottom_margin</item>
+ <item name="android:layout_marginStart">12dp</item>
+ <item name="android:layout_marginEnd">12dp</item>
</style>
<style name="FingerprintLayoutTheme">
@@ -399,12 +399,10 @@
</style>
<style name="EntityHeader">
- <item name="android:background">?android:attr/colorPrimary</item>
- <item name="android:gravity">center_horizontal</item>
- <item name="android:paddingTop">16dp</item>
- <item name="android:paddingStart">16dp</item>
+ <item name="android:background">?android:attr/colorPrimaryDark</item>
+ <item name="android:paddingTop">24dp</item>
+ <item name="android:paddingBottom">16dp</item>
<item name="android:paddingEnd">16dp</item>
- <item name="android:paddingBottom">8dp</item>
</style>
<style name="ActionPrimaryButton" parent="android:Widget.DeviceDefault.Button.Colored"/>
@@ -458,4 +456,33 @@
<item name="android:paddingBottom">24dp</item>
</style>
+ <style name="ContextualCardStyle">
+ <item name="android:layout_marginTop">@dimen/homepage_card_vertical_margin</item>
+ <item name="android:layout_marginBottom">@dimen/homepage_card_vertical_margin</item>
+ <item name="android:layout_marginStart">@dimen/homepage_card_side_margin</item>
+ <item name="android:layout_marginEnd">@dimen/homepage_card_side_margin</item>
+ <item name="cardCornerRadius">@dimen/homepage_card_corner_radius</item>
+ <item name="cardElevation">@dimen/homepage_card_elevation</item>
+ </style>
+
+ <style name="ConditionCardBorderlessButton"
+ parent="android:Widget.DeviceDefault.Button.Borderless">
+ <item name="android:textColor">?android:attr/colorAccent</item>
+ <item name="android:textSize">14sp</item>
+ <item name="android:textAllCaps">false</item>
+ <item name="android:fontFamily">sans-serif-medium</item>
+ </style>
+
+ <style name="ConditionHalfCardBorderlessButton"
+ parent="@style/ConditionCardBorderlessButton">
+ <item name="android:textAlignment">viewStart</item>
+ <item name="android:paddingStart">0dp</item>
+ </style>
+
+ <style name="ConditionFullCardBorderlessButton"
+ parent="@style/ConditionCardBorderlessButton">
+ <item name="android:textAlignment">viewEnd</item>
+ <item name="android:paddingEnd">0dp</item>
+ </style>
+
</resources>
diff --git a/res/values/themes_suw.xml b/res/values/themes_suw.xml
index f09b2b1..e0d25c9 100644
--- a/res/values/themes_suw.xml
+++ b/res/values/themes_suw.xml
@@ -17,7 +17,7 @@
<!-- SUW related themes -->
<resources>
- <style name="GlifTheme" parent="SuwThemeGlif">
+ <style name="GlifTheme" parent="SuwThemeGlif.DayNight">
<!-- For all AndroidX Alert Dialogs -->
<item name="alertDialogTheme">@style/ThemeOverlay.AlertDialog</item>
<item name="android:windowBackground">?android:attr/colorBackground</item>
@@ -55,7 +55,7 @@
<item name="*android:colorError">@color/glif_error_color</item>
</style>
- <style name="GlifV2Theme" parent="SuwThemeGlifV2">
+ <style name="GlifV2Theme" parent="SuwThemeGlifV2.DayNight">
<!-- For all AndroidX Alert Dialogs -->
<item name="alertDialogTheme">@style/GlifV2ThemeAlertDialog</item>
<item name="android:windowBackground">?android:attr/colorBackground</item>
@@ -93,7 +93,7 @@
<item name="*android:colorError">@color/glif_error_color</item>
</style>
- <style name="GlifV3Theme" parent="SuwThemeGlifV3">
+ <style name="GlifV3Theme" parent="SuwThemeGlifV3.DayNight">
<!-- For all AndroidX Alert Dialogs -->
<item name="alertDialogTheme">@style/GlifV2ThemeAlertDialog</item>
<item name="android:windowBackground">?android:attr/colorBackground</item>
@@ -183,7 +183,6 @@
<!-- Accessibility portion of Setup Wizard -->
<style name="SetupWizardAccessibilityTheme" parent="Theme.SettingsBase">
- <item name="android:windowLightStatusBar">false</item>
<item name="android:colorPrimary">@color/material_grey_100</item>
<item name="android:colorAccent">@color/material_blue_700</item>
<item name="android:titleTextColor">@color/material_blue_700</item>
diff --git a/res/xml/app_storage_settings.xml b/res/xml/app_storage_settings.xml
index ba18b1f..cbde0ca 100644
--- a/res/xml/app_storage_settings.xml
+++ b/res/xml/app_storage_settings.xml
@@ -75,7 +75,7 @@
<PreferenceCategory
android:key="uri_category"
- android:layout="@layout/headerless_preference_category"
+ android:layout="@layout/preference_category_no_label"
settings:allowDividerAbove="false"
settings:allowDividerBelow="false">
<com.android.settings.applications.LayoutPreference
diff --git a/res/xml/cdma_options.xml b/res/xml/cdma_options.xml
deleted file mode 100644
index 202187c..0000000
--- a/res/xml/cdma_options.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2008 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">
-
- <com.android.settings.network.telephony.CdmaSystemSelectListPreference
- 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" />
-
- <com.android.settings.network.telephony.CdmaSubscriptionListPreference
- 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" />
-
- <!--We want separate APN setting from reset of settings because-->
- <!--we want user to change it with caution.-->
- <PreferenceCategory
- android:key="category_cdma_apn_key">
- <!-- The launching Intent will be defined thru code as we need to pass some Extra -->
- <com.android.settingslib.RestrictedPreference
- android:key="button_cdma_apn_key"
- android:title="@string/apn_settings"
- android:persistent="false"/>
- </PreferenceCategory>
-
- <Preference
- android:key="carrier_settings_key"
- android:title="@string/carrier_settings_title">
- <!-- b/114749736, create a preference controller to build intent -->
- </Preference>
-
-</PreferenceScreen>
diff --git a/res/xml/connected_devices_advanced.xml b/res/xml/connected_devices_advanced.xml
index a959d02..b5d2a99 100644
--- a/res/xml/connected_devices_advanced.xml
+++ b/res/xml/connected_devices_advanced.xml
@@ -44,14 +44,6 @@
android:icon="@drawable/ic_android"
android:order="-6"/>
- <SwitchPreference
- android:key="bluetooth_on_while_driving"
- android:title="@string/bluetooth_on_while_driving_pref"
- android:icon="@drawable/ic_settings_bluetooth"
- android:summary="@string/bluetooth_on_while_driving_summary"
- settings:controller="com.android.settings.connecteddevice.BluetoothOnWhileDrivingPreferenceController"
- android:order="-4"/>
-
<com.android.settingslib.RestrictedPreference
android:key="connected_device_printing"
android:title="@string/print_settings"
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index 5a36463..49018f8 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -364,11 +364,6 @@
android:entries="@array/overlay_display_devices_entries"
android:entryValues="@array/overlay_display_devices_values" />
- <SwitchPreference
- android:key="high_frequency_display_device"
- android:title="@string/high_frequency_display_device_title"
- android:summary="@string/high_frequency_display_device_summary" />
-
<com.android.settings.display.DensityPreference
android:key="density"
android:title="@string/developer_smallest_width" />
@@ -515,9 +510,19 @@
android:title="@string/enable_freeform_support"
android:summary="@string/enable_freeform_support_summary" />
+ <SwitchPreference
+ android:key="force_desktop_mode_on_external_displays"
+ android:title="@string/force_desktop_mode"
+ android:summary="@string/force_desktop_mode_summary" />
+
<Preference
android:key="reset_shortcut_manager_throttling"
android:title="@string/reset_shortcut_manager_throttling" />
+
+ <SwitchPreference
+ android:key="sms_access_restriction_enabled"
+ android:title="@string/sms_access_restriction_enabled"
+ android:summary="@string/sms_access_restriction_enabled_summary" />
</PreferenceCategory>
<com.android.settings.development.autofill.AutofillPreferenceCategory
diff --git a/res/xml/directory_access_details.xml b/res/xml/directory_access_details.xml
deleted file mode 100644
index 4448ba6..0000000
--- a/res/xml/directory_access_details.xml
+++ /dev/null
@@ -1,20 +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="directory_access_details"
- android:title="@string/directory_access"/>
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index db4e7d8..b0e362c 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -52,7 +52,7 @@
android:title="@string/wallpaper_settings_title"
settings:keywords="@string/keywords_display_wallpaper"
settings:useAdminDisabledSummary="true"
- settings:searchable="false">
+ settings:controller="com.android.settings.display.WallpaperPreferenceController">
<intent
android:targetPackage="@string/config_wallpaper_picker_package"
android:targetClass="@string/config_wallpaper_picker_class" />
diff --git a/res/xml/gsm_umts_options.xml b/res/xml/gsm_umts_options.xml
deleted file mode 100644
index f5439a4..0000000
--- a/res/xml/gsm_umts_options.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2008 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">
-
- <com.android.settings.network.telephony.NetworkOperators
- android:key="network_operators_category_key"
- android:title="@string/network_operator_category"
- android:persistent="false">
-
- <SwitchPreference
- android:key="button_auto_select_key"
- android:title="@string/select_automatically"
- android:persistent="false"/>
-
- <com.android.settings.mobilenetwork.NetworkSelectListPreference
- android:key="button_network_select_key"
- android:title="@string/network_select_title"
- android:persistent="false"/>
-
- <Preference
- android:key="button_choose_network_key"
- android:title="@string/choose_network_title"
- android:fragment="com.android.phone.NetworkSelectSetting" />
- </com.android.settings.network.telephony.NetworkOperators>
-
- <!--We want separate APN setting from reset of settings because-->
- <!--we want user to change it with caution.-->
- <PreferenceCategory
- android:key="category_gsm_apn_key"
- android:layout="@layout/preference_category_no_label">
-
- <com.android.settingslib.RestrictedPreference
- android:key="button_gsm_apn_key"
- android:title="@string/apn_settings"
- android:persistent="false" />
- </PreferenceCategory>
-
- <PreferenceScreen
- android:key="carrier_settings_key"
- android:title="@string/carrier_settings_title">
- <!-- b/114749736, create a preference controller to build intent -->
- </PreferenceScreen>
-
-</PreferenceScreen>
diff --git a/res/xml/installed_app_details.xml b/res/xml/installed_app_details.xml
deleted file mode 100644
index 42822c0..0000000
--- a/res/xml/installed_app_details.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2016 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:app="http://schemas.android.com/apk/res-auto"
- android:key="installed_app_detail_settings_screen"
- app:initialExpandedChildrenCount="6">
-
- <com.android.settings.applications.LayoutPreference
- android:key="header_view"
- android:layout="@layout/settings_entity_header"
- android:selectable="false"
- android:order="-10000"/>
-
- <com.android.settings.applications.LayoutPreference
- android:key="instant_app_buttons"
- android:layout="@layout/instant_app_buttons"
- android:selectable="false"
- android:order="-9999"/>
-
- <com.android.settings.widget.ActionButtonPreference
- android:key="action_buttons"
- android:order="-9998" />
-
- <Preference
- android:key="notification_settings"
- android:title="@string/notifications_label"
- android:selectable="true"/>
-
- <com.android.settings.widget.FixedLineSummaryPreference
- android:key="permission_settings"
- android:title="@string/permissions_label"
- android:summary="@string/summary_placeholder"
- android:selectable="true"
- app:summaryLineCount="1" />
-
- <Preference
- android:key="storage_settings"
- android:title="@string/storage_settings"
- android:summary="@string/summary_placeholder"
- android:selectable="true"/>
-
- <com.android.settings.applications.AppDomainsPreference
- android:key="instant_app_launch_supported_domain_urls"
- android:title="@string/app_launch_supported_domain_urls_title"
- android:selectable="true" />
-
- <Preference
- android:key="data_settings"
- android:title="@string/data_usage_summary_title"
- android:summary="@string/summary_placeholder"
- android:selectable="true"/>
-
- <Preference
- android:key="battery"
- android:title="@string/power_usage_summary_title"
- android:summary="@string/summary_placeholder"
- android:selectable="true"/>
-
- <Preference
- android:key="preferred_settings"
- android:title="@string/launch_by_default"
- android:summary="@string/summary_placeholder"
- android:selectable="true"/>
-
- <Preference
- android:key="memory"
- android:title="@string/memory_settings_title"
- android:summary="@string/summary_placeholder"
- android:enabled="false"
- android:selectable="true"/>
-
- <Preference
- android:key="app_version"
- android:selectable="false"
- android:order="9999"/>
-
-</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/mobile_network_settings.xml b/res/xml/mobile_network_settings.xml
new file mode 100644
index 0000000..cc914ad
--- /dev/null
+++ b/res/xml/mobile_network_settings.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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"
+ android:title="@string/network_settings_title"
+ settings:initialExpandedChildrenCount="4">
+
+ <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:controller="com.android.settings.network.telephony.Enhanced4gLtePreferenceController"/>
+
+ <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" />
+
+ <PreferenceCategory
+ android:key="calling_category"
+ android:title="@string/call_category">
+
+ <PreferenceScreen
+ android:key="wifi_calling_key"
+ android:title="@string/wifi_calling_settings_title"
+ 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>
+
+</PreferenceScreen>
diff --git a/res/xml/network_and_internet_v2.xml b/res/xml/network_and_internet_v2.xml
new file mode 100644
index 0000000..680b268
--- /dev/null
+++ b/res/xml/network_and_internet_v2.xml
@@ -0,0 +1,100 @@
+<?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">
+
+ <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">
+ <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"
+ 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.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.RestrictedSwitchPreference
+ android:key="toggle_airplane"
+ 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:platform_slice="true"
+ settings:userRestriction="no_airplane_mode"/>
+
+ <Preference
+ android:fragment="com.android.settings.ProxySelector"
+ android:key="proxy_settings"
+ android:title="@string/proxy_settings_title" />
+
+ <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: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="15"
+ 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/network_setting_fragment.xml b/res/xml/network_setting_fragment.xml
deleted file mode 100644
index 413e670..0000000
--- a/res/xml/network_setting_fragment.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 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"
- android:title="@string/network_settings_title"
- settings:initialExpandedChildrenCount="4">
-
- <PreferenceScreen
- android:key="cdma_lte_data_service_key"
- android:title="@string/cdma_lte_data_service">
- </PreferenceScreen>
-
- <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"/>
-
- <com.android.settings.network.telephony.DataUsagePreference
- android:key="data_usage_summary"
- android:title="@string/data_usage_title" />
-
- <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"/>
-
- <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" />
-
- <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" />
-
- <Preference
- android:key="carrier_settings_euicc_key"
- android:title="@string/carrier_settings_euicc" />
-
- <PreferenceCategory
- android:key="calling"
- android:title="@string/call_category">
-
- <PreferenceScreen
- android:key="wifi_calling_key"
- android:title="@string/wifi_calling_settings_title">
-
- <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"/>
-
- </PreferenceCategory>
-
-</PreferenceScreen>
diff --git a/res/xml/prevent_ringing_gesture_settings.xml b/res/xml/prevent_ringing_gesture_settings.xml
index 5135664..62f0223 100644
--- a/res/xml/prevent_ringing_gesture_settings.xml
+++ b/res/xml/prevent_ringing_gesture_settings.xml
@@ -26,13 +26,8 @@
app:animation="@raw/gesture_prevent_ringing"
app:preview="@drawable/gesture_prevent_ringing" />
- <ListPreference
- android:key="gesture_prevent_ringing"
- android:title="@string/gesture_prevent_ringing_title"
- android:entries="@array/gesture_prevent_ringing_entries"
- android:entryValues="@array/gesture_prevent_ringing_values"
- app:controller="com.android.settings.gestures.PreventRingingPreferenceController"
- app:keywords="@string/keywords_gesture"
- app:allowDividerAbove="true" />
-
+ <PreferenceCategory
+ android:key="gesture_prevent_ringing_category"
+ android:title="@string/gesture_prevent_ringing_title">
+ </PreferenceCategory>
</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/print_job_settings.xml b/res/xml/print_job_settings.xml
index 32a80a7..877cd62 100644
--- a/res/xml/print_job_settings.xml
+++ b/res/xml/print_job_settings.xml
@@ -19,13 +19,16 @@
android:title="@string/print_print_job">
<Preference
- android:key="print_job_preference">
+ android:key="print_job_preference"
+ android:title="@string/print_print_job"
+ settings:controller="com.android.settings.print.PrintJobPreferenceController">
</Preference>
<Preference
android:key="print_job_message_preference"
android:layout="@layout/print_job_summary"
- android:selectable="false">
+ android:selectable="false"
+ settings:controller="com.android.settings.print.PrintJobMessagePreferenceController">
</Preference>
</PreferenceScreen>
diff --git a/res/xml/security_dashboard_settings.xml b/res/xml/security_dashboard_settings.xml
index e543ad9..ce271cc 100644
--- a/res/xml/security_dashboard_settings.xml
+++ b/res/xml/security_dashboard_settings.xml
@@ -95,12 +95,6 @@
android:key="security_settings_misc_category"
android:title="@string/security_passwords_title">
- <Preference
- android:key="location"
- android:title="@string/location_settings_title"
- android:summary="@string/summary_placeholder"
- android:fragment="com.android.settings.location.LocationSettings" />
-
<SwitchPreference
android:key="show_password"
android:title="@string/show_password"
diff --git a/res/xml/special_access.xml b/res/xml/special_access.xml
index a6c2159..57e673f 100644
--- a/res/xml/special_access.xml
+++ b/res/xml/special_access.xml
@@ -121,16 +121,6 @@
</Preference>
<Preference
- android:key="special_app_directory_access"
- android:title="@string/directory_access"
- android:fragment="com.android.settings.applications.manageapplications.ManageApplications"
- settings:keywords="@string/keywords_directory_access">
- <extra
- android:name="classname"
- android:value="com.android.settings.Settings$DirectoryAccessSettingsActivity" />
- </Preference>
-
- <Preference
android:key="change_wifi_state"
android:title="@string/change_wifi_state_title"
android:fragment="com.android.settings.applications.manageapplications.ManageApplications"
diff --git a/res/xml/top_level_settings.xml b/res/xml/top_level_settings.xml
index dbb106e..69c4bb8 100644
--- a/res/xml/top_level_settings.xml
+++ b/res/xml/top_level_settings.xml
@@ -26,7 +26,7 @@
android:title="@string/network_dashboard_title"
android:summary="@string/summary_placeholder"
android:icon="@drawable/ic_homepage_network"
- android:order="-110"
+ android:order="-120"
android:fragment="com.android.settings.network.NetworkDashboardFragment"
settings:controller="com.android.settings.network.TopLevelNetworkEntryPreferenceController"/>
@@ -35,7 +35,7 @@
android:title="@string/connected_devices_dashboard_title"
android:summary="@string/summary_placeholder"
android:icon="@drawable/ic_homepage_connected_device"
- android:order="-100"
+ android:order="-110"
android:fragment="com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment"
settings:controller="com.android.settings.connecteddevice.TopLevelConnectedDevicesPreferenceController"/>
@@ -44,7 +44,7 @@
android:title="@string/app_and_notification_dashboard_title"
android:summary="@string/app_and_notification_dashboard_summary"
android:icon="@drawable/ic_homepage_apps"
- android:order="-90"
+ android:order="-100"
android:fragment="com.android.settings.applications.AppAndNotificationDashboardFragment"/>
<Preference
@@ -53,23 +53,24 @@
android:summary="@string/summary_placeholder"
android:icon="@drawable/ic_homepage_battery"
android:fragment="com.android.settings.fuelgauge.PowerUsageSummary"
- android:order="-80"
+ android:order="-90"
settings:controller="com.android.settings.fuelgauge.TopLevelBatteryPreferenceController"/>
<Preference
android:key="top_level_display"
android:title="@string/display_settings"
- android:summary="@string/display_dashboard_summary"
+ android:summary="@string/summary_placeholder"
android:icon="@drawable/ic_homepage_display"
- android:order="-70"
- android:fragment="com.android.settings.DisplaySettings"/>
+ android:order="-80"
+ android:fragment="com.android.settings.DisplaySettings"
+ settings:controller="com.android.settings.display.TopLevelDisplayPreferenceController"/>
<Preference
android:key="top_level_sound"
android:title="@string/sound_settings"
android:summary="@string/sound_dashboard_summary"
android:icon="@drawable/ic_homepage_sound"
- android:order="-60"
+ android:order="-70"
android:fragment="com.android.settings.notification.SoundSettings"/>
<Preference
@@ -77,11 +78,19 @@
android:title="@string/storage_settings"
android:summary="@string/summary_placeholder"
android:icon="@drawable/ic_homepage_storage"
- android:order="-50"
+ android:order="-60"
android:fragment="com.android.settings.deviceinfo.StorageSettings"
settings:controller="com.android.settings.deviceinfo.TopLevelStoragePreferenceController"/>
<Preference
+ android:key="top_level_location"
+ android:title="@string/location_settings_title"
+ android:summary="@string/location_settings_summary"
+ android:icon="@drawable/ic_homepage_location"
+ android:order="-50"
+ android:fragment="com.android.settings.location.LocationSettings"/>
+
+ <Preference
android:key="top_level_security"
android:title="@string/security_settings_title"
android:summary="@string/summary_placeholder"
@@ -112,10 +121,19 @@
android:title="@string/header_category_system"
android:summary="@string/system_dashboard_summary"
android:icon="@drawable/ic_homepage_system_dashboard"
- android:order="-10"
+ android:order="10"
android:fragment="com.android.settings.system.SystemDashboardFragment"/>
<Preference
+ android:key="top_level_about_device"
+ android:title="@string/about_settings"
+ android:summary="@string/summary_placeholder"
+ android:icon="@drawable/ic_homepage_about"
+ android:order="20"
+ android:fragment="com.android.settings.deviceinfo.aboutphone.MyDeviceInfoFragment"
+ settings:controller="com.android.settings.deviceinfo.aboutphone.TopLevelAboutDevicePreferenceController"/>
+
+ <Preference
android:key="top_level_support"
android:summary="@string/support_summary"
android:title="@string/page_tab_title_support"
diff --git a/res/xml/tts_settings.xml b/res/xml/tts_settings.xml
index 4a24154..e76cdb7 100644
--- a/res/xml/tts_settings.xml
+++ b/res/xml/tts_settings.xml
@@ -20,21 +20,17 @@
android:key="tts_settings_screen"
android:title="@string/tts_settings_title">
- <PreferenceCategory android:key="tts_engine_section">
+ <com.android.settings.widget.GearPreference
+ android:key="tts_engine_preference"
+ android:title="@string/tts_engine_preference_title"
+ android:fragment="com.android.settings.tts.TtsEnginePreferenceFragment"
+ settings:searchable="false"/>
- <com.android.settings.widget.GearPreference
- android:key="tts_engine_preference"
- android:title="@string/tts_engine_preference_title"
- android:fragment="com.android.settings.tts.TtsEnginePreferenceFragment"
- settings:searchable="false"/>
-
- <ListPreference
- android:key="tts_default_lang"
- android:title="@string/tts_default_lang_title"
- android:summary="@string/tts_default_lang_summary"
- android:persistent="false" />
-
- </PreferenceCategory>
+ <ListPreference
+ android:key="tts_default_lang"
+ android:title="@string/tts_default_lang_title"
+ android:summary="@string/tts_default_lang_summary"
+ android:persistent="false" />
<PreferenceCategory android:key="tts_general_section">
diff --git a/res/xml/usb_details_fragment.xml b/res/xml/usb_details_fragment.xml
index 4efad6d..5c1efcf 100644
--- a/res/xml/usb_details_fragment.xml
+++ b/res/xml/usb_details_fragment.xml
@@ -36,9 +36,4 @@
<PreferenceCategory
android:key="usb_details_power_role"/>
- <!-- Empty category for spacing -->
- <PreferenceCategory
- android:key="usb_details_space"
- settings:allowDividerAbove="false"/>
-
</PreferenceScreen>
diff --git a/res/xml/user_settings.xml b/res/xml/user_settings.xml
index 934cb5a..b01e1f3 100644
--- a/res/xml/user_settings.xml
+++ b/res/xml/user_settings.xml
@@ -23,7 +23,8 @@
<PreferenceCategory
android:key="user_list"
android:title="@string/user_list_title"
- android:order="10">
+ android:order="10"
+ settings:searchable="false">
</PreferenceCategory>
<com.android.settingslib.RestrictedPreference
diff --git a/res/xml/wifi_network_details_fragment.xml b/res/xml/wifi_network_details_fragment.xml
index 5e2745a..7c8d9a0 100644
--- a/res/xml/wifi_network_details_fragment.xml
+++ b/res/xml/wifi_network_details_fragment.xml
@@ -56,6 +56,12 @@
android:title="@string/data_usage_metered_yes"
android:entries="@array/wifi_metered_entries"
android:entryValues="@array/wifi_metered_values"/>
+
+ <DropDownPreference
+ android:key="privacy"
+ android:title="@string/wifi_privacy_settings"
+ android:entries="@array/wifi_privacy_entries"
+ android:entryValues="@array/wifi_privacy_values"/>
</PreferenceCategory>
<!-- Network Details -->
diff --git a/res/xml/wifi_settings.xml b/res/xml/wifi_settings.xml
index 4ca9284..516ac0a 100644
--- a/res/xml/wifi_settings.xml
+++ b/res/xml/wifi_settings.xml
@@ -20,6 +20,9 @@
android:title="@string/wifi_settings"
settings:keywords="@string/keywords_wifi">
+ <com.android.settings.wifi.LinkablePreference
+ android:key="wifi_status_message"/>
+
<PreferenceCategory
android:key="connected_access_point"
android:layout="@layout/preference_category_no_label"/>
@@ -28,17 +31,14 @@
android:key="access_points"
android:layout="@layout/preference_category_no_label"/>
- <PreferenceCategory
- android:key="additional_settings"
- android:layout="@layout/preference_category_no_label">
- <Preference
- android:key="configure_settings"
- android:title="@string/wifi_configure_settings_preference_title"
- android:fragment="com.android.settings.wifi.ConfigureWifiSettings" />
+ <Preference
+ android:key="configure_settings"
+ android:title="@string/wifi_configure_settings_preference_title"
+ settings:allowDividerAbove="true"
+ android:fragment="com.android.settings.wifi.ConfigureWifiSettings"/>
- <Preference
- android:key="saved_networks"
- android:title="@string/wifi_saved_access_points_label"
- android:fragment="com.android.settings.wifi.savedaccesspoints.SavedAccessPointsWifiSettings" />
- </PreferenceCategory>
+ <Preference
+ android:key="saved_networks"
+ android:title="@string/wifi_saved_access_points_label"
+ android:fragment="com.android.settings.wifi.savedaccesspoints.SavedAccessPointsWifiSettings"/>
</PreferenceScreen>
diff --git a/res/xml/zen_mode_automation_settings.xml b/res/xml/zen_mode_automation_settings.xml
index 99826ea..dade454 100644
--- a/res/xml/zen_mode_automation_settings.xml
+++ b/res/xml/zen_mode_automation_settings.xml
@@ -19,9 +19,9 @@
android:key="zen_mode_automation_settings_page"
android:title="@string/zen_mode_automation_settings_page_title" >
-
<PreferenceCategory
- android:key="zen_mode_automatic_rules">
+ android:key="zen_mode_automatic_rules"
+ android:title="@string/zen_mode_schedule_title">
<!-- Rules added at runtime -->
</PreferenceCategory>
diff --git a/res/xml/zen_mode_calls_settings.xml b/res/xml/zen_mode_calls_settings.xml
index 2da022c..74b6986 100644
--- a/res/xml/zen_mode_calls_settings.xml
+++ b/res/xml/zen_mode_calls_settings.xml
@@ -17,6 +17,7 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="zen_mode_calls_settings_page"
android:title="@string/zen_mode_calls" >
diff --git a/res/xml/zen_mode_messages_settings.xml b/res/xml/zen_mode_messages_settings.xml
new file mode 100644
index 0000000..4ca6c92
--- /dev/null
+++ b/res/xml/zen_mode_messages_settings.xml
@@ -0,0 +1,40 @@
+<?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"
+ android:key="zen_mode_messages_settings_page"
+ android:title="@string/zen_mode_messages" >
+
+ <PreferenceCategory
+ android:title="@string/zen_mode_settings_category"
+ android:key="zen_mode_settings_category_messages">
+ <!-- Messages -->
+ <ListPreference
+ android:key="zen_mode_messages"
+ android:title="@string/zen_mode_messages_title"
+ android:entries="@array/zen_mode_contacts_entries"
+ android:entryValues="@array/zen_mode_contacts_values"/>
+
+ <Preference
+ android:key="zen_mode_starred_contacts_messages"
+ android:title="@string/zen_mode_starred_contacts_title"/>
+ </PreferenceCategory>
+
+ <com.android.settingslib.widget.FooterPreference/>
+
+</PreferenceScreen>
diff --git a/res/xml/zen_mode_msg_event_reminder_settings.xml b/res/xml/zen_mode_msg_event_reminder_settings.xml
deleted file mode 100644
index 8fc6b47..0000000
--- a/res/xml/zen_mode_msg_event_reminder_settings.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.
--->
-
-<PreferenceScreen
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:key="zen_mode_msg_event_reminder_settings_page"
- android:title="@string/zen_msg_event_reminder_title" >
-
- <PreferenceCategory
- android:title="@string/zen_mode_settings_category"
- android:key="zen_mode_settings_category_msg_event_reminder">
- <!-- Messages -->
- <ListPreference
- android:key="zen_mode_messages"
- android:title="@string/zen_mode_messages_title"
- android:entries="@array/zen_mode_contacts_entries"
- android:entryValues="@array/zen_mode_contacts_values"/>
-
- <Preference
- android:key="zen_mode_starred_contacts_messages"
- android:title="@string/zen_mode_starred_contacts_title"/>
-
- <!-- Reminders -->
- <SwitchPreference
- android:key="zen_mode_reminders"
- android:title="@string/zen_mode_reminders_title"/>
-
- <!-- Events -->
- <SwitchPreference
- android:key="zen_mode_events"
- android:title="@string/zen_mode_events_title"/>
- </PreferenceCategory>
-
- <com.android.settingslib.widget.FooterPreference />
-
-</PreferenceScreen>
diff --git a/res/xml/zen_mode_settings.xml b/res/xml/zen_mode_settings.xml
index b8af650..1966484 100644
--- a/res/xml/zen_mode_settings.xml
+++ b/res/xml/zen_mode_settings.xml
@@ -25,62 +25,59 @@
<PreferenceCategory
android:key="zen_mode_settings_category_behavior"
android:title="@string/zen_category_behavior">
- <!-- sound vibration -->
+ <!-- Calls -->
+ <Preference
+ android:key="zen_mode_behavior_calls"
+ android:title="@string/zen_mode_calls_title"
+ android:fragment="com.android.settings.notification.ZenModeCallsSettings" />
+
+ <!-- Messages -->
+ <Preference
+ android:key="zen_mode_behavior_messages"
+ android:title="@string/zen_mode_messages_title"
+ android:fragment="com.android.settings.notification.ZenModeMessagesSettings" />
+
+ <!-- Alarms -->
+ <SwitchPreference
+ android:key="zen_mode_behavior_alarms"
+ android:title="@string/zen_mode_alarms"/>
+
+ <!-- All sounds -->
<Preference
android:key="zen_sound_vibration_settings"
android:title="@string/zen_sound_title"
- android:fragment="com.android.settings.notification.ZenModeSoundVibrationSettings"/>
-
- <!-- What to block (effects) -->
- <Preference
- android:key="zen_mode_block_effects_settings"
- android:title="@string/zen_mode_restrict_notifications_title"
- android:fragment="com.android.settings.notification.ZenModeRestrictNotificationsSettings" />
+ android:fragment="com.android.settings.notification.ZenModeSoundVibrationSettings"
+ android:icon="@drawable/ic_chevron_right_24dp"/>
</PreferenceCategory>
- <PreferenceCategory
- android:key="zen_mode_settings_category_exceptions"
- android:title="@string/zen_category_exceptions">
- <Preference
- android:key="zen_mode_calls_settings"
- android:title="@string/zen_mode_calls"
- android:fragment="com.android.settings.notification.ZenModeCallsSettings" />
- <Preference
- android:key="zen_mode_msg_event_reminder_settings"
- android:title="@string/zen_msg_event_reminder_title"
- android:fragment="com.android.settings.notification.ZenModeMsgEventReminderSettings" />
+ <!-- What to block (effects) -->
+ <Preference
+ android:key="zen_mode_block_effects_settings"
+ android:title="@string/zen_mode_restrict_notifications_title"
+ android:fragment="com.android.settings.notification.ZenModeRestrictNotificationsSettings"
+ settings:allowDividerAbove="true"/>
- </PreferenceCategory>
+ <!-- DND duration settings -->
+ <com.android.settings.notification.ZenDurationDialogPreference
+ android:key="zen_mode_duration_settings"
+ android:title="@string/zen_mode_duration_settings_title"
+ android:widgetLayout="@null"/>
- <PreferenceCategory
- android:key="zen_mode_settings_category_schedule"
- android:title="@string/zen_category_schedule">
- <!-- DND duration settings -->
- <com.android.settings.notification.ZenDurationDialogPreference
- android:key="zen_mode_duration_settings"
- android:title="@string/zen_mode_duration_settings_title"
- android:widgetLayout="@null"/>
-
- <!-- Automatic rules -->
- <Preference
- android:key="zen_mode_automation_settings"
- android:title="@string/zen_mode_automation_settings_title"
- android:fragment="com.android.settings.notification.ZenModeAutomationSettings" />
- </PreferenceCategory>
+ <!-- Automatic rules -->
+ <Preference
+ android:key="zen_mode_automation_settings"
+ android:title="@string/zen_mode_automation_settings_title"
+ android:fragment="com.android.settings.notification.ZenModeAutomationSettings"/>
<!-- Turn on DND button -->
- <!-- Layout preference doesn't obey allowDividerAbove, so put it in a PreferenceCategory -->
- <PreferenceCategory
- android:key="zen_mode_settings_button_category">
- <com.android.settings.applications.LayoutPreference
- android:key="zen_mode_settings_button_container"
- android:selectable="false"
- android:layout="@layout/zen_mode_settings_button" />
- </PreferenceCategory>
+ <com.android.settings.applications.LayoutPreference
+ android:key="zen_mode_settings_button_container"
+ android:selectable="false"
+ android:layout="@layout/zen_mode_settings_button"
+ settings:allowDividerAbove="true"
+ settings:allowDividerBelow="true"/>
- <PreferenceCategory
- android:key="zen_mode_footer_container">
- <com.android.settingslib.widget.FooterPreference />
- </PreferenceCategory>
+ <!-- Footer that shows if user is put into alarms only or total silence mode by an app -->
+ <com.android.settingslib.widget.FooterPreference/>
</PreferenceScreen>
diff --git a/res/xml/zen_mode_sound_vibration_settings.xml b/res/xml/zen_mode_sound_vibration_settings.xml
index b3b8139..3d1da2f 100644
--- a/res/xml/zen_mode_sound_vibration_settings.xml
+++ b/res/xml/zen_mode_sound_vibration_settings.xml
@@ -18,11 +18,24 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:key="zen_mode_sound_vibration_settings_page"
- android:title="@string/zen_sound_title" >
+ android:title="@string/zen_category_exceptions" >
<PreferenceCategory
android:title="@string/zen_mode_settings_category"
android:key="zen_mode_settings_category_sound_vibration">
+
+ <!-- Calls -->
+ <Preference
+ android:key="zen_mode_calls_settings"
+ android:title="@string/zen_mode_calls_title"
+ android:fragment="com.android.settings.notification.ZenModeCallsSettings" />
+
+ <!-- Messages -->
+ <Preference
+ android:key="zen_mode_messages_settings"
+ android:title="@string/zen_mode_messages_title"
+ android:fragment="com.android.settings.notification.ZenModeMessagesSettings" />
+
<!-- Alarms -->
<SwitchPreference
android:key="zen_mode_alarms"
@@ -37,6 +50,18 @@
<SwitchPreference
android:key="zen_mode_system"
android:title="@string/zen_mode_system"/>
+
+ <!-- Reminders -->
+ <SwitchPreference
+ android:key="zen_mode_reminders"
+ android:title="@string/zen_mode_reminders"/>
+
+ <!-- Events -->
+ <SwitchPreference
+ android:key="zen_mode_events"
+ android:title="@string/zen_mode_events"/>
+
+ <!-- TODO: beverlyt, add "Allow apps to override" -->
</PreferenceCategory>
<com.android.settingslib.widget.FooterPreference/>
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index 75f13aa..6557aee 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -85,7 +85,6 @@
controllers.add(new TimeoutPreferenceController(context, KEY_SCREEN_TIMEOUT));
controllers.add(new VrDisplayPreferenceController(context));
controllers.add(new ShowOperatorNamePreferenceController(context));
- controllers.add(new WallpaperPreferenceController(context));
controllers.add(new ThemePreferenceController(context));
controllers.add(new BrightnessLevelPreferenceController(context, lifecycle));
return controllers;
diff --git a/src/com/android/settings/IccLockSettings.java b/src/com/android/settings/IccLockSettings.java
index 437f42e..1de7a10 100644
--- a/src/com/android/settings/IccLockSettings.java
+++ b/src/com/android/settings/IccLockSettings.java
@@ -20,7 +20,9 @@
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.content.res.Configuration;
import android.content.res.Resources;
+import android.graphics.PixelFormat;
import android.os.AsyncResult;
import android.os.Bundle;
import android.os.Handler;
@@ -30,9 +32,11 @@
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
+import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.WindowManager;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TabHost;
@@ -40,12 +44,14 @@
import android.widget.TabHost.TabContentFactory;
import android.widget.TabHost.TabSpec;
import android.widget.TabWidget;
+import android.widget.TextView;
import android.widget.Toast;
import androidx.preference.Preference;
import androidx.preference.SwitchPreference;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.internal.telephony.CommandException;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.TelephonyIntents;
@@ -117,13 +123,16 @@
private static final int MSG_CHANGE_ICC_PIN_COMPLETE = 101;
private static final int MSG_SIM_STATE_CHANGED = 102;
+ // @see android.widget.Toast$TN
+ private static final long LONG_DURATION_TIMEOUT = 7000;
+
// For replies from IccCard interface
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
AsyncResult ar = (AsyncResult) msg.obj;
switch (msg.what) {
case MSG_ENABLE_ICC_PIN_COMPLETE:
- iccLockChanged(ar.exception == null, msg.arg1);
+ iccLockChanged(ar.exception == null, msg.arg1, ar.exception);
break;
case MSG_CHANGE_ICC_PIN_COMPLETE:
iccPinChanged(ar.exception == null, msg.arg1);
@@ -453,22 +462,79 @@
mPinToggle.setEnabled(false);
}
- private void iccLockChanged(boolean success, int attemptsRemaining) {
+ private void iccLockChanged(boolean success, int attemptsRemaining, Throwable exception) {
if (success) {
mPinToggle.setChecked(mToState);
} else {
- Toast.makeText(getContext(), getPinPasswordErrorMessage(attemptsRemaining),
- Toast.LENGTH_LONG).show();
+ if (exception instanceof CommandException) {
+ CommandException.Error err = ((CommandException)(exception)).getCommandError();
+ if (err == CommandException.Error.PASSWORD_INCORRECT) {
+ createCustomTextToast(getPinPasswordErrorMessage(attemptsRemaining));
+ } else {
+ if (mToState) {
+ Toast.makeText(getContext(), mRes.getString
+ (R.string.sim_pin_enable_failed), Toast.LENGTH_LONG).show();
+ } else {
+ Toast.makeText(getContext(), mRes.getString
+ (R.string.sim_pin_disable_failed), Toast.LENGTH_LONG).show();
+ }
+ }
+ }
}
mPinToggle.setEnabled(true);
resetDialogState();
}
+ private void createCustomTextToast(CharSequence errorMessage) {
+ // Cannot overlay Toast on PUK unlock screen.
+ // The window type of Toast is set by NotificationManagerService.
+ // It can't be overwritten by LayoutParams.type.
+ // Ovarlay a custom window with LayoutParams (TYPE_STATUS_BAR_PANEL) on PUK unlock screen.
+ View v = ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE))
+ .inflate(com.android.internal.R.layout.transient_notification, null);
+ TextView tv = (TextView) v.findViewById(com.android.internal.R.id.message);
+ tv.setText(errorMessage);
+
+ final WindowManager.LayoutParams params = new WindowManager.LayoutParams();
+ final Configuration config = v.getContext().getResources().getConfiguration();
+ final int gravity = Gravity.getAbsoluteGravity(
+ getContext().getResources().getInteger(
+ com.android.internal.R.integer.config_toastDefaultGravity),
+ config.getLayoutDirection());
+ params.gravity = gravity;
+ if ((gravity & Gravity.HORIZONTAL_GRAVITY_MASK) == Gravity.FILL_HORIZONTAL) {
+ params.horizontalWeight = 1.0f;
+ }
+ if ((gravity & Gravity.VERTICAL_GRAVITY_MASK) == Gravity.FILL_VERTICAL) {
+ params.verticalWeight = 1.0f;
+ }
+ params.y = getContext().getResources().getDimensionPixelSize(
+ com.android.internal.R.dimen.toast_y_offset);
+
+ params.height = WindowManager.LayoutParams.WRAP_CONTENT;
+ params.width = WindowManager.LayoutParams.WRAP_CONTENT;
+ params.format = PixelFormat.TRANSLUCENT;
+ params.windowAnimations = com.android.internal.R.style.Animation_Toast;
+ params.type = WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL;
+ params.setTitle(errorMessage);
+ params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
+ | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
+ | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
+
+ WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
+ wm.addView(v, params);
+
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ wm.removeViewImmediate(v);
+ }
+ }, LONG_DURATION_TIMEOUT);
+ }
+
private void iccPinChanged(boolean success, int attemptsRemaining) {
if (!success) {
- Toast.makeText(getContext(), getPinPasswordErrorMessage(attemptsRemaining),
- Toast.LENGTH_LONG)
- .show();
+ createCustomTextToast(getPinPasswordErrorMessage(attemptsRemaining));
} else {
Toast.makeText(getContext(), mRes.getString(R.string.sim_change_succeeded),
Toast.LENGTH_SHORT)
diff --git a/src/com/android/settings/ProxySelector.java b/src/com/android/settings/ProxySelector.java
index 774e47c..4bd4585 100644
--- a/src/com/android/settings/ProxySelector.java
+++ b/src/com/android/settings/ProxySelector.java
@@ -113,7 +113,7 @@
if (mDialogFragment != null) {
Log.e(TAG, "Old dialog fragment not null!");
}
- mDialogFragment = new SettingsDialogFragment(this, dialogId);
+ mDialogFragment = SettingsDialogFragment.newInstance(this, dialogId);
mDialogFragment.show(getActivity().getSupportFragmentManager(), Integer.toString(dialogId));
}
diff --git a/src/com/android/settings/RadioInfo.java b/src/com/android/settings/RadioInfo.java
index b47ecd7..18c83f4 100644
--- a/src/com/android/settings/RadioInfo.java
+++ b/src/com/android/settings/RadioInfo.java
@@ -35,6 +35,7 @@
import android.net.TrafficStats;
import android.net.Uri;
import android.os.AsyncResult;
+import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -1359,25 +1360,26 @@
imsVolteProvisionedSwitch.setOnCheckedChangeListener(null);
imsVolteProvisionedSwitch.setChecked(isImsVolteProvisioned());
imsVolteProvisionedSwitch.setOnCheckedChangeListener(mImsVolteCheckedChangeListener);
- imsVolteProvisionedSwitch.setEnabled(
- mImsManager.isVolteEnabledByPlatform(phone.getContext()));
+ imsVolteProvisionedSwitch.setEnabled(!Build.IS_USER
+ && mImsManager.isVolteEnabledByPlatform(phone.getContext()));
imsVtProvisionedSwitch.setOnCheckedChangeListener(null);
imsVtProvisionedSwitch.setChecked(isImsVtProvisioned());
imsVtProvisionedSwitch.setOnCheckedChangeListener(mImsVtCheckedChangeListener);
- imsVtProvisionedSwitch.setEnabled(
- mImsManager.isVtEnabledByPlatform(phone.getContext()));
+ imsVtProvisionedSwitch.setEnabled(!Build.IS_USER
+ && mImsManager.isVtEnabledByPlatform(phone.getContext()));
imsWfcProvisionedSwitch.setOnCheckedChangeListener(null);
imsWfcProvisionedSwitch.setChecked(isImsWfcProvisioned());
imsWfcProvisionedSwitch.setOnCheckedChangeListener(mImsWfcCheckedChangeListener);
- imsWfcProvisionedSwitch.setEnabled(
- mImsManager.isWfcEnabledByPlatform(phone.getContext()));
+ imsWfcProvisionedSwitch.setEnabled(!Build.IS_USER
+ && mImsManager.isWfcEnabledByPlatform(phone.getContext()));
eabProvisionedSwitch.setOnCheckedChangeListener(null);
eabProvisionedSwitch.setChecked(isEabProvisioned());
eabProvisionedSwitch.setOnCheckedChangeListener(mEabCheckedChangeListener);
- eabProvisionedSwitch.setEnabled(isEabEnabledByPlatform(phone.getContext()));
+ eabProvisionedSwitch.setEnabled(!Build.IS_USER
+ && isEabEnabledByPlatform(phone.getContext()));
}
OnClickListener mDnsCheckButtonHandler = new OnClickListener() {
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 952c519..8cff5f1 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -120,7 +120,6 @@
public static class PhotosStorageActivity extends SettingsActivity {
/* empty */
}
- public static class DirectoryAccessSettingsActivity extends SettingsActivity { /* empty */ }
public static class ApnSettingsActivity extends SettingsActivity { /* empty */ }
public static class WifiCallingSettingsActivity extends SettingsActivity { /* empty */ }
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 9106fe4..8ed368c 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -16,8 +16,6 @@
package com.android.settings;
-import static android.view.View.IMPORTANT_FOR_ACCESSIBILITY_NO;
-
import android.app.ActionBar;
import android.app.ActivityManager;
import android.content.BroadcastReceiver;
@@ -61,8 +59,6 @@
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.core.gateway.SettingsGateway;
import com.android.settings.dashboard.DashboardFeatureProvider;
-import com.android.settings.dashboard.DashboardSummary;
-import com.android.settings.homepage.SettingsHomepageActivity;
import com.android.settings.homepage.TopLevelSettings;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.wfd.WifiDisplaySettings;
@@ -250,10 +246,8 @@
// Getting Intent properties can only be done after the super.onCreate(...)
final String initialFragmentName = intent.getStringExtra(EXTRA_SHOW_FRAGMENT);
- final ComponentName cn = intent.getComponent();
- final String className = cn.getClassName();
-
- mIsShowingDashboard = className.equals(Settings.class.getName());
+ mIsShowingDashboard = TextUtils.equals(
+ SettingsActivity.class.getName(), intent.getComponent().getClassName());
// This is a "Sub Settings" when:
// - this is a real SubSettings
@@ -296,9 +290,9 @@
deviceProvisioned ? View.VISIBLE : View.INVISIBLE);
findViewById(R.id.action_bar).setVisibility(View.GONE);
final Toolbar toolbar = findViewById(R.id.search_action_bar);
+ setActionBar(toolbar);
FeatureFactory.getFactory(this).getSearchFeatureProvider()
.initSearchToolbar(this, toolbar);
- setActionBar(toolbar);
}
ActionBar actionBar = getActionBar();
@@ -393,14 +387,9 @@
} else {
// Show search icon as up affordance if we are displaying the main Dashboard
mInitialTitleResId = R.string.dashboard_title;
+ switchToFragment(TopLevelSettings.class.getName(), null /* args */, false, false,
+ mInitialTitleResId, mInitialTitle, false);
- if (SettingsHomepageActivity.isDynamicHomepageEnabled(this)) {
- switchToFragment(TopLevelSettings.class.getName(), null /* args */, false, false,
- mInitialTitleResId, mInitialTitle, false);
- } else {
- switchToFragment(DashboardSummary.class.getName(), null /* args */, false, false,
- mInitialTitleResId, mInitialTitle, false);
- }
}
}
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 87a3511..5cfe218 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -454,7 +454,7 @@
if (mDialogFragment != null) {
Log.e(TAG, "Old dialog fragment not null!");
}
- mDialogFragment = new SettingsDialogFragment(this, dialogId);
+ mDialogFragment = SettingsDialogFragment.newInstance(this, dialogId);
mDialogFragment.show(getChildFragmentManager(), Integer.toString(dialogId));
}
@@ -541,22 +541,26 @@
private DialogInterface.OnCancelListener mOnCancelListener;
private DialogInterface.OnDismissListener mOnDismissListener;
- public SettingsDialogFragment(DialogCreatable fragment, int dialogId) {
- super(fragment, dialogId);
+ public static SettingsDialogFragment newInstance(DialogCreatable fragment, int dialogId) {
if (!(fragment instanceof Fragment)) {
throw new IllegalArgumentException("fragment argument must be an instance of "
+ Fragment.class.getName());
}
- mParentFragment = (Fragment) fragment;
- }
+ final SettingsDialogFragment settingsDialogFragment = new SettingsDialogFragment();
+ settingsDialogFragment.setParentFragment(fragment);
+ settingsDialogFragment.setDialogId(dialogId);
+
+ return settingsDialogFragment;
+ }
@Override
public int getMetricsCategory() {
- if (mDialogCreatable == null) {
+ if (mParentFragment == null) {
return Instrumentable.METRICS_CATEGORY_UNKNOWN;
}
- final int metricsCategory = mDialogCreatable.getDialogMetricsCategory(mDialogId);
+ final int metricsCategory =
+ ((DialogCreatable) mParentFragment).getDialogMetricsCategory(mDialogId);
if (metricsCategory <= 0) {
throw new IllegalStateException("Dialog must provide a metrics category");
}
@@ -639,6 +643,14 @@
}
}
}
+
+ private void setParentFragment(DialogCreatable fragment) {
+ mParentFragment = (Fragment) fragment;
+ }
+
+ private void setDialogId(int dialogId) {
+ mDialogId = dialogId;
+ }
}
protected boolean hasNextButton() {
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 14a9e83..79caefe 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -979,4 +979,14 @@
return packageManager.getDefaultActivityIcon();
}
}
+
+ /** Returns true if the current package is installed & enabled. */
+ public static boolean isPackageEnabled(Context context, String packageName) {
+ try {
+ return context.getPackageManager().getApplicationInfo(packageName, 0).enabled;
+ } catch (Exception e) {
+ Log.e(TAG, "Error while retrieving application info for package " + packageName, e);
+ }
+ return false;
+ }
}
diff --git a/src/com/android/settings/accessibility/AccessibilityServiceWarning.java b/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
index 26cb777..6360d42 100644
--- a/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
+++ b/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
@@ -16,7 +16,7 @@
package com.android.settings.accessibility;
-import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.app.Activity;
@@ -72,7 +72,7 @@
Window window = ad.getWindow();
WindowManager.LayoutParams params = window.getAttributes();
- params.privateFlags |= PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+ params.privateFlags |= SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
window.setAttributes(params);
ad.create();
ad.getButton(AlertDialog.BUTTON_POSITIVE).setOnTouchListener(filterTouchListener);
diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java
index 9a8ef54..65b0e86 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettings.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -550,7 +550,7 @@
Drawable icon;
if (resolveInfo.getIconResource() == 0) {
- icon = ContextCompat.getDrawable(getContext(), R.mipmap.ic_accessibility_generic);
+ icon = ContextCompat.getDrawable(getContext(), R.drawable.ic_accessibility_generic);
} else {
icon = resolveInfo.loadIcon(getPackageManager());
}
diff --git a/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java b/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java
index aa5cd59..213bfbd 100644
--- a/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java
+++ b/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java
@@ -258,7 +258,7 @@
public Drawable loadIcon() {
final ResolveInfo resolveInfo = mServiceInfo.getResolveInfo();
return (resolveInfo.getIconResource() == 0)
- ? getContext().getDrawable(R.mipmap.ic_accessibility_generic)
+ ? getContext().getDrawable(R.drawable.ic_accessibility_generic)
: resolveInfo.loadIcon(getContext().getPackageManager());
}
diff --git a/src/com/android/settings/accounts/AccountDashboardFragment.java b/src/com/android/settings/accounts/AccountDashboardFragment.java
index d8b1008..c1499ce 100644
--- a/src/com/android/settings/accounts/AccountDashboardFragment.java
+++ b/src/com/android/settings/accounts/AccountDashboardFragment.java
@@ -18,22 +18,16 @@
import static android.provider.Settings.EXTRA_AUTHORITIES;
import android.content.Context;
-import android.icu.text.ListFormatter;
-import android.os.UserHandle;
import android.provider.SearchIndexableResource;
-import android.text.BidiFormatter;
-import android.text.TextUtils;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.users.AutoSyncDataPreferenceController;
import com.android.settings.users.AutoSyncPersonalDataPreferenceController;
import com.android.settings.users.AutoSyncWorkDataPreferenceController;
-import com.android.settingslib.accounts.AuthenticatorHelper;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.search.SearchIndexable;
@@ -89,49 +83,6 @@
return controllers;
}
- private static class SummaryProvider implements SummaryLoader.SummaryProvider {
-
- private final Context mContext;
- private final SummaryLoader mSummaryLoader;
-
- public SummaryProvider(Context context, SummaryLoader summaryLoader) {
- mContext = context;
- mSummaryLoader = summaryLoader;
- }
-
- @Override
- public void setListening(boolean listening) {
- if (listening) {
- final AuthenticatorHelper authHelper = new AuthenticatorHelper(mContext,
- UserHandle.of(UserHandle.myUserId()), null /* OnAccountsUpdateListener */);
- final String[] types = authHelper.getEnabledAccountTypes();
- final BidiFormatter bidiFormatter = BidiFormatter.getInstance();
- final List<CharSequence> summaries = new ArrayList<>();
-
- if (types == null || types.length == 0) {
- summaries.add(mContext.getString(R.string.account_dashboard_default_summary));
- } else {
- // Show up to 3 account types, ignore any null value
- int accountToAdd = Math.min(3, types.length);
-
- for (int i = 0; i < types.length && accountToAdd > 0; i++) {
- final CharSequence label = authHelper.getLabelForType(mContext, types[i]);
- if (TextUtils.isEmpty(label)) {
- continue;
- }
-
- summaries.add(bidiFormatter.unicodeWrap(label));
- accountToAdd--;
- }
- }
- mSummaryLoader.setSummary(this, ListFormatter.getInstance().format(summaries));
- }
- }
- }
-
- public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
- = (activity, summaryLoader) -> new SummaryProvider(activity, summaryLoader);
-
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
diff --git a/src/com/android/settings/accounts/AccountDetailDashboardFragment.java b/src/com/android/settings/accounts/AccountDetailDashboardFragment.java
index 18e9906..78a8614 100644
--- a/src/com/android/settings/accounts/AccountDetailDashboardFragment.java
+++ b/src/com/android/settings/accounts/AccountDetailDashboardFragment.java
@@ -92,18 +92,18 @@
@VisibleForTesting
void finishIfAccountMissing() {
- AccountManager accountManager = (AccountManager) getContext().getSystemService(
- Context.ACCOUNT_SERVICE);
- boolean accountExists = false;
- for (Account account : accountManager.getAccountsByType(mAccount.type)) {
- if (account.equals(mAccount)) {
- accountExists = true;
- break;
+ final Context context = getContext();
+ final UserManager um = context.getSystemService(UserManager.class);
+ final AccountManager accountManager = (AccountManager) context.getSystemService(
+ AccountManager.class);
+ for (UserHandle userHandle : um.getUserProfiles()) {
+ for (Account account : accountManager.getAccountsAsUser(userHandle.getIdentifier())) {
+ if (account.equals(mAccount)) {
+ return;
+ }
}
}
- if (!accountExists) {
- finish();
- }
+ finish();
}
@Override
@@ -177,4 +177,4 @@
accountTypePreferenceLoader.updatePreferenceIntents(prefs, mAccountType, mAccount);
}
}
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/accounts/AccountFeatureProvider.java b/src/com/android/settings/accounts/AccountFeatureProvider.java
index 9829ca6..fd65095 100644
--- a/src/com/android/settings/accounts/AccountFeatureProvider.java
+++ b/src/com/android/settings/accounts/AccountFeatureProvider.java
@@ -18,8 +18,10 @@
import android.accounts.Account;
import android.content.Context;
+import android.content.Intent;
public interface AccountFeatureProvider {
String getAccountType();
Account[] getAccounts(Context context);
+ Intent getAccountSettingsDeeplinkIntent();
}
diff --git a/src/com/android/settings/accounts/AccountFeatureProviderImpl.java b/src/com/android/settings/accounts/AccountFeatureProviderImpl.java
index 90b581b..2e0f432 100644
--- a/src/com/android/settings/accounts/AccountFeatureProviderImpl.java
+++ b/src/com/android/settings/accounts/AccountFeatureProviderImpl.java
@@ -2,6 +2,7 @@
import android.accounts.Account;
import android.content.Context;
+import android.content.Intent;
public class AccountFeatureProviderImpl implements AccountFeatureProvider {
@Override
@@ -13,4 +14,9 @@
public Account[] getAccounts(Context context) {
return new Account[0];
}
+
+ @Override
+ public Intent getAccountSettingsDeeplinkIntent() {
+ return null;
+ }
}
diff --git a/src/com/android/settings/accounts/AvatarViewMixin.java b/src/com/android/settings/accounts/AvatarViewMixin.java
new file mode 100644
index 0000000..78750b1
--- /dev/null
+++ b/src/com/android/settings/accounts/AvatarViewMixin.java
@@ -0,0 +1,136 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.accounts;
+
+import android.accounts.Account;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.graphics.Bitmap;
+import android.net.Uri;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.Log;
+import android.widget.ImageView;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleObserver;
+import androidx.lifecycle.MutableLiveData;
+import androidx.lifecycle.OnLifecycleEvent;
+
+import com.android.settings.R;
+import com.android.settings.homepage.SettingsHomepageActivity;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.utils.ThreadUtils;
+
+import java.util.List;
+
+/**
+ * Avatar related work to the onStart method of registered observable classes
+ * in {@link SettingsHomepageActivity}.
+ */
+public class AvatarViewMixin implements LifecycleObserver {
+ private static final String TAG = "AvatarViewMixin";
+
+ @VisibleForTesting
+ static final Intent INTENT_GET_ACCOUNT_DATA =
+ new Intent("android.content.action.SETTINGS_ACCOUNT_DATA");
+
+ private static final String METHOD_GET_ACCOUNT_AVATAR = "getAccountAvatar";
+ private static final String KEY_AVATAR_BITMAP = "account_avatar";
+ private static final int REQUEST_CODE = 1013;
+
+ private final Context mContext;
+ private final ImageView mAvatarView;
+ private final MutableLiveData<Bitmap> mAvatarImage;
+
+ public AvatarViewMixin(SettingsHomepageActivity activity, ImageView avatarView) {
+ mContext = activity.getApplicationContext();
+ mAvatarView = avatarView;
+ mAvatarView.setOnClickListener(v -> {
+ if (hasAccount()) {
+ //TODO(b/117509285) launch the new page of the MeCard
+ } else {
+ final Intent intent = FeatureFactory.getFactory(mContext)
+ .getAccountFeatureProvider()
+ .getAccountSettingsDeeplinkIntent();
+
+ if (intent != null) {
+ activity.startActivityForResult(intent, REQUEST_CODE);
+ }
+ }
+ });
+
+ mAvatarImage = new MutableLiveData<>();
+ mAvatarImage.observe(activity, bitmap -> {
+ avatarView.setImageBitmap(bitmap);
+ });
+ }
+
+ @OnLifecycleEvent(Lifecycle.Event.ON_START)
+ public void onStart() {
+ if (!mContext.getResources().getBoolean(R.bool.config_show_avatar_in_homepage)) {
+ Log.d(TAG, "Feature disabled. Skipping");
+ return;
+ }
+ if (hasAccount()) {
+ loadAvatar();
+ } else {
+ mAvatarView.setImageResource(R.drawable.ic_account_circle_24dp);
+ }
+ }
+
+ @VisibleForTesting
+ boolean hasAccount() {
+ final Account accounts[] = FeatureFactory.getFactory(
+ mContext).getAccountFeatureProvider().getAccounts(mContext);
+ return (accounts != null) && (accounts.length > 0);
+ }
+
+ private void loadAvatar() {
+ final String authority = queryProviderAuthority();
+ if (TextUtils.isEmpty(authority)) {
+ return;
+ }
+
+ ThreadUtils.postOnBackgroundThread(() -> {
+ final Uri uri = new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(authority)
+ .build();
+ final Bundle bundle = mContext.getContentResolver().call(uri,
+ METHOD_GET_ACCOUNT_AVATAR, null /* arg */, null /* extras */);
+ final Bitmap bitmap = bundle.getParcelable(KEY_AVATAR_BITMAP);
+ mAvatarImage.postValue(bitmap);
+ });
+ }
+
+ @VisibleForTesting
+ String queryProviderAuthority() {
+ final List<ResolveInfo> providers =
+ mContext.getPackageManager().queryIntentContentProviders(INTENT_GET_ACCOUNT_DATA,
+ PackageManager.MATCH_SYSTEM_ONLY);
+ if (providers.size() == 1) {
+ return providers.get(0).providerInfo.authority;
+ } else {
+ Log.w(TAG, "The size of the provider is " + providers.size());
+ return null;
+ }
+ }
+}
diff --git a/src/com/android/settings/applications/AppStateDirectoryAccessBridge.java b/src/com/android/settings/applications/AppStateDirectoryAccessBridge.java
deleted file mode 100644
index 1c2a0af..0000000
--- a/src/com/android/settings/applications/AppStateDirectoryAccessBridge.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * 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.
- */
-package com.android.settings.applications;
-
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.AUTHORITY;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PACKAGES;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PACKAGES_COLUMNS;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PACKAGES_COL_PACKAGE;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.database.Cursor;
-import android.net.Uri;
-import android.util.ArraySet;
-import android.util.Log;
-
-import com.android.settingslib.applications.ApplicationsState;
-import com.android.settingslib.applications.ApplicationsState.AppEntry;
-import com.android.settingslib.applications.ApplicationsState.AppFilter;
-
-import java.util.Set;
-
-// TODO(b/72055774): add unit tests
-public class AppStateDirectoryAccessBridge extends AppStateBaseBridge {
-
- private static final String TAG = "DirectoryAccessBridge";
-
- // TODO(b/72055774): set to false once feature is ready (or use Log.isLoggable)
- static final boolean DEBUG = true;
- static final boolean VERBOSE = true;
-
- public AppStateDirectoryAccessBridge(ApplicationsState appState, Callback callback) {
- super(appState, callback);
- }
-
- @Override
- protected void loadAllExtraInfo() { }
-
- @Override
- protected void updateExtraInfo(AppEntry app, String pkg, int uid) { }
-
- public static final AppFilter FILTER_APP_HAS_DIRECTORY_ACCESS = new AppFilter() {
-
- private Set<String> mPackages;
-
- @Override
- public void init() {
- throw new UnsupportedOperationException("Need to call constructor that takes context");
- }
-
- @Override
- public void init(Context context) {
- mPackages = null;
- final Uri providerUri = new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT)
- .authority(AUTHORITY).appendPath(TABLE_PACKAGES).appendPath("*")
- .build();
- try (Cursor cursor = context.getContentResolver().query(providerUri,
- TABLE_PACKAGES_COLUMNS, null, null)) {
- if (cursor == null) {
- Log.w(TAG, "Didn't get cursor for " + providerUri);
- return;
- }
- final int count = cursor.getCount();
- if (count == 0) {
- if (DEBUG) {
- Log.d(TAG, "No packages anymore (was " + mPackages + ")");
- }
- return;
- }
- mPackages = new ArraySet<>(count);
- while (cursor.moveToNext()) {
- mPackages.add(cursor.getString(TABLE_PACKAGES_COL_PACKAGE));
- }
- if (DEBUG) {
- Log.d(TAG, "init(): " + mPackages);
- }
- }
- }
-
-
- @Override
- public boolean filterApp(AppEntry info) {
- return mPackages != null && mPackages.contains(info.info.packageName);
- }
- };
-}
diff --git a/src/com/android/settings/applications/AppStorageSettings.java b/src/com/android/settings/applications/AppStorageSettings.java
index e24a210..c926da3 100644
--- a/src/com/android/settings/applications/AppStorageSettings.java
+++ b/src/com/android/settings/applications/AppStorageSettings.java
@@ -18,13 +18,10 @@
import static android.content.pm.ApplicationInfo.FLAG_ALLOW_CLEAR_USER_DATA;
import static android.content.pm.ApplicationInfo.FLAG_SYSTEM;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.AUTHORITY;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PERMISSIONS;
import android.app.ActivityManager;
import android.app.AppGlobals;
import android.app.GrantedUriPermission;
-import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -32,7 +29,6 @@
import android.content.pm.IPackageDataObserver;
import android.content.pm.PackageManager;
import android.content.pm.ProviderInfo;
-import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -461,17 +457,6 @@
Context.ACTIVITY_SERVICE);
am.clearGrantedUriPermissions(packageName);
-
- // Also update the Scoped Directory Access UI permissions
- final Uri providerUri = new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT)
- .authority(AUTHORITY).appendPath(TABLE_PERMISSIONS).appendPath("*")
- .build();
- Log.v(TAG, "Asking " + providerUri + " to delete permissions for " + packageName);
- final int deleted = context.getContentResolver().delete(providerUri, null, new String[] {
- packageName
- });
- Log.d(TAG, "Deleted " + deleted + " entries for package " + packageName);
-
// Update UI
refreshGrantedUriPermissions();
}
diff --git a/src/com/android/settings/applications/DirectoryAccessDetails.java b/src/com/android/settings/applications/DirectoryAccessDetails.java
deleted file mode 100644
index f158d81..0000000
--- a/src/com/android/settings/applications/DirectoryAccessDetails.java
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.applications;
-
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.AUTHORITY;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.COL_GRANTED;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PERMISSIONS;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract
- .TABLE_PERMISSIONS_COLUMNS;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract
- .TABLE_PERMISSIONS_COL_DIRECTORY;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract
- .TABLE_PERMISSIONS_COL_GRANTED;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract
- .TABLE_PERMISSIONS_COL_PACKAGE;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract
- .TABLE_PERMISSIONS_COL_VOLUME_UUID;
-
-import static com.android.settings.applications.AppStateDirectoryAccessBridge.DEBUG;
-import static com.android.settings.applications.AppStateDirectoryAccessBridge.VERBOSE;
-
-import android.annotation.Nullable;
-import android.app.Activity;
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.storage.StorageManager;
-import android.os.storage.VolumeInfo;
-import android.util.IconDrawableFactory;
-import android.util.Log;
-import android.util.Pair;
-
-import androidx.appcompat.app.AlertDialog;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceCategory;
-import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
-
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.R;
-import com.android.settings.widget.EntityHeaderController;
-import com.android.settings.widget.EntityHeaderController.ActionType;
-import com.android.settingslib.applications.AppUtils;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Detailed settings for an app's directory access permissions (A.K.A Scoped Directory Access).
- *
- * <p>Currently, it shows the entry for which the user denied access with the "Do not ask again"
- * flag checked on: the user than can use the settings toggle to reset that deniel.
- *
- * <p>This fragments dynamically lists all such permissions, starting with one preference per
- * directory in the primary storage, then adding additional entries for the external volumes (one
- * entry for the whole volume).
- */
-// TODO(b/72055774): add unit tests
-public class DirectoryAccessDetails extends AppInfoBase {
-
- @SuppressWarnings("hiding")
- private static final String TAG = "DirectoryAccessDetails";
-
- private boolean mCreated;
-
- @Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
-
- if (mCreated) {
- Log.w(TAG, "onActivityCreated(): ignoring duplicate call");
- return;
- }
- mCreated = true;
- if (mPackageInfo == null) {
- Log.w(TAG, "onActivityCreated(): no package info");
- return;
- }
- final Activity activity = getActivity();
- final Preference pref = EntityHeaderController
- .newInstance(activity, this, /* header= */ null )
- .setRecyclerView(getListView(), getSettingsLifecycle())
- .setIcon(IconDrawableFactory.newInstance(getPrefContext())
- .getBadgedIcon(mPackageInfo.applicationInfo))
- .setLabel(mPackageInfo.applicationInfo.loadLabel(mPm))
- .setIsInstantApp(AppUtils.isInstant(mPackageInfo.applicationInfo))
- .setPackageName(mPackageName)
- .setUid(mPackageInfo.applicationInfo.uid)
- .setHasAppInfoLink(false)
- .setButtonActions(ActionType.ACTION_NONE, ActionType.ACTION_NONE)
- .done(activity, getPrefContext());
- getPreferenceScreen().addPreference(pref);
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- addPreferencesFromResource(R.xml.directory_access_details);
-
- }
-
- @Override
- protected boolean refreshUi() {
- final Context context = getPrefContext();
- final PreferenceScreen prefsGroup = getPreferenceScreen();
- prefsGroup.removeAll();
-
- final Map<String, ExternalVolume> externalVolumes = new HashMap<>();
-
- final Uri providerUri = new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT)
- .authority(AUTHORITY).appendPath(TABLE_PERMISSIONS).appendPath("*")
- .build();
- // Query provider for entries.
- try (Cursor cursor = context.getContentResolver().query(providerUri,
- TABLE_PERMISSIONS_COLUMNS, null, new String[] { mPackageName }, null)) {
- if (cursor == null) {
- Log.w(TAG, "Didn't get cursor for " + mPackageName);
- return true;
- }
- final int count = cursor.getCount();
- if (count == 0) {
- // This setting screen should not be reached if there was no permission, so just
- // ignore it
- Log.w(TAG, "No permissions for " + mPackageName);
- return true;
- }
-
- while (cursor.moveToNext()) {
- final String pkg = cursor.getString(TABLE_PERMISSIONS_COL_PACKAGE);
- final String uuid = cursor.getString(TABLE_PERMISSIONS_COL_VOLUME_UUID);
- final String dir = cursor.getString(TABLE_PERMISSIONS_COL_DIRECTORY);
- final boolean granted = cursor.getInt(TABLE_PERMISSIONS_COL_GRANTED) == 1;
- if (VERBOSE) {
- Log.v(TAG, "Pkg:" + pkg + " uuid: " + uuid + " dir: " + dir
- + " granted:" + granted);
- }
-
- if (!mPackageName.equals(pkg)) {
- // Sanity check, shouldn't happen
- Log.w(TAG, "Ignoring " + uuid + "/" + dir + " due to package mismatch: "
- + "expected " + mPackageName + ", got " + pkg);
- continue;
- }
-
- if (uuid == null) {
- if (dir == null) {
- // Sanity check, shouldn't happen
- Log.wtf(TAG, "Ignoring permission on primary storage root");
- } else {
- // Primary storage entry: add right away
- prefsGroup.addPreference(newPreference(context, dir, providerUri,
- /* uuid= */ null, dir, granted, /* children= */ null));
- }
- } else {
- // External volume entry: save it for later.
- ExternalVolume externalVolume = externalVolumes.get(uuid);
- if (externalVolume == null) {
- externalVolume = new ExternalVolume(uuid);
- externalVolumes.put(uuid, externalVolume);
- }
- if (dir == null) {
- // Whole volume
- externalVolume.granted = granted;
- } else {
- // Directory only
- externalVolume.children.add(new Pair<>(dir, granted));
- }
- }
- }
- }
-
- if (VERBOSE) {
- Log.v(TAG, "external volumes: " + externalVolumes);
- }
-
- if (externalVolumes.isEmpty()) {
- // We're done!
- return true;
- }
-
- // Add entries from external volumes
-
- // Query StorageManager to get the user-friendly volume names.
- final StorageManager sm = context.getSystemService(StorageManager.class);
- final List<VolumeInfo> volumes = sm.getVolumes();
- if (volumes.isEmpty()) {
- Log.w(TAG, "StorageManager returned no secondary volumes");
- return true;
- }
- final Map<String, String> volumeNames = new HashMap<>(volumes.size());
- for (VolumeInfo volume : volumes) {
- final String uuid = volume.getFsUuid();
- if (uuid == null) continue; // Primary storage; not used.
-
- String name = sm.getBestVolumeDescription(volume);
- if (name == null) {
- Log.w(TAG, "No description for " + volume + "; using uuid instead: " + uuid);
- name = uuid;
- }
- volumeNames.put(uuid, name);
- }
- if (VERBOSE) {
- Log.v(TAG, "UUID -> name mapping: " + volumeNames);
- }
-
- for (ExternalVolume volume : externalVolumes.values()) {
- final String volumeName = volumeNames.get(volume.uuid);
- if (volumeName == null) {
- Log.w(TAG, "Ignoring entry for invalid UUID: " + volume.uuid);
- continue;
- }
- // First add the pref for the whole volume...
- final PreferenceCategory category = new PreferenceCategory(context);
- prefsGroup.addPreference(category);
- final Set<SwitchPreference> children = new HashSet<>(volume.children.size());
- category.addPreference(newPreference(context, volumeName, providerUri, volume.uuid,
- /* dir= */ null, volume.granted, children));
-
- // ... then the children prefs
- volume.children.forEach((pair) -> {
- final String dir = pair.first;
- final String name = context.getResources()
- .getString(R.string.directory_on_volume, volumeName, dir);
- final SwitchPreference childPref =
- newPreference(context, name, providerUri, volume.uuid, dir, pair.second,
- /* children= */ null);
- category.addPreference(childPref);
- children.add(childPref);
- });
- }
- return true;
- }
-
- private SwitchPreference newPreference(Context context, String title, Uri providerUri,
- String uuid, String dir, boolean granted, @Nullable Set<SwitchPreference> children) {
- final SwitchPreference pref = new SwitchPreference(context);
- pref.setKey(String.format("%s:%s", uuid, dir));
- pref.setTitle(title);
- pref.setChecked(granted);
- pref.setOnPreferenceChangeListener((unused, value) -> {
- if (!Boolean.class.isInstance(value)) {
- // Sanity check
- Log.wtf(TAG, "Invalid value from switch: " + value);
- return true;
- }
- final boolean newValue = ((Boolean) value).booleanValue();
-
- resetDoNotAskAgain(context, newValue, providerUri, uuid, dir);
- if (children != null) {
- // When parent is granted, children should be hidden; and vice versa
- final boolean newChildValue = !newValue;
- for (SwitchPreference child : children) {
- child.setVisible(newChildValue);
- }
- }
- return true;
- });
- return pref;
- }
-
- private void resetDoNotAskAgain(Context context, boolean newValue, Uri providerUri,
- @Nullable String uuid, @Nullable String directory) {
- if (DEBUG) {
- Log.d(TAG, "Asking " + providerUri + " to update " + uuid + "/" + directory + " to "
- + newValue);
- }
- final ContentValues values = new ContentValues(1);
- values.put(COL_GRANTED, newValue);
- final int updated = context.getContentResolver().update(providerUri, values,
- null, new String[] { mPackageName, uuid, directory });
- if (DEBUG) {
- Log.d(TAG, "Updated " + updated + " entries for " + uuid + "/" + directory);
- }
- }
-
- @Override
- protected AlertDialog createDialog(int id, int errorCode) {
- return null;
- }
-
- @Override
- public int getMetricsCategory() {
- return MetricsEvent.APPLICATIONS_DIRECTORY_ACCESS_DETAIL;
- }
-
- private static class ExternalVolume {
- final String uuid;
- final List<Pair<String, Boolean>> children = new ArrayList<>();
- boolean granted;
-
- ExternalVolume(String uuid) {
- this.uuid = uuid;
- }
-
- @Override
- public String toString() {
- return "ExternalVolume: [uuid=" + uuid + ", granted=" + granted +
- ", children=" + children + "]";
- }
- }
-}
diff --git a/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java b/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java
index c861175..5f41ae0 100644
--- a/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java
@@ -90,12 +90,9 @@
private void setAppLabelAndIcon(PackageInfo pkgInfo, AppEntry appEntry) {
final Activity activity = mParent.getActivity();
final boolean isInstantApp = AppUtils.isInstant(pkgInfo.applicationInfo);
- final CharSequence summary = isInstantApp
- ? null : mContext.getString(Utils.getInstallationStatus(appEntry.info));
mEntityHeaderController
.setLabel(appEntry)
.setIcon(appEntry)
- .setSummary(summary)
.setIsInstantApp(isInstantApp)
.done(activity, false /* rebindActions */);
}
diff --git a/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceController.java b/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceController.java
index 64af3c2..4c7dd81 100644
--- a/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceController.java
@@ -30,7 +30,8 @@
@Override
protected boolean hasAppCapability() {
- return DefaultBrowserPreferenceController.hasBrowserPreference(mPackageName, mContext);
+ return DefaultBrowserPreferenceController
+ .hasBrowserPreference(mPackageName, mContext, UserHandle.myUserId());
}
@Override
diff --git a/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java b/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java
index 6f2cf35..8405c61 100644
--- a/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java
+++ b/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java
@@ -15,7 +15,7 @@
*/
package com.android.settings.applications.appinfo;
-import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
import android.app.AppOpsManager;
import android.content.Context;
@@ -83,7 +83,7 @@
@Override
public void onResume() {
super.onResume();
- getActivity().getWindow().addPrivateFlags(PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+ getActivity().getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
}
@Override
@@ -91,7 +91,7 @@
super.onPause();
Window window = getActivity().getWindow();
WindowManager.LayoutParams attrs = window.getAttributes();
- attrs.privateFlags &= ~PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+ attrs.privateFlags &= ~SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
window.setAttributes(attrs);
}
diff --git a/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java b/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java
index a4cfebf..70ffcb3 100644
--- a/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java
@@ -21,6 +21,7 @@
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
+import android.provider.Settings;
import android.text.TextUtils;
import androidx.annotation.VisibleForTesting;
@@ -34,8 +35,7 @@
public class TimeSpentInAppPreferenceController extends BasePreferenceController {
@VisibleForTesting
- static final Intent SEE_TIME_IN_APP_TEMPLATE =
- new Intent("com.android.settings.action.TIME_SPENT_IN_APP");
+ static final Intent SEE_TIME_IN_APP_TEMPLATE = new Intent(Settings.ACTION_APP_USAGE_SETTINGS);
private final PackageManager mPackageManager;
diff --git a/src/com/android/settings/applications/defaultapps/DefaultBrowserPicker.java b/src/com/android/settings/applications/defaultapps/DefaultBrowserPicker.java
index 626048d..cfaac3a 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultBrowserPicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultBrowserPicker.java
@@ -62,7 +62,7 @@
for (ResolveInfo info : list) {
try {
- candidates.add(new DefaultAppInfo(context, mPm,
+ candidates.add(new DefaultAppInfo(context, mPm, mUserId,
mPm.getApplicationInfoAsUser(info.activityInfo.packageName, 0, mUserId)));
} catch (PackageManager.NameNotFoundException e) {
// Skip unknown packages.
diff --git a/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceController.java b/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceController.java
index 9e76ff5..24b4dcd 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceController.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceController.java
@@ -29,6 +29,7 @@
import android.util.IconDrawableFactory;
import android.util.Log;
+import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import com.android.settingslib.applications.DefaultAppInfo;
@@ -75,8 +76,8 @@
try {
final String packageName = mPackageManager.getDefaultBrowserPackageNameAsUser(mUserId);
Log.d(TAG, "Get default browser package: " + packageName);
- return new DefaultAppInfo(mContext, mPackageManager,
- mPackageManager.getApplicationInfo(packageName, 0));
+ return new DefaultAppInfo(mContext, mPackageManager, mUserId,
+ mPackageManager.getApplicationInfoAsUser(packageName, 0, mUserId));
} catch (PackageManager.NameNotFoundException e) {
return null;
}
@@ -143,7 +144,8 @@
return null;
}
- private Drawable getOnlyAppIcon() {
+ @VisibleForTesting
+ Drawable getOnlyAppIcon() {
final List<ResolveInfo> list = getCandidates(mPackageManager, mUserId);
if (list != null && list.size() == 1) {
final ResolveInfo info = list.get(0);
@@ -154,7 +156,7 @@
}
final ApplicationInfo appInfo;
try {
- appInfo = mPackageManager.getApplicationInfo(packageName, 0);
+ appInfo = mPackageManager.getApplicationInfoAsUser(packageName, 0, mUserId);
} catch (PackageManager.NameNotFoundException e) {
Log.w(TAG, "Error getting app info for " + packageName);
return null;
@@ -169,11 +171,11 @@
/**
* Whether or not the pkg contains browser capability
*/
- public static boolean hasBrowserPreference(String pkg, Context context) {
+ public static boolean hasBrowserPreference(String pkg, Context context, int userId) {
final Intent intent = new Intent(BROWSE_PROBE);
intent.setPackage(pkg);
- final List<ResolveInfo> resolveInfos =
- context.getPackageManager().queryIntentActivities(intent, 0);
+ final List<ResolveInfo> resolveInfos = context.getPackageManager()
+ .queryIntentActivitiesAsUser(intent, 0 /* flags */, userId);
return resolveInfos != null && resolveInfos.size() != 0;
}
diff --git a/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java b/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
index f6f8a56..76e93cc 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
@@ -58,7 +58,7 @@
final PackageInfo packageInfo =
mPm.getPackageInfo(info.activityInfo.packageName, 0);
final ApplicationInfo appInfo = packageInfo.applicationInfo;
- candidates.add(new DefaultAppInfo(context, mPm, appInfo));
+ candidates.add(new DefaultAppInfo(context, mPm, mUserId, appInfo));
// Get earliest installed system app.
if (isSystemApp(appInfo) && (bestMatch == null ||
bestMatch.firstInstallTime > packageInfo.firstInstallTime)) {
diff --git a/src/com/android/settings/applications/defaultapps/DefaultPhonePicker.java b/src/com/android/settings/applications/defaultapps/DefaultPhonePicker.java
index 0bda2ec..72f1cc5 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultPhonePicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultPhonePicker.java
@@ -58,7 +58,7 @@
final Context context = getContext();
for (String packageName : dialerPackages) {
try {
- candidates.add(new DefaultAppInfo(context, mPm,
+ candidates.add(new DefaultAppInfo(context, mPm, mUserId,
mPm.getApplicationInfoAsUser(packageName, 0, mUserId)));
} catch (PackageManager.NameNotFoundException e) {
// Skip unknown packages.
diff --git a/src/com/android/settings/applications/defaultapps/DefaultPhonePreferenceController.java b/src/com/android/settings/applications/defaultapps/DefaultPhonePreferenceController.java
index 95264b1..7b7755d 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultPhonePreferenceController.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultPhonePreferenceController.java
@@ -59,7 +59,8 @@
@Override
protected DefaultAppInfo getDefaultAppInfo() {
try {
- return new DefaultAppInfo(mContext, mPackageManager, mPackageManager.getApplicationInfo(
+ return new DefaultAppInfo(mContext, mPackageManager, mUserId,
+ mPackageManager.getApplicationInfo(
DefaultDialerManager.getDefaultDialerApplication(mContext, mUserId), 0));
} catch (PackageManager.NameNotFoundException e) {
return null;
diff --git a/src/com/android/settings/applications/defaultapps/DefaultSmsPicker.java b/src/com/android/settings/applications/defaultapps/DefaultSmsPicker.java
index f8b1596..6d1e21d 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultSmsPicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultSmsPicker.java
@@ -55,7 +55,7 @@
for (SmsApplication.SmsApplicationData smsApplicationData : smsApplications) {
try {
- candidates.add(new DefaultAppInfo(context, mPm,
+ candidates.add(new DefaultAppInfo(context, mPm, mUserId,
mPm.getApplicationInfoAsUser(smsApplicationData.mPackageName, 0, mUserId)));
} catch (PackageManager.NameNotFoundException e) {
// Skip unknown packages.
diff --git a/src/com/android/settings/applications/manageapplications/AppFilterRegistry.java b/src/com/android/settings/applications/manageapplications/AppFilterRegistry.java
index 7d1e159..0d2bcab 100644
--- a/src/com/android/settings/applications/manageapplications/AppFilterRegistry.java
+++ b/src/com/android/settings/applications/manageapplications/AppFilterRegistry.java
@@ -19,7 +19,6 @@
import androidx.annotation.IntDef;
import com.android.settings.R;
-import com.android.settings.applications.AppStateDirectoryAccessBridge;
import com.android.settings.applications.AppStateInstallAppsBridge;
import com.android.settings.applications.AppStateNotificationBridge;
import com.android.settings.applications.AppStateOverlayBridge;
@@ -70,7 +69,6 @@
public static final int FILTER_APPS_WITH_OVERLAY = 11;
public static final int FILTER_APPS_WRITE_SETTINGS = 12;
public static final int FILTER_APPS_INSTALL_SOURCES = 13;
- public static final int FILTER_APP_HAS_DIRECTORY_ACCESS = 14;
public static final int FILTER_APP_CAN_CHANGE_WIFI_STATE = 15;
public static final int FILTER_APPS_BLOCKED = 16;
// Next id: 17
@@ -170,12 +168,6 @@
FILTER_APPS_INSTALL_SOURCES,
R.string.filter_install_sources_apps);
- // Apps that interacted with directory access permissions (A.K.A. Scoped Directory Access)
- mFilters[FILTER_APP_HAS_DIRECTORY_ACCESS] = new AppFilterItem(
- AppStateDirectoryAccessBridge.FILTER_APP_HAS_DIRECTORY_ACCESS,
- FILTER_APP_HAS_DIRECTORY_ACCESS,
- R.string.filter_install_sources_apps);
-
mFilters[FILTER_APP_CAN_CHANGE_WIFI_STATE] = new AppFilterItem(
AppStateChangeWifiStateBridge.FILTER_CHANGE_WIFI_STATE,
FILTER_APP_CAN_CHANGE_WIFI_STATE,
@@ -208,8 +200,6 @@
return FILTER_APPS_WRITE_SETTINGS;
case ManageApplications.LIST_TYPE_MANAGE_SOURCES:
return FILTER_APPS_INSTALL_SOURCES;
- case ManageApplications.LIST_TYPE_DIRECTORY_ACCESS:
- return FILTER_APP_HAS_DIRECTORY_ACCESS;
case ManageApplications.LIST_TYPE_WIFI_ACCESS:
return FILTER_APP_CAN_CHANGE_WIFI_STATE;
case ManageApplications.LIST_TYPE_NOTIFICATION:
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index 44ea575..6b2fb91 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -90,7 +90,6 @@
import com.android.settings.applications.AppInfoBase;
import com.android.settings.applications.AppStateAppOpsBridge.PermissionState;
import com.android.settings.applications.AppStateBaseBridge;
-import com.android.settings.applications.AppStateDirectoryAccessBridge;
import com.android.settings.applications.AppStateInstallAppsBridge;
import com.android.settings.applications.AppStateNotificationBridge;
import com.android.settings.applications.AppStateNotificationBridge.NotificationsSentState;
@@ -101,7 +100,6 @@
import com.android.settings.applications.AppStateWriteSettingsBridge;
import com.android.settings.applications.AppStorageSettings;
import com.android.settings.applications.DefaultAppSettings;
-import com.android.settings.applications.DirectoryAccessDetails;
import com.android.settings.applications.InstalledAppCounter;
import com.android.settings.applications.UsageAccessDetails;
import com.android.settings.applications.appinfo.AppInfoDashboardFragment;
@@ -218,7 +216,6 @@
public static final int LIST_TYPE_GAMES = 9;
public static final int LIST_TYPE_MOVIES = 10;
public static final int LIST_TYPE_PHOTOGRAPHY = 11;
- public static final int LIST_TYPE_DIRECTORY_ACCESS = 12;
public static final int LIST_TYPE_WIFI_ACCESS = 13;
// List types that should show instant apps.
@@ -293,9 +290,6 @@
mListType = LIST_TYPE_PHOTOGRAPHY;
mSortOrder = R.id.sort_order_size;
mStorageType = args.getInt(EXTRA_STORAGE_TYPE, STORAGE_TYPE_DEFAULT);
- } else if (className.equals(Settings.DirectoryAccessSettingsActivity.class.getName())) {
- mListType = LIST_TYPE_DIRECTORY_ACCESS;
- screenTitle = R.string.directory_access;
} else if (className.equals(Settings.ChangeWifiStateActivity.class.getName())) {
mListType = LIST_TYPE_WIFI_ACCESS;
screenTitle = R.string.change_wifi_state_title;
@@ -479,8 +473,6 @@
return MetricsEvent.SYSTEM_ALERT_WINDOW_APPS;
case LIST_TYPE_MANAGE_SOURCES:
return MetricsEvent.MANAGE_EXTERNAL_SOURCES;
- case LIST_TYPE_DIRECTORY_ACCESS:
- return MetricsEvent.DIRECTORY_ACCESS;
case LIST_TYPE_WIFI_ACCESS:
return MetricsEvent.CONFIGURE_WIFI;
default:
@@ -578,9 +570,6 @@
case LIST_TYPE_PHOTOGRAPHY:
startAppInfoFragment(AppStorageSettings.class, R.string.storage_photos_videos);
break;
- case LIST_TYPE_DIRECTORY_ACCESS:
- startAppInfoFragment(DirectoryAccessDetails.class, R.string.directory_access);
- break;
case LIST_TYPE_WIFI_ACCESS:
startAppInfoFragment(ChangeWifiStateDetails.class,
R.string.change_wifi_state_title);
@@ -916,8 +905,6 @@
mExtraInfoBridge = new AppStateWriteSettingsBridge(mContext, mState, this);
} else if (mManageApplications.mListType == LIST_TYPE_MANAGE_SOURCES) {
mExtraInfoBridge = new AppStateInstallAppsBridge(mContext, mState, this);
- } else if (mManageApplications.mListType == LIST_TYPE_DIRECTORY_ACCESS) {
- mExtraInfoBridge = new AppStateDirectoryAccessBridge(mState, this);
} else if (mManageApplications.mListType == LIST_TYPE_WIFI_ACCESS) {
mExtraInfoBridge = new AppStateChangeWifiStateBridge(mContext, mState, this);
} else {
@@ -1360,9 +1347,6 @@
case LIST_TYPE_MANAGE_SOURCES:
holder.setSummary(ExternalSourcesDetails.getPreferenceSummary(mContext, entry));
break;
- case LIST_TYPE_DIRECTORY_ACCESS:
- holder.setSummary(null);
- break;
case LIST_TYPE_WIFI_ACCESS:
holder.setSummary(ChangeWifiStateDetails.getSummary(mContext, entry));
break;
diff --git a/src/com/android/settings/biometrics/BiometricEnrollActivity.java b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
new file mode 100644
index 0000000..ee35945
--- /dev/null
+++ b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
@@ -0,0 +1,60 @@
+/*
+ * 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
+ */
+
+package com.android.settings.biometrics;
+
+import android.app.settings.SettingsEnums;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.os.Bundle;
+
+import com.android.settings.biometrics.face.FaceEnrollIntroduction;
+import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction;
+import com.android.settings.core.InstrumentedActivity;
+
+/**
+ * Trampoline activity launched by the {@code android.settings.BIOMETRIC_ENROLL} action which
+ * shows the user an appropriate enrollment flow depending on the device's biometric hardware.
+ * This activity must only allow enrollment of biometrics that can be used by
+ * {@link android.hardware.biometrics.BiometricPrompt}.
+ */
+public class BiometricEnrollActivity extends InstrumentedActivity {
+
+ private static final String SETTINGS_PACKAGE = "com.android.settings";
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ final PackageManager pm = getApplicationContext().getPackageManager();
+ final Intent intent = new Intent();
+
+ // This logic may have to be modified on devices with multiple biometrics.
+ if (pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
+ intent.setClassName(SETTINGS_PACKAGE, FingerprintEnrollIntroduction.class.getName());
+ } else if (pm.hasSystemFeature(PackageManager.FEATURE_FACE)) {
+ intent.setClassName(SETTINGS_PACKAGE, FaceEnrollIntroduction.class.getName());
+ }
+
+ startActivity(intent);
+ finish();
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.BIOMETRIC_ENROLL_ACTIVITY;
+ }
+}
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollEnrolling.java b/src/com/android/settings/biometrics/face/FaceEnrollEnrolling.java
index fccb39a..b09d0aa 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollEnrolling.java
@@ -171,6 +171,11 @@
// TODO: Update the actual animation
showError("Steps: " + steps + " Remaining: " + remaining);
+
+ // TODO: Have this match any animations that UX comes up with
+ if (remaining == 0) {
+ launchFinish(mToken);
+ }
}
@Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index c3bd043..2e67ec3 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -55,6 +55,7 @@
import com.android.settings.password.ChooseLockGeneric;
import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settings.utils.AnnotationSpan;
+import com.android.settings.widget.ImeAwareEditText;
import com.android.settingslib.HelpUtils;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
@@ -708,11 +709,7 @@
public static class RenameDialog extends InstrumentedDialogFragment {
private Fingerprint mFp;
- private EditText mDialogTextField;
- private String mFingerName;
- private Boolean mTextHadFocus;
- private int mTextSelectionStart;
- private int mTextSelectionEnd;
+ private ImeAwareEditText mDialogTextField;
private AlertDialog mAlertDialog;
private boolean mDeleteInProgress;
@@ -723,11 +720,17 @@
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
mFp = getArguments().getParcelable("fingerprint");
+ final String fingerName;
+ final int textSelectionStart;
+ final int textSelectionEnd;
if (savedInstanceState != null) {
- mFingerName = savedInstanceState.getString("fingerName");
- mTextHadFocus = savedInstanceState.getBoolean("textHadFocus");
- mTextSelectionStart = savedInstanceState.getInt("startSelection");
- mTextSelectionEnd = savedInstanceState.getInt("endSelection");
+ fingerName = savedInstanceState.getString("fingerName");
+ textSelectionStart = savedInstanceState.getInt("startSelection", -1);
+ textSelectionEnd = savedInstanceState.getInt("endSelection", -1);
+ } else {
+ fingerName = null;
+ textSelectionStart = -1;
+ textSelectionEnd = -1;
}
mAlertDialog = new AlertDialog.Builder(getActivity())
.setView(R.layout.fingerprint_rename_dialog)
@@ -756,26 +759,21 @@
mAlertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
- mDialogTextField = (EditText) mAlertDialog.findViewById(
- R.id.fingerprint_rename_field);
- CharSequence name = mFingerName == null ? mFp.getName() : mFingerName;
+ mDialogTextField = mAlertDialog.findViewById(R.id.fingerprint_rename_field);
+ CharSequence name = fingerName == null ? mFp.getName() : fingerName;
mDialogTextField.setText(name);
- if (mTextHadFocus == null) {
- mDialogTextField.selectAll();
+ if (textSelectionStart != -1 && textSelectionEnd != -1) {
+ mDialogTextField.setSelection(textSelectionStart, textSelectionEnd);
} else {
- mDialogTextField.setSelection(mTextSelectionStart, mTextSelectionEnd);
+ mDialogTextField.selectAll();
}
if (mDeleteInProgress) {
mAlertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setEnabled(false);
}
mDialogTextField.requestFocus();
+ mDialogTextField.scheduleShowSoftInput();
}
});
- if (mTextHadFocus == null || mTextHadFocus) {
- // Request the IME
- mAlertDialog.getWindow().setSoftInputMode(
- WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
- }
return mAlertDialog;
}
@@ -791,7 +789,6 @@
super.onSaveInstanceState(outState);
if (mDialogTextField != null) {
outState.putString("fingerName", mDialogTextField.getText().toString());
- outState.putBoolean("textHadFocus", mDialogTextField.hasFocus());
outState.putInt("startSelection", mDialogTextField.getSelectionStart());
outState.putInt("endSelection", mDialogTextField.getSelectionEnd());
}
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintUiHelper.java b/src/com/android/settings/biometrics/fingerprint/FingerprintUiHelper.java
deleted file mode 100644
index 012f802..0000000
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintUiHelper.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (C) 2015 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.biometrics.fingerprint;
-
-import android.hardware.fingerprint.FingerprintManager;
-import android.os.CancellationSignal;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import com.android.settings.R;
-import com.android.settings.Utils;
-
-/**
- * Small helper class to manage text/icon around fingerprint authentication UI.
- */
-public class FingerprintUiHelper extends FingerprintManager.AuthenticationCallback {
-
- private static final long ERROR_TIMEOUT = 1300;
-
- private ImageView mIcon;
- private TextView mErrorTextView;
- private CancellationSignal mCancellationSignal;
- private int mUserId;
-
- private Callback mCallback;
- private FingerprintManager mFingerprintManager;
-
- public FingerprintUiHelper(ImageView icon, TextView errorTextView, Callback callback,
- int userId) {
- mFingerprintManager = Utils.getFingerprintManagerOrNull(icon.getContext());
- mIcon = icon;
- mErrorTextView = errorTextView;
- mCallback = callback;
- mUserId = userId;
- }
-
- public void startListening() {
- if (mFingerprintManager != null && mFingerprintManager.isHardwareDetected()
- && mFingerprintManager.getEnrolledFingerprints(mUserId).size() > 0) {
- mCancellationSignal = new CancellationSignal();
- mFingerprintManager.setActiveUser(mUserId);
- mFingerprintManager.authenticate(
- null, mCancellationSignal, 0 /* flags */, this, null, mUserId);
- setFingerprintIconVisibility(true);
- mIcon.setImageResource(R.drawable.ic_fingerprint);
- }
- }
-
- public void stopListening() {
- if (mCancellationSignal != null) {
- mCancellationSignal.cancel();
- mCancellationSignal = null;
- }
- }
-
- public boolean isListening() {
- return mCancellationSignal != null && !mCancellationSignal.isCanceled();
- }
-
- private void setFingerprintIconVisibility(boolean visible) {
- mIcon.setVisibility(visible ? View.VISIBLE : View.GONE);
- mCallback.onFingerprintIconVisibilityChanged(visible);
- }
-
- @Override
- public void onAuthenticationError(int errMsgId, CharSequence errString) {
- if (errMsgId == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
- // Only happens if we get preempted by another activity. Ignored.
- return;
- }
- showError(errString);
- setFingerprintIconVisibility(false);
- }
-
- @Override
- public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) {
- showError(helpString);
- }
-
- @Override
- public void onAuthenticationFailed() {
- showError(mIcon.getResources().getString(
- R.string.fingerprint_not_recognized));
- }
-
- @Override
- public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) {
- mIcon.setImageResource(R.drawable.ic_fingerprint_success);
- mCallback.onAuthenticated();
- }
-
- private void showError(CharSequence error) {
- if (!isListening()) {
- return;
- }
-
- mIcon.setImageResource(R.drawable.ic_fingerprint_error);
- mErrorTextView.setText(error);
- mErrorTextView.removeCallbacks(mResetErrorTextRunnable);
- mErrorTextView.postDelayed(mResetErrorTextRunnable, ERROR_TIMEOUT);
- }
-
- private Runnable mResetErrorTextRunnable = new Runnable() {
- @Override
- public void run() {
- mErrorTextView.setText("");
- mIcon.setImageResource(R.drawable.ic_fingerprint);
- }
- };
-
- public interface Callback {
- void onAuthenticated();
- void onFingerprintIconVisibilityChanged(boolean visible);
- }
-}
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java
index fb6cd56..1795c07 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java
@@ -65,12 +65,10 @@
.getBtClassDrawableWithDescription(mContext, mCachedDevice,
mContext.getResources().getFraction(R.fraction.bt_battery_scale_fraction, 1, 1));
String summaryText = mCachedDevice.getConnectionSummary();
- // If both the hearing aids are connected, two battery status should be shown.
- final String pairDeviceSummary = mDeviceManager
- .getHearingAidPairDeviceSummary(mCachedDevice);
- if (pairDeviceSummary != null) {
- mHeaderController.setSecondSummary(pairDeviceSummary);
- }
+ // If both the hearing aids are connected, two device status should be shown.
+ // If Second Summary is unavailable, to set it to null.
+ mHeaderController.setSecondSummary(
+ mDeviceManager.getSubDeviceSummary(mCachedDevice));
mHeaderController.setLabel(mCachedDevice.getName());
mHeaderController.setIcon(pair.first);
mHeaderController.setIconContentDescription(pair.second);
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsMacAddressController.java b/src/com/android/settings/bluetooth/BluetoothDetailsMacAddressController.java
index 71a415d..987dbe4 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsMacAddressController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsMacAddressController.java
@@ -51,6 +51,8 @@
@Override
protected void refresh() {
+ mFooterPreference.setTitle(mContext.getString(
+ R.string.bluetooth_device_mac_address, mCachedDevice.getAddress()));
}
@Override
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
index cac4565..eab2a28 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
@@ -171,6 +171,15 @@
}
@Override
+ public void onAclConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state) {
+ if (DBG) {
+ Log.d(TAG, "onAclConnectionStateChanged() device: " + cachedDevice.getName()
+ + ", state: " + state);
+ }
+ update(cachedDevice);
+ }
+
+ @Override
public void onServiceConnected() {
// When bluetooth service connected update the UI
forceUpdate();
@@ -230,9 +239,19 @@
*/
protected void removePreference(CachedBluetoothDevice cachedDevice) {
final BluetoothDevice device = cachedDevice.getDevice();
+ final CachedBluetoothDevice subCachedDevice = cachedDevice.getSubDevice();
if (mPreferenceMap.containsKey(device)) {
mDevicePreferenceCallback.onDeviceRemoved(mPreferenceMap.get(device));
mPreferenceMap.remove(device);
+ } else if (subCachedDevice != null) {
+ // When doing remove, to check if preference maps to sub device.
+ // This would happen when connection state is changed in detail page that there is no
+ // callback from SettingsLib.
+ final BluetoothDevice subDevice = subCachedDevice.getDevice();
+ if (mPreferenceMap.containsKey(subDevice)) {
+ mDevicePreferenceCallback.onDeviceRemoved(mPreferenceMap.get(subDevice));
+ mPreferenceMap.remove(subDevice);
+ }
}
}
@@ -272,6 +291,6 @@
", is connected : " + device.isConnected() + " , is profile connected : "
+ cachedDevice.isConnected());
}
- return device.getBondState() == BluetoothDevice.BOND_BONDED && cachedDevice.isConnected();
+ return device.getBondState() == BluetoothDevice.BOND_BONDED && device.isConnected();
}
}
diff --git a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java
index d434637..385b5d9 100644
--- a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java
+++ b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java
@@ -261,10 +261,12 @@
cacheRemoveAllPrefs(preferenceGroup);
preferenceGroup.setTitle(titleId);
mDeviceListGroup = preferenceGroup;
- setFilter(filter);
if (addCachedDevices) {
+ // Don't show bonded devices when screen turned back on
+ setFilter(BluetoothDeviceFilter.UNBONDED_DEVICE_FILTER);
addCachedDevices();
}
+ setFilter(filter);
preferenceGroup.setEnabled(true);
removeCachedPrefs(preferenceGroup);
}
diff --git a/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
index 127cb03..6d034fd 100644
--- a/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
@@ -46,7 +46,7 @@
", is connected : " + device.isConnected() + ", is profile connected : "
+ cachedDevice.isConnected());
}
- return device.getBondState() == BluetoothDevice.BOND_BONDED && !cachedDevice.isConnected();
+ return device.getBondState() == BluetoothDevice.BOND_BONDED && !device.isConnected();
}
@Override
diff --git a/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java
index 5c678a9..54842f7 100644
--- a/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java
@@ -74,7 +74,6 @@
final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new BluetoothFilesPreferenceController(context));
- controllers.add(new BluetoothOnWhileDrivingPreferenceController(context));
final PrintSettingPreferenceController printerController =
new PrintSettingPreferenceController(context);
diff --git a/src/com/android/settings/connecteddevice/BluetoothOnWhileDrivingPreferenceController.java b/src/com/android/settings/connecteddevice/BluetoothOnWhileDrivingPreferenceController.java
deleted file mode 100644
index 6d4e8b8..0000000
--- a/src/com/android/settings/connecteddevice/BluetoothOnWhileDrivingPreferenceController.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.connecteddevice;
-
-import android.content.Context;
-import android.provider.Settings;
-import android.util.FeatureFlagUtils;
-
-import com.android.settings.core.FeatureFlags;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settings.core.TogglePreferenceController;
-
-/** Handles a toggle for a setting to turn on Bluetooth while driving. * */
-public class BluetoothOnWhileDrivingPreferenceController extends TogglePreferenceController
- implements PreferenceControllerMixin {
- static final String KEY_BLUETOOTH_ON_DRIVING = "bluetooth_on_while_driving";
-
- public BluetoothOnWhileDrivingPreferenceController(Context context) {
- super(context, KEY_BLUETOOTH_ON_DRIVING);
- }
-
- @Override
- public int getAvailabilityStatus() {
- if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.BLUETOOTH_WHILE_DRIVING)) {
- return AVAILABLE;
- }
- return CONDITIONALLY_UNAVAILABLE;
- }
-
- @Override
- public boolean isChecked() {
- return Settings.Secure.getInt(
- mContext.getContentResolver(),
- Settings.Secure.BLUETOOTH_ON_WHILE_DRIVING,
- 0)
- != 0;
- }
-
- @Override
- public boolean setChecked(boolean isChecked) {
- final int value = isChecked ? 1 : 0;
- return Settings.Secure.putInt(
- mContext.getContentResolver(), Settings.Secure.BLUETOOTH_ON_WHILE_DRIVING, value);
- }
-}
diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
index e9b076e..223b78f 100644
--- a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
@@ -15,7 +15,6 @@
*/
package com.android.settings.connecteddevice;
-import android.app.Activity;
import android.content.Context;
import android.provider.SearchIndexableResource;
@@ -24,7 +23,6 @@
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -92,35 +90,6 @@
use(DiscoverableFooterPreferenceController.class).init(this);
}
- @VisibleForTesting
- static class SummaryProvider implements SummaryLoader.SummaryProvider {
-
- private final Context mContext;
- private final SummaryLoader mSummaryLoader;
-
- public SummaryProvider(Context context, SummaryLoader summaryLoader) {
- mContext = context;
- mSummaryLoader = summaryLoader;
- }
-
- @Override
- public void setListening(boolean listening) {
- if (listening) {
- mSummaryLoader.setSummary(this, mContext.getText(AdvancedConnectedDeviceController.
- getConnectedDevicesSummaryResourceId(mContext)));
- }
- }
- }
-
- public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
- = new SummaryLoader.SummaryProviderFactory() {
- @Override
- public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity,
- SummaryLoader summaryLoader) {
- return new SummaryProvider(activity, summaryLoader);
- }
- };
-
/**
* For Search.
*/
diff --git a/src/com/android/settings/core/FeatureFlags.java b/src/com/android/settings/core/FeatureFlags.java
index 0fe37e9..0a26b79 100644
--- a/src/com/android/settings/core/FeatureFlags.java
+++ b/src/com/android/settings/core/FeatureFlags.java
@@ -20,10 +20,11 @@
* This class keeps track of all feature flags in Settings.
*/
public class FeatureFlags {
- public static final String BLUETOOTH_WHILE_DRIVING = "settings_bluetooth_while_driving";
public static final String AUDIO_SWITCHER_SETTINGS = "settings_audio_switcher";
public static final String DYNAMIC_HOMEPAGE = "settings_dynamic_homepage";
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 DATA_USAGE_V2 = "settings_data_usage_v2";
+ public static final String WIFI_MAC_RANDOMIZATION = "settings_wifi_mac_randomization";
+ public static final String NETWORK_INTERNET_V2 = "settings_network_and_internet_v2";
}
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index 4346973..f61cb0c 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -34,7 +34,6 @@
import com.android.settings.accounts.ManagedProfileSettings;
import com.android.settings.applications.AppAndNotificationDashboardFragment;
import com.android.settings.applications.DefaultAppSettings;
-import com.android.settings.applications.DirectoryAccessDetails;
import com.android.settings.applications.ProcessStatsSummary;
import com.android.settings.applications.ProcessStatsUi;
import com.android.settings.applications.UsageAccessDetails;
@@ -258,7 +257,6 @@
LockscreenDashboardFragment.class.getName(),
BluetoothDeviceDetailsFragment.class.getName(),
DataUsageList.class.getName(),
- DirectoryAccessDetails.class.getName(),
ToggleBackupSettingFragment.class.getName(),
PreviouslyConnectedDeviceDashboardFragment.class.getName(),
};
diff --git a/src/com/android/settings/dashboard/DashboardAdapter.java b/src/com/android/settings/dashboard/DashboardAdapter.java
deleted file mode 100644
index 307f6ba..0000000
--- a/src/com/android/settings/dashboard/DashboardAdapter.java
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- * Copyright (C) 2015 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.dashboard;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.Icon;
-import android.os.Bundle;
-import android.service.settings.suggestions.Suggestion;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.fragment.app.FragmentActivity;
-import androidx.recyclerview.widget.DiffUtil;
-import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.R;
-import com.android.settings.R.id;
-import com.android.settings.dashboard.DashboardData.ConditionHeaderData;
-import com.android.settings.dashboard.suggestions.SuggestionAdapter;
-import com.android.settings.homepage.conditional.ConditionAdapter;
-import com.android.settings.homepage.conditional.ConditionManager;
-import com.android.settings.homepage.conditional.ConditionalCard;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.widget.RoundedHomepageIcon;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
-import com.android.settingslib.drawer.DashboardCategory;
-import com.android.settingslib.drawer.Tile;
-import com.android.settingslib.suggestions.SuggestionControllerMixinCompat;
-import com.android.settingslib.utils.IconCache;
-
-import java.util.List;
-
-public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.DashboardItemHolder>
- implements SummaryLoader.SummaryConsumer, SuggestionAdapter.Callback, LifecycleObserver,
- OnSaveInstanceState {
- public static final String TAG = "DashboardAdapter";
- private static final String STATE_CATEGORY_LIST = "category_list";
-
- @VisibleForTesting
- static final String STATE_CONDITION_EXPANDED = "condition_expanded";
-
- private final IconCache mCache;
- private final Context mContext;
- private final MetricsFeatureProvider mMetricsFeatureProvider;
- private final DashboardFeatureProvider mDashboardFeatureProvider;
- private boolean mFirstFrameDrawn;
- private RecyclerView mRecyclerView;
- private SuggestionAdapter mSuggestionAdapter;
- private ConditionManager mConditionManager;
-
- @VisibleForTesting
- DashboardData mDashboardData;
-
- private View.OnClickListener mTileClickListener = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- //TODO: get rid of setTag/getTag
- mDashboardFeatureProvider.openTileIntent((FragmentActivity) mContext,
- (Tile) v.getTag());
- }
- };
-
- public DashboardAdapter(Context context, Bundle savedInstanceState,
- ConditionManager conditionManager,
- SuggestionControllerMixinCompat suggestionControllerMixin, Lifecycle lifecycle) {
-
- DashboardCategory category = null;
- boolean conditionExpanded = false;
-
- mContext = context;
- final FeatureFactory factory = FeatureFactory.getFactory(context);
- mMetricsFeatureProvider = factory.getMetricsFeatureProvider();
- mDashboardFeatureProvider = factory.getDashboardFeatureProvider(context);
- mCache = new IconCache(context);
- mConditionManager = conditionManager;
- mSuggestionAdapter = new SuggestionAdapter(mContext, suggestionControllerMixin,
- savedInstanceState, this /* callback */, lifecycle);
-
- setHasStableIds(true);
-
- if (savedInstanceState != null) {
- category = savedInstanceState.getParcelable(STATE_CATEGORY_LIST);
- conditionExpanded = savedInstanceState.getBoolean(
- STATE_CONDITION_EXPANDED, conditionExpanded);
- }
-
- if (lifecycle != null) {
- lifecycle.addObserver(this);
- }
-
- mDashboardData = new DashboardData.Builder()
- .setSuggestions(mSuggestionAdapter.getSuggestions())
- .setCategory(category)
- .setConditionExpanded(conditionExpanded)
- .build();
- }
-
- public void setSuggestions(List<Suggestion> data) {
- final DashboardData prevData = mDashboardData;
- mDashboardData = new DashboardData.Builder(prevData)
- .setSuggestions(data)
- .build();
- notifyDashboardDataChanged(prevData);
- }
-
- public void setCategory(DashboardCategory category) {
- final DashboardData prevData = mDashboardData;
- Log.d(TAG, "adapter setCategory called");
- mDashboardData = new DashboardData.Builder(prevData)
- .setCategory(category)
- .build();
- notifyDashboardDataChanged(prevData);
- }
-
- public void setConditions(List<ConditionalCard> conditions) {
- final DashboardData prevData = mDashboardData;
- Log.d(TAG, "adapter setConditions called");
- mDashboardData = new DashboardData.Builder(prevData)
- .setConditions(conditions)
- .build();
- notifyDashboardDataChanged(prevData);
- }
-
- @Override
- public void onSuggestionClosed(Suggestion suggestion) {
- final List<Suggestion> list = mDashboardData.getSuggestions();
- if (list == null || list.size() == 0 || !list.remove(suggestion)) {
- return;
- }
- if (list.isEmpty()) {
- // The only suggestion is dismissed, and the the empty suggestion container will
- // remain as the dashboard item. Need to refresh the dashboard list.
- setSuggestions(null);
- } else {
- setSuggestions(list);
- }
- }
-
- @Override
- public void notifySummaryChanged(Tile tile) {
- final int position = mDashboardData.getPositionByTile(tile);
- if (position != DashboardData.POSITION_NOT_FOUND) {
- // Since usually tile in parameter and tile in mCategories are same instance,
- // which is hard to be detected by DiffUtil, so we notifyItemChanged directly.
- notifyItemChanged(position, mDashboardData.getItemTypeByPosition(position));
- }
- }
-
- @Override
- public DashboardItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- final View view = LayoutInflater.from(parent.getContext()).inflate(viewType, parent, false);
- if (viewType == R.layout.condition_header) {
- return new ConditionHeaderHolder(view);
- }
- if (viewType == R.layout.condition_container) {
- return new ConditionContainerHolder(view);
- }
- if (viewType == R.layout.suggestion_container) {
- return new SuggestionContainerHolder(view);
- }
- return new DashboardItemHolder(view);
- }
-
- @Override
- public void onBindViewHolder(DashboardItemHolder holder, int position) {
- final int type = mDashboardData.getItemTypeByPosition(position);
- switch (type) {
- case R.layout.dashboard_tile:
- final Tile tile = (Tile) mDashboardData.getItemEntityByPosition(position);
- onBindTile(holder, tile);
- holder.itemView.setTag(tile);
- holder.itemView.setOnClickListener(mTileClickListener);
- break;
- case R.layout.suggestion_container:
- onBindSuggestion((SuggestionContainerHolder) holder, position);
- break;
- case R.layout.condition_container:
- onBindCondition((ConditionContainerHolder) holder, position);
- break;
- case R.layout.condition_header:
- onBindConditionHeader((ConditionHeaderHolder) holder,
- (ConditionHeaderData) mDashboardData.getItemEntityByPosition(position));
- break;
- case R.layout.condition_footer:
- holder.itemView.setOnClickListener(v -> {
- mMetricsFeatureProvider.action(mContext,
- MetricsEvent.ACTION_SETTINGS_CONDITION_EXPAND, false);
- DashboardData prevData = mDashboardData;
- mDashboardData = new DashboardData.Builder(prevData).
- setConditionExpanded(false).build();
- notifyDashboardDataChanged(prevData);
- scrollToTopOfConditions();
- });
- break;
- }
- }
-
- @Override
- public long getItemId(int position) {
- return mDashboardData.getItemIdByPosition(position);
- }
-
- @Override
- public int getItemViewType(int position) {
- return mDashboardData.getItemTypeByPosition(position);
- }
-
- @Override
- public int getItemCount() {
- return mDashboardData.size();
- }
-
- @Override
- public void onAttachedToRecyclerView(RecyclerView recyclerView) {
- super.onAttachedToRecyclerView(recyclerView);
- // save the view so that we can scroll it when expanding/collapsing the suggestion and
- // conditions.
- mRecyclerView = recyclerView;
- }
-
- public Object getItem(long itemId) {
- return mDashboardData.getItemEntityById(itemId);
- }
-
- @VisibleForTesting
- void notifyDashboardDataChanged(DashboardData prevData) {
- if (mFirstFrameDrawn && prevData != null) {
- final DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new DashboardData
- .ItemsDataDiffCallback(prevData.getItemList(), mDashboardData.getItemList()));
- diffResult.dispatchUpdatesTo(this);
- } else {
- mFirstFrameDrawn = true;
- notifyDataSetChanged();
- }
- }
-
- @VisibleForTesting
- void onBindConditionHeader(final ConditionHeaderHolder holder, ConditionHeaderData data) {
- holder.icon.setImageDrawable(data.conditionIcons.get(0));
- if (data.conditionCount == 1) {
- holder.title.setText(data.title);
- holder.summary.setText(null);
- holder.icons.setVisibility(View.INVISIBLE);
- } else {
- holder.title.setText(null);
- holder.summary.setText(
- mContext.getString(R.string.condition_summary, data.conditionCount));
- updateConditionIcons(data.conditionIcons, holder.icons);
- holder.icons.setVisibility(View.VISIBLE);
- }
-
- holder.itemView.setOnClickListener(v -> {
- mMetricsFeatureProvider.action(mContext,
- MetricsEvent.ACTION_SETTINGS_CONDITION_EXPAND, true);
- final DashboardData prevData = mDashboardData;
- mDashboardData = new DashboardData.Builder(prevData)
- .setConditionExpanded(true).build();
- notifyDashboardDataChanged(prevData);
- scrollToTopOfConditions();
- });
- }
-
- @VisibleForTesting
- void onBindCondition(final ConditionContainerHolder holder, int position) {
- final List<ConditionalCard> conditions =
- (List) mDashboardData.getItemEntityByPosition(position);
- final ConditionAdapter adapter = new ConditionAdapter(
- mContext, mConditionManager, conditions,
- mDashboardData.isConditionExpanded());
- holder.data.setAdapter(adapter);
- holder.data.setLayoutManager(new LinearLayoutManager(mContext));
- }
-
- @VisibleForTesting
- void onBindSuggestion(final SuggestionContainerHolder holder, int position) {
- // If there is suggestions to show, it will be at position 0 as we don't show the suggestion
- // header anymore.
- final List<Suggestion> suggestions =
- (List<Suggestion>) mDashboardData.getItemEntityByPosition(position);
- if (suggestions != null && suggestions.size() > 0) {
- mSuggestionAdapter.setSuggestions(suggestions);
- holder.data.setAdapter(mSuggestionAdapter);
- }
- final LinearLayoutManager layoutManager = new LinearLayoutManager(mContext);
- layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
- holder.data.setLayoutManager(layoutManager);
- }
-
- @VisibleForTesting
- void onBindTile(DashboardItemHolder holder, Tile tile) {
- Icon tileIcon = tile.getIcon(mContext);
- Drawable icon = mCache.getIcon(tileIcon);
- if (!TextUtils.equals(tileIcon.getResPackage(), mContext.getPackageName())
- && !(icon instanceof RoundedHomepageIcon)) {
- icon = new RoundedHomepageIcon(mContext, icon);
- ((RoundedHomepageIcon) icon).setBackgroundColor(mContext, tile);
- mCache.updateIcon(tileIcon, icon);
- }
- holder.icon.setImageDrawable(icon);
- holder.title.setText(tile.getTitle(mContext));
- final CharSequence summary = tile.getSummary(mContext);
- if (!TextUtils.isEmpty(summary)) {
- holder.summary.setText(summary);
- holder.summary.setVisibility(View.VISIBLE);
- } else {
- holder.summary.setVisibility(View.GONE);
- }
- }
-
- @Override
- public void onSaveInstanceState(Bundle outState) {
- final DashboardCategory category = mDashboardData.getCategory();
- if (category != null) {
- outState.putParcelable(STATE_CATEGORY_LIST, category);
- }
- outState.putBoolean(STATE_CONDITION_EXPANDED, mDashboardData.isConditionExpanded());
- }
-
- private void updateConditionIcons(List<Drawable> icons, ViewGroup parent) {
- if (icons == null || icons.size() < 2) {
- parent.setVisibility(View.INVISIBLE);
- return;
- }
- final LayoutInflater inflater = LayoutInflater.from(parent.getContext());
- parent.removeAllViews();
- for (int i = 1, size = icons.size(); i < size; i++) {
- ImageView icon = (ImageView) inflater.inflate(
- R.layout.condition_header_icon, parent, false);
- icon.setImageDrawable(icons.get(i));
- parent.addView(icon);
- }
- parent.setVisibility(View.VISIBLE);
- }
-
- private void scrollToTopOfConditions() {
- mRecyclerView.scrollToPosition(mDashboardData.hasSuggestion() ? 1 : 0);
- }
-
- public static class DashboardItemHolder extends RecyclerView.ViewHolder {
- public final ImageView icon;
- public final TextView title;
- public final TextView summary;
-
- public DashboardItemHolder(View itemView) {
- super(itemView);
- icon = itemView.findViewById(android.R.id.icon);
- title = itemView.findViewById(android.R.id.title);
- summary = itemView.findViewById(android.R.id.summary);
- }
- }
-
- public static class ConditionHeaderHolder extends DashboardItemHolder {
- public final LinearLayout icons;
- public final ImageView expandIndicator;
-
- public ConditionHeaderHolder(View itemView) {
- super(itemView);
- icons = itemView.findViewById(id.additional_icons);
- expandIndicator = itemView.findViewById(id.expand_indicator);
- }
- }
-
- public static class ConditionContainerHolder extends DashboardItemHolder {
- public final RecyclerView data;
-
- public ConditionContainerHolder(View itemView) {
- super(itemView);
- data = itemView.findViewById(id.data);
- }
- }
-
- public static class SuggestionContainerHolder extends DashboardItemHolder {
- public final RecyclerView data;
-
- public SuggestionContainerHolder(View itemView) {
- super(itemView);
- data = itemView.findViewById(id.suggestion_list);
- }
- }
-
-}
diff --git a/src/com/android/settings/dashboard/DashboardData.java b/src/com/android/settings/dashboard/DashboardData.java
deleted file mode 100644
index 5265b82..0000000
--- a/src/com/android/settings/dashboard/DashboardData.java
+++ /dev/null
@@ -1,416 +0,0 @@
-/*
- * Copyright (C) 2016 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.dashboard;
-
-import android.annotation.IntDef;
-import android.graphics.drawable.Drawable;
-import android.service.settings.suggestions.Suggestion;
-import android.text.TextUtils;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.recyclerview.widget.DiffUtil;
-
-import com.android.settings.R;
-import com.android.settings.homepage.conditional.ConditionalCard;
-import com.android.settingslib.drawer.DashboardCategory;
-import com.android.settingslib.drawer.Tile;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Description about data list used in the DashboardAdapter. In the data list each item can be
- * Condition, suggestion or category tile.
- * <p>
- * ItemsData has inner class Item, which represents the Item in data list.
- */
-public class DashboardData {
- public static final int POSITION_NOT_FOUND = -1;
-
- // stable id for different type of items.
- @VisibleForTesting
- static final int STABLE_ID_SUGGESTION_CONTAINER = 0;
- static final int STABLE_ID_SUGGESTION_CONDITION_DIVIDER = 1;
- @VisibleForTesting
- static final int STABLE_ID_CONDITION_HEADER = 2;
- @VisibleForTesting
- static final int STABLE_ID_CONDITION_FOOTER = 3;
- @VisibleForTesting
- static final int STABLE_ID_CONDITION_CONTAINER = 4;
-
- private final List<Item> mItems;
- private final DashboardCategory mCategory;
- private final List<ConditionalCard> mConditions;
- private final List<Suggestion> mSuggestions;
- private final boolean mConditionExpanded;
-
- private DashboardData(Builder builder) {
- mCategory = builder.mCategory;
- mConditions = builder.mConditions;
- mSuggestions = builder.mSuggestions;
- mConditionExpanded = builder.mConditionExpanded;
- mItems = new ArrayList<>();
-
- buildItemsData();
- }
-
- public int getItemIdByPosition(int position) {
- return mItems.get(position).id;
- }
-
- public int getItemTypeByPosition(int position) {
- return mItems.get(position).type;
- }
-
- public Object getItemEntityByPosition(int position) {
- return mItems.get(position).entity;
- }
-
- public List<Item> getItemList() {
- return mItems;
- }
-
- public int size() {
- return mItems.size();
- }
-
- public Object getItemEntityById(long id) {
- for (final Item item : mItems) {
- if (item.id == id) {
- return item.entity;
- }
- }
- return null;
- }
-
- public DashboardCategory getCategory() {
- return mCategory;
- }
-
- public List<ConditionalCard> getConditions() {
- return mConditions;
- }
-
- public List<Suggestion> getSuggestions() {
- return mSuggestions;
- }
-
- public boolean hasSuggestion() {
- return sizeOf(mSuggestions) > 0;
- }
-
- public boolean isConditionExpanded() {
- return mConditionExpanded;
- }
-
- /**
- * Find the position of the object in mItems list, using the equals method to compare
- *
- * @param entity the object that need to be found in list
- * @return position of the object, return POSITION_NOT_FOUND if object isn't in the list
- */
- public int getPositionByEntity(Object entity) {
- if (entity == null) return POSITION_NOT_FOUND;
-
- final int size = mItems.size();
- for (int i = 0; i < size; i++) {
- final Object item = mItems.get(i).entity;
- if (entity.equals(item)) {
- return i;
- }
- }
-
- return POSITION_NOT_FOUND;
- }
-
- /**
- * Find the position of the Tile object.
- * <p>
- * First, try to find the exact identical instance of the tile object, if not found,
- * then try to find a tile has the same id.
- *
- * @param tile tile that need to be found
- * @return position of the object, return INDEX_NOT_FOUND if object isn't in the list
- */
- public int getPositionByTile(Tile tile) {
- final int size = mItems.size();
- for (int i = 0; i < size; i++) {
- final Object entity = mItems.get(i).entity;
- if (entity == tile) {
- return i;
- } else if (entity instanceof Tile && tile.getId() == ((Tile) entity).getId()) {
- return i;
- }
- }
-
- return POSITION_NOT_FOUND;
- }
-
- /**
- * Add item into list when {@paramref add} is true.
- *
- * @param item maybe {@link ConditionalCard}, {@link Tile}, {@link DashboardCategory}
- * or null
- * @param type type of the item, and value is the layout id
- * @param stableId The stable id for this item
- * @param add flag about whether to add item into list
- */
- private void addToItemList(Object item, int type, int stableId, boolean add) {
- if (add) {
- mItems.add(new Item(item, type, stableId));
- }
- }
-
- /**
- * Build the mItems list using mConditions, mSuggestions, mCategories data
- * and mIsShowingAll, mConditionExpanded flag.
- */
- private void buildItemsData() {
- final List<ConditionalCard> conditions = mConditions;
- final boolean hasConditions = sizeOf(conditions) > 0;
-
- final List<Suggestion> suggestions = mSuggestions;
- final boolean hasSuggestions = sizeOf(suggestions) > 0;
-
- /* Suggestion container. This is the card view that contains the list of suggestions.
- * This will be added whenever the suggestion list is not empty */
- addToItemList(suggestions, R.layout.suggestion_container,
- STABLE_ID_SUGGESTION_CONTAINER, hasSuggestions);
-
- /* Divider between suggestion and conditions if both are present. */
- addToItemList(null /* item */, R.layout.horizontal_divider,
- STABLE_ID_SUGGESTION_CONDITION_DIVIDER, hasSuggestions && hasConditions);
-
- /* Condition header. This will be present when there is condition and it is collapsed */
- addToItemList(new ConditionHeaderData(conditions),
- R.layout.condition_header,
- STABLE_ID_CONDITION_HEADER, hasConditions && !mConditionExpanded);
-
- /* Condition container. This is the card view that contains the list of conditions.
- * This will be added whenever the condition list is not empty and expanded */
- addToItemList(conditions, R.layout.condition_container,
- STABLE_ID_CONDITION_CONTAINER, hasConditions && mConditionExpanded);
-
- /* Condition footer. This will be present when there is condition and it is expanded */
- addToItemList(null /* item */, R.layout.condition_footer,
- STABLE_ID_CONDITION_FOOTER, hasConditions && mConditionExpanded);
-
- if (mCategory != null) {
- final List<Tile> tiles = mCategory.getTiles();
- for (int i = 0; i < tiles.size(); i++) {
- final Tile tile = tiles.get(i);
- addToItemList(tile, R.layout.dashboard_tile, tile.getId(),
- true /* add */);
- }
- }
- }
-
- private static int sizeOf(List<?> list) {
- return list == null ? 0 : list.size();
- }
-
- /**
- * Builder used to build the ItemsData
- */
- public static class Builder {
- private DashboardCategory mCategory;
- private List<ConditionalCard> mConditions;
- private List<Suggestion> mSuggestions;
- private boolean mConditionExpanded;
-
- public Builder() {
- }
-
- public Builder(DashboardData dashboardData) {
- mCategory = dashboardData.mCategory;
- mConditions = dashboardData.mConditions;
- mSuggestions = dashboardData.mSuggestions;
- mConditionExpanded = dashboardData.mConditionExpanded;
- }
-
- public Builder setCategory(DashboardCategory category) {
- this.mCategory = category;
- return this;
- }
-
- public Builder setConditions(List<ConditionalCard> conditions) {
- this.mConditions = conditions;
- return this;
- }
-
- public Builder setSuggestions(List<Suggestion> suggestions) {
- this.mSuggestions = suggestions;
- return this;
- }
-
- public Builder setConditionExpanded(boolean expanded) {
- this.mConditionExpanded = expanded;
- return this;
- }
-
- public DashboardData build() {
- return new DashboardData(this);
- }
- }
-
- /**
- * A DiffCallback to calculate the difference between old and new Item
- * List in DashboardData
- */
- public static class ItemsDataDiffCallback extends DiffUtil.Callback {
- final private List<Item> mOldItems;
- final private List<Item> mNewItems;
-
- public ItemsDataDiffCallback(List<Item> oldItems, List<Item> newItems) {
- mOldItems = oldItems;
- mNewItems = newItems;
- }
-
- @Override
- public int getOldListSize() {
- return mOldItems.size();
- }
-
- @Override
- public int getNewListSize() {
- return mNewItems.size();
- }
-
- @Override
- public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) {
- return mOldItems.get(oldItemPosition).id == mNewItems.get(newItemPosition).id;
- }
-
- @Override
- public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) {
- return mOldItems.get(oldItemPosition).equals(mNewItems.get(newItemPosition));
- }
-
- }
-
- /**
- * An item contains the data needed in the DashboardData.
- */
- static class Item {
- // valid types in field type
- private static final int TYPE_DASHBOARD_TILE = R.layout.dashboard_tile;
- private static final int TYPE_SUGGESTION_CONTAINER =
- R.layout.suggestion_container;
- private static final int TYPE_CONDITION_CONTAINER =
- R.layout.condition_container;
- private static final int TYPE_CONDITION_HEADER =
- R.layout.condition_header;
- private static final int TYPE_CONDITION_FOOTER =
- R.layout.condition_footer;
- private static final int TYPE_SUGGESTION_CONDITION_DIVIDER = R.layout.horizontal_divider;
-
- @IntDef({TYPE_DASHBOARD_TILE, TYPE_SUGGESTION_CONTAINER, TYPE_CONDITION_CONTAINER,
- TYPE_CONDITION_HEADER, TYPE_CONDITION_FOOTER, TYPE_SUGGESTION_CONDITION_DIVIDER})
- @Retention(RetentionPolicy.SOURCE)
- public @interface ItemTypes {
- }
-
- /**
- * The main data object in item, usually is a {@link Tile}, {@link ConditionalCard}
- * object. This object can also be null when the
- * item is an divider line. Please refer to {@link #buildItemsData()} for
- * detail usage of the Item.
- */
- public final Object entity;
-
- /**
- * The type of item, value inside is the layout id(e.g. R.layout.dashboard_tile)
- */
- @ItemTypes
- public final int type;
-
- /**
- * Id of this item, used in the {@link ItemsDataDiffCallback} to identify the same item.
- */
- public final int id;
-
- public Item(Object entity, @ItemTypes int type, int id) {
- this.entity = entity;
- this.type = type;
- this.id = id;
- }
-
- /**
- * Override it to make comparision in the {@link ItemsDataDiffCallback}
- *
- * @param obj object to compared with
- * @return true if the same object or has equal value.
- */
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
-
- if (!(obj instanceof Item)) {
- return false;
- }
-
- final Item targetItem = (Item) obj;
- if (type != targetItem.type || id != targetItem.id) {
- return false;
- }
-
- switch (type) {
- case TYPE_DASHBOARD_TILE:
- final Tile localTile = (Tile) entity;
- final Tile targetTile = (Tile) targetItem.entity;
-
- // Only check id and summary for dashboard tile
- return localTile.getId() == targetTile.getId()
- && TextUtils.equals(
- localTile.getSummaryReference(),
- targetTile.getSummaryReference());
- case TYPE_SUGGESTION_CONTAINER:
- case TYPE_CONDITION_CONTAINER:
- // Fall through to default
- default:
- return entity == null ? targetItem.entity == null
- : entity.equals(targetItem.entity);
- }
- }
- }
-
- /**
- * This class contains the data needed to build the suggestion/condition header. The data can
- * also be used to check the diff in DiffUtil.Callback
- */
- public static class ConditionHeaderData {
- public final List<Drawable> conditionIcons;
- public final CharSequence title;
- public final int conditionCount;
-
- public ConditionHeaderData(List<ConditionalCard> conditions) {
- conditionCount = sizeOf(conditions);
- title = conditionCount > 0 ? conditions.get(0).getTitle() : null;
- conditionIcons = new ArrayList<>();
- if (conditions == null) {
- return;
- }
- for (ConditionalCard card : conditions) {
- conditionIcons.add(card.getIcon());
- }
- }
- }
-
-}
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index be59ca1..0cda9ee 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -321,6 +321,12 @@
displayResourceTiles();
refreshDashboardTiles(TAG);
+
+ final Activity activity = getActivity();
+ if (activity != null) {
+ Log.d(TAG, "All preferences added, reporting fully drawn");
+ activity.reportFullyDrawn();
+ }
}
/**
diff --git a/src/com/android/settings/dashboard/DashboardFragmentRegistry.java b/src/com/android/settings/dashboard/DashboardFragmentRegistry.java
index 9df4a05..4c371dd 100644
--- a/src/com/android/settings/dashboard/DashboardFragmentRegistry.java
+++ b/src/com/android/settings/dashboard/DashboardFragmentRegistry.java
@@ -30,6 +30,7 @@
import com.android.settings.display.NightDisplaySettings;
import com.android.settings.fuelgauge.PowerUsageSummary;
import com.android.settings.gestures.GestureSettings;
+import com.android.settings.homepage.TopLevelSettings;
import com.android.settings.language.LanguageAndInputSettings;
import com.android.settings.network.NetworkDashboardFragment;
import com.android.settings.notification.ConfigureNotificationSettings;
@@ -61,9 +62,8 @@
static {
PARENT_TO_CATEGORY_KEY_MAP = new ArrayMap<>();
- // TODO(b/110405144): Add the mapping when IA.homepage intent-filter is is removed.
- // PARENT_TO_CATEGORY_KEY_MAP.put(TopLevelSettings.class.getName(),
- // CategoryKey.CATEGORY_HOMEPAGE);
+ PARENT_TO_CATEGORY_KEY_MAP.put(TopLevelSettings.class.getName(),
+ CategoryKey.CATEGORY_HOMEPAGE);
PARENT_TO_CATEGORY_KEY_MAP.put(
NetworkDashboardFragment.class.getName(), CategoryKey.CATEGORY_NETWORK);
PARENT_TO_CATEGORY_KEY_MAP.put(ConnectedDeviceDashboardFragment.class.getName(),
diff --git a/src/com/android/settings/dashboard/DashboardItemAnimator.java b/src/com/android/settings/dashboard/DashboardItemAnimator.java
deleted file mode 100644
index 51dd49e..0000000
--- a/src/com/android/settings/dashboard/DashboardItemAnimator.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2016 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.dashboard;
-
-import androidx.core.view.ViewCompat;
-import androidx.recyclerview.widget.DefaultItemAnimator;
-import androidx.recyclerview.widget.RecyclerView.ViewHolder;
-
-import com.android.settingslib.drawer.Tile;
-
-public class DashboardItemAnimator extends DefaultItemAnimator {
-
- @Override
- public boolean animateChange(ViewHolder oldHolder, ViewHolder newHolder, int fromX, int fromY,
- int toX, int toY) {
- final Object tag = oldHolder.itemView.getTag();
- if (tag instanceof Tile && oldHolder == newHolder) {
- // When this view has other move animation running, skip this value to avoid
- // animations interrupt each other.
- if (!isRunning()) {
- fromX += ViewCompat.getTranslationX(oldHolder.itemView);
- fromY += ViewCompat.getTranslationY(oldHolder.itemView);
- }
-
- if (fromX == toX && fromY == toY) {
- dispatchMoveFinished(oldHolder);
- return false;
- }
- }
- return super.animateChange(oldHolder, newHolder, fromX, fromY, toX, toY);
- }
-}
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
deleted file mode 100644
index 9139695..0000000
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-package com.android.settings.dashboard;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-import android.os.Handler;
-import android.service.settings.suggestions.Suggestion;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.annotation.WorkerThread;
-import androidx.loader.app.LoaderManager;
-import androidx.recyclerview.widget.LinearLayoutManager;
-
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.R;
-import com.android.settings.core.InstrumentedFragment;
-import com.android.settings.core.SettingsBaseActivity;
-import com.android.settings.core.SettingsBaseActivity.CategoryListener;
-import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
-import com.android.settings.homepage.conditional.ConditionListener;
-import com.android.settings.homepage.conditional.ConditionManager;
-import com.android.settings.homepage.conditional.FocusRecyclerView;
-import com.android.settings.homepage.conditional.FocusRecyclerView.FocusListener;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.widget.ActionBarShadowController;
-import com.android.settingslib.drawer.CategoryKey;
-import com.android.settingslib.drawer.DashboardCategory;
-import com.android.settingslib.suggestions.SuggestionControllerMixinCompat;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.List;
-
-/**
- * Deprecated in favor of {@link com.android.settings.homepage.TopLevelSettings}
- *
- * @deprecated
- */
-@Deprecated
-public class DashboardSummary extends InstrumentedFragment
- implements CategoryListener, ConditionListener,
- FocusListener, SuggestionControllerMixinCompat.SuggestionControllerHost {
- public static final boolean DEBUG = false;
- private static final boolean DEBUG_TIMING = false;
- private static final int MAX_WAIT_MILLIS = 3000;
- private static final String TAG = "DashboardSummary";
-
- private static final String STATE_SCROLL_POSITION = "scroll_position";
- private static final String STATE_CATEGORIES_CHANGE_CALLED = "categories_change_called";
-
- private final Handler mHandler = new Handler();
-
- private FocusRecyclerView mDashboard;
- private DashboardAdapter mAdapter;
- private SummaryLoader mSummaryLoader;
- private ConditionManager mConditionManager;
- private LinearLayoutManager mLayoutManager;
- private SuggestionControllerMixinCompat mSuggestionControllerMixin;
- private DashboardFeatureProvider mDashboardFeatureProvider;
- @VisibleForTesting
- boolean mIsOnCategoriesChangedCalled;
- private boolean mOnConditionsChangedCalled;
-
- private DashboardCategory mStagingCategory;
- private List<Suggestion> mStagingSuggestions;
-
- @Override
- public int getMetricsCategory() {
- return MetricsEvent.DASHBOARD_SUMMARY;
- }
-
- @Override
- public void onAttach(Context context) {
- super.onAttach(context);
- Log.d(TAG, "Creating SuggestionControllerMixinCompat");
- final SuggestionFeatureProvider suggestionFeatureProvider = FeatureFactory
- .getFactory(context)
- .getSuggestionFeatureProvider(context);
- if (suggestionFeatureProvider.isSuggestionEnabled(context)) {
- mSuggestionControllerMixin = new SuggestionControllerMixinCompat(
- context, this /* host */, getSettingsLifecycle(),
- suggestionFeatureProvider.getSuggestionServiceComponent());
- }
- }
-
- @Override
- public LoaderManager getLoaderManager() {
- if (!isAdded()) {
- return null;
- }
- return super.getLoaderManager();
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- long startTime = System.currentTimeMillis();
- super.onCreate(savedInstanceState);
- Log.d(TAG, "Starting DashboardSummary");
- final Activity activity = getActivity();
- mDashboardFeatureProvider = FeatureFactory.getFactory(activity)
- .getDashboardFeatureProvider(activity);
-
- mSummaryLoader = new SummaryLoader(activity, CategoryKey.CATEGORY_HOMEPAGE);
-
- mConditionManager =
- new ConditionManager(
- activity, this /* listener */);
- if (savedInstanceState != null) {
- mIsOnCategoriesChangedCalled =
- savedInstanceState.getBoolean(STATE_CATEGORIES_CHANGE_CALLED);
- }
- if (DEBUG_TIMING) {
- Log.d(TAG, "onCreate took " + (System.currentTimeMillis() - startTime) + " ms");
- }
- }
-
- @Override
- public void onDestroy() {
- mSummaryLoader.release();
- super.onDestroy();
- }
-
- @Override
- public void onResume() {
- long startTime = System.currentTimeMillis();
- super.onResume();
-
- ((SettingsBaseActivity) getActivity()).addCategoryListener(this);
- mSummaryLoader.setListening(true);
- mConditionManager.startMonitoringStateChange();
- if (DEBUG_TIMING) {
- Log.d(TAG, "onResume took " + (System.currentTimeMillis() - startTime) + " ms");
- }
- }
-
- @Override
- public void onPause() {
- super.onPause();
-
- ((SettingsBaseActivity) getActivity()).remCategoryListener(this);
- mSummaryLoader.setListening(false);
- mConditionManager.stopMonitoringStateChange();
- }
-
- @Override
- public void onWindowFocusChanged(boolean hasWindowFocus) {
- long startTime = System.currentTimeMillis();
- if (hasWindowFocus) {
- mConditionManager.startMonitoringStateChange();
- } else {
- mConditionManager.stopMonitoringStateChange();
- }
- if (DEBUG_TIMING) {
- Log.d(TAG, "onWindowFocusChanged took "
- + (System.currentTimeMillis() - startTime) + " ms");
- }
- }
-
- @Override
- public void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- if (mLayoutManager == null) {
- return;
- }
- outState.putBoolean(STATE_CATEGORIES_CHANGE_CALLED, mIsOnCategoriesChangedCalled);
- outState.putInt(STATE_SCROLL_POSITION, mLayoutManager.findFirstVisibleItemPosition());
- }
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
- long startTime = System.currentTimeMillis();
- final View root = inflater.inflate(R.layout.dashboard, container, false);
- mDashboard = root.findViewById(R.id.dashboard_container);
- mLayoutManager = new LinearLayoutManager(getContext());
- mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
- if (bundle != null) {
- int scrollPosition = bundle.getInt(STATE_SCROLL_POSITION);
- mLayoutManager.scrollToPosition(scrollPosition);
- }
- mDashboard.setLayoutManager(mLayoutManager);
- mDashboard.setHasFixedSize(true);
- mDashboard.setListener(this);
- mDashboard.setItemAnimator(new DashboardItemAnimator());
- mAdapter = new DashboardAdapter(getContext(), bundle,
- mConditionManager,
- mSuggestionControllerMixin,
- getSettingsLifecycle());
- mDashboard.setAdapter(mAdapter);
- mSummaryLoader.setSummaryConsumer(mAdapter);
- ActionBarShadowController.attachToRecyclerView(
- getActivity().findViewById(R.id.search_bar_container), getSettingsLifecycle(),
- mDashboard);
- rebuildUI();
- if (DEBUG_TIMING) {
- Log.d(TAG, "onCreateView took "
- + (System.currentTimeMillis() - startTime) + " ms");
- }
- return root;
- }
-
- @VisibleForTesting
- void rebuildUI() {
- ThreadUtils.postOnBackgroundThread(() -> updateCategory());
- }
-
- @Override
- public void onCategoriesChanged() {
- // Bypass rebuildUI() on the first call of onCategoriesChanged, since rebuildUI() happens
- // in onViewCreated as well when app starts. But, on the subsequent calls we need to
- // rebuildUI() because there might be some changes to suggestions and categories.
- if (mIsOnCategoriesChangedCalled) {
- rebuildUI();
- }
- mIsOnCategoriesChangedCalled = true;
- }
-
- @Override
- public void onConditionsChanged() {
- Log.d(TAG, "onConditionsChanged");
- // Bypass refreshing the conditions on the first call of onConditionsChanged.
- // onConditionsChanged is called immediately everytime we start listening to the conditions
- // change when we gain window focus. Since the conditions are passed to the adapter's
- // constructor when we create the view, the first handling is not necessary.
- // But, on the subsequent calls we need to handle it because there might be real changes to
- // conditions.
- if (mOnConditionsChangedCalled) {
- final boolean scrollToTop =
- mLayoutManager.findFirstCompletelyVisibleItemPosition() <= 1;
- mAdapter.setConditions(mConditionManager.getDisplayableCards());
-
- if (scrollToTop) {
- mDashboard.scrollToPosition(0);
- }
- } else {
- mOnConditionsChangedCalled = true;
- }
- }
-
- @Override
- public void onSuggestionReady(List<Suggestion> suggestions) {
- mStagingSuggestions = suggestions;
- mAdapter.setSuggestions(suggestions);
- if (mStagingCategory != null) {
- Log.d(TAG, "Category has loaded, setting category from suggestionReady");
- mHandler.removeCallbacksAndMessages(null);
- mAdapter.setCategory(mStagingCategory);
- }
- }
-
- @WorkerThread
- void updateCategory() {
- final DashboardCategory category = mDashboardFeatureProvider.getTilesForCategory(
- CategoryKey.CATEGORY_HOMEPAGE);
- mSummaryLoader.updateSummaryToCache(category);
- mStagingCategory = category;
- if (mSuggestionControllerMixin == null) {
- ThreadUtils.postOnMainThread(() -> mAdapter.setCategory(mStagingCategory));
- return;
- }
- if (mSuggestionControllerMixin.isSuggestionLoaded()) {
- Log.d(TAG, "Suggestion has loaded, setting suggestion/category");
- ThreadUtils.postOnMainThread(() -> {
- if (mStagingSuggestions != null) {
- mAdapter.setSuggestions(mStagingSuggestions);
- }
- mAdapter.setCategory(mStagingCategory);
- });
- } else {
- Log.d(TAG, "Suggestion NOT loaded, delaying setCategory by " + MAX_WAIT_MILLIS + "ms");
- mHandler.postDelayed(() -> mAdapter.setCategory(mStagingCategory), MAX_WAIT_MILLIS);
- }
- }
-}
diff --git a/src/com/android/settings/dashboard/SummaryLoader.java b/src/com/android/settings/dashboard/SummaryLoader.java
index cfb64ef..059cb93 100644
--- a/src/com/android/settings/dashboard/SummaryLoader.java
+++ b/src/com/android/settings/dashboard/SummaryLoader.java
@@ -44,7 +44,7 @@
import java.util.List;
public class SummaryLoader {
- private static final boolean DEBUG = DashboardSummary.DEBUG;
+ private static final boolean DEBUG = false;
private static final String TAG = "SummaryLoader";
public static final String SUMMARY_PROVIDER_FACTORY = "SUMMARY_PROVIDER_FACTORY";
diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java b/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java
deleted file mode 100644
index a210c85..0000000
--- a/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- * Copyright (C) 2017 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.dashboard.suggestions;
-
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.Typeface;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.Icon;
-import android.os.Bundle;
-import android.service.settings.suggestions.Suggestion;
-import android.text.TextUtils;
-import android.util.DisplayMetrics;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.WindowManager;
-import android.widget.LinearLayout;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.R;
-import com.android.settings.dashboard.DashboardAdapter.DashboardItemHolder;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.Utils;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
-import com.android.settingslib.suggestions.SuggestionControllerMixinCompat;
-import com.android.settingslib.utils.IconCache;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-
-public class SuggestionAdapter extends RecyclerView.Adapter<DashboardItemHolder> implements
- LifecycleObserver, OnSaveInstanceState {
- public static final String TAG = "SuggestionAdapter";
-
- private static final String STATE_SUGGESTIONS_SHOWN_LOGGED = "suggestions_shown_logged";
- private static final String STATE_SUGGESTION_LIST = "suggestion_list";
-
- private final Context mContext;
- private final MetricsFeatureProvider mMetricsFeatureProvider;
- private final IconCache mCache;
- private final ArrayList<String> mSuggestionsShownLogged;
- private final SuggestionFeatureProvider mSuggestionFeatureProvider;
- private final SuggestionControllerMixinCompat mSuggestionControllerMixin;
- private final Callback mCallback;
- private final CardConfig mConfig;
-
- private List<Suggestion> mSuggestions;
-
- public interface Callback {
- /**
- * Called when the close button of the suggestion card is clicked.
- */
- void onSuggestionClosed(Suggestion suggestion);
- }
-
- public SuggestionAdapter(Context context,
- SuggestionControllerMixinCompat suggestionControllerMixin, Bundle savedInstanceState,
- Callback callback, Lifecycle lifecycle) {
- mContext = context;
- mSuggestionControllerMixin = suggestionControllerMixin;
- mCache = new IconCache(context);
- final FeatureFactory factory = FeatureFactory.getFactory(context);
- mMetricsFeatureProvider = factory.getMetricsFeatureProvider();
- mSuggestionFeatureProvider = factory.getSuggestionFeatureProvider(context);
- mCallback = callback;
- if (savedInstanceState != null) {
- mSuggestions = savedInstanceState.getParcelableArrayList(STATE_SUGGESTION_LIST);
- mSuggestionsShownLogged = savedInstanceState.getStringArrayList(
- STATE_SUGGESTIONS_SHOWN_LOGGED);
- } else {
- mSuggestionsShownLogged = new ArrayList<>();
- }
-
- if (lifecycle != null) {
- lifecycle.addObserver(this);
- }
- mConfig = CardConfig.get(context);
-
- setHasStableIds(true);
- }
-
- @Override
- public DashboardItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- return new DashboardItemHolder(LayoutInflater.from(parent.getContext()).inflate(
- viewType, parent, false));
- }
-
- @Override
- public void onBindViewHolder(DashboardItemHolder holder, int position) {
- final Suggestion suggestion = mSuggestions.get(position);
- final String id = suggestion.getId();
- final int suggestionCount = mSuggestions.size();
- if (!mSuggestionsShownLogged.contains(id)) {
- mMetricsFeatureProvider.action(
- mContext, MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION, id);
- mSuggestionsShownLogged.add(id);
- }
- final Icon icon = suggestion.getIcon();
- final Drawable drawable = mCache.getIcon(icon);
- if (drawable != null && (suggestion.getFlags() & Suggestion.FLAG_ICON_TINTABLE) != 0) {
- drawable.setTintList(Utils.getColorAccent(mContext));
- }
- holder.icon.setImageDrawable(drawable);
- holder.title.setText(suggestion.getTitle());
- holder.title.setTypeface(Typeface.create(
- mContext.getString(com.android.internal.R.string.config_headlineFontFamily),
- Typeface.NORMAL));
-
- if (suggestionCount == 1) {
- final CharSequence summary = suggestion.getSummary();
- if (!TextUtils.isEmpty(summary)) {
- holder.summary.setText(summary);
- holder.summary.setVisibility(View.VISIBLE);
- } else {
- holder.summary.setVisibility(View.GONE);
- }
- } else {
- mConfig.setCardLayout(holder, position);
- }
-
- final View closeButton = holder.itemView.findViewById(R.id.close_button);
- if (closeButton != null) {
- closeButton.setOnClickListener(v -> {
- mSuggestionFeatureProvider.dismissSuggestion(
- mContext, mSuggestionControllerMixin, suggestion);
- if (mCallback != null) {
- mCallback.onSuggestionClosed(suggestion);
- }
- });
- }
-
- View clickHandler = holder.itemView;
- // If a view with @android:id/primary is defined, use that as the click handler
- // instead.
- final View primaryAction = holder.itemView.findViewById(android.R.id.primary);
- if (primaryAction != null) {
- clickHandler = primaryAction;
- }
- clickHandler.setOnClickListener(v -> {
- mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_SETTINGS_SUGGESTION, id);
- try {
- suggestion.getPendingIntent().send();
- mSuggestionControllerMixin.launchSuggestion(suggestion);
- } catch (PendingIntent.CanceledException e) {
- Log.w(TAG, "Failed to start suggestion " + suggestion.getTitle());
- }
- });
- }
-
- @Override
- public long getItemId(int position) {
- return Objects.hash(mSuggestions.get(position).getId());
- }
-
- @Override
- public int getItemViewType(int position) {
- final Suggestion suggestion = getSuggestion(position);
- if ((suggestion.getFlags() & Suggestion.FLAG_HAS_BUTTON) != 0) {
- return R.layout.suggestion_tile_with_button;
- }
- if (getItemCount() == 1) {
- return R.layout.suggestion_tile;
- }
- return R.layout.suggestion_tile_two_cards;
- }
-
- @Override
- public int getItemCount() {
- return mSuggestions.size();
- }
-
- public Suggestion getSuggestion(int position) {
- final long itemId = getItemId(position);
- if (mSuggestions == null) {
- return null;
- }
- for (Suggestion suggestion : mSuggestions) {
- if (Objects.hash(suggestion.getId()) == itemId) {
- return suggestion;
- }
- }
- return null;
- }
-
- public void removeSuggestion(Suggestion suggestion) {
- final int position = mSuggestions.indexOf(suggestion);
- mSuggestions.remove(suggestion);
- notifyItemRemoved(position);
- }
-
- @Override
- public void onSaveInstanceState(Bundle outState) {
- if (mSuggestions != null) {
- outState.putParcelableArrayList(STATE_SUGGESTION_LIST,
- new ArrayList<>(mSuggestions));
- }
- outState.putStringArrayList(STATE_SUGGESTIONS_SHOWN_LOGGED, mSuggestionsShownLogged);
- }
-
- public void setSuggestions(List<Suggestion> suggestions) {
- mSuggestions = suggestions;
- }
-
- public List<Suggestion> getSuggestions() {
- return mSuggestions;
- }
-
- @VisibleForTesting
- static class CardConfig {
- // Card start/end margin
- private final int mMarginInner;
- private final int mMarginOuter;
- private final WindowManager mWindowManager;
-
- private static CardConfig sConfig;
-
- private CardConfig(Context context) {
- mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
- final Resources res = context.getResources();
- mMarginInner =
- res.getDimensionPixelOffset(R.dimen.suggestion_card_inner_margin);
- mMarginOuter =
- res.getDimensionPixelOffset(R.dimen.suggestion_card_outer_margin);
- }
-
- public static CardConfig get(Context context) {
- if (sConfig == null) {
- sConfig = new CardConfig(context);
- }
- return sConfig;
- }
-
- @VisibleForTesting
- void setCardLayout(DashboardItemHolder holder, int position) {
- final LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
- getWidthForTwoCrads(), LinearLayout.LayoutParams.WRAP_CONTENT);
- params.setMarginStart(position == 0 ? mMarginOuter : mMarginInner);
- params.setMarginEnd(position != 0 ? mMarginOuter : 0);
- holder.itemView.setLayoutParams(params);
- }
-
- private int getWidthForTwoCrads() {
- return (getScreenWidth() - mMarginInner - mMarginOuter * 2) / 2;
- }
-
- @VisibleForTesting
- int getScreenWidth() {
- final DisplayMetrics metrics = new DisplayMetrics();
- mWindowManager.getDefaultDisplay().getMetrics(metrics);
- return metrics.widthPixels;
- }
- }
-
-}
diff --git a/src/com/android/settings/datausage/AppDataUsage.java b/src/com/android/settings/datausage/AppDataUsage.java
index fcb6b72..78aa6c2 100644
--- a/src/com/android/settings/datausage/AppDataUsage.java
+++ b/src/com/android/settings/datausage/AppDataUsage.java
@@ -144,7 +144,7 @@
mBackgroundUsage = findPreference(KEY_BACKGROUND_USAGE);
mCycle = (SpinnerPreference) findPreference(KEY_CYCLE);
- mCycleAdapter = new CycleAdapter(getContext(), mCycle, mCycleListener, false);
+ mCycleAdapter = new CycleAdapter(getContext(), mCycle, mCycleListener);
if (mAppItem.key > 0) {
if (mPackages.size() != 0) {
@@ -190,7 +190,8 @@
if (mPackages.size() > 1) {
mAppList = (PreferenceCategory) findPreference(KEY_APP_LIST);
- getLoaderManager().initLoader(LOADER_APP_PREF, Bundle.EMPTY, mAppPrefCallbacks);
+ LoaderManager.getInstance(this).restartLoader(LOADER_APP_PREF, Bundle.EMPTY,
+ mAppPrefCallbacks);
} else {
removePreference(KEY_APP_LIST);
}
@@ -221,7 +222,7 @@
mDataSaverBackend.addListener(this);
}
mPolicy = services.mPolicyEditor.getPolicy(mTemplate);
- getLoaderManager().restartLoader(LOADER_CHART_DATA,
+ LoaderManager.getInstance(this).restartLoader(LOADER_CHART_DATA,
ChartDataLoaderCompat.buildArgs(mTemplate, mAppItem), mChartDataCallbacks);
updatePrefs();
}
diff --git a/src/com/android/settings/datausage/AppDataUsageV2.java b/src/com/android/settings/datausage/AppDataUsageV2.java
index 4e8325b..6a31726 100644
--- a/src/com/android/settings/datausage/AppDataUsageV2.java
+++ b/src/com/android/settings/datausage/AppDataUsageV2.java
@@ -131,7 +131,7 @@
mBackgroundUsage = findPreference(KEY_BACKGROUND_USAGE);
mCycle = (SpinnerPreference) findPreference(KEY_CYCLE);
- mCycleAdapter = new CycleAdapter(getContext(), mCycle, mCycleListener, false);
+ mCycleAdapter = new CycleAdapter(getContext(), mCycle, mCycleListener);
if (mAppItem.key > 0) {
if (mPackages.size() != 0) {
@@ -177,7 +177,8 @@
if (mPackages.size() > 1) {
mAppList = (PreferenceCategory) findPreference(KEY_APP_LIST);
- getLoaderManager().initLoader(LOADER_APP_PREF, Bundle.EMPTY, mAppPrefCallbacks);
+ LoaderManager.getInstance(this).restartLoader(LOADER_APP_PREF, Bundle.EMPTY,
+ mAppPrefCallbacks);
} else {
removePreference(KEY_APP_LIST);
}
@@ -201,7 +202,8 @@
if (mDataSaverBackend != null) {
mDataSaverBackend.addListener(this);
}
- getLoaderManager().restartLoader(LOADER_APP_USAGE_DATA, null /* args */, mUidDataCallbacks);
+ LoaderManager.getInstance(this).restartLoader(LOADER_APP_USAGE_DATA, null /* args */,
+ mUidDataCallbacks);
updatePrefs();
}
diff --git a/src/com/android/settings/datausage/CycleAdapter.java b/src/com/android/settings/datausage/CycleAdapter.java
index 9378dea..74d27be 100644
--- a/src/com/android/settings/datausage/CycleAdapter.java
+++ b/src/com/android/settings/datausage/CycleAdapter.java
@@ -20,28 +20,25 @@
import android.text.format.DateUtils;
import android.util.Pair;
import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settingslib.net.ChartData;
import com.android.settingslib.net.NetworkCycleData;
+import com.android.settingslib.widget.settingsspinner.SettingsSpinnerAdapter;
import java.time.ZonedDateTime;
import java.util.Iterator;
import java.util.List;
import java.util.Objects;
-public class CycleAdapter extends ArrayAdapter<CycleAdapter.CycleItem> {
+public class CycleAdapter extends SettingsSpinnerAdapter<CycleAdapter.CycleItem> {
private final SpinnerInterface mSpinner;
private final AdapterView.OnItemSelectedListener mListener;
public CycleAdapter(Context context, SpinnerInterface spinner,
- AdapterView.OnItemSelectedListener listener, boolean isHeader) {
- super(context, isHeader ? R.layout.filter_spinner_item
- : R.layout.data_usage_cycle_item);
- setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ AdapterView.OnItemSelectedListener listener) {
+ super(context);
mSpinner = spinner;
mListener = listener;
mSpinner.setAdapter(this);
@@ -159,7 +156,7 @@
public boolean updateCycleList(List<? extends NetworkCycleData> cycleData) {
// stash away currently selected cycle to try restoring below
final CycleAdapter.CycleItem previousItem = (CycleAdapter.CycleItem)
- mSpinner.getSelectedItem();
+ mSpinner.getSelectedItem();
clear();
final Context context = getContext();
@@ -223,8 +220,11 @@
public interface SpinnerInterface {
void setAdapter(CycleAdapter cycleAdapter);
+
void setOnItemSelectedListener(AdapterView.OnItemSelectedListener listener);
+
Object getSelectedItem();
+
void setSelection(int position);
}
}
diff --git a/src/com/android/settings/datausage/DataUsageList.java b/src/com/android/settings/datausage/DataUsageList.java
index 0458207..8f0026f 100644
--- a/src/com/android/settings/datausage/DataUsageList.java
+++ b/src/com/android/settings/datausage/DataUsageList.java
@@ -182,7 +182,7 @@
public void setSelection(int position) {
mCycleSpinner.setSelection(position);
}
- }, mCycleListener, true);
+ }, mCycleListener);
mLoadingViewController = new LoadingViewController(
getView().findViewById(R.id.loading_container), getListView());
diff --git a/src/com/android/settings/datausage/DataUsageListV2.java b/src/com/android/settings/datausage/DataUsageListV2.java
index aef9519..4432fee 100644
--- a/src/com/android/settings/datausage/DataUsageListV2.java
+++ b/src/com/android/settings/datausage/DataUsageListV2.java
@@ -175,7 +175,7 @@
public void setSelection(int position) {
mCycleSpinner.setSelection(position);
}
- }, mCycleListener, true);
+ }, mCycleListener);
mLoadingViewController = new LoadingViewController(
getView().findViewById(R.id.loading_container), getListView());
diff --git a/src/com/android/settings/datausage/SpinnerPreference.java b/src/com/android/settings/datausage/SpinnerPreference.java
index 867930b..67298a1 100644
--- a/src/com/android/settings/datausage/SpinnerPreference.java
+++ b/src/com/android/settings/datausage/SpinnerPreference.java
@@ -18,12 +18,12 @@
import android.util.AttributeSet;
import android.view.View;
import android.widget.AdapterView;
-import android.widget.Spinner;
import androidx.preference.Preference;
import androidx.preference.PreferenceViewHolder;
import com.android.settings.R;
+import com.android.settingslib.widget.settingsspinner.SettingsSpinner;
public class SpinnerPreference extends Preference implements CycleAdapter.SpinnerInterface {
@@ -63,7 +63,7 @@
@Override
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
- Spinner spinner = (Spinner) holder.findViewById(R.id.cycles_spinner);
+ SettingsSpinner spinner = (SettingsSpinner) holder.findViewById(R.id.cycles_spinner);
spinner.setAdapter(mAdapter);
spinner.setSelection(mPosition);
spinner.setOnItemSelectedListener(mOnSelectedListener);
diff --git a/src/com/android/settings/development/ClearAdbKeysPreferenceController.java b/src/com/android/settings/development/ClearAdbKeysPreferenceController.java
index ce23e3f..e1fda67 100644
--- a/src/com/android/settings/development/ClearAdbKeysPreferenceController.java
+++ b/src/com/android/settings/development/ClearAdbKeysPreferenceController.java
@@ -17,7 +17,7 @@
package com.android.settings.development;
import android.content.Context;
-import android.hardware.usb.IUsbManager;
+import android.debug.IAdbManager;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemProperties;
@@ -42,7 +42,7 @@
@VisibleForTesting
static final String RO_ADB_SECURE_PROPERTY_KEY = "ro.adb.secure";
- private final IUsbManager mUsbManager;
+ private final IAdbManager mAdbManager;
private final DevelopmentSettingsDashboardFragment mFragment;
public ClearAdbKeysPreferenceController(Context context,
@@ -50,7 +50,7 @@
super(context);
mFragment = fragment;
- mUsbManager = IUsbManager.Stub.asInterface(ServiceManager.getService(Context.USB_SERVICE));
+ mAdbManager = IAdbManager.Stub.asInterface(ServiceManager.getService(Context.ADB_SERVICE));
}
@Override
@@ -94,7 +94,7 @@
public void onClearAdbKeysConfirmed() {
try {
- mUsbManager.clearUsbDebuggingKeys();
+ mAdbManager.clearDebuggingKeys();
} catch (RemoteException e) {
Log.e(TAG, "Unable to clear adb keys", e);
}
diff --git a/src/com/android/settings/development/DesktopModePreferenceController.java b/src/com/android/settings/development/DesktopModePreferenceController.java
new file mode 100644
index 0000000..528af8a
--- /dev/null
+++ b/src/com/android/settings/development/DesktopModePreferenceController.java
@@ -0,0 +1,79 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.development;
+
+import static android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS;
+
+import android.content.Context;
+import android.os.Build;
+import android.provider.Settings;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+public class DesktopModePreferenceController extends DeveloperOptionsPreferenceController
+ implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+
+ private static final String FORCE_DESKTOP_MODE_KEY = "force_desktop_mode_on_external_displays";
+
+ @VisibleForTesting
+ static final int SETTING_VALUE_OFF = 0;
+ @VisibleForTesting
+ static final int SETTING_VALUE_ON = 1;
+
+ public DesktopModePreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return FORCE_DESKTOP_MODE_KEY;
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ final boolean isEnabled = (Boolean) newValue;
+ Settings.Global.putInt(mContext.getContentResolver(),
+ DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS,
+ isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
+ return true;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+ DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, SETTING_VALUE_OFF);
+ ((SwitchPreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+ }
+
+ @Override
+ protected void onDeveloperOptionsSwitchDisabled() {
+ super.onDeveloperOptionsSwitchDisabled();
+ Settings.Global.putInt(mContext.getContentResolver(),
+ DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, SETTING_VALUE_OFF);
+ ((SwitchPreference) mPreference).setChecked(false);
+ }
+
+ @VisibleForTesting
+ String getBuildType() {
+ return Build.TYPE;
+ }
+}
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index cc8bd2e..5663d1e 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -440,7 +440,6 @@
controllers.add(new TransitionAnimationScalePreferenceController(context));
controllers.add(new AnimatorDurationScalePreferenceController(context));
controllers.add(new SecondaryDisplayPreferenceController(context));
- controllers.add(new HighFrequencyDisplayPreferenceController(context));
controllers.add(new GpuViewUpdatesPreferenceController(context));
controllers.add(new HardwareLayersUpdatesPreferenceController(context));
controllers.add(new DebugGpuOverdrawPreferenceController(context));
@@ -459,6 +458,8 @@
controllers.add(new AllowAppsOnExternalPreferenceController(context));
controllers.add(new ResizableActivityPreferenceController(context));
controllers.add(new FreeformWindowsPreferenceController(context));
+ controllers.add(new DesktopModePreferenceController(context));
+ controllers.add(new SmsAccessRestrictionPreferenceController(context));
controllers.add(new ShortcutManagerThrottlingPreferenceController(context));
controllers.add(new EnableGnssRawMeasFullTrackingPreferenceController(context));
controllers.add(new CbrsDataSwitchPreferenceController(context));
@@ -471,7 +472,7 @@
controllers.add(new DefaultLaunchPreferenceController(context, "density"));
controllers.add(new DefaultLaunchPreferenceController(context, "background_check"));
controllers.add(new DefaultLaunchPreferenceController(context, "inactive_apps"));
- controllers.add(new AutofillLoggingLevelPreferenceController(context));
+ controllers.add(new AutofillLoggingLevelPreferenceController(context, lifecycle));
controllers.add(new AutofillResetOptionsPreferenceController(context));
return controllers;
}
diff --git a/src/com/android/settings/development/FreeformWindowsPreferenceController.java b/src/com/android/settings/development/FreeformWindowsPreferenceController.java
index 5b19f36..4d38480 100644
--- a/src/com/android/settings/development/FreeformWindowsPreferenceController.java
+++ b/src/com/android/settings/development/FreeformWindowsPreferenceController.java
@@ -19,7 +19,6 @@
import android.content.Context;
import android.os.Build;
import android.provider.Settings;
-import android.text.TextUtils;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
@@ -37,19 +36,12 @@
static final int SETTING_VALUE_OFF = 0;
@VisibleForTesting
static final int SETTING_VALUE_ON = 1;
- @VisibleForTesting
- static final String USER_BUILD_TYPE = "user";
public FreeformWindowsPreferenceController(Context context) {
super(context);
}
@Override
- public boolean isAvailable() {
- return !TextUtils.equals(USER_BUILD_TYPE, getBuildType());
- }
-
- @Override
public String getPreferenceKey() {
return ENABLE_FREEFORM_SUPPORT_KEY;
}
diff --git a/src/com/android/settings/development/HighFrequencyDisplayPreferenceController.java b/src/com/android/settings/development/HighFrequencyDisplayPreferenceController.java
deleted file mode 100644
index ad8e9f8..0000000
--- a/src/com/android/settings/development/HighFrequencyDisplayPreferenceController.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.development;
-
-import android.content.Context;
-import android.os.IBinder;
-import android.os.Parcel;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
-
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.development.DeveloperOptionsPreferenceController;
-
-public class HighFrequencyDisplayPreferenceController extends DeveloperOptionsPreferenceController
- implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
-
- private static final String HIGH_FREQUENCY_DISPLAY_KEY = "high_frequency_display_device";
-
- private static final String SURFACE_FLINGER_SERVICE_KEY = "SurfaceFlinger";
- private static final String SURFACE_COMPOSER_INTERFACE_KEY = "android.ui.ISurfaceComposer";
- private static final int SURFACE_FLINGER_HIGH_FREQUENCY_DISPLAY_CODE = 1029;
-
- private final IBinder mSurfaceFlingerBinder;
-
- public HighFrequencyDisplayPreferenceController(Context context) {
- super(context);
- mSurfaceFlingerBinder = ServiceManager.getService(SURFACE_FLINGER_SERVICE_KEY);
- }
-
- @Override
- public String getPreferenceKey() {
- return HIGH_FREQUENCY_DISPLAY_KEY;
- }
-
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- Boolean isEnabled = (Boolean) newValue;
- writeHighFrequencyDisplaySetting(isEnabled);
- ((SwitchPreference) preference).setChecked(isEnabled);
- return true;
- }
-
- @Override
- public void updateState(Preference preference) {
- boolean enableHighFrequencyPanel = readHighFrequencyDisplaySetting();
- ((SwitchPreference) preference).setChecked(enableHighFrequencyPanel);
- }
-
- @Override
- protected void onDeveloperOptionsSwitchDisabled() {
- super.onDeveloperOptionsSwitchDisabled();
- writeHighFrequencyDisplaySetting(false);
- ((SwitchPreference) mPreference).setChecked(false);
- }
-
- @VisibleForTesting
- boolean readHighFrequencyDisplaySetting() {
- boolean isEnabled = false;
- try {
- if (mSurfaceFlingerBinder != null) {
- final Parcel data = Parcel.obtain();
- final Parcel result = Parcel.obtain();
- data.writeInterfaceToken(SURFACE_COMPOSER_INTERFACE_KEY);
- data.writeInt(0);
- data.writeInt(0);
- mSurfaceFlingerBinder.transact(
- SURFACE_FLINGER_HIGH_FREQUENCY_DISPLAY_CODE,
- data, result, 0);
-
- if (result.readInt() != 1 || result.readInt() != 1) {
- isEnabled = true;
- }
- }
- } catch (RemoteException ex) {
- // intentional no-op
- }
- return isEnabled;
- }
-
- @VisibleForTesting
- void writeHighFrequencyDisplaySetting(boolean isEnabled) {
- int multiplier;
- int divisor;
-
- if (isEnabled) {
- // 60Hz * 3/2 = 90Hz
- multiplier = 2;
- divisor = 3;
- } else {
- multiplier = 1;
- divisor = 1;
- }
-
- try {
- if (mSurfaceFlingerBinder != null) {
- final Parcel data = Parcel.obtain();
- data.writeInterfaceToken(SURFACE_COMPOSER_INTERFACE_KEY);
- data.writeInt(multiplier);
- data.writeInt(divisor);
- mSurfaceFlingerBinder.transact(
- SURFACE_FLINGER_HIGH_FREQUENCY_DISPLAY_CODE,
- data, null, 0);
- }
- } catch (RemoteException ex) {
- // intentional no-op
- }
- }
-}
diff --git a/src/com/android/settings/development/SmsAccessRestrictionPreferenceController.java b/src/com/android/settings/development/SmsAccessRestrictionPreferenceController.java
new file mode 100644
index 0000000..b3f7b23
--- /dev/null
+++ b/src/com/android/settings/development/SmsAccessRestrictionPreferenceController.java
@@ -0,0 +1,69 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.development;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
+
+// STOPSHIP b/118694572: remove the kill switch once the feature is tested and stable
+public class SmsAccessRestrictionPreferenceController extends DeveloperOptionsPreferenceController
+ implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+
+ private static final String SMS_ACCESS_RESTRICTION_ENABLED_KEY
+ = "sms_access_restriction_enabled";
+
+ public SmsAccessRestrictionPreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return SMS_ACCESS_RESTRICTION_ENABLED_KEY;
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ writeSetting((boolean) newValue);
+ return true;
+ }
+
+ private void writeSetting(boolean isEnabled) {
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.SMS_ACCESS_RESTRICTION_ENABLED,
+ isEnabled ? 1 : 0);
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.SMS_ACCESS_RESTRICTION_ENABLED, 0);
+ ((SwitchPreference) mPreference).setChecked(mode != 0);
+ }
+
+ @Override
+ protected void onDeveloperOptionsSwitchDisabled() {
+ super.onDeveloperOptionsSwitchDisabled();
+ writeSetting(false);
+ ((SwitchPreference) mPreference).setChecked(false);
+ }
+}
diff --git a/src/com/android/settings/development/WebViewAppPreferenceController.java b/src/com/android/settings/development/WebViewAppPreferenceController.java
index 74d6c10..37653cc 100644
--- a/src/com/android/settings/development/WebViewAppPreferenceController.java
+++ b/src/com/android/settings/development/WebViewAppPreferenceController.java
@@ -19,6 +19,7 @@
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
+import android.os.UserHandle;
import android.text.TextUtils;
import android.util.Log;
@@ -66,7 +67,7 @@
@VisibleForTesting
DefaultAppInfo getDefaultAppInfo() {
final PackageInfo currentPackage = mWebViewUpdateServiceWrapper.getCurrentWebViewPackage();
- return new DefaultAppInfo(mContext, mPackageManager,
+ return new DefaultAppInfo(mContext, mPackageManager, UserHandle.myUserId(),
currentPackage == null ? null : currentPackage.applicationInfo);
}
diff --git a/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceController.java b/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceController.java
index 8c739e3..f955f5e 100644
--- a/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceController.java
+++ b/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceController.java
@@ -27,11 +27,15 @@
import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnDestroy;
import com.android.settingslib.development.DeveloperOptionsPreferenceController;
public final class AutofillLoggingLevelPreferenceController
extends DeveloperOptionsPreferenceController
- implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+ implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener,
+ LifecycleObserver, OnDestroy {
private static final String TAG = "AutofillLoggingLevelPreferenceController";
private static final String AUTOFILL_LOGGING_LEVEL_KEY = "autofill_logging_level";
@@ -40,7 +44,7 @@
private final String[] mListSummaries;
private final AutofillDeveloperSettingsObserver mObserver;
- public AutofillLoggingLevelPreferenceController(Context context) {
+ public AutofillLoggingLevelPreferenceController(Context context, Lifecycle lifecycle) {
super(context);
Resources resources = context.getResources();
@@ -48,7 +52,15 @@
mListSummaries = resources.getStringArray(R.array.autofill_logging_level_entries);
mObserver = new AutofillDeveloperSettingsObserver(mContext, () -> updateOptions());
mObserver.register();
- // TODO: there should be a hook on AbstractPreferenceController where we could unregister it
+
+ if (lifecycle != null) {
+ lifecycle.addObserver(this);
+ }
+ }
+
+ @Override
+ public void onDestroy() {
+ mObserver.unregister();
}
@Override
diff --git a/src/com/android/settings/development/featureflags/FeatureFlagsPreferenceController.java b/src/com/android/settings/development/featureflags/FeatureFlagsPreferenceController.java
index e6bd209..1c4df4c 100644
--- a/src/com/android/settings/development/featureflags/FeatureFlagsPreferenceController.java
+++ b/src/com/android/settings/development/featureflags/FeatureFlagsPreferenceController.java
@@ -59,8 +59,7 @@
}
mGroup.removeAll();
final Context prefContext = mGroup.getContext();
- for (String feature : featureMap.keySet()) {
- mGroup.addPreference(new FeatureFlagPreference(prefContext, feature));
- }
+ featureMap.keySet().stream().sorted().forEach(feature ->
+ mGroup.addPreference(new FeatureFlagPreference(prefContext, feature)));
}
}
diff --git a/src/com/android/settings/deviceinfo/DeviceModelPreferenceController.java b/src/com/android/settings/deviceinfo/DeviceModelPreferenceController.java
index 25090dc..a9d0e3f 100644
--- a/src/com/android/settings/deviceinfo/DeviceModelPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/DeviceModelPreferenceController.java
@@ -79,12 +79,7 @@
}
public static String getDeviceModel() {
- FutureTask<String> msvSuffixTask = new FutureTask<String>(new Callable<String>() {
- @Override
- public String call() {
- return DeviceInfoUtils.getMsvSuffix();
- }
- });
+ FutureTask<String> msvSuffixTask = new FutureTask<>(() -> DeviceInfoUtils.getMsvSuffix());
msvSuffixTask.run();
try {
diff --git a/src/com/android/settings/deviceinfo/StorageSettings.java b/src/com/android/settings/deviceinfo/StorageSettings.java
index 58188f1..49d5455 100644
--- a/src/com/android/settings/deviceinfo/StorageSettings.java
+++ b/src/com/android/settings/deviceinfo/StorageSettings.java
@@ -51,7 +51,6 @@
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
import com.android.settings.search.SearchIndexableRaw;
@@ -61,7 +60,6 @@
import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
import com.android.settingslib.search.SearchIndexable;
-import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -542,41 +540,6 @@
}
}
- private static class SummaryProvider implements SummaryLoader.SummaryProvider {
- private final Context mContext;
- private final SummaryLoader mLoader;
- private final StorageManagerVolumeProvider mStorageManagerVolumeProvider;
-
- private SummaryProvider(Context context, SummaryLoader loader) {
- mContext = context;
- mLoader = loader;
- final StorageManager storageManager = mContext.getSystemService(StorageManager.class);
- mStorageManagerVolumeProvider = new StorageManagerVolumeProvider(storageManager);
- }
-
- @Override
- public void setListening(boolean listening) {
- if (listening) {
- updateSummary();
- }
- }
-
- private void updateSummary() {
- // TODO: Register listener.
- final NumberFormat percentageFormat = NumberFormat.getPercentInstance();
- final PrivateStorageInfo info = PrivateStorageInfo.getPrivateStorageInfo(
- mStorageManagerVolumeProvider);
- double privateUsedBytes = info.totalBytes - info.freeBytes;
- mLoader.setSummary(this, mContext.getString(R.string.storage_summary,
- percentageFormat.format(privateUsedBytes / info.totalBytes),
- Formatter.formatFileSize(mContext, info.freeBytes)));
- }
- }
-
-
- public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
- = (activity, summaryLoader) -> new SummaryProvider(activity, summaryLoader);
-
/** Enable indexing of searchable data */
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
diff --git a/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java b/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java
index b17defd..48ec0e3 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java
@@ -85,9 +85,13 @@
FeatureFactory.getFactory(this).getMetricsFeatureProvider().action(this,
MetricsEvent.ACTION_STORAGE_MIGRATE_LATER);
- final Intent intent = new Intent(this, StorageWizardReady.class);
- intent.putExtra(EXTRA_MIGRATE_SKIP, true);
- startActivity(intent);
+ if (mDisk != null) {
+ final Intent intent = new Intent(this, StorageWizardReady.class);
+ intent.putExtra(EXTRA_MIGRATE_SKIP, true);
+ startActivity(intent);
+ } else {
+ finishAffinity();
+ }
}
@Override
diff --git a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
index 37f80b7..8c6c5ae 100644
--- a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
+++ b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
@@ -181,25 +181,6 @@
controller.updateDeviceName(confirm);
}
- private static class SummaryProvider implements SummaryLoader.SummaryProvider {
-
- private final SummaryLoader mSummaryLoader;
-
- public SummaryProvider(SummaryLoader summaryLoader) {
- mSummaryLoader = summaryLoader;
- }
-
- @Override
- public void setListening(boolean listening) {
- if (listening) {
- mSummaryLoader.setSummary(this, DeviceModelPreferenceController.getDeviceModel());
- }
- }
- }
-
- public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
- = (activity, summaryLoader) -> new SummaryProvider(summaryLoader);
-
/**
* For Search.
*/
diff --git a/src/com/android/settings/deviceinfo/aboutphone/TopLevelAboutDevicePreferenceController.java b/src/com/android/settings/deviceinfo/aboutphone/TopLevelAboutDevicePreferenceController.java
new file mode 100644
index 0000000..ba28f3a
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/aboutphone/TopLevelAboutDevicePreferenceController.java
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.deviceinfo.aboutphone;
+
+import android.content.Context;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.deviceinfo.DeviceModelPreferenceController;
+
+public class TopLevelAboutDevicePreferenceController extends BasePreferenceController {
+
+ public TopLevelAboutDevicePreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ return DeviceModelPreferenceController.getDeviceModel();
+ }
+}
diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
index 630e9cf..25d1866 100644
--- a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
+++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
@@ -337,14 +337,10 @@
}
boolean show4GForLTE = false;
- try {
- final Context con = mContext.createPackageContext(
- "com.android.systemui", 0 /* flags */);
- final int id = con.getResources().getIdentifier("config_show4GForLTE",
- "bool" /* default type */, "com.android.systemui" /* default package */);
- show4GForLTE = con.getResources().getBoolean(id);
- } catch (PackageManager.NameNotFoundException e) {
- Log.e(TAG, "NameNotFoundException for show4GForLTE");
+ final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
+ if (carrierConfig != null) {
+ show4GForLTE = carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
}
if (show4GForLTE) {
diff --git a/src/com/android/settings/display/ColorModePreferenceController.java b/src/com/android/settings/display/ColorModePreferenceController.java
index 3974f76..4679436 100644
--- a/src/com/android/settings/display/ColorModePreferenceController.java
+++ b/src/com/android/settings/display/ColorModePreferenceController.java
@@ -29,7 +29,7 @@
public class ColorModePreferenceController extends BasePreferenceController {
private static final String TAG = "ColorModePreference";
- private static final int SURFACE_FLINGER_TRANSACTION_QUERY_WIDE_COLOR = 1024;
+ private static final int SURFACE_FLINGER_TRANSACTION_QUERY_COLOR_MANAGEMENT = 1030;
private final ConfigurationWrapper mConfigWrapper;
private ColorDisplayController mColorDisplayController;
@@ -41,7 +41,7 @@
@Override
public int getAvailabilityStatus() {
- return mConfigWrapper.isScreenWideColorGamut()
+ return mConfigWrapper.isDeviceColorManaged()
&& !getColorDisplayController().getAccessibilityTransformActivated() ?
AVAILABLE_UNSEARCHABLE : DISABLED_FOR_USER;
}
@@ -77,17 +77,17 @@
mSurfaceFlinger = ServiceManager.getService("SurfaceFlinger");
}
- boolean isScreenWideColorGamut() {
+ boolean isDeviceColorManaged() {
if (mSurfaceFlinger != null) {
final Parcel data = Parcel.obtain();
final Parcel reply = Parcel.obtain();
data.writeInterfaceToken("android.ui.ISurfaceComposer");
try {
- mSurfaceFlinger.transact(SURFACE_FLINGER_TRANSACTION_QUERY_WIDE_COLOR,
+ mSurfaceFlinger.transact(SURFACE_FLINGER_TRANSACTION_QUERY_COLOR_MANAGEMENT,
data, reply, 0);
return reply.readBoolean();
} catch (RemoteException ex) {
- Log.e(TAG, "Failed to query wide color support", ex);
+ Log.e(TAG, "Failed to query color management support", ex);
} finally {
data.recycle();
reply.recycle();
diff --git a/src/com/android/settings/display/TopLevelDisplayPreferenceController.java b/src/com/android/settings/display/TopLevelDisplayPreferenceController.java
new file mode 100644
index 0000000..88b87e0
--- /dev/null
+++ b/src/com/android/settings/display/TopLevelDisplayPreferenceController.java
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.display;
+
+import android.content.Context;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+public class TopLevelDisplayPreferenceController extends BasePreferenceController {
+
+ public TopLevelDisplayPreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ if (new WallpaperPreferenceController(mContext, "dummy_key").isAvailable()) {
+ return mContext.getText(R.string.display_dashboard_summary);
+ } else {
+ return mContext.getText(R.string.display_dashboard_nowallpaper_summary);
+ }
+ }
+
+}
diff --git a/src/com/android/settings/display/WallpaperPreferenceController.java b/src/com/android/settings/display/WallpaperPreferenceController.java
index ff3be12..0b09124 100644
--- a/src/com/android/settings/display/WallpaperPreferenceController.java
+++ b/src/com/android/settings/display/WallpaperPreferenceController.java
@@ -27,34 +27,30 @@
import androidx.preference.Preference;
import com.android.settings.R;
-import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.RestrictedPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
import java.util.List;
-public class WallpaperPreferenceController extends AbstractPreferenceController implements
- PreferenceControllerMixin {
+public class WallpaperPreferenceController extends BasePreferenceController {
private static final String TAG = "WallpaperPrefController";
- public static final String KEY_WALLPAPER = "wallpaper";
-
private final String mWallpaperPackage;
private final String mWallpaperClass;
- public WallpaperPreferenceController(Context context) {
- super(context);
+ public WallpaperPreferenceController(Context context, String key) {
+ super(context, key);
mWallpaperPackage = mContext.getString(R.string.config_wallpaper_picker_package);
mWallpaperClass = mContext.getString(R.string.config_wallpaper_picker_class);
}
@Override
- public boolean isAvailable() {
+ public int getAvailabilityStatus() {
if (TextUtils.isEmpty(mWallpaperPackage) || TextUtils.isEmpty(mWallpaperClass)) {
Log.e(TAG, "No Wallpaper picker specified!");
- return false;
+ return UNSUPPORTED_ON_DEVICE;
}
final ComponentName componentName =
new ComponentName(mWallpaperPackage, mWallpaperClass);
@@ -63,12 +59,8 @@
intent.setComponent(componentName);
final List<ResolveInfo> resolveInfos =
pm.queryIntentActivities(intent, 0 /* flags */);
- return resolveInfos != null && resolveInfos.size() != 0;
- }
-
- @Override
- public String getPreferenceKey() {
- return KEY_WALLPAPER;
+ return resolveInfos != null && !resolveInfos.isEmpty()
+ ? AVAILABLE_UNSEARCHABLE : CONDITIONALLY_UNAVAILABLE;
}
@Override
diff --git a/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java b/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java
index 1142766..717c5bc 100644
--- a/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java
+++ b/src/com/android/settings/enterprise/ActionDisabledByAdminDialog.java
@@ -59,11 +59,15 @@
}
admin.component = intent.getParcelableExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN);
- int userId = intent.getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId());
- if (userId == UserHandle.USER_NULL) {
- admin.user = null;
+ if (intent.hasExtra(Intent.EXTRA_USER)) {
+ admin.user = intent.getParcelableExtra(Intent.EXTRA_USER);
} else {
- admin.user = UserHandle.of(userId);
+ int userId = intent.getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId());
+ if (userId == UserHandle.USER_NULL) {
+ admin.user = null;
+ } else {
+ admin.user = UserHandle.of(userId);
+ }
}
return admin;
}
diff --git a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java
index f5010f9..5bdf587 100644
--- a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java
+++ b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java
@@ -16,12 +16,15 @@
package com.android.settings.enterprise;
+import android.annotation.NonNull;
import android.annotation.UserIdInt;
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
+import android.content.res.ColorStateList;
+import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Process;
import android.os.UserHandle;
@@ -61,14 +64,18 @@
mActivity = activity;
}
- private @UserIdInt int getEnforcementAdminUserId() {
- if (mEnforcedAdmin.user == null) {
+ private @UserIdInt int getEnforcementAdminUserId(@NonNull EnforcedAdmin admin) {
+ if (admin.user == null) {
return UserHandle.USER_NULL;
} else {
- return mEnforcedAdmin.user.getIdentifier();
+ return admin.user.getIdentifier();
}
}
+ private @UserIdInt int getEnforcementAdminUserId() {
+ return getEnforcementAdminUserId(mEnforcedAdmin);
+ }
+
public AlertDialog.Builder prepareDialogBuilder(String restriction,
EnforcedAdmin enforcedAdmin) {
mEnforcedAdmin = enforcedAdmin;
@@ -104,16 +111,24 @@
if (admin == null) {
return;
}
+ ImageView supportIconView = root.requireViewById(R.id.admin_support_icon);
if (!RestrictedLockUtilsInternal.isAdminInCurrentUserOrProfile(mActivity, admin)
|| !RestrictedLockUtils.isCurrentUserOrProfile(mActivity, userId)) {
admin = null;
+
+ supportIconView.setImageDrawable(
+ mActivity.getDrawable(com.android.internal.R.drawable.ic_info));
+
+ TypedArray ta = mActivity.obtainStyledAttributes(new int[]{android.R.attr.colorAccent});
+ supportIconView.setImageTintList(ColorStateList.valueOf(ta.getColor(0, 0)));
+ ta.recycle();
} else {
final Drawable badgedIcon = Utils.getBadgedIcon(
IconDrawableFactory.newInstance(mActivity),
mActivity.getPackageManager(),
admin.getPackageName(),
userId);
- ((ImageView) root.findViewById(R.id.admin_support_icon)).setImageDrawable(badgedIcon);
+ supportIconView.setImageDrawable(badgedIcon);
}
setAdminSupportTitle(root, restriction);
@@ -170,18 +185,11 @@
return;
}
- final int userId;
- if (enforcedAdmin.user == null) {
- userId = UserHandle.USER_NULL;
- } else {
- userId = enforcedAdmin.user.getIdentifier();
- }
-
final DevicePolicyManager dpm = (DevicePolicyManager) activity.getSystemService(
Context.DEVICE_POLICY_SERVICE);
if (!RestrictedLockUtilsInternal.isAdminInCurrentUserOrProfile(activity,
enforcedAdmin.component) || !RestrictedLockUtils.isCurrentUserOrProfile(
- activity, userId)) {
+ activity, getEnforcementAdminUserId(enforcedAdmin))) {
enforcedAdmin.component = null;
} else {
if (enforcedAdmin.user == null) {
@@ -189,7 +197,8 @@
}
CharSequence supportMessage = null;
if (UserHandle.isSameApp(Process.myUid(), Process.SYSTEM_UID)) {
- supportMessage = dpm.getShortSupportMessageForUser(enforcedAdmin.component, userId);
+ supportMessage = dpm.getShortSupportMessageForUser(enforcedAdmin.component,
+ getEnforcementAdminUserId(enforcedAdmin));
}
if (supportMessage != null) {
final TextView textView = root.findViewById(R.id.admin_support_msg);
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
index e34e622..ce9cabc 100644
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
@@ -235,10 +235,7 @@
controller.setLabel(mAppEntry);
controller.setIcon(mAppEntry);
boolean isInstantApp = AppUtils.isInstant(mAppEntry.info);
- CharSequence summary = isInstantApp
- ? null : getString(Utils.getInstallationStatus(mAppEntry.info));
controller.setIsInstantApp(AppUtils.isInstant(mAppEntry.info));
- controller.setSummary(summary);
}
controller.done(context, true /* rebindActions */);
diff --git a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
index 2d95c31..65181c4 100644
--- a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
@@ -63,7 +63,7 @@
implements PreferenceControllerMixin, LifecycleObserver, OnPause, OnDestroy {
@VisibleForTesting
static final boolean USE_FAKE_DATA = false;
- private static final int MAX_ITEMS_TO_LIST = USE_FAKE_DATA ? 30 : 10;
+ private static final int MAX_ITEMS_TO_LIST = USE_FAKE_DATA ? 30 : 20;
private static final int MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP = 10;
private static final int STATS_TYPE = BatteryStats.STATS_SINCE_CHARGED;
diff --git a/src/com/android/settings/fuelgauge/BatteryInfo.java b/src/com/android/settings/fuelgauge/BatteryInfo.java
index 06cdad6..1f11f5a 100644
--- a/src/com/android/settings/fuelgauge/BatteryInfo.java
+++ b/src/com/android/settings/fuelgauge/BatteryInfo.java
@@ -148,49 +148,7 @@
new AsyncTask<Void, Void, BatteryInfo>() {
@Override
protected BatteryInfo doInBackground(Void... params) {
- final BatteryStats stats;
- final long batteryStatsTime = System.currentTimeMillis();
- if (statsHelper == null) {
- final BatteryStatsHelper localStatsHelper = new BatteryStatsHelper(context,
- true);
- localStatsHelper.create((Bundle) null);
- stats = localStatsHelper.getStats();
- } else {
- stats = statsHelper.getStats();
- }
- BatteryUtils.logRuntime(LOG_TAG, "time for getStats", batteryStatsTime);
-
- final long startTime = System.currentTimeMillis();
- PowerUsageFeatureProvider provider =
- FeatureFactory.getFactory(context).getPowerUsageFeatureProvider(context);
- final long elapsedRealtimeUs =
- PowerUtil.convertMsToUs(SystemClock.elapsedRealtime());
-
- Intent batteryBroadcast = context.registerReceiver(null,
- new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
- // 0 means we are discharging, anything else means charging
- boolean discharging =
- batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) == 0;
-
- if (discharging && provider != null
- && provider.isEnhancedBatteryPredictionEnabled(context)) {
- Estimate estimate = provider.getEnhancedBatteryPrediction(context);
- if (estimate != null) {
- BatteryUtils
- .logRuntime(LOG_TAG, "time for enhanced BatteryInfo", startTime);
- return BatteryInfo.getBatteryInfo(context, batteryBroadcast, stats,
- estimate, elapsedRealtimeUs, shortString);
- }
- }
- long prediction = discharging
- ? stats.computeBatteryTimeRemaining(elapsedRealtimeUs) : 0;
- Estimate estimate = new Estimate(
- PowerUtil.convertUsToMs(prediction),
- false, /* isBasedOnUsage */
- Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
- BatteryUtils.logRuntime(LOG_TAG, "time for regular BatteryInfo", startTime);
- return BatteryInfo.getBatteryInfo(context, batteryBroadcast, stats,
- estimate, elapsedRealtimeUs, shortString);
+ return getBatteryInfo(context, statsHelper, shortString);
}
@Override
@@ -202,6 +160,53 @@
}.execute();
}
+ public static BatteryInfo getBatteryInfo(final Context context,
+ final BatteryStatsHelper statsHelper, boolean shortString) {
+ final BatteryStats stats;
+ final long batteryStatsTime = System.currentTimeMillis();
+ if (statsHelper == null) {
+ final BatteryStatsHelper localStatsHelper = new BatteryStatsHelper(context,
+ true);
+ localStatsHelper.create((Bundle) null);
+ stats = localStatsHelper.getStats();
+ } else {
+ stats = statsHelper.getStats();
+ }
+ BatteryUtils.logRuntime(LOG_TAG, "time for getStats", batteryStatsTime);
+
+ final long startTime = System.currentTimeMillis();
+ PowerUsageFeatureProvider provider =
+ FeatureFactory.getFactory(context).getPowerUsageFeatureProvider(context);
+ final long elapsedRealtimeUs =
+ PowerUtil.convertMsToUs(SystemClock.elapsedRealtime());
+
+ final Intent batteryBroadcast = context.registerReceiver(null,
+ new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+ // 0 means we are discharging, anything else means charging
+ final boolean discharging =
+ batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) == 0;
+
+ if (discharging && provider != null
+ && provider.isEnhancedBatteryPredictionEnabled(context)) {
+ Estimate estimate = provider.getEnhancedBatteryPrediction(context);
+ if (estimate != null) {
+ BatteryUtils
+ .logRuntime(LOG_TAG, "time for enhanced BatteryInfo", startTime);
+ return BatteryInfo.getBatteryInfo(context, batteryBroadcast, stats,
+ estimate, elapsedRealtimeUs, shortString);
+ }
+ }
+ final long prediction = discharging
+ ? stats.computeBatteryTimeRemaining(elapsedRealtimeUs) : 0;
+ final Estimate estimate = new Estimate(
+ PowerUtil.convertUsToMs(prediction),
+ false, /* isBasedOnUsage */
+ Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
+ BatteryUtils.logRuntime(LOG_TAG, "time for regular BatteryInfo", startTime);
+ return BatteryInfo.getBatteryInfo(context, batteryBroadcast, stats,
+ estimate, elapsedRealtimeUs, shortString);
+ }
+
@WorkerThread
public static BatteryInfo getBatteryInfoOld(Context context, Intent batteryBroadcast,
BatteryStats stats, long elapsedRealtimeUs, boolean shortString) {
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 054c66b..f7c31e5 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -17,9 +17,7 @@
package com.android.settings.fuelgauge;
import static com.android.settings.fuelgauge.BatteryBroadcastReceiver.BatteryUpdateType;
-import static com.android.settings.fuelgauge.TopLevelBatteryPreferenceController.getDashboardLabel;
-import android.app.Activity;
import android.content.Context;
import android.os.BatteryStats;
import android.os.Bundle;
@@ -43,7 +41,6 @@
import com.android.settings.Utils;
import com.android.settings.applications.LayoutPreference;
import com.android.settings.core.SubSettingLauncher;
-import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.fuelgauge.batterytip.BatteryTipLoader;
import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController;
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
@@ -389,35 +386,6 @@
restartBatteryTipLoader();
}
- private static class SummaryProvider implements SummaryLoader.SummaryProvider {
- private final Context mContext;
- private final SummaryLoader mLoader;
- private final BatteryBroadcastReceiver mBatteryBroadcastReceiver;
-
- private SummaryProvider(Context context, SummaryLoader loader) {
- mContext = context;
- mLoader = loader;
- mBatteryBroadcastReceiver = new BatteryBroadcastReceiver(mContext);
- mBatteryBroadcastReceiver.setBatteryChangedListener(type -> {
- BatteryInfo.getBatteryInfo(mContext, new BatteryInfo.Callback() {
- @Override
- public void onBatteryInfoLoaded(BatteryInfo info) {
- mLoader.setSummary(SummaryProvider.this, getDashboardLabel(mContext, info));
- }
- }, true /* shortString */);
- });
- }
-
- @Override
- public void setListening(boolean listening) {
- if (listening) {
- mBatteryBroadcastReceiver.register();
- } else {
- mBatteryBroadcastReceiver.unRegister();
- }
- }
- }
-
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@@ -429,13 +397,4 @@
return Collections.singletonList(sir);
}
};
-
- public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
- = new SummaryLoader.SummaryProviderFactory() {
- @Override
- public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity,
- SummaryLoader summaryLoader) {
- return new SummaryProvider(activity, summaryLoader);
- }
- };
}
diff --git a/src/com/android/settings/gestures/GesturesSettingPreferenceController.java b/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
index 069085b..2e9b5a5 100644
--- a/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
+++ b/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
@@ -20,8 +20,6 @@
import android.content.Context;
import android.provider.Settings;
-import androidx.annotation.NonNull;
-
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
@@ -31,6 +29,8 @@
import java.util.ArrayList;
import java.util.List;
+import androidx.annotation.NonNull;
+
public class GesturesSettingPreferenceController extends BasePreferenceController {
private final AssistGestureFeatureProvider mFeatureProvider;
private List<AbstractPreferenceController> mGestureControllers;
@@ -76,7 +76,7 @@
.setConfig(ambientDisplayConfiguration));
controllers.add(new DoubleTapScreenPreferenceController(context, FAKE_PREF_KEY)
.setConfig(ambientDisplayConfiguration));
- controllers.add(new PreventRingingPreferenceController(context, FAKE_PREF_KEY));
+ controllers.add(new PreventRingingParentPreferenceController(context, FAKE_PREF_KEY));
return controllers;
}
diff --git a/src/com/android/settings/gestures/PreventRingingGesturePreferenceController.java b/src/com/android/settings/gestures/PreventRingingGesturePreferenceController.java
new file mode 100644
index 0000000..cb9bf4f
--- /dev/null
+++ b/src/com/android/settings/gestures/PreventRingingGesturePreferenceController.java
@@ -0,0 +1,222 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.gestures;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.provider.Settings;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.widget.RadioButtonPreference;
+import com.android.settings.widget.VideoPreference;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnCreate;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
+import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+
+public class PreventRingingGesturePreferenceController extends AbstractPreferenceController
+ implements RadioButtonPreference.OnClickListener, LifecycleObserver, OnSaveInstanceState,
+ OnResume, OnPause, OnCreate, PreferenceControllerMixin {
+
+ @VisibleForTesting static final String KEY_VIBRATE = "prevent_ringing_option_vibrate";
+ @VisibleForTesting static final String KEY_NONE = "prevent_ringing_option_none";
+ @VisibleForTesting static final String KEY_MUTE = "prevent_ringing_option_mute";
+
+ private final String KEY_VIDEO_PAUSED = "key_video_paused";
+ private final String PREF_KEY_VIDEO = "gesture_prevent_ringing_video";
+ private final String KEY = "gesture_prevent_ringing_category";
+ private final Context mContext;
+
+ private VideoPreference mVideoPreference;
+ private boolean mVideoPaused;
+
+ private PreferenceCategory mPreferenceCategory;
+ @VisibleForTesting RadioButtonPreference mVibratePref;
+ @VisibleForTesting RadioButtonPreference mNonePref;
+ @VisibleForTesting RadioButtonPreference mMutePref;
+
+ private SettingObserver mSettingObserver;
+
+ public PreventRingingGesturePreferenceController(Context context, Lifecycle lifecycle) {
+ super(context);
+ mContext = context;
+
+ if (lifecycle != null) {
+ lifecycle.addObserver(this);
+ }
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ if (isAvailable()) {
+ mPreferenceCategory = (PreferenceCategory) screen.findPreference(getPreferenceKey());
+ mVibratePref = makeRadioPreference(KEY_VIBRATE, R.string.prevent_ringing_option_vibrate);
+ mMutePref = makeRadioPreference(KEY_MUTE, R.string.prevent_ringing_option_mute);
+ mNonePref = makeRadioPreference(KEY_NONE, R.string.prevent_ringing_option_none);
+
+ if (mPreferenceCategory != null) {
+ mSettingObserver = new SettingObserver(mPreferenceCategory);
+ }
+
+ mVideoPreference = (VideoPreference) screen.findPreference(getVideoPrefKey());
+ }
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_volumeHushGestureEnabled);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY;
+ }
+
+ public String getVideoPrefKey() {
+ return PREF_KEY_VIDEO;
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ outState.putBoolean(KEY_VIDEO_PAUSED, mVideoPaused);
+ }
+
+ @Override
+ public void onRadioButtonClicked(RadioButtonPreference preference) {
+ int preventRingingSetting = keyToSetting(preference.getKey());
+ if (preventRingingSetting != Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Secure.VOLUME_HUSH_GESTURE, Settings.Secure.VOLUME_HUSH_VIBRATE)) {
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.VOLUME_HUSH_GESTURE, preventRingingSetting);
+ }
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ int preventRingingSetting = Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Secure.VOLUME_HUSH_GESTURE, Settings.Secure.VOLUME_HUSH_VIBRATE);
+
+ final boolean isVibrate = preventRingingSetting == Settings.Secure.VOLUME_HUSH_VIBRATE;
+ final boolean isMute = preventRingingSetting == Settings.Secure.VOLUME_HUSH_MUTE;
+ final boolean isOff = preventRingingSetting == Settings.Secure.VOLUME_HUSH_OFF
+ || (!isVibrate && !isMute);
+ if (mVibratePref != null && mVibratePref.isChecked() != isVibrate) {
+ mVibratePref.setChecked(isVibrate);
+ }
+ if (mMutePref != null && mMutePref.isChecked() != isMute) {
+ mMutePref.setChecked(isMute);
+ }
+ if (mNonePref != null && mNonePref.isChecked() != isOff) {
+ mNonePref.setChecked(isOff);
+ }
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ if (savedInstanceState != null) {
+ mVideoPaused = savedInstanceState.getBoolean(KEY_VIDEO_PAUSED, false);
+ }
+ }
+
+ @Override
+ public void onResume() {
+ if (mSettingObserver != null) {
+ mSettingObserver.register(mContext.getContentResolver());
+ mSettingObserver.onChange(false, null);
+ }
+
+ if (mVideoPreference != null) {
+ mVideoPreference.onViewVisible(mVideoPaused);
+ }
+ }
+
+ @Override
+ public void onPause() {
+ if (mSettingObserver != null) {
+ mSettingObserver.unregister(mContext.getContentResolver());
+ }
+
+ if (mVideoPreference != null) {
+ mVideoPaused = mVideoPreference.isVideoPaused();
+ mVideoPreference.onViewInvisible();
+ }
+ }
+
+ private int keyToSetting(String key) {
+ switch (key) {
+ case KEY_NONE:
+ return Settings.Secure.VOLUME_HUSH_OFF;
+ case KEY_MUTE:
+ return Settings.Secure.VOLUME_HUSH_MUTE;
+ case KEY_VIBRATE:
+ default:
+ return Settings.Secure.VOLUME_HUSH_VIBRATE;
+ }
+ }
+
+ private RadioButtonPreference makeRadioPreference(String key, int titleId) {
+ RadioButtonPreference pref = new RadioButtonPreference(mPreferenceCategory.getContext());
+ pref.setKey(key);
+ pref.setTitle(titleId);
+ pref.setOnClickListener(this);
+ mPreferenceCategory.addPreference(pref);
+ return pref;
+ }
+
+ private class SettingObserver extends ContentObserver {
+ private final Uri VOLUME_HUSH_GESTURE = Settings.Secure.getUriFor(
+ Settings.Secure.VOLUME_HUSH_GESTURE);
+
+ private final Preference mPreference;
+
+ public SettingObserver(Preference preference) {
+ super(new Handler());
+ mPreference = preference;
+ }
+
+ public void register(ContentResolver cr) {
+ cr.registerContentObserver(VOLUME_HUSH_GESTURE, false, this);
+ }
+
+ public void unregister(ContentResolver cr) {
+ cr.unregisterContentObserver(this);
+ }
+
+ @Override
+ public void onChange(boolean selfChange, Uri uri) {
+ super.onChange(selfChange, uri);
+ if (uri == null || VOLUME_HUSH_GESTURE.equals(uri)) {
+ updateState(mPreference);
+ }
+ }
+ }
+}
diff --git a/src/com/android/settings/gestures/PreventRingingGestureSettings.java b/src/com/android/settings/gestures/PreventRingingGestureSettings.java
index 84b4e16..3e8ae85 100644
--- a/src/com/android/settings/gestures/PreventRingingGestureSettings.java
+++ b/src/com/android/settings/gestures/PreventRingingGestureSettings.java
@@ -23,8 +23,11 @@
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.search.SearchIndexable;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -40,6 +43,18 @@
}
@Override
+ protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
+ return buildPreferenceControllers(context, getSettingsLifecycle());
+ }
+
+ private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
+ Lifecycle lifecycle) {
+ List<AbstractPreferenceController> controllers = new ArrayList<>();
+ controllers.add(new PreventRingingGesturePreferenceController(context, lifecycle));
+ return controllers;
+ }
+
+ @Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.SETTINGS_PREVENT_RINGING;
}
@@ -68,6 +83,12 @@
sir.xmlResId = R.xml.prevent_ringing_gesture_settings;
return Arrays.asList(sir);
}
+
+ @Override
+ public List<AbstractPreferenceController> createPreferenceControllers(
+ Context context) {
+ return buildPreferenceControllers(context, null);
+ }
};
}
diff --git a/src/com/android/settings/gestures/PreventRingingPreferenceController.java b/src/com/android/settings/gestures/PreventRingingPreferenceController.java
deleted file mode 100644
index 570c1c6..0000000
--- a/src/com/android/settings/gestures/PreventRingingPreferenceController.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.gestures;
-
-import static android.provider.Settings.Secure.VOLUME_HUSH_MUTE;
-import static android.provider.Settings.Secure.VOLUME_HUSH_OFF;
-import static android.provider.Settings.Secure.VOLUME_HUSH_VIBRATE;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.provider.Settings;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.ListPreference;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.widget.VideoPreference;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnCreate;
-import com.android.settingslib.core.lifecycle.events.OnPause;
-import com.android.settingslib.core.lifecycle.events.OnResume;
-import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
-
-public class PreventRingingPreferenceController extends PreventRingingParentPreferenceController
- implements Preference.OnPreferenceChangeListener,
- LifecycleObserver, OnResume, OnPause, OnCreate, OnSaveInstanceState {
-
- private static final String PREF_KEY_VIDEO = "gesture_prevent_ringing_video";
- @VisibleForTesting
- static final String KEY_VIDEO_PAUSED = "key_video_paused";
-
- private VideoPreference mVideoPreference;
- @VisibleForTesting
- boolean mVideoPaused;
-
- public PreventRingingPreferenceController(Context context, String key) {
- super(context, key);
- }
-
- @Override
- public int getAvailabilityStatus() {
- final int status = super.getAvailabilityStatus();
- if (status == AVAILABLE_UNSEARCHABLE) {
- return AVAILABLE;
- }
- return status;
- }
-
- @Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- if (isAvailable()) {
- mVideoPreference = (VideoPreference) screen.findPreference(getVideoPrefKey());
- }
- }
-
- @Override
- public void updateState(Preference preference) {
- super.updateState(preference);
- if (preference != null) {
- if (preference instanceof ListPreference) {
- ListPreference pref = (ListPreference) preference;
- int value = Settings.Secure.getInt(
- mContext.getContentResolver(), SECURE_KEY, VOLUME_HUSH_VIBRATE);
- switch (value) {
- case VOLUME_HUSH_VIBRATE:
- pref.setValue(String.valueOf(value));
- break;
- case VOLUME_HUSH_MUTE:
- pref.setValue(String.valueOf(value));
- break;
- default:
- pref.setValue(String.valueOf(VOLUME_HUSH_OFF));
- }
- }
- }
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- if (savedInstanceState != null) {
- mVideoPaused = savedInstanceState.getBoolean(KEY_VIDEO_PAUSED, false);
- }
- }
-
- @Override
- public void onSaveInstanceState(Bundle outState) {
- outState.putBoolean(KEY_VIDEO_PAUSED, mVideoPaused);
- }
-
- @Override
- public void onPause() {
- if (mVideoPreference != null) {
- mVideoPaused = mVideoPreference.isVideoPaused();
- mVideoPreference.onViewInvisible();
- }
- }
-
- @Override
- public void onResume() {
- if (mVideoPreference != null) {
- mVideoPreference.onViewVisible(mVideoPaused);
- }
- }
-
- protected String getVideoPrefKey() {
- return PREF_KEY_VIDEO;
- }
-
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- int value = Integer.parseInt((String) newValue);
- Settings.Secure.putInt(mContext.getContentResolver(), SECURE_KEY, value);
- preference.setSummary(getSummary());
- return true;
- }
-}
diff --git a/src/com/android/settings/homepage/CardContentLoader.java b/src/com/android/settings/homepage/CardContentLoader.java
deleted file mode 100644
index 0b0d6c5..0000000
--- a/src/com/android/settings/homepage/CardContentLoader.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage;
-
-import static android.app.slice.Slice.HINT_ERROR;
-
-import static androidx.slice.widget.SliceLiveData.SUPPORTED_SPECS;
-
-import android.content.ContentProviderClient;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.database.Cursor;
-import android.net.Uri;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
-import androidx.slice.Slice;
-
-import com.android.settings.homepage.deviceinfo.DataUsageSlice;
-import com.android.settings.homepage.deviceinfo.DeviceInfoSlice;
-import com.android.settings.homepage.deviceinfo.StorageSlice;
-import com.android.settingslib.utils.AsyncLoaderCompat;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-
-public class CardContentLoader extends AsyncLoaderCompat<List<ContextualCard>> {
- private static final String TAG = "CardContentLoader";
- static final int CARD_CONTENT_LOADER_ID = 1;
-
- private Context mContext;
-
- public interface CardContentLoaderListener {
- void onFinishCardLoading(List<ContextualCard> contextualCards);
- }
-
- CardContentLoader(Context context) {
- super(context);
- mContext = context.getApplicationContext();
- }
-
- @Override
- protected void onDiscardResult(List<ContextualCard> result) {
-
- }
-
- @NonNull
- @Override
- public List<ContextualCard> loadInBackground() {
- final List<ContextualCard> result = new ArrayList<>();
- try (Cursor cursor = getContextualCardsFromProvider()) {
- if (cursor.getCount() == 0) {
- result.addAll(createStaticCards());
- } else {
- for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
- final ContextualCard card = new ContextualCard(cursor);
- if (card.isCustomCard()) {
- //TODO(b/114688391): Load and generate custom card,then add into list
- } else {
- result.add(card);
- }
- }
- }
- }
- return filter(result);
- }
-
- @VisibleForTesting
- Cursor getContextualCardsFromProvider() {
- return CardDatabaseHelper.getInstance(mContext).getContextualCards();
- }
-
- @VisibleForTesting
- List<ContextualCard> createStaticCards() {
- final long appVersionCode = getAppVersionCode();
- final String packageName = mContext.getPackageName();
- final double rankingScore = 0.0;
- final List<ContextualCard> result = new ArrayList() {{
- add(new ContextualCard.Builder()
- .setSliceUri(DataUsageSlice.DATA_USAGE_CARD_URI.toString())
- .setName(packageName + "/" + DataUsageSlice.PATH_DATA_USAGE_CARD)
- .setPackageName(packageName)
- .setRankingScore(rankingScore)
- .setAppVersion(appVersionCode)
- .setCardType(ContextualCard.CardType.SLICE)
- .setIsHalfWidth(true)
- .build());
- //TODO(b/115971399): Will change following values of SliceUri and Name
- // after landing these slice cards.
-// add(new ContextualCard.Builder()
-// .setSliceUri("content://com.android.settings.slices/battery_card")
-// .setName(packageName + "/" + "battery_card")
-// .setPackageName(packageName)
-// .setRankingScore(rankingScore)
-// .setAppVersion(appVersionCode)
-// .setCardType(ContextualCard.CardType.SLICE)
-// .setIsHalfWidth(true)
-// .build());
- add(new ContextualCard.Builder()
- .setSliceUri(DeviceInfoSlice.DEVICE_INFO_CARD_URI.toString())
- .setName(packageName + "/" + DeviceInfoSlice.PATH_DEVICE_INFO_CARD)
- .setPackageName(packageName)
- .setRankingScore(rankingScore)
- .setAppVersion(appVersionCode)
- .setCardType(ContextualCard.CardType.SLICE)
- .setIsHalfWidth(true)
- .build());
- add(new ContextualCard.Builder()
- .setSliceUri(StorageSlice.STORAGE_CARD_URI.toString())
- .setName(StorageSlice.PATH_STORAGE_CARD)
- .setPackageName(packageName)
- .setRankingScore(rankingScore)
- .setAppVersion(appVersionCode)
- .setCardType(ContextualCard.CardType.SLICE)
- .setIsHalfWidth(true)
- .build());
- }};
- return result;
- }
-
- @VisibleForTesting
- List<ContextualCard> filter(List<ContextualCard> candidates) {
- return candidates.stream().filter(card -> isCardEligibleToDisplay(card)).collect(
- Collectors.toList());
- }
-
- @VisibleForTesting
- boolean isCardEligibleToDisplay(ContextualCard card) {
- if (card.isCustomCard()) {
- return true;
- }
-
- final Uri uri = card.getSliceUri();
-
- if (!ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) {
- return false;
- }
-
- //check if the uri has a provider associated with.
- final ContentProviderClient provider =
- mContext.getContentResolver().acquireContentProviderClient(uri);
- if (provider == null) {
- return false;
- }
- //release contentProviderClient to prevent from memory leak.
- provider.release();
-
- final Slice slice = Slice.bindSlice(mContext, uri, SUPPORTED_SPECS);
- if (slice == null || slice.hasHint(HINT_ERROR)) {
- return false;
- }
-
- return true;
- }
-
- private long getAppVersionCode() {
- try {
- return mContext.getPackageManager().getPackageInfo(mContext.getPackageName(),
- 0 /* flags */).getLongVersionCode();
- } catch (PackageManager.NameNotFoundException e) {
- Log.e(TAG, "Invalid package name for context", e);
- }
- return -1L;
- }
-}
diff --git a/src/com/android/settings/homepage/ContextualCardLookupTable.java b/src/com/android/settings/homepage/ContextualCardLookupTable.java
deleted file mode 100644
index 1acd812..0000000
--- a/src/com/android/settings/homepage/ContextualCardLookupTable.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage;
-
-import com.android.settings.homepage.ContextualCard.CardType;
-import com.android.settings.homepage.conditional.ConditionContextualCardController;
-import com.android.settings.homepage.conditional.ConditionContextualCardRenderer;
-import com.android.settings.homepage.slices.SliceContextualCardController;
-import com.android.settings.homepage.slices.SliceContextualCardRenderer;
-
-import java.util.Set;
-import java.util.TreeSet;
-
-public class ContextualCardLookupTable {
-
- static class ControllerRendererMapping implements Comparable<ControllerRendererMapping> {
- @CardType
- private final int mCardType;
- private final Class<? extends ContextualCardController> mControllerClass;
- private final Class<? extends ContextualCardRenderer> mRendererClass;
-
- private ControllerRendererMapping(@CardType int cardType,
- Class<? extends ContextualCardController> controllerClass,
- Class<? extends ContextualCardRenderer> rendererClass) {
- mCardType = cardType;
- mControllerClass = controllerClass;
- mRendererClass = rendererClass;
- }
-
- @Override
- public int compareTo(ControllerRendererMapping other) {
- return Integer.compare(this.mCardType, other.mCardType);
- }
- }
-
- private static final Set<ControllerRendererMapping> LOOKUP_TABLE =
- new TreeSet<ControllerRendererMapping>() {{
- add(new ControllerRendererMapping(CardType.CONDITIONAL,
- ConditionContextualCardController.class,
- ConditionContextualCardRenderer.class));
- add(new ControllerRendererMapping(CardType.SLICE,
- SliceContextualCardController.class,
- SliceContextualCardRenderer.class));
- }};
-
- public static Class<? extends ContextualCardController> getCardControllerClass(
- @CardType int cardType) {
- for (ControllerRendererMapping mapping : LOOKUP_TABLE) {
- if (mapping.mCardType == cardType) {
- return mapping.mControllerClass;
- }
- }
- return null;
- }
-
- //TODO(b/112578070): Implement multi renderer cases.
- public static Class<? extends ContextualCardRenderer> getCardRendererClasses(
- @CardType int cardType) {
- for (ControllerRendererMapping mapping : LOOKUP_TABLE) {
- if (mapping.mCardType == cardType) {
- return mapping.mRendererClass;
- }
- }
- return null;
- }
-}
diff --git a/src/com/android/settings/homepage/SettingsHomepageActivity.java b/src/com/android/settings/homepage/SettingsHomepageActivity.java
index bfd8c4d..d3f11a0 100644
--- a/src/com/android/settings/homepage/SettingsHomepageActivity.java
+++ b/src/com/android/settings/homepage/SettingsHomepageActivity.java
@@ -16,37 +16,32 @@
package com.android.settings.homepage;
-import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.FeatureFlagUtils;
+import android.widget.ImageView;
import android.widget.Toolbar;
-import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.accounts.AvatarViewMixin;
import com.android.settings.core.FeatureFlags;
import com.android.settings.core.SettingsBaseActivity;
+import com.android.settings.homepage.contextualcards.ContextualCardsFragment;
import com.android.settings.overlay.FeatureFactory;
-import com.google.android.material.bottomnavigation.BottomNavigationView;
-
public class SettingsHomepageActivity extends SettingsBaseActivity {
- @VisibleForTesting
- static final String PERSONAL_SETTINGS_TAG = "personal_settings";
- private static final String ALL_SETTINGS_TAG = "all_settings";
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (!isDynamicHomepageEnabled(this)) {
- final Intent settings = new Intent();
- settings.setAction("android.settings.SETTINGS");
+ if (!FeatureFlagUtils.isEnabled(this, FeatureFlags.DYNAMIC_HOMEPAGE)) {
+ final Intent settings = new Intent(this, SettingsActivity.class);
startActivity(settings);
finish();
return;
@@ -58,46 +53,21 @@
FeatureFactory.getFactory(this).getSearchFeatureProvider()
.initSearchToolbar(this, toolbar);
- final BottomNavigationView navigation = findViewById(R.id.bottom_nav);
- navigation.setOnNavigationItemSelectedListener(item -> {
- switch (item.getItemId()) {
- case R.id.homepage_personal_settings:
- switchFragment(new PersonalSettingsFragment(), PERSONAL_SETTINGS_TAG,
- ALL_SETTINGS_TAG);
- return true;
+ final ImageView avatarView = findViewById(R.id.account_avatar);
+ final AvatarViewMixin avatarViewMixin = new AvatarViewMixin(this, avatarView);
+ getLifecycle().addObserver(avatarViewMixin);
- case R.id.homepage_all_settings:
- switchFragment(new TopLevelSettings(), ALL_SETTINGS_TAG,
- PERSONAL_SETTINGS_TAG);
- return true;
- }
- return false;
- });
-
- if (savedInstanceState == null) {
- // savedInstanceState is null, this is first load.
- // Default to open contextual cards.
- switchFragment(new PersonalSettingsFragment(), PERSONAL_SETTINGS_TAG,
- ALL_SETTINGS_TAG);
- }
+ showFragment(new ContextualCardsFragment(), R.id.contextual_cards_content);
+ showFragment(new TopLevelSettings(), R.id.main_content);
}
- public static boolean isDynamicHomepageEnabled(Context context) {
- return FeatureFlagUtils.isEnabled(context, FeatureFlags.DYNAMIC_HOMEPAGE);
- }
-
- private void switchFragment(Fragment fragment, String showFragmentTag, String hideFragmentTag) {
+ private void showFragment(Fragment fragment, int id) {
final FragmentManager fragmentManager = getSupportFragmentManager();
final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
+ final Fragment showFragment = fragmentManager.findFragmentById(id);
- final Fragment hideFragment = fragmentManager.findFragmentByTag(hideFragmentTag);
- if (hideFragment != null) {
- fragmentTransaction.hide(hideFragment);
- }
-
- Fragment showFragment = fragmentManager.findFragmentByTag(showFragmentTag);
if (showFragment == null) {
- fragmentTransaction.add(R.id.main_content, fragment, showFragmentTag);
+ fragmentTransaction.add(id, fragment);
} else {
fragmentTransaction.show(showFragment);
}
diff --git a/src/com/android/settings/homepage/conditional/AirplaneModeConditionCard.java b/src/com/android/settings/homepage/conditional/AirplaneModeConditionCard.java
deleted file mode 100644
index 2fbe80a..0000000
--- a/src/com/android/settings/homepage/conditional/AirplaneModeConditionCard.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage.conditional;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
-
-public class AirplaneModeConditionCard implements ConditionalCard {
-
- private final Context mAppContext;
-
- public AirplaneModeConditionCard(Context appContext) {
- mAppContext = appContext;
- }
-
- @Override
- public long getId() {
- return AirplaneModeConditionController.ID;
- }
-
- @Override
- public CharSequence getActionText() {
- return mAppContext.getText(R.string.condition_turn_off);
- }
-
- @Override
- public int getMetricsConstant() {
- return MetricsProto.MetricsEvent.SETTINGS_CONDITION_AIRPLANE_MODE;
- }
-
- @Override
- public Drawable getIcon() {
- return mAppContext.getDrawable(R.drawable.ic_airplanemode_active);
- }
-
- @Override
- public CharSequence getTitle() {
- return mAppContext.getText(R.string.condition_airplane_title);
- }
-
- @Override
- public CharSequence getSummary() {
- return mAppContext.getText(R.string.condition_airplane_summary);
- }
-}
diff --git a/src/com/android/settings/homepage/conditional/BackgroundDataConditionCard.java b/src/com/android/settings/homepage/conditional/BackgroundDataConditionCard.java
deleted file mode 100644
index 13792a9..0000000
--- a/src/com/android/settings/homepage/conditional/BackgroundDataConditionCard.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage.conditional;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
-
-public class BackgroundDataConditionCard implements ConditionalCard {
-
- private final Context mAppContext;
-
- public BackgroundDataConditionCard(Context appContext) {
- mAppContext = appContext;
- }
-
- @Override
- public long getId() {
- return BackgroundDataConditionController.ID;
- }
-
- @Override
- public CharSequence getActionText() {
- return mAppContext.getText(R.string.condition_turn_off);
- }
-
- @Override
- public int getMetricsConstant() {
- return MetricsProto.MetricsEvent.SETTINGS_CONDITION_BACKGROUND_DATA;
- }
-
- @Override
- public Drawable getIcon() {
- return mAppContext.getDrawable(R.drawable.ic_data_saver);
- }
-
- @Override
- public CharSequence getTitle() {
- return mAppContext.getText(R.string.condition_bg_data_title);
- }
-
- @Override
- public CharSequence getSummary() {
- return mAppContext.getText(R.string.condition_bg_data_summary);
- }
-}
diff --git a/src/com/android/settings/homepage/conditional/BatterySaverConditionCard.java b/src/com/android/settings/homepage/conditional/BatterySaverConditionCard.java
deleted file mode 100644
index ea84cb2..0000000
--- a/src/com/android/settings/homepage/conditional/BatterySaverConditionCard.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage.conditional;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
-
-public class BatterySaverConditionCard implements ConditionalCard {
-
- private final Context mAppContext;
-
- public BatterySaverConditionCard(Context appContext) {
- mAppContext = appContext;
- }
-
- @Override
- public long getId() {
- return BatterySaverConditionController.ID;
- }
-
- @Override
- public CharSequence getActionText() {
- return mAppContext.getText(R.string.condition_turn_off);
- }
-
- @Override
- public int getMetricsConstant() {
- return MetricsProto.MetricsEvent.SETTINGS_CONDITION_BATTERY_SAVER;
- }
-
- @Override
- public Drawable getIcon() {
- return mAppContext.getDrawable(R.drawable.ic_battery_saver_accent_24dp);
- }
-
- @Override
- public CharSequence getTitle() {
- return mAppContext.getText(R.string.condition_battery_title);
- }
-
- @Override
- public CharSequence getSummary() {
- return mAppContext.getText(R.string.condition_battery_summary);
- }
-}
diff --git a/src/com/android/settings/homepage/conditional/CellularDataConditionCard.java b/src/com/android/settings/homepage/conditional/CellularDataConditionCard.java
deleted file mode 100644
index f135c4f..0000000
--- a/src/com/android/settings/homepage/conditional/CellularDataConditionCard.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage.conditional;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
-
-public class CellularDataConditionCard implements ConditionalCard {
-
- private final Context mAppContext;
-
- public CellularDataConditionCard(Context appContext) {
- mAppContext = appContext;
- }
-
- @Override
- public long getId() {
- return CellularDataConditionController.ID;
- }
-
- @Override
- public CharSequence getActionText() {
- return mAppContext.getText(R.string.condition_turn_on);
- }
-
- @Override
- public int getMetricsConstant() {
- return MetricsProto.MetricsEvent.SETTINGS_CONDITION_CELLULAR_DATA;
- }
-
- @Override
- public Drawable getIcon() {
- return mAppContext.getDrawable(R.drawable.ic_cellular_off);
- }
-
- @Override
- public CharSequence getTitle() {
- return mAppContext.getText(R.string.condition_cellular_title);
- }
-
- @Override
- public CharSequence getSummary() {
- return mAppContext.getText(R.string.condition_cellular_summary);
- }
-}
diff --git a/src/com/android/settings/homepage/conditional/ConditionAdapter.java b/src/com/android/settings/homepage/conditional/ConditionAdapter.java
deleted file mode 100644
index a87e4bc..0000000
--- a/src/com/android/settings/homepage/conditional/ConditionAdapter.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage.conditional;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
-import com.android.settings.dashboard.DashboardAdapter;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-
-import java.util.List;
-
-public class ConditionAdapter extends RecyclerView.Adapter<DashboardAdapter.DashboardItemHolder> {
-
- private final Context mContext;
- private final MetricsFeatureProvider mMetricsFeatureProvider;
- private final ConditionManager mConditionManager;
- private final List<ConditionalCard> mConditions;
- private final boolean mExpanded;
-
- public ConditionAdapter(Context context, ConditionManager conditionManager,
- List<ConditionalCard> conditions, boolean expanded) {
- mContext = context;
- mConditionManager = conditionManager;
- mConditions = conditions;
- mExpanded = expanded;
- mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
-
- setHasStableIds(true);
- }
-
- @Override
- public DashboardAdapter.DashboardItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- return new DashboardAdapter.DashboardItemHolder(LayoutInflater.from(parent.getContext())
- .inflate(viewType, parent, false));
- }
-
- @Override
- public void onBindViewHolder(DashboardAdapter.DashboardItemHolder holder, int position) {
- final ConditionalCard condition = mConditions.get(position);
- final boolean isLastItem = position == mConditions.size() - 1;
- bindViews(condition, holder, isLastItem);
- }
-
- @Override
- public long getItemId(int position) {
- return mConditions.get(position).getId();
- }
-
- @Override
- public int getItemViewType(int position) {
- return R.layout.condition_tile;
- }
-
- @Override
- public int getItemCount() {
- if (mExpanded) {
- return mConditions.size();
- }
- return 0;
- }
-
- private void bindViews(final ConditionalCard condition,
- DashboardAdapter.DashboardItemHolder view, boolean isLastItem) {
- mMetricsFeatureProvider.visible(mContext, MetricsProto.MetricsEvent.DASHBOARD_SUMMARY,
- condition.getMetricsConstant());
- view.itemView.findViewById(R.id.content).setOnClickListener(
- v -> {
- mMetricsFeatureProvider.action(mContext,
- MetricsProto.MetricsEvent.ACTION_SETTINGS_CONDITION_CLICK,
- condition.getMetricsConstant());
- mConditionManager.onPrimaryClick(mContext, condition.getId());
- });
- view.icon.setImageDrawable(condition.getIcon());
- view.title.setText(condition.getTitle());
- view.summary.setText(condition.getSummary());
-
- setViewVisibility(view.itemView, R.id.divider, !isLastItem);
-
- final CharSequence action = condition.getActionText();
- final boolean hasButtons = !TextUtils.isEmpty(action);
- setViewVisibility(view.itemView, R.id.buttonBar, hasButtons);
-
- final Button button = view.itemView.findViewById(R.id.first_action);
- if (hasButtons) {
- button.setVisibility(View.VISIBLE);
- button.setText(action);
- button.setOnClickListener(v -> {
- final Context context = v.getContext();
- mMetricsFeatureProvider.action(
- context, MetricsProto.MetricsEvent.ACTION_SETTINGS_CONDITION_BUTTON,
- condition.getMetricsConstant());
- mConditionManager.onActionClick(condition.getId());
- });
- } else {
- button.setVisibility(View.GONE);
- }
-
- }
-
- private void setViewVisibility(View containerView, int viewId, boolean visible) {
- View view = containerView.findViewById(viewId);
- if (view != null) {
- view.setVisibility(visible ? View.VISIBLE : View.GONE);
- }
- }
-}
diff --git a/src/com/android/settings/homepage/conditional/ConditionalCard.java b/src/com/android/settings/homepage/conditional/ConditionalCard.java
deleted file mode 100644
index f4c4547..0000000
--- a/src/com/android/settings/homepage/conditional/ConditionalCard.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage.conditional;
-
-import android.graphics.drawable.Drawable;
-
-/**
- * UI Model for a conditional card displayed on homepage.
- */
-public interface ConditionalCard {
-
- /**
- * A stable ID for this card.
- *
- * @see {@link ConditionalCardController#getId()}
- */
- long getId();
-
- /**
- * The text display on the card for click action.
- */
- CharSequence getActionText();
-
- /**
- * Metrics constant used for logging user interaction.
- */
- int getMetricsConstant();
-
- Drawable getIcon();
-
- CharSequence getTitle();
-
- CharSequence getSummary();
-}
diff --git a/src/com/android/settings/homepage/conditional/DndConditionCard.java b/src/com/android/settings/homepage/conditional/DndConditionCard.java
deleted file mode 100644
index dbc0d83..0000000
--- a/src/com/android/settings/homepage/conditional/DndConditionCard.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage.conditional;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
-
-public class DndConditionCard implements ConditionalCard {
-
- private final Context mAppContext;
- private final DndConditionCardController mController;
-
- public DndConditionCard(Context appContext, ConditionManager manager) {
- mAppContext = appContext;
- mController = manager.getController(getId());
- }
-
- @Override
- public long getId() {
- return DndConditionCardController.ID;
- }
-
- @Override
- public Drawable getIcon() {
- return mAppContext.getDrawable(R.drawable.ic_do_not_disturb_on_24dp);
- }
-
- @Override
- public CharSequence getTitle() {
- return mAppContext.getText(R.string.condition_zen_title);
- }
-
- @Override
- public CharSequence getSummary() {
- return mController.getSummary();
- }
-
- @Override
- public CharSequence getActionText() {
- return mAppContext.getText(R.string.condition_turn_off);
- }
-
- @Override
- public int getMetricsConstant() {
- return MetricsProto.MetricsEvent.SETTINGS_CONDITION_DND;
- }
-}
diff --git a/src/com/android/settings/homepage/conditional/FocusRecyclerView.java b/src/com/android/settings/homepage/conditional/FocusRecyclerView.java
deleted file mode 100644
index 78b9eed..0000000
--- a/src/com/android/settings/homepage/conditional/FocusRecyclerView.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2015, 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.homepage.conditional;
-
-import android.content.Context;
-import android.util.AttributeSet;
-
-import androidx.annotation.Nullable;
-import androidx.recyclerview.widget.RecyclerView;
-
-/**
- * Version of RecyclerView that can have listeners for onWindowFocusChanged.
- */
-public class FocusRecyclerView extends RecyclerView {
-
- private FocusListener mListener;
-
- public FocusRecyclerView(Context context, @Nullable AttributeSet attrs) {
- super(context, attrs);
- }
-
- @Override
- public void onWindowFocusChanged(boolean hasWindowFocus) {
- super.onWindowFocusChanged(hasWindowFocus);
- if (mListener != null) {
- mListener.onWindowFocusChanged(hasWindowFocus);
- }
- }
-
- public void setListener(FocusListener listener) {
- mListener = listener;
- }
-
- public interface FocusListener {
- void onWindowFocusChanged(boolean hasWindowFocus);
- }
-}
diff --git a/src/com/android/settings/homepage/conditional/HotspotConditionCard.java b/src/com/android/settings/homepage/conditional/HotspotConditionCard.java
deleted file mode 100644
index fd99693..0000000
--- a/src/com/android/settings/homepage/conditional/HotspotConditionCard.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage.conditional;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.os.UserHandle;
-import android.os.UserManager;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-
-public class HotspotConditionCard implements ConditionalCard {
-
- private final Context mAppContext;
- private final ConditionManager mConditionManager;
-
- public HotspotConditionCard(Context appContext, ConditionManager manager) {
- mAppContext = appContext;
- mConditionManager = manager;
- }
-
- @Override
- public long getId() {
- return HotspotConditionController.ID;
- }
-
- @Override
- public CharSequence getActionText() {
- if (RestrictedLockUtilsInternal.hasBaseUserRestriction(mAppContext,
- UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.myUserId())) {
- return null;
- }
- return mAppContext.getText(R.string.condition_turn_off);
- }
-
- @Override
- public int getMetricsConstant() {
- return MetricsProto.MetricsEvent.SETTINGS_CONDITION_HOTSPOT;
- }
-
- @Override
- public Drawable getIcon() {
- return mAppContext.getDrawable(R.drawable.ic_hotspot);
- }
-
- @Override
- public CharSequence getTitle() {
- return mAppContext.getText(R.string.condition_hotspot_title);
- }
-
- @Override
- public CharSequence getSummary() {
- final HotspotConditionController controller = mConditionManager.getController(getId());
- return controller.getSummary();
- }
-}
diff --git a/src/com/android/settings/homepage/conditional/NightDisplayConditionCard.java b/src/com/android/settings/homepage/conditional/NightDisplayConditionCard.java
deleted file mode 100644
index e0c6ee0..0000000
--- a/src/com/android/settings/homepage/conditional/NightDisplayConditionCard.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage.conditional;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
-
-public class NightDisplayConditionCard implements ConditionalCard {
-
- private final Context mAppContext;
-
- public NightDisplayConditionCard(Context appContext) {
- mAppContext = appContext;
- }
-
- @Override
- public long getId() {
- return NightDisplayConditionController.ID;
- }
-
- @Override
- public CharSequence getActionText() {
- return mAppContext.getText(R.string.condition_turn_off);
- }
-
- @Override
- public int getMetricsConstant() {
- return MetricsProto.MetricsEvent.SETTINGS_CONDITION_NIGHT_DISPLAY;
- }
-
- @Override
- public Drawable getIcon() {
- return mAppContext.getDrawable(R.drawable.ic_settings_night_display);
- }
-
- @Override
- public CharSequence getTitle() {
- return mAppContext.getText(R.string.condition_night_display_title);
- }
-
- @Override
- public CharSequence getSummary() {
- return mAppContext.getText(R.string.condition_night_display_summary);
- }
-}
diff --git a/src/com/android/settings/homepage/conditional/RingerMutedConditionCard.java b/src/com/android/settings/homepage/conditional/RingerMutedConditionCard.java
deleted file mode 100644
index 47d6407..0000000
--- a/src/com/android/settings/homepage/conditional/RingerMutedConditionCard.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage.conditional;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
-
-public class RingerMutedConditionCard implements ConditionalCard {
-
- private final Context mAppContext;
-
- public RingerMutedConditionCard(Context appContext) {
- mAppContext = appContext;
- }
-
- @Override
- public long getId() {
- return RingerMutedConditionController.ID;
- }
-
- @Override
- public CharSequence getActionText() {
- return mAppContext.getText(R.string.condition_device_muted_action_turn_on_sound);
- }
-
- @Override
- public int getMetricsConstant() {
- return MetricsProto.MetricsEvent.SETTINGS_CONDITION_DEVICE_MUTED;
- }
-
- @Override
- public Drawable getIcon() {
- return mAppContext.getDrawable(R.drawable.ic_notifications_off_24dp);
- }
-
- @Override
- public CharSequence getTitle() {
- return mAppContext.getText(R.string.condition_device_muted_title);
- }
-
- @Override
- public CharSequence getSummary() {
- return mAppContext.getText(R.string.condition_device_muted_summary);
- }
-}
diff --git a/src/com/android/settings/homepage/conditional/RingerVibrateConditionCard.java b/src/com/android/settings/homepage/conditional/RingerVibrateConditionCard.java
deleted file mode 100644
index 229cc83..0000000
--- a/src/com/android/settings/homepage/conditional/RingerVibrateConditionCard.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage.conditional;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
-
-public class RingerVibrateConditionCard implements ConditionalCard {
-
- private final Context mAppContext;
-
- public RingerVibrateConditionCard(Context appContext) {
- mAppContext = appContext;
- }
-
- @Override
- public long getId() {
- return RingerVibrateConditionController.ID;
- }
-
- @Override
- public CharSequence getActionText() {
- return mAppContext.getText(R.string.condition_device_muted_action_turn_on_sound);
- }
-
- @Override
- public int getMetricsConstant() {
- return MetricsProto.MetricsEvent.SETTINGS_CONDITION_DEVICE_VIBRATE;
- }
-
- @Override
- public Drawable getIcon() {
- return mAppContext.getDrawable(R.drawable.ic_volume_ringer_vibrate);
- }
-
- @Override
- public CharSequence getTitle() {
- return mAppContext.getText(R.string.condition_device_vibrate_title);
- }
-
- @Override
- public CharSequence getSummary() {
- return mAppContext.getText(R.string.condition_device_vibrate_summary);
- }
-}
diff --git a/src/com/android/settings/homepage/conditional/RingerVibrateConditionController.java b/src/com/android/settings/homepage/conditional/RingerVibrateConditionController.java
deleted file mode 100644
index 43de080..0000000
--- a/src/com/android/settings/homepage/conditional/RingerVibrateConditionController.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage.conditional;
-
-import android.content.Context;
-import android.media.AudioManager;
-
-import java.util.Objects;
-
-public class RingerVibrateConditionController extends AbnormalRingerConditionController {
- static final int ID = Objects.hash("RingerVibrateConditionController");
-
- public RingerVibrateConditionController(Context appContext, ConditionManager conditionManager) {
- super(appContext, conditionManager);
-
- }
-
- @Override
- public long getId() {
- return ID;
- }
-
- @Override
- public boolean isDisplayable() {
- return mAudioManager.getRingerModeInternal() == AudioManager.RINGER_MODE_VIBRATE;
- }
-}
diff --git a/src/com/android/settings/homepage/conditional/WorkModeConditionCard.java b/src/com/android/settings/homepage/conditional/WorkModeConditionCard.java
deleted file mode 100644
index c283bec..0000000
--- a/src/com/android/settings/homepage/conditional/WorkModeConditionCard.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage.conditional;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
-
-public class WorkModeConditionCard implements ConditionalCard {
-
- private final Context mAppContext;
-
- public WorkModeConditionCard(Context appContext) {
- mAppContext = appContext;
- }
-
- @Override
- public long getId() {
- return WorkModeConditionController.ID;
- }
-
- @Override
- public CharSequence getActionText() {
- return mAppContext.getText(R.string.condition_turn_on);
- }
-
- @Override
- public int getMetricsConstant() {
- return MetricsProto.MetricsEvent.SETTINGS_CONDITION_WORK_MODE;
- }
-
- @Override
- public Drawable getIcon() {
- return mAppContext.getDrawable(R.drawable.ic_signal_workmode_enable);
- }
-
- @Override
- public CharSequence getTitle() {
- return mAppContext.getText(R.string.condition_work_title);
- }
-
- @Override
- public CharSequence getSummary() {
- return mAppContext.getText(R.string.condition_work_summary);
- }
-
-}
diff --git a/src/com/android/settings/homepage/CardContentProvider.java b/src/com/android/settings/homepage/contextualcards/CardContentProvider.java
similarity index 94%
rename from src/com/android/settings/homepage/CardContentProvider.java
rename to src/com/android/settings/homepage/contextualcards/CardContentProvider.java
index 9989445..74e09e8 100644
--- a/src/com/android/settings/homepage/CardContentProvider.java
+++ b/src/com/android/settings/homepage/contextualcards/CardContentProvider.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage;
+package com.android.settings.homepage.contextualcards;
import android.content.ContentProvider;
import android.content.ContentValues;
@@ -41,14 +41,12 @@
public static final String CARD_AUTHORITY = "com.android.settings.homepage.CardContentProvider";
/** URI matcher for ContentProvider queries. */
- private static final UriMatcher sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
+ private static final UriMatcher URI_MATCHER = new UriMatcher(UriMatcher.NO_MATCH);
/** URI matcher type for cards table */
private static final int MATCH_CARDS = 100;
- /** URI matcher type for card log table */
- private static final int MATCH_CARD_LOG = 200;
static {
- sUriMatcher.addURI(CARD_AUTHORITY, CardDatabaseHelper.CARD_TABLE, MATCH_CARDS);
+ URI_MATCHER.addURI(CARD_AUTHORITY, CardDatabaseHelper.CARD_TABLE, MATCH_CARDS);
}
private CardDatabaseHelper mDBHelper;
@@ -170,7 +168,7 @@
@VisibleForTesting
String getTableFromMatch(Uri uri) {
- final int match = sUriMatcher.match(uri);
+ final int match = URI_MATCHER.match(uri);
String table;
switch (match) {
case MATCH_CARDS:
diff --git a/src/com/android/settings/homepage/CardDatabaseHelper.java b/src/com/android/settings/homepage/contextualcards/CardDatabaseHelper.java
similarity index 81%
rename from src/com/android/settings/homepage/CardDatabaseHelper.java
rename to src/com/android/settings/homepage/contextualcards/CardDatabaseHelper.java
index 53de441..b5cdf87 100644
--- a/src/com/android/settings/homepage/CardDatabaseHelper.java
+++ b/src/com/android/settings/homepage/contextualcards/CardDatabaseHelper.java
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-package com.android.settings.homepage;
+package com.android.settings.homepage.contextualcards;
+import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
@@ -30,7 +31,7 @@
public class CardDatabaseHelper extends SQLiteOpenHelper {
private static final String TAG = "CardDatabaseHelper";
private static final String DATABASE_NAME = "homepage_cards.db";
- private static final int DATABASE_VERSION = 3;
+ private static final int DATABASE_VERSION = 5;
public static final String CARD_TABLE = "cards";
@@ -56,7 +57,7 @@
String SLICE_URI = "slice_uri";
/**
- * Category of the card. The value is between 0 to 3.
+ * Category of the card.
*/
String CATEGORY = "category";
@@ -119,6 +120,11 @@
* Decide the card display full-length width or half-width in screen.
*/
String SUPPORT_HALF_WIDTH = "support_half_width";
+
+ /**
+ * Decide the card is dismissed or not.
+ */
+ String CARD_DISMISSED = "card_dismissed";
}
private static final String CREATE_CARD_TABLE =
@@ -133,11 +139,7 @@
CardColumns.SLICE_URI +
" TEXT, " +
CardColumns.CATEGORY +
- " INTEGER DEFAULT 0 CHECK (" +
- CardColumns.CATEGORY +
- " >= 0 AND " +
- CardColumns.CATEGORY +
- " <= 3), " +
+ " INTEGER DEFAULT 0, " +
CardColumns.LOCALIZED_TO_LOCALE +
" TEXT, " +
CardColumns.PACKAGE_NAME +
@@ -161,6 +163,8 @@
CardColumns.EXPIRE_TIME_MS +
" INTEGER, " +
CardColumns.SUPPORT_HALF_WIDTH +
+ " INTEGER DEFAULT 0, " +
+ CardColumns.CARD_DISMISSED +
" INTEGER DEFAULT 0 " +
");";
@@ -194,9 +198,27 @@
Cursor getContextualCards() {
final SQLiteDatabase db = this.getReadableDatabase();
- Cursor cursor = db.query(CARD_TABLE, null /* columns */, null /* selection */,
+ final String selection = CardColumns.CARD_DISMISSED + "=0";
+ Cursor cursor = db.query(CARD_TABLE, null /* columns */, selection,
null /* selectionArgs */, null /* groupBy */, null /* having */,
- null /* orderBy */);
+ CardColumns.SCORE + " DESC" /* orderBy */);
return cursor;
}
+
+ /**
+ * Mark a specific ContextualCard with dismissal flag in the database to indicate that the
+ * card has been dismissed.
+ *
+ * @param cardName the card name of the ContextualCard which is dismissed by user.
+ * @return updated row number
+ */
+ public int markContextualCardAsDismissed(String cardName) {
+ final SQLiteDatabase database = this.getWritableDatabase();
+ final ContentValues values = new ContentValues();
+ values.put(CardColumns.CARD_DISMISSED, 1);
+ final String selection = CardColumns.NAME + "=?";
+ final String[] selectionArgs = {cardName};
+ final int rowsUpdated = database.update(CARD_TABLE, values, selection, selectionArgs);
+ return rowsUpdated;
+ }
}
diff --git a/src/com/android/settings/homepage/ContextualCard.java b/src/com/android/settings/homepage/contextualcards/ContextualCard.java
similarity index 87%
rename from src/com/android/settings/homepage/ContextualCard.java
rename to src/com/android/settings/homepage/contextualcards/ContextualCard.java
index 130b878..8d43914 100644
--- a/src/com/android/settings/homepage/ContextualCard.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCard.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage;
+package com.android.settings.homepage.contextualcards;
import android.annotation.IntDef;
import android.database.Cursor;
@@ -33,15 +33,16 @@
/**
* Flags indicating the type of the ContextualCard.
*/
- @IntDef({CardType.DEFAULT, CardType.SLICE, CardType.SUGGESTION, CardType.CONDITIONAL})
+ @IntDef({CardType.DEFAULT, CardType.SLICE, CardType.LEGACY_SUGGESTION, CardType.CONDITIONAL})
@Retention(RetentionPolicy.SOURCE)
public @interface CardType {
int DEFAULT = 0;
int SLICE = 1;
- int SUGGESTION = 2;
+ int LEGACY_SUGGESTION = 2;
int CONDITIONAL = 3;
}
+ private final Builder mBuilder;
private final String mName;
@CardType
private final int mCardType;
@@ -142,7 +143,12 @@
return TextUtils.isEmpty(mSliceUri);
}
+ public Builder mutate() {
+ return mBuilder;
+ }
+
public ContextualCard(Builder builder) {
+ mBuilder = builder;
mName = builder.mName;
mCardType = builder.mCardType;
mRankingScore = builder.mRankingScore;
@@ -164,28 +170,47 @@
}
ContextualCard(Cursor c) {
+ mBuilder = new Builder();
mName = c.getString(c.getColumnIndex(CardDatabaseHelper.CardColumns.NAME));
+ mBuilder.setName(mName);
mCardType = c.getInt(c.getColumnIndex(CardDatabaseHelper.CardColumns.TYPE));
+ mBuilder.setCardType(mCardType);
mRankingScore = c.getDouble(c.getColumnIndex(CardDatabaseHelper.CardColumns.SCORE));
+ mBuilder.setRankingScore(mRankingScore);
mSliceUri = c.getString(c.getColumnIndex(CardDatabaseHelper.CardColumns.SLICE_URI));
+ mBuilder.setSliceUri(Uri.parse(mSliceUri));
mCategory = c.getInt(c.getColumnIndex(CardDatabaseHelper.CardColumns.CATEGORY));
+ mBuilder.setCategory(mCategory);
mLocalizedToLocale = c.getString(
c.getColumnIndex(CardDatabaseHelper.CardColumns.LOCALIZED_TO_LOCALE));
+ mBuilder.setLocalizedToLocale(mLocalizedToLocale);
mPackageName = c.getString(c.getColumnIndex(CardDatabaseHelper.CardColumns.PACKAGE_NAME));
+ mBuilder.setPackageName(mPackageName);
mAppVersion = c.getLong(c.getColumnIndex(CardDatabaseHelper.CardColumns.APP_VERSION));
+ mBuilder.setAppVersion(mAppVersion);
mTitleResName = c.getString(
c.getColumnIndex(CardDatabaseHelper.CardColumns.TITLE_RES_NAME));
+ mBuilder.setTitleResName(mTitleResName);
mTitleText = c.getString(c.getColumnIndex(CardDatabaseHelper.CardColumns.TITLE_TEXT));
+ mBuilder.setTitleText(mTitleText);
mSummaryResName = c.getString(
c.getColumnIndex(CardDatabaseHelper.CardColumns.SUMMARY_RES_NAME));
+ mBuilder.setSummaryResName(mSummaryResName);
mSummaryText = c.getString(c.getColumnIndex(CardDatabaseHelper.CardColumns.SUMMARY_TEXT));
+ mBuilder.setSummaryText(mSummaryText);
mIconResName = c.getString(c.getColumnIndex(CardDatabaseHelper.CardColumns.ICON_RES_NAME));
+ mBuilder.setIconResName(mIconResName);
mIconResId = c.getInt(c.getColumnIndex(CardDatabaseHelper.CardColumns.ICON_RES_ID));
+ mBuilder.setIconResId(mIconResId);
mCardAction = c.getInt(c.getColumnIndex(CardDatabaseHelper.CardColumns.CARD_ACTION));
+ mBuilder.setCardAction(mCardAction);
mExpireTimeMS = c.getLong(c.getColumnIndex(CardDatabaseHelper.CardColumns.EXPIRE_TIME_MS));
+ mBuilder.setExpireTimeMS(mExpireTimeMS);
mIsHalfWidth = (c.getInt(
c.getColumnIndex(CardDatabaseHelper.CardColumns.SUPPORT_HALF_WIDTH)) == 1);
+ mBuilder.setIsHalfWidth(mIsHalfWidth);
mIconDrawable = null;
+ mBuilder.setIconDrawable(mIconDrawable);
}
@Override
@@ -244,8 +269,8 @@
return this;
}
- public Builder setSliceUri(String sliceUri) {
- mSliceUri = sliceUri;
+ public Builder setSliceUri(Uri sliceUri) {
+ mSliceUri = sliceUri.toString();
return this;
}
diff --git a/src/com/android/settings/homepage/ContextualCardController.java b/src/com/android/settings/homepage/contextualcards/ContextualCardController.java
similarity index 94%
rename from src/com/android/settings/homepage/ContextualCardController.java
rename to src/com/android/settings/homepage/contextualcards/ContextualCardController.java
index e47f70c..95669ce 100644
--- a/src/com/android/settings/homepage/ContextualCardController.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardController.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage;
+package com.android.settings.homepage.contextualcards;
/**
* Data controller for {@link ContextualCard}.
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
new file mode 100644
index 0000000..f3fbf06
--- /dev/null
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
@@ -0,0 +1,151 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage.contextualcards;
+
+import static android.app.slice.Slice.HINT_ERROR;
+
+import static androidx.slice.widget.SliceLiveData.SUPPORTED_SPECS;
+
+import android.content.ContentProviderClient;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.database.Cursor;
+import android.net.Uri;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+import androidx.slice.Slice;
+
+import com.android.settings.homepage.contextualcards.deviceinfo.BatterySlice;
+import com.android.settingslib.utils.AsyncLoaderCompat;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>> {
+ private static final String TAG = "ContextualCardLoader";
+ static final int CARD_CONTENT_LOADER_ID = 1;
+
+ private Context mContext;
+
+ public interface CardContentLoaderListener {
+ void onFinishCardLoading(List<ContextualCard> contextualCards);
+ }
+
+ ContextualCardLoader(Context context) {
+ super(context);
+ mContext = context.getApplicationContext();
+ }
+
+ @Override
+ protected void onDiscardResult(List<ContextualCard> result) {
+
+ }
+
+ @NonNull
+ @Override
+ public List<ContextualCard> loadInBackground() {
+ final List<ContextualCard> result = new ArrayList<>();
+ try (Cursor cursor = getContextualCardsFromProvider()) {
+ if (cursor.getCount() == 0) {
+ result.addAll(createStaticCards());
+ } else {
+ for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
+ final ContextualCard card = new ContextualCard(cursor);
+ if (card.isCustomCard()) {
+ //TODO(b/114688391): Load and generate custom card,then add into list
+ } else {
+ result.add(card);
+ }
+ }
+ }
+ }
+ return filterEligibleCards(result);
+ }
+
+ @VisibleForTesting
+ Cursor getContextualCardsFromProvider() {
+ return CardDatabaseHelper.getInstance(mContext).getContextualCards();
+ }
+
+ @VisibleForTesting
+ List<ContextualCard> createStaticCards() {
+ final long appVersionCode = getAppVersionCode();
+ final String packageName = mContext.getPackageName();
+ final double rankingScore = 0.0;
+ final List<ContextualCard> result = new ArrayList();
+ result.add(new ContextualCard.Builder()
+ .setSliceUri(BatterySlice.BATTERY_CARD_URI)
+ .setName(BatterySlice.PATH_BATTERY_INFO)
+ .setPackageName(packageName)
+ .setRankingScore(rankingScore)
+ .setAppVersion(appVersionCode)
+ .setCardType(ContextualCard.CardType.SLICE)
+ .setIsHalfWidth(false)
+ .build());
+ return result;
+ }
+
+ @VisibleForTesting
+ List<ContextualCard> filterEligibleCards(List<ContextualCard> candidates) {
+ return candidates.stream().filter(card -> isCardEligibleToDisplay(card))
+ .collect(Collectors.toList());
+ }
+
+ @VisibleForTesting
+ boolean isCardEligibleToDisplay(ContextualCard card) {
+ if (card.isCustomCard()) {
+ return true;
+ }
+
+ final Uri uri = card.getSliceUri();
+
+ if (!ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) {
+ return false;
+ }
+
+ //check if the uri has a provider associated with.
+ final ContentProviderClient provider =
+ mContext.getContentResolver().acquireContentProviderClient(uri);
+ if (provider == null) {
+ return false;
+ }
+ //release contentProviderClient to prevent from memory leak.
+ provider.release();
+
+ final Slice slice = Slice.bindSlice(mContext, uri, SUPPORTED_SPECS);
+ if (slice == null || slice.hasHint(HINT_ERROR)) {
+ Log.w(TAG, "Failed to bind slice, not eligible for display " + uri);
+ return false;
+ }
+
+ return true;
+ }
+
+ private long getAppVersionCode() {
+ try {
+ return mContext.getPackageManager().getPackageInfo(mContext.getPackageName(),
+ 0 /* flags */).getLongVersionCode();
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.e(TAG, "Invalid package name for context", e);
+ }
+ return -1L;
+ }
+}
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardLookupTable.java b/src/com/android/settings/homepage/contextualcards/ContextualCardLookupTable.java
new file mode 100644
index 0000000..dabc88c
--- /dev/null
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardLookupTable.java
@@ -0,0 +1,121 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage.contextualcards;
+
+import android.util.Log;
+
+import androidx.annotation.LayoutRes;
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.homepage.contextualcards.ContextualCard.CardType;
+import com.android.settings.homepage.contextualcards.conditional.ConditionContextualCardController;
+import com.android.settings.homepage.contextualcards.conditional.ConditionContextualCardRenderer;
+import com.android.settings.homepage.contextualcards.legacysuggestion
+ .LegacySuggestionContextualCardController;
+import com.android.settings.homepage.contextualcards.legacysuggestion
+ .LegacySuggestionContextualCardRenderer;
+import com.android.settings.homepage.contextualcards.slices.SliceContextualCardController;
+import com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer;
+
+import java.util.Comparator;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.stream.Collectors;
+
+public class ContextualCardLookupTable {
+ private static final String TAG = "ContextualCardLookup";
+
+ static class ControllerRendererMapping implements Comparable<ControllerRendererMapping> {
+ @CardType
+ final int mCardType;
+ final int mViewType;
+ final Class<? extends ContextualCardController> mControllerClass;
+ final Class<? extends ContextualCardRenderer> mRendererClass;
+
+ ControllerRendererMapping(@CardType int cardType, @LayoutRes int viewType,
+ Class<? extends ContextualCardController> controllerClass,
+ Class<? extends ContextualCardRenderer> rendererClass) {
+ mCardType = cardType;
+ mViewType = viewType;
+ mControllerClass = controllerClass;
+ mRendererClass = rendererClass;
+ }
+
+ @Override
+ public int compareTo(ControllerRendererMapping other) {
+ return Comparator.comparingInt((ControllerRendererMapping mapping) -> mapping.mCardType)
+ .thenComparingInt(mapping -> mapping.mViewType)
+ .compare(this, other);
+ }
+ }
+
+ @VisibleForTesting
+ static final Set<ControllerRendererMapping> LOOKUP_TABLE =
+ new TreeSet<ControllerRendererMapping>() {{
+ add(new ControllerRendererMapping(CardType.CONDITIONAL,
+ ConditionContextualCardRenderer.HALF_WIDTH_VIEW_TYPE,
+ ConditionContextualCardController.class,
+ ConditionContextualCardRenderer.class));
+ add(new ControllerRendererMapping(CardType.CONDITIONAL,
+ ConditionContextualCardRenderer.FULL_WIDTH_VIEW_TYPE,
+ ConditionContextualCardController.class,
+ ConditionContextualCardRenderer.class));
+ add(new ControllerRendererMapping(CardType.LEGACY_SUGGESTION,
+ LegacySuggestionContextualCardRenderer.VIEW_TYPE,
+ LegacySuggestionContextualCardController.class,
+ LegacySuggestionContextualCardRenderer.class));
+ add(new ControllerRendererMapping(CardType.SLICE,
+ SliceContextualCardRenderer.VIEW_TYPE,
+ SliceContextualCardController.class,
+ SliceContextualCardRenderer.class));
+ }};
+
+ public static Class<? extends ContextualCardController> getCardControllerClass(
+ @CardType int cardType) {
+ for (ControllerRendererMapping mapping : LOOKUP_TABLE) {
+ if (mapping.mCardType == cardType) {
+ return mapping.mControllerClass;
+ }
+ }
+ return null;
+ }
+
+ public static Class<? extends ContextualCardRenderer> getCardRendererClassByCardType(
+ @CardType int cardType) {
+ return LOOKUP_TABLE.stream()
+ .filter(m -> m.mCardType == cardType)
+ .findFirst()
+ .map(mapping -> mapping.mRendererClass)
+ .orElse(null);
+ }
+
+ public static Class<? extends ContextualCardRenderer> getCardRendererClassByViewType(
+ int viewType) throws IllegalStateException {
+ List<ControllerRendererMapping> validMappings = LOOKUP_TABLE.stream()
+ .filter(m -> m.mViewType == viewType).collect(Collectors.toList());
+ if (validMappings == null || validMappings.isEmpty()) {
+ Log.w(TAG, "No matching mapping");
+ return null;
+ }
+ if (validMappings.size() != 1) {
+ throw new IllegalStateException("Have duplicate VIEW_TYPE in lookup table.");
+ }
+
+ return validMappings.get(0).mRendererClass;
+ }
+}
diff --git a/src/com/android/settings/homepage/ContextualCardManager.java b/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java
similarity index 84%
rename from src/com/android/settings/homepage/ContextualCardManager.java
rename to src/com/android/settings/homepage/contextualcards/ContextualCardManager.java
index 87b048e..39ceff3 100644
--- a/src/com/android/settings/homepage/ContextualCardManager.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java
@@ -14,9 +14,10 @@
* limitations under the License.
*/
-package com.android.settings.homepage;
+package com.android.settings.homepage.contextualcards;
-import static com.android.settings.homepage.CardContentLoader.CARD_CONTENT_LOADER_ID;
+import static com.android.settings.homepage.contextualcards.ContextualCardLoader
+ .CARD_CONTENT_LOADER_ID;
import static java.util.stream.Collectors.groupingBy;
@@ -43,7 +44,7 @@
/**
* This is a centralized manager of multiple {@link ContextualCardController}.
*
- * {@link ContextualCardManager} first loads data from {@link CardContentLoader} and gets back a
+ * {@link ContextualCardManager} first loads data from {@link ContextualCardLoader} and gets back a
* list of {@link ContextualCard}. All subclasses of {@link ContextualCardController} are loaded
* here, which will then trigger the {@link ContextualCardController} to load its data and listen to
* corresponding changes. When every single {@link ContextualCardController} updates its data, the
@@ -52,13 +53,13 @@
* {@link ContextualCardsAdapter} and {@link BaseAdapter#notifyDataSetChanged()} will be called to
* get the page refreshed.
*/
-public class ContextualCardManager implements CardContentLoader.CardContentLoaderListener,
+public class ContextualCardManager implements ContextualCardLoader.CardContentLoaderListener,
ContextualCardUpdateListener {
private static final String TAG = "ContextualCardManager";
//The list for Settings Custom Card
- @ContextualCard.CardType
- private static final int[] SETTINGS_CARDS = {ContextualCard.CardType.CONDITIONAL};
+ private static final int[] SETTINGS_CARDS =
+ {ContextualCard.CardType.CONDITIONAL, ContextualCard.CardType.LEGACY_SUGGESTION};
private final Context mContext;
private final ControllerRendererPool mControllerRendererPool;
@@ -68,23 +69,23 @@
private ContextualCardUpdateListener mListener;
- public ContextualCardManager(Context context, @NonNull Lifecycle lifecycle) {
+ public ContextualCardManager(Context context, Lifecycle lifecycle) {
mContext = context;
mLifecycle = lifecycle;
mContextualCards = new ArrayList<>();
mLifecycleObservers = new ArrayList<>();
mControllerRendererPool = new ControllerRendererPool();
//for data provided by Settings
- for (int cardType : SETTINGS_CARDS) {
+ for (@ContextualCard.CardType int cardType : SETTINGS_CARDS) {
setupController(cardType);
}
}
- void loadContextualCards(PersonalSettingsFragment fragment) {
+ void loadContextualCards(ContextualCardsFragment fragment) {
final CardContentLoaderCallbacks cardContentLoaderCallbacks =
new CardContentLoaderCallbacks(mContext);
cardContentLoaderCallbacks.setListener(this);
- LoaderManager.getInstance(fragment).initLoader(CARD_CONTENT_LOADER_ID, null /* bundle */,
+ LoaderManager.getInstance(fragment).restartLoader(CARD_CONTENT_LOADER_ID, null /* bundle */,
cardContentLoaderCallbacks);
}
@@ -94,7 +95,7 @@
}
}
- private void setupController(int cardType) {
+ private void setupController(@ContextualCard.CardType int cardType) {
final ContextualCardController controller = mControllerRendererPool.getController(mContext,
cardType);
if (controller == null) {
@@ -115,10 +116,6 @@
@Override
public void onContextualCardUpdated(Map<Integer, List<ContextualCard>> updateList) {
- //TODO(b/112245748): Should implement a DiffCallback.
- //Keep the old list for comparison.
- final List<ContextualCard> prevCards = mContextualCards;
-
final Set<Integer> cardTypes = updateList.keySet();
//Remove the existing data that matches the certain cardType before inserting new data.
final List<ContextualCard> cardsToKeep = mContextualCards
@@ -161,13 +158,13 @@
LoaderManager.LoaderCallbacks<List<ContextualCard>> {
private Context mContext;
- private CardContentLoader.CardContentLoaderListener mListener;
+ private ContextualCardLoader.CardContentLoaderListener mListener;
CardContentLoaderCallbacks(Context context) {
mContext = context.getApplicationContext();
}
- protected void setListener(CardContentLoader.CardContentLoaderListener listener) {
+ protected void setListener(ContextualCardLoader.CardContentLoaderListener listener) {
mListener = listener;
}
@@ -175,7 +172,7 @@
@Override
public Loader<List<ContextualCard>> onCreateLoader(int id, @Nullable Bundle bundle) {
if (id == CARD_CONTENT_LOADER_ID) {
- return new CardContentLoader(mContext);
+ return new ContextualCardLoader(mContext);
} else {
throw new IllegalArgumentException("Unknown loader id: " + id);
}
diff --git a/src/com/android/settings/homepage/ContextualCardRenderer.java b/src/com/android/settings/homepage/contextualcards/ContextualCardRenderer.java
similarity index 88%
rename from src/com/android/settings/homepage/ContextualCardRenderer.java
rename to src/com/android/settings/homepage/contextualcards/ContextualCardRenderer.java
index 315c09d..283a079 100644
--- a/src/com/android/settings/homepage/ContextualCardRenderer.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardRenderer.java
@@ -14,10 +14,11 @@
* limitations under the License.
*/
-package com.android.settings.homepage;
+package com.android.settings.homepage.contextualcards;
import android.view.View;
+import androidx.annotation.LayoutRes;
import androidx.recyclerview.widget.RecyclerView;
/**
@@ -26,9 +27,10 @@
public interface ContextualCardRenderer {
/**
- * The layout type of the controller.
+ * The layout type of the renderer.
*/
- int getViewType();
+ @LayoutRes
+ int getViewType(boolean isHalfWidth);
/**
* When {@link ContextualCardsAdapter} calls {@link ContextualCardsAdapter#onCreateViewHolder},
diff --git a/src/com/android/settings/homepage/ContextualCardUpdateListener.java b/src/com/android/settings/homepage/contextualcards/ContextualCardUpdateListener.java
similarity index 91%
rename from src/com/android/settings/homepage/ContextualCardUpdateListener.java
rename to src/com/android/settings/homepage/contextualcards/ContextualCardUpdateListener.java
index 60dd3a7..9b90d41 100644
--- a/src/com/android/settings/homepage/ContextualCardUpdateListener.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardUpdateListener.java
@@ -14,7 +14,9 @@
* limitations under the License.
*/
-package com.android.settings.homepage;
+package com.android.settings.homepage.contextualcards;
+
+import androidx.annotation.MainThread;
import java.util.List;
import java.util.Map;
@@ -31,5 +33,6 @@
* null, which means all cards from corresponding {@link
* ContextualCard.CardType} are removed.
*/
+ @MainThread
void onContextualCardUpdated(Map<Integer, List<ContextualCard>> cards);
}
\ No newline at end of file
diff --git a/src/com/android/settings/homepage/ContextualCardsAdapter.java b/src/com/android/settings/homepage/contextualcards/ContextualCardsAdapter.java
similarity index 74%
rename from src/com/android/settings/homepage/ContextualCardsAdapter.java
rename to src/com/android/settings/homepage/contextualcards/ContextualCardsAdapter.java
index 81cae39..0a8749d 100644
--- a/src/com/android/settings/homepage/ContextualCardsAdapter.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardsAdapter.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage;
+package com.android.settings.homepage.contextualcards;
import android.content.Context;
import android.view.LayoutInflater;
@@ -22,6 +22,7 @@
import android.view.ViewGroup;
import androidx.lifecycle.LifecycleOwner;
+import androidx.recyclerview.widget.DiffUtil;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -42,6 +43,8 @@
private final List<ContextualCard> mContextualCards;
private final LifecycleOwner mLifecycleOwner;
+ private RecyclerView mRecyclerView;
+
public ContextualCardsAdapter(Context context, LifecycleOwner lifecycleOwner,
ContextualCardManager manager) {
mContext = context;
@@ -58,26 +61,26 @@
@Override
public int getItemViewType(int position) {
- return mContextualCards.get(position).getCardType();
+ final ContextualCard card = mContextualCards.get(position);
+ final ContextualCardRenderer renderer = mControllerRendererPool.getRendererByCardType(
+ mContext, mLifecycleOwner, card.getCardType());
+ return renderer.getViewType(card.isHalfWidth());
}
@Override
- public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int cardType) {
- final ContextualCardRenderer renderer = mControllerRendererPool.getRenderer(mContext,
- mLifecycleOwner, cardType);
- final int viewType = renderer.getViewType();
+ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ final ContextualCardRenderer renderer = mControllerRendererPool.getRendererByViewType(
+ mContext, mLifecycleOwner, viewType);
final View view = LayoutInflater.from(parent.getContext()).inflate(viewType, parent, false);
-
return renderer.createViewHolder(view);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
- final int cardType = mContextualCards.get(position).getCardType();
- final ContextualCardRenderer renderer = mControllerRendererPool.getRenderer(mContext,
- mLifecycleOwner, cardType);
-
- renderer.bindView(holder, mContextualCards.get(position));
+ final ContextualCard card = mContextualCards.get(position);
+ final ContextualCardRenderer renderer = mControllerRendererPool.getRendererByCardType(
+ mContext, mLifecycleOwner, card.getCardType());
+ renderer.bindView(holder, card);
}
@Override
@@ -88,6 +91,7 @@
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
+ mRecyclerView = recyclerView;
final RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
if (layoutManager instanceof GridLayoutManager) {
final GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager;
@@ -108,14 +112,22 @@
@Override
public void onContextualCardUpdated(Map<Integer, List<ContextualCard>> cards) {
final List<ContextualCard> contextualCards = cards.get(ContextualCard.CardType.DEFAULT);
- //TODO(b/112245748): Should implement a DiffCallback so we can use notifyItemChanged()
- // instead.
+ final boolean previouslyEmpty = mContextualCards.isEmpty();
+ final boolean nowEmpty = contextualCards == null || contextualCards.isEmpty();
if (contextualCards == null) {
mContextualCards.clear();
+ notifyDataSetChanged();
} else {
+ final DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(
+ new ContextualCardsDiffCallback(mContextualCards, contextualCards));
mContextualCards.clear();
mContextualCards.addAll(contextualCards);
+ diffResult.dispatchUpdatesTo(this);
}
- notifyDataSetChanged();
+
+ if (mRecyclerView != null && previouslyEmpty && !nowEmpty) {
+ // Adding items to empty list, should animate.
+ mRecyclerView.scheduleLayoutAnimation();
+ }
}
}
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardsDiffCallback.java b/src/com/android/settings/homepage/contextualcards/ContextualCardsDiffCallback.java
new file mode 100644
index 0000000..d1623cd
--- /dev/null
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardsDiffCallback.java
@@ -0,0 +1,58 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage.contextualcards;
+
+import androidx.recyclerview.widget.DiffUtil;
+
+import java.util.List;
+
+//TODO(b/117816826): add test cases for DiffUtil.
+/**
+ * A DiffCallback to calculate the difference between old and new {@link ContextualCard} List.
+ */
+public class ContextualCardsDiffCallback extends DiffUtil.Callback {
+
+ private final List<ContextualCard> mOldCards;
+ private final List<ContextualCard> mNewCards;
+
+ public ContextualCardsDiffCallback(List<ContextualCard> oldCards,
+ List<ContextualCard> newCards) {
+ mOldCards = oldCards;
+ mNewCards = newCards;
+ }
+
+ @Override
+ public int getOldListSize() {
+ return mOldCards.size();
+ }
+
+ @Override
+ public int getNewListSize() {
+ return mNewCards.size();
+ }
+
+ @Override
+ public boolean areItemsTheSame(int oldCardPosition, int newCardPosition) {
+ return mOldCards.get(oldCardPosition).getName().equals(
+ mNewCards.get(newCardPosition).getName());
+ }
+
+ @Override
+ public boolean areContentsTheSame(int oldCardPosition, int newCardPosition) {
+ return mOldCards.get(oldCardPosition).equals(mNewCards.get(newCardPosition));
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/homepage/PersonalSettingsFragment.java b/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java
similarity index 86%
rename from src/com/android/settings/homepage/PersonalSettingsFragment.java
rename to src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java
index 93c723b..29eea4b 100644
--- a/src/com/android/settings/homepage/PersonalSettingsFragment.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.android.settings.homepage;
+package com.android.settings.homepage.contextualcards;
-import static com.android.settings.homepage.ContextualCardsAdapter.SPAN_COUNT;
+import static com.android.settings.homepage.contextualcards.ContextualCardsAdapter.SPAN_COUNT;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -30,9 +30,9 @@
import com.android.settings.R;
import com.android.settings.core.InstrumentedFragment;
-public class PersonalSettingsFragment extends InstrumentedFragment {
+public class ContextualCardsFragment extends InstrumentedFragment {
- private static final String TAG = "PersonalSettingsFragment";
+ private static final String TAG = "ContextualCardsFragment";
private RecyclerView mCardsContainer;
private GridLayoutManager mLayoutManager;
@@ -43,6 +43,11 @@
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContextualCardManager = new ContextualCardManager(getContext(), getSettingsLifecycle());
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
mContextualCardManager.loadContextualCards(this);
}
diff --git a/src/com/android/settings/homepage/ControllerRendererPool.java b/src/com/android/settings/homepage/contextualcards/ControllerRendererPool.java
similarity index 61%
rename from src/com/android/settings/homepage/ControllerRendererPool.java
rename to src/com/android/settings/homepage/contextualcards/ControllerRendererPool.java
index 73f73a5..7d9d5a8 100644
--- a/src/com/android/settings/homepage/ControllerRendererPool.java
+++ b/src/com/android/settings/homepage/contextualcards/ControllerRendererPool.java
@@ -14,18 +14,24 @@
* limitations under the License.
*/
-package com.android.settings.homepage;
+package com.android.settings.homepage.contextualcards;
+import android.annotation.NonNull;
import android.content.Context;
import android.util.Log;
import androidx.collection.ArraySet;
import androidx.lifecycle.LifecycleOwner;
-import com.android.settings.homepage.conditional.ConditionContextualCardController;
-import com.android.settings.homepage.conditional.ConditionContextualCardRenderer;
-import com.android.settings.homepage.slices.SliceContextualCardController;
-import com.android.settings.homepage.slices.SliceContextualCardRenderer;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.homepage.contextualcards.conditional.ConditionContextualCardController;
+import com.android.settings.homepage.contextualcards.conditional.ConditionContextualCardRenderer;
+import com.android.settings.homepage.contextualcards.legacysuggestion
+ .LegacySuggestionContextualCardController;
+import com.android.settings.homepage.contextualcards.legacysuggestion
+ .LegacySuggestionContextualCardRenderer;
+import com.android.settings.homepage.contextualcards.slices.SliceContextualCardController;
+import com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer;
import java.util.Set;
@@ -63,14 +69,32 @@
return (T) controller;
}
- public Set<ContextualCardController> getControllers() {
+ @VisibleForTesting
+ Set<ContextualCardController> getControllers() {
return mControllers;
}
- public ContextualCardRenderer getRenderer(Context context, LifecycleOwner lifecycleOwner,
- @ContextualCard.CardType int cardType) {
+ @VisibleForTesting
+ Set<ContextualCardRenderer> getRenderers() {
+ return mRenderers;
+ }
+
+ public ContextualCardRenderer getRendererByViewType(Context context,
+ LifecycleOwner lifecycleOwner, int viewType) {
final Class<? extends ContextualCardRenderer> clz =
- ContextualCardLookupTable.getCardRendererClasses(cardType);
+ ContextualCardLookupTable.getCardRendererClassByViewType(viewType);
+ return getRenderer(context, lifecycleOwner, clz);
+ }
+
+ public ContextualCardRenderer getRendererByCardType(Context context,
+ LifecycleOwner lifecycleOwner, @ContextualCard.CardType int cardType) {
+ final Class<? extends ContextualCardRenderer> clz =
+ ContextualCardLookupTable.getCardRendererClassByCardType(cardType);
+ return getRenderer(context, lifecycleOwner, clz);
+ }
+
+ private ContextualCardRenderer getRenderer(Context context, LifecycleOwner lifecycleOwner,
+ @NonNull Class<? extends ContextualCardRenderer> clz) {
for (ContextualCardRenderer renderer : mRenderers) {
if (renderer.getClass() == clz) {
Log.d(TAG, "Renderer is already there.");
@@ -91,6 +115,8 @@
return new ConditionContextualCardController(context);
} else if (SliceContextualCardController.class == clz) {
return new SliceContextualCardController();
+ } else if (LegacySuggestionContextualCardController.class == clz) {
+ return new LegacySuggestionContextualCardController(context);
}
return null;
}
@@ -98,9 +124,12 @@
private ContextualCardRenderer createCardRenderer(Context context,
LifecycleOwner lifecycleOwner, Class<?> clz) {
if (ConditionContextualCardRenderer.class == clz) {
- return new ConditionContextualCardRenderer(context, this /*controllerRendererPool*/);
+ return new ConditionContextualCardRenderer(context, this /* controllerRendererPool */);
} else if (SliceContextualCardRenderer.class == clz) {
return new SliceContextualCardRenderer(context, lifecycleOwner);
+ } else if (LegacySuggestionContextualCardRenderer.class == clz) {
+ return new LegacySuggestionContextualCardRenderer(context,
+ this /* controllerRendererPool */);
}
return null;
}
diff --git a/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
index 2dede95..c736c4d 100644
--- a/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
+++ b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
@@ -20,7 +20,8 @@
import android.annotation.Nullable;
-import com.android.settings.homepage.deviceinfo.DataUsageSlice;
+import com.android.settings.homepage.contextualcards.deviceinfo.BatterySlice;
+import com.android.settings.homepage.contextualcards.slices.ConnectedDeviceSlice;
import com.android.settings.intelligence.ContextualCardProto.ContextualCard;
import com.android.settings.intelligence.ContextualCardProto.ContextualCardList;
import com.android.settings.wifi.WifiSlice;
@@ -39,15 +40,24 @@
ContextualCard.newBuilder()
.setSliceUri(WifiSlice.WIFI_URI.toString())
.setCardName(KEY_WIFI)
+ .setCardCategory(ContextualCard.Category.IMPORTANT)
.build();
- final ContextualCard dataUsageCard =
+ final ContextualCard batteryInfoCard =
ContextualCard.newBuilder()
- .setSliceUri(DataUsageSlice.DATA_USAGE_CARD_URI.toString())
- .setCardName(DataUsageSlice.PATH_DATA_USAGE_CARD)
+ .setSliceUri(BatterySlice.BATTERY_CARD_URI.toString())
+ .setCardName(BatterySlice.PATH_BATTERY_INFO)
+ .setCardCategory(ContextualCard.Category.DEFAULT)
+ .build();
+ final ContextualCard connectedDeviceCard =
+ ContextualCard.newBuilder()
+ .setSliceUri(ConnectedDeviceSlice.CONNECTED_DEVICE_URI.toString())
+ .setCardName(ConnectedDeviceSlice.PATH_CONNECTED_DEVICE)
+ .setCardCategory(ContextualCard.Category.IMPORTANT)
.build();
final ContextualCardList cards = ContextualCardList.newBuilder()
.addCard(wifiCard)
- .addCard(dataUsageCard)
+ .addCard(batteryInfoCard)
+ .addCard(connectedDeviceCard)
.build();
return cards;
diff --git a/src/com/android/settings/homepage/conditional/AbnormalRingerConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/AbnormalRingerConditionController.java
similarity index 97%
rename from src/com/android/settings/homepage/conditional/AbnormalRingerConditionController.java
rename to src/com/android/settings/homepage/contextualcards/conditional/AbnormalRingerConditionController.java
index c6fa21d..6a66d2f 100644
--- a/src/com/android/settings/homepage/conditional/AbnormalRingerConditionController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/AbnormalRingerConditionController.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import android.content.BroadcastReceiver;
import android.content.Context;
diff --git a/src/com/android/settings/homepage/conditional/AirplaneModeConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/AirplaneModeConditionController.java
similarity index 71%
rename from src/com/android/settings/homepage/conditional/AirplaneModeConditionController.java
rename to src/com/android/settings/homepage/contextualcards/conditional/AirplaneModeConditionController.java
index db3bc71..f33633e 100644
--- a/src/com/android/settings/homepage/conditional/AirplaneModeConditionController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/AirplaneModeConditionController.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -23,6 +23,9 @@
import android.net.ConnectivityManager;
import android.provider.Settings;
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
+import com.android.settings.homepage.contextualcards.ContextualCard;
import com.android.settingslib.WirelessUtils;
import java.util.Objects;
@@ -66,6 +69,21 @@
}
@Override
+ public ContextualCard buildContextualCard() {
+ return new ConditionalContextualCard.Builder()
+ .setConditionId(ID)
+ .setMetricsConstant(MetricsProto.MetricsEvent.SETTINGS_CONDITION_AIRPLANE_MODE)
+ .setActionText(mAppContext.getText(R.string.condition_turn_off))
+ .setName(mAppContext.getPackageName() + "/"
+ + mAppContext.getText(R.string.condition_airplane_title))
+ .setTitleText(mAppContext.getText(R.string.condition_airplane_title).toString())
+ .setSummaryText(mAppContext.getText(R.string.condition_airplane_summary).toString())
+ .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_airplanemode_active))
+ .setIsHalfWidth(true)
+ .build();
+ }
+
+ @Override
public void startMonitoringStateChange() {
mAppContext.registerReceiver(mReceiver, AIRPLANE_MODE_FILTER);
}
diff --git a/src/com/android/settings/homepage/conditional/BackgroundDataConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionController.java
similarity index 66%
rename from src/com/android/settings/homepage/conditional/BackgroundDataConditionController.java
rename to src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionController.java
index 0dc3cf1..4e40556 100644
--- a/src/com/android/settings/homepage/conditional/BackgroundDataConditionController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionController.java
@@ -14,13 +14,16 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import android.content.Context;
import android.content.Intent;
import android.net.NetworkPolicyManager;
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
import com.android.settings.Settings;
+import com.android.settings.homepage.contextualcards.ContextualCard;
import java.util.Objects;
@@ -60,6 +63,21 @@
}
@Override
+ public ContextualCard buildContextualCard() {
+ return new ConditionalContextualCard.Builder()
+ .setConditionId(ID)
+ .setMetricsConstant(MetricsProto.MetricsEvent.SETTINGS_CONDITION_BACKGROUND_DATA)
+ .setActionText(mAppContext.getText(R.string.condition_turn_off))
+ .setName(mAppContext.getPackageName() + "/"
+ + mAppContext.getText(R.string.condition_bg_data_title))
+ .setTitleText(mAppContext.getText(R.string.condition_bg_data_title).toString())
+ .setSummaryText(mAppContext.getText(R.string.condition_bg_data_summary).toString())
+ .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_data_saver))
+ .setIsHalfWidth(true)
+ .build();
+ }
+
+ @Override
public void startMonitoringStateChange() {
}
diff --git a/src/com/android/settings/homepage/conditional/BatterySaverConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionController.java
similarity index 74%
rename from src/com/android/settings/homepage/conditional/BatterySaverConditionController.java
rename to src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionController.java
index fdbe698..bce7c5d 100644
--- a/src/com/android/settings/homepage/conditional/BatterySaverConditionController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionController.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import android.content.Context;
import android.os.PowerManager;
@@ -24,6 +24,7 @@
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.fuelgauge.BatterySaverReceiver;
import com.android.settings.fuelgauge.batterysaver.BatterySaverSettings;
+import com.android.settings.homepage.contextualcards.ContextualCard;
import com.android.settingslib.fuelgauge.BatterySaverUtils;
import java.util.Objects;
@@ -71,6 +72,21 @@
}
@Override
+ public ContextualCard buildContextualCard() {
+ return new ConditionalContextualCard.Builder()
+ .setConditionId(ID)
+ .setMetricsConstant(MetricsProto.MetricsEvent.SETTINGS_CONDITION_BATTERY_SAVER)
+ .setActionText(mAppContext.getText(R.string.condition_turn_off))
+ .setName(mAppContext.getPackageName() + "/"
+ + mAppContext.getText(R.string.condition_battery_title))
+ .setTitleText(mAppContext.getText(R.string.condition_battery_title).toString())
+ .setSummaryText(mAppContext.getText(R.string.condition_battery_summary).toString())
+ .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_battery_saver_accent_24dp))
+ .setIsHalfWidth(true)
+ .build();
+ }
+
+ @Override
public void startMonitoringStateChange() {
mReceiver.setListening(true);
}
diff --git a/src/com/android/settings/homepage/conditional/CellularDataConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/CellularDataConditionController.java
similarity index 75%
rename from src/com/android/settings/homepage/conditional/CellularDataConditionController.java
rename to src/com/android/settings/homepage/contextualcards/conditional/CellularDataConditionController.java
index c5c92c2..05199ba 100644
--- a/src/com/android/settings/homepage/conditional/CellularDataConditionController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/CellularDataConditionController.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -23,8 +23,11 @@
import android.net.ConnectivityManager;
import android.telephony.TelephonyManager;
+import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.telephony.TelephonyIntents;
+import com.android.settings.R;
import com.android.settings.Settings;
+import com.android.settings.homepage.contextualcards.ContextualCard;
import java.util.Objects;
@@ -76,6 +79,21 @@
}
@Override
+ public ContextualCard buildContextualCard() {
+ return new ConditionalContextualCard.Builder()
+ .setConditionId(ID)
+ .setMetricsConstant(MetricsProto.MetricsEvent.SETTINGS_CONDITION_CELLULAR_DATA)
+ .setActionText(mAppContext.getText(R.string.condition_turn_on))
+ .setName(mAppContext.getPackageName() + "/"
+ + mAppContext.getText(R.string.condition_cellular_title))
+ .setTitleText(mAppContext.getText(R.string.condition_cellular_title).toString())
+ .setSummaryText(mAppContext.getText(R.string.condition_cellular_summary).toString())
+ .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_cellular_off))
+ .setIsHalfWidth(true)
+ .build();
+ }
+
+ @Override
public void startMonitoringStateChange() {
mAppContext.registerReceiver(mReceiver, DATA_CONNECTION_FILTER);
}
diff --git a/src/com/android/settings/homepage/conditional/ConditionContextualCardController.java b/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardController.java
similarity index 70%
rename from src/com/android/settings/homepage/conditional/ConditionContextualCardController.java
rename to src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardController.java
index fbbab14..10881d9 100644
--- a/src/com/android/settings/homepage/conditional/ConditionContextualCardController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardController.java
@@ -14,19 +14,18 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import android.content.Context;
import android.util.ArrayMap;
-import com.android.settings.homepage.ContextualCard;
-import com.android.settings.homepage.ContextualCardController;
-import com.android.settings.homepage.ContextualCardUpdateListener;
+import com.android.settings.homepage.contextualcards.ContextualCard;
+import com.android.settings.homepage.contextualcards.ContextualCardController;
+import com.android.settings.homepage.contextualcards.ContextualCardUpdateListener;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
-import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -37,6 +36,8 @@
public class ConditionContextualCardController implements ContextualCardController,
ConditionListener, LifecycleObserver, OnStart, OnStop {
+ private static final String TAG = "ConditionCtxCardCtrl";
+
private final Context mContext;
private final ConditionManager mConditionManager;
@@ -82,23 +83,14 @@
@Override
public void onConditionsChanged() {
- final List<ContextualCard> conditionCards = new ArrayList<>();
- final List<ConditionalCard> conditionList = mConditionManager.getDisplayableCards();
+ final List<ContextualCard> conditionCards = mConditionManager.getDisplayableCards();
- for (ConditionalCard condition : conditionList) {
- final ContextualCard conditionCard =
- new ConditionalContextualCard.Builder()
- .setConditionId(condition.getId())
- .setMetricsConstant(condition.getMetricsConstant())
- .setActionText(condition.getActionText())
- .setName(mContext.getPackageName() + "/"
- + condition.getTitle().toString())
- .setTitleText(condition.getTitle().toString())
- .setSummaryText(condition.getSummary().toString())
- .setIconDrawable(condition.getIcon())
- .build();
-
- conditionCards.add(conditionCard);
+ final boolean isOddNumber = conditionCards.size() % 2 == 1;
+ if (isOddNumber) {
+ final int lastIndex = conditionCards.size() - 1;
+ final ConditionalContextualCard card = (ConditionalContextualCard) conditionCards.get(
+ lastIndex);
+ conditionCards.set(lastIndex, card.mutate().setIsHalfWidth(false).build());
}
if (mListener != null) {
diff --git a/src/com/android/settings/homepage/conditional/ConditionContextualCardRenderer.java b/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRenderer.java
similarity index 86%
rename from src/com/android/settings/homepage/conditional/ConditionContextualCardRenderer.java
rename to src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRenderer.java
index 69988ae..5e4e749 100644
--- a/src/com/android/settings/homepage/conditional/ConditionContextualCardRenderer.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRenderer.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import android.content.Context;
import android.text.TextUtils;
@@ -23,13 +23,14 @@
import android.widget.ImageView;
import android.widget.TextView;
+import androidx.annotation.LayoutRes;
import androidx.recyclerview.widget.RecyclerView;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
-import com.android.settings.homepage.ContextualCard;
-import com.android.settings.homepage.ControllerRendererPool;
-import com.android.settings.homepage.ContextualCardRenderer;
+import com.android.settings.homepage.contextualcards.ContextualCard;
+import com.android.settings.homepage.contextualcards.ContextualCardRenderer;
+import com.android.settings.homepage.contextualcards.ControllerRendererPool;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -37,6 +38,10 @@
* Card renderer for {@link ConditionalContextualCard}.
*/
public class ConditionContextualCardRenderer implements ContextualCardRenderer {
+ @LayoutRes
+ public static final int HALF_WIDTH_VIEW_TYPE = R.layout.homepage_condition_half_tile;
+ @LayoutRes
+ public static final int FULL_WIDTH_VIEW_TYPE = R.layout.homepage_condition_full_tile;
private final Context mContext;
private final ControllerRendererPool mControllerRendererPool;
@@ -48,8 +53,12 @@
}
@Override
- public int getViewType() {
- return R.layout.homepage_condition_tile;
+ public int getViewType(boolean isHalfWidth) {
+ if (isHalfWidth) {
+ return HALF_WIDTH_VIEW_TYPE;
+ } else {
+ return FULL_WIDTH_VIEW_TYPE;
+ }
}
@Override
@@ -87,15 +96,12 @@
view.icon.setImageDrawable(card.getIconDrawable());
view.title.setText(card.getTitleText());
view.summary.setText(card.getSummaryText());
-
- setViewVisibility(view.itemView, R.id.divider, false);
}
private void initializeActionButton(ConditionalCardHolder view, ConditionalContextualCard card,
MetricsFeatureProvider metricsFeatureProvider) {
final CharSequence action = card.getActionText();
final boolean hasButtons = !TextUtils.isEmpty(action);
- setViewVisibility(view.itemView, R.id.buttonBar, hasButtons);
final Button button = view.itemView.findViewById(R.id.first_action);
if (hasButtons) {
@@ -114,13 +120,6 @@
}
}
- private void setViewVisibility(View containerView, int viewId, boolean visible) {
- View view = containerView.findViewById(viewId);
- if (view != null) {
- view.setVisibility(visible ? View.VISIBLE : View.GONE);
- }
- }
-
public static class ConditionalCardHolder extends RecyclerView.ViewHolder {
public final ImageView icon;
diff --git a/src/com/android/settings/homepage/conditional/ConditionListener.java b/src/com/android/settings/homepage/contextualcards/conditional/ConditionListener.java
similarity index 90%
rename from src/com/android/settings/homepage/conditional/ConditionListener.java
rename to src/com/android/settings/homepage/contextualcards/conditional/ConditionListener.java
index 1e5ec1f..5f743b3 100644
--- a/src/com/android/settings/homepage/conditional/ConditionListener.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/ConditionListener.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
public interface ConditionListener {
void onConditionsChanged();
diff --git a/src/com/android/settings/homepage/conditional/ConditionManager.java b/src/com/android/settings/homepage/contextualcards/conditional/ConditionManager.java
similarity index 72%
rename from src/com/android/settings/homepage/conditional/ConditionManager.java
rename to src/com/android/settings/homepage/contextualcards/conditional/ConditionManager.java
index d1c9a27..c741b98 100644
--- a/src/com/android/settings/homepage/conditional/ConditionManager.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/ConditionManager.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import android.content.Context;
import android.util.Log;
@@ -22,6 +22,8 @@
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
+import com.android.settings.homepage.contextualcards.ContextualCard;
+
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
@@ -36,8 +38,6 @@
private static final String TAG = "ConditionManager";
@VisibleForTesting
- final List<ConditionalCard> mCandidates;
- @VisibleForTesting
final List<ConditionalCardController> mCardControllers;
private static final long DISPLAYABLE_CHECKER_TIMEOUT_MS = 20;
@@ -51,29 +51,27 @@
public ConditionManager(Context context, ConditionListener listener) {
mAppContext = context.getApplicationContext();
mExecutorService = Executors.newCachedThreadPool();
- mCandidates = new ArrayList<>();
mCardControllers = new ArrayList<>();
mListener = listener;
initCandidates();
}
/**
- * Returns a list of {@link ConditionalCard}s eligible for display.
+ * Returns a list of {@link ContextualCard}s eligible for display.
*/
- public List<ConditionalCard> getDisplayableCards() {
- final List<ConditionalCard> cards = new ArrayList<>();
- final List<Future<ConditionalCard>> displayableCards = new ArrayList<>();
+ public List<ContextualCard> getDisplayableCards() {
+ final List<ContextualCard> cards = new ArrayList<>();
+ final List<Future<ContextualCard>> displayableCards = new ArrayList<>();
// Check displayable future
- for (ConditionalCard card : mCandidates) {
- final DisplayableChecker future = new DisplayableChecker(
- card, getController(card.getId()));
+ for (ConditionalCardController card : mCardControllers) {
+ final DisplayableChecker future = new DisplayableChecker(getController(card.getId()));
displayableCards.add(mExecutorService.submit(future));
}
// Collect future and add displayable cards
- for (Future<ConditionalCard> cardFuture : displayableCards) {
+ for (Future<ContextualCard> cardFuture : displayableCards) {
try {
- final ConditionalCard card = cardFuture.get(DISPLAYABLE_CHECKER_TIMEOUT_MS,
- TimeUnit.MILLISECONDS);
+ final ContextualCard card = cardFuture.get(
+ DISPLAYABLE_CHECKER_TIMEOUT_MS, TimeUnit.MILLISECONDS);
if (card != null) {
cards.add(card);
}
@@ -107,12 +105,12 @@
*/
public void startMonitoringStateChange() {
if (mIsListeningToStateChange) {
- Log.d(TAG, "Already listening to condition state changes, skipping");
- return;
- }
- mIsListeningToStateChange = true;
- for (ConditionalCardController controller : mCardControllers) {
- controller.startMonitoringStateChange();
+ Log.d(TAG, "Already listening to condition state changes, skipping monitor setup");
+ } else {
+ mIsListeningToStateChange = true;
+ for (ConditionalCardController controller : mCardControllers) {
+ controller.startMonitoringStateChange();
+ }
}
// Force a refresh on listener
onConditionChanged();
@@ -142,7 +140,7 @@
}
@NonNull
- <T extends ConditionalCardController> T getController(long id) {
+ private <T extends ConditionalCardController> T getController(long id) {
for (ConditionalCardController controller : mCardControllers) {
if (controller.getId() == id) {
return (T) controller;
@@ -164,36 +162,22 @@
mCardControllers.add(new RingerVibrateConditionController(mAppContext, this /* manager */));
mCardControllers.add(new RingerMutedConditionController(mAppContext, this /* manager */));
mCardControllers.add(new WorkModeConditionController(mAppContext, this /* manager */));
-
- // Initialize ui model later. UI model depends on controller.
- mCandidates.add(new AirplaneModeConditionCard(mAppContext));
- mCandidates.add(new BackgroundDataConditionCard(mAppContext));
- mCandidates.add(new BatterySaverConditionCard(mAppContext));
- mCandidates.add(new CellularDataConditionCard(mAppContext));
- mCandidates.add(new DndConditionCard(mAppContext, this /* manager */));
- mCandidates.add(new HotspotConditionCard(mAppContext, this /* manager */));
- mCandidates.add(new NightDisplayConditionCard(mAppContext));
- mCandidates.add(new RingerMutedConditionCard(mAppContext));
- mCandidates.add(new RingerVibrateConditionCard(mAppContext));
- mCandidates.add(new WorkModeConditionCard(mAppContext));
}
/**
* Returns card if controller says it's displayable. Otherwise returns null.
*/
- public static class DisplayableChecker implements Callable<ConditionalCard> {
+ public static class DisplayableChecker implements Callable<ContextualCard> {
- private final ConditionalCard mCard;
private final ConditionalCardController mController;
- private DisplayableChecker(ConditionalCard card, ConditionalCardController controller) {
- mCard = card;
+ private DisplayableChecker(ConditionalCardController controller) {
mController = controller;
}
@Override
- public ConditionalCard call() throws Exception {
- return mController.isDisplayable() ? mCard : null;
+ public ContextualCard call() throws Exception {
+ return mController.isDisplayable() ? mController.buildContextualCard() : null;
}
}
}
diff --git a/src/com/android/settings/homepage/conditional/ConditionalCardController.java b/src/com/android/settings/homepage/contextualcards/conditional/ConditionalCardController.java
similarity index 77%
rename from src/com/android/settings/homepage/conditional/ConditionalCardController.java
rename to src/com/android/settings/homepage/contextualcards/conditional/ConditionalCardController.java
index 9993f34..bc68cce 100644
--- a/src/com/android/settings/homepage/conditional/ConditionalCardController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/ConditionalCardController.java
@@ -14,19 +14,19 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import android.content.Context;
+import com.android.settings.homepage.contextualcards.ContextualCard;
+
/**
- * Data controller for a {@link ConditionalCard}.
+ * Data controller for a {@link ConditionalContextualCard}.
*/
public interface ConditionalCardController {
/**
* A stable ID for this card.
- *
- * @see {@link ConditionalCard#getId()}
*/
long getId();
@@ -45,6 +45,11 @@
*/
void onActionClick();
+ /**
+ * Creates a UI model suitable for display, controlled by this controller.
+ */
+ ContextualCard buildContextualCard();
+
void startMonitoringStateChange();
void stopMonitoringStateChange();
diff --git a/src/com/android/settings/homepage/conditional/ConditionalContextualCard.java b/src/com/android/settings/homepage/contextualcards/conditional/ConditionalContextualCard.java
similarity index 92%
rename from src/com/android/settings/homepage/conditional/ConditionalContextualCard.java
rename to src/com/android/settings/homepage/contextualcards/conditional/ConditionalContextualCard.java
index 828f90b..81219c3 100644
--- a/src/com/android/settings/homepage/conditional/ConditionalContextualCard.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/ConditionalContextualCard.java
@@ -14,17 +14,15 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
-import androidx.annotation.VisibleForTesting;
-
-import com.android.settings.homepage.ContextualCard;
+import com.android.settings.homepage.contextualcards.ContextualCard;
/**
* Data class representing a conditional {@link ContextualCard}.
*
* Use this class to store additional attributes on top of {@link ContextualCard} for
- * {@link ConditionalCard}.
+ * {@link ConditionalCardController}.
*/
public class ConditionalContextualCard extends ContextualCard {
diff --git a/src/com/android/settings/homepage/conditional/DndConditionCardController.java b/src/com/android/settings/homepage/contextualcards/conditional/DndConditionCardController.java
similarity index 80%
rename from src/com/android/settings/homepage/conditional/DndConditionCardController.java
rename to src/com/android/settings/homepage/contextualcards/conditional/DndConditionCardController.java
index 1729815..706b50e 100644
--- a/src/com/android/settings/homepage/conditional/DndConditionCardController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/DndConditionCardController.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
@@ -29,6 +29,7 @@
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.homepage.contextualcards.ContextualCard;
import com.android.settings.notification.ZenModeSettings;
import java.util.Objects;
@@ -88,6 +89,21 @@
mNotificationManager.setZenMode(Settings.Global.ZEN_MODE_OFF, null, TAG);
}
+ @Override
+ public ContextualCard buildContextualCard() {
+ return new ConditionalContextualCard.Builder()
+ .setConditionId(ID)
+ .setMetricsConstant(MetricsProto.MetricsEvent.SETTINGS_CONDITION_DND)
+ .setActionText(mAppContext.getText(R.string.condition_turn_off))
+ .setName(mAppContext.getPackageName() + "/"
+ + mAppContext.getText(R.string.condition_zen_title))
+ .setTitleText(mAppContext.getText(R.string.condition_zen_title).toString())
+ .setSummaryText(getSummary().toString())
+ .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_do_not_disturb_on_24dp))
+ .setIsHalfWidth(true)
+ .build();
+ }
+
public CharSequence getSummary() {
final int zen = mNotificationManager.getZenMode();
final ZenModeConfig config;
diff --git a/src/com/android/settings/homepage/conditional/HotspotConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java
similarity index 82%
rename from src/com/android/settings/homepage/conditional/HotspotConditionController.java
rename to src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java
index 5ff7f23..862f828 100644
--- a/src/com/android/settings/homepage/conditional/HotspotConditionController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -30,6 +30,7 @@
import com.android.settings.R;
import com.android.settings.TetherSettings;
import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.homepage.contextualcards.ContextualCard;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
@@ -88,6 +89,21 @@
}
@Override
+ public ContextualCard buildContextualCard() {
+ return new ConditionalContextualCard.Builder()
+ .setConditionId(ID)
+ .setMetricsConstant(MetricsProto.MetricsEvent.SETTINGS_CONDITION_HOTSPOT)
+ .setActionText(mAppContext.getText(R.string.condition_turn_off))
+ .setName(mAppContext.getPackageName() + "/"
+ + mAppContext.getText(R.string.condition_hotspot_title))
+ .setTitleText(mAppContext.getText(R.string.condition_hotspot_title).toString())
+ .setSummaryText(getSummary().toString())
+ .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_hotspot))
+ .setIsHalfWidth(true)
+ .build();
+ }
+
+ @Override
public void startMonitoringStateChange() {
mAppContext.registerReceiver(mReceiver, WIFI_AP_STATE_FILTER);
}
diff --git a/src/com/android/settings/homepage/conditional/NightDisplayConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/NightDisplayConditionController.java
similarity index 68%
rename from src/com/android/settings/homepage/conditional/NightDisplayConditionController.java
rename to src/com/android/settings/homepage/contextualcards/conditional/NightDisplayConditionController.java
index b4816f1..249e4a0 100644
--- a/src/com/android/settings/homepage/conditional/NightDisplayConditionController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/NightDisplayConditionController.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import android.content.Context;
@@ -23,6 +23,7 @@
import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.display.NightDisplaySettings;
+import com.android.settings.homepage.contextualcards.ContextualCard;
import java.util.Objects;
@@ -30,11 +31,13 @@
ColorDisplayController.Callback {
static final int ID = Objects.hash("NightDisplayConditionController");
+ private final Context mAppContext;
private final ConditionManager mConditionManager;
private final ColorDisplayController mController;
public NightDisplayConditionController(Context appContext, ConditionManager manager) {
mController = new ColorDisplayController(appContext);
+ mAppContext = appContext;
mConditionManager = manager;
}
@@ -63,6 +66,23 @@
}
@Override
+ public ContextualCard buildContextualCard() {
+ return new ConditionalContextualCard.Builder()
+ .setConditionId(ID)
+ .setMetricsConstant(MetricsProto.MetricsEvent.SETTINGS_CONDITION_NIGHT_DISPLAY)
+ .setActionText(mAppContext.getText(R.string.condition_turn_off))
+ .setName(mAppContext.getPackageName() + "/"
+ + mAppContext.getText(R.string.condition_night_display_title))
+ .setTitleText(mAppContext.getText(
+ R.string.condition_night_display_title).toString())
+ .setSummaryText(
+ mAppContext.getText(R.string.condition_night_display_summary).toString())
+ .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_settings_night_display))
+ .setIsHalfWidth(true)
+ .build();
+ }
+
+ @Override
public void startMonitoringStateChange() {
mController.setListener(this);
}
diff --git a/src/com/android/settings/homepage/conditional/RingerMutedConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/RingerMutedConditionController.java
similarity index 60%
rename from src/com/android/settings/homepage/conditional/RingerMutedConditionController.java
rename to src/com/android/settings/homepage/contextualcards/conditional/RingerMutedConditionController.java
index 4fce1ec..09b75eb 100644
--- a/src/com/android/settings/homepage/conditional/RingerMutedConditionController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/RingerMutedConditionController.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import static android.content.Context.NOTIFICATION_SERVICE;
@@ -23,15 +23,21 @@
import android.media.AudioManager;
import android.provider.Settings;
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
+import com.android.settings.homepage.contextualcards.ContextualCard;
+
import java.util.Objects;
public class RingerMutedConditionController extends AbnormalRingerConditionController {
static final int ID = Objects.hash("RingerMutedConditionController");
private final NotificationManager mNotificationManager;
+ private final Context mAppContext;
public RingerMutedConditionController(Context appContext, ConditionManager conditionManager) {
super(appContext, conditionManager);
+ mAppContext = appContext;
mNotificationManager =
(NotificationManager) appContext.getSystemService(NOTIFICATION_SERVICE);
}
@@ -52,4 +58,21 @@
mAudioManager.getRingerModeInternal() == AudioManager.RINGER_MODE_SILENT;
return isSilent && !zenModeEnabled;
}
+
+ @Override
+ public ContextualCard buildContextualCard() {
+ return new ConditionalContextualCard.Builder()
+ .setConditionId(ID)
+ .setMetricsConstant(MetricsProto.MetricsEvent.SETTINGS_CONDITION_DEVICE_MUTED)
+ .setActionText(
+ mAppContext.getText(R.string.condition_device_muted_action_turn_on_sound))
+ .setName(mAppContext.getPackageName() + "/"
+ + mAppContext.getText(R.string.condition_device_muted_title))
+ .setTitleText(mAppContext.getText(R.string.condition_device_muted_title).toString())
+ .setSummaryText(
+ mAppContext.getText(R.string.condition_device_muted_summary).toString())
+ .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_notifications_off_24dp))
+ .setIsHalfWidth(true)
+ .build();
+ }
}
diff --git a/src/com/android/settings/homepage/contextualcards/conditional/RingerVibrateConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/RingerVibrateConditionController.java
new file mode 100644
index 0000000..d8084b5
--- /dev/null
+++ b/src/com/android/settings/homepage/contextualcards/conditional/RingerVibrateConditionController.java
@@ -0,0 +1,66 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage.contextualcards.conditional;
+
+import android.content.Context;
+import android.media.AudioManager;
+
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
+import com.android.settings.homepage.contextualcards.ContextualCard;
+
+import java.util.Objects;
+
+public class RingerVibrateConditionController extends AbnormalRingerConditionController {
+ static final int ID = Objects.hash("RingerVibrateConditionController");
+
+ private final Context mAppContext;
+
+ public RingerVibrateConditionController(Context appContext, ConditionManager conditionManager) {
+ super(appContext, conditionManager);
+ mAppContext = appContext;
+
+ }
+
+ @Override
+ public long getId() {
+ return ID;
+ }
+
+ @Override
+ public boolean isDisplayable() {
+ return mAudioManager.getRingerModeInternal() == AudioManager.RINGER_MODE_VIBRATE;
+ }
+
+ @Override
+ public ContextualCard buildContextualCard() {
+ return new ConditionalContextualCard.Builder()
+ .setConditionId(ID)
+ .setMetricsConstant(MetricsProto.MetricsEvent.SETTINGS_CONDITION_DEVICE_VIBRATE)
+ .setActionText(
+ mAppContext.getText(R.string.condition_device_muted_action_turn_on_sound))
+ .setName(mAppContext.getPackageName() + "/"
+ + mAppContext.getText(R.string.condition_device_vibrate_title))
+ .setTitleText(
+ mAppContext.getText(R.string.condition_device_vibrate_title).toString())
+ .setSummaryText(
+ mAppContext.getText(R.string.condition_device_vibrate_summary).toString())
+ .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_volume_ringer_vibrate))
+ .setIsHalfWidth(true)
+ .build();
+ }
+}
diff --git a/src/com/android/settings/homepage/conditional/WorkModeConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionController.java
similarity index 77%
rename from src/com/android/settings/homepage/conditional/WorkModeConditionController.java
rename to src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionController.java
index 033a6a8..44b21bf 100644
--- a/src/com/android/settings/homepage/conditional/WorkModeConditionController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionController.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -25,7 +25,10 @@
import android.os.UserManager;
import android.text.TextUtils;
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
import com.android.settings.Settings;
+import com.android.settings.homepage.contextualcards.ContextualCard;
import java.util.List;
import java.util.Objects;
@@ -80,6 +83,21 @@
}
@Override
+ public ContextualCard buildContextualCard() {
+ return new ConditionalContextualCard.Builder()
+ .setConditionId(ID)
+ .setMetricsConstant(MetricsProto.MetricsEvent.SETTINGS_CONDITION_WORK_MODE)
+ .setActionText(mAppContext.getText(R.string.condition_turn_on))
+ .setName(mAppContext.getPackageName() + "/"
+ + mAppContext.getText(R.string.condition_work_title))
+ .setTitleText(mAppContext.getText(R.string.condition_work_title).toString())
+ .setSummaryText(mAppContext.getText(R.string.condition_work_summary).toString())
+ .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_signal_workmode_enable))
+ .setIsHalfWidth(true)
+ .build();
+ }
+
+ @Override
public void startMonitoringStateChange() {
mAppContext.registerReceiver(mReceiver, FILTER);
}
diff --git a/src/com/android/settings/homepage/contextualcards/deviceinfo/BatterySlice.java b/src/com/android/settings/homepage/contextualcards/deviceinfo/BatterySlice.java
new file mode 100644
index 0000000..873b942
--- /dev/null
+++ b/src/com/android/settings/homepage/contextualcards/deviceinfo/BatterySlice.java
@@ -0,0 +1,156 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage.contextualcards.deviceinfo;
+
+import android.app.PendingIntent;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.net.Uri;
+import android.os.PowerManager;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.core.graphics.drawable.IconCompat;
+import androidx.slice.Slice;
+import androidx.slice.builders.ListBuilder;
+import androidx.slice.builders.SliceAction;
+
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
+import com.android.settings.SubSettings;
+import com.android.settings.Utils;
+import com.android.settings.fuelgauge.BatteryInfo;
+import com.android.settings.fuelgauge.PowerUsageSummary;
+import com.android.settings.slices.CustomSliceable;
+import com.android.settings.slices.SettingsSliceProvider;
+import com.android.settings.slices.SliceBuilderUtils;
+
+/**
+ * Utility class to build a Battery Slice, and handle all associated actions.
+ */
+public class BatterySlice implements CustomSliceable {
+ private static final String TAG = "BatterySlice";
+
+ /**
+ * The path denotes the unique name of battery slice.
+ */
+ public static final String PATH_BATTERY_INFO = "battery_card";
+
+ /**
+ * Backing Uri for the Battery Slice.
+ */
+ public static final Uri BATTERY_CARD_URI = new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(SettingsSliceProvider.SLICE_AUTHORITY)
+ .appendPath(PATH_BATTERY_INFO)
+ .build();
+
+ private final Context mContext;
+
+ private BatteryInfo mBatteryInfo;
+ private boolean mIsBatteryInfoLoading;
+
+ public BatterySlice(Context context) {
+ mContext = context;
+ }
+
+ /**
+ * Return a {@link BatterySlice} bound to {@link #BATTERY_CARD_URI}
+ */
+ @Override
+ public Slice getSlice() {
+ if (mBatteryInfo == null) {
+ mIsBatteryInfoLoading = true;
+ loadBatteryInfo();
+ }
+ final IconCompat icon = IconCompat.createWithResource(mContext,
+ R.drawable.ic_settings_battery);
+ final CharSequence title = mContext.getText(R.string.power_usage_summary_title);
+ final SliceAction primarySliceAction = new SliceAction(getPrimaryAction(), icon, title);
+ final Slice slice = new ListBuilder(mContext, BATTERY_CARD_URI, ListBuilder.INFINITY)
+ .setAccentColor(Utils.getColorAccentDefaultColor(mContext))
+ .setHeader(new ListBuilder.HeaderBuilder().setTitle(title))
+ .addRow(new ListBuilder.RowBuilder()
+ .setTitle(getBatteryPercentString(), mIsBatteryInfoLoading)
+ .setSubtitle(getSummary(), mIsBatteryInfoLoading)
+ .setPrimaryAction(primarySliceAction))
+ .build();
+ mBatteryInfo = null;
+ mIsBatteryInfoLoading = false;
+ return slice;
+ }
+
+ @Override
+ public Uri getUri() {
+ return BATTERY_CARD_URI;
+ }
+
+ @Override
+ public void onNotifyChange(Intent intent) {
+
+ }
+
+ @Override
+ public Intent getIntent() {
+ final String screenTitle = mContext.getText(R.string.power_usage_summary_title).toString();
+ final Uri contentUri = new Uri.Builder().appendPath(PATH_BATTERY_INFO).build();
+ return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
+ PowerUsageSummary.class.getName(), PATH_BATTERY_INFO, screenTitle,
+ MetricsProto.MetricsEvent.SLICE)
+ .setClassName(mContext.getPackageName(), SubSettings.class.getName())
+ .setData(contentUri);
+ }
+
+ @Override
+ public IntentFilter getIntentFilter() {
+ final IntentFilter intentFilter = new IntentFilter();
+ intentFilter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED);
+ intentFilter.addAction(Intent.ACTION_POWER_CONNECTED);
+ intentFilter.addAction(Intent.ACTION_POWER_DISCONNECTED);
+ intentFilter.addAction(Intent.ACTION_BATTERY_LEVEL_CHANGED);
+ return intentFilter;
+ }
+
+ @VisibleForTesting
+ void loadBatteryInfo() {
+ BatteryInfo.getBatteryInfo(mContext, info -> {
+ mBatteryInfo = info;
+ mContext.getContentResolver().notifyChange(getUri(), null);
+ }, true);
+ }
+
+ @VisibleForTesting
+ CharSequence getBatteryPercentString() {
+ return mBatteryInfo == null ? null : mBatteryInfo.batteryPercentString;
+ }
+
+ @VisibleForTesting
+ CharSequence getSummary() {
+ if (mBatteryInfo == null) {
+ return null;
+ }
+ return mBatteryInfo.remainingLabel == null ? mBatteryInfo.statusLabel
+ : mBatteryInfo.remainingLabel;
+ }
+
+ private PendingIntent getPrimaryAction() {
+ final Intent intent = getIntent();
+ return PendingIntent.getActivity(mContext, 0 /* requestCode */,
+ intent, 0 /* flags */);
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/homepage/deviceinfo/DataUsageSlice.java b/src/com/android/settings/homepage/contextualcards/deviceinfo/DataUsageSlice.java
similarity index 93%
rename from src/com/android/settings/homepage/deviceinfo/DataUsageSlice.java
rename to src/com/android/settings/homepage/contextualcards/deviceinfo/DataUsageSlice.java
index d78b93d..6296b1e 100644
--- a/src/com/android/settings/homepage/deviceinfo/DataUsageSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/deviceinfo/DataUsageSlice.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.deviceinfo;
+package com.android.settings.homepage.contextualcards.deviceinfo;
import android.app.PendingIntent;
import android.content.ContentResolver;
@@ -53,7 +53,7 @@
/**
* The path denotes the unique name of data usage slice.
*/
- public static final String PATH_DATA_USAGE_CARD = "data_usage_card";
+ public static final String PATH_DATA_USAGE = "data_usage_card";
/**
* Backing Uri for the Data usage Slice.
@@ -61,7 +61,7 @@
public static final Uri DATA_USAGE_CARD_URI = new Uri.Builder()
.scheme(ContentResolver.SCHEME_CONTENT)
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
- .appendPath(PATH_DATA_USAGE_CARD)
+ .appendPath(PATH_DATA_USAGE)
.build();
private final Context mContext;
@@ -88,8 +88,8 @@
final DataUsageController.DataUsageInfo info = dataUsageController.getDataUsageInfo();
final ListBuilder listBuilder =
new ListBuilder(mContext, DATA_USAGE_CARD_URI, ListBuilder.INFINITY)
- .setAccentColor(Utils.getColorAccentDefaultColor(mContext))
- .setHeader(new ListBuilder.HeaderBuilder().setTitle(title));
+ .setAccentColor(Utils.getColorAccentDefaultColor(mContext))
+ .setHeader(new ListBuilder.HeaderBuilder().setTitle(title));
if (DataUsageUtils.hasSim(mContext)) {
listBuilder.addRow(new ListBuilder.RowBuilder()
.setTitle(getDataUsageText(info))
@@ -106,9 +106,9 @@
@Override
public Intent getIntent() {
final String screenTitle = mContext.getText(R.string.data_usage_wifi_title).toString();
- final Uri contentUri = new Uri.Builder().appendPath(PATH_DATA_USAGE_CARD).build();
+ final Uri contentUri = new Uri.Builder().appendPath(PATH_DATA_USAGE).build();
return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
- DataUsageSummary.class.getName(), PATH_DATA_USAGE_CARD, screenTitle,
+ DataUsageSummary.class.getName(), PATH_DATA_USAGE, screenTitle,
MetricsProto.MetricsEvent.SLICE)
.setClassName(mContext.getPackageName(), SubSettings.class.getName())
.setData(contentUri);
diff --git a/src/com/android/settings/homepage/deviceinfo/DeviceInfoSlice.java b/src/com/android/settings/homepage/contextualcards/deviceinfo/DeviceInfoSlice.java
similarity index 92%
rename from src/com/android/settings/homepage/deviceinfo/DeviceInfoSlice.java
rename to src/com/android/settings/homepage/contextualcards/deviceinfo/DeviceInfoSlice.java
index dc315c5..d6fdfd5 100644
--- a/src/com/android/settings/homepage/deviceinfo/DeviceInfoSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/deviceinfo/DeviceInfoSlice.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.deviceinfo;
+package com.android.settings.homepage.contextualcards.deviceinfo;
import android.app.PendingIntent;
import android.content.ContentResolver;
@@ -23,7 +23,6 @@
import android.net.Uri;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
@@ -53,7 +52,7 @@
/**
* The path denotes the unique name of device info slice
*/
- public static final String PATH_DEVICE_INFO_CARD = "device_info_card";
+ public static final String PATH_DEVICE_INFO = "device_info_card";
/**
* Backing Uri for the Device info Slice.
@@ -61,16 +60,14 @@
public static final Uri DEVICE_INFO_CARD_URI = new Uri.Builder()
.scheme(ContentResolver.SCHEME_CONTENT)
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
- .appendPath(PATH_DEVICE_INFO_CARD)
+ .appendPath(PATH_DEVICE_INFO)
.build();
private final Context mContext;
- private final TelephonyManager mTelephonyManager;
private final SubscriptionManager mSubscriptionManager;
public DeviceInfoSlice(Context context) {
mContext = context;
- mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class);
}
@@ -101,9 +98,9 @@
@Override
public Intent getIntent() {
final String screenTitle = mContext.getText(R.string.device_info_label).toString();
- final Uri contentUri = new Uri.Builder().appendPath(PATH_DEVICE_INFO_CARD).build();
+ final Uri contentUri = new Uri.Builder().appendPath(PATH_DEVICE_INFO).build();
return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
- MyDeviceInfoFragment.class.getName(), PATH_DEVICE_INFO_CARD, screenTitle,
+ MyDeviceInfoFragment.class.getName(), PATH_DEVICE_INFO, screenTitle,
MetricsProto.MetricsEvent.SLICE)
.setClassName(mContext.getPackageName(), SubSettings.class.getName())
.setData(contentUri);
diff --git a/src/com/android/settings/homepage/contextualcards/deviceinfo/EmergencyInfoSlice.java b/src/com/android/settings/homepage/contextualcards/deviceinfo/EmergencyInfoSlice.java
new file mode 100644
index 0000000..aff34f4
--- /dev/null
+++ b/src/com/android/settings/homepage/contextualcards/deviceinfo/EmergencyInfoSlice.java
@@ -0,0 +1,77 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage.contextualcards.deviceinfo;
+
+import android.app.PendingIntent;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+
+import androidx.core.graphics.drawable.IconCompat;
+import androidx.slice.Slice;
+import androidx.slice.builders.ListBuilder;
+import androidx.slice.builders.SliceAction;
+
+import com.android.settings.R;
+import com.android.settings.slices.SettingsSliceProvider;
+
+// This is a slice helper class for EmergencyInfo
+public class EmergencyInfoSlice {
+ /**
+ * The path denotes the unique name of emergency info slice.
+ */
+ public static final String PATH_EMERGENCY_INFO_CARD = "emergency_info_card";
+
+ /**
+ * Backing Uri for the Emergency Info Slice.
+ */
+ public static final Uri EMERGENCY_INFO_CARD_URI = new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(SettingsSliceProvider.SLICE_AUTHORITY)
+ .appendPath(PATH_EMERGENCY_INFO_CARD)
+ .build();
+
+ private static final String ACTION_EDIT_EMERGENCY_INFO = "android.settings.EDIT_EMERGENCY_INFO";
+
+ public static Slice getSlice(Context context) {
+ final ListBuilder listBuilder = new ListBuilder(context, EMERGENCY_INFO_CARD_URI,
+ ListBuilder.INFINITY);
+ listBuilder.addRow(
+ new ListBuilder.RowBuilder()
+ .setTitle(context.getText(R.string.emergency_info_title))
+ .setSubtitle(
+ context.getText(R.string.emergency_info_contextual_card_summary))
+ .setPrimaryAction(generatePrimaryAction(context)));
+ return listBuilder.build();
+ }
+
+ private static SliceAction generatePrimaryAction(Context context) {
+ PendingIntent pendingIntent =
+ PendingIntent.getActivity(
+ context,
+ 0 /* requestCode */,
+ new Intent(ACTION_EDIT_EMERGENCY_INFO),
+ PendingIntent.FLAG_UPDATE_CURRENT);
+
+ return SliceAction.create(
+ pendingIntent,
+ IconCompat.createWithResource(context, R.drawable.empty_icon),
+ ListBuilder.SMALL_IMAGE,
+ context.getText(R.string.emergency_info_title));
+ }
+}
diff --git a/src/com/android/settings/homepage/deviceinfo/StorageSlice.java b/src/com/android/settings/homepage/contextualcards/deviceinfo/StorageSlice.java
similarity index 95%
rename from src/com/android/settings/homepage/deviceinfo/StorageSlice.java
rename to src/com/android/settings/homepage/contextualcards/deviceinfo/StorageSlice.java
index c9464e4..c61a8a0 100644
--- a/src/com/android/settings/homepage/deviceinfo/StorageSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/deviceinfo/StorageSlice.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.deviceinfo;
+package com.android.settings.homepage.contextualcards.deviceinfo;
import android.app.PendingIntent;
import android.content.ContentResolver;
@@ -48,7 +48,7 @@
/**
* The path denotes the unique name of storage slicel
*/
- public static final String PATH_STORAGE_CARD = "storage_card";
+ public static final String PATH_STORAGE_INFO = "storage_card";
/**
* Backing Uri for the storage slice.
@@ -56,7 +56,7 @@
public static final Uri STORAGE_CARD_URI = new Uri.Builder()
.scheme(ContentResolver.SCHEME_CONTENT)
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
- .appendPath(PATH_STORAGE_CARD)
+ .appendPath(PATH_STORAGE_INFO)
.build();
private final Context mContext;
@@ -93,9 +93,9 @@
@Override
public Intent getIntent() {
final String screenTitle = mContext.getText(R.string.storage_label).toString();
- final Uri contentUri = new Uri.Builder().appendPath(PATH_STORAGE_CARD).build();
+ final Uri contentUri = new Uri.Builder().appendPath(PATH_STORAGE_INFO).build();
return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
- StorageDashboardFragment.class.getName(), PATH_STORAGE_CARD, screenTitle,
+ StorageDashboardFragment.class.getName(), PATH_STORAGE_INFO, screenTitle,
MetricsProto.MetricsEvent.SLICE)
.setClassName(mContext.getPackageName(), SubSettings.class.getName())
.setData(contentUri);
diff --git a/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCard.java b/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCard.java
new file mode 100644
index 0000000..d11f771
--- /dev/null
+++ b/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCard.java
@@ -0,0 +1,61 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage.contextualcards.legacysuggestion;
+
+import android.app.PendingIntent;
+
+import com.android.settings.homepage.contextualcards.ContextualCard;
+
+public class LegacySuggestionContextualCard extends ContextualCard {
+
+ private final PendingIntent mPendingIntent;
+
+ public LegacySuggestionContextualCard(Builder builder) {
+ super(builder);
+ mPendingIntent = builder.mPendingIntent;
+ }
+
+ @Override
+ public int getCardType() {
+ return CardType.LEGACY_SUGGESTION;
+ }
+
+ public PendingIntent getPendingIntent() {
+ return mPendingIntent;
+ }
+
+ public static class Builder extends ContextualCard.Builder {
+
+ private PendingIntent mPendingIntent;
+
+ public Builder setPendingIntent(PendingIntent pendingIntent) {
+ mPendingIntent = pendingIntent;
+ return this;
+ }
+
+ @Override
+ public Builder setCardType(int cardType) {
+ throw new IllegalArgumentException(
+ "Cannot change card type for " + getClass().getName());
+ }
+
+ public LegacySuggestionContextualCard build() {
+ return new LegacySuggestionContextualCard(this);
+ }
+ }
+
+}
diff --git a/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardController.java b/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardController.java
new file mode 100644
index 0000000..550f845
--- /dev/null
+++ b/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardController.java
@@ -0,0 +1,156 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage.contextualcards.legacysuggestion;
+
+import android.app.PendingIntent;
+import android.content.ComponentName;
+import android.content.Context;
+import android.service.settings.suggestions.Suggestion;
+import android.util.ArrayMap;
+import android.util.Log;
+
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.R;
+import com.android.settings.homepage.contextualcards.ContextualCard;
+import com.android.settings.homepage.contextualcards.ContextualCardController;
+import com.android.settings.homepage.contextualcards.ContextualCardUpdateListener;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+import com.android.settingslib.suggestions.SuggestionController;
+import com.android.settingslib.suggestions.SuggestionController.ServiceConnectionListener;
+import com.android.settingslib.utils.ThreadUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class LegacySuggestionContextualCardController implements ContextualCardController,
+ LifecycleObserver, OnStart, OnStop, ServiceConnectionListener {
+
+ private static final String TAG = "LegacySuggestCardCtrl";
+
+ @VisibleForTesting
+ SuggestionController mSuggestionController;
+
+ private ContextualCardUpdateListener mCardUpdateListener;
+ private final Context mContext;
+
+
+ public LegacySuggestionContextualCardController(Context context) {
+ mContext = context;
+ if (!mContext.getResources().getBoolean(R.bool.config_use_legacy_suggestion)) {
+ Log.w(TAG, "Legacy suggestion contextual card disabled, skipping.");
+ return;
+ }
+ final ComponentName suggestionServiceComponent =
+ FeatureFactory.getFactory(mContext).getSuggestionFeatureProvider(mContext)
+ .getSuggestionServiceComponent();
+ mSuggestionController = new SuggestionController(
+ mContext, suggestionServiceComponent, this /* listener */);
+
+ }
+
+ @Override
+ public int getCardType() {
+ return ContextualCard.CardType.LEGACY_SUGGESTION;
+ }
+
+ @Override
+ public void onPrimaryClick(ContextualCard card) {
+ try {
+ ((LegacySuggestionContextualCard) card).getPendingIntent().send();
+ } catch (PendingIntent.CanceledException e) {
+ Log.w(TAG, "Failed to start suggestion " + card.getTitleText());
+ }
+ }
+
+ @Override
+ public void onActionClick(ContextualCard card) {
+
+ }
+
+ @Override
+ public void setCardUpdateListener(ContextualCardUpdateListener listener) {
+ mCardUpdateListener = listener;
+ }
+
+ @Override
+ public void onStart() {
+ if (mSuggestionController == null) {
+ return;
+ }
+ mSuggestionController.start();
+ }
+
+ @Override
+ public void onStop() {
+ if (mSuggestionController == null) {
+ return;
+ }
+ mSuggestionController.stop();
+ }
+
+ @Override
+ public void onServiceConnected() {
+ loadSuggestions();
+ }
+
+ @Override
+ public void onServiceDisconnected() {
+
+ }
+
+ private void loadSuggestions() {
+ ThreadUtils.postOnBackgroundThread(() -> {
+ if (mSuggestionController == null || mCardUpdateListener == null) {
+ return;
+ }
+ final List<Suggestion> suggestions = mSuggestionController.getSuggestions();
+ Log.d(TAG, "Loaded suggests: "
+ + suggestions == null ? "null" : String.valueOf(suggestions.size()));
+
+ final List<ContextualCard> cards = new ArrayList<>();
+ if (suggestions != null) {
+ // Convert suggestion to ContextualCard
+ for (Suggestion suggestion : suggestions) {
+ final LegacySuggestionContextualCard.Builder cardBuilder =
+ new LegacySuggestionContextualCard.Builder();
+ if (suggestion.getIcon() != null) {
+ cardBuilder.setIconDrawable(suggestion.getIcon().loadDrawable(mContext));
+ }
+ cardBuilder
+ .setPendingIntent(suggestion.getPendingIntent())
+ .setName(suggestion.getId())
+ .setTitleText(suggestion.getTitle().toString())
+ .setSummaryText(suggestion.getSummary().toString());
+
+ cards.add(cardBuilder.build());
+ }
+ }
+
+ // Update adapter
+ final Map<Integer, List<ContextualCard>> suggestionCards = new ArrayMap<>();
+ suggestionCards.put(ContextualCard.CardType.LEGACY_SUGGESTION, cards);
+ ThreadUtils.postOnMainThread(
+ () -> mCardUpdateListener.onContextualCardUpdated(suggestionCards));
+
+ });
+ }
+}
diff --git a/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardRenderer.java b/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardRenderer.java
new file mode 100644
index 0000000..3ce1883
--- /dev/null
+++ b/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardRenderer.java
@@ -0,0 +1,81 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage.contextualcards.legacysuggestion;
+
+import android.content.Context;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.LayoutRes;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.settings.R;
+import com.android.settings.homepage.contextualcards.ContextualCard;
+import com.android.settings.homepage.contextualcards.ContextualCardRenderer;
+import com.android.settings.homepage.contextualcards.ControllerRendererPool;
+
+public class LegacySuggestionContextualCardRenderer implements ContextualCardRenderer {
+
+ @LayoutRes
+ public static final int VIEW_TYPE = R.layout.homepage_suggestion_tile;
+
+ private final Context mContext;
+ private final ControllerRendererPool mControllerRendererPool;
+
+ public LegacySuggestionContextualCardRenderer(Context context,
+ ControllerRendererPool controllerRendererPool) {
+ mContext = context;
+ mControllerRendererPool = controllerRendererPool;
+ }
+
+ @Override
+ public int getViewType(boolean isHalfWidth) {
+ return VIEW_TYPE;
+ }
+
+ @Override
+ public RecyclerView.ViewHolder createViewHolder(View view) {
+ return new LegacySuggestionViewHolder(view);
+ }
+
+ @Override
+ public void bindView(RecyclerView.ViewHolder holder, ContextualCard card) {
+ final LegacySuggestionViewHolder vh = (LegacySuggestionViewHolder) holder;
+ vh.icon.setImageDrawable(card.getIconDrawable());
+ vh.title.setText(card.getTitleText());
+ vh.summary.setText(card.getSummaryText());
+ vh.itemView.setOnClickListener(v ->
+ mControllerRendererPool.getController(mContext,
+ card.getCardType()).onPrimaryClick(card));
+ }
+
+ private static class LegacySuggestionViewHolder extends RecyclerView.ViewHolder {
+
+ public final ImageView icon;
+ public final TextView title;
+ public final TextView summary;
+
+ public LegacySuggestionViewHolder(View itemView) {
+ super(itemView);
+ icon = itemView.findViewById(android.R.id.icon);
+ title = itemView.findViewById(android.R.id.title);
+ summary = itemView.findViewById(android.R.id.summary);
+ }
+ }
+}
+
diff --git a/src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSlice.java b/src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSlice.java
new file mode 100644
index 0000000..54cd82f
--- /dev/null
+++ b/src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSlice.java
@@ -0,0 +1,277 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage.contextualcards.slices;
+
+import android.app.PendingIntent;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.Bitmap.Config;
+import android.graphics.Canvas;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.os.Bundle;
+import android.util.ArrayMap;
+import android.util.Log;
+import android.util.Pair;
+
+import androidx.core.graphics.drawable.IconCompat;
+import androidx.slice.Slice;
+import androidx.slice.builders.ListBuilder;
+import androidx.slice.builders.SliceAction;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
+import com.android.settings.SubSettings;
+import com.android.settings.Utils;
+import com.android.settings.bluetooth.BluetoothDeviceDetailsFragment;
+import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.slices.CustomSliceable;
+import com.android.settings.slices.SettingsSliceProvider;
+import com.android.settings.slices.SliceBuilderUtils;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.core.instrumentation.Instrumentable;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * TODO(b/114807655): Contextual Home Page - Connected Device
+ *
+ * Show connected device info if one is currently connected. UI for connected device should
+ * match Connected Devices > Currently Connected Devices
+ *
+ * This Slice will show multiple currently connected devices, which includes:
+ * 1) Bluetooth.
+ * 2) Docks.
+ * ...
+ * TODO Other device types are under checking to support, will update later.
+ */
+public class ConnectedDeviceSlice implements CustomSliceable {
+
+ /**
+ * The path denotes the unique name of Connected device Slice.
+ */
+ public static final String PATH_CONNECTED_DEVICE = "connected_device";
+
+ /**
+ * Backing Uri for Connected device Slice.
+ */
+ public static final Uri CONNECTED_DEVICE_URI = new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(SettingsSliceProvider.SLICE_AUTHORITY)
+ .appendPath(PATH_CONNECTED_DEVICE)
+ .build();
+
+ /**
+ * To sort the Bluetooth devices by {@link CachedBluetoothDevice}.
+ * Refer compareTo method from {@link com.android.settings.bluetooth.BluetoothDevicePreference}.
+ */
+ private static final Comparator<CachedBluetoothDevice> COMPARATOR
+ = Comparator.naturalOrder();
+
+ private static final String TAG = "ConnectedDeviceSlice";
+
+ private final Context mContext;
+
+ public ConnectedDeviceSlice(Context context) {
+ mContext = context;
+ }
+
+ private static Bitmap getBitmapFromVectorDrawable(Drawable VectorDrawable) {
+ final Bitmap bitmap = Bitmap.createBitmap(VectorDrawable.getIntrinsicWidth(),
+ VectorDrawable.getIntrinsicHeight(), Config.ARGB_8888);
+ final Canvas canvas = new Canvas(bitmap);
+
+ VectorDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
+ VectorDrawable.draw(canvas);
+
+ return bitmap;
+ }
+
+ @Override
+ public Uri getUri() {
+ return CONNECTED_DEVICE_URI;
+ }
+
+ /**
+ * Return a Connected Device Slice bound to {@link #CONNECTED_DEVICE_URI}.
+ */
+ @Override
+ public Slice getSlice() {
+ final IconCompat icon = IconCompat.createWithResource(mContext,
+ R.drawable.ic_homepage_connected_device);
+ final CharSequence title = mContext.getText(R.string.connected_devices_dashboard_title);
+ final CharSequence titleNoConnectedDevices = mContext.getText(
+ R.string.no_connected_devices);
+ final PendingIntent primaryActionIntent = PendingIntent.getActivity(mContext, 0,
+ getIntent(), 0);
+ final SliceAction primarySliceAction = new SliceAction(primaryActionIntent, icon,
+ title);
+ final ListBuilder listBuilder =
+ new ListBuilder(mContext, CONNECTED_DEVICE_URI, ListBuilder.INFINITY)
+ .setAccentColor(Utils.getColorAccentDefaultColor(mContext));
+
+ // Get row builders by connected devices, e.g. Bluetooth.
+ // TODO Add other type connected devices, e.g. Docks.
+ final List<ListBuilder.RowBuilder> rows = getBluetoothRowBuilder(primarySliceAction);
+
+ // Return a header with IsError flag, if no connected devices.
+ if (rows.isEmpty()) {
+ return listBuilder.setHeader(new ListBuilder.HeaderBuilder()
+ .setTitle(titleNoConnectedDevices)
+ .setPrimaryAction(primarySliceAction))
+ .setIsError(true)
+ .build();
+ }
+
+ // According the number of connected devices to set sub title of header.
+ listBuilder.setHeader(new ListBuilder.HeaderBuilder()
+ .setTitle(title)
+ .setSubtitle(getSubTitle(rows.size()))
+ .setPrimaryAction(primarySliceAction));
+
+ // Add rows.
+ for (ListBuilder.RowBuilder rowBuilder : rows) {
+ listBuilder.addRow(rowBuilder);
+ }
+ return listBuilder.build();
+ }
+
+ @Override
+ public Intent getIntent() {
+ final String screenTitle = mContext.getText(R.string.connected_devices_dashboard_title)
+ .toString();
+ final Uri contentUri = new Uri.Builder().appendPath(PATH_CONNECTED_DEVICE).build();
+
+ return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
+ ConnectedDeviceDashboardFragment.class.getName(), PATH_CONNECTED_DEVICE,
+ screenTitle,
+ MetricsProto.MetricsEvent.SLICE)
+ .setClassName(mContext.getPackageName(), SubSettings.class.getName())
+ .setData(contentUri);
+ }
+
+ @Override
+ public void onNotifyChange(Intent intent) {
+ }
+
+ @VisibleForTesting
+ List<CachedBluetoothDevice> getBluetoothConnectedDevices() {
+ final List<CachedBluetoothDevice> connectedBluetoothList = new ArrayList<>();
+
+ // If Bluetooth is disable, skip to get the bluetooth devices.
+ if (!BluetoothAdapter.getDefaultAdapter().isEnabled()) {
+ Log.d(TAG, "Cannot get Bluetooth connected devices, Bluetooth is disabled.");
+ return connectedBluetoothList;
+ }
+
+ // Get the Bluetooth devices from LocalBluetoothManager.
+ final LocalBluetoothManager bluetoothManager =
+ com.android.settings.bluetooth.Utils.getLocalBtManager(mContext);
+ if (bluetoothManager == null) {
+ Log.d(TAG, "Cannot get Bluetooth connected devices, Bluetooth is not supported.");
+ return connectedBluetoothList;
+ }
+ final Collection<CachedBluetoothDevice> cachedDevices =
+ bluetoothManager.getCachedDeviceManager().getCachedDevicesCopy();
+
+ // Get all connected Bluetooth devices and use Map to filter duplicated Bluetooth.
+ final Map<BluetoothDevice, CachedBluetoothDevice> connectedBluetoothMap = new ArrayMap<>();
+ for (CachedBluetoothDevice device : cachedDevices) {
+ if (device.isConnected() && !connectedBluetoothMap.containsKey(device.getDevice())) {
+ connectedBluetoothMap.put(device.getDevice(), device);
+ }
+ }
+
+ // Sort connected Bluetooth devices.
+ connectedBluetoothList.addAll(connectedBluetoothMap.values());
+ Collections.sort(connectedBluetoothList, COMPARATOR);
+
+ return connectedBluetoothList;
+ }
+
+ @VisibleForTesting
+ PendingIntent getBluetoothDetailIntent(CachedBluetoothDevice device) {
+ final Bundle args = new Bundle();
+ args.putString(BluetoothDeviceDetailsFragment.KEY_DEVICE_ADDRESS,
+ device.getDevice().getAddress());
+ final SubSettingLauncher subSettingLauncher = new SubSettingLauncher(mContext);
+ subSettingLauncher.setDestination(BluetoothDeviceDetailsFragment.class.getName())
+ .setArguments(args)
+ .setTitleRes(R.string.device_details_title)
+ .setSourceMetricsCategory(Instrumentable.METRICS_CATEGORY_UNKNOWN);
+
+ // The requestCode should be unique, use the hashcode of device as request code.
+ return PendingIntent
+ .getActivity(mContext, device.hashCode() /* requestCode */,
+ subSettingLauncher.toIntent(),
+ 0 /* flags */);
+ }
+
+ @VisibleForTesting
+ IconCompat getConnectedDeviceIcon(CachedBluetoothDevice device) {
+ final Pair<Drawable, String> pair = BluetoothUtils
+ .getBtClassDrawableWithDescription(mContext, device);
+
+ if (pair.first != null) {
+ return IconCompat.createWithBitmap(getBitmapFromVectorDrawable(pair.first));
+ } else {
+ return IconCompat.createWithResource(mContext, R.drawable.ic_homepage_connected_device);
+ }
+ }
+
+ private List<ListBuilder.RowBuilder> getBluetoothRowBuilder(SliceAction primarySliceAction) {
+ final List<ListBuilder.RowBuilder> bluetoothRows = new ArrayList<>();
+
+ // According Bluetooth connected device to create row builders.
+ final List<CachedBluetoothDevice> bluetoothDevices = getBluetoothConnectedDevices();
+ for (CachedBluetoothDevice bluetoothDevice : bluetoothDevices) {
+ bluetoothRows.add(new ListBuilder.RowBuilder()
+ .setTitleItem(getConnectedDeviceIcon(bluetoothDevice), ListBuilder.ICON_IMAGE)
+ .setTitle(bluetoothDevice.getName())
+ .setSubtitle(bluetoothDevice.getConnectionSummary())
+ .setPrimaryAction(primarySliceAction)
+ .addEndItem(buildBluetoothDetailDeepLinkAction(bluetoothDevice)));
+ }
+
+ return bluetoothRows;
+ }
+
+ private SliceAction buildBluetoothDetailDeepLinkAction(CachedBluetoothDevice bluetoothDevice) {
+ return new SliceAction(
+ getBluetoothDetailIntent(bluetoothDevice),
+ IconCompat.createWithResource(mContext, R.drawable.ic_settings),
+ bluetoothDevice.getName());
+ }
+
+ private CharSequence getSubTitle(int deviceCount) {
+ return mContext.getResources().getQuantityString(R.plurals.show_connected_devices,
+ deviceCount, deviceCount);
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/homepage/slices/SliceContextualCardController.java b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardController.java
similarity index 79%
rename from src/com/android/settings/homepage/slices/SliceContextualCardController.java
rename to src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardController.java
index e6fc283..5711dc5 100644
--- a/src/com/android/settings/homepage/slices/SliceContextualCardController.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardController.java
@@ -14,13 +14,11 @@
* limitations under the License.
*/
-package com.android.settings.homepage.slices;
+package com.android.settings.homepage.contextualcards.slices;
-import com.android.settings.homepage.ContextualCard;
-import com.android.settings.homepage.ContextualCardController;
-import com.android.settings.homepage.ContextualCardUpdateListener;
-
-import java.util.List;
+import com.android.settings.homepage.contextualcards.ContextualCard;
+import com.android.settings.homepage.contextualcards.ContextualCardController;
+import com.android.settings.homepage.contextualcards.ContextualCardUpdateListener;
/**
* Card controller for {@link ContextualCard} built as slices.
diff --git a/src/com/android/settings/homepage/slices/SliceContextualCardRenderer.java b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
similarity index 83%
rename from src/com/android/settings/homepage/slices/SliceContextualCardRenderer.java
rename to src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
index 705b990..5fc4473 100644
--- a/src/com/android/settings/homepage/slices/SliceContextualCardRenderer.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.slices;
+package com.android.settings.homepage.contextualcards.slices;
import android.content.ContentResolver;
import android.content.Context;
@@ -35,8 +35,8 @@
import androidx.slice.widget.SliceView;
import com.android.settings.R;
-import com.android.settings.homepage.ContextualCard;
-import com.android.settings.homepage.ContextualCardRenderer;
+import com.android.settings.homepage.contextualcards.ContextualCard;
+import com.android.settings.homepage.contextualcards.ContextualCardRenderer;
import java.util.Map;
@@ -45,6 +45,7 @@
*/
public class SliceContextualCardRenderer implements ContextualCardRenderer,
SliceView.OnSliceActionListener {
+ public static final int VIEW_TYPE = R.layout.homepage_slice_tile;
private static final String TAG = "SliceCardRenderer";
@@ -61,8 +62,8 @@
}
@Override
- public int getViewType() {
- return R.layout.homepage_slice_tile;
+ public int getViewType(boolean isHalfWidth) {
+ return VIEW_TYPE;
}
@Override
@@ -82,6 +83,7 @@
return;
}
+ cardHolder.sliceView.setScrollable(false);
cardHolder.sliceView.setTag(uri);
//TODO(b/114009676): We will soon have a field to decide what slice mode we should set.
cardHolder.sliceView.setMode(SliceView.MODE_LARGE);
@@ -90,14 +92,16 @@
if (sliceLiveData == null) {
sliceLiveData = SliceLiveData.fromUri(mContext, uri);
mSliceLiveDataMap.put(uri.toString(), sliceLiveData);
- sliceLiveData.observe(mLifecycleOwner, slice -> {
- if (slice == null) {
- Log.w(TAG, "Slice is null");
- }
- cardHolder.sliceView.setSlice(slice);
- });
}
+ sliceLiveData.removeObservers(mLifecycleOwner);
+ sliceLiveData.observe(mLifecycleOwner, slice -> {
+ if (slice == null) {
+ Log.w(TAG, "Slice is null");
+ }
+ cardHolder.sliceView.setSlice(slice);
+ });
+
// Set this listener so we can log the interaction users make on the slice
cardHolder.sliceView.setOnSliceActionListener(this);
}
diff --git a/src/com/android/settings/location/AppLocationPermissionPreferenceController.java b/src/com/android/settings/location/AppLocationPermissionPreferenceController.java
index fabe295..f920fdc 100644
--- a/src/com/android/settings/location/AppLocationPermissionPreferenceController.java
+++ b/src/com/android/settings/location/AppLocationPermissionPreferenceController.java
@@ -23,7 +23,6 @@
@Override
public boolean isAvailable() {
return Settings.Global.getInt(mContext.getContentResolver(),
- android.provider.Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 1)
- == 1;
+ Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 1) == 1;
}
}
diff --git a/src/com/android/settings/location/LocationPreferenceController.java b/src/com/android/settings/location/LocationPreferenceController.java
deleted file mode 100644
index 0efc2b1..0000000
--- a/src/com/android/settings/location/LocationPreferenceController.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2017 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.location;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.location.LocationManager;
-import android.provider.Settings.Secure;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnPause;
-import com.android.settingslib.core.lifecycle.events.OnResume;
-
-public class LocationPreferenceController extends AbstractPreferenceController
- implements PreferenceControllerMixin, LifecycleObserver, OnResume, OnPause {
-
- private static final String KEY_LOCATION = "location";
- private Context mContext;
- private Preference mPreference;
-
- @VisibleForTesting
- BroadcastReceiver mLocationProvidersChangedReceiver;
-
- public LocationPreferenceController(Context context, Lifecycle lifecycle) {
- super(context);
- mContext = context;
- mLocationProvidersChangedReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- if (intent.getAction().equals(LocationManager.PROVIDERS_CHANGED_ACTION)) {
- updateSummary();
- }
- }
- };
- if (lifecycle != null) {
- lifecycle.addObserver(this);
- }
- }
-
- @Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- mPreference = screen.findPreference(KEY_LOCATION);
- }
-
- @Override
- public void onResume() {
- if (mLocationProvidersChangedReceiver != null) {
- mContext.registerReceiver(mLocationProvidersChangedReceiver, new IntentFilter(
- LocationManager.PROVIDERS_CHANGED_ACTION));
- }
- }
-
- @Override
- public void onPause() {
- if (mLocationProvidersChangedReceiver != null) {
- mContext.unregisterReceiver(mLocationProvidersChangedReceiver);
- }
- }
-
- @Override
- public void updateState(Preference preference) {
- preference.setSummary(getLocationSummary(mContext));
- }
-
- @Override
- public String getPreferenceKey() {
- return KEY_LOCATION;
- }
-
- @Override
- public boolean isAvailable() {
- return true;
- }
-
- public void updateSummary() {
- updateState(mPreference);
- }
-
- public static String getLocationSummary(Context context) {
- int mode = Secure.getInt(context.getContentResolver(),
- Secure.LOCATION_MODE, Secure.LOCATION_MODE_OFF);
- if (mode != Secure.LOCATION_MODE_OFF) {
- return context.getString(R.string.location_on_summary);
- }
- return context.getString(R.string.location_off_summary);
- }
-}
diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
index 758ca57..53076e8 100644
--- a/src/com/android/settings/location/LocationSettings.java
+++ b/src/com/android/settings/location/LocationSettings.java
@@ -133,34 +133,6 @@
return controllers;
}
- private static class SummaryProvider implements SummaryLoader.SummaryProvider {
-
- private final Context mContext;
- private final SummaryLoader mSummaryLoader;
-
- public SummaryProvider(Context context, SummaryLoader summaryLoader) {
- mContext = context;
- mSummaryLoader = summaryLoader;
- }
-
- @Override
- public void setListening(boolean listening) {
- if (listening) {
- mSummaryLoader.setSummary(
- this, LocationPreferenceController.getLocationSummary(mContext));
- }
- }
- }
-
- public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
- = new SummaryLoader.SummaryProviderFactory() {
- @Override
- public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity,
- SummaryLoader summaryLoader) {
- return new SummaryProvider(activity, summaryLoader);
- }
- };
-
/**
* For Search.
*/
diff --git a/src/com/android/settings/network/ApnPreference.java b/src/com/android/settings/network/ApnPreference.java
index 412259b..a7fbb6e 100755
--- a/src/com/android/settings/network/ApnPreference.java
+++ b/src/com/android/settings/network/ApnPreference.java
@@ -25,18 +25,15 @@
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
-import android.view.View.OnClickListener;
import android.widget.CompoundButton;
import android.widget.RadioButton;
-import android.widget.RelativeLayout;
import androidx.preference.Preference;
import androidx.preference.PreferenceViewHolder;
import com.android.settings.R;
-public class ApnPreference extends Preference implements
- CompoundButton.OnCheckedChangeListener, OnClickListener {
+public class ApnPreference extends Preference implements CompoundButton.OnCheckedChangeListener {
final static String TAG = "ApnPreference";
private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
@@ -82,11 +79,6 @@
rb.setVisibility(View.GONE);
}
}
-
- View textLayout = view.findViewById(R.id.text_layout);
- if ((textLayout != null) && textLayout instanceof RelativeLayout) {
- textLayout.setOnClickListener(this);
- }
}
public boolean isChecked() {
@@ -116,16 +108,16 @@
}
}
- public void onClick(android.view.View v) {
- if ((v != null) && (R.id.text_layout == v.getId())) {
- Context context = getContext();
- if (context != null) {
- int pos = Integer.parseInt(getKey());
- Uri url = ContentUris.withAppendedId(Telephony.Carriers.CONTENT_URI, pos);
- Intent editIntent = new Intent(Intent.ACTION_EDIT, url);
- editIntent.putExtra(ApnSettings.SUB_ID, mSubId);
- context.startActivity(editIntent);
- }
+ @Override
+ protected void onClick() {
+ super.onClick();
+ Context context = getContext();
+ if (context != null) {
+ int pos = Integer.parseInt(getKey());
+ Uri url = ContentUris.withAppendedId(Telephony.Carriers.CONTENT_URI, pos);
+ Intent editIntent = new Intent(Intent.ACTION_EDIT, url);
+ editIntent.putExtra(ApnSettings.SUB_ID, mSubId);
+ context.startActivity(editIntent);
}
}
diff --git a/src/com/android/settings/network/ApnSettings.java b/src/com/android/settings/network/ApnSettings.java
index beeaab3..a71dfaa 100755
--- a/src/com/android/settings/network/ApnSettings.java
+++ b/src/com/android/settings/network/ApnSettings.java
@@ -21,7 +21,6 @@
import android.app.ProgressDialog;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
-import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
@@ -65,8 +64,7 @@
import java.util.ArrayList;
-public class ApnSettings extends RestrictedSettingsFragment implements
- Preference.OnPreferenceChangeListener {
+public class ApnSettings extends RestrictedSettingsFragment {
static final String TAG = "ApnSettings";
public static final String EXTRA_POSITION = "position";
@@ -313,7 +311,6 @@
pref.setTitle(name);
pref.setSummary(apn);
pref.setPersistent(false);
- pref.setOnPreferenceChangeListener(this);
pref.setSubId(subId);
boolean selectable = ((type == null) || !type.equals("mms"));
@@ -405,14 +402,6 @@
startActivity(intent);
}
- @Override
- public boolean onPreferenceTreeClick(Preference preference) {
- int pos = Integer.parseInt(preference.getKey());
- Uri url = ContentUris.withAppendedId(Telephony.Carriers.CONTENT_URI, pos);
- startActivity(new Intent(Intent.ACTION_EDIT, url));
- return true;
- }
-
public boolean onPreferenceChange(Preference preference, Object newValue) {
Log.d(TAG, "onPreferenceChange(): Preference - " + preference
+ ", newValue - " + newValue + ", newValue type - "
diff --git a/src/com/android/settings/network/MobileNetworkPreferenceController.java b/src/com/android/settings/network/MobileNetworkPreferenceController.java
index bf5ca00..3813435 100644
--- a/src/com/android/settings/network/MobileNetworkPreferenceController.java
+++ b/src/com/android/settings/network/MobileNetworkPreferenceController.java
@@ -36,7 +36,7 @@
import com.android.settings.core.FeatureFlags;
import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settings.network.telephony.MobileSettingsActivity;
+import com.android.settings.network.telephony.MobileNetworkActivity;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.Utils;
@@ -147,7 +147,7 @@
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, MobileSettingsActivity.class);
+ final Intent intent = new Intent(mContext, MobileNetworkActivity.class);
mContext.startActivity(intent);
} else {
final Intent intent = new Intent(Intent.ACTION_MAIN);
diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java
index 0279cfa..70481f1 100644
--- a/src/com/android/settings/network/NetworkDashboardFragment.java
+++ b/src/com/android/settings/network/NetworkDashboardFragment.java
@@ -15,29 +15,22 @@
*/
package com.android.settings.network;
-import static android.provider.Settings.ACTION_DATA_USAGE_SETTINGS;
import static com.android.settings.network.MobilePlanPreferenceController
.MANAGE_MOBILE_PLAN_DIALOG_ID;
-import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.icu.text.ListFormatter;
import android.provider.SearchIndexableResource;
-import android.text.BidiFormatter;
-import android.text.TextUtils;
+import android.util.FeatureFlagUtils;
import android.util.Log;
-import androidx.annotation.VisibleForTesting;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
+import com.android.settings.core.FeatureFlags;
import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.network.MobilePlanPreferenceController.MobilePlanPreferenceHost;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.wifi.WifiMasterSwitchPreferenceController;
@@ -48,7 +41,6 @@
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.function.BooleanSupplier;
import java.util.List;
@SearchIndexable
@@ -69,7 +61,11 @@
@Override
protected int getPreferenceScreenResId() {
- return R.xml.network_and_internet;
+ if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.NETWORK_INTERNET_V2)) {
+ return R.xml.network_and_internet_v2;
+ } else {
+ return R.xml.network_and_internet;
+ }
}
@Override
@@ -153,84 +149,6 @@
return 0;
}
- // TODO(b/110405144): Remove SummaryProvider
- @VisibleForTesting
- static class SummaryProvider implements SummaryLoader.SummaryProvider {
-
- private final Context mContext;
- private final SummaryLoader mSummaryLoader;
- private final WifiMasterSwitchPreferenceController mWifiPreferenceController;
- private final MobileNetworkPreferenceController mMobileNetworkPreferenceController;
- private final TetherPreferenceController mTetherPreferenceController;
- private final BooleanSupplier mHasDataUsageActivity;
-
- public SummaryProvider(Context context, SummaryLoader summaryLoader) {
- this(context, summaryLoader,
- new WifiMasterSwitchPreferenceController(context, null),
- new MobileNetworkPreferenceController(context),
- new TetherPreferenceController(context, null /* lifecycle */),
- () -> {
- final Intent intent = new Intent(ACTION_DATA_USAGE_SETTINGS);
- final PackageManager pm = context.getPackageManager();
- return intent.resolveActivity(pm) != null;
- });
- }
-
- @VisibleForTesting(otherwise = VisibleForTesting.NONE)
- SummaryProvider(Context context, SummaryLoader summaryLoader,
- WifiMasterSwitchPreferenceController wifiPreferenceController,
- MobileNetworkPreferenceController mobileNetworkPreferenceController,
- TetherPreferenceController tetherPreferenceController,
- BooleanSupplier hasDataUsageActivity) {
- mContext = context;
- mSummaryLoader = summaryLoader;
- mWifiPreferenceController = wifiPreferenceController;
- mMobileNetworkPreferenceController = mobileNetworkPreferenceController;
- mTetherPreferenceController = tetherPreferenceController;
- mHasDataUsageActivity = hasDataUsageActivity;
- }
-
-
- @Override
- public void setListening(boolean listening) {
- if (listening) {
- final String wifiSummary = BidiFormatter.getInstance()
- .unicodeWrap(mContext.getString(R.string.wifi_settings_title));
- final String mobileSummary = mContext.getString(
- R.string.network_dashboard_summary_mobile);
- final String dataUsageSummary = mContext.getString(
- R.string.network_dashboard_summary_data_usage);
- final String hotspotSummary = mContext.getString(
- R.string.network_dashboard_summary_hotspot);
-
- final List<String> summaries = new ArrayList<>();
- if (mWifiPreferenceController.isAvailable() && !TextUtils.isEmpty(wifiSummary)) {
- summaries.add(wifiSummary);
- }
- if (mMobileNetworkPreferenceController.isAvailable() && !TextUtils.isEmpty(mobileSummary)) {
- summaries.add(mobileSummary);
- }
- if (!TextUtils.isEmpty(dataUsageSummary) && mHasDataUsageActivity.getAsBoolean()) {
- summaries.add(dataUsageSummary);
- }
- if (mTetherPreferenceController.isAvailable() && !TextUtils.isEmpty(hotspotSummary)) {
- summaries.add(hotspotSummary);
- }
- mSummaryLoader.setSummary(this, ListFormatter.getInstance().format(summaries));
- }
- }
- }
-
- public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
- = new SummaryLoader.SummaryProviderFactory() {
- @Override
- public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity,
- SummaryLoader summaryLoader) {
- return new SummaryProvider(activity, summaryLoader);
- }
- };
-
-
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
diff --git a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
index 9e08345..a4e7d2a 100644
--- a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
+++ b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
@@ -27,6 +27,7 @@
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+import android.net.NetworkUtils;
import android.provider.Settings;
import android.system.Os;
import android.text.Editable;
@@ -72,8 +73,6 @@
PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_PROVIDER_HOSTNAME, R.id.private_dns_mode_provider);
}
- private static final int[] ADDRESS_FAMILIES = new int[] {AF_INET, AF_INET6};
-
@VisibleForTesting
static final String MODE_KEY = Settings.Global.PRIVATE_DNS_MODE;
@VisibleForTesting
@@ -203,23 +202,6 @@
updateDialogInfo();
}
- private boolean isWeaklyValidatedHostname(String hostname) {
- // TODO(b/34953048): Use a validation method that permits more accurate,
- // but still inexpensive, checking of likely valid DNS hostnames.
- final String WEAK_HOSTNAME_REGEX = "^[a-zA-Z0-9_.-]+$";
- if (!hostname.matches(WEAK_HOSTNAME_REGEX)) {
- return false;
- }
-
- for (int address_family : ADDRESS_FAMILIES) {
- if (Os.inet_pton(address_family, hostname) != null) {
- return false;
- }
- }
-
- return true;
- }
-
private Button getSaveButton() {
final AlertDialog dialog = (AlertDialog) getDialog();
if (dialog == null) {
@@ -236,7 +218,7 @@
final Button saveButton = getSaveButton();
if (saveButton != null) {
saveButton.setEnabled(modeProvider
- ? isWeaklyValidatedHostname(mEditText.getText().toString())
+ ? NetworkUtils.isWeaklyValidatedHostname(mEditText.getText().toString())
: true);
}
}
diff --git a/src/com/android/settings/network/PrivateDnsPreferenceController.java b/src/com/android/settings/network/PrivateDnsPreferenceController.java
index 5618010..8b3bfa0 100644
--- a/src/com/android/settings/network/PrivateDnsPreferenceController.java
+++ b/src/com/android/settings/network/PrivateDnsPreferenceController.java
@@ -34,6 +34,8 @@
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
+import android.os.UserHandle;
+import android.os.UserManager;
import android.provider.Settings;
import androidx.preference.Preference;
@@ -46,6 +48,8 @@
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
+import com.android.settingslib.RestrictedLockUtilsInternal;
+import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import java.net.InetAddress;
import java.util.List;
@@ -136,6 +140,19 @@
return "";
}
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ //TODO(b/112982691): Add policy transparency explaining why this setting is disabled.
+ preference.setEnabled(!isManagedByAdmin());
+ }
+
+ private boolean isManagedByAdmin() {
+ EnforcedAdmin enforcedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
+ mContext, UserManager.DISALLOW_CONFIG_PRIVATE_DNS, UserHandle.myUserId());
+ return enforcedAdmin != null;
+ }
+
private class PrivateDnsSettingsObserver extends ContentObserver {
public PrivateDnsSettingsObserver(Handler h) {
super(h);
diff --git a/src/com/android/settings/network/telephony/ApnPreferenceController.java b/src/com/android/settings/network/telephony/ApnPreferenceController.java
new file mode 100644
index 0000000..f5cd140
--- /dev/null
+++ b/src/com/android/settings/network/telephony/ApnPreferenceController.java
@@ -0,0 +1,144 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import static android.provider.Telephony.Carriers.ENFORCE_MANAGED_URI;
+
+import android.content.Context;
+import android.content.Intent;
+import android.database.ContentObserver;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.SettingsActivity;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.network.ApnSettings;
+import com.android.settingslib.RestrictedLockUtilsInternal;
+import com.android.settingslib.RestrictedPreference;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+/**
+ * Preference controller for "Apn settings"
+ */
+public class ApnPreferenceController extends BasePreferenceController implements
+ LifecycleObserver, OnStart, OnStop {
+
+ @VisibleForTesting
+ CarrierConfigManager mCarrierConfigManager;
+ private int mSubId;
+ private Preference mPreference;
+ private DpcApnEnforcedObserver mDpcApnEnforcedObserver;
+
+ public ApnPreferenceController(Context context, String key) {
+ super(context, key);
+ mCarrierConfigManager = new CarrierConfigManager(context);
+ mDpcApnEnforcedObserver = new DpcApnEnforcedObserver(new Handler(Looper.getMainLooper()));
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+ final boolean isCdmaApn = MobileNetworkUtils.isCdmaOptions(mContext, mSubId)
+ && carrierConfig != null
+ && carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL);
+ final boolean isGsmApn = MobileNetworkUtils.isGsmOptions(mContext, mSubId)
+ && carrierConfig != null
+ && carrierConfig.getBoolean(CarrierConfigManager.KEY_APN_EXPAND_BOOL);
+
+ return isCdmaApn || isGsmApn
+ ? AVAILABLE
+ : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ @Override
+ public void onStart() {
+ mDpcApnEnforcedObserver.register(mContext);
+ }
+
+ @Override
+ public void onStop() {
+ mDpcApnEnforcedObserver.unRegister(mContext);
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ ((RestrictedPreference) mPreference).setDisabledByAdmin(
+ MobileNetworkUtils.isDpcApnEnforced(mContext)
+ ? RestrictedLockUtilsInternal.getDeviceOwner(mContext)
+ : null);
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (getPreferenceKey().equals(preference.getKey())) {
+ // This activity runs in phone process, we must use intent to start
+ final Intent intent = new Intent(Settings.ACTION_APN_SETTINGS);
+ // This will setup the Home and Search affordance
+ intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_AS_SUBSETTING, true);
+ intent.putExtra(ApnSettings.SUB_ID, mSubId);
+ mContext.startActivity(intent);
+ return true;
+ }
+
+ return false;
+ }
+
+ public void init(int subId) {
+ mSubId = subId;
+ }
+
+ @VisibleForTesting
+ void setPreference(Preference preference) {
+ mPreference = preference;
+ }
+
+ private class DpcApnEnforcedObserver extends ContentObserver {
+ DpcApnEnforcedObserver(Handler handler) {
+ super(handler);
+ }
+
+ public void register(Context context) {
+ context.getContentResolver().registerContentObserver(ENFORCE_MANAGED_URI, false, this);
+
+ }
+
+ public void unRegister(Context context) {
+ context.getContentResolver().unregisterContentObserver(this);
+ }
+
+ @Override
+ public void onChange(boolean selfChange) {
+ updateState(mPreference);
+ }
+ }
+}
diff --git a/src/com/android/settings/network/telephony/CarrierPreferenceController.java b/src/com/android/settings/network/telephony/CarrierPreferenceController.java
new file mode 100644
index 0000000..8210c4b
--- /dev/null
+++ b/src/com/android/settings/network/telephony/CarrierPreferenceController.java
@@ -0,0 +1,71 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+import com.android.settings.core.BasePreferenceController;
+
+/**
+ * Preference controller for "Carrier Settings"
+ */
+public class CarrierPreferenceController extends BasePreferenceController {
+
+ @VisibleForTesting
+ CarrierConfigManager mCarrierConfigManager;
+ private int mSubId;
+
+ public CarrierPreferenceController(Context context, String key) {
+ super(context, key);
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ mCarrierConfigManager = new CarrierConfigManager(context);
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
+ public void init(int subId) {
+ mSubId = subId;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+
+ // Return available if it is in CDMA or GSM mode, and the flag is on
+ return carrierConfig != null
+ && carrierConfig.getBoolean(CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL)
+ && (MobileNetworkUtils.isCdmaOptions(mContext, mSubId)
+ || MobileNetworkUtils.isGsmOptions(mContext, mSubId))
+ ? AVAILABLE
+ : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (getPreferenceKey().equals(preference.getKey())) {
+ //TODO(b/117651939): start carrier settings activity
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/src/com/android/settings/network/telephony/CdmaOptions.java b/src/com/android/settings/network/telephony/CdmaOptions.java
deleted file mode 100644
index 2a2d8ba..0000000
--- a/src/com/android/settings/network/telephony/CdmaOptions.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.network.telephony;
-
-import android.content.Intent;
-import android.os.PersistableBundle;
-import android.os.SystemProperties;
-import android.provider.Settings;
-import android.telephony.CarrierConfigManager;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceFragmentCompat;
-import androidx.preference.PreferenceScreen;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.settings.R;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-import com.android.settingslib.RestrictedPreference;
-
-/**
- * List of Phone-specific settings screens.
- */
-public class CdmaOptions {
- private static final String LOG_TAG = "CdmaOptions";
-
- private CarrierConfigManager mCarrierConfigManager;
- private CdmaSystemSelectListPreference mButtonCdmaSystemSelect;
- private CdmaSubscriptionListPreference mButtonCdmaSubscription;
- private RestrictedPreference mButtonAPNExpand;
- private Preference mCategoryAPNExpand;
- private Preference mButtonCarrierSettings;
-
- private static final String BUTTON_CDMA_SYSTEM_SELECT_KEY = "cdma_system_select_key";
- private static final String BUTTON_CDMA_SUBSCRIPTION_KEY = "cdma_subscription_key";
- private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
- private static final String BUTTON_APN_EXPAND_KEY = "button_cdma_apn_key";
- private static final String CATEGORY_APN_EXPAND_KEY = "category_cdma_apn_key";
-
- private PreferenceFragmentCompat mPrefFragment;
- private PreferenceScreen mPrefScreen;
- private int mSubId;
-
- public CdmaOptions(PreferenceFragmentCompat prefFragment, PreferenceScreen prefScreen, int subId) {
- mPrefFragment = prefFragment;
- mPrefScreen = prefScreen;
- mPrefFragment.addPreferencesFromResource(R.xml.cdma_options);
- mCarrierConfigManager = new CarrierConfigManager(prefFragment.getContext());
-
- // Initialize preferences.
- mButtonCdmaSystemSelect = (CdmaSystemSelectListPreference) mPrefScreen
- .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY);
- mButtonCdmaSubscription = (CdmaSubscriptionListPreference) mPrefScreen
- .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY);
- mButtonCarrierSettings = mPrefScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
- mButtonAPNExpand = (RestrictedPreference) mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
- mCategoryAPNExpand = mPrefScreen.findPreference(CATEGORY_APN_EXPAND_KEY);
-
- updateSubscriptionId(subId);
- }
-
- protected void updateSubscriptionId(int subId) {
- mSubId = subId;
- int phoneType = TelephonyManager.from(mPrefFragment.getContext())
- .createForSubscriptionId(mSubId).getPhoneType();
-
- PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
- // Some CDMA carriers want the APN settings.
- boolean addAPNExpand = shouldAddApnExpandPreference(phoneType, carrierConfig);
- boolean addCdmaSubscription =
- deviceSupportsNvAndRuim();
- // Read platform settings for carrier settings
- boolean addCarrierSettings =
- carrierConfig.getBoolean(CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL);
-
- mPrefScreen.addPreference(mButtonCdmaSystemSelect);
- mButtonCdmaSystemSelect.setEnabled(true);
-
- // Making no assumptions of whether they are added or removed at this point.
- // Calling add or remove explicitly to make sure they are updated.
-
- if (addAPNExpand) {
- log("update: addAPNExpand");
- mButtonAPNExpand.setDisabledByAdmin(
- MobileNetworkUtils.isDpcApnEnforced(mButtonAPNExpand.getContext())
- ? RestrictedLockUtilsInternal.getDeviceOwner(
- mButtonAPNExpand.getContext())
- : null);
- mButtonAPNExpand.setOnPreferenceClickListener(
- new Preference.OnPreferenceClickListener() {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- MetricsLogger.action(mButtonAPNExpand.getContext(),
- MetricsEvent.ACTION_MOBILE_NETWORK_APN_SETTINGS);
- // We need to build the Intent by hand as the Preference Framework
- // does not allow to add an Intent with some extras into a Preference
- // XML file
- final Intent intent = new Intent(Settings.ACTION_APN_SETTINGS);
- // This will setup the Home and Search affordance
- intent.putExtra(":settings:show_fragment_as_subsetting", true);
- intent.putExtra("sub_id", mSubId);
- mPrefFragment.startActivity(intent);
- return true;
- }
- });
- mPrefScreen.addPreference(mCategoryAPNExpand);
- } else {
- mPrefScreen.removePreference(mCategoryAPNExpand);
- }
-
- if (addCdmaSubscription) {
- log("Both NV and Ruim supported, ENABLE subscription type selection");
- mPrefScreen.addPreference(mButtonCdmaSubscription);
- mButtonCdmaSubscription.setEnabled(true);
- } else {
- log("Both NV and Ruim NOT supported, REMOVE subscription type selection");
- mPrefScreen.removePreference(mButtonCdmaSubscription);
- }
-
- if (addCarrierSettings) {
- mPrefScreen.addPreference(mButtonCarrierSettings);
- } else {
- mPrefScreen.removePreference(mButtonCarrierSettings);
- }
- }
-
- /**
- * Return whether we should add the APN expandable preference based on the phone type and
- * carrier config
- */
- @VisibleForTesting
- public static boolean shouldAddApnExpandPreference(int phoneType, PersistableBundle config) {
- return phoneType == PhoneConstants.PHONE_TYPE_CDMA
- && config.getBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL);
- }
-
- private boolean deviceSupportsNvAndRuim() {
- // retrieve the list of subscription types supported by device.
- String subscriptionsSupported = SystemProperties.get("ril.subscription.types");
- boolean nvSupported = false;
- boolean ruimSupported = false;
-
- log("deviceSupportsnvAnRum: prop=" + subscriptionsSupported);
- if (!TextUtils.isEmpty(subscriptionsSupported)) {
- // Searches through the comma-separated list for a match for "NV"
- // and "RUIM" to update nvSupported and ruimSupported.
- for (String subscriptionType : subscriptionsSupported.split(",")) {
- subscriptionType = subscriptionType.trim();
- if (subscriptionType.equalsIgnoreCase("NV")) {
- nvSupported = true;
- }
- if (subscriptionType.equalsIgnoreCase("RUIM")) {
- ruimSupported = true;
- }
- }
- }
-
- log("deviceSupportsnvAnRum: nvSupported=" + nvSupported +
- " ruimSupported=" + ruimSupported);
- return (nvSupported && ruimSupported);
- }
-
- public boolean preferenceTreeClick(Preference preference) {
- if (preference.getKey().equals(BUTTON_CDMA_SYSTEM_SELECT_KEY)) {
- log("preferenceTreeClick: return BUTTON_CDMA_ROAMING_KEY true");
- return true;
- }
- if (preference.getKey().equals(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
- log("preferenceTreeClick: return CDMA_SUBSCRIPTION_KEY true");
- return true;
- }
- return false;
- }
-
- public void showDialog(Preference preference) {
- if (preference.getKey().equals(BUTTON_CDMA_SYSTEM_SELECT_KEY)) {
- mButtonCdmaSystemSelect.showDialog(null);
- } else if (preference.getKey().equals(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
- mButtonCdmaSubscription.showDialog(null);
- }
- }
-
- protected void log(String s) {
- android.util.Log.d(LOG_TAG, s);
- }
-}
diff --git a/src/com/android/settings/network/telephony/CdmaSubscriptionListPreference.java b/src/com/android/settings/network/telephony/CdmaSubscriptionListPreference.java
deleted file mode 100644
index 559ba2d..0000000
--- a/src/com/android/settings/network/telephony/CdmaSubscriptionListPreference.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.network.telephony;
-
-import android.content.Context;
-import android.os.Bundle;
-import androidx.preference.ListPreference;
-import android.provider.Settings;
-import android.telephony.TelephonyManager;
-import android.util.AttributeSet;
-import android.util.Log;
-
-import com.android.internal.telephony.Phone;
-import com.android.settingslib.utils.ThreadUtils;
-
-public class CdmaSubscriptionListPreference extends ListPreference {
-
- private static final String LOG_TAG = "CdmaSubListPref";
-
- // Used for CDMA subscription mode
- private static final int CDMA_SUBSCRIPTION_RUIM_SIM = 0;
- private static final int CDMA_SUBSCRIPTION_NV = 1;
-
- //preferredSubscriptionMode 0 - RUIM/SIM, preferred
- // 1 - NV
- static final int preferredSubscriptionMode = Phone.PREFERRED_CDMA_SUBSCRIPTION;
-
- private TelephonyManager mTelephonyManager;
-
- public CdmaSubscriptionListPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
-
- mTelephonyManager = TelephonyManager.from(context);
- setCurrentCdmaSubscriptionModeValue();
- }
-
- private void setCurrentCdmaSubscriptionModeValue() {
- int cdmaSubscriptionMode = Settings.Global.getInt(getContext().getContentResolver(),
- Settings.Global.CDMA_SUBSCRIPTION_MODE, preferredSubscriptionMode);
- setValue(Integer.toString(cdmaSubscriptionMode));
- }
-
- public CdmaSubscriptionListPreference(Context context) {
- this(context, null);
- }
-
- /**
- * Sets the subscription id associated with this preference.
- *
- * @param subId the subscription id.
- */
- public void setSubscriptionId(int subId) {
- mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(subId);
- }
-
- //TODO(b/114749736): move this logic to preference controller
- protected void showDialog(Bundle state) {
- setCurrentCdmaSubscriptionModeValue();
- }
-
- //TODO(b/114749736): move this logic to preference controller
- protected void onDialogClosed(boolean positiveResult) {
- if (!positiveResult) {
- //The button was dismissed - no need to set new value
- return;
- }
-
- int buttonCdmaSubscriptionMode = Integer.parseInt(getValue());
- Log.d(LOG_TAG, "Setting new value " + buttonCdmaSubscriptionMode);
- int statusCdmaSubscriptionMode;
- switch(buttonCdmaSubscriptionMode) {
- case CDMA_SUBSCRIPTION_NV:
- statusCdmaSubscriptionMode = Phone.CDMA_SUBSCRIPTION_NV;
- break;
- case CDMA_SUBSCRIPTION_RUIM_SIM:
- statusCdmaSubscriptionMode = Phone.CDMA_SUBSCRIPTION_RUIM_SIM;
- break;
- default:
- statusCdmaSubscriptionMode = Phone.PREFERRED_CDMA_SUBSCRIPTION;
- }
-
- // Set the CDMA subscription mode, when mode has been successfully changed, update the
- // mode to the global setting.
- ThreadUtils.postOnBackgroundThread(() -> {
- // The subscription mode selected by user.
- int cdmaSubscriptionMode = Integer.parseInt(getValue());
-
- boolean isSuccessed = mTelephonyManager.setCdmaSubscriptionMode(
- statusCdmaSubscriptionMode);
-
- // Update the global settings if successed.
- if (isSuccessed) {
- Settings.Global.putInt(getContext().getContentResolver(),
- Settings.Global.CDMA_SUBSCRIPTION_MODE,
- cdmaSubscriptionMode);
- } else {
- Log.e(LOG_TAG, "Setting Cdma subscription source failed");
- }
- });
- }
-}
diff --git a/src/com/android/settings/network/telephony/CdmaSystemSelectListPreference.java b/src/com/android/settings/network/telephony/CdmaSystemSelectListPreference.java
deleted file mode 100644
index 5727a9a..0000000
--- a/src/com/android/settings/network/telephony/CdmaSystemSelectListPreference.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.network.telephony;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.provider.Settings;
-import android.telephony.TelephonyManager;
-import android.util.AttributeSet;
-import android.util.Log;
-
-import com.android.settingslib.utils.ThreadUtils;
-
-import androidx.preference.ListPreference;
-
-public class CdmaSystemSelectListPreference extends ListPreference {
-
- private static final String LOG_TAG = "CdmaRoamingListPref";
- private static final boolean DBG = false;
-
- private TelephonyManager mTelephonyManager;
- private MyHandler mHandler = new MyHandler();
-
- public CdmaSystemSelectListPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
-
- mHandler = new MyHandler();
- mTelephonyManager = TelephonyManager.from(context);
- }
-
- public CdmaSystemSelectListPreference(Context context) {
- this(context, null);
- }
-
- /**
- * Sets the subscription id associated with this preference.
- *
- * @param subId the subscription id.
- */
- public void setSubscriptionId(int subId) {
- mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(subId);
- queryCdmaRoamingMode();
- }
-
- //TODO(b/114749736): Move this to preference controller
- protected void showDialog(Bundle state) {
- if (!mTelephonyManager.getEmergencyCallbackMode()) {
- // show Dialog
- }
- }
-
- //TODO(b/114749736): Move this to preference controller
- protected void onDialogClosed(boolean positiveResult) {
- if (positiveResult && (getValue() != null)) {
- int buttonCdmaRoamingMode = Integer.parseInt(getValue());
- int settingsCdmaRoamingMode = Settings.Global.getInt(
- getContext().getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- TelephonyManager.CDMA_ROAMING_MODE_HOME);
- if (buttonCdmaRoamingMode != settingsCdmaRoamingMode) {
- int cdmaRoamingMode = TelephonyManager.CDMA_ROAMING_MODE_ANY;
- if (buttonCdmaRoamingMode != TelephonyManager.CDMA_ROAMING_MODE_ANY) {
- cdmaRoamingMode = TelephonyManager.CDMA_ROAMING_MODE_HOME;
- }
- //Set the Settings.Secure network mode
- Settings.Global.putInt(
- getContext().getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- buttonCdmaRoamingMode);
- //Set the roaming preference mode
- setCdmaRoamingMode(cdmaRoamingMode);
- }
- } else {
- Log.d(LOG_TAG, String.format("onDialogClosed: positiveResult=%b value=%s -- do nothing",
- positiveResult, getValue()));
- }
- }
-
- private class MyHandler extends Handler {
-
- static final int MESSAGE_GET_ROAMING_PREFERENCE = 0;
- static final int MESSAGE_SET_ROAMING_PREFERENCE = 1;
-
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case MESSAGE_GET_ROAMING_PREFERENCE:
- handleQueryCdmaRoamingPreference(msg);
- break;
-
- case MESSAGE_SET_ROAMING_PREFERENCE:
- handleSetCdmaRoamingPreference(msg);
- break;
- }
- }
-
- private void handleQueryCdmaRoamingPreference(Message msg) {
- int cdmaRoamingMode = msg.arg1;
-
- if (cdmaRoamingMode != TelephonyManager.CDMA_ROAMING_MODE_RADIO_DEFAULT) {
- int settingsRoamingMode = Settings.Global.getInt(
- getContext().getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- TelephonyManager.CDMA_ROAMING_MODE_HOME);
-
- //check that statusCdmaRoamingMode is from an accepted value
- if (cdmaRoamingMode == TelephonyManager.CDMA_ROAMING_MODE_HOME
- || cdmaRoamingMode == TelephonyManager.CDMA_ROAMING_MODE_ANY) {
- //check changes in statusCdmaRoamingMode and updates settingsRoamingMode
- if (cdmaRoamingMode != settingsRoamingMode) {
- settingsRoamingMode = cdmaRoamingMode;
- //changes the Settings.Secure accordingly to statusCdmaRoamingMode
- Settings.Global.putInt(
- getContext().getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- settingsRoamingMode);
- }
- //changes the mButtonPreferredNetworkMode accordingly to modemNetworkMode
- setValue(Integer.toString(cdmaRoamingMode));
- }
- else {
- if(DBG) Log.i(LOG_TAG, "reset cdma roaming mode to default" );
- resetCdmaRoamingModeToDefault();
- }
- }
- }
-
- private void handleSetCdmaRoamingPreference(Message msg) {
- boolean isSuccessed = (boolean) msg.obj;
-
- if (isSuccessed && (getValue() != null)) {
- int cdmaRoamingMode = Integer.parseInt(getValue());
- Settings.Global.putInt(
- getContext().getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- cdmaRoamingMode );
- } else {
- queryCdmaRoamingMode();
- }
- }
-
- private void resetCdmaRoamingModeToDefault() {
- //set the mButtonCdmaRoam
- setValue(Integer.toString(TelephonyManager.CDMA_ROAMING_MODE_ANY));
- //set the Settings.System
- Settings.Global.putInt(
- getContext().getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- TelephonyManager.CDMA_ROAMING_MODE_ANY);
- //Set the Status
- setCdmaRoamingMode(TelephonyManager.CDMA_ROAMING_MODE_ANY);
- }
- }
-
- private void queryCdmaRoamingMode() {
- ThreadUtils.postOnBackgroundThread(() -> {
- Message msg = mHandler.obtainMessage(MyHandler.MESSAGE_GET_ROAMING_PREFERENCE);
- msg.arg1 = mTelephonyManager.getCdmaRoamingMode();
- msg.sendToTarget();
- });
- }
-
- private void setCdmaRoamingMode(int mode) {
- ThreadUtils.postOnBackgroundThread(() -> {
- Message msg = mHandler.obtainMessage(MyHandler.MESSAGE_SET_ROAMING_PREFERENCE);
- msg.obj = mTelephonyManager.setCdmaRoamingMode(mode);
- msg.sendToTarget();
- });
- }
-}
diff --git a/src/com/android/settings/network/telephony/DataServiceSetupPreferenceController.java b/src/com/android/settings/network/telephony/DataServiceSetupPreferenceController.java
new file mode 100644
index 0000000..129ceb1
--- /dev/null
+++ b/src/com/android/settings/network/telephony/DataServiceSetupPreferenceController.java
@@ -0,0 +1,91 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+import com.android.internal.telephony.PhoneConstants;
+import com.android.settings.core.BasePreferenceController;
+
+/**
+ * Preference controller for "Data service setup"
+ */
+public class DataServiceSetupPreferenceController extends BasePreferenceController {
+
+ private CarrierConfigManager mCarrierConfigManager;
+ private TelephonyManager mTelephonyManager;
+ private PersistableBundle mCarrierConfig;
+ private String mSetupUrl;
+ private int mSubId;
+
+ public DataServiceSetupPreferenceController(Context context, String key) {
+ super(context, key);
+ mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
+ mTelephonyManager = context.getSystemService(TelephonyManager.class);
+ mSetupUrl = Settings.Global.getString(mContext.getContentResolver(),
+ Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL);
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ final boolean isLteOnCdma = mTelephonyManager.getLteOnCdmaMode()
+ == PhoneConstants.LTE_ON_CDMA_TRUE;
+ return mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
+ && mCarrierConfig != null
+ && !mCarrierConfig.getBoolean(
+ CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL)
+ && isLteOnCdma && !TextUtils.isEmpty(mSetupUrl)
+ ? AVAILABLE
+ : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ public void init(int subId) {
+ mSubId = subId;
+ mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
+ mCarrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (getPreferenceKey().equals(preference.getKey())) {
+ if (!TextUtils.isEmpty(mSetupUrl)) {
+ String imsi = mTelephonyManager.getSubscriberId();
+ if (imsi == null) {
+ imsi = "";
+ }
+ final String url = TextUtils.expandTemplate(mSetupUrl, imsi).toString();
+ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
+ mContext.startActivity(intent);
+ }
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/src/com/android/settings/network/telephony/DataUsagePreference.java b/src/com/android/settings/network/telephony/DataUsagePreference.java
deleted file mode 100644
index 437ba63..0000000
--- a/src/com/android/settings/network/telephony/DataUsagePreference.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.network.telephony;
-
-import android.content.Context;
-import android.content.Intent;
-import android.net.NetworkTemplate;
-import androidx.preference.Preference;
-import android.provider.Settings;
-import android.telephony.TelephonyManager;
-import android.text.format.Formatter;
-import android.util.AttributeSet;
-
-import com.android.settings.R;
-import com.android.settingslib.net.DataUsageController;
-
-/**
- * The preference that shows mobile data usage summary and
- * leads to mobile data usage list page.
- */
-public class DataUsagePreference extends Preference {
-
- private NetworkTemplate mTemplate;
- private int mSubId;
-
- public DataUsagePreference(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- /**
- * After creating this preference, this functions needs to be called to
- * initialize which subID it connects to.
- */
- public void initialize(int subId) {
- final Context context = getContext();
- mSubId = subId;
- mTemplate = getNetworkTemplate(context, subId);
-
- DataUsageController controller = new DataUsageController(context);
-
- DataUsageController.DataUsageInfo usageInfo = controller.getDataUsageInfo(mTemplate);
- setSummary(context.getString(R.string.data_usage_template,
- Formatter.formatFileSize(context, usageInfo.usageLevel), usageInfo.period));
- setIntent(getIntent());
- }
-
- @Override
- public Intent getIntent() {
- Intent intent = new Intent(Settings.ACTION_MOBILE_DATA_USAGE);
-
- intent.putExtra(Settings.EXTRA_NETWORK_TEMPLATE, mTemplate);
- intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
-
- return intent;
- }
-
- private NetworkTemplate getNetworkTemplate(Context context, int subId) {
- TelephonyManager tm = (TelephonyManager) context
- .getSystemService(Context.TELEPHONY_SERVICE);
- NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(
- tm.getSubscriberId(subId));
- return NetworkTemplate.normalize(mobileAll,
- tm.getMergedSubscriberIds());
- }
-}
diff --git a/src/com/android/settings/network/telephony/DataUsagePreferenceController.java b/src/com/android/settings/network/telephony/DataUsagePreferenceController.java
new file mode 100644
index 0000000..b94f7e5
--- /dev/null
+++ b/src/com/android/settings/network/telephony/DataUsagePreferenceController.java
@@ -0,0 +1,101 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import android.content.Context;
+import android.content.Intent;
+import android.net.NetworkTemplate;
+import android.provider.Settings;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import android.text.format.Formatter;
+
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.net.DataUsageController;
+
+/**
+ * Preference controller for "Data usage"
+ */
+public class DataUsagePreferenceController extends BasePreferenceController {
+
+ private NetworkTemplate mTemplate;
+ private DataUsageController.DataUsageInfo mDataUsageInfo;
+ private Intent mIntent;
+ private int mSubId;
+
+ public DataUsagePreferenceController(Context context, String key) {
+ super(context, key);
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
+ ? AVAILABLE
+ : AVAILABLE_UNSEARCHABLE;
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+ mContext.startActivity(mIntent);
+ return true;
+ }
+
+ return false;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ final boolean enabled = mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ preference.setEnabled(enabled);
+
+ if (enabled) {
+ preference.setSummary(mContext.getString(R.string.data_usage_template,
+ Formatter.formatFileSize(mContext, mDataUsageInfo.usageLevel),
+ mDataUsageInfo.period));
+ }
+ }
+
+ public void init(int subId) {
+ mSubId = subId;
+
+ if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ mTemplate = getNetworkTemplate(mContext, subId);
+
+ final DataUsageController controller = new DataUsageController(mContext);
+ mDataUsageInfo = controller.getDataUsageInfo(mTemplate);
+
+ mIntent = new Intent(Settings.ACTION_MOBILE_DATA_USAGE);
+ mIntent.putExtra(Settings.EXTRA_NETWORK_TEMPLATE, mTemplate);
+ mIntent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
+ }
+ }
+
+ private NetworkTemplate getNetworkTemplate(Context context, int subId) {
+ final TelephonyManager tm = TelephonyManager.from(context).createForSubscriptionId(subId);
+ NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(tm.getSubscriberId());
+
+ return NetworkTemplate.normalize(mobileAll, tm.getMergedSubscriberIds());
+ }
+
+}
diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
new file mode 100644
index 0000000..b323f91
--- /dev/null
+++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
@@ -0,0 +1,333 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.ServiceState;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+/**
+ * Preference controller for "Enabled network mode"
+ */
+public class EnabledNetworkModePreferenceController extends BasePreferenceController implements
+ ListPreference.OnPreferenceChangeListener {
+
+ private CarrierConfigManager mCarrierConfigManager;
+ private TelephonyManager mTelephonyManager;
+ private PersistableBundle mPersistableBundle;
+ private int mSubId;
+ private boolean mIsGlobalCdma;
+ @VisibleForTesting
+ boolean mShow4GForLTE;
+
+ public EnabledNetworkModePreferenceController(Context context, String key) {
+ super(context, key);
+ mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ boolean visible;
+ if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ visible = false;
+ } else if (mPersistableBundle == null) {
+ visible = false;
+ } else if (mPersistableBundle.getBoolean(
+ CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL)) {
+ visible = false;
+ } else if (mPersistableBundle.getBoolean(
+ CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)
+ && !mTelephonyManager.getServiceState().getRoaming()
+ && mTelephonyManager.getServiceState().getDataRegState()
+ == ServiceState.STATE_IN_SERVICE) {
+ visible = false;
+ } else if (mPersistableBundle.getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL)) {
+ visible = false;
+ } else {
+ visible = true;
+ }
+
+ return visible ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ final ListPreference listPreference = (ListPreference) preference;
+ final int networkMode = getPreferredNetworkMode();
+ updatePreferenceEntries(listPreference);
+ updatePreferenceValueAndSummary(listPreference, networkMode);
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object object) {
+ final int settingsMode = Integer.parseInt((String) object);
+
+ if (mTelephonyManager.setPreferredNetworkType(mSubId, settingsMode)) {
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
+ settingsMode);
+ updatePreferenceValueAndSummary((ListPreference) preference, settingsMode);
+ return true;
+ }
+
+ return false;
+ }
+
+ public void init(int subId) {
+ mSubId = subId;
+ mPersistableBundle = mCarrierConfigManager.getConfigForSubId(mSubId);
+ mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
+
+ final boolean isLteOnCdma =
+ mTelephonyManager.getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE;
+ mIsGlobalCdma = isLteOnCdma
+ && mPersistableBundle.getBoolean(CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL);
+ mShow4GForLTE = mPersistableBundle != null
+ ? mPersistableBundle.getBoolean(
+ CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL)
+ : false;
+ }
+
+ private int getPreferredNetworkMode() {
+ return Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
+ Phone.PREFERRED_NT_MODE);
+ }
+
+ private void updatePreferenceEntries(ListPreference preference) {
+ final int phoneType = mTelephonyManager.getPhoneType();
+ final Resources resources = mContext.getResources();
+ final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+ if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+ final int lteForced = android.provider.Settings.Global.getInt(
+ mContext.getContentResolver(),
+ android.provider.Settings.Global.LTE_SERVICE_FORCED + mSubId,
+ 0);
+ final boolean isLteOnCdma = mTelephonyManager.getLteOnCdmaMode()
+ == PhoneConstants.LTE_ON_CDMA_TRUE;
+ final int settingsNetworkMode = android.provider.Settings.Global.getInt(
+ mContext.getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
+ Phone.PREFERRED_NT_MODE);
+ if (isLteOnCdma) {
+ if (lteForced == 0) {
+ preference.setEntries(
+ R.array.enabled_networks_cdma_choices);
+ preference.setEntryValues(
+ R.array.enabled_networks_cdma_values);
+ } else {
+ switch (settingsNetworkMode) {
+ case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
+ case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
+ case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
+ preference.setEntries(
+ R.array.enabled_networks_cdma_no_lte_choices);
+ preference.setEntryValues(
+ R.array.enabled_networks_cdma_no_lte_values);
+ break;
+ case TelephonyManager.NETWORK_MODE_GLOBAL:
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_ONLY:
+ preference.setEntries(
+ R.array.enabled_networks_cdma_only_lte_choices);
+ preference.setEntryValues(
+ R.array.enabled_networks_cdma_only_lte_values);
+ break;
+ default:
+ preference.setEntries(
+ R.array.enabled_networks_cdma_choices);
+ preference.setEntryValues(
+ R.array.enabled_networks_cdma_values);
+ break;
+ }
+ }
+ }
+ } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
+ if (MobileNetworkUtils.isTdscdmaSupported(mContext, mSubId)) {
+ preference.setEntries(
+ R.array.enabled_networks_tdscdma_choices);
+ preference.setEntryValues(
+ R.array.enabled_networks_tdscdma_values);
+ } else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)
+ && !carrierConfig.getBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL)) {
+ preference.setEntries(R.array.enabled_networks_except_gsm_lte_choices);
+ preference.setEntryValues(R.array.enabled_networks_except_gsm_lte_values);
+ } else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)) {
+ int select = mShow4GForLTE
+ ? R.array.enabled_networks_except_gsm_4g_choices
+ : R.array.enabled_networks_except_gsm_choices;
+ preference.setEntries(select);
+ preference.setEntryValues(
+ R.array.enabled_networks_except_gsm_values);
+ } else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL)) {
+ preference.setEntries(
+ R.array.enabled_networks_except_lte_choices);
+ preference.setEntryValues(
+ R.array.enabled_networks_except_lte_values);
+ } else if (mIsGlobalCdma) {
+ preference.setEntries(R.array.enabled_networks_cdma_choices);
+ preference.setEntryValues(R.array.enabled_networks_cdma_values);
+ } else {
+ int select = mShow4GForLTE ? R.array.enabled_networks_4g_choices
+ : R.array.enabled_networks_choices;
+ preference.setEntries(select);
+ preference.setEntryValues(R.array.enabled_networks_values);
+ }
+ }
+ //TODO(b/117881708): figure out what world mode is, then we can optimize code. Otherwise
+ // I prefer to keep this old code
+ if (MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
+ preference.setEntries(
+ R.array.preferred_network_mode_choices_world_mode);
+ preference.setEntryValues(
+ R.array.preferred_network_mode_values_world_mode);
+ }
+ }
+
+ private void updatePreferenceValueAndSummary(ListPreference preference, int networkMode) {
+ switch (networkMode) {
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
+ preference.setValue(
+ Integer.toString(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
+ preference.setSummary(R.string.network_3G);
+ break;
+ case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
+ case TelephonyManager.NETWORK_MODE_GSM_UMTS:
+ case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
+ if (!mIsGlobalCdma) {
+ preference.setValue(Integer.toString(TelephonyManager.NETWORK_MODE_WCDMA_PREF));
+ preference.setSummary(R.string.network_3G);
+ } else {
+ preference.setValue(Integer.toString(TelephonyManager
+ .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+ preference.setSummary(R.string.network_global);
+ }
+ break;
+ case TelephonyManager.NETWORK_MODE_GSM_ONLY:
+ if (!mIsGlobalCdma) {
+ preference.setValue(
+ Integer.toString(TelephonyManager.NETWORK_MODE_GSM_ONLY));
+ preference.setSummary(R.string.network_2G);
+ } else {
+ preference.setValue(
+ Integer.toString(TelephonyManager
+ .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+ preference.setSummary(R.string.network_global);
+ }
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
+ if (MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
+ preference.setSummary(
+ R.string.preferred_network_mode_lte_gsm_umts_summary);
+ break;
+ }
+ case TelephonyManager.NETWORK_MODE_LTE_ONLY:
+ case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
+ if (!mIsGlobalCdma) {
+ preference.setValue(
+ Integer.toString(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA));
+ preference.setSummary(
+ mShow4GForLTE ? R.string.network_4G : R.string.network_lte);
+ } else {
+ preference.setValue(
+ Integer.toString(TelephonyManager
+ .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+ preference.setSummary(R.string.network_global);
+ }
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
+ if (MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
+ preference.setSummary(
+ R.string.preferred_network_mode_lte_cdma_summary);
+ } else {
+ preference.setValue(
+ Integer.toString(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO));
+ preference.setSummary(R.string.network_lte);
+ }
+ break;
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+ preference.setValue(Integer.toString(TelephonyManager
+ .NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
+ preference.setSummary(R.string.network_3G);
+ break;
+ case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
+ case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
+ case TelephonyManager.NETWORK_MODE_GLOBAL:
+ preference.setValue(
+ Integer.toString(TelephonyManager.NETWORK_MODE_CDMA_EVDO));
+ preference.setSummary(R.string.network_3G);
+ break;
+ case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
+ preference.setValue(
+ Integer.toString(TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO));
+ preference.setSummary(R.string.network_1x);
+ break;
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
+ preference.setValue(
+ Integer.toString(TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY));
+ preference.setSummary(R.string.network_3G);
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
+ if (MobileNetworkUtils.isTdscdmaSupported(mContext, mSubId)) {
+ preference.setValue(
+ Integer.toString(TelephonyManager
+ .NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
+ preference.setSummary(R.string.network_lte);
+ } else {
+ preference.setValue(
+ Integer.toString(TelephonyManager
+ .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+ if (mTelephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA
+ || mIsGlobalCdma
+ || MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
+ preference.setSummary(R.string.network_global);
+ } else {
+ preference.setSummary(mShow4GForLTE
+ ? R.string.network_4G : R.string.network_lte);
+ }
+ }
+ break;
+ default:
+ preference.setSummary(
+ mContext.getString(R.string.mobile_network_mode_error, networkMode));
+ }
+ }
+}
diff --git a/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceController.java b/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceController.java
new file mode 100644
index 0000000..cc8e78d
--- /dev/null
+++ b/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceController.java
@@ -0,0 +1,176 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import android.content.Context;
+import android.os.Looper;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+import android.telephony.PhoneStateListener;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+
+import com.android.ims.ImsManager;
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Preference controller for "Enhanced 4G LTE"
+ */
+public class Enhanced4gLtePreferenceController extends TogglePreferenceController implements
+ LifecycleObserver, OnStart, OnStop {
+
+ private Preference mPreference;
+ private TelephonyManager mTelephonyManager;
+ private CarrierConfigManager mCarrierConfigManager;
+ private PersistableBundle mCarrierConfig;
+ @VisibleForTesting
+ ImsManager mImsManager;
+ private PhoneCallStateListener mPhoneStateListener;
+ private final List<On4gLteUpdateListener> m4gLteListeners;
+ private int mSubId;
+
+ public Enhanced4gLtePreferenceController(Context context, String key) {
+ super(context, key);
+ mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
+ m4gLteListeners = new ArrayList<>();
+ mPhoneStateListener = new PhoneCallStateListener(Looper.getMainLooper());
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ final boolean isVisible = mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
+ && mImsManager != null && mCarrierConfig != null
+ && mImsManager.isVolteEnabledByPlatform()
+ && mImsManager.isVolteProvisionedOnDevice()
+ && MobileNetworkUtils.isImsServiceStateReady(mImsManager)
+ && !mCarrierConfig.getBoolean(CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL);
+ return isVisible
+ ? (is4gLtePrefEnabled() ? AVAILABLE : AVAILABLE_UNSEARCHABLE)
+ : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ }
+
+ @Override
+ public void onStart() {
+ mPhoneStateListener.register(mSubId);
+ }
+
+ @Override
+ public void onStop() {
+ mPhoneStateListener.unregister();
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ final SwitchPreference switchPreference = (SwitchPreference) preference;
+ final boolean useVariant4glteTitle = mCarrierConfig.getInt(
+ CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT) != 0;
+ int enhanced4glteModeTitleId = useVariant4glteTitle ?
+ R.string.enhanced_4g_lte_mode_title_variant :
+ R.string.enhanced_4g_lte_mode_title;
+ switchPreference.setTitle(enhanced4glteModeTitleId);
+ switchPreference.setEnabled(is4gLtePrefEnabled());
+ switchPreference.setChecked(mImsManager.isEnhanced4gLteModeSettingEnabledByUser()
+ && mImsManager.isNonTtyOrTtyOnVolteEnabled());
+ }
+
+ @Override
+ public boolean setChecked(boolean isChecked) {
+ mImsManager.setEnhanced4gLteModeSetting(isChecked);
+ for (final On4gLteUpdateListener lsn : m4gLteListeners) {
+ lsn.on4gLteUpdated();
+ }
+ return true;
+ }
+
+ @Override
+ public boolean isChecked() {
+ return mImsManager.isEnhanced4gLteModeSettingEnabledByUser();
+ }
+
+ public Enhanced4gLtePreferenceController init(int subId) {
+ mSubId = subId;
+ mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
+ mCarrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+ if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId));
+ }
+
+ return this;
+ }
+
+ public Enhanced4gLtePreferenceController addListener(On4gLteUpdateListener lsn) {
+ m4gLteListeners.add(lsn);
+ return this;
+ }
+
+ private boolean is4gLtePrefEnabled() {
+ return mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
+ && mTelephonyManager.getCallState(mSubId) == TelephonyManager.CALL_STATE_IDLE
+ && mImsManager != null
+ && mImsManager.isNonTtyOrTtyOnVolteEnabled()
+ && mCarrierConfig.getBoolean(
+ CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL);
+ }
+
+ private class PhoneCallStateListener extends PhoneStateListener {
+
+ public PhoneCallStateListener(Looper looper) {
+ super(looper);
+ }
+
+ @Override
+ public void onCallStateChanged(int state, String incomingNumber) {
+ updateState(mPreference);
+ }
+
+ public void register(int subId) {
+ mSubId = subId;
+ mTelephonyManager.listen(this, PhoneStateListener.LISTEN_CALL_STATE);
+ }
+
+ public void unregister() {
+ mTelephonyManager.listen(this, PhoneStateListener.LISTEN_NONE);
+ }
+ }
+
+ /**
+ * Update other preferences when 4gLte state is changed
+ */
+ public interface On4gLteUpdateListener {
+ void on4gLteUpdated();
+ }
+}
diff --git a/src/com/android/settings/network/telephony/EuiccPreferenceController.java b/src/com/android/settings/network/telephony/EuiccPreferenceController.java
new file mode 100644
index 0000000..8d03908
--- /dev/null
+++ b/src/com/android/settings/network/telephony/EuiccPreferenceController.java
@@ -0,0 +1,74 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.telephony.euicc.EuiccManager;
+import android.text.TextUtils;
+
+import androidx.preference.Preference;
+
+import com.android.settings.core.BasePreferenceController;
+
+/**
+ * Preference controller for "Euicc preference"
+ */
+public class EuiccPreferenceController extends BasePreferenceController {
+
+ private TelephonyManager mTelephonyManager;
+ private int mSubId;
+
+ public EuiccPreferenceController(Context context, String key) {
+ super(context, key);
+ mTelephonyManager = context.getSystemService(TelephonyManager.class);
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return MobileNetworkUtils.showEuiccSettings(mContext)
+ ? AVAILABLE
+ : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ return mTelephonyManager.getSimOperatorName();
+ }
+
+ public void init(int subId) {
+ mSubId = subId;
+ mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+ Intent intent = new Intent(EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS);
+ mContext.startActivity(intent);
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/src/com/android/settings/network/telephony/GsmUmtsOptions.java b/src/com/android/settings/network/telephony/GsmUmtsOptions.java
deleted file mode 100644
index 9b3df6b..0000000
--- a/src/com/android/settings/network/telephony/GsmUmtsOptions.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.network.telephony;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.PersistableBundle;
-import android.provider.Settings;
-import android.telephony.CarrierConfigManager;
-import android.telephony.TelephonyManager;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceFragmentCompat;
-import androidx.preference.PreferenceScreen;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.settings.R;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-import com.android.settingslib.RestrictedPreference;
-
-/**
- * List of Network-specific settings screens.
- */
-public class GsmUmtsOptions {
- private static final String LOG_TAG = "GsmUmtsOptions";
-
- private CarrierConfigManager mCarrierConfigManager;
- private RestrictedPreference mButtonAPNExpand;
- private Preference mCategoryAPNExpand;
- Preference mCarrierSettingPref;
-
- private NetworkOperators mNetworkOperator;
-
- private static final String BUTTON_APN_EXPAND_KEY = "button_gsm_apn_key";
- private static final String CATEGORY_APN_EXPAND_KEY = "category_gsm_apn_key";
- private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
-
- public static final String EXTRA_SUB_ID = "sub_id";
- private PreferenceFragmentCompat mPrefFragment;
- private PreferenceScreen mPrefScreen;
-
- public GsmUmtsOptions(PreferenceFragmentCompat prefFragment, PreferenceScreen prefScreen,
- final int subId) {
- final Context context = prefFragment.getContext();
- mPrefFragment = prefFragment;
- mPrefScreen = prefScreen;
- mCarrierConfigManager = new CarrierConfigManager(context);
- mPrefFragment.addPreferencesFromResource(R.xml.gsm_umts_options);
- mButtonAPNExpand = (RestrictedPreference) mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
- mCategoryAPNExpand = mPrefScreen.findPreference(CATEGORY_APN_EXPAND_KEY);
- mNetworkOperator = (NetworkOperators) mPrefScreen
- .findPreference(NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
- mCarrierSettingPref = mPrefScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
-
- mNetworkOperator.initialize();
-
- update(subId);
- }
-
- // Unlike mPrefFragment or mPrefScreen, subId may change during lifecycle of GsmUmtsOptions.
- // When that happens, we update GsmUmtsOptions with new parameters.
- protected void update(final int subId) {
- boolean addAPNExpand = true;
- boolean addNetworkOperatorsCategory = true;
- boolean addCarrierSettings = true;
- final TelephonyManager telephonyManager = TelephonyManager.from(mPrefFragment.getContext())
- .createForSubscriptionId(subId);
- //TODO(b/115429509): Get phone from subId
- Phone phone = null;
- if (phone == null) return;
- if (telephonyManager.getPhoneType() != PhoneConstants.PHONE_TYPE_GSM) {
- log("Not a GSM phone");
- addAPNExpand = false;
- mNetworkOperator.setEnabled(false);
- } else {
- log("Not a CDMA phone");
- PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
-
- // Determine which options to display. For GSM these are defaulted to true in
- // CarrierConfigManager, but they maybe overriden by DefaultCarrierConfigService or a
- // carrier app.
- // Note: these settings used to be controlled with overlays in
- // Telephony/res/values/config.xml
- if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_APN_EXPAND_BOOL)
- && mCategoryAPNExpand != null) {
- addAPNExpand = false;
- }
- if (!carrierConfig.getBoolean(
- CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL)) {
- addNetworkOperatorsCategory = false;
- }
-
- if (carrierConfig.getBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL)) {
- if (phone.isCspPlmnEnabled()) {
- log("[CSP] Enabling Operator Selection menu.");
- mNetworkOperator.setEnabled(true);
- } else {
- log("[CSP] Disabling Operator Selection menu.");
- addNetworkOperatorsCategory = false;
- }
- }
-
- // Read platform settings for carrier settings
- addCarrierSettings = carrierConfig.getBoolean(
- CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL);
- }
-
- // Making no assumptions of whether they are added or removed at this point.
- // Calling add or remove explicitly to make sure they are updated.
-
- if (addAPNExpand) {
- log("update: addAPNExpand");
- mButtonAPNExpand.setDisabledByAdmin(
- MobileNetworkUtils.isDpcApnEnforced(mButtonAPNExpand.getContext())
- ? RestrictedLockUtilsInternal.getDeviceOwner(
- mButtonAPNExpand.getContext())
- : null);
- mButtonAPNExpand.setOnPreferenceClickListener(
- new Preference.OnPreferenceClickListener() {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- MetricsLogger.action(mButtonAPNExpand.getContext(),
- MetricsEvent.ACTION_MOBILE_NETWORK_APN_SETTINGS);
- // We need to build the Intent by hand as the Preference Framework
- // does not allow to add an Intent with some extras into a Preference
- // XML file
- final Intent intent = new Intent(Settings.ACTION_APN_SETTINGS);
- // This will setup the Home and Search affordance
- intent.putExtra(":settings:show_fragment_as_subsetting", true);
- intent.putExtra(EXTRA_SUB_ID, subId);
- mPrefFragment.startActivity(intent);
- return true;
- }
- });
- mPrefScreen.addPreference(mCategoryAPNExpand);
- } else {
- mPrefScreen.removePreference(mCategoryAPNExpand);
- }
-
- if (addNetworkOperatorsCategory) {
- mPrefScreen.addPreference(mNetworkOperator);
- mNetworkOperator.update(subId);
- } else {
- mPrefScreen.removePreference(mNetworkOperator);
- }
-
- if (addCarrierSettings) {
- mPrefScreen.addPreference(mCarrierSettingPref);
- } else {
- mPrefScreen.removePreference(mCarrierSettingPref);
- }
-
- }
-
- protected boolean preferenceTreeClick(Preference preference) {
- return mNetworkOperator.preferenceTreeClick(preference);
- }
-
- protected void log(String s) {
- android.util.Log.d(LOG_TAG, s);
- }
-}
-
diff --git a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
index 6958a11..b1124f8 100644
--- a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
+++ b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
@@ -59,8 +59,10 @@
public MobileDataPreferenceController(Context context, String key) {
super(context, key);
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
mDataContentObserver = new DataContentObserver(new Handler(Looper.getMainLooper()));
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
}
@Override
diff --git a/src/com/android/settings/network/telephony/MobileNetworkActivity.java b/src/com/android/settings/network/telephony/MobileNetworkActivity.java
new file mode 100644
index 0000000..9f3dfb2
--- /dev/null
+++ b/src/com/android/settings/network/telephony/MobileNetworkActivity.java
@@ -0,0 +1,220 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import android.app.ActionBar;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Bundle;
+import android.provider.Settings;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.util.Log;
+import android.view.Menu;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+
+import com.android.internal.telephony.TelephonyIntents;
+import com.android.internal.util.CollectionUtils;
+import com.android.settings.R;
+import com.android.settings.core.SettingsBaseActivity;
+
+import com.google.android.material.bottomnavigation.BottomNavigationView;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Objects;
+
+public class MobileNetworkActivity extends SettingsBaseActivity {
+
+ private static final String TAG = "MobileSettingsActivity";
+ @VisibleForTesting
+ static final String MOBILE_SETTINGS_TAG = "mobile_settings:";
+ @VisibleForTesting
+ static final int SUB_ID_NULL = Integer.MIN_VALUE;
+
+ @VisibleForTesting
+ SubscriptionManager mSubscriptionManager;
+ @VisibleForTesting
+ int mCurSubscriptionId;
+ @VisibleForTesting
+ List<SubscriptionInfo> mSubscriptionInfos = new ArrayList<>();
+ private PhoneChangeReceiver mPhoneChangeReceiver;
+
+ private final SubscriptionManager.OnSubscriptionsChangedListener
+ mOnSubscriptionsChangeListener
+ = new SubscriptionManager.OnSubscriptionsChangedListener() {
+ @Override
+ public void onSubscriptionsChanged() {
+ if (!Objects.equals(mSubscriptionInfos,
+ mSubscriptionManager.getActiveSubscriptionInfoList())) {
+ updateSubscriptions(null);
+ }
+ }
+ };
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setContentView(R.layout.mobile_network_settings_container);
+ setActionBar(findViewById(R.id.mobile_action_bar));
+ mPhoneChangeReceiver = new PhoneChangeReceiver();
+ mSubscriptionManager = getSystemService(SubscriptionManager.class);
+ mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList();
+ mCurSubscriptionId = savedInstanceState != null
+ ? savedInstanceState.getInt(Settings.EXTRA_SUB_ID, SUB_ID_NULL)
+ : SUB_ID_NULL;
+
+ final ActionBar actionBar = getActionBar();
+ if (actionBar != null) {
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ }
+
+ updateSubscriptions(savedInstanceState);
+ }
+
+ @Override
+ protected void onStart() {
+ super.onStart();
+ final IntentFilter intentFilter = new IntentFilter(
+ TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
+ registerReceiver(mPhoneChangeReceiver, intentFilter);
+ mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
+ }
+
+ @Override
+ protected void onStop() {
+ super.onStop();
+ unregisterReceiver(mPhoneChangeReceiver);
+ mSubscriptionManager.removeOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
+ }
+
+ @Override
+ protected void onSaveInstanceState(@NonNull Bundle outState) {
+ super.onSaveInstanceState(outState);
+ saveInstanceState(outState);
+ }
+
+ @VisibleForTesting
+ void saveInstanceState(@NonNull Bundle outState) {
+ outState.putInt(Settings.EXTRA_SUB_ID, mCurSubscriptionId);
+ }
+
+ @VisibleForTesting
+ void updateSubscriptions(Bundle savedInstanceState) {
+ mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList();
+
+ updateBottomNavigationView();
+
+ if (savedInstanceState == null) {
+ switchFragment(new MobileNetworkSettings(), getSubscriptionId());
+ }
+ }
+
+ /**
+ * Get the current subId to display. First check whether intent has {@link
+ * Settings#EXTRA_SUB_ID}. If not, just display first one in list
+ * since it is already sorted by sim slot.
+ */
+ @VisibleForTesting
+ int getSubscriptionId() {
+ final Intent intent = getIntent();
+ if (intent != null) {
+ final int subId = intent.getIntExtra(Settings.EXTRA_SUB_ID, SUB_ID_NULL);
+ if (subId != SUB_ID_NULL && mSubscriptionManager.isActiveSubscriptionId(subId)) {
+ return subId;
+ }
+ }
+
+ if (CollectionUtils.isEmpty(mSubscriptionInfos)) {
+ return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
+ return mSubscriptionInfos.get(0).getSubscriptionId();
+ }
+
+ @VisibleForTesting
+ void updateBottomNavigationView() {
+ final BottomNavigationView navigation = findViewById(R.id.bottom_nav);
+
+ if (CollectionUtils.size(mSubscriptionInfos) <= 1) {
+ navigation.setVisibility(View.GONE);
+ } else {
+ final Menu menu = navigation.getMenu();
+ menu.clear();
+ for (int i = 0, size = mSubscriptionInfos.size(); i < size; i++) {
+ final SubscriptionInfo subscriptionInfo = mSubscriptionInfos.get(i);
+ menu.add(0, subscriptionInfo.getSubscriptionId(), i,
+ subscriptionInfo.getDisplayName())
+ .setIcon(R.drawable.ic_settings_sim);
+ }
+ navigation.setOnNavigationItemSelectedListener(item -> {
+ switchFragment(new MobileNetworkSettings(), item.getItemId());
+ return true;
+ });
+ }
+ }
+
+ @VisibleForTesting
+ void switchFragment(Fragment fragment, int subscriptionId) {
+ switchFragment(fragment, subscriptionId, false /* forceUpdate */);
+ }
+
+ @VisibleForTesting
+ void switchFragment(Fragment fragment, int subscriptionId, boolean forceUpdate) {
+ if (mCurSubscriptionId != SUB_ID_NULL && subscriptionId == mCurSubscriptionId
+ && !forceUpdate) {
+ return;
+ }
+ final FragmentManager fragmentManager = getSupportFragmentManager();
+ final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
+ final Bundle bundle = new Bundle();
+ bundle.putInt(Settings.EXTRA_SUB_ID, subscriptionId);
+
+ fragment.setArguments(bundle);
+ fragmentTransaction.replace(R.id.main_content, fragment,
+ buildFragmentTag(subscriptionId));
+ fragmentTransaction.commit();
+ mCurSubscriptionId = subscriptionId;
+ }
+
+ private String buildFragmentTag(int subscriptionId) {
+ return MOBILE_SETTINGS_TAG + subscriptionId;
+ }
+
+ private class PhoneChangeReceiver extends BroadcastReceiver {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ // When the radio changes (ex: CDMA->GSM), refresh the fragment.
+ // This is very rare to happen.
+ if (mCurSubscriptionId != SUB_ID_NULL) {
+ switchFragment(new MobileNetworkSettings(), mCurSubscriptionId,
+ true /* forceUpdate */);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/network/telephony/MobileNetworkFragment.java b/src/com/android/settings/network/telephony/MobileNetworkFragment.java
deleted file mode 100644
index 106d940..0000000
--- a/src/com/android/settings/network/telephony/MobileNetworkFragment.java
+++ /dev/null
@@ -1,1902 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.network.telephony;
-
-import static android.provider.Telephony.Carriers.ENFORCE_MANAGED_URI;
-
-import android.app.ActionBar;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.database.ContentObserver;
-import android.net.Uri;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.os.PersistableBundle;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.provider.SearchIndexableResource;
-import android.provider.Settings;
-import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
-import android.telephony.CarrierConfigManager;
-import android.telephony.PhoneStateListener;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.telephony.euicc.EuiccManager;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.MenuItem;
-
-import com.android.ims.ImsConfig;
-import com.android.ims.ImsManager;
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.internal.telephony.TelephonyIntents;
-import com.android.settings.R;
-import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.search.Indexable;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-import com.android.settingslib.RestrictedSwitchPreference;
-import com.android.settingslib.search.SearchIndexable;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import androidx.fragment.app.FragmentActivity;
-import androidx.preference.ListPreference;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceCategory;
-import androidx.preference.PreferenceFragmentCompat;
-import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
-
-@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class MobileNetworkFragment extends DashboardFragment implements
- Preference.OnPreferenceChangeListener, RoamingDialogFragment.RoamingDialogListener {
-
- // debug data
- private static final String LOG_TAG = "NetworkSettings";
- private static final boolean DBG = true;
- public static final int REQUEST_CODE_EXIT_ECM = 17;
-
- // Number of active Subscriptions to show tabs
- private static final int TAB_THRESHOLD = 2;
-
- // Number of last phone number digits shown in Euicc Setting tab
- private static final int NUM_LAST_PHONE_DIGITS = 4;
-
- // fragment tag for roaming data dialog
- private static final String ROAMING_TAG = "RoamingDialogFragment";
-
- //String keys for preference lookup
- private static final String BUTTON_PREFERED_NETWORK_MODE = "preferred_network_mode_key";
- private static final String BUTTON_ROAMING_KEY = "button_roaming_key";
- private static final String BUTTON_CDMA_LTE_DATA_SERVICE_KEY = "cdma_lte_data_service_key";
- private static final String BUTTON_ENABLED_NETWORKS_KEY = "enabled_networks_key";
- private static final String BUTTON_4G_LTE_KEY = "enhanced_4g_lte";
- private static final String BUTTON_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings";
- private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
- private static final String BUTTON_CDMA_SYSTEM_SELECT_KEY = "cdma_system_select_key";
- private static final String BUTTON_CDMA_SUBSCRIPTION_KEY = "cdma_subscription_key";
- private static final String BUTTON_CARRIER_SETTINGS_EUICC_KEY =
- "carrier_settings_euicc_key";
- private static final String BUTTON_WIFI_CALLING_KEY = "wifi_calling_key";
- private static final String BUTTON_VIDEO_CALLING_KEY = "video_calling_key";
- private static final String BUTTON_MOBILE_DATA_ENABLE_KEY = "mobile_data_enable";
- private static final String BUTTON_DATA_USAGE_KEY = "data_usage_summary";
- private static final String BUTTON_ADVANCED_OPTIONS_KEY = "advanced_options";
- private static final String CATEGORY_CALLING_KEY = "calling";
- private static final String CATEGORY_GSM_APN_EXPAND_KEY = "category_gsm_apn_key";
- private static final String CATEGORY_CDMA_APN_EXPAND_KEY = "category_cdma_apn_key";
- private static final String BUTTON_GSM_APN_EXPAND_KEY = "button_gsm_apn_key";
- private static final String BUTTON_CDMA_APN_EXPAND_KEY = "button_cdma_apn_key";
-
- private static final String EXTRA_EXIT_ECM_RESULT = "exit_ecm_result";
- private static final String LEGACY_ACTION_CONFIGURE_PHONE_ACCOUNT =
- "android.telecom.action.CONNECTION_SERVICE_CONFIGURE";
-
- private final BroadcastReceiver
- mPhoneChangeReceiver = new PhoneChangeReceiver();
- private final ContentObserver
- mDpcEnforcedContentObserver = new DpcApnEnforcedObserver();
-
- static final int preferredNetworkMode = Phone.PREFERRED_NT_MODE;
-
- //Information about logical "up" Activity
- private static final String UP_ACTIVITY_PACKAGE = "com.android.settings";
- private static final String UP_ACTIVITY_CLASS =
- "com.android.settings.Settings$WirelessSettingsActivity";
-
- //Information that needs to save into Bundle.
- private static final String EXPAND_ADVANCED_FIELDS = "expand_advanced_fields";
- //Intent extra to indicate expand all fields.
- private static final String EXPAND_EXTRA = "expandable";
-
- private enum TabState {
- NO_TABS, UPDATE, DO_NOTHING
- }
-
- private SubscriptionManager mSubscriptionManager;
- private TelephonyManager mTelephonyManager;
- private CarrierConfigManager mCarrierConfigManager;
- private int mSubId;
-
- //UI objects
- private ListPreference mButtonPreferredNetworkMode;
- private ListPreference mButtonEnabledNetworks;
- private RestrictedSwitchPreference mButtonDataRoam;
- private SwitchPreference mButton4glte;
- private Preference mLteDataServicePref;
- private Preference mEuiccSettingsPref;
- private PreferenceCategory mCallingCategory;
- private Preference mWiFiCallingPref;
- private SwitchPreference mVideoCallingPref;
- private NetworkSelectListPreference mButtonNetworkSelect;
- private DataUsagePreference mDataUsagePref;
-
- private static final String iface = "rmnet0"; //TODO: this will go away
- private List<SubscriptionInfo> mActiveSubInfos;
-
- private UserManager mUm;
- private ImsManager mImsMgr;
- private MyHandler mHandler;
- private boolean mOkClicked;
-
- //GsmUmts options and Cdma options
- GsmUmtsOptions mGsmUmtsOptions;
- CdmaOptions mCdmaOptions;
-
- private Preference mClickedPreference;
- private boolean mShow4GForLTE;
- private boolean mIsGlobalCdma;
- private boolean mOnlyAutoSelectInHomeNW;
- private boolean mUnavailable;
-
- private class PhoneCallStateListener extends PhoneStateListener {
- /*
- * Enable/disable the 'Enhanced 4G LTE Mode' when in/out of a call
- * and depending on TTY mode and TTY support over VoLTE.
- * @see android.telephony.PhoneStateListener#onCallStateChanged(int,
- * java.lang.String)
- */
- @Override
- public void onCallStateChanged(int state, String incomingNumber) {
- if (DBG) log("PhoneStateListener.onCallStateChanged: state=" + state);
-
- updateEnhanced4gLteState();
- updateWiFiCallState();
- updateVideoCallState();
- updatePreferredNetworkType();
- }
-
- /**
- * Listen to different subId if it's changed.
- */
- protected void updateSubscriptionId(Integer subId) {
- if (subId.equals(PhoneCallStateListener.this.mSubId)) {
- return;
- }
-
- PhoneCallStateListener.this.mSubId = subId;
-
- mTelephonyManager.listen(this, PhoneStateListener.LISTEN_NONE);
-
- // Now, listen to new subId if it's valid.
- if (SubscriptionManager.isValidSubscriptionId(subId)) {
- mTelephonyManager.listen(this, PhoneStateListener.LISTEN_CALL_STATE);
- }
- }
- }
-
- private final PhoneCallStateListener
- mPhoneStateListener = new PhoneCallStateListener();
-
- @Override
- public int getMetricsCategory() {
- //TODO(b/114749736): add metrics id for it
- return 0;
- }
-
- @Override
- public void onPositiveButtonClick(androidx.fragment.app.DialogFragment dialog) {
- mTelephonyManager.setDataRoamingEnabled(true);
- mButtonDataRoam.setChecked(true);
- MetricsLogger.action(getContext(),
- getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam),
- true);
- }
-
- /**
- * Invoked on each preference click in this hierarchy, overrides
- * PreferenceActivity's implementation. Used to make sure we track the
- * preference click events.
- */
- @Override
- public boolean onPreferenceTreeClick(Preference preference) {
- if (super.onPreferenceTreeClick(preference)) {
- return true;
- }
- sendMetricsEventPreferenceClicked(getPreferenceScreen(), preference);
-
- /** TODO: Refactor and get rid of the if's using subclasses */
- if (preference.getKey().equals(BUTTON_4G_LTE_KEY)) {
- return true;
- } else if (mGsmUmtsOptions != null &&
- mGsmUmtsOptions.preferenceTreeClick(preference) == true) {
- return true;
- } else if (mCdmaOptions != null &&
- mCdmaOptions.preferenceTreeClick(preference) == true) {
- if (mTelephonyManager.getEmergencyCallbackMode()) {
-
- mClickedPreference = preference;
-
- // In ECM mode launch ECM app dialog
- startActivityForResult(
- new Intent(TelephonyIntents.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS, null),
- REQUEST_CODE_EXIT_ECM);
- }
- return true;
- } else if (preference == mButtonPreferredNetworkMode) {
- //displays the value taken from the Settings.System
- int settingsNetworkMode = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
- preferredNetworkMode);
- mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
- return true;
- } else if (preference == mLteDataServicePref) {
- String tmpl = android.provider.Settings.Global.getString(
- getContext().getContentResolver(),
- android.provider.Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL);
- if (!TextUtils.isEmpty(tmpl)) {
- String imsi = mTelephonyManager.getSubscriberId();
- if (imsi == null) {
- imsi = "";
- }
- final String url = TextUtils.isEmpty(tmpl) ? null
- : TextUtils.expandTemplate(tmpl, imsi).toString();
- Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
- startActivity(intent);
- } else {
- android.util.Log.e(LOG_TAG, "Missing SETUP_PREPAID_DATA_SERVICE_URL");
- }
- return true;
- } else if (preference == mButtonEnabledNetworks) {
- int settingsNetworkMode = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
- preferredNetworkMode);
- mButtonEnabledNetworks.setValue(Integer.toString(settingsNetworkMode));
- return true;
- } else if (preference == mButtonDataRoam) {
- // Do not disable the preference screen if the user clicks Data roaming.
- return true;
- } else if (preference == mEuiccSettingsPref) {
- Intent intent = new Intent(EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS);
- startActivity(intent);
- return true;
- } else if (preference == mWiFiCallingPref || preference == mVideoCallingPref
- || preference == mDataUsagePref) {
- return false;
- } else {
- // if the button is anything but the simple toggle preference,
- // we'll need to disable all preferences to reject all click
- // events until the sub-activity's UI comes up.
- getPreferenceScreen().setEnabled(false);
- // Let the intents be launched by the Preference manager
- return false;
- }
- }
-
- private final SubscriptionManager.OnSubscriptionsChangedListener
- mOnSubscriptionsChangeListener
- = new SubscriptionManager.OnSubscriptionsChangedListener() {
- @Override
- public void onSubscriptionsChanged() {
- if (DBG) log("onSubscriptionsChanged:");
- initializeSubscriptions();
- }
- };
-
- private int getSlotIdFromIntent(Intent intent) {
- Bundle data = intent.getExtras();
- int subId = -1;
- if (data != null) {
- subId = data.getInt(Settings.EXTRA_SUB_ID, -1);
- }
- return SubscriptionManager.getSlotIndex(subId);
- }
-
- private void initializeSubscriptions() {
- final FragmentActivity activity = getActivity();
- if (activity == null) {
- // Process preferences in activity only if its not destroyed
- return;
- }
- updatePhone();
- updateBody();
- if (DBG) log("initializeSubscriptions:-");
- }
-
- private TabState isUpdateTabsNeeded(List<SubscriptionInfo> newSil) {
- TabState state = TabState.DO_NOTHING;
- if (newSil == null) {
- if (mActiveSubInfos.size() >= TAB_THRESHOLD) {
- if (DBG) log("isUpdateTabsNeeded: NO_TABS, size unknown and was tabbed");
- state = TabState.NO_TABS;
- }
- } else if (newSil.size() < TAB_THRESHOLD && mActiveSubInfos.size() >= TAB_THRESHOLD) {
- if (DBG) log("isUpdateTabsNeeded: NO_TABS, size went to small");
- state = TabState.NO_TABS;
- } else if (newSil.size() >= TAB_THRESHOLD && mActiveSubInfos.size() < TAB_THRESHOLD) {
- if (DBG) log("isUpdateTabsNeeded: UPDATE, size changed");
- state = TabState.UPDATE;
- } else if (newSil.size() >= TAB_THRESHOLD) {
- Iterator<SubscriptionInfo> siIterator = mActiveSubInfos.iterator();
- for(SubscriptionInfo newSi : newSil) {
- SubscriptionInfo curSi = siIterator.next();
- if (!newSi.getDisplayName().equals(curSi.getDisplayName())) {
- if (DBG) log("isUpdateTabsNeeded: UPDATE, new name="
- + newSi.getDisplayName());
- state = TabState.UPDATE;
- break;
- }
- }
- }
- if (DBG) {
- Log.i(LOG_TAG, "isUpdateTabsNeeded:- " + state
- + " newSil.size()=" + ((newSil != null) ? newSil.size() : 0)
- + " mActiveSubInfos.size()=" + mActiveSubInfos.size());
- }
- return state;
- }
-
- private void updatePhone() {
- if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
- mImsMgr = ImsManager.getInstance(getContext(),
- SubscriptionManager.getPhoneId(mSubId));
- mTelephonyManager = new TelephonyManager(getContext(), mSubId);
- }
-
- mPhoneStateListener.updateSubscriptionId(mSubId);
- }
-
- @Override
- public void onAttach(Context context) {
- super.onAttach(context);
- mSubId = getArguments().getInt(MobileSettingsActivity.KEY_SUBSCRIPTION_ID,
- SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-
- use(MobileDataPreferenceController.class).init(getFragmentManager(), mSubId);
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- Log.i(LOG_TAG, "onCreate:+");
- super.onCreate(icicle);
- final Context context = getContext();
-
- if (context == null) {
- Log.e(LOG_TAG, "onCreate:- with no valid activity.");
- return;
- }
-
- mHandler = new MyHandler();
- mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
- mSubscriptionManager = SubscriptionManager.from(context);
- mTelephonyManager = (TelephonyManager) context.getSystemService(
- Context.TELEPHONY_SERVICE);
- mCarrierConfigManager = new CarrierConfigManager(getContext());
-
- mButton4glte = (SwitchPreference)findPreference(BUTTON_4G_LTE_KEY);
- mButton4glte.setOnPreferenceChangeListener(this);
-
- mCallingCategory = (PreferenceCategory) findPreference(CATEGORY_CALLING_KEY);
- mWiFiCallingPref = findPreference(BUTTON_WIFI_CALLING_KEY);
- mVideoCallingPref = (SwitchPreference) findPreference(BUTTON_VIDEO_CALLING_KEY);
- mDataUsagePref = (DataUsagePreference) findPreference(BUTTON_DATA_USAGE_KEY);
-
- try {
- Context con = context.createPackageContext("com.android.systemui", 0);
- int id = con.getResources().getIdentifier("config_show4GForLTE",
- "bool", "com.android.systemui");
- mShow4GForLTE = con.getResources().getBoolean(id);
- } catch (PackageManager.NameNotFoundException e) {
- Log.e(LOG_TAG, "NameNotFoundException for show4GFotLTE");
- mShow4GForLTE = false;
- }
-
- //get UI object references
- PreferenceScreen prefSet = getPreferenceScreen();
-
- mButtonDataRoam = (RestrictedSwitchPreference) prefSet.findPreference(
- BUTTON_ROAMING_KEY);
- mButtonPreferredNetworkMode = (ListPreference) prefSet.findPreference(
- BUTTON_PREFERED_NETWORK_MODE);
- mButtonEnabledNetworks = (ListPreference) prefSet.findPreference(
- BUTTON_ENABLED_NETWORKS_KEY);
- mButtonDataRoam.setOnPreferenceChangeListener(this);
-
- mLteDataServicePref = prefSet.findPreference(BUTTON_CDMA_LTE_DATA_SERVICE_KEY);
-
- mEuiccSettingsPref = prefSet.findPreference(BUTTON_CARRIER_SETTINGS_EUICC_KEY);
- mEuiccSettingsPref.setOnPreferenceChangeListener(this);
-
- // Initialize mActiveSubInfo
- int max = mSubscriptionManager.getActiveSubscriptionInfoCountMax();
- mActiveSubInfos = mSubscriptionManager.getActiveSubscriptionInfoList();
-
- updatePhone();
- if (hasActiveSubscriptions()) {
- updateEnabledNetworksEntries();
- }
- Log.i(LOG_TAG, "onCreate:-");
- }
-
- @Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)
- || !mUm.isSystemUser()) {
- mUnavailable = true;
- //TODO(b/114749736): migrate telephony_disallowed_preference_screen.xml
- } else {
- initializeSubscriptions();
- }
- }
-
- private class PhoneChangeReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- Log.i(LOG_TAG, "onReceive:");
- if (getActivity() == null || getContext() == null) {
- // Received broadcast and activity is in the process of being torn down.
- return;
- }
- // When the radio changes (ex: CDMA->GSM), refresh all options.
- updateBody();
- }
- }
-
- private class DpcApnEnforcedObserver extends ContentObserver {
- DpcApnEnforcedObserver() {
- super(null);
- }
-
- @Override
- public void onChange(boolean selfChange) {
- Log.i(LOG_TAG, "DPC enforced onChange:");
- if (getActivity() == null || getContext() == null) {
- // Received content change and activity is in the process of being torn down.
- return;
- }
- updateBody();
- }
- }
-
- @Override
- public void onResume() {
- super.onResume();
- Log.i(LOG_TAG, "onResume:+");
-
- if (mUnavailable) {
- Log.i(LOG_TAG, "onResume:- ignore mUnavailable == false");
- return;
- }
-
- // upon resumption from the sub-activity, make sure we re-enable the
- // preferences.
- getPreferenceScreen().setEnabled(true);
-
- // Set UI state in onResume because a user could go home, launch some
- // app to change this setting's backend, and re-launch this settings app
- // and the UI state would be inconsistent with actual state
- mButtonDataRoam.setChecked(mTelephonyManager.isDataRoamingEnabled());
-
- if (getPreferenceScreen().findPreference(BUTTON_PREFERED_NETWORK_MODE) != null
- || getPreferenceScreen().findPreference(BUTTON_ENABLED_NETWORKS_KEY) != null) {
- updatePreferredNetworkUIFromDb();
- }
-
- mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
-
- // NOTE: Buttons will be enabled/disabled in mPhoneStateListener
- updateEnhanced4gLteState();
-
- // Video calling and WiFi calling state might have changed.
- updateCallingCategory();
-
- mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
-
- final Context context = getContext();
- IntentFilter intentFilter = new IntentFilter(
- TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
- context.registerReceiver(mPhoneChangeReceiver, intentFilter);
- context.getContentResolver().registerContentObserver(ENFORCE_MANAGED_URI, false,
- mDpcEnforcedContentObserver);
-
- Log.i(LOG_TAG, "onResume:-");
-
- }
-
- @Override
- protected int getPreferenceScreenResId() {
- return R.xml.network_setting_fragment;
- }
-
- @Override
- protected String getLogTag() {
- return null;
- }
-
- private boolean hasActiveSubscriptions() {
- return mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID;
- }
-
- private void updateBodyBasicFields(FragmentActivity activity, PreferenceScreen prefSet,
- int phoneSubId, boolean hasActiveSubscriptions) {
- Context context = getContext();
-
- ActionBar actionBar = activity.getActionBar();
- if (actionBar != null) {
- // android.R.id.home will be triggered in onOptionsItemSelected()
- actionBar.setDisplayHomeAsUpEnabled(true);
- }
-
- prefSet.addPreference(mButtonDataRoam);
- prefSet.addPreference(mDataUsagePref);
-
- mButtonDataRoam.setEnabled(hasActiveSubscriptions);
- mDataUsagePref.setEnabled(hasActiveSubscriptions);
-
- if (hasActiveSubscriptions) {
- // Customized preferences needs to be initialized with subId.
- mDataUsagePref.initialize(phoneSubId);
-
- // Initialize states of mButtonDataRoam.
- mButtonDataRoam.setChecked(mTelephonyManager.isDataRoamingEnabled());
- if (mButtonDataRoam.isEnabled()) {
- if (RestrictedLockUtilsInternal.hasBaseUserRestriction(context,
- UserManager.DISALLOW_DATA_ROAMING, UserHandle.myUserId())) {
- mButtonDataRoam.setEnabled(false);
- } else {
- mButtonDataRoam.checkRestrictionAndSetDisabled(
- UserManager.DISALLOW_DATA_ROAMING);
- }
- }
- }
- }
-
- private void updateBody() {
- final FragmentActivity activity = getActivity();
- final PreferenceScreen prefSet = getPreferenceScreen();
- final boolean hasActiveSubscriptions = hasActiveSubscriptions();
-
- if (activity == null) {
- Log.e(LOG_TAG, "updateBody with no valid activity.");
- return;
- }
-
- if (prefSet == null) {
- Log.e(LOG_TAG, "updateBody with no null prefSet.");
- return;
- }
-
- updateBodyBasicFields(activity, prefSet, mSubId, hasActiveSubscriptions);
-
- if (hasActiveSubscriptions) {
- updateBodyAdvancedFields(activity, prefSet, mSubId, hasActiveSubscriptions);
- } else {
- // Shows the "Carrier" preference that allows user to add a e-sim profile.
- if (MobileNetworkUtils.showEuiccSettings(getContext())) {
- mEuiccSettingsPref.setSummary(null /* summary */);
- prefSet.addPreference(mEuiccSettingsPref);
- }
- }
- }
-
- private void updateBodyAdvancedFields(FragmentActivity activity, PreferenceScreen prefSet,
- int phoneSubId, boolean hasActiveSubscriptions) {
- boolean isLteOnCdma = mTelephonyManager.getLteOnCdmaMode()
- == PhoneConstants.LTE_ON_CDMA_TRUE;
-
- if (DBG) {
- log("updateBody: isLteOnCdma=" + isLteOnCdma + " phoneSubId=" + phoneSubId);
- }
-
- prefSet.addPreference(mButtonPreferredNetworkMode);
- prefSet.addPreference(mButtonEnabledNetworks);
- prefSet.addPreference(mButton4glte);
-
- if (MobileNetworkUtils.showEuiccSettings(getContext())) {
- prefSet.addPreference(mEuiccSettingsPref);
- String spn = mTelephonyManager.getSimOperatorName();
- if (TextUtils.isEmpty(spn)) {
- mEuiccSettingsPref.setSummary(null);
- } else {
- mEuiccSettingsPref.setSummary(spn);
- }
- }
-
- int settingsNetworkMode = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
- preferredNetworkMode);
-
- PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
- mIsGlobalCdma = isLteOnCdma
- && carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL);
- if (carrierConfig.getBoolean(
- CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL)) {
- prefSet.removePreference(mButtonPreferredNetworkMode);
- prefSet.removePreference(mButtonEnabledNetworks);
- prefSet.removePreference(mLteDataServicePref);
- } else if (carrierConfig.getBoolean(CarrierConfigManager
- .KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)
- && !mTelephonyManager.getServiceState().getRoaming()
- && mTelephonyManager.getServiceState().getDataRegState()
- == ServiceState.STATE_IN_SERVICE) {
- prefSet.removePreference(mButtonPreferredNetworkMode);
- prefSet.removePreference(mButtonEnabledNetworks);
-
- final int phoneType = mTelephonyManager.getPhoneType();
- if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
- updateCdmaOptions(this, prefSet, mSubId);
- } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
- updateGsmUmtsOptions(this, prefSet, phoneSubId);
- } else {
- throw new IllegalStateException("Unexpected phone type: " + phoneType);
- }
- // Since pref is being hidden from user, set network mode to default
- // in case it is currently something else. That is possible if user
- // changed the setting while roaming and is now back to home network.
- settingsNetworkMode = preferredNetworkMode;
- } else if (carrierConfig.getBoolean(
- CarrierConfigManager.KEY_WORLD_PHONE_BOOL) == true) {
- prefSet.removePreference(mButtonEnabledNetworks);
- // set the listener for the mButtonPreferredNetworkMode list preference so we can issue
- // change Preferred Network Mode.
- mButtonPreferredNetworkMode.setOnPreferenceChangeListener(this);
-
- updateCdmaOptions(this, prefSet, mSubId);
- updateGsmUmtsOptions(this, prefSet, phoneSubId);
- } else {
- prefSet.removePreference(mButtonPreferredNetworkMode);
- updateEnabledNetworksEntries();
- mButtonEnabledNetworks.setOnPreferenceChangeListener(this);
- if (DBG) log("settingsNetworkMode: " + settingsNetworkMode);
- }
-
- final boolean missingDataServiceUrl = TextUtils.isEmpty(
- android.provider.Settings.Global.getString(activity.getContentResolver(),
- android.provider.Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL));
- if (!isLteOnCdma || missingDataServiceUrl) {
- prefSet.removePreference(mLteDataServicePref);
- } else {
- android.util.Log.d(LOG_TAG, "keep ltePref");
- }
-
- updateEnhanced4gLteState();
- updatePreferredNetworkType();
- updateCallingCategory();
-
- // Enable link to CMAS app settings depending on the value in config.xml.
- final boolean isCellBroadcastAppLinkEnabled = activity.getResources().getBoolean(
- com.android.internal.R.bool.config_cellBroadcastAppLinks);
- if (!mUm.isAdminUser() || !isCellBroadcastAppLinkEnabled
- || mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_CELL_BROADCASTS)) {
- PreferenceScreen root = getPreferenceScreen();
- Preference ps = findPreference(BUTTON_CELL_BROADCAST_SETTINGS);
- if (ps != null) {
- root.removePreference(ps);
- }
- }
-
- /**
- * Listen to extra preference changes that need as Metrics events logging.
- */
- if (prefSet.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY) != null) {
- prefSet.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
- .setOnPreferenceChangeListener(this);
- }
-
- if (prefSet.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY) != null) {
- prefSet.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)
- .setOnPreferenceChangeListener(this);
- }
-
- // Get the networkMode from Settings.System and displays it
- mButtonEnabledNetworks.setValue(Integer.toString(settingsNetworkMode));
- mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
- UpdatePreferredNetworkModeSummary(settingsNetworkMode);
- UpdateEnabledNetworksValueAndSummary(settingsNetworkMode);
- // Display preferred network type based on what modem returns b/18676277
- new SetPreferredNetworkAsyncTask(
- mTelephonyManager,
- mSubId,
- settingsNetworkMode,
- mHandler.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE))
- .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
-
- /**
- * Enable/disable depending upon if there are any active subscriptions.
- *
- * I've decided to put this enable/disable code at the bottom as the
- * code above works even when there are no active subscriptions, thus
- * putting it afterwards is a smaller change. This can be refined later,
- * but you do need to remember that this all needs to work when subscriptions
- * change dynamically such as when hot swapping sims.
- */
- boolean useVariant4glteTitle = carrierConfig.getBoolean(
- CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_BOOL);
- int enhanced4glteModeTitleId = useVariant4glteTitle ?
- R.string.enhanced_4g_lte_mode_title_variant :
- R.string.enhanced_4g_lte_mode_title;
-
- mOnlyAutoSelectInHomeNW = carrierConfig.getBoolean(
- CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL);
- mButton4glte.setTitle(enhanced4glteModeTitleId);
- mLteDataServicePref.setEnabled(hasActiveSubscriptions);
- Preference ps;
- ps = findPreference(BUTTON_CELL_BROADCAST_SETTINGS);
- if (ps != null) {
- ps.setEnabled(hasActiveSubscriptions);
- }
- ps = findPreference(CATEGORY_GSM_APN_EXPAND_KEY);
- if (ps != null) {
- ps.setEnabled(hasActiveSubscriptions);
- }
- ps = findPreference(CATEGORY_CDMA_APN_EXPAND_KEY);
- if (ps != null) {
- ps.setEnabled(hasActiveSubscriptions);
- }
- ps = findPreference(NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
- if (ps != null) {
- ps.setEnabled(hasActiveSubscriptions);
- }
- ps = findPreference(BUTTON_CARRIER_SETTINGS_KEY);
- if (ps != null) {
- ps.setEnabled(hasActiveSubscriptions);
- }
- ps = findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY);
- if (ps != null) {
- ps.setEnabled(hasActiveSubscriptions);
- }
- ps = findPreference(CATEGORY_CALLING_KEY);
- if (ps != null) {
- ps.setEnabled(hasActiveSubscriptions);
- }
- ps = findPreference(NetworkOperators.BUTTON_AUTO_SELECT_KEY);
- if (ps != null) {
- ps.setSummary(null);
- if (mTelephonyManager.getServiceState().getRoaming()) {
- ps.setEnabled(true);
- } else {
- ps.setEnabled(!mOnlyAutoSelectInHomeNW);
- if (mOnlyAutoSelectInHomeNW) {
- ps.setSummary(getResources().getString(
- R.string.manual_mode_disallowed_summary,
- mTelephonyManager.getSimOperatorName()));
- }
- }
- }
- }
-
- // Requires that mSubId is up to date
- void updateEnabledNetworksEntries() {
- final int phoneType = mTelephonyManager.getPhoneType();
- final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
- if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
- final int lteForced = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.LTE_SERVICE_FORCED + mSubId,
- 0);
- final boolean isLteOnCdma = mTelephonyManager.getLteOnCdmaMode()
- == PhoneConstants.LTE_ON_CDMA_TRUE;
- final int settingsNetworkMode = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
- preferredNetworkMode);
- if (isLteOnCdma) {
- if (lteForced == 0) {
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_cdma_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_cdma_values);
- } else {
- switch (settingsNetworkMode) {
- case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
- case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
- case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_cdma_no_lte_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_cdma_no_lte_values);
- break;
- case TelephonyManager.NETWORK_MODE_GLOBAL:
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_ONLY:
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_cdma_only_lte_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_cdma_only_lte_values);
- break;
- default:
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_cdma_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_cdma_values);
- break;
- }
- }
- }
- updateCdmaOptions(this, getPreferenceScreen(), mSubId);
-
- } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
- if (isSupportTdscdma()) {
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_tdscdma_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_tdscdma_values);
- } else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)
- && !getResources().getBoolean(R.bool.config_enabled_lte)) {
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_except_gsm_lte_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_except_gsm_lte_values);
- } else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)) {
- int select = mShow4GForLTE
- ? R.array.enabled_networks_except_gsm_4g_choices
- : R.array.enabled_networks_except_gsm_choices;
- mButtonEnabledNetworks.setEntries(select);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_except_gsm_values);
- } else if (!getResources().getBoolean(R.bool.config_enabled_lte)) {
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_except_lte_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_except_lte_values);
- } else if (mIsGlobalCdma) {
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_cdma_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_cdma_values);
- } else {
- int select = mShow4GForLTE ? R.array.enabled_networks_4g_choices
- : R.array.enabled_networks_choices;
- mButtonEnabledNetworks.setEntries(select);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_values);
- }
- updateGsmUmtsOptions(this, getPreferenceScreen(), mSubId);
- } else {
- throw new IllegalStateException("Unexpected phone type: " + phoneType);
- }
- if (isWorldMode()) {
- mButtonEnabledNetworks.setEntries(
- R.array.preferred_network_mode_choices_world_mode);
- mButtonEnabledNetworks.setEntryValues(
- R.array.preferred_network_mode_values_world_mode);
- }
- }
-
- @Override
- public void onPause() {
- super.onPause();
- if (DBG) log("onPause:+");
-
- mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
-
- mSubscriptionManager
- .removeOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
-
- final Context context = getActivity();
- context.unregisterReceiver(mPhoneChangeReceiver);
- context.getContentResolver().unregisterContentObserver(mDpcEnforcedContentObserver);
- if (DBG) log("onPause:-");
- }
-
- /**
- * Implemented to support onPreferenceChangeListener to look for preference
- * changes specifically on CLIR.
- *
- * @param preference is the preference to be changed, should be mButtonCLIR.
- * @param objValue should be the value of the selection, NOT its localized
- * display value.
- */
- public boolean onPreferenceChange(Preference preference, Object objValue) {
- sendMetricsEventPreferenceChanged(getPreferenceScreen(), preference, objValue);
-
- final int phoneSubId = mSubId;
- if (preference == mButtonPreferredNetworkMode) {
- //NOTE onPreferenceChange seems to be called even if there is no change
- //Check if the button value is changed from the System.Setting
- mButtonPreferredNetworkMode.setValue((String) objValue);
- int buttonNetworkMode;
- buttonNetworkMode = Integer.parseInt((String) objValue);
- int settingsNetworkMode = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
- preferredNetworkMode);
- if (buttonNetworkMode != settingsNetworkMode) {
- int modemNetworkMode;
- // if new mode is invalid ignore it
- switch (buttonNetworkMode) {
- case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
- case TelephonyManager.NETWORK_MODE_GSM_ONLY:
- case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
- case TelephonyManager.NETWORK_MODE_GSM_UMTS:
- case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
- case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
- case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
- case TelephonyManager.NETWORK_MODE_GLOBAL:
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
- case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_ONLY:
- case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- // This is one of the modes we recognize
- modemNetworkMode = buttonNetworkMode;
- break;
- default:
- loge("Invalid Network Mode (" +buttonNetworkMode+ ") chosen. Ignore.");
- return true;
- }
-
- android.provider.Settings.Global.putInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
- buttonNetworkMode );
- //Set the modem network mode
- new SetPreferredNetworkAsyncTask(
- mTelephonyManager,
- mSubId,
- modemNetworkMode,
- mHandler.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE))
- .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
- } else if (preference == mButtonEnabledNetworks) {
- mButtonEnabledNetworks.setValue((String) objValue);
- int buttonNetworkMode;
- buttonNetworkMode = Integer.parseInt((String) objValue);
- if (DBG) log("buttonNetworkMode: " + buttonNetworkMode);
- int settingsNetworkMode = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
- preferredNetworkMode);
- if (buttonNetworkMode != settingsNetworkMode) {
- int modemNetworkMode;
- // if new mode is invalid ignore it
- switch (buttonNetworkMode) {
- case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
- case TelephonyManager.NETWORK_MODE_GSM_ONLY:
- case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
- case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- // This is one of the modes we recognize
- modemNetworkMode = buttonNetworkMode;
- break;
- default:
- loge("Invalid Network Mode (" +buttonNetworkMode+ ") chosen. Ignore.");
- return true;
- }
-
- UpdateEnabledNetworksValueAndSummary(buttonNetworkMode);
-
- android.provider.Settings.Global.putInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
- buttonNetworkMode );
- //Set the modem network mode
- new SetPreferredNetworkAsyncTask(
- mTelephonyManager,
- mSubId,
- modemNetworkMode,
- mHandler.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE))
- .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
- } else if (preference == mButton4glte) {
- boolean enhanced4gMode = !mButton4glte.isChecked();
- mButton4glte.setChecked(enhanced4gMode);
- mImsMgr.setEnhanced4gLteModeSetting(mButton4glte.isChecked());
- } else if (preference == mButtonDataRoam) {
- if (DBG) log("onPreferenceTreeClick: preference == mButtonDataRoam.");
-
- //normally called on the toggle click
- if (!mButtonDataRoam.isChecked()) {
- PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(
- mSubId);
- if (carrierConfig != null && carrierConfig.getBoolean(
- CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL)) {
- mTelephonyManager.setDataRoamingEnabled(true);
- MetricsLogger.action(getContext(),
- getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam),
- true);
- } else {
- // MetricsEvent with no value update.
- MetricsLogger.action(getContext(),
- getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam));
- // First confirm with a warning dialog about charges
- mOkClicked = false;
- RoamingDialogFragment
- fragment = new RoamingDialogFragment();
- Bundle b = new Bundle();
- b.putInt(RoamingDialogFragment.SUB_ID_KEY, mSubId);
- fragment.setArguments(b);
- fragment.setTargetFragment(this, 0 /* requestCode */);
- fragment.show(getFragmentManager(), ROAMING_TAG);
- // Don't update the toggle unless the confirm button is actually pressed.
- return false;
- }
- } else {
- mTelephonyManager.setDataRoamingEnabled(false);
- MetricsLogger.action(getContext(),
- getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam),
- false);
- return true;
- }
- } else if (preference == mVideoCallingPref) {
- // If mButton4glte is not checked, mVideoCallingPref should be disabled.
- // So it only makes sense to call phoneMgr.enableVideoCalling if it's checked.
- if (mButton4glte.isChecked()) {
- mImsMgr.setVtSetting((boolean) objValue);
- return true;
- } else {
- loge("mVideoCallingPref should be disabled if mButton4glte is not checked.");
- mVideoCallingPref.setEnabled(false);
- return false;
- }
- } else if (preference == getPreferenceScreen()
- .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
- || preference == getPreferenceScreen()
- .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
- return true;
- }
-
- updateBody();
- // always let the preference setting proceed.
- return true;
- }
-
- private boolean is4gLtePrefEnabled(PersistableBundle carrierConfig) {
- return (mTelephonyManager.getCallState(mSubId)
- == TelephonyManager.CALL_STATE_IDLE)
- && mImsMgr != null
- && mImsMgr.isNonTtyOrTtyOnVolteEnabled()
- && carrierConfig.getBoolean(
- CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL);
- }
-
- private class MyHandler extends Handler {
-
- static final int MESSAGE_SET_PREFERRED_NETWORK_TYPE = 0;
-
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case MESSAGE_SET_PREFERRED_NETWORK_TYPE:
- handleSetPreferredNetworkTypeResponse(msg);
- break;
- }
- }
-
- private void handleSetPreferredNetworkTypeResponse(Message msg) {
- final FragmentActivity activity = getActivity();
- if (activity == null || activity.isDestroyed()) {
- // Access preferences of activity only if it is not destroyed
- // or if fragment is not attached to an activity.
- return;
- }
-
- boolean success = (boolean) msg.obj;
-
- if (success) {
- int networkMode;
- if (getPreferenceScreen().findPreference(
- BUTTON_PREFERED_NETWORK_MODE) != null) {
- networkMode = Integer.parseInt(mButtonPreferredNetworkMode.getValue());
- android.provider.Settings.Global.putInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE
- + mSubId,
- networkMode );
- }
- if (getPreferenceScreen().findPreference(BUTTON_ENABLED_NETWORKS_KEY) != null) {
- networkMode = Integer.parseInt(mButtonEnabledNetworks.getValue());
- android.provider.Settings.Global.putInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE
- + mSubId,
- networkMode );
- }
- } else {
- Log.i(LOG_TAG, "handleSetPreferredNetworkTypeResponse:" +
- "exception in setting network mode.");
- updatePreferredNetworkUIFromDb();
- }
- }
- }
-
- private void updatePreferredNetworkUIFromDb() {
- int settingsNetworkMode = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
- preferredNetworkMode);
-
- if (DBG) {
- log("updatePreferredNetworkUIFromDb: settingsNetworkMode = " +
- settingsNetworkMode);
- }
-
- UpdatePreferredNetworkModeSummary(settingsNetworkMode);
- UpdateEnabledNetworksValueAndSummary(settingsNetworkMode);
- // changes the mButtonPreferredNetworkMode accordingly to settingsNetworkMode
- mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
- }
-
- private void UpdatePreferredNetworkModeSummary(int NetworkMode) {
- switch(NetworkMode) {
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_tdscdma_gsm_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_tdscdma_gsm_summary);
- break;
- case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_wcdma_perf_summary);
- break;
- case TelephonyManager.NETWORK_MODE_GSM_ONLY:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_gsm_only_summary);
- break;
- case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_tdscdma_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_wcdma_only_summary);
- break;
- case TelephonyManager.NETWORK_MODE_GSM_UMTS:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_gsm_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
- switch (mTelephonyManager.getLteOnCdmaMode()) {
- case PhoneConstants.LTE_ON_CDMA_TRUE:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_cdma_summary);
- break;
- case PhoneConstants.LTE_ON_CDMA_FALSE:
- default:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_cdma_evdo_summary);
- break;
- }
- break;
- case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_cdma_only_summary);
- break;
- case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_evdo_only_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_tdscdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_ONLY:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_tdscdma_gsm_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_tdscdma_gsm_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_gsm_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_cdma_evdo_summary);
- break;
- case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_tdscdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
- if (mTelephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA
- || mIsGlobalCdma
- || isWorldMode()) {
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_global_summary);
- } else {
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_summary);
- }
- break;
- case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_GLOBAL:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_cdma_evdo_gsm_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_tdscdma_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_wcdma_summary);
- break;
- default:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_global_summary);
- }
- }
-
- private void UpdateEnabledNetworksValueAndSummary(int NetworkMode) {
- switch (NetworkMode) {
- case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
- mButtonEnabledNetworks.setSummary(R.string.network_3G);
- break;
- case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
- case TelephonyManager.NETWORK_MODE_GSM_UMTS:
- case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
- if (!mIsGlobalCdma) {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_WCDMA_PREF));
- mButtonEnabledNetworks.setSummary(R.string.network_3G);
- } else {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager
- .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
- mButtonEnabledNetworks.setSummary(R.string.network_global);
- }
- break;
- case TelephonyManager.NETWORK_MODE_GSM_ONLY:
- if (!mIsGlobalCdma) {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_GSM_ONLY));
- mButtonEnabledNetworks.setSummary(R.string.network_2G);
- } else {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager
- .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
- mButtonEnabledNetworks.setSummary(R.string.network_global);
- }
- break;
- case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
- if (isWorldMode()) {
- mButtonEnabledNetworks.setSummary(
- R.string.preferred_network_mode_lte_gsm_umts_summary);
- controlCdmaOptions(false);
- controlGsmOptions(true);
- break;
- }
- case TelephonyManager.NETWORK_MODE_LTE_ONLY:
- case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
- if (!mIsGlobalCdma) {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA));
- mButtonEnabledNetworks.setSummary((mShow4GForLTE == true)
- ? R.string.network_4G : R.string.network_lte);
- } else {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager
- .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
- mButtonEnabledNetworks.setSummary(R.string.network_global);
- }
- break;
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
- if (isWorldMode()) {
- mButtonEnabledNetworks.setSummary(
- R.string.preferred_network_mode_lte_cdma_summary);
- controlCdmaOptions(true);
- controlGsmOptions(false);
- } else {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO));
- mButtonEnabledNetworks.setSummary(R.string.network_lte);
- }
- break;
- case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager
- .NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
- mButtonEnabledNetworks.setSummary(R.string.network_3G);
- break;
- case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
- case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
- case TelephonyManager.NETWORK_MODE_GLOBAL:
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_CDMA_EVDO));
- mButtonEnabledNetworks.setSummary(R.string.network_3G);
- break;
- case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO));
- mButtonEnabledNetworks.setSummary(R.string.network_1x);
- break;
- case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY));
- mButtonEnabledNetworks.setSummary(R.string.network_3G);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
- if (isSupportTdscdma()) {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager
- .NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
- mButtonEnabledNetworks.setSummary(R.string.network_lte);
- } else {
- if (isWorldMode()) {
- controlCdmaOptions(true);
- controlGsmOptions(false);
- }
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager
- .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
- if (mTelephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA
- || mIsGlobalCdma
- || isWorldMode()) {
- mButtonEnabledNetworks.setSummary(R.string.network_global);
- } else {
- mButtonEnabledNetworks.setSummary((mShow4GForLTE == true)
- ? R.string.network_4G : R.string.network_lte);
- }
- }
- break;
- default:
- String errMsg = "Invalid Network Mode (" + NetworkMode + "). Ignore.";
- loge(errMsg);
- mButtonEnabledNetworks.setSummary(errMsg);
- }
- }
-
- @Override
- public void onActivityResult(int requestCode, int resultCode, Intent data) {
- switch(requestCode) {
- case REQUEST_CODE_EXIT_ECM:
- Boolean isChoiceYes = data.getBooleanExtra(
- EXTRA_EXIT_ECM_RESULT, false);
- if (isChoiceYes) {
- // If the phone exits from ECM mode, show the CDMA Options
- mCdmaOptions.showDialog(mClickedPreference);
- } else {
- // do nothing
- }
- break;
-
- default:
- break;
- }
- }
-
- private void updateWiFiCallState() {
- if (mWiFiCallingPref == null || mCallingCategory == null) {
- return;
- }
-
- // Removes the preference if the wifi calling is disabled.
- if (!MobileNetworkUtils.isWifiCallingEnabled(getContext(),
- SubscriptionManager.getPhoneId(mSubId))) {
- mCallingCategory.removePreference(mWiFiCallingPref);
- return;
- }
-
- final PhoneAccountHandle simCallManager =
- TelecomManager.from(getContext()).getSimCallManager();
-
- if (simCallManager != null) {
- Intent intent = buildPhoneAccountConfigureIntent(getContext(), simCallManager);
- PackageManager pm = getContext().getPackageManager();
- List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
- mWiFiCallingPref.setTitle(resolutions.get(0).loadLabel(pm));
- mWiFiCallingPref.setSummary(null);
- mWiFiCallingPref.setIntent(intent);
- } else {
- int resId = com.android.internal.R.string.wifi_calling_off_summary;
- if (mImsMgr.isWfcEnabledByUser()) {
- boolean isRoaming = mTelephonyManager.isNetworkRoaming();
- int wfcMode = mImsMgr.getWfcMode(isRoaming);
-
- switch (wfcMode) {
- case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY:
- resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;
- break;
- case ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED:
- resId = com.android.internal.R.string
- .wfc_mode_cellular_preferred_summary;
- break;
- case ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED:
- resId = com.android.internal.R.string.wfc_mode_wifi_preferred_summary;
- break;
- default:
- if (DBG) log("Unexpected WFC mode value: " + wfcMode);
- }
- }
- mWiFiCallingPref.setSummary(resId);
- }
-
- mCallingCategory.addPreference(mWiFiCallingPref);
- mWiFiCallingPref.setEnabled(mTelephonyManager.getCallState(mSubId)
- == TelephonyManager.CALL_STATE_IDLE && hasActiveSubscriptions());
- }
-
- private void updateEnhanced4gLteState() {
- if (mButton4glte == null) {
- return;
- }
-
- PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-
- if ((mImsMgr == null
- || !mImsMgr.isVolteEnabledByPlatform()
- || !mImsMgr.isVolteProvisionedOnDevice()
- || !MobileNetworkUtils.isImsServiceStateReady(mImsMgr)
- || carrierConfig.getBoolean(
- CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL))) {
- getPreferenceScreen().removePreference(mButton4glte);
- } else {
- mButton4glte.setEnabled(is4gLtePrefEnabled(carrierConfig)
- && hasActiveSubscriptions());
- boolean enh4glteMode = mImsMgr.isEnhanced4gLteModeSettingEnabledByUser()
- && mImsMgr.isNonTtyOrTtyOnVolteEnabled();
- mButton4glte.setChecked(enh4glteMode);
- }
- }
-
- private void updateVideoCallState() {
- if (mVideoCallingPref == null || mCallingCategory == null) {
- return;
- }
-
- PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-
- if (mImsMgr != null
- && mImsMgr.isVtEnabledByPlatform()
- && mImsMgr.isVtProvisionedOnDevice()
- && MobileNetworkUtils.isImsServiceStateReady(mImsMgr)
- && (carrierConfig.getBoolean(
- CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
- || mTelephonyManager.isDataEnabled())) {
- mCallingCategory.addPreference(mVideoCallingPref);
- if (!mButton4glte.isChecked()) {
- mVideoCallingPref.setEnabled(false);
- mVideoCallingPref.setChecked(false);
- } else {
- mVideoCallingPref.setEnabled(mTelephonyManager.getCallState(mSubId)
- == TelephonyManager.CALL_STATE_IDLE && hasActiveSubscriptions());
- mVideoCallingPref.setChecked(mImsMgr.isVtEnabledByUser());
- mVideoCallingPref.setOnPreferenceChangeListener(this);
- }
- } else {
- mCallingCategory.removePreference(mVideoCallingPref);
- }
- }
-
- private void updatePreferredNetworkType() {
- boolean enabled = mTelephonyManager.getCallState(
- mSubId) == TelephonyManager.CALL_STATE_IDLE
- && hasActiveSubscriptions();
- Log.i(LOG_TAG, "updatePreferredNetworkType: " + enabled);
- // TODO: Disentangle enabled networks vs preferred network mode, it looks like
- // both buttons are shown to the user as "Preferred network type" and the options change
- // based on what looks like World mode.
- if (mButtonEnabledNetworks != null) {
- mButtonEnabledNetworks.setEnabled(enabled);
- }
- if (mButtonPreferredNetworkMode != null) {
- mButtonPreferredNetworkMode.setEnabled(enabled);
- }
- }
-
- private void updateCallingCategory() {
- if (mCallingCategory == null) {
- return;
- }
-
- updateWiFiCallState();
- updateVideoCallState();
-
- // If all items in calling category is removed, we remove it from
- // the screen. Otherwise we'll see title of the category but nothing
- // is in there.
- if (mCallingCategory.getPreferenceCount() == 0) {
- getPreferenceScreen().removePreference(mCallingCategory);
- } else {
- getPreferenceScreen().addPreference(mCallingCategory);
- }
- }
-
- private static void log(String msg) {
- Log.d(LOG_TAG, msg);
- }
-
- private static void loge(String msg) {
- Log.e(LOG_TAG, msg);
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- final int itemId = item.getItemId();
- if (itemId == android.R.id.home) { // See ActionBar#setDisplayHomeAsUpEnabled()
- // Commenting out "logical up" capability. This is a workaround for issue 5278083.
- //
- // Settings app may not launch this activity via UP_ACTIVITY_CLASS but the other
- // Activity that looks exactly same as UP_ACTIVITY_CLASS ("SubSettings" Activity).
- // At that moment, this Activity launches UP_ACTIVITY_CLASS on top of the Activity.
- // which confuses users.
- // TODO: introduce better mechanism for "up" capability here.
- /*Intent intent = new Intent(Intent.ACTION_MAIN);
- intent.setClassName(UP_ACTIVITY_PACKAGE, UP_ACTIVITY_CLASS);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- startActivity(intent);*/
- getActivity().finish();
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
-
- private boolean isWorldMode() {
- boolean worldModeOn = false;
- final String configString = getResources().getString(R.string.config_world_mode);
-
- if (!TextUtils.isEmpty(configString)) {
- String[] configArray = configString.split(";");
- // Check if we have World mode configuration set to True only or config is set to True
- // and SIM GID value is also set and matches to the current SIM GID.
- if (configArray != null &&
- ((configArray.length == 1 && configArray[0].equalsIgnoreCase("true"))
- || (configArray.length == 2 && !TextUtils.isEmpty(configArray[1])
- && mTelephonyManager != null
- && configArray[1].equalsIgnoreCase(
- mTelephonyManager.getGroupIdLevel1())))) {
- worldModeOn = true;
- }
- }
-
- Log.d(LOG_TAG, "isWorldMode=" + worldModeOn);
-
- return worldModeOn;
- }
-
- private void controlGsmOptions(boolean enable) {
- PreferenceScreen prefSet = getPreferenceScreen();
- if (prefSet == null) {
- return;
- }
-
- updateGsmUmtsOptions(this, prefSet, mSubId);
-
- PreferenceCategory networkOperatorCategory =
- (PreferenceCategory) prefSet.findPreference(
- NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
- Preference carrierSettings = prefSet.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
- if (networkOperatorCategory != null) {
- if (enable) {
- networkOperatorCategory.setEnabled(true);
- } else {
- prefSet.removePreference(networkOperatorCategory);
- }
- }
- if (carrierSettings != null) {
- prefSet.removePreference(carrierSettings);
- }
- }
-
- private void controlCdmaOptions(boolean enable) {
- PreferenceScreen prefSet = getPreferenceScreen();
- if (prefSet == null) {
- return;
- }
- updateCdmaOptions(this, prefSet, mSubId);
- CdmaSystemSelectListPreference systemSelect =
- (CdmaSystemSelectListPreference)prefSet.findPreference
- (BUTTON_CDMA_SYSTEM_SELECT_KEY);
- systemSelect.setSubscriptionId(mSubId);
- if (systemSelect != null) {
- systemSelect.setEnabled(enable);
- }
- }
-
- private boolean isSupportTdscdma() {
- if (getResources().getBoolean(R.bool.config_support_tdscdma)) {
- return true;
- }
-
- String operatorNumeric = mTelephonyManager.getServiceState().getOperatorNumeric();
- String[] numericArray = getResources().getStringArray(
- R.array.config_support_tdscdma_roaming_on_networks);
- if (numericArray.length == 0 || operatorNumeric == null) {
- return false;
- }
- for (String numeric : numericArray) {
- if (operatorNumeric.equals(numeric)) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Metrics events related methods. it takes care of all preferences possible in this
- * fragment(except a few that log on their own). It doesn't only include preferences in
- * network_setting_fragment.xml, but also those defined in GsmUmtsOptions and CdmaOptions.
- */
- private void sendMetricsEventPreferenceClicked(
- PreferenceScreen preferenceScreen, Preference preference) {
- final int category = getMetricsEventCategory(preferenceScreen, preference);
- if (category == MetricsProto.MetricsEvent.VIEW_UNKNOWN) {
- return;
- }
-
- // Send MetricsEvent on click. It includes preferences other than SwitchPreferences,
- // which send MetricsEvent in onPreferenceChange.
- // For ListPreferences, we log it here without a value, only indicating it's clicked to
- // open the list dialog. When a value is chosen, another MetricsEvent is logged with
- // new value in onPreferenceChange.
- if (preference == mLteDataServicePref || preference == mDataUsagePref
- || preference == mEuiccSettingsPref
- || preference == mWiFiCallingPref || preference == mButtonPreferredNetworkMode
- || preference == mButtonEnabledNetworks
- || preference == preferenceScreen.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
- || preference == preferenceScreen.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)
- || preference == preferenceScreen.findPreference(BUTTON_GSM_APN_EXPAND_KEY)
- || preference == preferenceScreen.findPreference(BUTTON_CDMA_APN_EXPAND_KEY)
- || preference == preferenceScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY)) {
- MetricsLogger.action(getContext(), category);
- }
- }
-
- private void sendMetricsEventPreferenceChanged(
- PreferenceScreen preferenceScreen, Preference preference, Object newValue) {
- final int category = getMetricsEventCategory(preferenceScreen, preference);
- if (category == MetricsProto.MetricsEvent.VIEW_UNKNOWN) {
- return;
- }
-
- // MetricsEvent logging with new value, for SwitchPreferences and ListPreferences.
- if (preference == mButton4glte || preference == mVideoCallingPref) {
- MetricsLogger.action(getContext(), category, (Boolean) newValue);
- } else if (preference == mButtonPreferredNetworkMode
- || preference == mButtonEnabledNetworks
- || preference == preferenceScreen
- .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
- || preference == preferenceScreen
- .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
- // Network select preference sends metrics event in its own listener.
- MetricsLogger.action(getContext(), category, Integer.valueOf((String) newValue));
- }
- }
-
- private int getMetricsEventCategory(
- PreferenceScreen preferenceScreen, Preference preference) {
-
- if (preference == null) {
- return MetricsProto.MetricsEvent.VIEW_UNKNOWN;
- } else if (preference == mButtonDataRoam) {
- return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_DATA_ROAMING_TOGGLE;
- } else if (preference == mDataUsagePref) {
- return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_DATA_USAGE;
- } else if (preference == mLteDataServicePref) {
- return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_SET_UP_DATA_SERVICE;
- } else if (preference == mButton4glte) {
- return MetricsProto.MetricsEvent.ACTION_MOBILE_ENHANCED_4G_LTE_MODE_TOGGLE;
- } else if (preference == mButtonPreferredNetworkMode) {
- return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_SELECT_PREFERRED_NETWORK;
- } else if (preference == mButtonEnabledNetworks) {
- return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_SELECT_ENABLED_NETWORK;
- } else if (preference == mEuiccSettingsPref) {
- return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_EUICC_SETTING;
- } else if (preference == mWiFiCallingPref) {
- return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_WIFI_CALLING;
- } else if (preference == mVideoCallingPref) {
- return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_VIDEO_CALLING_TOGGLE;
- } else if (preference == preferenceScreen
- .findPreference(NetworkOperators.BUTTON_AUTO_SELECT_KEY)) {
- return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_AUTO_SELECT_NETWORK_TOGGLE;
- } else if (preference == preferenceScreen
- .findPreference(NetworkOperators.BUTTON_NETWORK_SELECT_KEY)) {
- return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK;
- } else if (preference == preferenceScreen
- .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)) {
- return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_CDMA_SYSTEM_SELECT;
- } else if (preference == preferenceScreen
- .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
- return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_CDMA_SUBSCRIPTION_SELECT;
- } else if (preference == preferenceScreen.findPreference(BUTTON_GSM_APN_EXPAND_KEY)
- || preference == preferenceScreen.findPreference(BUTTON_CDMA_APN_EXPAND_KEY)) {
- return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_APN_SETTINGS;
- } else if (preference == preferenceScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY)) {
- return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_CARRIER_SETTINGS;
- } else {
- return MetricsProto.MetricsEvent.VIEW_UNKNOWN;
- }
- }
-
- private void updateGsmUmtsOptions(PreferenceFragmentCompat prefFragment,
- PreferenceScreen prefScreen, final int subId) {
- // We don't want to re-create GsmUmtsOptions if already exists. Otherwise, the
- // preferences inside it will also be re-created which causes unexpected behavior.
- // For example, the open dialog gets dismissed or detached after pause / resume.
- if (mGsmUmtsOptions == null) {
- mGsmUmtsOptions = new GsmUmtsOptions(prefFragment, prefScreen, subId);
- } else {
- mGsmUmtsOptions.update(subId);
- }
- }
-
- private void updateCdmaOptions(PreferenceFragmentCompat prefFragment, PreferenceScreen prefScreen,
- int subId) {
- // We don't want to re-create CdmaOptions if already exists. Otherwise, the preferences
- // inside it will also be re-created which causes unexpected behavior. For example,
- // the open dialog gets dismissed or detached after pause / resume.
- if (mCdmaOptions == null) {
- mCdmaOptions = new CdmaOptions(prefFragment, prefScreen, subId);
- } else {
- mCdmaOptions.updateSubscriptionId(subId);
- }
- }
-
- private static Intent buildPhoneAccountConfigureIntent(
- Context context, PhoneAccountHandle accountHandle) {
- Intent intent = buildConfigureIntent(
- context, accountHandle, TelecomManager.ACTION_CONFIGURE_PHONE_ACCOUNT);
-
- if (intent == null) {
- // If the new configuration didn't work, try the old configuration intent.
- intent = buildConfigureIntent(
- context, accountHandle, LEGACY_ACTION_CONFIGURE_PHONE_ACCOUNT);
- if (intent != null) {
- Log.w(MobileNetworkFragment.LOG_TAG,
- "Phone account using old configuration intent: " + accountHandle);
- }
- }
- return intent;
- }
-
- private static Intent buildConfigureIntent(
- Context context, PhoneAccountHandle accountHandle, String actionStr) {
- if (accountHandle == null || accountHandle.getComponentName() == null
- || TextUtils.isEmpty(accountHandle.getComponentName().getPackageName())) {
- return null;
- }
-
- // Build the settings intent.
- Intent intent = new Intent(actionStr);
- intent.setPackage(accountHandle.getComponentName().getPackageName());
- intent.addCategory(Intent.CATEGORY_DEFAULT);
- intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, accountHandle);
-
- // Check to see that the phone account package can handle the setting intent.
- PackageManager pm = context.getPackageManager();
- List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
- if (resolutions.size() == 0) {
- intent = null; // set no intent if the package cannot handle it.
- }
-
- return intent;
- }
-
- //TODO(b/114749736): update search provider
- public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
- new BaseSearchIndexProvider() {
- @Override
- protected boolean isPageSearchEnabled(Context context) {
- return false;
- }
-
- @Override
- public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
- boolean enabled) {
- final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-
- final SearchIndexableResource sir = new SearchIndexableResource(context);
- sir.xmlResId = R.xml.network_setting_fragment;
- result.add(sir);
- return result;
- }
- };
-
- private static final class SetPreferredNetworkAsyncTask extends AsyncTask<Void, Void, Boolean> {
-
- private final TelephonyManager mTelephonyManager;
- private final int mSubId;
- private final int mNetworkType;
- private final Message mCallback;
-
- SetPreferredNetworkAsyncTask(
- TelephonyManager tm, int subId, int networkType, Message callback) {
- mTelephonyManager = tm;
- mSubId = subId;
- mNetworkType = networkType;
- mCallback = callback;
- }
-
- @Override
- protected Boolean doInBackground(Void... voids) {
- return mTelephonyManager.setPreferredNetworkType(mSubId, mNetworkType);
- }
-
- @Override
- protected void onPostExecute(Boolean isSuccessed) {
- mCallback.obj = isSuccessed;
- mCallback.sendToTarget();
- }
- }
-}
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
new file mode 100644
index 0000000..ebc38e4
--- /dev/null
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
@@ -0,0 +1,218 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import android.app.Activity;
+import android.content.Context;
+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;
+import android.text.TextUtils;
+import android.util.Log;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.internal.telephony.TelephonyIntents;
+import com.android.settings.R;
+import com.android.settings.dashboard.RestrictedDashboardFragment;
+import com.android.settings.network.telephony.cdma.CdmaSubscriptionPreferenceController;
+import com.android.settings.network.telephony.cdma.CdmaSystemSelectPreferenceController;
+import com.android.settings.network.telephony.gsm.AutoSelectPreferenceController;
+import com.android.settings.network.telephony.gsm.OpenNetworkSelectPagePreferenceController;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
+import com.android.settings.widget.PreferenceCategoryController;
+import com.android.settingslib.search.SearchIndexable;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
+public class MobileNetworkSettings extends RestrictedDashboardFragment {
+
+ private static final String LOG_TAG = "NetworkSettings";
+ public static final int REQUEST_CODE_EXIT_ECM = 17;
+ @VisibleForTesting
+ static final String KEY_CLICKED_PREF = "key_clicked_pref";
+
+ //String keys for preference lookup
+ private static final String BUTTON_CDMA_SYSTEM_SELECT_KEY = "cdma_system_select_key";
+ private static final String BUTTON_CDMA_SUBSCRIPTION_KEY = "cdma_subscription_key";
+
+ private TelephonyManager mTelephonyManager;
+ private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+
+ private CdmaSystemSelectPreferenceController mCdmaSystemSelectPreferenceController;
+ private CdmaSubscriptionPreferenceController mCdmaSubscriptionPreferenceController;
+
+ private UserManager mUserManager;
+ private String mClickedPrefKey;
+
+ public MobileNetworkSettings() {
+ super(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return MetricsProto.MetricsEvent.MOBILE_NETWORK;
+ }
+
+ /**
+ * Invoked on each preference click in this hierarchy, overrides
+ * PreferenceActivity's implementation. Used to make sure we track the
+ * preference click events.
+ */
+ @Override
+ public boolean onPreferenceTreeClick(Preference preference) {
+ if (super.onPreferenceTreeClick(preference)) {
+ return true;
+ }
+ final String key = preference.getKey();
+
+ if (TextUtils.equals(key, BUTTON_CDMA_SYSTEM_SELECT_KEY)
+ || TextUtils.equals(key, BUTTON_CDMA_SUBSCRIPTION_KEY)) {
+ if (mTelephonyManager.getEmergencyCallbackMode()) {
+ startActivityForResult(
+ new Intent(TelephonyIntents.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS, null),
+ REQUEST_CODE_EXIT_ECM);
+ mClickedPrefKey = key;
+ }
+ return true;
+ }
+
+ return false;
+ }
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+
+ mSubId = getArguments().getInt(Settings.EXTRA_SUB_ID,
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+
+ use(MobileDataPreferenceController.class).init(getFragmentManager(), mSubId);
+ use(RoamingPreferenceController.class).init(getFragmentManager(), mSubId);
+ use(ApnPreferenceController.class).init(mSubId);
+ use(CarrierPreferenceController.class).init(mSubId);
+ use(DataUsagePreferenceController.class).init(mSubId);
+ use(PreferredNetworkModePreferenceController.class).init(mSubId);
+ use(EnabledNetworkModePreferenceController.class).init(mSubId);
+ use(DataServiceSetupPreferenceController.class).init(mSubId);
+ use(EuiccPreferenceController.class).init(mSubId);
+ use(WifiCallingPreferenceController.class).init(mSubId);
+
+ final OpenNetworkSelectPagePreferenceController openNetworkSelectPagePreferenceController =
+ use(OpenNetworkSelectPagePreferenceController.class).init(mSubId);
+ final AutoSelectPreferenceController autoSelectPreferenceController =
+ use(AutoSelectPreferenceController.class)
+ .init(mSubId)
+ .addListener(openNetworkSelectPagePreferenceController);
+ use(PreferenceCategoryController.class).setChildren(
+ Arrays.asList(autoSelectPreferenceController));
+
+ mCdmaSystemSelectPreferenceController = use(CdmaSystemSelectPreferenceController.class);
+ mCdmaSystemSelectPreferenceController.init(getPreferenceManager(), mSubId);
+ mCdmaSubscriptionPreferenceController = use(CdmaSubscriptionPreferenceController.class);
+ mCdmaSubscriptionPreferenceController.init(getPreferenceManager(), mSubId);
+
+ final VideoCallingPreferenceController videoCallingPreferenceController =
+ use(VideoCallingPreferenceController.class).init(mSubId);
+ use(Enhanced4gLtePreferenceController.class).init(mSubId)
+ .addListener(videoCallingPreferenceController);
+ }
+
+ @Override
+ public void onCreate(Bundle icicle) {
+ Log.i(LOG_TAG, "onCreate:+");
+ super.onCreate(icicle);
+ final Context context = getContext();
+
+ mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+ mTelephonyManager = TelephonyManager.from(context).createForSubscriptionId(mSubId);
+
+ onRestoreInstance(icicle);
+ }
+
+ @VisibleForTesting
+ void onRestoreInstance(Bundle icicle) {
+ if (icicle != null) {
+ mClickedPrefKey = icicle.getString(KEY_CLICKED_PREF);
+ }
+ }
+
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.mobile_network_settings;
+ }
+
+ @Override
+ protected String getLogTag() {
+ return LOG_TAG;
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putString(KEY_CLICKED_PREF, mClickedPrefKey);
+ }
+
+ @Override
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ switch (requestCode) {
+ case REQUEST_CODE_EXIT_ECM:
+ if (resultCode != Activity.RESULT_CANCELED) {
+ // If the phone exits from ECM mode, show the CDMA
+ final Preference preference = getPreferenceScreen()
+ .findPreference(mClickedPrefKey);
+ if (preference != null) {
+ preference.performClick();
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ //TODO(b/114749736): update search provider
+ public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ protected boolean isPageSearchEnabled(Context context) {
+ return false;
+ }
+
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
+ boolean enabled) {
+ final ArrayList<SearchIndexableResource> result = new ArrayList<>();
+
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.mobile_network_settings;
+ result.add(sir);
+ return result;
+ }
+ };
+}
diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
index 5e78e07..dc184d3 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
@@ -27,8 +27,10 @@
import android.os.PersistableBundle;
import android.os.SystemProperties;
import android.provider.Settings;
+import android.service.carrier.CarrierMessagingService;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
+import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -41,6 +43,9 @@
import com.android.ims.ImsException;
import com.android.ims.ImsManager;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.settings.R;
import java.util.Arrays;
import java.util.List;
@@ -78,7 +83,7 @@
* Returns true if Wifi calling is enabled for at least one phone.
*/
public static boolean isWifiCallingEnabled(Context context) {
- int phoneCount = TelephonyManager.from(context).getPhoneCount();
+ int phoneCount = context.getSystemService(TelephonyManager.class).getPhoneCount();
for (int i = 0; i < phoneCount; i++) {
if (isWifiCallingEnabled(context, i)) {
return true;
@@ -208,18 +213,13 @@
|| (!esimIgnoredDevice && enabledEsimUiByDefault && inEsimSupportedCountries));
}
- public static PersistableBundle getCarrierConfigBySubId(int mSubId) {
- //TODO(b/114749736): get carrier config from subId
- return new PersistableBundle();
- }
-
/**
* Set whether to enable data for {@code subId}, also whether to disable data for other
* subscription
*/
public static void setMobileDataEnabled(Context context, int subId, boolean enabled,
boolean disableOtherSubscriptions) {
- final TelephonyManager telephonyManager = TelephonyManager.from(context)
+ final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
.createForSubscriptionId(subId);
final SubscriptionManager subscriptionManager = context.getSystemService(
SubscriptionManager.class);
@@ -231,11 +231,177 @@
if (subInfoList != null) {
for (SubscriptionInfo subInfo : subInfoList) {
if (subInfo.getSubscriptionId() != subId) {
- TelephonyManager.from(context).createForSubscriptionId(
+ context.getSystemService(TelephonyManager.class).createForSubscriptionId(
subInfo.getSubscriptionId()).setDataEnabled(false);
}
}
}
}
}
-}
\ No newline at end of file
+
+ /**
+ * Return {@code true} if show CDMA category
+ */
+ public static boolean isCdmaOptions(Context context, int subId) {
+ if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ return false;
+ }
+ final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
+ .createForSubscriptionId(subId);
+ final PersistableBundle carrierConfig = context.getSystemService(
+ CarrierConfigManager.class).getConfigForSubId(subId);
+
+
+ if (telephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+ return true;
+ } else if (carrierConfig != null
+ && !carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL)
+ && carrierConfig.getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL)) {
+ return true;
+ }
+
+ if (isWorldMode(context, subId)) {
+ final int settingsNetworkMode = android.provider.Settings.Global.getInt(
+ context.getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + subId,
+ Phone.PREFERRED_NT_MODE);
+ if (settingsNetworkMode == TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA
+ || settingsNetworkMode == TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO) {
+ return true;
+ }
+
+ if (settingsNetworkMode == TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA
+ && !isTdscdmaSupported(context, telephonyManager)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * return {@code true} if we need show Gsm related settings
+ */
+ public static boolean isGsmOptions(Context context, int subId) {
+ if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ return false;
+ }
+ if (isGsmBasicOptions(context, subId)) {
+ return true;
+ }
+ final int settingsNetworkMode = android.provider.Settings.Global.getInt(
+ context.getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + subId,
+ Phone.PREFERRED_NT_MODE);
+ if (isWorldMode(context, subId)) {
+ if (settingsNetworkMode == TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO
+ || settingsNetworkMode == TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA) {
+ return true;
+ } else if (settingsNetworkMode == TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA
+ && !MobileNetworkUtils.isTdscdmaSupported(context, subId)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ private static boolean isGsmBasicOptions(Context context, int subId) {
+ final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
+ .createForSubscriptionId(subId);
+ final PersistableBundle carrierConfig = context.getSystemService(
+ CarrierConfigManager.class).getConfigForSubId(subId);
+
+ if (telephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_GSM) {
+ return true;
+ } else if (carrierConfig != null
+ && !carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL)
+ && carrierConfig.getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL)) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Return {@code true} if it is world mode, and we may show advanced options in telephony
+ * settings
+ */
+ public static boolean isWorldMode(Context context, int subId) {
+ final PersistableBundle carrierConfig = context.getSystemService(
+ CarrierConfigManager.class).getConfigForSubId(subId);
+ return carrierConfig == null
+ ? false
+ : carrierConfig.getBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL);
+ }
+
+ /**
+ * Return {@code true} if we need show settings for network selection(i.e. Verizon)
+ */
+ public static boolean shouldDisplayNetworkSelectOptions(Context context, int subId) {
+ final TelephonyManager telephonyManager = TelephonyManager.from(context)
+ .createForSubscriptionId(subId);
+ final PersistableBundle carrierConfig = context.getSystemService(
+ CarrierConfigManager.class).getConfigForSubId(subId);
+ if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID
+ || !carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL)
+ || (carrierConfig.getBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL)
+ && !telephonyManager.isManualNetworkSelectionAllowed())) {
+ return false;
+ }
+
+ if (isGsmBasicOptions(context, subId)) {
+ return true;
+ }
+
+ final int settingsNetworkMode = android.provider.Settings.Global.getInt(
+ context.getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + subId,
+ Phone.PREFERRED_NT_MODE);
+ if (isWorldMode(context, subId)) {
+ if (settingsNetworkMode == TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Return {@code true} if Tdscdma is supported in current subscription
+ */
+ public static boolean isTdscdmaSupported(Context context, int subId) {
+ return isTdscdmaSupported(context,
+ context.getSystemService(TelephonyManager.class).createForSubscriptionId(subId));
+ }
+
+ //TODO(b/117651939): move it to telephony
+ private static boolean isTdscdmaSupported(Context context, TelephonyManager telephonyManager) {
+ final PersistableBundle carrierConfig = context.getSystemService(
+ CarrierConfigManager.class).getConfig();
+
+ if (carrierConfig == null) {
+ return false;
+ }
+
+ if (carrierConfig.getBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL)) {
+ return true;
+ }
+
+ String operatorNumeric = telephonyManager.getServiceState().getOperatorNumeric();
+ String[] numericArray = carrierConfig.getStringArray(
+ CarrierConfigManager.KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY);
+ if (numericArray == null || operatorNumeric == null) {
+ return false;
+ }
+ for (String numeric : numericArray) {
+ if (operatorNumeric.equals(numeric)) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/src/com/android/settings/network/telephony/MobileSettingsActivity.java b/src/com/android/settings/network/telephony/MobileSettingsActivity.java
deleted file mode 100644
index e857871..0000000
--- a/src/com/android/settings/network/telephony/MobileSettingsActivity.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.network.telephony;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.view.Menu;
-import android.view.View;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentTransaction;
-
-import com.android.internal.util.CollectionUtils;
-import com.android.settings.R;
-import com.android.settings.core.SettingsBaseActivity;
-
-import com.google.android.material.bottomnavigation.BottomNavigationView;
-
-import java.util.List;
-
-public class MobileSettingsActivity extends SettingsBaseActivity {
-
- @VisibleForTesting
- static final String MOBILE_SETTINGS_TAG = "mobile_settings:";
- public static final String KEY_SUBSCRIPTION_ID = "key_subscription_id";
- public static final String KEY_CUR_SUBSCRIPTION_ID = "key_cur_subscription_id";
-
- private SubscriptionManager mSubscriptionManager;
- @VisibleForTesting
- Integer mCurSubscriptionId;
- @VisibleForTesting
- List<SubscriptionInfo> mSubscriptionInfos;
-
- private final SubscriptionManager.OnSubscriptionsChangedListener
- mOnSubscriptionsChangeListener
- = new SubscriptionManager.OnSubscriptionsChangedListener() {
- @Override
- public void onSubscriptionsChanged() {
- updateSubscriptions(null);
- }
- };
-
- @Override
- protected void onNewIntent(Intent intent) {
- super.onNewIntent(intent);
- //TODO(b/114749736): update fragment by new intent, or at least make sure this page shows
- // current tab for sim card
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.mobile_settings_container);
- mSubscriptionManager = getSystemService(SubscriptionManager.class);
- mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList();
- mCurSubscriptionId = savedInstanceState != null
- ? savedInstanceState.getInt(KEY_CUR_SUBSCRIPTION_ID)
- : null;
-
- mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
-
- updateSubscriptions(savedInstanceState);
- }
-
- @Override
- protected void onSaveInstanceState(@NonNull Bundle outState) {
- super.onSaveInstanceState(outState);
- saveInstanceState(outState);
- }
-
- @VisibleForTesting
- void saveInstanceState(@NonNull Bundle outState) {
- outState.putInt(KEY_CUR_SUBSCRIPTION_ID, mCurSubscriptionId);
- }
-
- @VisibleForTesting
- void updateSubscriptions(Bundle savedInstanceState) {
- //TODO(b/114749736): Sort it by phoneId
- mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList();
- final int subId = CollectionUtils.isEmpty(mSubscriptionInfos)
- ? SubscriptionManager.INVALID_SUBSCRIPTION_ID
- : mSubscriptionInfos.get(0).getSubscriptionId();
-
- updateBottomNavigationView();
-
- if (savedInstanceState == null) {
- switchFragment(new MobileNetworkFragment(), subId);
- }
- }
-
- @VisibleForTesting
- void updateBottomNavigationView() {
- final BottomNavigationView navigation = findViewById(R.id.bottom_nav);
-
- if (CollectionUtils.size(mSubscriptionInfos) <= 1) {
- navigation.setVisibility(View.GONE);
- } else {
- final Menu menu = navigation.getMenu();
- menu.clear();
- for (int i = 0, size = mSubscriptionInfos.size(); i < size; i++) {
- final SubscriptionInfo subscriptionInfo = mSubscriptionInfos.get(i);
- menu.add(0, subscriptionInfo.getSubscriptionId(), i,
- subscriptionInfo.getDisplayName());
- }
- navigation.setOnNavigationItemSelectedListener(item -> {
- switchFragment(new MobileNetworkFragment(), item.getItemId());
- return true;
- });
- }
- }
-
- @VisibleForTesting
- void switchFragment(Fragment fragment, int subscriptionId) {
- if (mCurSubscriptionId != null && subscriptionId == mCurSubscriptionId) {
- return;
- }
- final FragmentManager fragmentManager = getSupportFragmentManager();
- final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
- final Bundle bundle = new Bundle();
- bundle.putInt(KEY_SUBSCRIPTION_ID, subscriptionId);
-
- if (mCurSubscriptionId != null) {
- final Fragment hideFragment = fragmentManager.findFragmentByTag(
- buildFragmentTag(mCurSubscriptionId));
- if (hideFragment != null) {
- fragmentTransaction.hide(hideFragment);
- }
- }
-
- Fragment showFragment = fragmentManager.findFragmentByTag(buildFragmentTag(subscriptionId));
- if (showFragment == null) {
- fragment.setArguments(bundle);
- fragmentTransaction.add(R.id.main_content, fragment, buildFragmentTag(subscriptionId));
- } else {
- showFragment.setArguments(bundle);
- fragmentTransaction.show(showFragment);
- }
- fragmentTransaction.commit();
- mCurSubscriptionId = subscriptionId;
- }
-
- private String buildFragmentTag(int subscriptionId) {
- return MOBILE_SETTINGS_TAG + subscriptionId;
- }
-}
\ No newline at end of file
diff --git a/src/com/android/settings/network/telephony/NetworkOperatorPreference.java b/src/com/android/settings/network/telephony/NetworkOperatorPreference.java
index 4b00613..fd57bf5 100644
--- a/src/com/android/settings/network/telephony/NetworkOperatorPreference.java
+++ b/src/com/android/settings/network/telephony/NetworkOperatorPreference.java
@@ -22,17 +22,18 @@
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.telephony.CellInfo;
+import android.telephony.CellSignalStrength;
import android.telephony.SignalStrength;
import android.util.Log;
import android.view.Gravity;
+import androidx.preference.Preference;
+
import com.android.settings.R;
import com.android.settingslib.graph.SignalDrawable;
import java.util.List;
-import androidx.preference.Preference;
-
/**
* A Preference represents a network operator in the NetworkSelectSetting fragment.
*/
@@ -40,21 +41,26 @@
private static final String TAG = "NetworkOperatorPref";
private static final boolean DBG = false;
+
+ private static final int LEVEL_NONE = -1;
+
// number of signal strength level
public static final int NUMBER_OF_LEVELS = SignalStrength.NUM_SIGNAL_STRENGTH_BINS;
private CellInfo mCellInfo;
private List<String> mForbiddenPlmns;
- private int mLevel = -1;
+ private int mLevel = LEVEL_NONE;
+ private boolean mShow4GForLTE;
// The following constants are used to draw signal icon.
private static final Drawable EMPTY_DRAWABLE = new ColorDrawable(Color.TRANSPARENT);
private static final int NO_CELL_DATA_CONNECTED_ICON = 0;
public NetworkOperatorPreference(
- CellInfo cellinfo, Context context, List<String> forbiddenPlmns) {
+ CellInfo cellinfo, Context context, List<String> forbiddenPlmns, boolean show4GForLTE) {
super(context);
mCellInfo = cellinfo;
mForbiddenPlmns = forbiddenPlmns;
+ mShow4GForLTE = show4GForLTE;
refresh();
}
@@ -72,7 +78,9 @@
networkTitle += " " + getContext().getResources().getString(R.string.forbidden_network);
}
setTitle(networkTitle);
- int level = mCellInfo.getCellSignalStrength().getLevel();
+
+ final CellSignalStrength signalStrength = mCellInfo.getCellSignalStrength();
+ final int level = signalStrength != null ? signalStrength.getLevel() : LEVEL_NONE;
if (DBG) Log.d(TAG, "refresh level: " + String.valueOf(level));
if (mLevel != level) {
mLevel = level;
@@ -87,29 +95,30 @@
updateIcon(level);
}
- private static int getIconIdForCell(CellInfo ci) {
+ 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_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 R.drawable.signal_strength_lte;
- case CellInfo.TYPE_CDMA: return R.drawable.signal_strength_1x;
- default: return 0;
+ 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 0;
}
}
private void updateIcon(int level) {
if (level < 0 || level >= NUMBER_OF_LEVELS) return;
Context context = getContext();
- // Make the signal strength drawable
- int iconId = 0;
- if (DBG) Log.d(TAG, "updateIcon level: " + String.valueOf(level));
- iconId = SignalDrawable.getState(level, NUMBER_OF_LEVELS, false /* cutOut */);
-
SignalDrawable signalDrawable = new SignalDrawable(getContext());
- signalDrawable.setLevel(iconId);
- signalDrawable.setDarkIntensity(0);
+ signalDrawable.setLevel(
+ SignalDrawable.getState(level, NUMBER_OF_LEVELS, false /* cutOut */));
// Make the network type drawable
int iconType = getIconIdForCell(mCellInfo);
@@ -117,10 +126,10 @@
iconType == NO_CELL_DATA_CONNECTED_ICON
? EMPTY_DRAWABLE
: getContext()
- .getResources().getDrawable(iconType, getContext().getTheme());
+ .getResources().getDrawable(iconType, getContext().getTheme());
// Overlay the two drawables
- Drawable[] layers = {networkDrawable, signalDrawable};
+ final Drawable[] layers = {networkDrawable, signalDrawable};
final int iconSize =
context.getResources().getDimensionPixelSize(R.dimen.signal_strength_icon_size);
diff --git a/src/com/android/settings/network/telephony/NetworkOperators.java b/src/com/android/settings/network/telephony/NetworkOperators.java
deleted file mode 100644
index 7014820..0000000
--- a/src/com/android/settings/network/telephony/NetworkOperators.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.network.telephony;
-
-import android.app.ProgressDialog;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Handler;
-import android.os.Message;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.widget.Toast;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceCategory;
-import androidx.preference.TwoStatePreference;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.R;
-import com.android.settingslib.utils.ThreadUtils;
-
-/**
- * "Networks" settings UI for the Phone app.
- */
-public class NetworkOperators extends PreferenceCategory
- implements Preference.OnPreferenceChangeListener {
-
- private static final String LOG_TAG = "NetworkOperators";
- private static final boolean DBG = true;
-
- private static final int EVENT_AUTO_SELECT_DONE = 100;
- private static final int EVENT_GET_NETWORK_SELECTION_MODE_DONE = 200;
-
- //String keys for preference lookup
- public static final String BUTTON_NETWORK_SELECT_KEY = "button_network_select_key";
- public static final String BUTTON_AUTO_SELECT_KEY = "button_auto_select_key";
- public static final String BUTTON_CHOOSE_NETWORK_KEY = "button_choose_network_key";
- public static final String CATEGORY_NETWORK_OPERATORS_KEY = "network_operators_category_key";
-
- //preference objects
- private NetworkSelectListPreference mNetworkSelect;
- private TwoStatePreference mAutoSelect;
- private Preference mChooseNetwork;
- private ProgressDialog mProgressDialog;
-
- private int mSubId;
- private TelephonyManager mTelephonyManager;
-
- // There's two sets of Auto-Select UI in this class.
- // If {@code com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI} set as true
- // {@link mChooseNetwork} will be used, otherwise {@link mNetworkSelect} will be used.
- boolean mEnableNewManualSelectNetworkUI;
-
- public NetworkOperators(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public NetworkOperators(Context context) {
- super(context);
- }
-
- /**
- * Initialize NetworkOperators instance.
- */
- public void initialize() {
- mEnableNewManualSelectNetworkUI = getContext().getResources().getBoolean(
- com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI);
- mAutoSelect = (TwoStatePreference) findPreference(BUTTON_AUTO_SELECT_KEY);
- mChooseNetwork = findPreference(BUTTON_CHOOSE_NETWORK_KEY);
- mNetworkSelect = (NetworkSelectListPreference) findPreference(BUTTON_NETWORK_SELECT_KEY);
- if (mEnableNewManualSelectNetworkUI) {
- removePreference(mNetworkSelect);
- } else {
- removePreference(mChooseNetwork);
- }
- mProgressDialog = new ProgressDialog(getContext());
- mTelephonyManager = TelephonyManager.from(getContext());
- }
-
- /**
- * Update NetworkOperators instance if like subId is updated.
- *
- * @param subId Corresponding subscription ID of this network.
- */
- protected void update(final int subId) {
- mSubId = subId;
- mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
-
- if (mAutoSelect != null) {
- mAutoSelect.setOnPreferenceChangeListener(this);
- }
-
- if (mEnableNewManualSelectNetworkUI) {
- if (mChooseNetwork != null) {
- ServiceState ss = mTelephonyManager.getServiceState();
- if (ss != null && ss.getState() == ServiceState.STATE_IN_SERVICE) {
- mChooseNetwork.setSummary(mTelephonyManager.getNetworkOperatorName());
- } else {
- mChooseNetwork.setSummary(R.string.network_disconnected);
- }
- }
- } else {
- if (mNetworkSelect != null) {
- mNetworkSelect.initialize(mSubId, this, mProgressDialog);
- }
- }
- getNetworkSelectionMode();
- }
-
- /**
- * Implemented to support onPreferenceChangeListener to look for preference
- * changes specifically on auto select button.
- *
- * @param preference is the preference to be changed, should be auto select button.
- * @param newValue should be the value of whether autoSelect is checked.
- */
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- if (preference == mAutoSelect) {
- boolean autoSelect = (Boolean) newValue;
- if (DBG) logd("onPreferenceChange autoSelect: " + String.valueOf(autoSelect));
- selectNetworkAutomatic(autoSelect);
- MetricsLogger.action(getContext(),
- MetricsEvent.ACTION_MOBILE_NETWORK_AUTO_SELECT_NETWORK_TOGGLE, autoSelect);
- return true;
- }
- return false;
- }
-
- private final Handler mHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case EVENT_AUTO_SELECT_DONE:
- mAutoSelect.setEnabled(true);
- dismissProgressBar();
-
- boolean isSuccessed = (boolean) msg.obj;
-
- if (isSuccessed) {
- if (DBG) logd("automatic network selection: succeeded!");
- displayNetworkSelectionSucceeded();
- } else {
- if (DBG) logd("automatic network selection: failed!");
- displayNetworkSelectionFailed();
- }
-
- break;
- case EVENT_GET_NETWORK_SELECTION_MODE_DONE:
- int networkSelectionMode = msg.arg1;
- if (networkSelectionMode == TelephonyManager.NETWORK_SELECTION_MODE_UNKNOWN) {
- if (DBG) logd("get network selection mode: failed!");
- } else {
- boolean autoSelect = networkSelectionMode
- == TelephonyManager.NETWORK_SELECTION_MODE_AUTO;
- if (DBG) {
- logd("get network selection mode: "
- + (autoSelect ? "auto" : "manual") + " selection");
- }
- if (mAutoSelect != null) {
- mAutoSelect.setChecked(autoSelect);
- }
- if (mEnableNewManualSelectNetworkUI) {
- if (mChooseNetwork != null) {
- mChooseNetwork.setEnabled(!autoSelect);
- }
- } else {
- if (mNetworkSelect != null) {
- mNetworkSelect.setEnabled(!autoSelect);
- }
- }
- }
- }
- return;
- }
- };
-
- // Used by both mAutoSelect and mNetworkSelect buttons.
- protected void displayNetworkSelectionFailed() {
- Toast.makeText(getContext(), R.string.connect_later, Toast.LENGTH_LONG).show();
- }
-
- // Used by both mAutoSelect and mNetworkSelect buttons.
- protected void displayNetworkSelectionSucceeded() {
- Toast.makeText(getContext(), R.string.registration_done, Toast.LENGTH_LONG).show();
- }
-
- private void selectNetworkAutomatic(boolean autoSelect) {
- if (DBG) logd("selectNetworkAutomatic: " + String.valueOf(autoSelect));
-
- if (autoSelect) {
- if (mEnableNewManualSelectNetworkUI) {
- if (mChooseNetwork != null) {
- mChooseNetwork.setEnabled(!autoSelect);
- }
- } else {
- if (mNetworkSelect != null) {
- mNetworkSelect.setEnabled(!autoSelect);
- }
- }
- if (DBG) logd("select network automatically...");
- showAutoSelectProgressBar();
- mAutoSelect.setEnabled(false);
- if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
- ThreadUtils.postOnBackgroundThread(() -> {
- mTelephonyManager.setNetworkSelectionModeAutomatic();
- // Because TelephonyManager#setNetworkSelectionModeAutomatic doesn't have a
- // return value, we query the current network selection mode to tell if the
- // TelephonyManager#setNetworkSelectionModeAutomatic is successed.
- int networkSelectionMode = mTelephonyManager.getNetworkSelectionMode();
- Message msg = mHandler.obtainMessage(EVENT_AUTO_SELECT_DONE);
- msg.obj = networkSelectionMode == TelephonyManager.NETWORK_SELECTION_MODE_AUTO;
- msg.sendToTarget();
- });
- }
- } else {
- if (mEnableNewManualSelectNetworkUI) {
- if (mChooseNetwork != null) {
- // Open the choose Network page automatically when user turn off the auto-select
- openChooseNetworkPage();
- }
- } else {
- if (mNetworkSelect != null) {
- mNetworkSelect.onClick();
- }
- }
- }
- }
-
- protected void getNetworkSelectionMode() {
- if (DBG) logd("getting network selection mode...");
- ThreadUtils.postOnBackgroundThread(() -> {
- int networkSelectionMode = mTelephonyManager.getNetworkSelectionMode();
- Message msg = mHandler.obtainMessage(EVENT_GET_NETWORK_SELECTION_MODE_DONE);
- msg.arg1 = networkSelectionMode;
- msg.sendToTarget();
- });
- }
-
- private void dismissProgressBar() {
- if (mProgressDialog != null && mProgressDialog.isShowing()) {
- mProgressDialog.dismiss();
- }
- }
-
- private void showAutoSelectProgressBar() {
- mProgressDialog.setMessage(
- getContext().getResources().getString(R.string.register_automatically));
- mProgressDialog.setCanceledOnTouchOutside(false);
- mProgressDialog.setCancelable(false);
- mProgressDialog.setIndeterminate(true);
- mProgressDialog.show();
- }
-
- /**
- * Open the Choose network page via {@alink NetworkSelectSettingActivity}
- */
- public void openChooseNetworkPage() {
- //TODO(b/114749736): Build intent without calling static method
- Intent intent = new Intent();
- getContext().startActivity(intent);
- }
-
- protected boolean preferenceTreeClick(Preference preference) {
- if (mEnableNewManualSelectNetworkUI) {
- if (DBG) logd("enable New AutoSelectNetwork UI");
- if (preference == mChooseNetwork) {
- openChooseNetworkPage();
- }
- return (preference == mAutoSelect || preference == mChooseNetwork);
- } else {
- return (preference == mAutoSelect || preference == mNetworkSelect);
- }
- }
-
- private void logd(String msg) {
- Log.d(LOG_TAG, "[NetworksList] " + msg);
- }
-
- private void loge(String msg) {
- Log.e(LOG_TAG, "[NetworksList] " + msg);
- }
-}
diff --git a/src/com/android/settings/network/telephony/NetworkSelectListPreference.java b/src/com/android/settings/network/telephony/NetworkSelectListPreference.java
deleted file mode 100644
index ceb0efa..0000000
--- a/src/com/android/settings/network/telephony/NetworkSelectListPreference.java
+++ /dev/null
@@ -1,506 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.network.telephony;
-
-import android.app.ProgressDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.os.AsyncTask;
-import android.os.Handler;
-import android.os.Message;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.telephony.CellInfo;
-import android.telephony.CellInfoCdma;
-import android.telephony.CellInfoGsm;
-import android.telephony.CellInfoLte;
-import android.telephony.CellInfoWcdma;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.text.BidiFormatter;
-import android.text.TextDirectionHeuristics;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.widget.Toast;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.OperatorInfo;
-import com.android.settings.R;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-import androidx.preference.ListPreference;
-import androidx.preference.Preference;
-
-
-/**
- * "Networks" preference in "Mobile network" settings UI for the Phone app.
- * It's used to manually search and choose mobile network. Enabled only when
- * autoSelect preference is turned off.
- */
-public class NetworkSelectListPreference extends ListPreference
- implements DialogInterface.OnCancelListener,
- Preference.OnPreferenceChangeListener{
-
- private static final String LOG_TAG = "networkSelect";
- private static final boolean DBG = true;
-
- private static final int EVENT_MANUALLY_NETWORK_SELECTION_DONE = 1;
- private static final int EVENT_NETWORK_SCAN_RESULTS = 2;
- private static final int EVENT_NETWORK_SCAN_COMPLETED = 3;
- private static final int EVENT_NETWORK_SCAN_ERROR = 4;
-
- //dialog ids
- private static final int DIALOG_NETWORK_SELECTION = 100;
- private static final int DIALOG_NETWORK_LIST_LOAD = 200;
-
- private final ExecutorService mNetworkScanExecutor = Executors.newFixedThreadPool(1);
-
- private List<CellInfo> mCellInfoList;
- private CellInfo mCellInfo;
-
- private int mSubId;
- private TelephonyManager mTelephonyManager;
- private NetworkScanHelper mNetworkScanHelper;
- private NetworkOperators mNetworkOperators;
- private List<String> mForbiddenPlmns;
-
- private ProgressDialog mProgressDialog;
- public NetworkSelectListPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public NetworkSelectListPreference(Context context, AttributeSet attrs, int defStyleAttr,
- int defStyleRes) {
- super(context, attrs, defStyleAttr, defStyleRes);
- }
-
- @Override
- protected void onClick() {
- showProgressDialog(DIALOG_NETWORK_LIST_LOAD);
- TelephonyManager telephonyManager = (TelephonyManager)
- getContext().getSystemService(Context.TELEPHONY_SERVICE);
- new AsyncTask<Void, Void, List<String>>() {
- @Override
- protected List<String> doInBackground(Void... voids) {
- String[] forbiddenPlmns = telephonyManager.getForbiddenPlmns();
- return forbiddenPlmns != null ? Arrays.asList(forbiddenPlmns) : null;
- }
-
- @Override
- protected void onPostExecute(List<String> result) {
- mForbiddenPlmns = result;
- loadNetworksList();
- }
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
-
- private final Handler mHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case EVENT_MANUALLY_NETWORK_SELECTION_DONE:
- if (DBG) logd("hideProgressPanel");
- dismissProgressDialog();
-
- boolean isSuccessed = (boolean) msg.obj;
- if (isSuccessed) {
- if (DBG) {
- logd("manual network selection: succeeded! "
- + getNetworkTitle(mCellInfo));
- }
- mNetworkOperators.displayNetworkSelectionSucceeded();
- } else {
- if (DBG) logd("manual network selection: failed!");
- mNetworkOperators.displayNetworkSelectionFailed();
- }
- mNetworkOperators.getNetworkSelectionMode();
- break;
-
- case EVENT_NETWORK_SCAN_RESULTS:
- List<CellInfo> results = (List<CellInfo>) msg.obj;
- results.removeIf(cellInfo -> cellInfo == null);
- mCellInfoList = new ArrayList<>(results);
- if (DBG) logd("CALLBACK_SCAN_RESULTS" + mCellInfoList.toString());
- break;
-
- case EVENT_NETWORK_SCAN_COMPLETED:
- if (DBG) logd("scan complete, load the cellInfosList");
- dismissProgressDialog();
- networksListLoaded();
- break;
- case EVENT_NETWORK_SCAN_ERROR:
- dismissProgressDialog();
- displayNetworkQueryFailed();
- mNetworkOperators.getNetworkSelectionMode();
- break;
- }
- return;
- }
- };
-
- private final NetworkScanHelper.NetworkScanCallback mCallback =
- new NetworkScanHelper.NetworkScanCallback() {
- public void onResults(List<CellInfo> results) {
- if (DBG) logd("get scan results: " + results.toString());
- Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_RESULTS, results);
- msg.sendToTarget();
- }
-
- public void onComplete() {
- if (DBG) logd("network scan completed.");
- Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED);
- msg.sendToTarget();
- }
-
- public void onError(int error) {
- if (DBG) logd("network scan error.");
- Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_ERROR);
- msg.sendToTarget();
- }
- };
-
- @Override
- //implemented for DialogInterface.OnCancelListener
- public void onCancel(DialogInterface dialog) {
- if (DBG) logd("user manually close the dialog");
- mNetworkScanHelper.stopNetworkQuery();
-
- // If cancelled, we query NetworkSelectMode and update states of AutoSelect button.
- mNetworkOperators.getNetworkSelectionMode();
- }
-
- //TODO(b/114749736): move this logic to preference controller
- protected void onDialogClosed(boolean positiveResult) {
- // If dismissed, we query NetworkSelectMode and update states of AutoSelect button.
- if (!positiveResult) {
- mNetworkOperators.getNetworkSelectionMode();
- }
- }
-
- // This initialize method needs to be called for this preference to work properly.
- protected void initialize(int subId, NetworkOperators networkOperators,
- ProgressDialog progressDialog) {
- mSubId = subId;
- mNetworkOperators = networkOperators;
- // This preference should share the same progressDialog with networkOperators category.
- mProgressDialog = progressDialog;
-
- mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
- mNetworkScanHelper = new NetworkScanHelper(
- mTelephonyManager, mCallback, mNetworkScanExecutor);
-
- setSummary(mTelephonyManager.getNetworkOperatorName());
-
- setOnPreferenceChangeListener(this);
- }
-
- @Override
- protected void onPrepareForRemoval() {
- destroy();
- super.onPrepareForRemoval();
- }
-
- private void destroy() {
- dismissProgressDialog();
-
- if (mNetworkScanHelper != null) {
- mNetworkScanHelper.stopNetworkQuery();
- }
-
- mNetworkScanExecutor.shutdown();
- }
-
- private void displayEmptyNetworkList() {
- Toast.makeText(getContext(), R.string.empty_networks_list, Toast.LENGTH_LONG).show();
- }
-
- private void displayNetworkQueryFailed() {
- Toast.makeText(getContext(), R.string.network_query_error, Toast.LENGTH_LONG).show();
- }
-
- private void loadNetworksList() {
- if (DBG) logd("load networks list...");
- mNetworkScanHelper.startNetworkScan(
- NetworkScanHelper.NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS);
- }
-
- private void networksListLoaded() {
- if (DBG) logd("networks list loaded");
-
- mNetworkOperators.getNetworkSelectionMode();
- if (mCellInfoList != null) {
- // create a preference for each item in the list.
- // just use the operator name instead of the mildly
- // confusing mcc/mnc.
- List<CharSequence> networkEntriesList = new ArrayList<>();
- List<CharSequence> networkEntryValuesList = new ArrayList<>();
- for (CellInfo cellInfo: mCellInfoList) {
- // Display each operator name only once.
- String networkTitle = getNetworkTitle(cellInfo);
- if (CellInfoUtil.isForbidden(cellInfo, mForbiddenPlmns)) {
- networkTitle += " "
- + getContext().getResources().getString(R.string.forbidden_network);
- }
- networkEntriesList.add(networkTitle);
- networkEntryValuesList.add(getOperatorNumeric(cellInfo));
- }
- setEntries(networkEntriesList.toArray(new CharSequence[networkEntriesList.size()]));
- setEntryValues(networkEntryValuesList.toArray(
- new CharSequence[networkEntryValuesList.size()]));
-
- super.onClick();
- } else {
- displayEmptyNetworkList();
- }
- }
-
- private void dismissProgressDialog() {
- if (mProgressDialog != null && mProgressDialog.isShowing()) {
- try {
- mProgressDialog.dismiss();
- } catch (IllegalArgumentException ex) {
- loge("Can't close the progress dialog " + ex);
- }
- }
- }
-
- private void showProgressDialog(int id) {
- if (mProgressDialog == null) {
- mProgressDialog = new ProgressDialog(getContext());
- } else {
- // Dismiss progress bar if it's showing now.
- dismissProgressDialog();
- }
-
- switch (id) {
- case DIALOG_NETWORK_SELECTION:
- final String networkSelectMsg = getContext().getResources()
- .getString(R.string.register_on_network,
- getNetworkTitle(mCellInfo));
- mProgressDialog.setMessage(networkSelectMsg);
- mProgressDialog.setCanceledOnTouchOutside(false);
- mProgressDialog.setCancelable(false);
- mProgressDialog.setIndeterminate(true);
- break;
- case DIALOG_NETWORK_LIST_LOAD:
- mProgressDialog.setMessage(
- getContext().getResources().getString(R.string.load_networks_progress));
- mProgressDialog.setCanceledOnTouchOutside(false);
- mProgressDialog.setCancelable(true);
- mProgressDialog.setIndeterminate(false);
- mProgressDialog.setOnCancelListener(this);
- break;
- default:
- }
- mProgressDialog.show();
- }
-
- /**
- * Implemented to support onPreferenceChangeListener to look for preference
- * changes specifically on this button.
- *
- * @param preference is the preference to be changed, should be network select button.
- * @param newValue should be the value of the selection as index of operators.
- */
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- int operatorIndex = findIndexOfValue((String) newValue);
- mCellInfo = mCellInfoList.get(operatorIndex);
- if (DBG) logd("selected network: " + mCellInfo.toString());
-
- MetricsLogger.action(getContext(),
- MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK);
-
- if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
- ThreadUtils.postOnBackgroundThread(() -> {
- final OperatorInfo operatorInfo = getOperatorInfoFromCellInfo(mCellInfo);
- if (DBG) logd("manually selected network: " + operatorInfo.toString());
- boolean isSuccessed = mTelephonyManager.setNetworkSelectionModeManual(
- operatorInfo, true /* persistSelection */);
- Message msg = mHandler.obtainMessage(EVENT_MANUALLY_NETWORK_SELECTION_DONE);
- msg.obj = isSuccessed;
- msg.sendToTarget();
- });
- } else {
- loge("Error selecting network, subscription Id is invalid " + mSubId);
- }
-
- return true;
- }
-
- /**
- * Returns the title of the network obtained in the manual search.
- *
- * @param cellInfo contains the information of the network.
- * @return Long Name if not null/empty, otherwise Short Name if not null/empty,
- * else MCCMNC string.
- */
- private String getNetworkTitle(CellInfo cellInfo) {
- OperatorInfo ni = getOperatorInfoFromCellInfo(cellInfo);
-
- if (!TextUtils.isEmpty(ni.getOperatorAlphaLong())) {
- return ni.getOperatorAlphaLong();
- } else if (!TextUtils.isEmpty(ni.getOperatorAlphaShort())) {
- return ni.getOperatorAlphaShort();
- } else {
- BidiFormatter bidiFormatter = BidiFormatter.getInstance();
- return bidiFormatter.unicodeWrap(ni.getOperatorNumeric(), TextDirectionHeuristics.LTR);
- }
- }
-
- /**
- * Returns the operator numeric (MCCMNC) obtained in the manual search.
- *
- * @param cellInfo contains the information of the network.
- * @return MCCMNC string.
- */
- private String getOperatorNumeric(CellInfo cellInfo) {
- return getOperatorInfoFromCellInfo(cellInfo).getOperatorNumeric();
- }
-
- /**
- * Wrap a cell info into an operator info.
- */
- private 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 {
- oi = new OperatorInfo("", "", "");
- }
- return oi;
- }
-
- @Override
- protected Parcelable onSaveInstanceState() {
- final Parcelable superState = super.onSaveInstanceState();
- if (isPersistent()) {
- // No need to save instance state since it's persistent
- return superState;
- }
-
- final SavedState myState = new SavedState(superState);
- myState.mDialogListEntries = getEntries();
- myState.mDialogListEntryValues = getEntryValues();
- myState.mCellInfoList = mCellInfoList;
- return myState;
- }
-
- @Override
- protected void onRestoreInstanceState(Parcelable state) {
- if (state == null || !state.getClass().equals(SavedState.class)) {
- // Didn't save state for us in onSaveInstanceState
- super.onRestoreInstanceState(state);
- return;
- }
-
- SavedState myState = (SavedState) state;
-
- if (getEntries() == null && myState.mDialogListEntries != null) {
- setEntries(myState.mDialogListEntries);
- }
- if (getEntryValues() == null && myState.mDialogListEntryValues != null) {
- setEntryValues(myState.mDialogListEntryValues);
- }
- if (mCellInfoList == null && myState.mCellInfoList != null) {
- mCellInfoList = myState.mCellInfoList;
- }
-
- super.onRestoreInstanceState(myState.getSuperState());
- }
-
- /**
- * We save entries, entryValues and operatorInfoList into bundle.
- * At onCreate of fragment, dialog will be restored if it was open. In this case,
- * we need to restore entries, entryValues and operatorInfoList. Without those information,
- * onPreferenceChange will fail if user select network from the dialog.
- */
- private static class SavedState extends BaseSavedState {
- CharSequence[] mDialogListEntries;
- CharSequence[] mDialogListEntryValues;
- List<CellInfo> mCellInfoList;
-
- SavedState(Parcel source) {
- super(source);
- final ClassLoader boot = Object.class.getClassLoader();
- mDialogListEntries = source.readCharSequenceArray();
- mDialogListEntryValues = source.readCharSequenceArray();
- mCellInfoList = source.readParcelableList(mCellInfoList, boot);
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- super.writeToParcel(dest, flags);
- dest.writeCharSequenceArray(mDialogListEntries);
- dest.writeCharSequenceArray(mDialogListEntryValues);
- dest.writeParcelableList(mCellInfoList, flags);
- }
-
- SavedState(Parcelable superState) {
- super(superState);
- }
-
- public static final Parcelable.Creator<SavedState> CREATOR =
- new Parcelable.Creator<SavedState>() {
- public SavedState createFromParcel(Parcel in) {
- return new SavedState(in);
- }
-
- public SavedState[] newArray(int size) {
- return new SavedState[size];
- }
- };
- }
-
- private void logd(String msg) {
- Log.d(LOG_TAG, "[NetworksList] " + msg);
- }
-
- private void loge(String msg) {
- Log.e(LOG_TAG, "[NetworksList] " + msg);
- }
-}
\ No newline at end of file
diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
index 9205188..9df9d1e 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -15,34 +15,35 @@
*/
package com.android.settings.network.telephony;
+import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.MOBILE_NETWORK_SELECT;
+
+import android.app.Activity;
import android.content.Context;
-import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
-import android.provider.SearchIndexableResource;
+import android.os.PersistableBundle;
+import android.provider.Settings;
import android.telephony.AccessNetworkConstants;
+import android.telephony.CarrierConfigManager;
import android.telephony.CellIdentity;
import android.telephony.CellInfo;
import android.telephony.NetworkRegistrationState;
import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
-import android.util.Log;
import android.view.View;
+import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
-import androidx.preference.PreferenceScreen;
-import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.telephony.OperatorInfo;
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.search.Indexable;
-import com.android.settingslib.search.SearchIndexable;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.utils.ThreadUtils;
import java.util.ArrayList;
@@ -50,18 +51,15 @@
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.
*/
-//TODO(b/115429509): Add test for this file once b/115429509 is not blocked anymore
-@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class NetworkSelectSettings extends DashboardFragment {
- private static final String TAG = "NetworkSelectSetting";
- private static final boolean DBG = true;
-
- public static final String KEY_SUBSCRIPTION_ID = "subscription_id";
+ private static final String TAG = "NetworkSelectSettings";
private static final int EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE = 1;
private static final int EVENT_NETWORK_SCAN_RESULTS = 2;
@@ -72,159 +70,125 @@
"connected_network_operator_preference";
private static final String PREF_KEY_NETWORK_OPERATORS = "network_operators_preference";
- // used to add/remove NetworkOperatorsPreference.
- private PreferenceCategory mNetworkOperatorsPreferences;
- // used to add/remove connected NetworkOperatorPreference.
- private PreferenceCategory mConnectedNetworkOperatorsPreference;
- // manage the progress bar on the top of the page.
+ @VisibleForTesting
+ PreferenceCategory mPreferenceCategory;
+ @VisibleForTesting
+ PreferenceCategory mConnectedPreferenceCategory;
+ @VisibleForTesting
+ NetworkOperatorPreference mSelectedPreference;
private View mProgressHeader;
private Preference mStatusMessagePreference;
- private List<CellInfo> mCellInfoList;
+ @VisibleForTesting
+ List<CellInfo> mCellInfoList;
private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
- private NetworkOperatorPreference mSelectedNetworkOperatorPreference;
- private TelephonyManager mTelephonyManager;
+ @VisibleForTesting
+ TelephonyManager mTelephonyManager;
private List<String> mForbiddenPlmns;
- //Flag indicating whether we have called bind on the service.
- private boolean mShouldUnbind;
-
- private final Runnable mUpdateNetworkOperatorsRunnable = () -> {
- updateNetworkOperatorsPreferenceCategory();
- };
-
- /**
- * Create a new instance of this fragment.
- */
- public static NetworkSelectSettings newInstance(int subId) {
- Bundle args = new Bundle();
- args.putInt(KEY_SUBSCRIPTION_ID, subId);
- NetworkSelectSettings
- fragment = new NetworkSelectSettings();
- fragment.setArguments(args);
-
- return fragment;
- }
+ private boolean mShow4GForLTE = false;
+ private NetworkScanHelper mNetworkScanHelper;
+ private final ExecutorService mNetworkScanExecutor = Executors.newFixedThreadPool(1);
+ private MetricsFeatureProvider mMetricsFeatureProvider;
+ private boolean mUseNewApi;
@Override
public void onCreate(Bundle icicle) {
- if (DBG) logd("onCreate");
super.onCreate(icicle);
- mSubId = getArguments().getInt(KEY_SUBSCRIPTION_ID);
+ mUseNewApi = getContext().getResources().getBoolean(
+ com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI);
+ mSubId = getArguments().getInt(Settings.EXTRA_SUB_ID);
- mConnectedNetworkOperatorsPreference =
+ mConnectedPreferenceCategory =
(PreferenceCategory) findPreference(PREF_KEY_CONNECTED_NETWORK_OPERATOR);
- mNetworkOperatorsPreferences =
+ mPreferenceCategory =
(PreferenceCategory) findPreference(PREF_KEY_NETWORK_OPERATORS);
mStatusMessagePreference = new Preference(getContext());
- mSelectedNetworkOperatorPreference = null;
+ mSelectedPreference = null;
mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
- setRetainInstance(true);
+ mNetworkScanHelper = new NetworkScanHelper(
+ mTelephonyManager, mCallback, mNetworkScanExecutor);
+ PersistableBundle bundle = ((CarrierConfigManager) getContext().getSystemService(
+ Context.CARRIER_CONFIG_SERVICE)).getConfigForSubId(mSubId);
+ if (bundle != null) {
+ mShow4GForLTE = bundle.getBoolean(
+ CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
+ }
+
+ mMetricsFeatureProvider = FeatureFactory
+ .getFactory(getContext()).getMetricsFeatureProvider();
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- mProgressHeader = setPinnedHeaderView(R.layout.wifi_progress_header)
- .findViewById(R.id.progress_bar_animation);
- setProgressBarVisible(false);
- forceConfigConnectedNetworkOperatorsPreferenceCategory();
+ final Activity activity = getActivity();
+ if (activity != null) {
+ mProgressHeader = setPinnedHeaderView(R.layout.wifi_progress_header)
+ .findViewById(R.id.progress_bar_animation);
+ setProgressBarVisible(false);
+ }
+ forceUpdateConnectedPreferenceCategory();
}
@Override
public void onStart() {
super.onStart();
- new AsyncTask<Void, Void, List<String>>() {
- @Override
- protected List<String> doInBackground(Void... voids) {
- String[] forbiddenPlmns = mTelephonyManager.getForbiddenPlmns();
- return forbiddenPlmns != null ? Arrays.asList(forbiddenPlmns) : null;
- }
+ mForbiddenPlmns = Arrays.asList(mTelephonyManager.getForbiddenPlmns());
+ setProgressBarVisible(true);
- @Override
- protected void onPostExecute(List<String> result) {
- mForbiddenPlmns = result;
- bindNetworkQueryService();
- }
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
-
- /**
- * Invoked on each preference click in this hierarchy, overrides
- * PreferenceActivity's implementation. Used to make sure we track the
- * preference click events.
- * Since the connected network operator is either faked (when no data connection) or already
- * connected, we do not allow user to click the connected network operator.
- */
- @Override
- public boolean onPreferenceTreeClick(Preference preference) {
- if (DBG) logd("User clicked the screen");
- stopNetworkQuery();
- setProgressBarVisible(false);
- if (preference instanceof NetworkOperatorPreference) {
- // Refresh the last selected item in case users reselect network.
- if (mSelectedNetworkOperatorPreference != null) {
- mSelectedNetworkOperatorPreference.setSummary("");
- }
-
- mSelectedNetworkOperatorPreference = (NetworkOperatorPreference) preference;
- CellInfo cellInfo = mSelectedNetworkOperatorPreference.getCellInfo();
- if (DBG) logd("User click a NetworkOperatorPreference: " + cellInfo.toString());
-
- // Send metrics event
- MetricsLogger.action(getContext(),
- MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK);
-
- // Connect to the network
- if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
- if (DBG) {
- logd("Connect to the network: " + CellInfoUtil.getNetworkTitle(cellInfo));
- }
- // Set summary as "Connecting" to the selected network.
- mSelectedNetworkOperatorPreference.setSummary(R.string.network_connecting);
-
- // Set summary as "Disconnected" to the previously connected network
- if (mConnectedNetworkOperatorsPreference.getPreferenceCount() > 0) {
- NetworkOperatorPreference connectedNetworkOperator = (NetworkOperatorPreference)
- (mConnectedNetworkOperatorsPreference.getPreference(0));
- if (!CellInfoUtil.getNetworkTitle(cellInfo).equals(
- CellInfoUtil.getNetworkTitle(connectedNetworkOperator.getCellInfo()))) {
- connectedNetworkOperator.setSummary(R.string.network_disconnected);
- }
- }
-
- OperatorInfo operatorInfo = CellInfoUtil.getOperatorInfoFromCellInfo(cellInfo);
- if (DBG) logd("manually selected network operator: " + operatorInfo.toString());
-
- ThreadUtils.postOnBackgroundThread(() -> {
- Message msg = mHandler.obtainMessage(EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE);
- msg.obj = mTelephonyManager.setNetworkSelectionModeManual(
- operatorInfo.getOperatorNumeric(), true /* persistSelection */);
- msg.sendToTarget();
- });
-
- setProgressBarVisible(true);
- return true;
- } else {
- loge("Error selecting network. Subscription Id is invalid.");
- mSelectedNetworkOperatorPreference = null;
- return false;
- }
-
- } else {
- getPreferenceScreen().setEnabled(false);
- return false;
- }
+ mNetworkScanHelper.startNetworkScan(
+ mUseNewApi
+ ? NetworkScanHelper.NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS
+ : NetworkScanHelper.NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS);
}
@Override
public void onStop() {
super.onStop();
- if (DBG) logd("onStop");
- getView().removeCallbacks(mUpdateNetworkOperatorsRunnable);
stopNetworkQuery();
- // Unbind the NetworkQueryService
- unbindNetworkQueryService();
+ }
+
+ @Override
+ public boolean onPreferenceTreeClick(Preference preference) {
+ if (preference != mSelectedPreference) {
+ stopNetworkQuery();
+ // Refresh the last selected item in case users reselect network.
+ if (mSelectedPreference != null) {
+ mSelectedPreference.setSummary(null);
+ }
+
+ mSelectedPreference = (NetworkOperatorPreference) preference;
+ CellInfo cellInfo = mSelectedPreference.getCellInfo();
+ mSelectedPreference.setSummary(R.string.network_connecting);
+
+ mMetricsFeatureProvider.action(getContext(),
+ MetricsEvent.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);
+ ThreadUtils.postOnBackgroundThread(() -> {
+ Message msg = mHandler.obtainMessage(EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE);
+ msg.obj = mTelephonyManager.setNetworkSelectionModeManual(
+ operatorInfo, true /* persistSelection */);
+ msg.sendToTarget();
+ });
+ }
+
+ return true;
}
@Override
@@ -239,8 +203,7 @@
@Override
public int getMetricsCategory() {
- //TODO(b/114749736): add metrics id for this page
- return 0;
+ return MOBILE_NETWORK_SELECT;
}
private final Handler mHandler = new Handler() {
@@ -248,29 +211,19 @@
public void handleMessage(Message msg) {
switch (msg.what) {
case EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE:
- if (DBG) logd("network selection done: hide the progress header");
setProgressBarVisible(false);
+ getPreferenceScreen().setEnabled(true);
- boolean isSuccessed = (boolean) msg.obj;
- if (isSuccessed) {
- if (DBG) logd("manual network selection: succeeded! ");
- // Set summary as "Connected" to the selected network.
- mSelectedNetworkOperatorPreference.setSummary(R.string.network_connected);
- } else {
- if (DBG) logd("manual network selection: failed! ");
- updateNetworkSelection();
- // Set summary as "Couldn't connect" to the selected network.
- mSelectedNetworkOperatorPreference.setSummary(
- R.string.network_could_not_connect);
- }
+ boolean isSucceed = (boolean) msg.obj;
+ mSelectedPreference.setSummary(isSucceed
+ ? R.string.network_connected
+ : R.string.network_could_not_connect);
break;
-
case EVENT_NETWORK_SCAN_RESULTS:
List<CellInfo> results = aggregateCellInfoList((List<CellInfo>) msg.obj);
mCellInfoList = new ArrayList<>(results);
- if (DBG) logd("after aggregate: " + mCellInfoList.toString());
if (mCellInfoList != null && mCellInfoList.size() != 0) {
- updateNetworkOperators();
+ updateAllPreferenceCategory();
} else {
addMessagePreference(R.string.empty_networks_list);
}
@@ -278,15 +231,12 @@
break;
case EVENT_NETWORK_SCAN_ERROR:
- int error = msg.arg1;
- if (DBG) logd("error while querying available networks " + error);
stopNetworkQuery();
addMessagePreference(R.string.network_query_error);
break;
case EVENT_NETWORK_SCAN_COMPLETED:
stopNetworkQuery();
- if (DBG) logd("scan complete");
if (mCellInfoList == null) {
// In case the scan timeout before getting any results
addMessagePreference(R.string.empty_networks_list);
@@ -297,17 +247,24 @@
}
};
- private void updateNetworkOperators() {
- if (DBG) logd("updateNetworkOperators");
- if (getActivity() != null) {
- final View view = getView();
- final Handler handler = view.getHandler();
- if (handler != null && handler.hasCallbacks(mUpdateNetworkOperatorsRunnable)) {
- return;
- }
- view.post(mUpdateNetworkOperatorsRunnable);
- }
- }
+ private final NetworkScanHelper.NetworkScanCallback mCallback =
+ new NetworkScanHelper.NetworkScanCallback() {
+ public void onResults(List<CellInfo> results) {
+ Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_RESULTS, results);
+ msg.sendToTarget();
+ }
+
+ public void onComplete() {
+ Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED);
+ msg.sendToTarget();
+ }
+
+ public void onError(int error) {
+ 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
@@ -317,17 +274,18 @@
* network operator in the connected network operator category shows "Connected", it will not
* exist in the available network category.
*/
- private void updateNetworkOperatorsPreferenceCategory() {
- mNetworkOperatorsPreferences.removeAll();
+ @VisibleForTesting
+ void updateAllPreferenceCategory() {
+ updateConnectedPreferenceCategory();
- configConnectedNetworkOperatorsPreferenceCategory();
+ mPreferenceCategory.removeAll();
for (int index = 0; index < mCellInfoList.size(); index++) {
if (!mCellInfoList.get(index).isRegistered()) {
NetworkOperatorPreference pref = new NetworkOperatorPreference(
- mCellInfoList.get(index), getContext(), mForbiddenPlmns);
+ mCellInfoList.get(index), getPrefContext(), mForbiddenPlmns, mShow4GForLTE);
pref.setKey(CellInfoUtil.getNetworkTitle(mCellInfoList.get(index)));
pref.setOrder(index);
- mNetworkOperatorsPreferences.addPreference(pref);
+ mPreferenceCategory.addPreference(pref);
}
}
}
@@ -345,41 +303,35 @@
* - If the device has no data, we will remove the connected network operators list from the
* screen.
*/
- private void forceConfigConnectedNetworkOperatorsPreferenceCategory() {
- if (DBG) logd("Force config ConnectedNetworkOperatorsPreferenceCategory");
+ private void forceUpdateConnectedPreferenceCategory() {
if (mTelephonyManager.getDataState() == mTelephonyManager.DATA_CONNECTED) {
// Try to get the network registration states
ServiceState ss = mTelephonyManager.getServiceState();
List<NetworkRegistrationState> networkList =
ss.getNetworkRegistrationStates(AccessNetworkConstants.TransportType.WWAN);
if (networkList == null || networkList.size() == 0) {
- loge("getNetworkRegistrationStates return null");
// Remove the connected network operators category
- removeConnectedNetworkOperatorPreference();
+ mConnectedPreferenceCategory.setVisible(false);
return;
}
CellIdentity cellIdentity = networkList.get(0).getCellIdentity();
CellInfo cellInfo = CellInfoUtil.wrapCellInfoWithCellIdentity(cellIdentity);
if (cellInfo != null) {
- if (DBG) logd("Currently registered cell: " + cellInfo.toString());
- NetworkOperatorPreference pref =
- new NetworkOperatorPreference(cellInfo, getContext(), mForbiddenPlmns);
+ NetworkOperatorPreference pref = new NetworkOperatorPreference(
+ cellInfo, getPrefContext(), mForbiddenPlmns, mShow4GForLTE);
pref.setTitle(mTelephonyManager.getNetworkOperatorName());
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(NetworkOperatorPreference.NUMBER_OF_LEVELS - 1);
-
- mConnectedNetworkOperatorsPreference.addPreference(pref);
+ mConnectedPreferenceCategory.addPreference(pref);
} else {
- loge("Invalid CellIfno: " + cellInfo.toString());
// Remove the connected network operators category
- removeConnectedNetworkOperatorPreference();
+ mConnectedPreferenceCategory.setVisible(false);
}
} else {
- if (DBG) logd("No currently registered cell");
// Remove the connected network operators category
- removeConnectedNetworkOperatorPreference();
+ mConnectedPreferenceCategory.setVisible(false);
}
}
@@ -388,13 +340,7 @@
* configured if the category is currently empty or the operator network title of the previous
* connected network is different from the new one.
*/
- private void configConnectedNetworkOperatorsPreferenceCategory() {
- if (DBG) logd("config ConnectedNetworkOperatorsPreferenceCategory");
- // Remove the category if the CellInfo list is empty or does not have registered cell.
- if (mCellInfoList.size() == 0) {
- if (DBG) logd("empty cellinfo list");
- removeConnectedNetworkOperatorPreference();
- }
+ private void updateConnectedPreferenceCategory() {
CellInfo connectedNetworkOperator = null;
for (CellInfo cellInfo : mCellInfoList) {
if (cellInfo.isRegistered()) {
@@ -402,60 +348,19 @@
break;
}
}
- if (connectedNetworkOperator == null) {
- if (DBG) logd("no registered network");
- removeConnectedNetworkOperatorPreference();
- return;
- }
- // config the category if it is empty.
- if (mConnectedNetworkOperatorsPreference.getPreferenceCount() == 0) {
- if (DBG) logd("ConnectedNetworkSelectList is empty, add one");
+ if (connectedNetworkOperator != null) {
addConnectedNetworkOperatorPreference(connectedNetworkOperator);
- return;
}
- NetworkOperatorPreference previousConnectedNetworkOperator = (NetworkOperatorPreference)
- (mConnectedNetworkOperatorsPreference.getPreference(0));
-
- // config the category if the network title of the previous connected network is different
- // from the new one.
- String cTitle = CellInfoUtil.getNetworkTitle(connectedNetworkOperator);
- String pTitle = CellInfoUtil.getNetworkTitle(
- previousConnectedNetworkOperator.getCellInfo());
- if (!cTitle.equals(pTitle)) {
- if (DBG) logd("reconfig the category: connected network changed");
- addConnectedNetworkOperatorPreference(connectedNetworkOperator);
- return;
- }
- if (DBG) logd("same network operator is connected, only refresh the connected network");
- // Otherwise same network operator is connected, only refresh the connected network
- // operator preference (first and the only one in this category).
- ((NetworkOperatorPreference) mConnectedNetworkOperatorsPreference.getPreference(0))
- .refresh();
- return;
}
- /**
- * Creates a Preference for the given {@link CellInfo} and adds it to the
- * {@link #mConnectedNetworkOperatorsPreference}.
- */
private void addConnectedNetworkOperatorPreference(CellInfo cellInfo) {
- if (DBG) logd("addConnectedNetworkOperatorPreference");
- // Remove the current ConnectedNetworkOperatorsPreference
- removeConnectedNetworkOperatorPreference();
- final NetworkOperatorPreference pref =
- new NetworkOperatorPreference(cellInfo, getContext(), mForbiddenPlmns);
+ mConnectedPreferenceCategory.removeAll();
+ final NetworkOperatorPreference pref = new NetworkOperatorPreference(
+ cellInfo, getPrefContext(), mForbiddenPlmns, mShow4GForLTE);
pref.setSummary(R.string.network_connected);
- mConnectedNetworkOperatorsPreference.addPreference(pref);
- PreferenceScreen preferenceScreen = getPreferenceScreen();
- preferenceScreen.addPreference(mConnectedNetworkOperatorsPreference);
- }
-
- /** Removes all preferences and hide the {@link #mConnectedNetworkOperatorsPreference}. */
- private void removeConnectedNetworkOperatorPreference() {
- mConnectedNetworkOperatorsPreference.removeAll();
- PreferenceScreen preferenceScreen = getPreferenceScreen();
- preferenceScreen.removePreference(mConnectedNetworkOperatorsPreference);
+ mConnectedPreferenceCategory.addPreference(pref);
+ mConnectedPreferenceCategory.setVisible(true);
}
protected void setProgressBarVisible(boolean visible) {
@@ -465,14 +370,11 @@
}
private void addMessagePreference(int messageId) {
- if (DBG) logd("remove callback");
- getView().removeCallbacks(mUpdateNetworkOperatorsRunnable);
setProgressBarVisible(false);
- if (DBG) logd("addMessagePreference");
mStatusMessagePreference.setTitle(messageId);
- removeConnectedNetworkOperatorPreference();
- mNetworkOperatorsPreferences.removeAll();
- mNetworkOperatorsPreferences.addPreference(mStatusMessagePreference);
+ mConnectedPreferenceCategory.setVisible(false);
+ mPreferenceCategory.removeAll();
+ mPreferenceCategory.addPreference(mStatusMessagePreference);
}
/**
@@ -481,7 +383,6 @@
* with the strongest signal strength.
*/
private List<CellInfo> aggregateCellInfoList(List<CellInfo> cellInfoList) {
- if (DBG) logd("before aggregate: " + cellInfoList.toString());
Map<String, CellInfo> map = new HashMap<>();
for (CellInfo cellInfo : cellInfoList) {
String plmn = CellInfoUtil.getOperatorInfoFromCellInfo(cellInfo).getOperatorNumeric();
@@ -501,57 +402,16 @@
return new ArrayList<>(map.values());
}
- private void loadNetworksList() {
- if (DBG) logd("load networks list...");
- setProgressBarVisible(true);
- //TODO(b/114749736): load network list once b/115401728 is done
- }
-
- private void bindNetworkQueryService() {
- if (DBG) logd("bindNetworkQueryService");
- //TODO(b/114749736): bind service/manager once b/115401728 is done
- mShouldUnbind = true;
- }
-
- private void unbindNetworkQueryService() {
- if (DBG) logd("unbindNetworkQueryService");
- if (mShouldUnbind) {
- if (DBG) logd("mShouldUnbind is true");
- // unbind the service.
- //TODO(b/114749736): unbind service/manager once b/115401728 is done
- mShouldUnbind = false;
+ private void stopNetworkQuery() {
+ setProgressBarVisible(false);
+ if (mNetworkScanHelper != null) {
+ mNetworkScanHelper.stopNetworkQuery();
}
}
- private void updateNetworkSelection() {
- if (DBG) logd("Update notification about no service of user selected operator");
- //TODO(b/114749736): update network selection once b/115429509 is done
+ @Override
+ public void onDestroy() {
+ mNetworkScanExecutor.shutdown();
+ super.onDestroy();
}
-
- private void stopNetworkQuery() {
- // Stop the network query process
- //TODO(b/114749736): stop service/manager query once b/115401728 is done
- }
-
- private void logd(String msg) {
- Log.d(TAG, msg);
- }
-
- private void loge(String msg) {
- Log.e(TAG, msg);
- }
-
- public static final Indexable.SearchIndexProvider 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 = R.xml.choose_network;
- result.add(sir);
- return result;
- }
- };
}
diff --git a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java
new file mode 100644
index 0000000..f60f927
--- /dev/null
+++ b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java
@@ -0,0 +1,183 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.ServiceState;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+/**
+ * Preference controller for "Preferred network mode"
+ */
+public class PreferredNetworkModePreferenceController extends BasePreferenceController implements
+ ListPreference.OnPreferenceChangeListener {
+
+ private CarrierConfigManager mCarrierConfigManager;
+ private TelephonyManager mTelephonyManager;
+ private PersistableBundle mPersistableBundle;
+ private int mSubId;
+ private boolean mIsGlobalCdma;
+
+ public PreferredNetworkModePreferenceController(Context context, String key) {
+ super(context, key);
+ mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ boolean visible;
+ if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ visible = false;
+ } else if (mPersistableBundle == null) {
+ visible = false;
+ } else if (mPersistableBundle.getBoolean(
+ CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL)) {
+ visible = false;
+ } else if (mPersistableBundle.getBoolean(
+ CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)
+ && !mTelephonyManager.getServiceState().getRoaming()
+ && mTelephonyManager.getServiceState().getDataRegState()
+ == ServiceState.STATE_IN_SERVICE) {
+ visible = false;
+ } else if (mPersistableBundle.getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL)) {
+ visible = true;
+ } else {
+ visible = false;
+ }
+
+ return visible ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ final ListPreference listPreference = (ListPreference) preference;
+ final int networkMode = getPreferredNetworkMode();
+ listPreference.setValue(Integer.toString(networkMode));
+ listPreference.setSummary(getPreferredNetworkModeSummaryResId(networkMode));
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object object) {
+ final int settingsMode = Integer.parseInt((String) object);
+
+ if (mTelephonyManager.setPreferredNetworkType(mSubId, settingsMode)) {
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
+ settingsMode);
+ return true;
+ }
+
+ return false;
+ }
+
+ public void init(int subId) {
+ mSubId = subId;
+ mPersistableBundle = mCarrierConfigManager.getConfigForSubId(mSubId);
+ mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
+
+ final boolean isLteOnCdma =
+ mTelephonyManager.getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE;
+ mIsGlobalCdma = isLteOnCdma
+ && mPersistableBundle.getBoolean(CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL);
+ }
+
+ private int getPreferredNetworkMode() {
+ return Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
+ Phone.PREFERRED_NT_MODE);
+ }
+
+ private int getPreferredNetworkModeSummaryResId(int NetworkMode) {
+ //TODO(b/114749736): refactor it to "Preferred network mode: <Mode>", instead of building
+ // string for each type...
+ switch (NetworkMode) {
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
+ return R.string.preferred_network_mode_tdscdma_gsm_wcdma_summary;
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
+ return R.string.preferred_network_mode_tdscdma_gsm_summary;
+ case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
+ return R.string.preferred_network_mode_wcdma_perf_summary;
+ case TelephonyManager.NETWORK_MODE_GSM_ONLY:
+ return R.string.preferred_network_mode_gsm_only_summary;
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
+ return R.string.preferred_network_mode_tdscdma_wcdma_summary;
+ case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
+ return R.string.preferred_network_mode_wcdma_only_summary;
+ case TelephonyManager.NETWORK_MODE_GSM_UMTS:
+ return R.string.preferred_network_mode_gsm_wcdma_summary;
+ case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
+ switch (mTelephonyManager.getLteOnCdmaMode()) {
+ case PhoneConstants.LTE_ON_CDMA_TRUE:
+ return R.string.preferred_network_mode_cdma_summary;
+ default:
+ return R.string.preferred_network_mode_cdma_evdo_summary;
+ }
+ case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
+ return R.string.preferred_network_mode_cdma_only_summary;
+ case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
+ return R.string.preferred_network_mode_evdo_only_summary;
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
+ return R.string.preferred_network_mode_lte_tdscdma_summary;
+ case TelephonyManager.NETWORK_MODE_LTE_ONLY:
+ return R.string.preferred_network_mode_lte_summary;
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
+ return R.string.preferred_network_mode_lte_tdscdma_gsm_summary;
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
+ return R.string.preferred_network_mode_lte_tdscdma_gsm_wcdma_summary;
+ case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
+ return R.string.preferred_network_mode_lte_gsm_wcdma_summary;
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
+ return R.string.preferred_network_mode_lte_cdma_evdo_summary;
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
+ return R.string.preferred_network_mode_tdscdma_summary;
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+ return R.string.preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary;
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
+ if (mTelephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA
+ || mIsGlobalCdma
+ || MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
+ return R.string.preferred_network_mode_global_summary;
+ } else {
+ return R.string.preferred_network_mode_lte_summary;
+ }
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+ return R.string.preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary;
+ case TelephonyManager.NETWORK_MODE_GLOBAL:
+ return R.string.preferred_network_mode_cdma_evdo_gsm_wcdma_summary;
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
+ return R.string.preferred_network_mode_lte_tdscdma_wcdma_summary;
+ case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
+ return R.string.preferred_network_mode_lte_wcdma_summary;
+ default:
+ return R.string.preferred_network_mode_global_summary;
+ }
+ }
+}
diff --git a/src/com/android/settings/network/telephony/RoamingDialogFragment.java b/src/com/android/settings/network/telephony/RoamingDialogFragment.java
index efb91d5..4c82686 100644
--- a/src/com/android/settings/network/telephony/RoamingDialogFragment.java
+++ b/src/com/android/settings/network/telephony/RoamingDialogFragment.java
@@ -23,11 +23,11 @@
import android.os.Bundle;
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
+import android.telephony.TelephonyManager;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
-
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
@@ -42,15 +42,14 @@
private CarrierConfigManager mCarrierConfigManager;
private int mSubId;
- /**
- * The interface we expect a host activity to implement.
- */
- public interface RoamingDialogListener {
- void onPositiveButtonClick(DialogFragment dialog);
- }
+ public static RoamingDialogFragment newInstance(int subId) {
+ final RoamingDialogFragment dialogFragment = new RoamingDialogFragment();
+ Bundle args = new Bundle();
+ args.putInt(SUB_ID_KEY, subId);
+ dialogFragment.setArguments(args);
- // the host activity which implements the listening interface
- private RoamingDialogListener mListener;
+ return dialogFragment;
+ }
@Override
public void onAttach(Context context) {
@@ -58,14 +57,6 @@
Bundle args = getArguments();
mSubId = args.getInt(SUB_ID_KEY);
mCarrierConfigManager = new CarrierConfigManager(context);
-
- Fragment fragment = getTargetFragment();
- try {
- mListener = (RoamingDialogListener) fragment;
- } catch (ClassCastException e) {
- throw new ClassCastException(fragment.toString() +
- "must implement RoamingDialogListener");
- }
}
@Override
@@ -95,7 +86,8 @@
public void onClick(DialogInterface dialog, int which) {
// let the host know that the positive button has been clicked
if (which == dialog.BUTTON_POSITIVE) {
- mListener.onPositiveButtonClick(this);
+ TelephonyManager.from(getContext()).createForSubscriptionId(
+ mSubId).setDataRoamingEnabled(true);
}
}
}
diff --git a/src/com/android/settings/network/telephony/RoamingPreferenceController.java b/src/com/android/settings/network/telephony/RoamingPreferenceController.java
new file mode 100644
index 0000000..688268c
--- /dev/null
+++ b/src/com/android/settings/network/telephony/RoamingPreferenceController.java
@@ -0,0 +1,183 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.fragment.app.FragmentManager;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.TogglePreferenceController;
+import com.android.settingslib.RestrictedSwitchPreference;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+/**
+ * Preference controller for "Roaming"
+ */
+public class RoamingPreferenceController extends TogglePreferenceController implements
+ LifecycleObserver, OnStart, OnStop {
+
+ private static final String DIALOG_TAG = "MobileDataDialog";
+
+ private RestrictedSwitchPreference mSwitchPreference;
+ private TelephonyManager mTelephonyManager;
+ private CarrierConfigManager mCarrierConfigManager;
+ private int mSubId;
+ private DataContentObserver mDataContentObserver;
+ @VisibleForTesting
+ boolean mNeedDialog;
+ @VisibleForTesting
+ FragmentManager mFragmentManager;
+
+ public RoamingPreferenceController(Context context, String key) {
+ super(context, key);
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
+ mDataContentObserver = new DataContentObserver(new Handler(Looper.getMainLooper()));
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
+ @Override
+ public void onStart() {
+ mDataContentObserver.register(mContext, mSubId);
+ }
+
+ @Override
+ public void onStop() {
+ mDataContentObserver.unRegister(mContext);
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mSwitchPreference = (RestrictedSwitchPreference) screen.findPreference(getPreferenceKey());
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
+ ? AVAILABLE
+ : AVAILABLE_UNSEARCHABLE;
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+ if (mNeedDialog) {
+ showDialog();
+ }
+ return true;
+ }
+
+ return false;
+ }
+
+ @Override
+ public boolean setChecked(boolean isChecked) {
+ mNeedDialog = isDialogNeeded();
+
+ if (!mNeedDialog) {
+ // Update data directly if we don't need dialog
+ mTelephonyManager.setDataRoamingEnabled(isChecked);
+ return true;
+ }
+
+ return false;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ final RestrictedSwitchPreference switchPreference = (RestrictedSwitchPreference) preference;
+ switchPreference.setEnabled(mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ switchPreference.setChecked(isChecked());
+ }
+
+ @VisibleForTesting
+ boolean isDialogNeeded() {
+ final boolean isRoamingEnabled = mTelephonyManager.isDataRoamingEnabled();
+ final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(
+ mSubId);
+
+ // Need dialog if we need to turn on roaming and the roaming charge indication is allowed
+ if (!isRoamingEnabled && (carrierConfig == null || !carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL))) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public boolean isChecked() {
+ return mTelephonyManager.isDataRoamingEnabled();
+ }
+
+ public void init(FragmentManager fragmentManager, int subId) {
+ mFragmentManager = fragmentManager;
+ mSubId = subId;
+ mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
+ }
+
+ private void showDialog() {
+ final RoamingDialogFragment dialogFragment = RoamingDialogFragment.newInstance(mSubId);
+
+ dialogFragment.show(mFragmentManager, DIALOG_TAG);
+ }
+
+ /**
+ * Listener that listens data roaming change
+ */
+ public class DataContentObserver extends ContentObserver {
+
+ public DataContentObserver(Handler handler) {
+ super(handler);
+ }
+
+ @Override
+ public void onChange(boolean selfChange) {
+ super.onChange(selfChange);
+ updateState(mSwitchPreference);
+ }
+
+ public void register(Context context, int subId) {
+ Uri uri = Settings.Global.getUriFor(Settings.Global.DATA_ROAMING);
+ if (TelephonyManager.getDefault().getSimCount() != 1) {
+ uri = Settings.Global.getUriFor(Settings.Global.DATA_ROAMING + subId);
+ }
+ context.getContentResolver().registerContentObserver(uri, false, this);
+
+ }
+
+ public void unRegister(Context context) {
+ context.getContentResolver().unregisterContentObserver(this);
+ }
+ }
+}
diff --git a/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java b/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java
new file mode 100644
index 0000000..1007ef8
--- /dev/null
+++ b/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java
@@ -0,0 +1,197 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.PhoneStateListener;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+
+import com.android.ims.ImsManager;
+import com.android.settings.core.TogglePreferenceController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+/**
+ * Preference controller for "Video Calling"
+ */
+public class VideoCallingPreferenceController extends TogglePreferenceController implements
+ LifecycleObserver, OnStart, OnStop,
+ Enhanced4gLtePreferenceController.On4gLteUpdateListener {
+
+ private Preference mPreference;
+ private TelephonyManager mTelephonyManager;
+ private CarrierConfigManager mCarrierConfigManager;
+ private PersistableBundle mCarrierConfig;
+ @VisibleForTesting
+ ImsManager mImsManager;
+ private PhoneCallStateListener mPhoneStateListener;
+ private DataContentObserver mDataContentObserver;
+ private int mSubId;
+
+ public VideoCallingPreferenceController(Context context, String key) {
+ super(context, key);
+ mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
+ mDataContentObserver = new DataContentObserver(new Handler(Looper.getMainLooper()));
+ mPhoneStateListener = new PhoneCallStateListener(Looper.getMainLooper());
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
+ && MobileNetworkUtils.isWifiCallingEnabled(mContext,
+ SubscriptionManager.getPhoneId(mSubId))
+ && isVideoCallEnabled()
+ ? AVAILABLE
+ : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ }
+
+ @Override
+ public void onStart() {
+ mPhoneStateListener.register(mSubId);
+ mDataContentObserver.register(mContext, mSubId);
+ }
+
+ @Override
+ public void onStop() {
+ mPhoneStateListener.unregister();
+ mDataContentObserver.unRegister(mContext);
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ final SwitchPreference switchPreference = (SwitchPreference) preference;
+ final boolean videoCallEnabled = isVideoCallEnabled();
+ switchPreference.setVisible(videoCallEnabled);
+ if (videoCallEnabled) {
+ final boolean is4gLteEnabled = mImsManager.isEnhanced4gLteModeSettingEnabledByUser()
+ && mImsManager.isNonTtyOrTtyOnVolteEnabled();
+ preference.setEnabled(is4gLteEnabled &&
+ mTelephonyManager.getCallState(mSubId) == TelephonyManager.CALL_STATE_IDLE);
+ switchPreference.setChecked(is4gLteEnabled && mImsManager.isVtEnabledByUser());
+ }
+ }
+
+ @Override
+ public boolean setChecked(boolean isChecked) {
+ mImsManager.setVtSetting(isChecked);
+ return true;
+ }
+
+ @Override
+ public boolean isChecked() {
+ return mImsManager.isVtEnabledByUser();
+ }
+
+ public VideoCallingPreferenceController init(int subId) {
+ mSubId = subId;
+ mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
+ mCarrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+ if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId));
+ }
+
+ return this;
+ }
+
+ @VisibleForTesting
+ boolean isVideoCallEnabled() {
+ return mCarrierConfig != null && mImsManager != null
+ && mImsManager.isVtEnabledByPlatform()
+ && mImsManager.isVtProvisionedOnDevice()
+ && MobileNetworkUtils.isImsServiceStateReady(mImsManager)
+ && (mCarrierConfig.getBoolean(
+ CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
+ || mTelephonyManager.isDataEnabled());
+ }
+
+ @Override
+ public void on4gLteUpdated() {
+ updateState(mPreference);
+ }
+
+ private class PhoneCallStateListener extends PhoneStateListener {
+
+ public PhoneCallStateListener(Looper looper) {
+ super(looper);
+ }
+
+ @Override
+ public void onCallStateChanged(int state, String incomingNumber) {
+ updateState(mPreference);
+ }
+
+ public void register(int subId) {
+ mSubId = subId;
+ mTelephonyManager.listen(this, PhoneStateListener.LISTEN_CALL_STATE);
+ }
+
+ public void unregister() {
+ mTelephonyManager.listen(this, PhoneStateListener.LISTEN_NONE);
+ }
+ }
+
+ /**
+ * Listener that listens mobile data state change.
+ */
+ public class DataContentObserver extends ContentObserver {
+
+ public DataContentObserver(Handler handler) {
+ super(handler);
+ }
+
+ @Override
+ public void onChange(boolean selfChange) {
+ super.onChange(selfChange);
+ updateState(mPreference);
+ }
+
+ public void register(Context context, int subId) {
+ Uri uri = Settings.Global.getUriFor(Settings.Global.MOBILE_DATA);
+ if (TelephonyManager.getDefault().getSimCount() != 1) {
+ uri = Settings.Global.getUriFor(Settings.Global.MOBILE_DATA + subId);
+ }
+ context.getContentResolver().registerContentObserver(uri,
+ false /* notifyForDescendants */, this /* observer */);
+ }
+
+ public void unRegister(Context context) {
+ context.getContentResolver().unregisterContentObserver(this);
+ }
+ }
+}
diff --git a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java
new file mode 100644
index 0000000..48fb710
--- /dev/null
+++ b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java
@@ -0,0 +1,165 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.os.Looper;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
+import android.telephony.PhoneStateListener;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+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.core.BasePreferenceController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+import java.util.List;
+
+/**
+ * Preference controller for "Wifi Calling"
+ */
+public class WifiCallingPreferenceController extends BasePreferenceController implements
+ LifecycleObserver, OnStart, OnStop {
+
+ @VisibleForTesting
+ static final String KEY_PREFERENCE_CATEGORY = "calling_category";
+
+ private TelephonyManager mTelephonyManager;
+ @VisibleForTesting
+ ImsManager mImsManager;
+ @VisibleForTesting
+ PhoneAccountHandle mSimCallManager;
+ private PhoneCallStateListener mPhoneStateListener;
+ private Preference mPreference;
+ private int mSubId;
+
+ public WifiCallingPreferenceController(Context context, String key) {
+ super(context, key);
+ mTelephonyManager = context.getSystemService(TelephonyManager.class);
+ mSimCallManager = context.getSystemService(TelecomManager.class).getSimCallManager();
+ mPhoneStateListener = new PhoneCallStateListener(Looper.getMainLooper());
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
+ && MobileNetworkUtils.isWifiCallingEnabled(mContext,
+ SubscriptionManager.getPhoneId(mSubId))
+ ? AVAILABLE
+ : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ @Override
+ public void onStart() {
+ mPhoneStateListener.register(mSubId);
+ }
+
+ @Override
+ public void onStop() {
+ mPhoneStateListener.unregister();
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ if (!isAvailable()) {
+ // Set category as invisible
+ final Preference preferenceCateogry = screen.findPreference(KEY_PREFERENCE_CATEGORY);
+ if (preferenceCateogry != null) {
+ preferenceCateogry.setVisible(false);
+ }
+ }
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ if (mSimCallManager != null) {
+ Intent intent = MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext,
+ mSimCallManager);
+ final PackageManager pm = mContext.getPackageManager();
+ List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
+ preference.setTitle(resolutions.get(0).loadLabel(pm));
+ preference.setSummary(null);
+ preference.setIntent(intent);
+ } else {
+ int resId = com.android.internal.R.string.wifi_calling_off_summary;
+ if (mImsManager.isWfcEnabledByUser()) {
+ final boolean isRoaming = mTelephonyManager.isNetworkRoaming();
+ int wfcMode = mImsManager.getWfcMode(isRoaming);
+
+ switch (wfcMode) {
+ case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY:
+ resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;
+ break;
+ case ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED:
+ resId = com.android.internal.R.string
+ .wfc_mode_cellular_preferred_summary;
+ break;
+ case ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED:
+ resId = com.android.internal.R.string.wfc_mode_wifi_preferred_summary;
+ break;
+ default:
+ break;
+ }
+ }
+ preference.setSummary(resId);
+ }
+ preference.setEnabled(
+ mTelephonyManager.getCallState(mSubId) == TelephonyManager.CALL_STATE_IDLE);
+ }
+
+ public void init(int subId) {
+ mSubId = subId;
+ mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
+ mImsManager = ImsManager.getInstance(mContext, SubscriptionManager.getPhoneId(mSubId));
+ }
+
+ private class PhoneCallStateListener extends PhoneStateListener {
+
+ public PhoneCallStateListener(Looper looper) {
+ super(looper);
+ }
+
+ @Override
+ public void onCallStateChanged(int state, String incomingNumber) {
+ updateState(mPreference);
+ }
+
+ public void register(int subId) {
+ mSubId = subId;
+ mTelephonyManager.listen(this, PhoneStateListener.LISTEN_CALL_STATE);
+ }
+
+ public void unregister() {
+ mTelephonyManager.listen(this, PhoneStateListener.LISTEN_NONE);
+ }
+ }
+}
diff --git a/src/com/android/settings/network/telephony/cdma/CdmaBasePreferenceController.java b/src/com/android/settings/network/telephony/cdma/CdmaBasePreferenceController.java
new file mode 100644
index 0000000..a5498bc
--- /dev/null
+++ b/src/com/android/settings/network/telephony/cdma/CdmaBasePreferenceController.java
@@ -0,0 +1,117 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony.cdma;
+
+import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Looper;
+import android.provider.Settings;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.network.telephony.MobileNetworkUtils;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+/**
+ * Preference controller related to CDMA category
+ */
+public abstract class CdmaBasePreferenceController extends BasePreferenceController
+ implements LifecycleObserver, OnStart, OnStop {
+
+ protected Preference mPreference;
+ protected TelephonyManager mTelephonyManager;
+ protected PreferenceManager mPreferenceManager;
+ protected int mSubId;
+ private DataContentObserver mDataContentObserver;
+
+ public CdmaBasePreferenceController(Context context, String key) {
+ super(context, key);
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ mDataContentObserver = new DataContentObserver(new Handler(Looper.getMainLooper()));
+ }
+
+ @Override
+ public void onStart() {
+ mDataContentObserver.register(mContext, mSubId);
+ }
+
+ @Override
+ public void onStop() {
+ mDataContentObserver.unRegister(mContext);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return MobileNetworkUtils.isCdmaOptions(mContext, mSubId)
+ ? AVAILABLE
+ : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ public void init(PreferenceManager preferenceManager, int subId) {
+ mPreferenceManager = preferenceManager;
+ mSubId = subId;
+ mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
+ }
+
+ public void init(int subId) {
+ init(null, subId);
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ if (mPreference instanceof CdmaListPreference) {
+ ((CdmaListPreference) mPreference).setSubId(mSubId);
+ }
+ }
+
+ /**
+ * Listener that listens to mobile data state change.
+ */
+ public class DataContentObserver extends ContentObserver {
+
+ public DataContentObserver(Handler handler) {
+ super(handler);
+ }
+
+ @Override
+ public void onChange(boolean selfChange) {
+ super.onChange(selfChange);
+ updateState(mPreference);
+ }
+
+ public void register(Context context, int subId) {
+ final Uri uri = Settings.Global.getUriFor(
+ Settings.Global.PREFERRED_NETWORK_MODE + subId);
+ context.getContentResolver().registerContentObserver(uri, false, this);
+ }
+
+ public void unRegister(Context context) {
+ context.getContentResolver().unregisterContentObserver(this);
+ }
+ }
+}
diff --git a/src/com/android/settings/network/telephony/cdma/CdmaListPreference.java b/src/com/android/settings/network/telephony/cdma/CdmaListPreference.java
new file mode 100644
index 0000000..14c7169
--- /dev/null
+++ b/src/com/android/settings/network/telephony/cdma/CdmaListPreference.java
@@ -0,0 +1,46 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony.cdma;
+
+import android.content.Context;
+import android.telephony.TelephonyManager;
+import android.util.AttributeSet;
+
+import androidx.preference.ListPreference;
+
+/**
+ * {@link ListPreference} that will launch ECM dialog when in ECM mode
+ */
+public class CdmaListPreference extends ListPreference {
+ private TelephonyManager mTelephonyManager;
+
+ public CdmaListPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ @Override
+ protected void onClick() {
+ // Only show dialog when it is not in ECM
+ if (mTelephonyManager == null || !mTelephonyManager.getEmergencyCallbackMode()) {
+ super.onClick();
+ }
+ }
+
+ public void setSubId(int subId) {
+ mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(subId);
+ }
+}
diff --git a/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceController.java b/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceController.java
new file mode 100644
index 0000000..41bf3ef
--- /dev/null
+++ b/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceController.java
@@ -0,0 +1,102 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony.cdma;
+
+import android.content.Context;
+import android.os.SystemProperties;
+import android.provider.Settings;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceManager;
+
+import com.android.internal.telephony.Phone;
+import com.android.settings.network.telephony.MobileNetworkUtils;
+
+/**
+ * Preference controller for "CDMA subscription"
+ */
+public class CdmaSubscriptionPreferenceController extends CdmaBasePreferenceController
+ implements ListPreference.OnPreferenceChangeListener {
+ private static final String TYPE_NV = "NV";
+ private static final String TYPE_RUIM = "RUIM";
+
+ @VisibleForTesting
+ ListPreference mPreference;
+
+ public CdmaSubscriptionPreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return MobileNetworkUtils.isCdmaOptions(mContext, mSubId) && deviceSupportsNvAndRuim()
+ ? AVAILABLE
+ : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ final ListPreference listPreference = (ListPreference) preference;
+ listPreference.setVisible(getAvailabilityStatus() == AVAILABLE);
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.CDMA_SUBSCRIPTION_MODE, Phone.PREFERRED_CDMA_SUBSCRIPTION);
+ if (mode != Phone.CDMA_SUBSCRIPTION_UNKNOWN) {
+ listPreference.setValue(Integer.toString(mode));
+ }
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object object) {
+ final int newMode = Integer.parseInt((String) object);
+ //TODO(b/117611981): only set it in one place
+ if (mTelephonyManager.setCdmaSubscriptionMode(newMode)) {
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.CDMA_SUBSCRIPTION_MODE, newMode);
+ return true;
+ }
+
+ return false;
+ }
+
+ @VisibleForTesting
+ boolean deviceSupportsNvAndRuim() {
+ // retrieve the list of subscription types supported by device.
+ final String subscriptionsSupported = SystemProperties.get("ril.subscription.types");
+ boolean nvSupported = false;
+ boolean ruimSupported = false;
+
+ if (!TextUtils.isEmpty(subscriptionsSupported)) {
+ // Searches through the comma-separated list for a match for "NV"
+ // and "RUIM" to update nvSupported and ruimSupported.
+ for (String subscriptionType : subscriptionsSupported.split(",")) {
+ subscriptionType = subscriptionType.trim();
+ if (subscriptionType.equalsIgnoreCase(TYPE_NV)) {
+ nvSupported = true;
+ } else if (subscriptionType.equalsIgnoreCase(TYPE_RUIM)) {
+ ruimSupported = true;
+ }
+ }
+ }
+
+ return (nvSupported && ruimSupported);
+ }
+}
diff --git a/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java b/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java
new file mode 100644
index 0000000..5f259f8
--- /dev/null
+++ b/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java
@@ -0,0 +1,83 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony.cdma;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+
+import com.android.internal.telephony.Phone;
+
+/**
+ * Preference controller for "System Select"
+ */
+public class CdmaSystemSelectPreferenceController extends CdmaBasePreferenceController
+ implements ListPreference.OnPreferenceChangeListener {
+
+ public CdmaSystemSelectPreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ final ListPreference listPreference = (ListPreference) preference;
+ listPreference.setVisible(getAvailabilityStatus() == AVAILABLE);
+ final int mode = mTelephonyManager.getCdmaRoamingMode();
+ if (mode != TelephonyManager.CDMA_ROAMING_MODE_RADIO_DEFAULT) {
+ if (mode == TelephonyManager.CDMA_ROAMING_MODE_HOME
+ || mode == TelephonyManager.CDMA_ROAMING_MODE_ANY) {
+ listPreference.setValue(Integer.toString(mode));
+ } else {
+ resetCdmaRoamingModeToDefault();
+ }
+ }
+ final int settingsNetworkMode = Settings.Global.getInt(
+ mContext.getContentResolver(),
+ Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
+ Phone.PREFERRED_NT_MODE);
+ listPreference.setEnabled(
+ settingsNetworkMode != TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA);
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object object) {
+ int newMode = Integer.parseInt((String) object);
+ //TODO(b/117611981): only set it in one place
+ if (mTelephonyManager.setCdmaRoamingMode(newMode)) {
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.CDMA_ROAMING_MODE, newMode);
+ return true;
+ }
+
+ return false;
+ }
+
+ private void resetCdmaRoamingModeToDefault() {
+ final ListPreference listPreference = (ListPreference) mPreference;
+ //set the mButtonCdmaRoam
+ listPreference.setValue(Integer.toString(TelephonyManager.CDMA_ROAMING_MODE_ANY));
+ //set the Settings.System
+ Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.CDMA_ROAMING_MODE,
+ TelephonyManager.CDMA_ROAMING_MODE_ANY);
+ //Set the Status
+ mTelephonyManager.setCdmaRoamingMode(TelephonyManager.CDMA_ROAMING_MODE_ANY);
+ }
+}
diff --git a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
new file mode 100644
index 0000000..6899054
--- /dev/null
+++ b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
@@ -0,0 +1,136 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony.gsm;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.Preference;
+
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.network.telephony.MobileNetworkUtils;
+import com.android.settings.network.telephony.MobileNetworkActivity;
+import com.android.settings.network.telephony.NetworkSelectSettings;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Preference controller for "Auto Select Network"
+ */
+public class AutoSelectPreferenceController extends TogglePreferenceController {
+
+ private int mSubId;
+ private TelephonyManager mTelephonyManager;
+ private boolean mOnlyAutoSelectInHome;
+ private List<OnNetworkSelectModeListener> mListeners;
+
+ public AutoSelectPreferenceController(Context context, String key) {
+ super(context, key);
+ mTelephonyManager = context.getSystemService(TelephonyManager.class);
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ mListeners = new ArrayList<>();
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext,mSubId)
+ ? AVAILABLE
+ : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ @Override
+ public boolean isChecked() {
+ return mTelephonyManager.getNetworkSelectionMode()
+ == TelephonyManager.NETWORK_SELECTION_MODE_AUTO;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+
+ preference.setSummary(null);
+ if (mTelephonyManager.getServiceState().getRoaming()) {
+ preference.setEnabled(true);
+ } else {
+ preference.setEnabled(!mOnlyAutoSelectInHome);
+ if (mOnlyAutoSelectInHome) {
+ preference.setSummary(mContext.getString(
+ R.string.manual_mode_disallowed_summary,
+ mTelephonyManager.getSimOperatorName()));
+ }
+ }
+ }
+
+ @Override
+ public boolean setChecked(boolean isChecked) {
+ if (isChecked) {
+ mTelephonyManager.setNetworkSelectionModeAutomatic();
+
+ for (OnNetworkSelectModeListener lsn : mListeners) {
+ lsn.onNetworkSelectModeChanged();
+ }
+ // Manually check whether it is successfully
+ return mTelephonyManager.getNetworkSelectionMode()
+ == TelephonyManager.NETWORK_SELECTION_MODE_AUTO;
+ } else {
+ final Bundle bundle = new Bundle();
+ bundle.putInt(Settings.EXTRA_SUB_ID, mSubId);
+ new SubSettingLauncher(mContext)
+ .setDestination(NetworkSelectSettings.class.getName())
+ .setSourceMetricsCategory(MetricsProto.MetricsEvent.MOBILE_NETWORK_SELECT)
+ .setTitleRes(R.string.choose_network_title)
+ .setArguments(bundle)
+ .launch();
+ return false;
+ }
+ }
+
+ public AutoSelectPreferenceController init(int subId) {
+ mSubId = subId;
+ mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
+ final PersistableBundle carrierConfig = mContext.getSystemService(
+ CarrierConfigManager.class).getConfigForSubId(mSubId);
+ mOnlyAutoSelectInHome = carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL);
+
+ return this;
+ }
+
+ public AutoSelectPreferenceController addListener(OnNetworkSelectModeListener lsn) {
+ mListeners.add(lsn);
+
+ return this;
+ }
+
+ /**
+ * Callback when network select mode is changed
+ *
+ * @see TelephonyManager#getNetworkSelectionMode()
+ */
+ public interface OnNetworkSelectModeListener {
+ void onNetworkSelectModeChanged();
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
new file mode 100644
index 0000000..23de056
--- /dev/null
+++ b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
@@ -0,0 +1,111 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony.gsm;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.provider.Settings;
+import android.telephony.ServiceState;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.network.telephony.MobileNetworkUtils;
+import com.android.settings.network.telephony.MobileNetworkActivity;
+import com.android.settings.network.telephony.NetworkSelectSettings;
+
+/**
+ * Preference controller for "Open network select"
+ */
+public class OpenNetworkSelectPagePreferenceController extends BasePreferenceController implements
+ AutoSelectPreferenceController.OnNetworkSelectModeListener {
+
+ private int mSubId;
+ private TelephonyManager mTelephonyManager;
+ private Preference mPreference;
+
+ public OpenNetworkSelectPagePreferenceController(Context context, String key) {
+ super(context, key);
+ mTelephonyManager = context.getSystemService(TelephonyManager.class);
+ mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, mSubId)
+ ? AVAILABLE
+ : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ preference.setEnabled(mTelephonyManager.getNetworkSelectionMode()
+ != TelephonyManager.NETWORK_SELECTION_MODE_AUTO);
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ final ServiceState ss = mTelephonyManager.getServiceState();
+ if (ss != null && ss.getState() == ServiceState.STATE_IN_SERVICE) {
+ return mTelephonyManager.getNetworkOperatorName();
+ } else {
+ return mContext.getString(R.string.network_disconnected);
+ }
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+ final Bundle bundle = new Bundle();
+ bundle.putInt(Settings.EXTRA_SUB_ID, mSubId);
+ new SubSettingLauncher(mContext)
+ .setDestination(NetworkSelectSettings.class.getName())
+ .setSourceMetricsCategory(MetricsProto.MetricsEvent.MOBILE_NETWORK_SELECT)
+ .setTitleRes(R.string.choose_network_title)
+ .setArguments(bundle)
+ .launch();
+ return true;
+ }
+
+ return false;
+ }
+
+ public OpenNetworkSelectPagePreferenceController init(int subId) {
+ mSubId = subId;
+ mTelephonyManager = TelephonyManager.from(mContext).createForSubscriptionId(mSubId);
+ return this;
+ }
+
+ @Override
+ public void onNetworkSelectModeChanged() {
+ updateState(mPreference);
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/notification/NotificationAccessConfirmationActivity.java b/src/com/android/settings/notification/NotificationAccessConfirmationActivity.java
index 16d255b..54a0d5e 100644
--- a/src/com/android/settings/notification/NotificationAccessConfirmationActivity.java
+++ b/src/com/android/settings/notification/NotificationAccessConfirmationActivity.java
@@ -87,13 +87,13 @@
public void onResume() {
super.onResume();
getWindow().addFlags(
- WindowManager.LayoutParams.PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+ WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
}
@Override
public void onPause() {
getWindow().clearFlags(
- WindowManager.LayoutParams.PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+ WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
super.onPause();
}
diff --git a/src/com/android/settings/notification/NotificationPreferenceController.java b/src/com/android/settings/notification/NotificationPreferenceController.java
index c3552cc..22f07be 100644
--- a/src/com/android/settings/notification/NotificationPreferenceController.java
+++ b/src/com/android/settings/notification/NotificationPreferenceController.java
@@ -28,7 +28,6 @@
import android.util.Log;
import androidx.preference.Preference;
-import androidx.preference.PreferenceGroup;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -83,24 +82,6 @@
return true;
}
- // finds the preference recursively and removes it from its parent
- private void findAndRemovePreference(PreferenceGroup prefGroup, String key) {
- final int preferenceCount = prefGroup.getPreferenceCount();
- for (int i = preferenceCount - 1; i >= 0; i--) {
- final Preference preference = prefGroup.getPreference(i);
- final String curKey = preference.getKey();
-
- if (curKey != null && curKey.equals(key)) {
- mPreference = preference;
- prefGroup.removePreference(preference);
- }
-
- if (preference instanceof PreferenceGroup) {
- findAndRemovePreference((PreferenceGroup) preference, key);
- }
- }
- }
-
protected void onResume(NotificationBackend.AppRow appRow,
@Nullable NotificationChannel channel, @Nullable NotificationChannelGroup group,
RestrictedLockUtils.EnforcedAdmin admin) {
diff --git a/src/com/android/settings/notification/ZenAutomaticRuleHeaderPreferenceController.java b/src/com/android/settings/notification/ZenAutomaticRuleHeaderPreferenceController.java
index 18415c7..41eb111 100644
--- a/src/com/android/settings/notification/ZenAutomaticRuleHeaderPreferenceController.java
+++ b/src/com/android/settings/notification/ZenAutomaticRuleHeaderPreferenceController.java
@@ -24,13 +24,10 @@
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.service.notification.ZenModeConfig;
+import android.text.TextUtils;
import android.util.Slog;
import android.view.View;
-import androidx.fragment.app.Fragment;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceFragmentCompat;
-
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.applications.LayoutPreference;
@@ -38,6 +35,10 @@
import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.core.lifecycle.Lifecycle;
+import androidx.fragment.app.Fragment;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+
public class ZenAutomaticRuleHeaderPreferenceController extends AbstractZenModePreferenceController
implements PreferenceControllerMixin {
@@ -128,9 +129,13 @@
@Override
public void onOk(String ruleName, Fragment parent) {
+ if (TextUtils.equals(ruleName, mRule.getName())) {
+ return;
+ }
mMetricsFeatureProvider.action(mContext,
MetricsProto.MetricsEvent.ACTION_ZEN_MODE_RULE_NAME_CHANGE_OK);
mRule.setName(ruleName);
+ mRule.setModified(true);
mBackend.setZenRule(mId, mRule);
}
}
diff --git a/src/com/android/settings/notification/ZenModeAlarmsPreferenceController.java b/src/com/android/settings/notification/ZenModeAlarmsPreferenceController.java
index 96495df..67d9e93 100644
--- a/src/com/android/settings/notification/ZenModeAlarmsPreferenceController.java
+++ b/src/com/android/settings/notification/ZenModeAlarmsPreferenceController.java
@@ -21,19 +21,20 @@
import android.provider.Settings;
import android.util.Log;
-import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
-
import com.android.internal.logging.nano.MetricsProto;
import com.android.settingslib.core.lifecycle.Lifecycle;
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
+
public class ZenModeAlarmsPreferenceController extends
AbstractZenModePreferenceController implements Preference.OnPreferenceChangeListener {
- protected static final String KEY = "zen_mode_alarms";
+ private final String KEY;
- public ZenModeAlarmsPreferenceController(Context context, Lifecycle lifecycle) {
- super(context, KEY, lifecycle);
+ public ZenModeAlarmsPreferenceController(Context context, Lifecycle lifecycle, String key) {
+ super(context, key, lifecycle);
+ KEY = key;
}
@Override
diff --git a/src/com/android/settings/notification/ZenModeBehaviorCallsPreferenceController.java b/src/com/android/settings/notification/ZenModeBehaviorCallsPreferenceController.java
deleted file mode 100644
index 0dba4d6..0000000
--- a/src/com/android/settings/notification/ZenModeBehaviorCallsPreferenceController.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2017 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.notification;
-
-import android.content.Context;
-
-import androidx.preference.Preference;
-
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-public class ZenModeBehaviorCallsPreferenceController extends
- AbstractZenModePreferenceController implements PreferenceControllerMixin {
-
- protected static final String KEY_BEHAVIOR_SETTINGS = "zen_mode_calls_settings";
- private final ZenModeSettings.SummaryBuilder mSummaryBuilder;
-
- public ZenModeBehaviorCallsPreferenceController(Context context, Lifecycle lifecycle) {
- super(context, KEY_BEHAVIOR_SETTINGS, lifecycle);
- mSummaryBuilder = new ZenModeSettings.SummaryBuilder(context);
- }
-
- @Override
- public String getPreferenceKey() {
- return KEY_BEHAVIOR_SETTINGS;
- }
-
- @Override
- public boolean isAvailable() {
- return true;
- }
-
- @Override
- public void updateState(Preference preference) {
- super.updateState(preference);
-
- preference.setSummary(mSummaryBuilder.getCallsSettingSummary(getPolicy()));
- }
-}
diff --git a/src/com/android/settings/notification/ZenModeBehaviorMsgEventReminderPreferenceController.java b/src/com/android/settings/notification/ZenModeBehaviorMsgEventReminderPreferenceController.java
deleted file mode 100644
index 2046244..0000000
--- a/src/com/android/settings/notification/ZenModeBehaviorMsgEventReminderPreferenceController.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2017 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.notification;
-
-import android.content.Context;
-
-import androidx.preference.Preference;
-
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-public class ZenModeBehaviorMsgEventReminderPreferenceController extends
- AbstractZenModePreferenceController implements PreferenceControllerMixin {
-
- protected static final String KEY_BEHAVIOR_SETTINGS = "zen_mode_msg_event_reminder_settings";
- private final ZenModeSettings.SummaryBuilder mSummaryBuilder;
-
- public ZenModeBehaviorMsgEventReminderPreferenceController(Context context,
- Lifecycle lifecycle) {
- super(context, KEY_BEHAVIOR_SETTINGS, lifecycle);
- mSummaryBuilder = new ZenModeSettings.SummaryBuilder(context);
- }
-
- @Override
- public String getPreferenceKey() {
- return KEY_BEHAVIOR_SETTINGS;
- }
-
- @Override
- public boolean isAvailable() {
- return true;
- }
-
- @Override
- public void updateState(Preference preference) {
- super.updateState(preference);
-
- preference.setSummary(mSummaryBuilder.getMsgEventReminderSettingSummary(getPolicy()));
- }
-}
diff --git a/src/com/android/settings/notification/ZenModeBehaviorSoundPreferenceController.java b/src/com/android/settings/notification/ZenModeBehaviorSoundPreferenceController.java
deleted file mode 100644
index 425f770..0000000
--- a/src/com/android/settings/notification/ZenModeBehaviorSoundPreferenceController.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.notification;
-
-import android.content.Context;
-
-import androidx.preference.Preference;
-
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-public class ZenModeBehaviorSoundPreferenceController extends
- AbstractZenModePreferenceController implements PreferenceControllerMixin {
-
- protected static final String KEY_BEHAVIOR_SETTINGS = "zen_sound_vibration_settings";
- private final ZenModeSettings.SummaryBuilder mSummaryBuilder;
-
- public ZenModeBehaviorSoundPreferenceController(Context context, Lifecycle lifecycle) {
- super(context, KEY_BEHAVIOR_SETTINGS, lifecycle);
- mSummaryBuilder = new ZenModeSettings.SummaryBuilder(context);
- }
-
- @Override
- public String getPreferenceKey() {
- return KEY_BEHAVIOR_SETTINGS;
- }
-
- @Override
- public boolean isAvailable() {
- return true;
- }
-
- @Override
- public void updateState(Preference preference) {
- super.updateState(preference);
-
- preference.setSummary(mSummaryBuilder.getSoundSettingSummary(getPolicy()));
- }
-}
diff --git a/src/com/android/settings/notification/ZenModeCallsPreferenceController.java b/src/com/android/settings/notification/ZenModeCallsPreferenceController.java
index 3f689d7..5bacafb 100644
--- a/src/com/android/settings/notification/ZenModeCallsPreferenceController.java
+++ b/src/com/android/settings/notification/ZenModeCallsPreferenceController.java
@@ -16,36 +16,29 @@
package com.android.settings.notification;
-import android.app.NotificationManager;
import android.content.Context;
-import android.provider.Settings;
-import android.text.TextUtils;
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.ListPreference;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.lifecycle.Lifecycle;
-public class ZenModeCallsPreferenceController extends AbstractZenModePreferenceController implements
- Preference.OnPreferenceChangeListener {
+import androidx.preference.Preference;
- protected static final String KEY = "zen_mode_calls";
- private final ZenModeBackend mBackend;
- private ListPreference mPreference;
- private final String[] mListValues;
+public class ZenModeCallsPreferenceController extends
+ AbstractZenModePreferenceController implements PreferenceControllerMixin {
- public ZenModeCallsPreferenceController(Context context, Lifecycle lifecycle) {
- super(context, KEY, lifecycle);
- mBackend = ZenModeBackend.getInstance(context);
- mListValues = context.getResources().getStringArray(R.array.zen_mode_contacts_values);
+ private final String KEY_BEHAVIOR_SETTINGS;
+ private final ZenModeSettings.SummaryBuilder mSummaryBuilder;
+
+ public ZenModeCallsPreferenceController(Context context, Lifecycle lifecycle,
+ String key) {
+ super(context, key, lifecycle);
+ KEY_BEHAVIOR_SETTINGS = key;
+ mSummaryBuilder = new ZenModeSettings.SummaryBuilder(context);
}
@Override
public String getPreferenceKey() {
- return KEY;
+ return KEY_BEHAVIOR_SETTINGS;
}
@Override
@@ -54,54 +47,9 @@
}
@Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- mPreference = (ListPreference) screen.findPreference(KEY);
- }
-
- @Override
public void updateState(Preference preference) {
super.updateState(preference);
- updateFromContactsValue(preference);
- }
- @Override
- public boolean onPreferenceChange(Preference preference, Object selectedContactsFrom) {
- mBackend.saveSenders(NotificationManager.Policy.PRIORITY_CATEGORY_CALLS,
- ZenModeBackend.getSettingFromPrefKey(selectedContactsFrom.toString()));
- updateFromContactsValue(preference);
- return true;
- }
-
- private void updateFromContactsValue(Preference preference) {
- mPreference = (ListPreference) preference;
- switch (getZenMode()) {
- case Settings.Global.ZEN_MODE_NO_INTERRUPTIONS:
- case Settings.Global.ZEN_MODE_ALARMS:
- mPreference.setEnabled(false);
- mPreference.setValue(ZenModeBackend.ZEN_MODE_FROM_NONE);
- mPreference.setSummary(mBackend.getContactsSummary(ZenModeBackend.SOURCE_NONE));
- break;
- default:
- preference.setEnabled(true);
- preference.setSummary(mBackend.getContactsSummary(
- NotificationManager.Policy.PRIORITY_CATEGORY_CALLS));
-
- final String currentVal = ZenModeBackend.getKeyFromSetting(
- mBackend.getPriorityCallSenders());
- mPreference.setValue(mListValues[getIndexOfSendersValue(currentVal)]);
- }
- }
-
- @VisibleForTesting
- protected int getIndexOfSendersValue(String currentVal) {
- int index = 3; // defaults to "none" based on R.array.zen_mode_contacts_values
- for (int i = 0; i < mListValues.length; i++) {
- if (TextUtils.equals(currentVal, mListValues[i])) {
- return i;
- }
- }
-
- return index;
+ preference.setSummary(mSummaryBuilder.getCallsSettingSummary(getPolicy()));
}
}
diff --git a/src/com/android/settings/notification/ZenModeCallsSettings.java b/src/com/android/settings/notification/ZenModeCallsSettings.java
index 6ba53b5..fa77bb0 100644
--- a/src/com/android/settings/notification/ZenModeCallsSettings.java
+++ b/src/com/android/settings/notification/ZenModeCallsSettings.java
@@ -43,7 +43,7 @@
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle) {
List<AbstractPreferenceController> controllers = new ArrayList<>();
- controllers.add(new ZenModeCallsPreferenceController(context, lifecycle));
+ controllers.add(new ZenModePriorityCallsPreferenceController(context, lifecycle));
controllers.add(new ZenModeStarredContactsPreferenceController(context, lifecycle,
PRIORITY_CATEGORY_CALLS, "zen_mode_starred_contacts_callers"));
controllers.add(new ZenModeRepeatCallersPreferenceController(context, lifecycle,
diff --git a/src/com/android/settings/notification/ZenModeMessagesPreferenceController.java b/src/com/android/settings/notification/ZenModeMessagesPreferenceController.java
index 321d94e..19ee809 100644
--- a/src/com/android/settings/notification/ZenModeMessagesPreferenceController.java
+++ b/src/com/android/settings/notification/ZenModeMessagesPreferenceController.java
@@ -1,31 +1,38 @@
+/*
+ * 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.
+ */
+
package com.android.settings.notification;
-import android.app.NotificationManager;
import android.content.Context;
-import android.provider.Settings;
-import android.text.TextUtils;
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.ListPreference;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.lifecycle.Lifecycle;
-public class ZenModeMessagesPreferenceController extends AbstractZenModePreferenceController
- implements Preference.OnPreferenceChangeListener {
+import androidx.preference.Preference;
- protected static final String KEY = "zen_mode_messages";
+public class ZenModeMessagesPreferenceController extends
+ AbstractZenModePreferenceController implements PreferenceControllerMixin {
- private final ZenModeBackend mBackend;
- private ListPreference mPreference;
- private final String[] mListValues;
+ private final String KEY;
+ private final ZenModeSettings.SummaryBuilder mSummaryBuilder;
- public ZenModeMessagesPreferenceController(Context context, Lifecycle lifecycle) {
- super(context, KEY, lifecycle);
- mBackend = ZenModeBackend.getInstance(context);
- mListValues = context.getResources().getStringArray(R.array.zen_mode_contacts_values);
+ public ZenModeMessagesPreferenceController(Context context, Lifecycle lifecycle, String key) {
+ super(context, key, lifecycle);
+ KEY = key;
+ mSummaryBuilder = new ZenModeSettings.SummaryBuilder(context);
}
@Override
@@ -39,54 +46,8 @@
}
@Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- mPreference = (ListPreference) screen.findPreference(KEY);
- }
-
- @Override
public void updateState(Preference preference) {
super.updateState(preference);
- updateFromContactsValue(preference);
- }
-
- @Override
- public boolean onPreferenceChange(Preference preference, Object selectedContactsFrom) {
- mBackend.saveSenders(NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES,
- ZenModeBackend.getSettingFromPrefKey(selectedContactsFrom.toString()));
- updateFromContactsValue(preference);
- return true;
- }
-
- private void updateFromContactsValue(Preference preference) {
- mPreference = (ListPreference) preference;
- switch (getZenMode()) {
- case Settings.Global.ZEN_MODE_NO_INTERRUPTIONS:
- case Settings.Global.ZEN_MODE_ALARMS:
- mPreference.setEnabled(false);
- mPreference.setValue(ZenModeBackend.ZEN_MODE_FROM_NONE);
- mPreference.setSummary(mBackend.getContactsSummary(ZenModeBackend.SOURCE_NONE));
- break;
- default:
- preference.setEnabled(true);
- preference.setSummary(mBackend.getContactsSummary(
- NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES));
-
- final String currentVal = ZenModeBackend.getKeyFromSetting(
- mBackend.getPriorityMessageSenders());
- mPreference.setValue(mListValues[getIndexOfSendersValue(currentVal)]);
- }
- }
-
- @VisibleForTesting
- protected int getIndexOfSendersValue(String currentVal) {
- int index = 3; // defaults to "none" based on R.array.zen_mode_contacts_values
- for (int i = 0; i < mListValues.length; i++) {
- if (TextUtils.equals(currentVal, mListValues[i])) {
- return i;
- }
- }
-
- return index;
+ // TODO: (b/111475013 - beverlyt) set messages summary
}
}
diff --git a/src/com/android/settings/notification/ZenModeMsgEventReminderSettings.java b/src/com/android/settings/notification/ZenModeMessagesSettings.java
similarity index 75%
rename from src/com/android/settings/notification/ZenModeMsgEventReminderSettings.java
rename to src/com/android/settings/notification/ZenModeMessagesSettings.java
index 0e6747a..e09d583 100644
--- a/src/com/android/settings/notification/ZenModeMsgEventReminderSettings.java
+++ b/src/com/android/settings/notification/ZenModeMessagesSettings.java
@@ -33,7 +33,7 @@
import java.util.List;
@SearchIndexable
-public class ZenModeMsgEventReminderSettings extends ZenModeSettingsBase implements Indexable {
+public class ZenModeMessagesSettings extends ZenModeSettingsBase implements Indexable {
@Override
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
@@ -43,19 +43,17 @@
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle) {
List<AbstractPreferenceController> controllers = new ArrayList<>();
- controllers.add(new ZenModeEventsPreferenceController(context, lifecycle));
- controllers.add(new ZenModeRemindersPreferenceController(context, lifecycle));
- controllers.add(new ZenModeMessagesPreferenceController(context, lifecycle));
+ controllers.add(new ZenModePriorityMessagesPreferenceController(context, lifecycle));
controllers.add(new ZenModeStarredContactsPreferenceController(context, lifecycle,
PRIORITY_CATEGORY_MESSAGES, "zen_mode_starred_contacts_messages"));
- controllers.add(new ZenModeBehaviorFooterPreferenceController(context, lifecycle,
- R.string.zen_msg_event_reminder_footer));
+ controllers.add(new ZenModeBehaviorFooterPreferenceController(
+ context, lifecycle, R.string.zen_mode_messages_footer));
return controllers;
}
@Override
protected int getPreferenceScreenResId() {
- return R.xml.zen_mode_msg_event_reminder_settings;
+ return R.xml.zen_mode_messages_settings;
}
@Override
@@ -66,7 +64,7 @@
/**
* For Search.
*/
- public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
@@ -75,14 +73,15 @@
final ArrayList<SearchIndexableResource> result = new ArrayList<>();
final SearchIndexableResource sir = new SearchIndexableResource(context);
- sir.xmlResId = R.xml.zen_mode_msg_event_reminder_settings;
+ sir.xmlResId = R.xml.zen_mode_messages_settings;
result.add(sir);
return result;
}
- @Override
- public List<AbstractPreferenceController> createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, null);
- }
- };
+ @Override
+ public List<AbstractPreferenceController> createPreferenceControllers(
+ Context context) {
+ return buildPreferenceControllers(context, null);
+ }
+ };
}
diff --git a/src/com/android/settings/notification/ZenModePriorityCallsPreferenceController.java b/src/com/android/settings/notification/ZenModePriorityCallsPreferenceController.java
new file mode 100644
index 0000000..44b6c24
--- /dev/null
+++ b/src/com/android/settings/notification/ZenModePriorityCallsPreferenceController.java
@@ -0,0 +1,107 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.notification;
+
+import android.app.NotificationManager;
+import android.content.Context;
+import android.provider.Settings;
+import android.text.TextUtils;
+
+import com.android.settings.R;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+public class ZenModePriorityCallsPreferenceController extends AbstractZenModePreferenceController
+ implements Preference.OnPreferenceChangeListener {
+
+ protected static final String KEY = "zen_mode_calls";
+ private final ZenModeBackend mBackend;
+ private ListPreference mPreference;
+ private final String[] mListValues;
+
+ public ZenModePriorityCallsPreferenceController(Context context, Lifecycle lifecycle) {
+ super(context, KEY, lifecycle);
+ mBackend = ZenModeBackend.getInstance(context);
+ mListValues = context.getResources().getStringArray(R.array.zen_mode_contacts_values);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = (ListPreference) screen.findPreference(KEY);
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ updateFromContactsValue(preference);
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object selectedContactsFrom) {
+ mBackend.saveSenders(NotificationManager.Policy.PRIORITY_CATEGORY_CALLS,
+ ZenModeBackend.getSettingFromPrefKey(selectedContactsFrom.toString()));
+ updateFromContactsValue(preference);
+ return true;
+ }
+
+ private void updateFromContactsValue(Preference preference) {
+ mPreference = (ListPreference) preference;
+ switch (getZenMode()) {
+ case Settings.Global.ZEN_MODE_NO_INTERRUPTIONS:
+ case Settings.Global.ZEN_MODE_ALARMS:
+ mPreference.setEnabled(false);
+ mPreference.setValue(ZenModeBackend.ZEN_MODE_FROM_NONE);
+ mPreference.setSummary(mBackend.getContactsSummary(ZenModeBackend.SOURCE_NONE));
+ break;
+ default:
+ preference.setEnabled(true);
+ preference.setSummary(mBackend.getContactsSummary(
+ NotificationManager.Policy.PRIORITY_CATEGORY_CALLS));
+
+ final String currentVal = ZenModeBackend.getKeyFromSetting(
+ mBackend.getPriorityCallSenders());
+ mPreference.setValue(mListValues[getIndexOfSendersValue(currentVal)]);
+ }
+ }
+
+ @VisibleForTesting
+ protected int getIndexOfSendersValue(String currentVal) {
+ int index = 3; // defaults to "none" based on R.array.zen_mode_contacts_values
+ for (int i = 0; i < mListValues.length; i++) {
+ if (TextUtils.equals(currentVal, mListValues[i])) {
+ return i;
+ }
+ }
+
+ return index;
+ }
+}
diff --git a/src/com/android/settings/notification/ZenModePriorityMessagesPreferenceController.java b/src/com/android/settings/notification/ZenModePriorityMessagesPreferenceController.java
new file mode 100644
index 0000000..56829a7
--- /dev/null
+++ b/src/com/android/settings/notification/ZenModePriorityMessagesPreferenceController.java
@@ -0,0 +1,107 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.notification;
+
+import android.app.NotificationManager;
+import android.content.Context;
+import android.provider.Settings;
+import android.text.TextUtils;
+
+import com.android.settings.R;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+public class ZenModePriorityMessagesPreferenceController extends AbstractZenModePreferenceController
+ implements Preference.OnPreferenceChangeListener {
+
+ protected static final String KEY = "zen_mode_messages";
+ private final ZenModeBackend mBackend;
+ private ListPreference mPreference;
+ private final String[] mListValues;
+
+ public ZenModePriorityMessagesPreferenceController(Context context, Lifecycle lifecycle) {
+ super(context, KEY, lifecycle);
+ mBackend = ZenModeBackend.getInstance(context);
+ mListValues = context.getResources().getStringArray(R.array.zen_mode_contacts_values);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = (ListPreference) screen.findPreference(KEY);
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ updateFromContactsValue(preference);
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object selectedContactsFrom) {
+ mBackend.saveSenders(NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES,
+ ZenModeBackend.getSettingFromPrefKey(selectedContactsFrom.toString()));
+ updateFromContactsValue(preference);
+ return true;
+ }
+
+ private void updateFromContactsValue(Preference preference) {
+ mPreference = (ListPreference) preference;
+ switch (getZenMode()) {
+ case Settings.Global.ZEN_MODE_NO_INTERRUPTIONS:
+ case Settings.Global.ZEN_MODE_ALARMS:
+ mPreference.setEnabled(false);
+ mPreference.setValue(ZenModeBackend.ZEN_MODE_FROM_NONE);
+ mPreference.setSummary(mBackend.getContactsSummary(ZenModeBackend.SOURCE_NONE));
+ break;
+ default:
+ preference.setEnabled(true);
+ preference.setSummary(mBackend.getContactsSummary(
+ NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES));
+
+ final String currentVal = ZenModeBackend.getKeyFromSetting(
+ mBackend.getPriorityMessageSenders());
+ mPreference.setValue(mListValues[getIndexOfSendersValue(currentVal)]);
+ }
+ }
+
+ @VisibleForTesting
+ protected int getIndexOfSendersValue(String currentVal) {
+ int index = 3; // defaults to "none" based on R.array.zen_mode_contacts_values
+ for (int i = 0; i < mListValues.length; i++) {
+ if (TextUtils.equals(currentVal, mListValues[i])) {
+ return i;
+ }
+ }
+
+ return index;
+ }
+}
diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java
index 9cd3107..3a270d2 100644
--- a/src/com/android/settings/notification/ZenModeSettings.java
+++ b/src/com/android/settings/notification/ZenModeSettings.java
@@ -82,9 +82,12 @@
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle, FragmentManager fragmentManager) {
List<AbstractPreferenceController> controllers = new ArrayList<>();
- controllers.add(new ZenModeBehaviorMsgEventReminderPreferenceController(context, lifecycle));
- controllers.add(new ZenModeBehaviorSoundPreferenceController(context, lifecycle));
- controllers.add(new ZenModeBehaviorCallsPreferenceController(context, lifecycle));
+ controllers.add(new ZenModeCallsPreferenceController(context, lifecycle,
+ "zen_mode_behavior_calls"));
+ controllers.add(new ZenModeMessagesPreferenceController(context, lifecycle,
+ "zen_mode_behavior_messages"));
+ controllers.add(new ZenModeAlarmsPreferenceController(context, lifecycle,
+ "zen_mode_behavior_alarms"));
controllers.add(new ZenModeBlockedEffectsPreferenceController(context, lifecycle));
controllers.add(new ZenModeDurationPreferenceController(context, lifecycle));
controllers.add(new ZenModeAutomationPreferenceController(context));
diff --git a/src/com/android/settings/notification/ZenModeSoundVibrationSettings.java b/src/com/android/settings/notification/ZenModeSoundVibrationSettings.java
index 32ff2d1..df92446 100644
--- a/src/com/android/settings/notification/ZenModeSoundVibrationSettings.java
+++ b/src/com/android/settings/notification/ZenModeSoundVibrationSettings.java
@@ -16,6 +16,8 @@
package com.android.settings.notification;
+import static android.app.NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES;
+
import android.content.Context;
import android.provider.SearchIndexableResource;
@@ -41,9 +43,16 @@
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle) {
List<AbstractPreferenceController> controllers = new ArrayList<>();
- controllers.add(new ZenModeAlarmsPreferenceController(context, lifecycle));
+ controllers.add(new ZenModeCallsPreferenceController(context, lifecycle,
+ "zen_mode_calls_settings"));
+ controllers.add(new ZenModeMessagesPreferenceController(context, lifecycle,
+ "zen_mode_messages_settings"));
+ controllers.add(new ZenModeAlarmsPreferenceController(context, lifecycle,
+ "zen_mode_alarms"));
controllers.add(new ZenModeMediaPreferenceController(context, lifecycle));
controllers.add(new ZenModeSystemPreferenceController(context, lifecycle));
+ controllers.add(new ZenModeRemindersPreferenceController(context, lifecycle));
+ controllers.add(new ZenModeEventsPreferenceController(context, lifecycle));
controllers.add(new ZenModeBehaviorFooterPreferenceController(context, lifecycle,
R.string.zen_sound_footer));
return controllers;
diff --git a/src/com/android/settings/password/BiometricFragment.java b/src/com/android/settings/password/BiometricFragment.java
new file mode 100644
index 0000000..6e1ae10
--- /dev/null
+++ b/src/com/android/settings/password/BiometricFragment.java
@@ -0,0 +1,198 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.password;
+
+import android.app.settings.SettingsEnums;
+import android.content.DialogInterface;
+import android.hardware.biometrics.BiometricConstants;
+import android.hardware.biometrics.BiometricPrompt;
+import android.hardware.biometrics.BiometricPrompt.AuthenticationCallback;
+import android.hardware.biometrics.BiometricPrompt.AuthenticationResult;
+import android.os.Bundle;
+import android.os.CancellationSignal;
+import android.os.Handler;
+import android.os.Looper;
+
+import com.android.settings.core.InstrumentedFragment;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import java.util.concurrent.Executor;
+
+/**
+ * A fragment that wraps the BiometricPrompt and manages its lifecycle.
+ */
+public class BiometricFragment extends InstrumentedFragment {
+
+ private static final String KEY_TITLE = "title";
+ private static final String KEY_SUBTITLE = "subtitle";
+ private static final String KEY_DESCRIPTION = "description";
+ private static final String KEY_NEGATIVE_TEXT = "negative_text";
+
+ // Re-set by the application. Should be done upon orientation changes, etc
+ private Executor mClientExecutor;
+ private AuthenticationCallback mClientCallback;
+
+ // Created/Initialized once and retained
+ private final Handler mHandler = new Handler(Looper.getMainLooper());
+ private PromptInfo mPromptInfo;
+ private BiometricPrompt mBiometricPrompt;
+ private CancellationSignal mCancellationSignal;
+
+ private AuthenticationCallback mAuthenticationCallback =
+ new AuthenticationCallback() {
+ @Override
+ public void onAuthenticationError(int error, @NonNull CharSequence message) {
+ mClientExecutor.execute(() -> {
+ mClientCallback.onAuthenticationError(error, message);
+ });
+ cleanup();
+ }
+
+ @Override
+ public void onAuthenticationSucceeded(AuthenticationResult result) {
+ mClientExecutor.execute(() -> {
+ mClientCallback.onAuthenticationSucceeded(result);
+ });
+ cleanup();
+ }
+ };
+
+ private final DialogInterface.OnClickListener mNegativeButtonListener =
+ new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ mAuthenticationCallback.onAuthenticationError(
+ BiometricConstants.BIOMETRIC_ERROR_NEGATIVE_BUTTON,
+ mPromptInfo.getNegativeButtonText());
+ }
+ };
+
+ public static BiometricFragment newInstance(PromptInfo info) {
+ BiometricFragment biometricFragment = new BiometricFragment();
+ biometricFragment.setArguments(info.getBundle());
+ return biometricFragment;
+ }
+
+ public void setCallbacks(Executor executor, AuthenticationCallback callback) {
+ mClientExecutor = executor;
+ mClientCallback = callback;
+ }
+
+ public void cancel() {
+ if (mCancellationSignal != null) {
+ mCancellationSignal.cancel();
+ }
+ cleanup();
+ }
+
+ private void cleanup() {
+ if (getActivity() != null) {
+ getActivity().getSupportFragmentManager().beginTransaction().remove(this).commit();
+ }
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setRetainInstance(true);
+
+ mPromptInfo = new PromptInfo(getArguments());
+ mBiometricPrompt = new BiometricPrompt.Builder(getContext())
+ .setTitle(mPromptInfo.getTitle())
+ .setUseDefaultTitle() // use default title if title is null/empty
+ .setSubtitle(mPromptInfo.getSubtitle())
+ .setDescription(mPromptInfo.getDescription())
+ .setNegativeButton(mPromptInfo.getNegativeButtonText(), mClientExecutor,
+ mNegativeButtonListener)
+ .build();
+ mCancellationSignal = new CancellationSignal();
+
+ // TODO: CC doesn't use crypto for now
+ mBiometricPrompt.authenticate(mCancellationSignal, mClientExecutor,
+ mAuthenticationCallback);
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.BIOMETRIC_FRAGMENT;
+ }
+
+ /**
+ * A simple wrapper for BiometricPrompt.PromptInfo. Since we want to manage the lifecycle
+ * of BiometricPrompt correctly, the information needs to be stored in here.
+ */
+ static class PromptInfo {
+ private final Bundle mBundle;
+
+ private PromptInfo(Bundle bundle) {
+ mBundle = bundle;
+ }
+
+ Bundle getBundle() {
+ return mBundle;
+ }
+
+ public CharSequence getTitle() {
+ return mBundle.getCharSequence(KEY_TITLE);
+ }
+
+ public CharSequence getSubtitle() {
+ return mBundle.getCharSequence(KEY_SUBTITLE);
+ }
+
+ public CharSequence getDescription() {
+ return mBundle.getCharSequence(KEY_DESCRIPTION);
+ }
+
+ public CharSequence getNegativeButtonText() {
+ return mBundle.getCharSequence(KEY_NEGATIVE_TEXT);
+ }
+
+ public static class Builder {
+ private final Bundle mBundle = new Bundle();
+
+ public Builder setTitle(@NonNull CharSequence title) {
+ mBundle.putCharSequence(KEY_TITLE, title);
+ return this;
+ }
+
+ public Builder setSubtitle(@Nullable CharSequence subtitle) {
+ mBundle.putCharSequence(KEY_SUBTITLE, subtitle);
+ return this;
+ }
+
+ public Builder setDescription(@Nullable CharSequence description) {
+ mBundle.putCharSequence(KEY_DESCRIPTION, description);
+ return this;
+ }
+
+ public Builder setNegativeButtonText(@NonNull CharSequence text) {
+ mBundle.putCharSequence(KEY_NEGATIVE_TEXT, text);
+ return this;
+ }
+
+ public PromptInfo build() {
+ return new PromptInfo(mBundle);
+ }
+ }
+ }
+}
+
diff --git a/src/com/android/settings/password/ChooseLockSettingsHelper.java b/src/com/android/settings/password/ChooseLockSettingsHelper.java
index 3c83f07..d5182b3 100644
--- a/src/com/android/settings/password/ChooseLockSettingsHelper.java
+++ b/src/com/android/settings/password/ChooseLockSettingsHelper.java
@@ -78,7 +78,13 @@
* @see Activity#onActivityResult(int, int, android.content.Intent)
*/
public boolean launchConfirmationActivity(int request, CharSequence title) {
- return launchConfirmationActivity(request, title, null, null, false, false);
+ return launchConfirmationActivity(
+ request /* request */,
+ title /* title */,
+ null /* header */,
+ null /* description */,
+ false /* returnCredentials */,
+ false /* external */);
}
/**
@@ -91,7 +97,13 @@
* @see Activity#onActivityResult(int, int, android.content.Intent)
*/
public boolean launchConfirmationActivity(int request, CharSequence title, boolean returnCredentials) {
- return launchConfirmationActivity(request, title, null, null, returnCredentials, false);
+ return launchConfirmationActivity(
+ request /* request */,
+ title /* title */,
+ null /* header */,
+ null /* description */,
+ returnCredentials /* returnCredentials */,
+ false /* external */);
}
/**
@@ -106,8 +118,16 @@
*/
public boolean launchConfirmationActivity(int request, CharSequence title,
boolean returnCredentials, int userId) {
- return launchConfirmationActivity(request, title, null, null,
- returnCredentials, false, false, 0, Utils.enforceSameOwner(mActivity, userId));
+ return launchConfirmationActivity(
+ request /* request */,
+ title /* title */,
+ null /* header */,
+ null /* description */,
+ returnCredentials /* returnCredentials */,
+ false /* external */,
+ false /* hasChallenge */,
+ 0 /* challenge */,
+ Utils.enforceSameOwner(mActivity, userId) /* userId */);
}
/**
@@ -127,8 +147,16 @@
boolean launchConfirmationActivity(int request, @Nullable CharSequence title,
@Nullable CharSequence header, @Nullable CharSequence description,
boolean returnCredentials, boolean external) {
- return launchConfirmationActivity(request, title, header, description,
- returnCredentials, external, false, 0, Utils.getCredentialOwnerUserId(mActivity));
+ return launchConfirmationActivity(
+ request /* request */,
+ title /* title */,
+ header /* header */,
+ description /* description */,
+ returnCredentials /* returnCredentials */,
+ external /* external */,
+ false /* hasChallenge */,
+ 0 /* challenge */,
+ Utils.getCredentialOwnerUserId(mActivity) /* userId */);
}
/**
@@ -149,8 +177,16 @@
boolean launchConfirmationActivity(int request, @Nullable CharSequence title,
@Nullable CharSequence header, @Nullable CharSequence description,
boolean returnCredentials, boolean external, int userId) {
- return launchConfirmationActivity(request, title, header, description,
- returnCredentials, external, false, 0, Utils.enforceSameOwner(mActivity, userId));
+ return launchConfirmationActivity(
+ request /* request */,
+ title /* title */,
+ header /* header */,
+ description /* description */,
+ returnCredentials /* returnCredentials */,
+ external /* external */,
+ false /* hasChallenge */,
+ 0 /* challenge */,
+ Utils.enforceSameOwner(mActivity, userId) /* userId */);
}
/**
@@ -166,8 +202,16 @@
public boolean launchConfirmationActivity(int request, @Nullable CharSequence title,
@Nullable CharSequence header, @Nullable CharSequence description,
long challenge) {
- return launchConfirmationActivity(request, title, header, description,
- true, false, true, challenge, Utils.getCredentialOwnerUserId(mActivity));
+ return launchConfirmationActivity(
+ request /* request */,
+ title /* title */,
+ header /* header */,
+ description /* description */,
+ true /* returnCredentials */,
+ false /* external */,
+ true /* hasChallenge */,
+ challenge /* challenge */,
+ Utils.getCredentialOwnerUserId(mActivity) /* userId */);
}
/**
@@ -184,8 +228,16 @@
public boolean launchConfirmationActivity(int request, @Nullable CharSequence title,
@Nullable CharSequence header, @Nullable CharSequence description,
long challenge, int userId) {
- return launchConfirmationActivity(request, title, header, description,
- true, false, true, challenge, Utils.enforceSameOwner(mActivity, userId));
+ return launchConfirmationActivity(
+ request /* request */,
+ title /* title */,
+ header /* header */,
+ description /* description */,
+ true /* returnCredentials */,
+ false /* external */,
+ true /* hasChallenge */,
+ challenge /* challenge */,
+ Utils.enforceSameOwner(mActivity, userId) /* userId */);
}
/**
@@ -205,8 +257,16 @@
public boolean launchConfirmationActivityWithExternalAndChallenge(int request,
@Nullable CharSequence title, @Nullable CharSequence header,
@Nullable CharSequence description, boolean external, long challenge, int userId) {
- return launchConfirmationActivity(request, title, header, description, false,
- external, true, challenge, Utils.enforceSameOwner(mActivity, userId));
+ return launchConfirmationActivity(
+ request /* request */,
+ title /* title */,
+ header /* header */,
+ description /* description */,
+ false /* returnCredentials */,
+ external /* external */,
+ true /* hasChallenge */,
+ challenge /* challenge */,
+ Utils.enforceSameOwner(mActivity, userId) /* userId */);
}
/**
@@ -219,31 +279,69 @@
@Nullable CharSequence description, int userId) {
final Bundle extras = new Bundle();
extras.putBoolean(EXTRA_ALLOW_ANY_USER, true);
- return launchConfirmationActivity(request, title, header, description, false,
- false, true, 0, userId, extras);
+ return launchConfirmationActivity(
+ request /* request */,
+ title /* title */,
+ header /* header */,
+ description /* description */,
+ false /* returnCredentials */,
+ false /* external */,
+ true /* hasChallenge */,
+ 0 /* challenge */,
+ userId /* userId */,
+ extras /* extras */);
}
private boolean launchConfirmationActivity(int request, @Nullable CharSequence title,
@Nullable CharSequence header, @Nullable CharSequence description,
boolean returnCredentials, boolean external, boolean hasChallenge,
long challenge, int userId) {
- return launchConfirmationActivity(request, title, header, description, returnCredentials,
- external, hasChallenge, challenge, userId, null /* alternateButton */, null);
+ return launchConfirmationActivity(
+ request /* request */,
+ title /* title */,
+ header /* header */,
+ description /* description */,
+ returnCredentials /* returnCredentials */,
+ external /* external */,
+ hasChallenge /* hasChallenge */,
+ challenge /* challenge */,
+ userId /* userId */,
+ null /* alternateButton */,
+ null /* extras */);
}
private boolean launchConfirmationActivity(int request, @Nullable CharSequence title,
@Nullable CharSequence header, @Nullable CharSequence description,
boolean returnCredentials, boolean external, boolean hasChallenge,
long challenge, int userId, Bundle extras) {
- return launchConfirmationActivity(request, title, header, description, returnCredentials,
- external, hasChallenge, challenge, userId, null /* alternateButton */, extras);
+ return launchConfirmationActivity(
+ request /* request */,
+ title /* title */,
+ header /* header */,
+ description /* description */,
+ returnCredentials /* returnCredentials */,
+ external /* external */,
+ hasChallenge /* hasChallenge */,
+ challenge /* challenge */,
+ userId /* userId */,
+ null /* alternateButton */,
+ extras /* extras */);
}
public boolean launchFrpConfirmationActivity(int request, @Nullable CharSequence header,
@Nullable CharSequence description, @Nullable CharSequence alternateButton) {
- return launchConfirmationActivity(request, null /* title */, header, description,
- false /* returnCredentials */, true /* external */, false /* hasChallenge */,
- 0 /* challenge */, LockPatternUtils.USER_FRP, alternateButton, null);
+ return launchConfirmationActivity(
+ request /* request */,
+ null /* title */,
+ header /* header */,
+ description /* description */,
+ false /* returnCredentials */,
+ true /* external */,
+ false /* hasChallenge */,
+ 0 /* challenge */,
+ LockPatternUtils.USER_FRP /* userId */,
+ alternateButton /* alternateButton */,
+ null /* extras */);
}
private boolean launchConfirmationActivity(int request, @Nullable CharSequence title,
@@ -285,11 +383,11 @@
intent.putExtra(ConfirmDeviceCredentialBaseFragment.TITLE_TEXT, title);
intent.putExtra(ConfirmDeviceCredentialBaseFragment.HEADER_TEXT, header);
intent.putExtra(ConfirmDeviceCredentialBaseFragment.DETAILS_TEXT, message);
- intent.putExtra(ConfirmDeviceCredentialBaseFragment.ALLOW_FP_AUTHENTICATION, external);
// TODO: Remove dark theme and show_cancel_button options since they are no longer used
intent.putExtra(ConfirmDeviceCredentialBaseFragment.DARK_THEME, false);
intent.putExtra(ConfirmDeviceCredentialBaseFragment.SHOW_CANCEL_BUTTON, false);
intent.putExtra(ConfirmDeviceCredentialBaseFragment.SHOW_WHEN_LOCKED, external);
+ intent.putExtra(ConfirmDeviceCredentialBaseFragment.USE_FADE_ANIMATION, external);
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_RETURN_CREDENTIALS, returnCredentials);
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, hasChallenge);
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, challenge);
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
index f5b3b05..f68c04a 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
@@ -22,21 +22,40 @@
import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.content.Intent;
+import android.hardware.biometrics.BiometricConstants;
+import android.hardware.biometrics.BiometricManager;
+import android.hardware.biometrics.BiometricPrompt;
+import android.hardware.biometrics.BiometricPrompt.AuthenticationCallback;
import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
import android.os.UserHandle;
import android.os.UserManager;
import android.util.Log;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.FragmentActivity;
+
import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.R;
import com.android.settings.Utils;
+import java.util.concurrent.Executor;
+
/**
* Launch this when you want to confirm the user is present by asking them to enter their
* PIN/password/pattern.
*/
-public class ConfirmDeviceCredentialActivity extends Activity {
+public class ConfirmDeviceCredentialActivity extends FragmentActivity {
public static final String TAG = ConfirmDeviceCredentialActivity.class.getSimpleName();
+ // The normal flow that apps go through
+ private static final int CREDENTIAL_NORMAL = 1;
+ // Unlocks the managed profile when the primary profile is unlocked
+ private static final int CREDENTIAL_MANAGED = 2;
+
+ private static final String TAG_BIOMETRIC_FRAGMENT = "fragment";
+
public static class InternalActivity extends ConfirmDeviceCredentialActivity {
}
@@ -60,57 +79,217 @@
return intent;
}
+ private BiometricManager mBiometricManager;
+ private BiometricFragment mBiometricFragment;
+ private DevicePolicyManager mDevicePolicyManager;
+ private LockPatternUtils mLockPatternUtils;
+ private UserManager mUserManager;
+ private ChooseLockSettingsHelper mChooseLockSettingsHelper;
+ private Handler mHandler = new Handler(Looper.getMainLooper());
+
+ private String mTitle;
+ private String mDetails;
+ private int mUserId;
+ private int mEffectiveUserId;
+ private int mCredentialMode;
+ private boolean mGoingToBackground;
+
+ private Executor mExecutor = (runnable -> {
+ mHandler.post(runnable);
+ });
+
+ private AuthenticationCallback mAuthenticationCallback = new AuthenticationCallback() {
+ public void onAuthenticationError(int errorCode, @NonNull CharSequence errString) {
+ if (!mGoingToBackground) {
+ if (errorCode == BiometricPrompt.BIOMETRIC_ERROR_USER_CANCELED) {
+ finish();
+ } else {
+ // All other errors go to some version of CC
+ showConfirmCredentials();
+ }
+ }
+
+ }
+
+ public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {
+ setResult(Activity.RESULT_OK);
+ finish();
+ }
+ };
+
@Override
- public void onCreate(Bundle savedInstanceState) {
+ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ mBiometricManager = getSystemService(BiometricManager.class);
+ mDevicePolicyManager = getSystemService(DevicePolicyManager.class);
+ mUserManager = UserManager.get(this);
+ mLockPatternUtils = new LockPatternUtils(this);
+
Intent intent = getIntent();
- String title = intent.getStringExtra(KeyguardManager.EXTRA_TITLE);
- String details = intent.getStringExtra(KeyguardManager.EXTRA_DESCRIPTION);
+ mTitle = intent.getStringExtra(KeyguardManager.EXTRA_TITLE);
+ mDetails = intent.getStringExtra(KeyguardManager.EXTRA_DESCRIPTION);
String alternateButton = intent.getStringExtra(
KeyguardManager.EXTRA_ALTERNATE_BUTTON_LABEL);
boolean frp = KeyguardManager.ACTION_CONFIRM_FRP_CREDENTIAL.equals(intent.getAction());
- int userId = UserHandle.myUserId();
+ mUserId = UserHandle.myUserId();
+ mEffectiveUserId = mUserManager.getCredentialOwnerProfile(mUserId);
if (isInternalActivity()) {
try {
- userId = Utils.getUserIdFromBundle(this, intent.getExtras());
+ mUserId = Utils.getUserIdFromBundle(this, intent.getExtras());
} catch (SecurityException se) {
Log.e(TAG, "Invalid intent extra", se);
}
}
- final boolean isManagedProfile = UserManager.get(this).isManagedProfile(userId);
+ final boolean isManagedProfile = UserManager.get(this).isManagedProfile(mUserId);
// if the client app did not hand in a title and we are about to show the work challenge,
// check whether there is a policy setting the organization name and use that as title
- if ((title == null) && isManagedProfile) {
- title = getTitleFromOrganizationName(userId);
+ if ((mTitle == null) && isManagedProfile) {
+ mTitle = getTitleFromOrganizationName(mUserId);
}
- ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(this);
+ mChooseLockSettingsHelper = new ChooseLockSettingsHelper(this);
final LockPatternUtils lockPatternUtils = new LockPatternUtils(this);
- boolean launched;
+
+ boolean launchedBiometric = false;
+ boolean launchedCDC = false;
// If the target is a managed user and user key not unlocked yet, we will force unlock
// tied profile so it will enable work mode and unlock managed profile, when personal
// challenge is unlocked.
if (frp) {
- launched = helper.launchFrpConfirmationActivity(0, title, details, alternateButton);
+ launchedCDC = mChooseLockSettingsHelper.launchFrpConfirmationActivity(
+ 0, mTitle, mDetails, alternateButton);
} else if (isManagedProfile && isInternalActivity()
- && !lockPatternUtils.isSeparateProfileChallengeEnabled(userId)) {
+ && !lockPatternUtils.isSeparateProfileChallengeEnabled(mUserId)) {
+ mCredentialMode = CREDENTIAL_MANAGED;
+ if (isBiometricAllowed()) {
+ showBiometricPrompt();
+ launchedBiometric = true;
+ } else {
+ showConfirmCredentials();
+ }
+ } else {
+ mCredentialMode = CREDENTIAL_NORMAL;
+ if (isBiometricAllowed()) {
+ // Don't need to check if biometrics / pin/pattern/pass are enrolled. It will go to
+ // onAuthenticationError and do the right thing automatically.
+ showBiometricPrompt();
+ launchedBiometric = true;
+ } else {
+ showConfirmCredentials();
+ }
+ }
+
+ if (launchedCDC) {
+ finish();
+ } else if (launchedBiometric) {
+ // Keep this activity alive until BiometricPrompt goes away
+ } else {
+ Log.d(TAG, "No pattern, password or PIN set.");
+ setResult(Activity.RESULT_OK);
+ finish();
+ }
+ }
+
+ @Override
+ protected void onStart() {
+ super.onStart();
+ // Translucent activity that is "visible", so it doesn't complain about finish()
+ // not being called before onResume().
+ setVisible(true);
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ if (!isChangingConfigurations()) {
+ mGoingToBackground = true;
+ if (mBiometricFragment != null) {
+ mBiometricFragment.cancel();
+ }
+ finish();
+ } else {
+ mGoingToBackground = false;
+ }
+ }
+
+ // User could be locked while Effective user is unlocked even though the effective owns the
+ // credential. Otherwise, biometric can't unlock fbe/keystore through
+ // verifyTiedProfileChallenge. In such case, we also wanna show the user message that
+ // biometric is disabled due to device restart.
+ private boolean isStrongAuthRequired() {
+ return !mLockPatternUtils.isBiometricAllowedForUser(mEffectiveUserId)
+ || !mUserManager.isUserUnlocked(mUserId);
+ }
+
+ private boolean isBiometricDisabledByAdmin() {
+ final int disabledFeatures =
+ mDevicePolicyManager.getKeyguardDisabledFeatures(null, mEffectiveUserId);
+ return (disabledFeatures & DevicePolicyManager.KEYGUARD_DISABLE_BIOMETRICS) != 0;
+ }
+
+ private boolean isBiometricAllowed() {
+ return !isStrongAuthRequired() && !isBiometricDisabledByAdmin();
+ }
+
+ private void showBiometricPrompt() {
+ mBiometricManager.setActiveUser(mUserId);
+
+ mBiometricFragment = (BiometricFragment) getSupportFragmentManager()
+ .findFragmentByTag(TAG_BIOMETRIC_FRAGMENT);
+ boolean newFragment = false;
+
+ if (mBiometricFragment == null) {
+ final BiometricFragment.PromptInfo info = new BiometricFragment.PromptInfo.Builder()
+ .setTitle(mTitle)
+ .setSubtitle(mDetails)
+ .setNegativeButtonText(getResources()
+ .getString(R.string.confirm_device_credential_use_alternate_method))
+ .build();
+ mBiometricFragment = BiometricFragment.newInstance(info);
+ newFragment = true;
+ }
+ mBiometricFragment.setCallbacks(mExecutor, mAuthenticationCallback);
+
+ if (newFragment) {
+ getSupportFragmentManager().beginTransaction()
+ .add(mBiometricFragment, TAG_BIOMETRIC_FRAGMENT).commit();
+ }
+ }
+
+ /**
+ * Shows ConfirmDeviceCredentials for normal apps.
+ */
+ private void showConfirmCredentials() {
+ boolean launched = false;
+ if (mCredentialMode == CREDENTIAL_MANAGED) {
// We set the challenge as 0L, so it will force to unlock managed profile when it
// unlocks primary profile screen lock, by calling verifyTiedProfileChallenge()
- launched = helper.launchConfirmationActivityWithExternalAndChallenge(
- 0 /* request code */, null /* title */, title, details, true /* isExternal */,
- 0L /* challenge */, userId);
- } else {
- launched = helper.launchConfirmationActivity(0 /* request code */, null /* title */,
- title, details, false /* returnCredentials */, true /* isExternal */, userId);
+ launched = mChooseLockSettingsHelper
+ .launchConfirmationActivityWithExternalAndChallenge(
+ 0 /* request code */, null /* title */, mTitle, mDetails,
+ true /* isExternal */, 0L /* challenge */, mUserId);
+ } else if (mCredentialMode == CREDENTIAL_NORMAL){
+ launched = mChooseLockSettingsHelper.launchConfirmationActivity(
+ 0 /* request code */, null /* title */,
+ mTitle, mDetails, false /* returnCredentials */, true /* isExternal */,
+ mUserId);
}
if (!launched) {
- Log.d(TAG, "No pattern, password or PIN set.");
+ Log.d(TAG, "No pin/pattern/pass set");
setResult(Activity.RESULT_OK);
}
finish();
}
+ @Override
+ public void finish() {
+ super.finish();
+ // Finish without animation since the activity is just there so we can launch
+ // BiometricPrompt.
+ overridePendingTransition(R.anim.confirm_credential_biometric_transition_enter, 0);
+ }
+
private boolean isInternalActivity() {
return this instanceof ConfirmDeviceCredentialActivity.InternalActivity;
}
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java
index cae3ae6..c00f9ab 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java
@@ -140,6 +140,15 @@
}
}
+ @Override
+ public void finish() {
+ super.finish();
+ if (getIntent().getBooleanExtra(
+ ConfirmDeviceCredentialBaseFragment.USE_FADE_ANIMATION, false)) {
+ overridePendingTransition(0, R.anim.confirm_credential_biometric_transition_exit);
+ }
+ }
+
public void prepareEnterAnimation() {
getFragment().prepareEnterAnimation();
}
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java b/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java
index a9542e5..9b677aa 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java
@@ -53,26 +53,24 @@
import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R;
import com.android.settings.Utils;
-import com.android.settings.biometrics.fingerprint.FingerprintUiHelper;
import com.android.settings.core.InstrumentedFragment;
/**
* Base fragment to be shared for PIN/Pattern/Password confirmation fragments.
*/
-public abstract class ConfirmDeviceCredentialBaseFragment extends InstrumentedFragment
- implements FingerprintUiHelper.Callback {
+public abstract class ConfirmDeviceCredentialBaseFragment extends InstrumentedFragment {
public static final String PACKAGE = "com.android.settings";
public static final String TITLE_TEXT = PACKAGE + ".ConfirmCredentials.title";
public static final String HEADER_TEXT = PACKAGE + ".ConfirmCredentials.header";
public static final String DETAILS_TEXT = PACKAGE + ".ConfirmCredentials.details";
- public static final String ALLOW_FP_AUTHENTICATION =
- PACKAGE + ".ConfirmCredentials.allowFpAuthentication";
public static final String DARK_THEME = PACKAGE + ".ConfirmCredentials.darkTheme";
public static final String SHOW_CANCEL_BUTTON =
PACKAGE + ".ConfirmCredentials.showCancelButton";
public static final String SHOW_WHEN_LOCKED =
PACKAGE + ".ConfirmCredentials.showWhenLocked";
+ public static final String USE_FADE_ANIMATION =
+ PACKAGE + ".ConfirmCredentials.useFadeAnimation";
protected static final int USER_TYPE_PRIMARY = 1;
protected static final int USER_TYPE_MANAGED_PROFILE = 2;
@@ -81,10 +79,8 @@
/** Time we wait before clearing a wrong input attempt (e.g. pattern) and the error message. */
protected static final long CLEAR_WRONG_ATTEMPT_TIMEOUT_MS = 3000;
- private FingerprintUiHelper mFingerprintHelper;
protected boolean mReturnCredentials = false;
protected Button mCancelButton;
- protected ImageView mFingerprintIcon;
protected int mEffectiveUserId;
protected int mUserId;
protected UserManager mUserManager;
@@ -123,9 +119,7 @@
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mCancelButton = (Button) view.findViewById(R.id.cancelButton);
- mFingerprintIcon = (ImageView) view.findViewById(R.id.fingerprintIcon);
- mFingerprintHelper = new FingerprintUiHelper(
- mFingerprintIcon, view.findViewById(R.id.errorText), this, mUserId);
+
boolean showCancelButton = getActivity().getIntent().getBooleanExtra(
SHOW_CANCEL_BUTTON, false);
boolean hasAlternateButton = mFrp && !TextUtils.isEmpty(mFrpAlternateButtonText);
@@ -153,29 +147,16 @@
}
}
- private boolean isFingerprintDisabledByAdmin() {
- final int disabledFeatures =
- mDevicePolicyManager.getKeyguardDisabledFeatures(null, mEffectiveUserId);
- return (disabledFeatures & DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT) != 0;
- }
-
// User could be locked while Effective user is unlocked even though the effective owns the
// credential. Otherwise, fingerprint can't unlock fbe/keystore through
// verifyTiedProfileChallenge. In such case, we also wanna show the user message that
// fingerprint is disabled due to device restart.
protected boolean isStrongAuthRequired() {
return mFrp
- || !mLockPatternUtils.isFingerprintAllowedForUser(mEffectiveUserId)
+ || !mLockPatternUtils.isBiometricAllowedForUser(mEffectiveUserId)
|| !mUserManager.isUserUnlocked(mUserId);
}
- private boolean isFingerprintAllowed() {
- return !mReturnCredentials
- && getActivity().getIntent().getBooleanExtra(ALLOW_FP_AUTHENTICATION, false)
- && !isStrongAuthRequired()
- && !isFingerprintDisabledByAdmin();
- }
-
@Override
public void onResume() {
super.onResume();
@@ -183,13 +164,6 @@
}
protected void refreshLockScreen() {
- if (isFingerprintAllowed()) {
- mFingerprintHelper.startListening();
- } else {
- if (mFingerprintHelper.isListening()) {
- mFingerprintHelper.stopListening();
- }
- }
updateErrorMessage(mLockPatternUtils.getCurrentFailedPasswordAttempts(mEffectiveUserId));
}
@@ -214,28 +188,10 @@
@Override
public void onPause() {
super.onPause();
- if (mFingerprintHelper.isListening()) {
- mFingerprintHelper.stopListening();
- }
- }
-
- @Override
- public void onAuthenticated() {
- // Check whether we are still active.
- if (getActivity() != null && getActivity().isResumed()) {
- TrustManager trustManager =
- (TrustManager) getActivity().getSystemService(Context.TRUST_SERVICE);
- trustManager.setDeviceLockedForUser(mEffectiveUserId, false);
- authenticationSucceeded();
- checkForPendingIntent();
- }
}
protected abstract void authenticationSucceeded();
- @Override
- public void onFingerprintIconVisibilityChanged(boolean visible) {
- }
public void prepareEnterAnimation() {
}
diff --git a/src/com/android/settings/password/ConfirmLockPassword.java b/src/com/android/settings/password/ConfirmLockPassword.java
index 38561fb..d380fc9 100644
--- a/src/com/android/settings/password/ConfirmLockPassword.java
+++ b/src/com/android/settings/password/ConfirmLockPassword.java
@@ -105,7 +105,6 @@
private CountDownTimer mCountdownTimer;
private boolean mIsAlpha;
private InputMethodManager mImm;
- private boolean mUsingFingerprint = false;
private AppearAnimationUtils mAppearAnimationUtils;
private DisappearAnimationUtils mDisappearAnimationUtils;
@@ -243,7 +242,6 @@
mCancelButton.setAlpha(0f);
mPasswordEntry.setAlpha(0f);
mErrorTextView.setAlpha(0f);
- mFingerprintIcon.setAlpha(0f);
}
private View[] getActiveViews() {
@@ -255,9 +253,6 @@
}
result.add(mPasswordEntry);
result.add(mErrorTextView);
- if (mFingerprintIcon.getVisibility() == View.VISIBLE) {
- result.add(mFingerprintIcon);
- }
return result.toArray(new View[] {});
}
@@ -303,17 +298,12 @@
mCredentialCheckResultTracker.setResult(true, new Intent(), 0, mEffectiveUserId);
}
- @Override
- public void onFingerprintIconVisibilityChanged(boolean visible) {
- mUsingFingerprint = visible;
- }
-
private void updatePasswordEntry() {
final boolean isLockedOut =
mLockPatternUtils.getLockoutAttemptDeadline(mEffectiveUserId) != 0;
mPasswordEntry.setEnabled(!isLockedOut);
mPasswordEntryInputDisabler.setInputEnabled(!isLockedOut);
- if (isLockedOut || mUsingFingerprint) {
+ if (isLockedOut) {
mImm.hideSoftInputFromWindow(mPasswordEntry.getWindowToken(), 0 /*flags*/);
} else {
mPasswordEntry.scheduleShowSoftInput();
diff --git a/src/com/android/settings/password/ConfirmLockPattern.java b/src/com/android/settings/password/ConfirmLockPattern.java
index 84db540..95a0aca 100644
--- a/src/com/android/settings/password/ConfirmLockPattern.java
+++ b/src/com/android/settings/password/ConfirmLockPattern.java
@@ -231,7 +231,6 @@
mCancelButton.setAlpha(0f);
mLockPatternView.setAlpha(0f);
mDetailsTextView.setAlpha(0f);
- mFingerprintIcon.setAlpha(0f);
}
private int getDefaultDetails() {
@@ -265,9 +264,6 @@
}
result.add(row);
}
- if (mFingerprintIcon.getVisibility() == View.VISIBLE) {
- result.add(new ArrayList<Object>(Collections.singletonList(mFingerprintIcon)));
- }
Object[][] resultArr = new Object[result.size()][cellStates[0].length];
for (int i = 0; i < result.size(); i++) {
ArrayList<Object> row = result.get(i);
@@ -377,16 +373,6 @@
}
}
- @Override
- public void onFingerprintIconVisibilityChanged(boolean visible) {
- if (mLeftSpacerLandscape != null && mRightSpacerLandscape != null) {
-
- // In landscape, adjust spacing depending on fingerprint icon visibility.
- mLeftSpacerLandscape.setVisibility(visible ? View.GONE : View.VISIBLE);
- mRightSpacerLandscape.setVisibility(visible ? View.GONE : View.VISIBLE);
- }
- }
-
/**
* The pattern listener that responds according to a user confirming
* an existing lock pattern.
diff --git a/src/com/android/settings/print/PrintJobMessagePreferenceController.java b/src/com/android/settings/print/PrintJobMessagePreferenceController.java
new file mode 100644
index 0000000..9573e5d
--- /dev/null
+++ b/src/com/android/settings/print/PrintJobMessagePreferenceController.java
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.print;
+
+import android.content.Context;
+import android.print.PrintJob;
+import android.print.PrintJobInfo;
+import android.text.TextUtils;
+
+public class PrintJobMessagePreferenceController extends PrintJobPreferenceControllerBase {
+
+ public PrintJobMessagePreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ protected void updateUi() {
+ final PrintJob printJob = getPrintJob();
+
+ if (printJob == null) {
+ mFragment.finish();
+ return;
+ }
+
+ if (printJob.isCancelled() || printJob.isCompleted()) {
+ mFragment.finish();
+ return;
+ }
+
+ final PrintJobInfo info = printJob.getInfo();
+ final CharSequence status = info.getStatus(mContext.getPackageManager());
+ mPreference.setVisible(!TextUtils.isEmpty(status));
+ mPreference.setSummary(status);
+ }
+}
diff --git a/src/com/android/settings/print/PrintJobPreferenceController.java b/src/com/android/settings/print/PrintJobPreferenceController.java
new file mode 100644
index 0000000..0eff0d6
--- /dev/null
+++ b/src/com/android/settings/print/PrintJobPreferenceController.java
@@ -0,0 +1,115 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.print;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.drawable.Drawable;
+import android.print.PrintJob;
+import android.print.PrintJobInfo;
+import android.text.format.DateUtils;
+
+import com.android.settings.R;
+
+import java.text.DateFormat;
+
+public class PrintJobPreferenceController extends PrintJobPreferenceControllerBase {
+
+ public PrintJobPreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ protected void updateUi() {
+ final PrintJob printJob = getPrintJob();
+
+ if (printJob == null) {
+ mFragment.finish();
+ return;
+ }
+
+ if (printJob.isCancelled() || printJob.isCompleted()) {
+ mFragment.finish();
+ return;
+ }
+
+ PrintJobInfo info = printJob.getInfo();
+
+ switch (info.getState()) {
+ case PrintJobInfo.STATE_CREATED: {
+ mPreference.setTitle(mContext.getString(
+ R.string.print_configuring_state_title_template, info.getLabel()));
+ }
+ break;
+ case PrintJobInfo.STATE_QUEUED:
+ case PrintJobInfo.STATE_STARTED: {
+ if (!printJob.getInfo().isCancelling()) {
+ mPreference.setTitle(mContext.getString(
+ R.string.print_printing_state_title_template, info.getLabel()));
+ } else {
+ mPreference.setTitle(mContext.getString(
+ R.string.print_cancelling_state_title_template, info.getLabel()));
+ }
+ }
+ break;
+
+ case PrintJobInfo.STATE_FAILED: {
+ mPreference.setTitle(mContext.getString(
+ R.string.print_failed_state_title_template, info.getLabel()));
+ }
+ break;
+
+ case PrintJobInfo.STATE_BLOCKED: {
+ if (!printJob.getInfo().isCancelling()) {
+ mPreference.setTitle(mContext.getString(
+ R.string.print_blocked_state_title_template, info.getLabel()));
+ } else {
+ mPreference.setTitle(mContext.getString(
+ R.string.print_cancelling_state_title_template, info.getLabel()));
+ }
+ }
+ break;
+ }
+
+ mPreference.setSummary(mContext.getString(R.string.print_job_summary,
+ info.getPrinterName(), DateUtils.formatSameDayTime(
+ info.getCreationTime(), info.getCreationTime(), DateFormat.SHORT,
+ DateFormat.SHORT)));
+
+ TypedArray a = mContext.obtainStyledAttributes(new int[]{
+ android.R.attr.colorControlNormal});
+ int tintColor = a.getColor(0, 0);
+ a.recycle();
+
+ switch (info.getState()) {
+ case PrintJobInfo.STATE_QUEUED:
+ case PrintJobInfo.STATE_STARTED: {
+ Drawable icon = mContext.getDrawable(com.android.internal.R.drawable.ic_print);
+ icon.setTint(tintColor);
+ mPreference.setIcon(icon);
+ break;
+ }
+
+ case PrintJobInfo.STATE_FAILED:
+ case PrintJobInfo.STATE_BLOCKED: {
+ Drawable icon = mContext.getDrawable(
+ com.android.internal.R.drawable.ic_print_error);
+ icon.setTint(tintColor);
+ mPreference.setIcon(icon);
+ break;
+ }
+ }
+ }
+}
diff --git a/src/com/android/settings/print/PrintJobPreferenceControllerBase.java b/src/com/android/settings/print/PrintJobPreferenceControllerBase.java
new file mode 100644
index 0000000..0726a19
--- /dev/null
+++ b/src/com/android/settings/print/PrintJobPreferenceControllerBase.java
@@ -0,0 +1,99 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.print;
+
+import android.content.Context;
+import android.print.PrintJob;
+import android.print.PrintJobId;
+import android.print.PrintManager;
+import android.util.Log;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+public abstract class PrintJobPreferenceControllerBase extends BasePreferenceController implements
+ LifecycleObserver, OnStart, OnStop, PrintManager.PrintJobStateChangeListener {
+ private static final String TAG = "PrintJobPrefCtrlBase";
+
+ private static final String EXTRA_PRINT_JOB_ID = "EXTRA_PRINT_JOB_ID";
+
+ private final PrintManager mPrintManager;
+ protected Preference mPreference;
+ protected PrintJobSettingsFragment mFragment;
+ protected PrintJobId mPrintJobId;
+
+ public PrintJobPreferenceControllerBase(Context context, String key) {
+ super(context, key);
+ mPrintManager = ((PrintManager) mContext.getSystemService(
+ Context.PRINT_SERVICE)).getGlobalPrintManagerForUser(mContext.getUserId());
+ }
+
+ @Override
+ public void onStart() {
+ mPrintManager.addPrintJobStateChangeListener(this);
+ updateUi();
+ }
+
+ @Override
+ public void onStop() {
+ mPrintManager.removePrintJobStateChangeListener(this);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ public void onPrintJobStateChanged(PrintJobId printJobId) {
+ updateUi();
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ }
+
+ public void init(PrintJobSettingsFragment fragment) {
+ mFragment = fragment;
+ processArguments();
+ }
+
+ protected PrintJob getPrintJob() {
+ return mPrintManager.getPrintJob(mPrintJobId);
+ }
+
+ protected abstract void updateUi();
+
+ private void processArguments() {
+ String printJobId = mFragment.getArguments().getString(EXTRA_PRINT_JOB_ID);
+ if (printJobId == null) {
+ printJobId = mFragment.getActivity().getIntent().getStringExtra(EXTRA_PRINT_JOB_ID);
+
+ if (printJobId == null) {
+ Log.w(TAG, EXTRA_PRINT_JOB_ID + " not set");
+ mFragment.finish();
+ return;
+ }
+ }
+ mPrintJobId = PrintJobId.unflattenFromString(printJobId);
+ }
+}
diff --git a/src/com/android/settings/print/PrintJobSettingsFragment.java b/src/com/android/settings/print/PrintJobSettingsFragment.java
index ba0172b..1d6ff5a 100644
--- a/src/com/android/settings/print/PrintJobSettingsFragment.java
+++ b/src/com/android/settings/print/PrintJobSettingsFragment.java
@@ -17,60 +17,42 @@
package com.android.settings.print;
import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.print.PrintJob;
-import android.print.PrintJobId;
-import android.print.PrintJobInfo;
-import android.print.PrintManager;
-import android.print.PrintManager.PrintJobStateChangeListener;
-import android.text.TextUtils;
-import android.text.format.DateUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.preference.Preference;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
-import com.android.settings.SettingsPreferenceFragment;
-
-import java.text.DateFormat;
+import com.android.settings.dashboard.DashboardFragment;
/**
* Fragment for management of a print job.
*/
-public class PrintJobSettingsFragment extends SettingsPreferenceFragment {
- private static final String LOG_TAG = PrintJobSettingsFragment.class.getSimpleName();
+public class PrintJobSettingsFragment extends DashboardFragment {
+ private static final String TAG = "PrintJobSettingsFragment";
private static final int MENU_ITEM_ID_CANCEL = 1;
private static final int MENU_ITEM_ID_RESTART = 2;
- private static final String EXTRA_PRINT_JOB_ID = "EXTRA_PRINT_JOB_ID";
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.print_job_settings;
+ }
- private static final String PRINT_JOB_PREFERENCE = "print_job_preference";
- private static final String PRINT_JOB_MESSAGE_PREFERENCE = "print_job_message_preference";
+ @Override
+ protected String getLogTag() {
+ return TAG;
+ }
- private final PrintJobStateChangeListener mPrintJobStateChangeListener =
- new PrintJobStateChangeListener() {
- @Override
- public void onPrintJobStateChanged(PrintJobId printJobId) {
- updateUi();
- }
- };
-
- private PrintManager mPrintManager;
-
- private Preference mPrintJobPreference;
- private Preference mMessagePreference;
-
- private PrintJobId mPrintJobId;
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ use(PrintJobPreferenceController.class).init(this);
+ use(PrintJobMessagePreferenceController.class).init(this);
+ }
@Override
public int getMetricsCategory() {
@@ -78,53 +60,16 @@
}
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View view = super.onCreateView(inflater, container, savedInstanceState);
-
- addPreferencesFromResource(R.xml.print_job_settings);
- mPrintJobPreference = findPreference(PRINT_JOB_PREFERENCE);
- mMessagePreference = findPreference(PRINT_JOB_MESSAGE_PREFERENCE);
-
- mPrintManager = ((PrintManager) getActivity().getSystemService(
- Context.PRINT_SERVICE)).getGlobalPrintManagerForUser(
- getActivity().getUserId());
-
- getActivity().getActionBar().setTitle(R.string.print_print_job);
-
- processArguments();
-
- setHasOptionsMenu(true);
-
- return view;
- }
-
- @Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getListView().setEnabled(false);
}
@Override
- public void onStart() {
- super.onStart();
- mPrintManager.addPrintJobStateChangeListener(
- mPrintJobStateChangeListener);
- updateUi();
- }
-
- @Override
- public void onStop() {
- super.onStop();
- mPrintManager.removePrintJobStateChangeListener(
- mPrintJobStateChangeListener);
- }
-
- @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
- PrintJob printJob = getPrintJob();
+ final PrintJob printJob = use(PrintJobPreferenceController.class).getPrintJob();
if (printJob == null) {
return;
}
@@ -144,7 +89,7 @@
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- PrintJob printJob = getPrintJob();
+ final PrintJob printJob = use(PrintJobPreferenceController.class).getPrintJob();
if (printJob != null) {
switch (item.getItemId()) {
@@ -164,113 +109,4 @@
return super.onOptionsItemSelected(item);
}
-
- private void processArguments() {
- String printJobId = getArguments().getString(EXTRA_PRINT_JOB_ID);
- if (printJobId == null) {
- printJobId = getIntent().getStringExtra(EXTRA_PRINT_JOB_ID);
-
- if (printJobId == null) {
- Log.w(LOG_TAG, EXTRA_PRINT_JOB_ID + " not set");
- finish();
- return;
- }
- }
-
-
- mPrintJobId = PrintJobId.unflattenFromString(printJobId);
- }
-
- private PrintJob getPrintJob() {
- return mPrintManager.getPrintJob(mPrintJobId);
- }
-
- private void updateUi() {
- PrintJob printJob = getPrintJob();
-
- if (printJob == null) {
- finish();
- return;
- }
-
- if (printJob.isCancelled() || printJob.isCompleted()) {
- finish();
- return;
- }
-
- PrintJobInfo info = printJob.getInfo();
-
- switch (info.getState()) {
- case PrintJobInfo.STATE_CREATED: {
- mPrintJobPreference.setTitle(getString(
- R.string.print_configuring_state_title_template, info.getLabel()));
- } break;
- case PrintJobInfo.STATE_QUEUED:
- case PrintJobInfo.STATE_STARTED: {
- if (!printJob.getInfo().isCancelling()) {
- mPrintJobPreference.setTitle(getString(
- R.string.print_printing_state_title_template, info.getLabel()));
- } else {
- mPrintJobPreference.setTitle(getString(
- R.string.print_cancelling_state_title_template, info.getLabel()));
- }
- } break;
-
- case PrintJobInfo.STATE_FAILED: {
- mPrintJobPreference.setTitle(getString(
- R.string.print_failed_state_title_template, info.getLabel()));
- } break;
-
- case PrintJobInfo.STATE_BLOCKED: {
- if (!printJob.getInfo().isCancelling()) {
- mPrintJobPreference.setTitle(getString(
- R.string.print_blocked_state_title_template, info.getLabel()));
- } else {
- mPrintJobPreference.setTitle(getString(
- R.string.print_cancelling_state_title_template, info.getLabel()));
- }
- } break;
- }
-
- mPrintJobPreference.setSummary(getString(R.string.print_job_summary,
- info.getPrinterName(), DateUtils.formatSameDayTime(
- info.getCreationTime(), info.getCreationTime(), DateFormat.SHORT,
- DateFormat.SHORT)));
-
- TypedArray a = getActivity().obtainStyledAttributes(new int[]{
- android.R.attr.colorControlNormal});
- int tintColor = a.getColor(0, 0);
- a.recycle();
-
- switch (info.getState()) {
- case PrintJobInfo.STATE_QUEUED:
- case PrintJobInfo.STATE_STARTED: {
- Drawable icon = getActivity().getDrawable(com.android.internal.R.drawable.ic_print);
- icon.setTint(tintColor);
- mPrintJobPreference.setIcon(icon);
- break;
- }
-
- case PrintJobInfo.STATE_FAILED:
- case PrintJobInfo.STATE_BLOCKED: {
- Drawable icon = getActivity().getDrawable(
- com.android.internal.R.drawable.ic_print_error);
- icon.setTint(tintColor);
- mPrintJobPreference.setIcon(icon);
- break;
- }
- }
-
- CharSequence status = info.getStatus(getPackageManager());
- if (!TextUtils.isEmpty(status)) {
- if (getPreferenceScreen().findPreference(PRINT_JOB_MESSAGE_PREFERENCE) == null) {
- getPreferenceScreen().addPreference(mMessagePreference);
- }
- mMessagePreference.setSummary(status);
- } else {
- getPreferenceScreen().removePreference(mMessagePreference);
- }
-
- getActivity().invalidateOptionsMenu();
- }
}
diff --git a/src/com/android/settings/search/SearchFeatureProvider.java b/src/com/android/settings/search/SearchFeatureProvider.java
index 27e8349..9c1f07c 100644
--- a/src/com/android/settings/search/SearchFeatureProvider.java
+++ b/src/com/android/settings/search/SearchFeatureProvider.java
@@ -23,10 +23,13 @@
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
+import android.provider.Settings;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.Toolbar;
import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.Utils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.search.SearchIndexableResources;
@@ -35,7 +38,7 @@
*/
public interface SearchFeatureProvider {
- Intent SEARCH_UI_INTENT = new Intent("com.android.settings.action.SETTINGS_SEARCH");
+ Intent SEARCH_UI_INTENT = new Intent(Settings.ACTION_APP_SEARCH_SETTINGS);
int REQUEST_CODE = 0;
/**
@@ -63,6 +66,13 @@
if (activity == null || toolbar == null) {
return;
}
+ if (!Utils.isPackageEnabled(activity, getSettingsIntelligencePkgName())) {
+ final ViewGroup parent = (ViewGroup)toolbar.getParent();
+ if (parent != null) {
+ parent.setVisibility(View.GONE);
+ }
+ return;
+ }
// Please forgive me for what I am about to do.
//
// Need to make the navigation icon non-clickable so that the entire card is clickable
diff --git a/src/com/android/settings/search/actionbar/SearchMenuController.java b/src/com/android/settings/search/actionbar/SearchMenuController.java
index 81e9e60..0caa308 100644
--- a/src/com/android/settings/search/actionbar/SearchMenuController.java
+++ b/src/com/android/settings/search/actionbar/SearchMenuController.java
@@ -56,9 +56,15 @@
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+ final Context context = mHost.getContext();
+ final String SettingsIntelligencePkgName = FeatureFactory.getFactory(context)
+ .getSearchFeatureProvider().getSettingsIntelligencePkgName();
if (!Utils.isDeviceProvisioned(mHost.getContext())) {
return;
}
+ if (!Utils.isPackageEnabled(mHost.getContext(), SettingsIntelligencePkgName)) {
+ return;
+ }
if (menu == null) {
return;
}
@@ -72,10 +78,8 @@
searchItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
searchItem.setOnMenuItemClickListener(target -> {
- final Context context = mHost.getContext();
final Intent intent = SearchFeatureProvider.SEARCH_UI_INTENT;
- intent.setPackage(FeatureFactory.getFactory(mHost.getContext())
- .getSearchFeatureProvider().getSettingsIntelligencePkgName());
+ intent.setPackage(SettingsIntelligencePkgName);
FeatureFactory.getFactory(context).getMetricsFeatureProvider()
.action(context, MetricsProto.MetricsEvent.ACTION_SEARCH_RESULTS);
mHost.startActivityForResult(intent, 0 /* requestCode */);
diff --git a/src/com/android/settings/security/SecuritySettings.java b/src/com/android/settings/security/SecuritySettings.java
index 72dd91b..e00d387 100644
--- a/src/com/android/settings/security/SecuritySettings.java
+++ b/src/com/android/settings/security/SecuritySettings.java
@@ -18,23 +18,17 @@
import static com.android.settings.security.EncryptionStatusPreferenceController
.PREF_KEY_ENCRYPTION_SECURITY_PAGE;
-import android.app.Activity;
import android.content.Context;
import android.content.Intent;
-import android.hardware.face.FaceManager;
-import android.hardware.fingerprint.FingerprintManager;
import android.provider.SearchIndexableResource;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
-import com.android.settings.Utils;
import com.android.settings.biometrics.face.FaceStatusPreferenceController;
import com.android.settings.biometrics.fingerprint.FingerprintProfileStatusPreferenceController;
import com.android.settings.biometrics.fingerprint.FingerprintStatusPreferenceController;
import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.enterprise.EnterprisePrivacyPreferenceController;
-import com.android.settings.location.LocationPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.security.trustagent.ManageTrustAgentsPreferenceController;
import com.android.settings.security.trustagent.TrustAgentListPreferenceController;
@@ -110,7 +104,6 @@
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle, SecuritySettings host) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
- controllers.add(new LocationPreferenceController(context, lifecycle));
controllers.add(new EnterprisePrivacyPreferenceController(context));
controllers.add(new ManageTrustAgentsPreferenceController(context));
controllers.add(new ScreenPinningPreferenceController(context));
@@ -166,44 +159,4 @@
null /* host*/);
}
};
-
- static class SummaryProvider implements SummaryLoader.SummaryProvider {
-
- private final Context mContext;
- private final SummaryLoader mSummaryLoader;
-
- public SummaryProvider(Context context, SummaryLoader summaryLoader) {
- mContext = context;
- mSummaryLoader = summaryLoader;
- }
-
- @Override
- public void setListening(boolean listening) {
- if (listening) {
- final FingerprintManager fpm =
- Utils.getFingerprintManagerOrNull(mContext);
- final FaceManager faceManager =
- Utils.getFaceManagerOrNull(mContext);
- if (faceManager != null && faceManager.isHardwareDetected()) {
- mSummaryLoader.setSummary(this,
- mContext.getString(R.string.security_dashboard_summary_face));
- } else if (fpm != null && fpm.isHardwareDetected()) {
- mSummaryLoader.setSummary(this,
- mContext.getString(R.string.security_dashboard_summary));
- } else {
- mSummaryLoader.setSummary(this, mContext.getString(
- R.string.security_dashboard_summary_no_fingerprint));
- }
- }
- }
- }
-
- public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY =
- new SummaryLoader.SummaryProviderFactory() {
- @Override
- public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity,
- SummaryLoader summaryLoader) {
- return new SummaryProvider(activity, summaryLoader);
- }
- };
}
diff --git a/src/com/android/settings/homepage/ContextualCardController.java b/src/com/android/settings/slices/CopyableSlice.java
similarity index 64%
copy from src/com/android/settings/homepage/ContextualCardController.java
copy to src/com/android/settings/slices/CopyableSlice.java
index e47f70c..31fc151 100644
--- a/src/com/android/settings/homepage/ContextualCardController.java
+++ b/src/com/android/settings/slices/CopyableSlice.java
@@ -14,19 +14,15 @@
* limitations under the License.
*/
-package com.android.settings.homepage;
+package com.android.settings.slices;
/**
- * Data controller for {@link ContextualCard}.
+ * Provide the copy ability for preference controller to copy the data to the clipboard.
*/
-public interface ContextualCardController {
-
- @ContextualCard.CardType
- int getCardType();
-
- void onPrimaryClick(ContextualCard card);
-
- void onActionClick(ContextualCard card);
-
- void setCardUpdateListener(ContextualCardUpdateListener listener);
+public interface CopyableSlice {
+ /**
+ * Copy the key slice information to the clipboard.
+ * It is highly recommended to show the toast to notify users when implemented this function.
+ */
+ void copy();
}
diff --git a/src/com/android/settings/slices/CustomSliceManager.java b/src/com/android/settings/slices/CustomSliceManager.java
index 8fa2fb6..556c698 100644
--- a/src/com/android/settings/slices/CustomSliceManager.java
+++ b/src/com/android/settings/slices/CustomSliceManager.java
@@ -20,12 +20,15 @@
import android.net.Uri;
import android.util.ArrayMap;
-import com.android.settings.homepage.deviceinfo.DataUsageSlice;
-import com.android.settings.homepage.deviceinfo.DeviceInfoSlice;
-import com.android.settings.homepage.deviceinfo.StorageSlice;
+import com.android.settings.homepage.contextualcards.deviceinfo.BatterySlice;
+import com.android.settings.homepage.contextualcards.deviceinfo.DataUsageSlice;
+import com.android.settings.homepage.contextualcards.deviceinfo.DeviceInfoSlice;
+import com.android.settings.homepage.contextualcards.deviceinfo.StorageSlice;
+import com.android.settings.homepage.contextualcards.slices.ConnectedDeviceSlice;
import com.android.settings.wifi.WifiSlice;
import java.util.Map;
+import java.util.WeakHashMap;
/**
* Manages custom {@link androidx.slice.Slice Slices}, which are all Slices not backed by
@@ -39,10 +42,12 @@
protected final Map<Uri, Class<? extends CustomSliceable>> mUriMap;
private final Context mContext;
+ private final Map<Uri, CustomSliceable> mSliceableCache;
public CustomSliceManager(Context context) {
mContext = context.getApplicationContext();
mUriMap = new ArrayMap<>();
+ mSliceableCache = new WeakHashMap<>();
addSlices();
}
@@ -53,13 +58,18 @@
* the only thing that should be needed to create the object.
*/
public CustomSliceable getSliceableFromUri(Uri uri) {
- final Class clazz = mUriMap.get(uri);
+ if (mSliceableCache.containsKey(uri)) {
+ return mSliceableCache.get(uri);
+ }
+ final Class clazz = mUriMap.get(uri);
if (clazz == null) {
throw new IllegalArgumentException("No Slice found for uri: " + uri);
}
- return CustomSliceable.createInstance(mContext, clazz);
+ final CustomSliceable sliceable = CustomSliceable.createInstance(mContext, clazz);
+ mSliceableCache.put(uri, sliceable);
+ return sliceable;
}
/**
@@ -93,5 +103,7 @@
mUriMap.put(DataUsageSlice.DATA_USAGE_CARD_URI, DataUsageSlice.class);
mUriMap.put(DeviceInfoSlice.DEVICE_INFO_CARD_URI, DeviceInfoSlice.class);
mUriMap.put(StorageSlice.STORAGE_CARD_URI, StorageSlice.class);
+ mUriMap.put(BatterySlice.BATTERY_CARD_URI, BatterySlice.class);
+ mUriMap.put(ConnectedDeviceSlice.CONNECTED_DEVICE_URI, ConnectedDeviceSlice.class);
}
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/slices/CustomSliceable.java b/src/com/android/settings/slices/CustomSliceable.java
index 48b5d16..b538b89 100644
--- a/src/com/android/settings/slices/CustomSliceable.java
+++ b/src/com/android/settings/slices/CustomSliceable.java
@@ -90,6 +90,17 @@
}
/**
+ * Settings Slices which can represent component lists that are updatable by the
+ * {@link SliceBackgroundWorker} class returned here.
+ *
+ * @return a {@link SliceBackgroundWorker} class for fetching the list of results in the
+ * background.
+ */
+ default Class<? extends SliceBackgroundWorker> getBackgroundWorkerClass() {
+ return null;
+ }
+
+ /**
* Standardize the intents returned to indicate actions by the Slice.
* <p>
* The {@link PendingIntent} is linked to {@link SliceBroadcastReceiver} where the Intent
diff --git a/src/com/android/settings/slices/SettingsSliceProvider.java b/src/com/android/settings/slices/SettingsSliceProvider.java
index 8b975b4..fa669bb 100644
--- a/src/com/android/settings/slices/SettingsSliceProvider.java
+++ b/src/com/android/settings/slices/SettingsSliceProvider.java
@@ -28,6 +28,7 @@
import android.provider.Settings;
import android.provider.SettingsSlicesContract;
import android.text.TextUtils;
+import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.KeyValueListParser;
import android.util.Log;
@@ -41,6 +42,7 @@
import com.android.settings.bluetooth.BluetoothSliceBuilder;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.flashlight.FlashlightSliceBuilder;
+import com.android.settings.homepage.contextualcards.deviceinfo.EmergencyInfoSlice;
import com.android.settings.location.LocationSliceBuilder;
import com.android.settings.network.telephony.Enhanced4gLteSliceHelper;
import com.android.settings.notification.ZenModeSliceBuilder;
@@ -105,6 +107,12 @@
"com.android.settings.slice.action.SLIDER_CHANGED";
/**
+ * Action passed for copy data for the Copyable Slices.
+ */
+ public static final String ACTION_COPY =
+ "com.android.settings.slice.action.COPY";
+
+ /**
* Intent Extra passed for the key identifying the Setting Slice.
*/
public static final String EXTRA_SLICE_KEY = "com.android.settings.slice.extra.key";
@@ -131,6 +139,8 @@
final Set<Uri> mRegisteredUris = new ArraySet<>();
+ final Map<Uri, SliceBackgroundWorker> mPinnedWorkers = new ArrayMap<>();
+
public SettingsSliceProvider() {
super(READ_SEARCH_INDEXABLES);
}
@@ -165,6 +175,9 @@
if (filter != null) {
registerIntentToUri(filter, sliceUri);
}
+ ThreadUtils.postOnMainThread(() -> {
+ startBackgroundWorker(sliceable);
+ });
return;
}
@@ -178,6 +191,8 @@
registerIntentToUri(FlashlightSliceBuilder.INTENT_FILTER, sliceUri);
mRegisteredUris.add(sliceUri);
return;
+ } else if (EmergencyInfoSlice.EMERGENCY_INFO_CARD_URI.equals(sliceUri)) {
+ return;
}
// Start warming the slice, we expect someone will want it soon.
@@ -191,6 +206,9 @@
SliceBroadcastRelay.unregisterReceivers(getContext(), sliceUri);
mRegisteredUris.remove(sliceUri);
}
+ ThreadUtils.postOnMainThread(() -> {
+ stopBackgroundWorker(sliceUri);
+ });
mSliceDataCache.remove(sliceUri);
}
@@ -241,6 +259,8 @@
.createWifiCallingPreferenceSlice(sliceUri);
} else if (FlashlightSliceBuilder.FLASHLIGHT_URI.equals(sliceUri)) {
return FlashlightSliceBuilder.getSlice(getContext());
+ } else if (EmergencyInfoSlice.EMERGENCY_INFO_CARD_URI.equals(sliceUri)) {
+ return EmergencyInfoSlice.getSlice(getContext());
}
SliceData cachedSliceData = mSliceWeakDataCache.get(sliceUri);
@@ -348,6 +368,40 @@
}
}
+ private void startBackgroundWorker(CustomSliceable sliceable) {
+ final Class workerClass = sliceable.getBackgroundWorkerClass();
+ if (workerClass == null) {
+ return;
+ }
+
+ final Uri uri = sliceable.getUri();
+ if (mPinnedWorkers.containsKey(uri)) {
+ return;
+ }
+
+ Log.d(TAG, "Starting background worker for: " + uri);
+ final SliceBackgroundWorker worker = SliceBackgroundWorker.getInstance(
+ getContext(), sliceable);
+ mPinnedWorkers.put(uri, worker);
+ worker.onSlicePinned();
+ }
+
+ private void stopBackgroundWorker(Uri uri) {
+ final SliceBackgroundWorker worker = mPinnedWorkers.get(uri);
+ if (worker != null) {
+ Log.d(TAG, "Stopping background worker for: " + uri);
+ worker.onSliceUnpinned();
+ mPinnedWorkers.remove(uri);
+ }
+ }
+
+ @Override
+ public void shutdown() {
+ ThreadUtils.postOnMainThread(() -> {
+ SliceBackgroundWorker.shutdown();
+ });
+ }
+
private List<Uri> buildUrisFromKeys(List<String> keys, String authority) {
final List<Uri> descendants = new ArrayList<>();
@@ -474,4 +528,4 @@
}
return new String[0];
}
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/slices/SliceBackgroundWorker.java b/src/com/android/settings/slices/SliceBackgroundWorker.java
new file mode 100644
index 0000000..a663ece
--- /dev/null
+++ b/src/com/android/settings/slices/SliceBackgroundWorker.java
@@ -0,0 +1,140 @@
+/*
+ * 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
+ */
+
+package com.android.settings.slices;
+
+import android.annotation.MainThread;
+import android.content.Context;
+import android.net.Uri;
+import android.util.ArrayMap;
+import android.util.Log;
+
+import java.io.Closeable;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The Slice background worker is used to make Settings Slices be able to work with data that is
+ * changing continuously, e.g. available Wi-Fi networks.
+ *
+ * The background worker will be started at {@link SettingsSliceProvider#onSlicePinned(Uri)}, be
+ * stopped at {@link SettingsSliceProvider#onSliceUnpinned(Uri)}, and be closed at {@link
+ * SettingsSliceProvider#shutdown()}.
+ *
+ * {@link SliceBackgroundWorker} caches the results, uses the cache to compare if there is any data
+ * changed, and then notifies the Slice {@link Uri} to update.
+ *
+ * It also stores all instances of all workers to ensure each worker is a Singleton.
+ */
+public abstract class SliceBackgroundWorker<E> implements Closeable {
+
+ private static final String TAG = "SliceBackgroundWorker";
+
+ private static final Map<Uri, SliceBackgroundWorker> LIVE_WORKERS = new ArrayMap<>();
+
+ private final Context mContext;
+ private final Uri mUri;
+
+ private List<E> mCachedResults;
+
+ protected SliceBackgroundWorker(Context context, Uri uri) {
+ mContext = context;
+ mUri = uri;
+ }
+
+ /**
+ * Returns the singleton instance of the {@link SliceBackgroundWorker} for specified {@link
+ * CustomSliceable}
+ */
+ public static SliceBackgroundWorker getInstance(Context context, CustomSliceable sliceable) {
+ final Uri uri = sliceable.getUri();
+ final Class<? extends SliceBackgroundWorker> workerClass =
+ sliceable.getBackgroundWorkerClass();
+ SliceBackgroundWorker worker = LIVE_WORKERS.get(uri);
+ if (worker == null) {
+ worker = createInstance(context, uri, workerClass);
+ LIVE_WORKERS.put(uri, worker);
+ }
+ return worker;
+ }
+
+ private static SliceBackgroundWorker createInstance(Context context, Uri uri,
+ Class<? extends SliceBackgroundWorker> clazz) {
+ Log.d(TAG, "create instance: " + clazz);
+ try {
+ return clazz.getConstructor(Context.class, Uri.class).newInstance(context, uri);
+ } catch (NoSuchMethodException | IllegalAccessException | InstantiationException |
+ InvocationTargetException e) {
+ throw new IllegalStateException(
+ "Invalid slice background worker: " + clazz, e);
+ }
+ }
+
+ static void shutdown() {
+ for (SliceBackgroundWorker worker : LIVE_WORKERS.values()) {
+ try {
+ worker.close();
+ } catch (IOException e) {
+ Log.w(TAG, "Shutting down worker failed", e);
+ }
+ }
+ LIVE_WORKERS.clear();
+ }
+
+ /**
+ * Called when the Slice is pinned. This is the place to register callbacks or initialize scan
+ * tasks.
+ */
+ @MainThread
+ protected abstract void onSlicePinned();
+
+ /**
+ * Called when the Slice is unpinned. This is the place to unregister callbacks or perform any
+ * final cleanup.
+ */
+ @MainThread
+ protected abstract void onSliceUnpinned();
+
+ /**
+ * @return a {@link List} of cached results
+ */
+ public final List<E> getResults() {
+ return mCachedResults == null ? null : new ArrayList<>(mCachedResults);
+ }
+
+ /**
+ * Update the results when data changes
+ */
+ protected final void updateResults(List<E> results) {
+ boolean needNotify = false;
+
+ if (results == null) {
+ if (mCachedResults != null) {
+ needNotify = true;
+ }
+ } else {
+ needNotify = !results.equals(mCachedResults);
+ }
+
+ if (needNotify) {
+ mCachedResults = results;
+ mContext.getContentResolver().notifyChange(mUri, null);
+ }
+ }
+}
diff --git a/src/com/android/settings/slices/SliceBroadcastReceiver.java b/src/com/android/settings/slices/SliceBroadcastReceiver.java
index e9e9d2c..4b86f33 100644
--- a/src/com/android/settings/slices/SliceBroadcastReceiver.java
+++ b/src/com/android/settings/slices/SliceBroadcastReceiver.java
@@ -24,6 +24,7 @@
import static com.android.settings.notification.ZenModeSliceBuilder.ACTION_ZEN_MODE_SLICE_CHANGED;
import static com.android.settings.slices.SettingsSliceProvider.ACTION_SLIDER_CHANGED;
import static com.android.settings.slices.SettingsSliceProvider.ACTION_TOGGLE_CHANGED;
+import static com.android.settings.slices.SettingsSliceProvider.ACTION_COPY;
import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_KEY;
import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_PLATFORM_DEFINED;
import static com.android.settings.wifi.calling.WifiCallingSliceHelper.ACTION_WIFI_CALLING_CHANGED;
@@ -115,6 +116,9 @@
case ACTION_FLASHLIGHT_SLICE_CHANGED:
FlashlightSliceBuilder.handleUriChange(context, intent);
break;
+ case ACTION_COPY:
+ handleCopyAction(context, key, isPlatformSlice);
+ break;
}
}
@@ -184,6 +188,29 @@
updateUri(context, key, isPlatformSlice);
}
+ private void handleCopyAction(Context context, String key, boolean isPlatformSlice) {
+ if (TextUtils.isEmpty(key)) {
+ throw new IllegalArgumentException("No key passed to Intent for controller");
+ }
+
+ final BasePreferenceController controller = getPreferenceController(context, key);
+
+ if (!(controller instanceof CopyableSlice)) {
+ throw new IllegalArgumentException(
+ "Copyable action passed for a non-copyable key:" + key);
+ }
+
+ if (!controller.isAvailable()) {
+ Log.w(TAG, "Can't update " + key + " since the setting is unavailable");
+ if (!controller.hasAsyncUpdate()) {
+ updateUri(context, key, isPlatformSlice);
+ }
+ return;
+ }
+
+ ((CopyableSlice) controller).copy();
+ }
+
/**
* Log Slice value update events into MetricsFeatureProvider. The logging schema generally
* follows the pattern in SharedPreferenceLogger.
diff --git a/src/com/android/settings/slices/SliceBuilderUtils.java b/src/com/android/settings/slices/SliceBuilderUtils.java
index a947fb2..f6cc57f 100644
--- a/src/com/android/settings/slices/SliceBuilderUtils.java
+++ b/src/com/android/settings/slices/SliceBuilderUtils.java
@@ -93,6 +93,10 @@
return buildUnavailableSlice(context, sliceData);
}
+ if (controller instanceof CopyableSlice) {
+ return buildCopyableSlice(context, sliceData, controller);
+ }
+
switch (sliceData.getSliceType()) {
case SliceData.SliceType.INTENT:
return buildIntentSlice(context, sliceData, controller);
@@ -324,6 +328,28 @@
.build();
}
+ private static Slice buildCopyableSlice(Context context, SliceData sliceData,
+ BasePreferenceController controller) {
+ final SliceAction copyableAction = getCopyableAction(context, sliceData);
+ final PendingIntent contentIntent = getContentPendingIntent(context, sliceData);
+ final IconCompat icon = getSafeIcon(context, sliceData);
+ final SliceAction primaryAction = new SliceAction(contentIntent, icon,
+ sliceData.getTitle());
+ final CharSequence subtitleText = getSubtitleText(context, controller, sliceData);
+ @ColorInt final int color = Utils.getColorAccentDefaultColor(context);
+ final Set<String> keywords = buildSliceKeywords(sliceData);
+
+ return new ListBuilder(context, sliceData.getUri(), ListBuilder.INFINITY)
+ .setAccentColor(color)
+ .addRow(new RowBuilder()
+ .setTitle(sliceData.getTitle())
+ .setSubtitle(subtitleText)
+ .setPrimaryAction(primaryAction)
+ .addEndItem(copyableAction))
+ .setKeywords(keywords)
+ .build();
+ }
+
private static BasePreferenceController getPreferenceController(Context context,
String controllerClassName, String controllerKey) {
try {
@@ -346,6 +372,14 @@
return getActionIntent(context, SettingsSliceProvider.ACTION_SLIDER_CHANGED, sliceData);
}
+ private static SliceAction getCopyableAction(Context context, SliceData sliceData) {
+ final PendingIntent intent = getActionIntent(context,
+ SettingsSliceProvider.ACTION_COPY, sliceData);
+ final IconCompat icon = IconCompat.createWithResource(context,
+ R.drawable.ic_content_copy_grey600_24dp);
+ return new SliceAction(intent, icon, sliceData.getTitle());
+ }
+
private static boolean isValidSummary(Context context, CharSequence summary) {
if (summary == null || TextUtils.isEmpty(summary.toString().trim())) {
return false;
@@ -385,7 +419,7 @@
final Set<String> keywords = buildSliceKeywords(data);
@ColorInt final int color = Utils.getColorAccentDefaultColor(context);
final CharSequence summary = context.getText(R.string.disabled_dependent_setting_summary);
- final IconCompat icon = IconCompat.createWithResource(context, data.getIconResource());
+ final IconCompat icon = getSafeIcon(context, data);
final SliceAction primaryAction = new SliceAction(getContentPendingIntent(context, data),
icon, title);
diff --git a/src/com/android/settings/slices/SliceDataConverter.java b/src/com/android/settings/slices/SliceDataConverter.java
index 29e3d6b..cb2980d 100644
--- a/src/com/android/settings/slices/SliceDataConverter.java
+++ b/src/com/android/settings/slices/SliceDataConverter.java
@@ -226,7 +226,7 @@
SliceBuilderUtils.getPreferenceController(mContext, xmlSlice);
// Only add pre-approved Slices available on the device.
- if (controller.isAvailable() && controller.isSliceable()) {
+ if (controller.isSliceable() && controller.isAvailable()) {
xmlSliceData.add(xmlSlice);
}
}
@@ -277,7 +277,7 @@
final String title = resolveInfo.loadLabel(packageManager).toString();
int iconResource = resolveInfo.getIconResource();
if (iconResource == 0) {
- iconResource = R.mipmap.ic_accessibility_generic;
+ iconResource = R.drawable.ic_accessibility_generic;
}
sliceDataBuilder.setKey(flattenedName)
diff --git a/src/com/android/settings/slices/SlicesIndexer.java b/src/com/android/settings/slices/SlicesIndexer.java
index 0ccd223..0c39429 100644
--- a/src/com/android/settings/slices/SlicesIndexer.java
+++ b/src/com/android/settings/slices/SlicesIndexer.java
@@ -66,12 +66,11 @@
return;
}
- SQLiteDatabase database = mHelper.getWritableDatabase();
+ final SQLiteDatabase database = mHelper.getWritableDatabase();
+ long startTime = System.currentTimeMillis();
+ database.beginTransaction();
try {
- long startTime = System.currentTimeMillis();
- database.beginTransaction();
-
mHelper.reconstruct(mHelper.getWritableDatabase());
List<SliceData> indexData = getSliceData();
insertSliceData(database, indexData);
@@ -85,6 +84,7 @@
} finally {
database.endTransaction();
}
+ database.close();
}
@VisibleForTesting
diff --git a/src/com/android/settings/tts/TextToSpeechSettings.java b/src/com/android/settings/tts/TextToSpeechSettings.java
index 0f10d28..cce871b 100644
--- a/src/com/android/settings/tts/TextToSpeechSettings.java
+++ b/src/com/android/settings/tts/TextToSpeechSettings.java
@@ -147,12 +147,7 @@
* screen for the first time (as opposed to when a user changes his choice
* of engine).
*/
- private final TextToSpeech.OnInitListener mInitListener = new TextToSpeech.OnInitListener() {
- @Override
- public void onInit(int status) {
- onInitEngine(status);
- }
- };
+ private final TextToSpeech.OnInitListener mInitListener = this::onInitEngine;
@Override
public int getMetricsCategory() {
@@ -215,6 +210,11 @@
@Override
public void onResume() {
super.onResume();
+ // We tend to change the summary contents of our widgets, which at higher text sizes causes
+ // them to resize, which results in the recyclerview smoothly animating them at inopportune
+ // times. Disable the animation so widgets snap to their positions rather than sliding
+ // around while the user is interacting with it.
+ getListView().getItemAnimator().setMoveDuration(0);
if (mTts == null || mCurrentDefaultLocale == null) {
return;
@@ -251,15 +251,20 @@
mTts.setOnUtteranceProgressListener(new UtteranceProgressListener() {
@Override
public void onStart(String utteranceId) {
+ updateWidgetState(false);
}
@Override
public void onDone(String utteranceId) {
+ updateWidgetState(true);
}
@Override
public void onError(String utteranceId) {
Log.e(TAG, "Error while trying to synthesize sample text");
+ // Re-enable just in case, although there isn't much hope that following synthesis
+ // requests are going to succeed.
+ updateWidgetState(true);
}
});
}
@@ -323,7 +328,6 @@
if (mCurrentEngine != null) {
EngineInfo info = mEnginesHelper.getEngineInfo(mCurrentEngine);
-
Preference mEnginePreference = findPreference(KEY_TTS_ENGINE_PREFERENCE);
((GearPreference) mEnginePreference).setOnGearClickListener(this);
mEnginePreference.setSummary(info.label);
@@ -365,14 +369,7 @@
if (status == TextToSpeech.SUCCESS) {
if (DBG) Log.d(TAG, "TTS engine for settings screen initialized.");
checkDefaultLocale();
- getActivity()
- .runOnUiThread(
- new Runnable() {
- @Override
- public void run() {
- mLocalePreference.setEnabled(true);
- }
- });
+ getActivity().runOnUiThread(() -> mLocalePreference.setEnabled(true));
} else {
if (DBG) {
Log.d(TAG,
@@ -516,14 +513,7 @@
}
// Sort it
- Collections.sort(
- entryPairs,
- new Comparator<Pair<String, Locale>>() {
- @Override
- public int compare(Pair<String, Locale> lhs, Pair<String, Locale> rhs) {
- return lhs.first.compareToIgnoreCase(rhs.first);
- }
- });
+ Collections.sort(entryPairs, (lhs, rhs) -> lhs.first.compareToIgnoreCase(rhs.first));
// Get two arrays out of one of pairs
mSelectedLocaleIndex = 0; // Will point to the R.string.tts_lang_use_system value
@@ -711,9 +701,11 @@
}
private void updateWidgetState(boolean enable) {
- mActionButtons.setButton1Enabled(enable);
- mDefaultRatePref.setEnabled(enable);
- mDefaultPitchPref.setEnabled(enable);
+ getActivity().runOnUiThread(() -> {
+ mActionButtons.setButton1Enabled(enable);
+ mDefaultRatePref.setEnabled(enable);
+ mDefaultPitchPref.setEnabled(enable);
+ });
}
private void displayNetworkAlert() {
diff --git a/src/com/android/settings/users/AppRestrictionsFragment.java b/src/com/android/settings/users/AppRestrictionsFragment.java
index a4e0cff..5f899eb 100644
--- a/src/com/android/settings/users/AppRestrictionsFragment.java
+++ b/src/com/android/settings/users/AppRestrictionsFragment.java
@@ -450,7 +450,7 @@
private void addLocationAppRestrictionsPreference(AppRestrictionsHelper.SelectableAppInfo app,
AppRestrictionsPreference p) {
String packageName = app.packageName;
- p.setIcon(R.drawable.ic_settings_location);
+ p.setIcon(R.drawable.ic_preference_location);
p.setKey(getKeyForPackage(packageName));
ArrayList<RestrictionEntry> restrictions = RestrictionUtils.getRestrictions(
getActivity(), mUser);
diff --git a/src/com/android/settings/webview/WebViewAppPicker.java b/src/com/android/settings/webview/WebViewAppPicker.java
index b96217e..72d7918 100644
--- a/src/com/android/settings/webview/WebViewAppPicker.java
+++ b/src/com/android/settings/webview/WebViewAppPicker.java
@@ -118,9 +118,9 @@
}
private static class WebViewAppInfo extends DefaultAppInfo {
- public WebViewAppInfo(Context context, PackageManager pm,
+ public WebViewAppInfo(Context context, PackageManager pm, int userId,
PackageItemInfo packageItemInfo, String summary, boolean enabled) {
- super(context, pm, packageItemInfo, summary, enabled);
+ super(context, pm, userId, packageItemInfo, summary, enabled);
}
@Override
@@ -138,7 +138,7 @@
@VisibleForTesting
DefaultAppInfo createDefaultAppInfo(Context context, PackageManager pm,
PackageItemInfo packageItemInfo, String disabledReason) {
- return new WebViewAppInfo(context, pm, packageItemInfo, disabledReason,
+ return new WebViewAppInfo(context, pm, mUserId, packageItemInfo, disabledReason,
TextUtils.isEmpty(disabledReason) /* enabled */);
}
diff --git a/src/com/android/settings/wifi/NetworkRequestDialogFragment.java b/src/com/android/settings/wifi/NetworkRequestDialogFragment.java
new file mode 100644
index 0000000..9aac509
--- /dev/null
+++ b/src/com/android/settings/wifi/NetworkRequestDialogFragment.java
@@ -0,0 +1,117 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.wifi;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import androidx.appcompat.app.AlertDialog;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.wifi.AccessPoint;
+import java.util.ArrayList;
+import java.util.List;
+
+public class NetworkRequestDialogFragment extends InstrumentedDialogFragment implements
+ DialogInterface.OnClickListener {
+
+ private List<AccessPoint> mAccessPointList;
+
+ public static NetworkRequestDialogFragment newInstance(int uid, String packageName) {
+ Bundle args = new Bundle();
+ args.putInt("uid", uid);
+ args.putString("packageName", packageName);
+ NetworkRequestDialogFragment dialogFragment = new NetworkRequestDialogFragment();
+ dialogFragment.setArguments(args);
+ return dialogFragment;
+ }
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ Context context = getContext();
+
+ // Prepares title.
+ LayoutInflater inflater = LayoutInflater.from(context);
+ View customTitle = inflater.inflate(R.layout.network_request_dialog_title, null);
+
+ TextView title = customTitle.findViewById(R.id.network_request_title_text);
+ title.setText(R.string.network_connection_request_dialog_title);
+ ProgressBar progressBar = customTitle.findViewById(R.id.network_request_title_progress);
+ progressBar.setVisibility(View.VISIBLE);
+
+ // Prepares adapter.
+ AccessPointAdapter adapter = new AccessPointAdapter(context,
+ R.layout.preference_access_point, getAccessPointList());
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(context)
+ .setCustomTitle(customTitle)
+ .setAdapter(adapter, this)
+ .setPositiveButton(R.string.cancel, (dialog, which) -> dialog.dismiss());
+ return builder.create();
+ }
+
+ List<AccessPoint> getAccessPointList() {
+ // Initials list for adapter, in case of display crashing.
+ if (mAccessPointList == null) {
+ mAccessPointList = new ArrayList<>();
+ }
+ return mAccessPointList;
+ }
+
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return MetricsProto.MetricsEvent.WIFI_SCANNING_NEEDED_DIALOG;
+ }
+
+ private class AccessPointAdapter extends ArrayAdapter<AccessPoint> {
+
+ private final int mResourceId;
+ private final LayoutInflater mInflater;
+
+ public AccessPointAdapter(Context context, int resourceId, List<AccessPoint> objects) {
+ super(context, resourceId, objects);
+ mResourceId = resourceId;
+ mInflater = LayoutInflater.from(context);
+ }
+
+ @Override
+ public View getView(int position, View view, ViewGroup parent) {
+ if (view == null) {
+ view = mInflater.inflate(mResourceId, parent, false);
+ }
+
+ // TODO: Sets correct information to list item.
+ final View divider = view.findViewById(com.android.settingslib.R.id.two_target_divider);
+ divider.setVisibility(View.GONE);
+
+ return view;
+ }
+ }
+}
+
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index d6c1931..70837a6 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -41,6 +41,7 @@
import android.text.InputType;
import android.text.TextUtils;
import android.text.TextWatcher;
+import android.util.FeatureFlagUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
@@ -155,6 +156,7 @@
private Spinner mProxySettingsSpinner;
private Spinner mMeteredSettingsSpinner;
private Spinner mHiddenSettingsSpinner;
+ private Spinner mPrivacySettingsSpinner;
private TextView mHiddenWarningView;
private TextView mProxyHostView;
private TextView mProxyPortView;
@@ -220,6 +222,12 @@
mSharedCheckBox = (CheckBox) mView.findViewById(R.id.shared);
mMeteredSettingsSpinner = mView.findViewById(R.id.metered_settings);
mHiddenSettingsSpinner = mView.findViewById(R.id.hidden_settings);
+ mPrivacySettingsSpinner = mView.findViewById(R.id.privacy_settings);
+ if (FeatureFlagUtils.isEnabled(mContext,
+ com.android.settings.core.FeatureFlags.WIFI_MAC_RANDOMIZATION)) {
+ View privacySettingsLayout = mView.findViewById(R.id.privacy_settings_fields);
+ privacySettingsLayout.setVisibility(View.VISIBLE);
+ }
mHiddenSettingsSpinner.setOnItemSelectedListener(this);
mHiddenWarningView = mView.findViewById(R.id.hidden_settings_warning);
mHiddenWarningView.setVisibility(
@@ -261,6 +269,7 @@
mHiddenSettingsSpinner.setSelection(config.hiddenSSID
? HIDDEN_NETWORK
: NOT_HIDDEN_NETWORK);
+ //TODO(b/117957974): set MAC randomization value to mPrivacySettingsSpinner
if (config.getIpAssignment() == IpAssignment.STATIC) {
mIpSettingsSpinner.setSelection(STATIC_IP);
showAdvancedFields = true;
@@ -445,6 +454,13 @@
return false;
}
+ boolean isValidSaePassword(String password) {
+ if (password.length() >= 1 && password.length() <= 63) {
+ return true;
+ }
+ return false;
+ }
+
boolean isSubmittable() {
boolean enabled = false;
boolean passwordInvalid = false;
@@ -452,7 +468,9 @@
&& ((mAccessPointSecurity == AccessPoint.SECURITY_WEP
&& mPasswordView.length() == 0)
|| (mAccessPointSecurity == AccessPoint.SECURITY_PSK
- && !isValidPsk(mPasswordView.getText().toString())))) {
+ && !isValidPsk(mPasswordView.getText().toString()))
+ || (mAccessPointSecurity == AccessPoint.SECURITY_SAE
+ && !isValidSaePassword(mPasswordView.getText().toString())))) {
passwordInvalid = true;
}
if ((mSsidView != null && mSsidView.length() == 0)
@@ -466,7 +484,9 @@
} else {
enabled = ipAndProxyFieldsAreValid();
}
- if (mAccessPointSecurity == AccessPoint.SECURITY_EAP && mEapCaCertSpinner != null
+ if ((mAccessPointSecurity == AccessPoint.SECURITY_EAP ||
+ mAccessPointSecurity == AccessPoint.SECURITY_EAP_SUITE_B)
+ && mEapCaCertSpinner != null
&& mView.findViewById(R.id.l_ca_cert).getVisibility() != View.GONE) {
String caCertSelection = (String) mEapCaCertSpinner.getSelectedItem();
if (caCertSelection.equals(mUnspecifiedCertString)) {
@@ -483,7 +503,9 @@
enabled = false;
}
}
- if (mAccessPointSecurity == AccessPoint.SECURITY_EAP && mEapUserCertSpinner != null
+ if ((mAccessPointSecurity == AccessPoint.SECURITY_EAP ||
+ mAccessPointSecurity == AccessPoint.SECURITY_EAP_SUITE_B)
+ && mEapUserCertSpinner != null
&& mView.findViewById(R.id.l_user_cert).getVisibility() != View.GONE
&& mEapUserCertSpinner.getSelectedItem().equals(mUnspecifiedCertString)) {
// Disallow submit if the user has not selected a user certificate for an EAP network
@@ -581,8 +603,18 @@
break;
case AccessPoint.SECURITY_EAP:
+ case AccessPoint.SECURITY_EAP_SUITE_B:
config.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
config.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
+ if (mAccessPointSecurity == AccessPoint.SECURITY_EAP_SUITE_B) {
+ config.allowedKeyManagement.set(KeyMgmt.SUITE_B_192);
+ config.requirePMF = true;
+ config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.GCMP_256);
+ config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.GCMP_256);
+ config.allowedGroupMgmtCiphers.set(WifiConfiguration.GroupMgmtCipher
+ .BIP_GMAC_256);
+ config.allowedSuiteBCiphers.set(WifiConfiguration.SuiteBCipher.ECDHE_RSA);
+ }
config.enterpriseConfig = new WifiEnterpriseConfig();
int eapMethod = mEapMethodSpinner.getSelectedItemPosition();
int phase2Method = mPhase2Spinner.getSelectedItemPosition();
@@ -691,6 +723,20 @@
config.enterpriseConfig.setPassword(mPasswordView.getText().toString());
}
break;
+ case AccessPoint.SECURITY_SAE:
+ config.allowedKeyManagement.set(KeyMgmt.SAE);
+ config.requirePMF = true;
+ if (mPasswordView.length() != 0) {
+ String password = mPasswordView.getText().toString();
+ config.preSharedKey = '"' + password + '"';
+ }
+ break;
+
+ case AccessPoint.SECURITY_OWE:
+ config.allowedKeyManagement.set(KeyMgmt.OWE);
+ config.requirePMF = true;
+ break;
+
default:
return null;
}
@@ -702,6 +748,10 @@
config.meteredOverride = mMeteredSettingsSpinner.getSelectedItemPosition();
}
+ if (mPrivacySettingsSpinner != null) {
+ //TODO(b/117957974): set MAC randomization value to WifiConfiguration
+ }
+
return config;
}
@@ -838,7 +888,8 @@
}
private void showSecurityFields() {
- if (mAccessPointSecurity == AccessPoint.SECURITY_NONE) {
+ if (mAccessPointSecurity == AccessPoint.SECURITY_NONE ||
+ mAccessPointSecurity == AccessPoint.SECURITY_OWE) {
mView.findViewById(R.id.security_fields).setVisibility(View.GONE);
return;
}
@@ -857,7 +908,8 @@
}
}
- if (mAccessPointSecurity != AccessPoint.SECURITY_EAP) {
+ if (mAccessPointSecurity != AccessPoint.SECURITY_EAP &&
+ mAccessPointSecurity != AccessPoint.SECURITY_EAP_SUITE_B) {
mView.findViewById(R.id.eap).setVisibility(View.GONE);
return;
}
diff --git a/src/com/android/settings/wifi/WifiDialogActivity.java b/src/com/android/settings/wifi/WifiDialogActivity.java
index 63785e6..e3a03ad 100644
--- a/src/com/android/settings/wifi/WifiDialogActivity.java
+++ b/src/com/android/settings/wifi/WifiDialogActivity.java
@@ -37,12 +37,6 @@
private static final String TAG = "WifiDialogActivity";
- private static final int RESULT_CONNECTED = RESULT_FIRST_USER;
- private static final int RESULT_FORGET = RESULT_FIRST_USER + 1;
-
- private static final String KEY_ACCESS_POINT_STATE = "access_point_state";
- private static final String KEY_WIFI_CONFIGURATION = "wifi_configuration";
-
/**
* Boolean extra indicating whether this activity should connect to an access point on the
* caller's behalf. If this is set to false, the caller should check
@@ -51,6 +45,11 @@
*/
@VisibleForTesting
static final String KEY_CONNECT_FOR_CALLER = "connect_for_caller";
+ static final String KEY_ACCESS_POINT_STATE = "access_point_state";
+ private static final String KEY_WIFI_CONFIGURATION = "wifi_configuration";
+
+ private static final int RESULT_CONNECTED = RESULT_FIRST_USER;
+ private static final int RESULT_FORGET = RESULT_FIRST_USER + 1;
private WifiDialog mDialog;
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 12ca26a..1c9a5e1 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -112,9 +112,9 @@
private static final String PREF_KEY_EMPTY_WIFI_LIST = "wifi_empty_list";
private static final String PREF_KEY_CONNECTED_ACCESS_POINTS = "connected_access_point";
private static final String PREF_KEY_ACCESS_POINTS = "access_points";
- private static final String PREF_KEY_ADDITIONAL_SETTINGS = "additional_settings";
private static final String PREF_KEY_CONFIGURE_WIFI_SETTINGS = "configure_settings";
private static final String PREF_KEY_SAVED_NETWORKS = "saved_networks";
+ private static final String PREF_KEY_STATUS_MESSAGE = "wifi_status_message";
private static boolean isVerboseLoggingEnabled() {
return WifiTracker.sVerboseLogging || Log.isLoggable(TAG, Log.VERBOSE);
@@ -167,17 +167,19 @@
private Bundle mAccessPointSavedState;
private Bundle mWifiNfcDialogSavedState;
- private WifiTracker mWifiTracker;
+ @VisibleForTesting
+ WifiTracker mWifiTracker;
private String mOpenSsid;
private AccessPointPreference.UserBadgeCache mUserBadgeCache;
private PreferenceCategory mConnectedAccessPointPreferenceCategory;
private PreferenceCategory mAccessPointsPreferenceCategory;
- private PreferenceCategory mAdditionalSettingsPreferenceCategory;
private Preference mAddPreference;
- private Preference mConfigureWifiSettingsPreference;
- private Preference mSavedNetworksPreference;
+ @VisibleForTesting
+ Preference mConfigureWifiSettingsPreference;
+ @VisibleForTesting
+ Preference mSavedNetworksPreference;
private LinkablePreference mStatusMessagePreference;
// For Search
@@ -229,8 +231,6 @@
(PreferenceCategory) findPreference(PREF_KEY_CONNECTED_ACCESS_POINTS);
mAccessPointsPreferenceCategory =
(PreferenceCategory) findPreference(PREF_KEY_ACCESS_POINTS);
- mAdditionalSettingsPreferenceCategory =
- (PreferenceCategory) findPreference(PREF_KEY_ADDITIONAL_SETTINGS);
mConfigureWifiSettingsPreference = findPreference(PREF_KEY_CONFIGURE_WIFI_SETTINGS);
mSavedNetworksPreference = findPreference(PREF_KEY_SAVED_NETWORKS);
@@ -238,7 +238,7 @@
mAddPreference = new Preference(prefContext);
mAddPreference.setIcon(R.drawable.ic_menu_add);
mAddPreference.setTitle(R.string.wifi_add_network);
- mStatusMessagePreference = new LinkablePreference(prefContext);
+ mStatusMessagePreference = (LinkablePreference) findPreference(PREF_KEY_STATUS_MESSAGE);
mUserBadgeCache = new AccessPointPreference.UserBadgeCache(getPackageManager());
}
@@ -488,7 +488,8 @@
menu.add(Menu.NONE, MENU_ID_MODIFY, 0, R.string.wifi_menu_modify);
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(getActivity());
if (nfcAdapter != null && nfcAdapter.isEnabled() &&
- mSelectedAccessPoint.getSecurity() != AccessPoint.SECURITY_NONE) {
+ (!(mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_NONE) ||
+ (mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_OWE))) {
// Only allow writing of NFC tags for password-protected networks.
menu.add(Menu.NONE, MENU_ID_WRITE_NFC, 0, R.string.wifi_menu_write_to_nfc);
}
@@ -506,7 +507,8 @@
boolean isSavedNetwork = mSelectedAccessPoint.isSaved();
if (isSavedNetwork) {
connect(mSelectedAccessPoint.getConfig(), isSavedNetwork);
- } else if (mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_NONE) {
+ } else if ((mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_NONE) ||
+ (mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_OWE)) {
/** Bypass dialog for unsecured networks */
mSelectedAccessPoint.generateOpenNetworkConfig();
connect(mSelectedAccessPoint.getConfig(), isSavedNetwork);
@@ -552,7 +554,8 @@
* networks, or Passpoint provided networks.
*/
WifiConfiguration config = mSelectedAccessPoint.getConfig();
- if (mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_NONE) {
+ if ((mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_NONE) ||
+ (mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_OWE)) {
mSelectedAccessPoint.generateOpenNetworkConfig();
connect(mSelectedAccessPoint.getConfig(), mSelectedAccessPoint.isSaved());
} else if (mSelectedAccessPoint.isSaved() && config != null
@@ -692,14 +695,14 @@
case WifiManager.WIFI_STATE_ENABLING:
removeConnectedAccessPointPreference();
- mAccessPointsPreferenceCategory.removeAll();
+ removeAccessPointPreference();
addMessagePreference(R.string.wifi_starting);
setProgressBarVisible(true);
break;
case WifiManager.WIFI_STATE_DISABLING:
removeConnectedAccessPointPreference();
- mAccessPointsPreferenceCategory.removeAll();
+ removeAccessPointPreference();
addMessagePreference(R.string.wifi_stopping);
break;
@@ -746,7 +749,10 @@
}
boolean hasAvailableAccessPoints = false;
- mAccessPointsPreferenceCategory.removePreference(mStatusMessagePreference);
+ mStatusMessagePreference.setVisible(false);
+ mConnectedAccessPointPreferenceCategory.setVisible(true);
+ mAccessPointsPreferenceCategory.setVisible(true);
+
cacheRemoveAllPrefs(mAccessPointsPreferenceCategory);
int index =
@@ -769,7 +775,8 @@
preference.setKey(key);
preference.setOrder(index);
if (mOpenSsid != null && mOpenSsid.equals(accessPoint.getSsidStr())
- && accessPoint.getSecurity() != AccessPoint.SECURITY_NONE) {
+ && (accessPoint.getSecurity() != AccessPoint.SECURITY_NONE &&
+ accessPoint.getSecurity() != AccessPoint.SECURITY_OWE)) {
if (!accessPoint.isSaved() || isDisabledByWrongPassword(accessPoint)) {
onPreferenceTreeClick(preference);
mOpenSsid = null;
@@ -960,26 +967,28 @@
unregisterCaptivePortalNetworkCallback();
}
- private void setAdditionalSettingsSummaries() {
- mAdditionalSettingsPreferenceCategory.addPreference(mConfigureWifiSettingsPreference);
+ private void removeAccessPointPreference() {
+ mAccessPointsPreferenceCategory.removeAll();
+ mAccessPointsPreferenceCategory.setVisible(false);
+ }
+
+ @VisibleForTesting
+ void setAdditionalSettingsSummaries() {
mConfigureWifiSettingsPreference.setSummary(getString(
isWifiWakeupEnabled()
? R.string.wifi_configure_settings_preference_summary_wakeup_on
: R.string.wifi_configure_settings_preference_summary_wakeup_off));
- int numSavedNetworks = mWifiTracker.getNumSavedNetworks();
- if (numSavedNetworks > 0) {
- mAdditionalSettingsPreferenceCategory.addPreference(mSavedNetworksPreference);
- mSavedNetworksPreference.setSummary(
- getResources().getQuantityString(R.plurals.wifi_saved_access_points_summary,
- numSavedNetworks, numSavedNetworks));
- } else {
- mAdditionalSettingsPreferenceCategory.removePreference(mSavedNetworksPreference);
- }
+ final int numSavedNetworks = mWifiTracker.getNumSavedNetworks();
+ mSavedNetworksPreference.setVisible(numSavedNetworks > 0);
+ mSavedNetworksPreference.setSummary(
+ getResources().getQuantityString(R.plurals.wifi_saved_access_points_summary,
+ numSavedNetworks, numSavedNetworks));
}
private boolean isWifiWakeupEnabled() {
- PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
- ContentResolver contentResolver = getContentResolver();
+ final Context context = getContext();
+ final PowerManager powerManager = context.getSystemService(PowerManager.class);
+ final ContentResolver contentResolver = context.getContentResolver();
return Settings.Global.getInt(contentResolver,
Settings.Global.WIFI_WAKEUP_ENABLED, 0) == 1
&& Settings.Global.getInt(contentResolver,
@@ -1006,15 +1015,14 @@
.launch();
mStatusMessagePreference.setText(title, description, clickListener);
removeConnectedAccessPointPreference();
- mAccessPointsPreferenceCategory.removeAll();
- mAccessPointsPreferenceCategory.addPreference(mStatusMessagePreference);
+ removeAccessPointPreference();
+ mStatusMessagePreference.setVisible(true);
}
private void addMessagePreference(int messageId) {
mStatusMessagePreference.setTitle(messageId);
- removeConnectedAccessPointPreference();
- mAccessPointsPreferenceCategory.removeAll();
- mAccessPointsPreferenceCategory.addPreference(mStatusMessagePreference);
+ mStatusMessagePreference.setVisible(true);
+
}
protected void setProgressBarVisible(boolean visible) {
@@ -1095,7 +1103,7 @@
protected void connect(final WifiConfiguration config, boolean isSavedNetwork) {
// Log subtype if configuration is a saved network.
- mMetricsFeatureProvider.action(getVisibilityLogger(), MetricsEvent.ACTION_WIFI_CONNECT,
+ mMetricsFeatureProvider.action(getContext(), MetricsEvent.ACTION_WIFI_CONNECT,
isSavedNetwork);
mWifiManager.connect(config, mConnectListener);
mClickedConnect = true;
@@ -1110,7 +1118,7 @@
@VisibleForTesting
void handleAddNetworkRequest(int result, Intent data) {
- if(result == Activity.RESULT_OK) {
+ if (result == Activity.RESULT_OK) {
handleAddNetworkSubmitEvent(data);
}
mWifiTracker.resumeScanning();
diff --git a/src/com/android/settings/wifi/WifiSlice.java b/src/com/android/settings/wifi/WifiSlice.java
index d0b14e3..d06d830 100644
--- a/src/com/android/settings/wifi/WifiSlice.java
+++ b/src/com/android/settings/wifi/WifiSlice.java
@@ -29,9 +29,11 @@
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiSsid;
+import android.os.Bundle;
import android.provider.SettingsSlicesContract;
import android.text.TextUtils;
+import androidx.annotation.VisibleForTesting;
import androidx.core.graphics.drawable.IconCompat;
import androidx.slice.Slice;
import androidx.slice.builders.ListBuilder;
@@ -42,8 +44,16 @@
import com.android.settings.R;
import com.android.settings.SubSettings;
import com.android.settings.Utils;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.slices.CustomSliceable;
+import com.android.settings.slices.SliceBackgroundWorker;
import com.android.settings.slices.SliceBuilderUtils;
+import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
+import com.android.settingslib.wifi.AccessPoint;
+import com.android.settingslib.wifi.WifiTracker;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* Utility class to build a Wifi Slice, and handle all associated actions.
@@ -60,6 +70,9 @@
.appendPath(KEY_WIFI)
.build();
+ @VisibleForTesting
+ static final int DEFAULT_EXPANDED_ROW_COUNT = 3;
+
private final Context mContext;
public WifiSlice(Context context) {
@@ -96,14 +109,87 @@
final SliceAction toggleSliceAction = new SliceAction(toggleAction, null /* actionTitle */,
isWifiEnabled);
- return new ListBuilder(mContext, WIFI_URI, ListBuilder.INFINITY)
+ final ListBuilder listBuilder = new ListBuilder(mContext, WIFI_URI, ListBuilder.INFINITY)
.setAccentColor(color)
.addRow(new RowBuilder()
.setTitle(title)
.setSubtitle(summary)
.addEndItem(toggleSliceAction)
- .setPrimaryAction(primarySliceAction))
- .build();
+ .setPrimaryAction(primarySliceAction));
+
+ if (!isWifiEnabled) {
+ return listBuilder.build();
+ }
+
+ List<AccessPoint> results = SliceBackgroundWorker.getInstance(mContext, this).getResults();
+ if (results == null) {
+ results = new ArrayList<>();
+ }
+ final int apCount = results.size();
+ // Add AP rows
+ final CharSequence placeholder = mContext.getText(R.string.summary_placeholder);
+ for (int i = 0; i < DEFAULT_EXPANDED_ROW_COUNT; i++) {
+ if (i < apCount) {
+ listBuilder.addRow(getAccessPointRow(results.get(i)));
+ } else {
+ listBuilder.addRow(new RowBuilder()
+ .setTitle(placeholder)
+ .setSubtitle(placeholder));
+ }
+ }
+ return listBuilder.build();
+ }
+
+ private RowBuilder getAccessPointRow(AccessPoint accessPoint) {
+ final String title = accessPoint.getConfigName();
+ final IconCompat levelIcon = IconCompat.createWithResource(mContext,
+ com.android.settingslib.Utils.getWifiIconResource(accessPoint.getLevel()));
+ final CharSequence apSummary = accessPoint.getSettingsSummary();
+ final RowBuilder rowBuilder = new RowBuilder()
+ .setTitleItem(levelIcon, ListBuilder.ICON_IMAGE)
+ .setTitle(title)
+ .setSubtitle(!TextUtils.isEmpty(apSummary)
+ ? apSummary
+ : mContext.getText(R.string.summary_placeholder))
+ .setPrimaryAction(new SliceAction(
+ getAccessPointAction(accessPoint), levelIcon, title));
+
+ final IconCompat endIcon = getEndIcon(accessPoint);
+ if (endIcon != null) {
+ rowBuilder.addEndItem(endIcon, ListBuilder.ICON_IMAGE);
+ }
+ return rowBuilder;
+ }
+
+ private IconCompat getEndIcon(AccessPoint accessPoint) {
+ if (accessPoint.isActive()) {
+ return IconCompat.createWithResource(mContext, R.drawable.ic_settings);
+ } else if (accessPoint.getSecurity() != AccessPoint.SECURITY_NONE) {
+ return IconCompat.createWithResource(mContext, R.drawable.ic_friction_lock_closed);
+ } else if (accessPoint.isMetered()) {
+ return IconCompat.createWithResource(mContext, R.drawable.ic_friction_money);
+ }
+ return null;
+ }
+
+ private PendingIntent getAccessPointAction(AccessPoint accessPoint) {
+ final Bundle extras = new Bundle();
+ accessPoint.saveWifiState(extras);
+
+ Intent intent;
+ if (accessPoint.isActive()) {
+ intent = new SubSettingLauncher(mContext)
+ .setTitleRes(R.string.pref_title_network_details)
+ .setDestination(WifiNetworkDetailsFragment.class.getName())
+ .setArguments(extras)
+ .setSourceMetricsCategory(MetricsEvent.WIFI)
+ .toIntent();
+ } else {
+ intent = new Intent(mContext, WifiDialogActivity.class);
+ intent.putExtra(WifiDialogActivity.KEY_ACCESS_POINT_STATE, extras);
+ }
+ return PendingIntent.getActivity(mContext, accessPoint.hashCode() /* requestCode */,
+ intent, 0 /* flags */);
}
/**
@@ -176,4 +262,68 @@
return PendingIntent.getActivity(mContext, 0 /* requestCode */,
intent, 0 /* flags */);
}
+
+ @Override
+ public Class getBackgroundWorkerClass() {
+ return WifiScanWorker.class;
+ }
+
+ public static class WifiScanWorker extends SliceBackgroundWorker<AccessPoint>
+ implements WifiTracker.WifiListener {
+
+ private final Context mContext;
+
+ private WifiTracker mWifiTracker;
+
+ public WifiScanWorker(Context context, Uri uri) {
+ super(context, uri);
+ mContext = context;
+ }
+
+ @Override
+ protected void onSlicePinned() {
+ if (mWifiTracker == null) {
+ mWifiTracker = new WifiTracker(mContext, this /* wifiListener */,
+ true /* includeSaved */, true /* includeScans */);
+ }
+ mWifiTracker.onStart();
+ onAccessPointsChanged();
+ }
+
+ @Override
+ protected void onSliceUnpinned() {
+ mWifiTracker.onStop();
+ }
+
+ @Override
+ public void close() {
+ mWifiTracker.onDestroy();
+ }
+
+ @Override
+ public void onWifiStateChanged(int state) {
+ }
+
+ @Override
+ public void onConnectedChanged() {
+ }
+
+ @Override
+ public void onAccessPointsChanged() {
+ // in case state has changed
+ if (!mWifiTracker.getManager().isWifiEnabled()) {
+ updateResults(null);
+ return;
+ }
+ // AccessPoints are sorted by the WifiTracker
+ final List<AccessPoint> accessPoints = mWifiTracker.getAccessPoints();
+ final List<AccessPoint> resultList = new ArrayList<>();
+ for (AccessPoint ap : accessPoints) {
+ if (ap.isReachable()) {
+ resultList.add(ap);
+ }
+ }
+ updateResults(resultList);
+ }
+ }
}
diff --git a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java
index bf9d167..435f8f1 100644
--- a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java
+++ b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java
@@ -68,7 +68,7 @@
@Override
public boolean isAvailable() {
- return true;
+ return true;
}
@Override
@@ -108,8 +108,8 @@
final SwitchPreference enableWifiWakeup = (SwitchPreference) preference;
enableWifiWakeup.setChecked(getWifiWakeupEnabled()
- && getWifiScanningEnabled()
- && mLocationManager.isLocationEnabled());
+ && getWifiScanningEnabled()
+ && mLocationManager.isLocationEnabled());
if (!mLocationManager.isLocationEnabled()) {
preference.setSummary(getNoLocationSummary());
} else {
@@ -117,7 +117,8 @@
}
}
- @VisibleForTesting CharSequence getNoLocationSummary() {
+ @VisibleForTesting
+ CharSequence getNoLocationSummary() {
AnnotationSpan.LinkInfo linkInfo = new AnnotationSpan.LinkInfo("link", null);
CharSequence locationText = mContext.getText(R.string.wifi_wakeup_summary_no_location);
return AnnotationSpan.linkify(locationText, linkInfo);
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
index 6b368c5..0de5c77 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
@@ -401,6 +401,7 @@
// Build and return intent
Intent intent = new Intent();
intent.setComponent(componentName);
+ intent.putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, mSubId);
return intent;
}
diff --git a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
index c29ad60..7f0e8ee 100644
--- a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
+++ b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
@@ -135,6 +135,10 @@
controllers.add(mWifiDetailPreferenceController);
controllers.add(new WifiMeteredPreferenceController(context, mAccessPoint.getConfig()));
+ WifiPrivacyPreferenceController preferenceController = new WifiPrivacyPreferenceController(
+ context);
+ preferenceController.setWifiConfiguration(mAccessPoint.getConfig());
+ controllers.add(preferenceController);
return controllers;
}
diff --git a/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java b/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java
new file mode 100644
index 0000000..9f81431
--- /dev/null
+++ b/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java
@@ -0,0 +1,88 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.wifi.details;
+
+import android.content.Context;
+import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiManager;
+import android.util.FeatureFlagUtils;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.DropDownPreference;
+import androidx.preference.Preference;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.FeatureFlags;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+/**
+ * {@link AbstractPreferenceController} that controls whether the wifi network is mac randomized
+ * or not
+ */
+public class WifiPrivacyPreferenceController extends BasePreferenceController implements
+ Preference.OnPreferenceChangeListener {
+
+ private static final String KEY_WIFI_PRIVACY = "privacy";
+ private WifiConfiguration mWifiConfiguration;
+ private WifiManager mWifiManager;
+
+ public WifiPrivacyPreferenceController(Context context) {
+ super(context, KEY_WIFI_PRIVACY);
+ mWifiConfiguration = null;
+ mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
+ }
+
+ public void setWifiConfiguration(WifiConfiguration wifiConfiguration) {
+ mWifiConfiguration = wifiConfiguration;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.WIFI_MAC_RANDOMIZATION)
+ ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ final DropDownPreference dropDownPreference = (DropDownPreference) preference;
+ final int randomizationLevel = getRandomizationValue();
+ dropDownPreference.setValue(Integer.toString(randomizationLevel));
+ updateSummary((DropDownPreference) preference, randomizationLevel);
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ if (mWifiConfiguration != null) {
+ mWifiConfiguration.macRandomizationSetting = Integer.parseInt((String) newValue);
+ mWifiManager.updateNetwork(mWifiConfiguration);
+ }
+ updateSummary((DropDownPreference) preference, Integer.parseInt((String) newValue));
+ return true;
+ }
+
+ @VisibleForTesting
+ int getRandomizationValue() {
+ if (mWifiConfiguration != null) {
+ return mWifiConfiguration.macRandomizationSetting;
+ }
+ return WifiConfiguration.RANDOMIZATION_PERSISTENT;
+ }
+
+ private void updateSummary(DropDownPreference preference, int macRandomized) {
+ preference.setSummary(preference.getEntries()[macRandomized]);
+ }
+}
diff --git a/tests/robotests/assets/grandfather_not_implementing_index_provider b/tests/robotests/assets/grandfather_not_implementing_index_provider
index 3cb0258..479ffee 100644
--- a/tests/robotests/assets/grandfather_not_implementing_index_provider
+++ b/tests/robotests/assets/grandfather_not_implementing_index_provider
@@ -15,7 +15,6 @@
com.android.settings.applications.AppLaunchSettings
com.android.settings.applications.AppStorageSettings
com.android.settings.applications.ConfirmConvertToFbe
-com.android.settings.applications.DirectoryAccessDetails
com.android.settings.applications.ProcessStatsDetail
com.android.settings.applications.ProcessStatsSummary
com.android.settings.applications.ProcessStatsUi
@@ -50,6 +49,7 @@
com.android.settings.localepicker.LocaleListEditor
com.android.settings.network.ApnEditor
com.android.settings.network.ApnSettings
+com.android.settings.network.telephony.NetworkSelectSettings
com.android.settings.notification.AppNotificationSettings
com.android.settings.notification.ChannelGroupNotificationSettings
com.android.settings.notification.ChannelNotificationSettings
diff --git a/tests/robotests/res/values-mcc999/config.xml b/tests/robotests/res/values-mcc999/config.xml
index 6347d79..73d2264 100644
--- a/tests/robotests/res/values-mcc999/config.xml
+++ b/tests/robotests/res/values-mcc999/config.xml
@@ -62,6 +62,8 @@
<bool name="config_show_wifi_mac_address">false</bool>
<bool name="config_disable_uninstall_update">true</bool>
<bool name="config_show_device_name">false</bool>
+ <bool name="config_use_legacy_suggestion">false</bool>
+ <bool name="config_show_avatar_in_homepage">true</bool>
<!-- Whether or not extra preview panels should be used for screen zoom setting. -->
<bool name="config_enable_extra_screen_zoom_preview">false</bool>
diff --git a/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java b/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java
index d66cd8f..42fa79f 100644
--- a/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java
@@ -23,6 +23,7 @@
import static org.mockito.Mockito.when;
import static org.robolectric.RuntimeEnvironment.application;
+import android.app.Activity;
import android.app.KeyguardManager;
import android.content.Intent;
import android.os.Bundle;
@@ -35,6 +36,7 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowKeyguardManager;
@@ -43,8 +45,8 @@
@RunWith(SettingsRobolectricTestRunner.class)
@Config(
shadows = {
- ShadowUserManager.class,
- ShadowKeyguardManager.class,
+ ShadowUserManager.class,
+ ShadowKeyguardManager.class,
})
public class RestrictedListPreferenceTest {
private static final int PROFILE_USER_ID = 11;
@@ -52,6 +54,7 @@
private static final int UNLAUNCHABLE_REASON_QUIET_MODE = 1;
private static final String EXTRA_UNLAUNCHABLE_REASON = "unlaunchable_reason";
+ private Activity mActivity;
private ShadowUserManager mShadowUserManager;
private ShadowKeyguardManager mShadowKeyguardManager;
private RestrictedListPreference mPreference;
@@ -59,11 +62,12 @@
@Before
public void setUp() {
+ mActivity = Robolectric.setupActivity(Activity.class);
mShadowKeyguardManager =
Shadows.shadowOf(application.getSystemService(KeyguardManager.class));
mMockHelper = mock(RestrictedPreferenceHelper.class);
mShadowUserManager = ShadowUserManager.getShadow();
- mPreference = new RestrictedListPreference(application, mock(AttributeSet.class));
+ mPreference = new RestrictedListPreference(mActivity, mock(AttributeSet.class));
mPreference.setProfileUserId(PROFILE_USER_ID);
ReflectionHelpers.setField(mPreference, "mHelper", mMockHelper);
}
@@ -80,7 +84,7 @@
// Make sure that the performClick method on the helper is never reached.
verify(mMockHelper, never()).performClick();
// Assert that a CONFIRM_DEVICE_CREDENTIAL intent has been started.
- Intent started = Shadows.shadowOf(application).getNextStartedActivity();
+ Intent started = Shadows.shadowOf(mActivity).getNextStartedActivity();
assertThat(started.getExtras().getInt(Intent.EXTRA_USER_ID)).isEqualTo(PROFILE_USER_ID);
assertThat(started.getAction())
.isEqualTo(KeyguardManager.ACTION_CONFIRM_DEVICE_CREDENTIAL_WITH_USER);
@@ -95,7 +99,7 @@
// Make sure that the performClick method on the helper is never reached.
verify(mMockHelper, never()).performClick();
// Assert that a new intent for enabling the work profile is started.
- Intent started = Shadows.shadowOf(application).getNextStartedActivity();
+ Intent started = Shadows.shadowOf(mActivity).getNextStartedActivity();
Bundle extras = started.getExtras();
int reason = extras.getInt(EXTRA_UNLAUNCHABLE_REASON);
assertThat(reason).isEqualTo(UNLAUNCHABLE_REASON_QUIET_MODE);
diff --git a/tests/robotests/src/com/android/settings/SettingsActivityTest.java b/tests/robotests/src/com/android/settings/SettingsActivityTest.java
index 409512e..2c98f70 100644
--- a/tests/robotests/src/com/android/settings/SettingsActivityTest.java
+++ b/tests/robotests/src/com/android/settings/SettingsActivityTest.java
@@ -38,6 +38,7 @@
import com.android.settings.core.OnActivityResultListener;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUtils;
import org.junit.Before;
import org.junit.Test;
@@ -46,6 +47,7 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import java.util.ArrayList;
import java.util.List;
@@ -69,24 +71,24 @@
}
@Test
+ @Config(shadows = ShadowUtils.class)
public void onCreate_deviceNotProvisioned_shouldDisableSearch() {
Global.putInt(mContext.getContentResolver(), Global.DEVICE_PROVISIONED, 0);
- final Intent intent = new Intent(mContext, Settings.class);
- final SettingsActivity activity =
- Robolectric.buildActivity(SettingsActivity.class, intent).create(
- Bundle.EMPTY).get();
+ final SettingsActivity activity = Robolectric.buildActivity(SettingsActivity.class)
+ .create(Bundle.EMPTY)
+ .get();
assertThat(activity.findViewById(R.id.search_bar).getVisibility())
.isEqualTo(View.INVISIBLE);
}
@Test
+ @Config(shadows = ShadowUtils.class)
public void onCreate_deviceProvisioned_shouldEnableSearch() {
Global.putInt(mContext.getContentResolver(), Global.DEVICE_PROVISIONED, 1);
- final Intent intent = new Intent(mContext, Settings.class);
- final SettingsActivity activity =
- Robolectric.buildActivity(SettingsActivity.class, intent).create(
- Bundle.EMPTY).get();
+ final SettingsActivity activity = Robolectric.buildActivity(SettingsActivity.class)
+ .create(Bundle.EMPTY)
+ .get();
assertThat(activity.findViewById(R.id.search_bar).getVisibility()).isEqualTo(View.VISIBLE);
}
diff --git a/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java b/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java
index c78a44a..ed0e5a0 100644
--- a/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/SettingsDialogFragmentTest.java
@@ -51,8 +51,8 @@
public void testGetMetrics_shouldGetMetricFromDialogCreatable() {
when(mDialogCreatable.getDialogMetricsCategory(DIALOG_ID)).thenReturn(1);
- mDialogFragment =
- new SettingsPreferenceFragment.SettingsDialogFragment(mDialogCreatable, DIALOG_ID);
+ mDialogFragment = SettingsPreferenceFragment.SettingsDialogFragment.newInstance(
+ mDialogCreatable, DIALOG_ID);
mDialogFragment.onAttach(RuntimeEnvironment.application);
mDialogFragment.getMetricsCategory();
@@ -65,8 +65,8 @@
when(mDialogCreatable.getDialogMetricsCategory(DIALOG_ID)).thenReturn(-1);
try {
- mDialogFragment =
- new SettingsPreferenceFragment.SettingsDialogFragment(mDialogCreatable, DIALOG_ID);
+ mDialogFragment = SettingsPreferenceFragment.SettingsDialogFragment.newInstance(
+ mDialogCreatable, DIALOG_ID);
mDialogFragment.onAttach(RuntimeEnvironment.application);
fail("Should fail with IllegalStateException");
} catch (IllegalStateException e) {
diff --git a/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java b/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java
index 83a7272..beabd15 100644
--- a/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java
@@ -16,8 +16,6 @@
package com.android.settings;
-import static com.android.settings.testutils.ResIdSubject.assertResId;
-
import static com.google.common.truth.Truth.assertThat;
import android.content.Intent;
@@ -33,7 +31,7 @@
public class SetupWizardUtilsTest {
@Test
- public void testCopySetupExtras() throws Throwable {
+ public void testCopySetupExtras() {
Intent fromIntent = new Intent();
final String theme = "TEST_THEME";
fromIntent.putExtra(WizardManagerHelper.EXTRA_THEME, theme);
@@ -53,7 +51,7 @@
Intent intent = new Intent();
intent.putExtra(WizardManagerHelper.EXTRA_THEME, WizardManagerHelper.THEME_GLIF_V2);
- assertResId(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme);
+ assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme);
}
@Test
@@ -62,7 +60,7 @@
WizardManagerHelper.THEME_GLIF_V2_LIGHT);
Intent intent = new Intent();
- assertResId(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme_Light);
+ assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme_Light);
}
@Test
@@ -71,8 +69,8 @@
WizardManagerHelper.THEME_GLIF_V3_LIGHT);
Intent intent = new Intent();
- assertResId(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV3Theme_Light);
- assertResId(SetupWizardUtils.getTransparentTheme(intent))
+ assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV3Theme_Light);
+ assertThat(SetupWizardUtils.getTransparentTheme(intent))
.isEqualTo(R.style.GlifV3Theme_Light_Transparent);
}
}
diff --git a/tests/robotests/src/com/android/settings/UtilsTest.java b/tests/robotests/src/com/android/settings/UtilsTest.java
index 5f2abba..77cbae2 100644
--- a/tests/robotests/src/com/android/settings/UtilsTest.java
+++ b/tests/robotests/src/com/android/settings/UtilsTest.java
@@ -93,6 +93,7 @@
when(mContext.getSystemService(WifiManager.class)).thenReturn(wifiManager);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
.thenReturn(connectivityManager);
+ when(mContext.getPackageManager()).thenReturn(mPackageManager);
}
@Test
@@ -200,4 +201,27 @@
verify(mPackageManager).getApplicationInfoAsUser(eq(PACKAGE_NAME), anyInt(), eq(USER_ID));
verify(mIconDrawableFactory).getBadgedIcon(mApplicationInfo, USER_ID);
}
+
+ @Test
+ public void isPackageEnabled_appEnabled_returnTrue()
+ throws PackageManager.NameNotFoundException{
+ mApplicationInfo.enabled = true;
+ when(mPackageManager.getApplicationInfo(PACKAGE_NAME, 0)).thenReturn(mApplicationInfo);
+
+ assertThat(Utils.isPackageEnabled(mContext, PACKAGE_NAME)).isTrue();
+ }
+
+ @Test
+ public void isPackageEnabled_appDisabled_returnTrue()
+ throws PackageManager.NameNotFoundException{
+ mApplicationInfo.enabled = false;
+ when(mPackageManager.getApplicationInfo(PACKAGE_NAME, 0)).thenReturn(mApplicationInfo);
+
+ assertThat(Utils.isPackageEnabled(mContext, PACKAGE_NAME)).isFalse();
+ }
+
+ @Test
+ public void isPackageEnabled_noApp_returnFalse() {
+ assertThat(Utils.isPackageEnabled(mContext, PACKAGE_NAME)).isFalse();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java
index cdd0838..06fd1fc 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java
@@ -25,13 +25,13 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothHearingAid;
import android.bluetooth.BluetoothManager;
import android.bluetooth.BluetoothProfile;
import android.content.BroadcastReceiver;
-import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
@@ -53,7 +53,7 @@
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
@@ -71,7 +71,7 @@
private ShadowBluetoothAdapter mShadowBluetoothAdapter;
private BluetoothManager mBluetoothManager;
private BluetoothDevice mBluetoothDevice;
- private Context mContext;
+ private Activity mContext;
private Preference mHearingAidPreference;
private AccessibilityHearingAidPreferenceController mPreferenceController;
@@ -89,7 +89,7 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
+ mContext = spy(Robolectric.setupActivity(Activity.class));
setupBluetoothEnvironment();
setupHearingAidEnvironment();
mHearingAidPreference = new Preference(mContext);
@@ -145,8 +145,8 @@
}
@Test
- public void handleHearingAidPreferenceClick_withHearingAid_launchBluetoothDeviceDetailSetting()
- {
+ public void handleHearingAidPreferenceClick_withHearingAid_launchBluetoothDeviceDetailSetting
+ () {
mPreferenceController = spy(new AccessibilityHearingAidPreferenceController(mContext,
HEARING_AID_PREFERENCE));
mPreferenceController.setPreference(mHearingAidPreference);
@@ -161,7 +161,8 @@
public void onNotSupportHearingAidProfile_doNotDoReceiverOperation() {
//clear bluetooth supported profile
mShadowBluetoothAdapter.clearSupportedProfiles();
- mPreferenceController = new AccessibilityHearingAidPreferenceController(mContext, HEARING_AID_PREFERENCE);
+ mPreferenceController = new AccessibilityHearingAidPreferenceController(mContext,
+ HEARING_AID_PREFERENCE);
mPreferenceController.setPreference(mHearingAidPreference);
//not call registerReceiver()
mPreferenceController.onResume();
diff --git a/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java
index 6fb6f0e..2648a50 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java
@@ -59,7 +59,7 @@
@Test
public void isChecked_enabled() {
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, ON);
mController.updateState(mPreference);
@@ -70,7 +70,7 @@
@Test
public void isChecked_disabled() {
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, OFF);
mController.updateState(mPreference);
diff --git a/tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java
index 020906a..a143d25 100644
--- a/tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java
@@ -60,13 +60,13 @@
@Test
public void updateState_shouldRefreshSummary() {
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, ON);
mController.updateState(mPreference);
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.accessibility_feature_state_on));
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, OFF);
mController.updateState(mPreference);
assertThat(mPreference.getSummary())
@@ -84,7 +84,7 @@
@Test
public void isChecked_enabled() {
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, ON);
assertThat(mController.isChecked()).isTrue();
@@ -92,7 +92,7 @@
@Test
public void isChecked_disabled() {
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, OFF);
assertThat(mController.isChecked()).isFalse();
diff --git a/tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java
index 225a2bb..89a7884 100644
--- a/tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java
@@ -85,13 +85,13 @@
@Test
public void updateState_shouldRefreshSummary() {
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, ON);
mController.updateState(mPreference);
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getText(R.string.accessibility_feature_state_on));
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, OFF);
mController.updateState(mPreference);
assertThat(mPreference.getSummary())
@@ -109,7 +109,7 @@
@Test
public void isChecked_enabled() {
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, ON);
assertThat(mController.isChecked()).isTrue();
@@ -117,7 +117,7 @@
@Test
public void isChecked_disabled() {
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, OFF);
assertThat(mController.isChecked()).isFalse();
@@ -151,7 +151,7 @@
}
@Implementation
- static boolean isApplicable(Resources res) {
+ protected static boolean isApplicable(Resources res) {
return sIsApplicable;
}
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
index a4d1567..2648916 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
@@ -35,8 +35,10 @@
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
+import android.content.pm.UserInfo;
import android.os.Bundle;
import android.os.UserHandle;
+import android.os.UserManager;
import androidx.fragment.app.FragmentActivity;
import androidx.preference.Preference;
@@ -44,9 +46,12 @@
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.dashboard.DashboardFeatureProviderImpl;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowAccountManager;
+import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.drawer.CategoryKey;
import com.android.settingslib.drawer.Tile;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -54,10 +59,11 @@
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowAccountManager;
+import org.robolectric.shadow.api.Shadow;
import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowAccountManager.class, ShadowUserManager.class})
public class AccountDetailDashboardFragmentTest {
private static final String METADATA_CATEGORY = "com.android.settings.category";
@@ -86,6 +92,11 @@
when(mFragment.getContext()).thenReturn(mContext);
}
+ @After
+ public void tearDown() {
+ ShadowAccountManager.reset();
+ }
+
@Test
public void testCategory_isAccountDetail() {
assertThat(new AccountDetailDashboardFragment().getCategoryKey())
@@ -152,17 +163,45 @@
}
@Test
- @Config(shadows = {ShadowAccountManager.class})
public void onResume_accountMissing_shouldFinish() {
+ ShadowUserManager userManager = Shadow.extract(
+ mContext.getSystemService(UserManager.class));
+ ShadowAccountManager acctMgr = Shadow.extract(
+ mContext.getSystemService(AccountManager.class));
+
+ userManager.addProfile(new UserInfo(1, null, 0));
+ acctMgr.addAccountForUser(1, new Account("test@test.com", "com.test"));
+
mFragment.finishIfAccountMissing();
verify(mFragment).finish();
}
@Test
- @Config(shadows = {ShadowAccountManager.class})
- public void onResume_accountPresent_shouldNotFinish() {
- AccountManager mgr = mContext.getSystemService(AccountManager.class);
- Shadows.shadowOf(mgr).addAccount(mFragment.mAccount);
+ public void onResume_accountPresentOneProfile_shouldNotFinish() {
+ ShadowUserManager userManager = Shadow.extract(
+ mContext.getSystemService(UserManager.class));
+ ShadowAccountManager acctMgr = Shadow.extract(
+ mContext.getSystemService(AccountManager.class));
+
+ userManager.addProfile(new UserInfo(1, null, 0));
+ acctMgr.addAccountForUser(1, mFragment.mAccount);
+
+ mFragment.finishIfAccountMissing();
+ verify(mFragment, never()).finish();
+ }
+
+ @Test
+ public void onResume_accountPresentTwoProfiles_shouldNotFinish() {
+ ShadowUserManager userManager = Shadow.extract(
+ mContext.getSystemService(UserManager.class));
+ ShadowAccountManager acctMgr = Shadow.extract(
+ mContext.getSystemService(AccountManager.class));
+
+ userManager.addProfile(new UserInfo(1, null, 0));
+ userManager.addProfile(new UserInfo(2, null, 0));
+ acctMgr.addAccountForUser(1, new Account("test@test.com", "com.test"));
+ acctMgr.addAccountForUser(2, mFragment.mAccount);
+
mFragment.finishIfAccountMissing();
verify(mFragment, never()).finish();
}
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
index 672baaa..0681c82 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
@@ -24,6 +24,7 @@
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AuthenticatorDescription;
+import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SyncAdapterType;
@@ -43,7 +44,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
@@ -54,24 +55,24 @@
@Mock(answer = RETURNS_DEEP_STUBS)
private AccountManager mAccountManager;
- private Context mContext;
+ private Activity mActivity;
private AccountSyncPreferenceController mController;
private Preference mPreference;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application;
+ mActivity = Robolectric.setupActivity(Activity.class);
ShadowApplication.getInstance().setSystemService(Context.ACCOUNT_SERVICE, mAccountManager);
when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(
new AuthenticatorDescription[0]);
when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(new Account[0]);
- mPreference = new Preference(mContext);
+ mPreference = new Preference(mActivity);
mPreference.setKey("account_sync");
- mController = new AccountSyncPreferenceController(mContext);
+ mController = new AccountSyncPreferenceController(mActivity);
mController.init(new Account("acct1", "type1"), new UserHandle(3));
}
@@ -102,7 +103,7 @@
mController.updateSummary(mPreference);
assertThat(mPreference.getSummary())
- .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+ .isEqualTo(mActivity.getString(R.string.account_sync_summary_all_off));
}
@Test
@@ -115,7 +116,7 @@
mController.updateSummary(mPreference);
assertThat(mPreference.getSummary())
- .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+ .isEqualTo(mActivity.getString(R.string.account_sync_summary_all_off));
}
@Test
@@ -129,7 +130,7 @@
mController.updateSummary(mPreference);
assertThat(mPreference.getSummary())
- .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+ .isEqualTo(mActivity.getString(R.string.account_sync_summary_all_off));
}
@Test
@@ -144,7 +145,7 @@
mController.updateSummary(mPreference);
assertThat(mPreference.getSummary())
- .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+ .isEqualTo(mActivity.getString(R.string.account_sync_summary_all_off));
}
@Test
@@ -157,7 +158,7 @@
mController.updateSummary(mPreference);
assertThat(mPreference.getSummary())
- .isEqualTo(mContext.getString(R.string.account_sync_summary_all_on));
+ .isEqualTo(mActivity.getString(R.string.account_sync_summary_all_on));
}
@Test
@@ -179,6 +180,6 @@
mController.updateSummary(mPreference);
assertThat(mPreference.getSummary())
- .isEqualTo(mContext.getString(R.string.account_sync_summary_some_on, 3, 4));
+ .isEqualTo(mActivity.getString(R.string.account_sync_summary_some_on, 3, 4));
}
}
diff --git a/tests/robotests/src/com/android/settings/accounts/AvatarViewMixinTest.java b/tests/robotests/src/com/android/settings/accounts/AvatarViewMixinTest.java
new file mode 100644
index 0000000..039d2e2
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accounts/AvatarViewMixinTest.java
@@ -0,0 +1,140 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.accounts;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.accounts.Account;
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.ProviderInfo;
+import android.content.pm.ResolveInfo;
+import android.widget.ImageView;
+
+import com.android.settings.homepage.SettingsHomepageActivity;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.android.controller.ActivityController;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowPackageManager;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class AvatarViewMixinTest {
+ private static final String DUMMY_ACCOUNT = "test@domain.com";
+ private static final String DUMMY_DOMAIN = "domain.com";
+ private static final String DUMMY_AUTHORITY = "authority.domain.com";
+
+ private Context mContext;
+ private ImageView mImageView;
+ private ActivityController mController;
+ private SettingsHomepageActivity mActivity;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+ mImageView = new ImageView(mContext);
+ mController = Robolectric.buildActivity(SettingsHomepageActivity.class).create();
+ mActivity = (SettingsHomepageActivity) mController.get();
+ }
+
+ @Test
+ public void hasAccount_useDefaultAccountData_returnFalse() {
+ final AvatarViewMixin avatarViewMixin = new AvatarViewMixin(mActivity, mImageView);
+ assertThat(avatarViewMixin.hasAccount()).isFalse();
+ }
+
+ @Test
+ @Config(shadows = ShadowAccountFeatureProviderImpl.class)
+ public void hasAccount_useShadowAccountData_returnTrue() {
+ final AvatarViewMixin avatarViewMixin = new AvatarViewMixin(mActivity, mImageView);
+ assertThat(avatarViewMixin.hasAccount()).isTrue();
+ }
+
+ @Test
+ public void onStart_configDisabled_doNothing() {
+ final AvatarViewMixin mixin = spy(new AvatarViewMixin(mActivity, mImageView));
+ mixin.onStart();
+
+ verify(mixin, never()).hasAccount();
+ }
+
+ @Test
+ @Config(qualifiers = "mcc999")
+ public void onStart_useMockAvatarViewMixin_shouldBeExecuted() {
+ final AvatarViewMixin mockAvatar = spy(new AvatarViewMixin(mActivity, mImageView));
+
+ mActivity.getLifecycle().addObserver(mockAvatar);
+ mController.start();
+
+ verify(mockAvatar).hasAccount();
+ }
+
+ @Test
+ public void queryProviderAuthority_useShadowPackagteManager_returnNull() {
+ final AvatarViewMixin avatarViewMixin = new AvatarViewMixin(mActivity, mImageView);
+
+ assertThat(avatarViewMixin.queryProviderAuthority()).isNull();
+ }
+
+ @Test
+ public void queryProviderAuthority_useNewShadowPackagteManager_returnAuthority() {
+ final AvatarViewMixin avatarViewMixin = new AvatarViewMixin(mActivity, mImageView);
+ ShadowPackageManager shadowPackageManager = Shadow.extract(mContext.getPackageManager());
+ final PackageInfo accountProvider = new PackageInfo();
+ accountProvider.packageName = "test.pkg";
+ accountProvider.applicationInfo = new ApplicationInfo();
+ accountProvider.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
+ accountProvider.applicationInfo.packageName = accountProvider.packageName;
+ accountProvider.providers = new ProviderInfo[1];
+ accountProvider.providers[0] = new ProviderInfo();
+ accountProvider.providers[0].authority = DUMMY_AUTHORITY;
+ accountProvider.providers[0].packageName = accountProvider.packageName;
+ accountProvider.providers[0].name = "test.class";
+ accountProvider.providers[0].applicationInfo = accountProvider.applicationInfo;
+
+ final ResolveInfo resolveInfo = new ResolveInfo();
+ resolveInfo.providerInfo = accountProvider.providers[0];
+ shadowPackageManager.addResolveInfoForIntent(AvatarViewMixin.INTENT_GET_ACCOUNT_DATA,
+ resolveInfo);
+ assertThat(avatarViewMixin.queryProviderAuthority()).isEqualTo(DUMMY_AUTHORITY);
+ }
+
+ @Implements(value = AccountFeatureProviderImpl.class)
+ public static class ShadowAccountFeatureProviderImpl {
+
+ @Implementation
+ public Account[] getAccounts(Context context) {
+ Account[] accounts = {new Account(DUMMY_ACCOUNT, DUMMY_DOMAIN)};
+ return accounts;
+ }
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java
index 22c2cdb..241765e 100644
--- a/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java
@@ -76,7 +76,7 @@
@After
public void tearDown() {
ShadowContentResolver.reset();
- ShadowAccountManager.resetAuthenticator();
+ ShadowAccountManager.reset();
ShadowRestrictedLockUtilsInternal.clearDisabledTypes();
}
diff --git a/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java
index 623a76e..9e476bd 100644
--- a/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java
@@ -25,6 +25,7 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ResolveInfo;
@@ -45,6 +46,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
@@ -69,7 +71,7 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mController = new EmergencyInfoPreferenceController(mContext);
- mPreference = new Preference(RuntimeEnvironment.application);
+ mPreference = new Preference(Robolectric.setupActivity(Activity.class));
mPreference.setKey(mController.getPreferenceKey());
when(mScreen.findPreference(mPreference.getKey())).thenReturn(mPreference);
}
@@ -136,16 +138,16 @@
mController.updateState(preference);
verify(preference).setSummary(
- mContext.getString(R.string.emergency_info_summary, "user 1"));
+ mContext.getString(R.string.emergency_info_summary, "user 1"));
}
@Test
public void handlePreferenceTreeClick_shouldStartActivity() {
final ShadowApplication application = ShadowApplication.getInstance();
- final Context context = RuntimeEnvironment.application;
- final Preference preference = new Preference(context);
+ final Activity activity = Robolectric.setupActivity(Activity.class);
+ final Preference preference = new Preference(activity);
preference.setKey("emergency_info");
- mController = new EmergencyInfoPreferenceController(context);
+ mController = new EmergencyInfoPreferenceController(activity);
mController.handlePreferenceTreeClick(preference);
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceControllerV2Test.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceControllerV2Test.java
index 5e9179f..708222e 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceControllerV2Test.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceControllerV2Test.java
@@ -43,12 +43,11 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.Mock;import android.net.INetworkStatsSession;
+import org.mockito.Mock;
import android.util.FeatureFlagUtils;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.util.ReflectionHelpers;
import androidx.loader.app.LoaderManager;
import androidx.preference.Preference;
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java
index a342e10..d3e00c3 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java
@@ -106,15 +106,12 @@
final TextView title = mHeader.findViewById(R.id.entity_header_title);
- final TextView summary = mHeader.findViewById(R.id.entity_header_summary);
mController.displayPreference(mScreen);
mController.refreshUi();
assertThat(title).isNotNull();
assertThat(title.getText()).isEqualTo(appLabel);
- assertThat(summary).isNotNull();
- assertThat(summary.getText()).isEqualTo(mContext.getString(R.string.installed));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
index a32c23c..733e22e 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
@@ -25,7 +25,6 @@
import android.content.Context;
import android.content.Intent;
-import android.os.UserManager;
import android.provider.Settings;
import androidx.preference.Preference;
@@ -36,7 +35,9 @@
import com.android.settings.applications.ProcessStatsDetail;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -44,11 +45,11 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowUserManager.class})
public class AppMemoryPreferenceControllerTest {
@Mock
@@ -67,8 +68,7 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
- UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
- Shadows.shadowOf(userManager).setIsAdminUser(true);
+ ShadowUserManager.getShadow().setIsAdminUser(true);
mController =
spy(new AppMemoryPreferenceController(mContext, mFragment, null /* lifecycle */));
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
@@ -77,6 +77,11 @@
when(mFragment.getActivity()).thenReturn(mActivity);
}
+ @After
+ public void tearDown() {
+ ShadowUserManager.getShadow().reset();
+ }
+
@Test
@Config(qualifiers = "mcc999")
public void getAvailabilityStatus_developmentSettingsEnabled_shouldReturnAvailable() {
@@ -84,7 +89,7 @@
Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
assertThat(mController.getAvailabilityStatus())
- .isEqualTo(BasePreferenceController.AVAILABLE);
+ .isEqualTo(BasePreferenceController.AVAILABLE);
}
@Test
@@ -93,7 +98,7 @@
Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
assertThat(mController.getAvailabilityStatus())
- .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+ .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
}
@Test
@@ -102,7 +107,7 @@
Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0);
assertThat(mController.getAvailabilityStatus())
- .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+ .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java
index de95a1c..9f0fd31 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java
@@ -18,7 +18,7 @@
import static com.google.common.truth.Truth.assertThat;
-import android.app.Application;
+import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ResolveInfo;
@@ -32,6 +32,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.shadows.ShadowPackageManager;
@@ -50,19 +51,19 @@
@Mock
private AppInfoDashboardFragment mParent;
- private Application mApplication;
private ShadowPackageManager mPackageManager;
private AppSettingPreferenceController mController;
private Preference mPreference;
+ private Activity mActivity;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mApplication = RuntimeEnvironment.application;
- mPackageManager = Shadows.shadowOf(mApplication.getPackageManager());
- mController = new AppSettingPreferenceController(mApplication, "test_key");
+ mActivity = Robolectric.setupActivity(Activity.class);
+ mPackageManager = Shadows.shadowOf(RuntimeEnvironment.application.getPackageManager());
+ mController = new AppSettingPreferenceController(mActivity, "test_key");
mController.setPackageName(TEST_PKG_NAME).setParentFragment(mParent);
- mPreference = new Preference(mApplication);
+ mPreference = new Preference(mActivity);
mPreference.setKey(mController.getPreferenceKey());
}
@@ -108,7 +109,7 @@
mPackageManager.addResolveInfoForIntent(RESOLVED_INTENT, info);
assertThat(mController.handlePreferenceTreeClick(mPreference)).isTrue();
- assertThat(Shadows.shadowOf(mApplication).getNextStartedActivity().getComponent())
+ assertThat(Shadows.shadowOf(mActivity).getNextStartedActivity().getComponent())
.isEqualTo(TEST_INTENT.getComponent());
}
}
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
index f41ccf8..da1c6b4 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
@@ -23,11 +23,11 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.Activity;
import android.content.Context;
import android.os.UserManager;
import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
@@ -39,7 +39,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
@RunWith(SettingsRobolectricTestRunner.class)
public class DefaultAppShortcutPreferenceControllerBaseTest {
@@ -49,19 +49,17 @@
@Mock
private AppInfoDashboardFragment mFragment;
@Mock
- private PreferenceScreen mScreen;
- @Mock
private Preference mPreference;
- private Context mContext;
+ private Activity mActivity;
private TestPreferenceController mController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
- mController = new TestPreferenceController(mContext, mFragment);
+ mActivity = spy(Robolectric.setupActivity(Activity.class));
+ when(mActivity.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+ mController = new TestPreferenceController(mActivity, mFragment);
final String key = mController.getPreferenceKey();
when(mPreference.getKey()).thenReturn(key);
}
@@ -95,7 +93,7 @@
mController.isDefault = true;
mController.updateState(mPreference);
- String yesString = mContext.getString(R.string.yes);
+ String yesString = mActivity.getString(R.string.yes);
verify(mPreference).setSummary(yesString);
}
@@ -105,7 +103,7 @@
mController.updateState(mPreference);
- String noString = mContext.getString(R.string.no);
+ String noString = mActivity.getString(R.string.no);
verify(mPreference).setSummary(noString);
}
@@ -113,7 +111,7 @@
public void handlePreferenceTreeClick_shouldStartDefaultAppSettings() {
mController.handlePreferenceTreeClick(mPreference);
- verify(mContext).startActivity(argThat(intent -> intent != null
+ verify(mActivity).startActivity(argThat(intent -> intent != null
&& intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT).equals(
DefaultAppSettings.class.getName())
&& intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java
index f6abb5b..f4571ce 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java
@@ -18,8 +18,8 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.argThat;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.argThat;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@@ -66,8 +66,8 @@
public void hasAppCapability_hasBrowserCapability_shouldReturnTrue() {
List<ResolveInfo> resolveInfos = new ArrayList<>();
resolveInfos.add(new ResolveInfo());
- when(mPackageManager.queryIntentActivities(argThat(intent-> intent != null
- && intent.getCategories().contains(Intent.CATEGORY_BROWSABLE)), anyInt()))
+ when(mPackageManager.queryIntentActivitiesAsUser(argThat(intent-> intent != null
+ && intent.getCategories().contains(Intent.CATEGORY_BROWSABLE)), anyInt(), anyInt()))
.thenReturn(resolveInfos);
assertThat(mController.hasAppCapability()).isTrue();
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DrawOverlayDetailsTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DrawOverlayDetailsTest.java
index d867b6f..1b25286 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DrawOverlayDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DrawOverlayDetailsTest.java
@@ -16,7 +16,7 @@
package com.android.settings.applications.appinfo;
-import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.eq;
@@ -91,7 +91,7 @@
when(mWindow.getAttributes()).thenReturn(layoutParams);
mFragment.onResume();
- verify(mWindow).addPrivateFlags(PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+ verify(mWindow).addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
mFragment.onPause();
@@ -99,6 +99,6 @@
ArgumentCaptor<LayoutParams> paramCaptor = ArgumentCaptor.forClass(LayoutParams.class);
verify(mWindow).setAttributes(paramCaptor.capture());
assertEquals(0,
- paramCaptor.getValue().privateFlags & PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+ paramCaptor.getValue().privateFlags & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
}
}
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java
index e625eee..d3a90da 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java
@@ -17,6 +17,7 @@
package com.android.settings.applications.appinfo;
import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.doAnswer;
@@ -29,12 +30,14 @@
import android.content.pm.PackageInfo;
import android.os.UserHandle;
import android.os.UserManager;
+
import com.android.settings.applications.AppStateInstallAppsBridge;
import com.android.settings.applications.AppStateInstallAppsBridge.InstallAppsState;
-import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.RestrictedPreferenceHelper;
import com.android.settingslib.RestrictedSwitchPreference;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -135,7 +138,7 @@
assertThat(fragment.refreshUi()).isTrue();
// Assertions
- assertThat(shadowUserManager.hasUserRestriction(
+ assertThat(userManager.hasUserRestriction(
UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,
UserHandle.of(UserHandle.myUserId()))).isTrue();
assertThat(mSwitchPref.isDisabledByAdmin()).isTrue();
@@ -174,7 +177,7 @@
assertThat(fragment.refreshUi()).isTrue();
// Assertions
- assertThat(shadowUserManager.hasUserRestriction(
+ assertThat(userManager.hasUserRestriction(
UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY,
UserHandle.of(UserHandle.myUserId()))).isTrue();
assertThat(mSwitchPref.isDisabledByAdmin()).isTrue();
@@ -215,10 +218,10 @@
assertThat(fragment.refreshUi()).isTrue();
// Assertions
- assertThat(shadowUserManager.hasUserRestriction(
+ assertThat(userManager.hasUserRestriction(
UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY,
UserHandle.of(UserHandle.myUserId()))).isTrue();
- assertThat(shadowUserManager.hasUserRestriction(
+ assertThat(userManager.hasUserRestriction(
UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,
UserHandle.of(UserHandle.myUserId()))).isTrue();
assertThat(mSwitchPref.isDisabledByAdmin()).isTrue();
diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceControllerTest.java
index 4a482d0..cd3a426 100644
--- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultBrowserPreferenceControllerTest.java
@@ -34,6 +34,7 @@
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
+import android.content.res.Resources;
import android.os.UserManager;
import androidx.preference.Preference;
@@ -131,6 +132,16 @@
}
@Test
+ public void getDefaultApp_shouldGetApplicationInfoAsUser() throws NameNotFoundException {
+ final String PACKAGE_NAME = "com.test.package";
+ when(mPackageManager.getDefaultBrowserPackageNameAsUser(anyInt())).thenReturn(PACKAGE_NAME);
+
+ mController.getDefaultAppInfo();
+
+ verify(mPackageManager).getApplicationInfoAsUser(eq(PACKAGE_NAME), anyInt(), anyInt());
+ }
+
+ @Test
public void isBrowserDefault_onlyApp_shouldReturnTrue() {
when(mPackageManager.getDefaultBrowserPackageNameAsUser(anyInt())).thenReturn(null);
final List<ResolveInfo> resolveInfos = new ArrayList<>();
@@ -173,6 +184,33 @@
any(Intent.class), eq(0) /* flags */, eq(0) /* userId */);
}
+ @Test
+ public void getOnlyAppIcon_shouldGetApplicationInfoAsUser() throws NameNotFoundException {
+ final List<ResolveInfo> resolveInfos = new ArrayList<>();
+ final String PACKAGE_NAME = "com.test.package";
+ resolveInfos.add(createResolveInfo(PACKAGE_NAME));
+ when(mPackageManager.queryIntentActivitiesAsUser(any(Intent.class), anyInt(), anyInt()))
+ .thenReturn(resolveInfos);
+ when(mContext.getPackageManager()).thenReturn(mPackageManager);
+ when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
+ when(mContext.getResources()).thenReturn(mock(Resources.class));
+
+ mController.getOnlyAppIcon();
+
+ verify(mPackageManager).getApplicationInfoAsUser(
+ eq(PACKAGE_NAME), eq(0) /* flags */, eq(0) /* userId */);
+ }
+
+ @Test
+ public void hasBrowserPreference_shouldQueryIntentActivitiesAsUser() {
+ when(mContext.getPackageManager()).thenReturn(mPackageManager);
+
+ mController.hasBrowserPreference("com.test.package", mContext, 0 /* userId */);
+
+ verify(mPackageManager).queryIntentActivitiesAsUser(
+ any(Intent.class), eq(0) /* flags */, eq(0) /* userId */);
+ }
+
private ResolveInfo createResolveInfo(String packageName) {
final ResolveInfo info = new ResolveInfo();
info.handleAllWebDataURI = true;
diff --git a/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppAccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppAccountPreferenceControllerTest.java
index cb62800..f09e400 100644
--- a/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppAccountPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppAccountPreferenceControllerTest.java
@@ -62,13 +62,13 @@
mContext = spy(RuntimeEnvironment.application);
when(mContext.getPackageManager()).thenReturn(mPackageManager);
mContentResolver = mContext.getContentResolver();
- mEnableEphemeralFeature = Settings.Secure.getInt(mContentResolver,
+ mEnableEphemeralFeature = Settings.Global.getInt(mContentResolver,
ENABLE_EPHEMERAL_FEATURE, 1);
}
@After
public void tearDown() {
- Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE,
+ Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE,
mEnableEphemeralFeature);
}
@@ -81,10 +81,10 @@
}
@Test
- public void testGetAvailabilityStatus_enableWebActiions() {
+ public void testGetAvailabilityStatus_enableWebActions() {
when(mPackageManager.getInstantAppResolverSettingsComponent()).thenReturn(mComponentName);
mController = new InstantAppAccountPreferenceController(mContext, PREF_KEY);
- Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 1);
+ Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 1);
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
@@ -93,7 +93,7 @@
public void testGetAvailabilityStatus_disableWebActions() {
when(mPackageManager.getInstantAppResolverSettingsComponent()).thenReturn(mComponentName);
mController = new InstantAppAccountPreferenceController(mContext, PREF_KEY);
- Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 0);
+ Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 0);
assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
}
diff --git a/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceControllerTest.java
index 6a1222d..b4ff2fa 100644
--- a/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/managedomainurls/InstantAppWebActionPreferenceControllerTest.java
@@ -57,26 +57,26 @@
mContentResolver = mContext.getContentResolver();
mController = new InstantAppWebActionPreferenceController(mContext, PREF_KEY);
mSwitchPreference = new SwitchPreference(mContext);
- mEnableEphemeralFeature = Settings.Secure.getInt(mContentResolver,
+ mEnableEphemeralFeature = Settings.Global.getInt(mContentResolver,
ENABLE_EPHEMERAL_FEATURE, 1);
}
@After
public void tearDown() {
- Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE,
+ Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE,
mEnableEphemeralFeature);
}
@Test
public void testGetAvailabilityStatus_enableWebActions() {
- Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 1);
+ Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 1);
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
@Test
public void testGetAvailabilityStatus_disableWebActions() {
- Settings.Secure.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 0);
+ Settings.Global.putInt(mContentResolver, ENABLE_EPHEMERAL_FEATURE, 0);
assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
}
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
index c01f688..fb50b3c 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
@@ -19,18 +19,13 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Mockito.verify;
-import static org.robolectric.RuntimeEnvironment.application;
import android.content.Intent;
import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.FingerprintManager.EnrollmentCallback;
-import android.media.AudioAttributes;
import android.os.CancellationSignal;
-import android.os.VibrationEffect;
-import android.os.Vibrator;
import android.widget.TextView;
import com.android.settings.R;
@@ -39,7 +34,7 @@
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settings.testutils.shadow.ShadowVibrator;
+
import org.junit.After;
import org.junit.Before;
@@ -50,15 +45,11 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
-import org.robolectric.shadow.api.Shadow;
-
-import java.util.concurrent.TimeUnit;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {
SettingsShadowResourcesImpl.class,
- ShadowUtils.class,
- ShadowVibrator.class})
+ ShadowUtils.class})
public class FingerprintEnrollEnrollingTest {
@Mock
@@ -70,7 +61,6 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
ShadowUtils.setFingerprintManager(mFingerprintManager);
- ShadowVibrator.addToServiceMap();
FakeFeatureFactory.setupForTest();
mActivity = Robolectric.buildActivity(
@@ -84,11 +74,10 @@
@After
public void tearDown() {
ShadowUtils.reset();
- ShadowVibrator.reset();
}
@Test
- public void fingerprintEnrollHelp_shouldShowHelpTextAndVibrate() {
+ public void fingerprintEnrollHelp_shouldShowHelpText() {
EnrollmentCallback enrollmentCallback = verifyAndCaptureEnrollmentCallback();
enrollmentCallback.onEnrollmentProgress(123);
@@ -98,17 +87,6 @@
TextView errorText = mActivity.findViewById(R.id.error_text);
assertThat(errorText.getText()).isEqualTo("test enrollment help");
-
- Robolectric.getForegroundThreadScheduler().advanceBy(2, TimeUnit.MILLISECONDS);
-
- ShadowVibrator shadowVibrator =
- Shadow.extract(application.getSystemService(Vibrator.class));
- verify(shadowVibrator.delegate).vibrate(
- anyInt(),
- nullable(String.class),
- any(VibrationEffect.class),
- nullable(String.class),
- nullable(AudioAttributes.class));
}
private EnrollmentCallback verifyAndCaptureEnrollmentCallback() {
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
index 6689518..aed1ea9 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
@@ -73,7 +73,6 @@
Shadows.shadowOf(application.getPackageManager())
.setSystemFeature(PackageManager.FEATURE_FINGERPRINT, true);
- ShadowFingerprintManager.addToServiceMap();
FakeFeatureFactory.setupForTest();
@@ -86,7 +85,6 @@
@After
public void tearDown() {
ShadowStorageManager.reset();
- ShadowFingerprintManager.reset();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/bluetooth/AlwaysDiscoverableTest.java b/tests/robotests/src/com/android/settings/bluetooth/AlwaysDiscoverableTest.java
index 446b71c..0083478 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/AlwaysDiscoverableTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/AlwaysDiscoverableTest.java
@@ -26,18 +26,14 @@
import android.content.Intent;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadow.api.Shadow;
@RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = {ShadowBluetoothAdapter.class})
public class AlwaysDiscoverableTest {
@Mock
@@ -45,14 +41,12 @@
private AlwaysDiscoverable mAlwaysDiscoverable;
private BluetoothAdapter mBluetoothAdapter;
- private ShadowBluetoothAdapter mShadowBluetoothAdapter;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mAlwaysDiscoverable = new AlwaysDiscoverable(mContext);
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
- mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
}
@Test
@@ -82,7 +76,7 @@
@Test
public void startSetsModeAndRegistersReceiver() {
- mShadowBluetoothAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_NONE);
+ mBluetoothAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_NONE);
mAlwaysDiscoverable.start();
assertThat(mBluetoothAdapter.getScanMode())
.isEqualTo(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE);
@@ -110,7 +104,7 @@
}
private void sendScanModeChangedIntent(int newMode, int previousMode) {
- mShadowBluetoothAdapter.setScanMode(newMode);
+ mBluetoothAdapter.setScanMode(newMode);
Intent intent = new Intent(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED);
intent.putExtra(BluetoothAdapter.EXTRA_SCAN_MODE, newMode);
intent.putExtra(BluetoothAdapter.EXTRA_PREVIOUS_SCAN_MODE, previousMode);
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java
index 3f19ccb..0430e0f 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java
@@ -72,7 +72,7 @@
FakeFeatureFactory.setupForTest();
ShadowEntityHeaderController.setUseMock(mHeaderController);
when(mBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager);
- when(mCachedDeviceManager.getHearingAidPairDeviceSummary(mCachedDevice)).thenReturn("abc");
+ when(mCachedDeviceManager.getSubDeviceSummary(mCachedDevice)).thenReturn("abc");
mController =
new BluetoothDetailsHeaderController(mContext, mFragment, mCachedDevice, mLifecycle,
mBluetoothManager);
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
index d129944..12c7193 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
@@ -38,6 +38,7 @@
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.testutils.DrawableTestHelper;
import org.junit.Before;
import org.junit.Test;
@@ -79,7 +80,7 @@
mPreference.onClicked();
verify(mMetricsFeatureProvider)
- .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_DISCONNECT);
+ .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_DISCONNECT);
}
@Test
@@ -90,7 +91,7 @@
mPreference.onClicked();
verify(mMetricsFeatureProvider)
- .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_CONNECT);
+ .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_CONNECT);
}
@Test
@@ -103,9 +104,10 @@
mPreference.onClicked();
verify(mMetricsFeatureProvider)
- .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
+ .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
verify(mMetricsFeatureProvider, never())
- .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES);
+ .action(mContext,
+ MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES);
}
@Test
@@ -118,9 +120,10 @@
mPreference.onClicked();
verify(mMetricsFeatureProvider)
- .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
+ .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR);
verify(mMetricsFeatureProvider)
- .action(mContext, MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES);
+ .action(mContext,
+ MetricsEvent.ACTION_SETTINGS_BLUETOOTH_PAIR_DEVICES_WITHOUT_NAMES);
}
@Test
@@ -164,13 +167,12 @@
@Test
public void imagingDeviceIcon_isICSettingsPrint() {
when(mCachedBluetoothDevice.getBatteryLevel())
- .thenReturn(BluetoothDevice.BATTERY_LEVEL_UNKNOWN);
+ .thenReturn(BluetoothDevice.BATTERY_LEVEL_UNKNOWN);
when(mCachedBluetoothDevice.getBtClass())
- .thenReturn(new BluetoothClass(BluetoothClass.Device.Major.IMAGING));
+ .thenReturn(new BluetoothClass(BluetoothClass.Device.Major.IMAGING));
mPreference.onDeviceAttributesChanged();
- assertThat(mPreference.getIcon()).isEqualTo(
- mContext.getDrawable(R.drawable.ic_settings_print));
+ DrawableTestHelper.assertDrawableResId(mPreference.getIcon(), R.drawable.ic_settings_print);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
index 4ede947..c93d965 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
@@ -63,8 +63,12 @@
@Mock
private CachedBluetoothDevice mCachedBluetoothDevice;
@Mock
+ private CachedBluetoothDevice mSubCachedBluetoothDevice;
+ @Mock
private BluetoothDevice mBluetoothDevice;
@Mock
+ private BluetoothDevice mSubBluetoothDevice;
+ @Mock
private SettingsActivity mSettingsActivity;
@Mock
private LocalBluetoothManager mLocalManager;
@@ -86,6 +90,7 @@
mCachedDevices.add(mCachedBluetoothDevice);
doReturn(mContext).when(mDashboardFragment).getContext();
when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
+ when(mSubCachedBluetoothDevice.getDevice()).thenReturn(mSubBluetoothDevice);
when(mLocalManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager);
when(mCachedDeviceManager.getCachedDevicesCopy()).thenReturn(mCachedDevices);
@@ -147,6 +152,20 @@
}
@Test
+ public void testRemovePreference_subDeviceExist_removePreference() {
+ when(mCachedBluetoothDevice.getSubDevice()).thenReturn(mSubCachedBluetoothDevice);
+ mBluetoothDeviceUpdater.mPreferenceMap.put(mSubBluetoothDevice, mPreference);
+
+ assertThat(mBluetoothDeviceUpdater.mPreferenceMap.
+ containsKey(mSubBluetoothDevice)).isTrue();
+ mBluetoothDeviceUpdater.removePreference(mCachedBluetoothDevice);
+
+ verify(mDevicePreferenceCallback).onDeviceRemoved(mPreference);
+ assertThat(mBluetoothDeviceUpdater.mPreferenceMap.
+ containsKey(mSubBluetoothDevice)).isFalse();
+ }
+
+ @Test
public void testDeviceProfilesListener_click_startBluetoothDeviceDetailPage() {
doReturn(mSettingsActivity).when(mDashboardFragment).getContext();
@@ -161,7 +180,7 @@
@Test
public void isDeviceConnected_deviceConnected() {
doReturn(BluetoothDevice.BOND_BONDED).when(mBluetoothDevice).getBondState();
- doReturn(true).when(mCachedBluetoothDevice).isConnected();
+ doReturn(true).when(mBluetoothDevice).isConnected();
assertThat(mBluetoothDeviceUpdater.isDeviceConnected(mCachedBluetoothDevice)).isTrue();
}
@@ -169,7 +188,7 @@
@Test
public void isDeviceConnected_deviceNotConnected() {
doReturn(BluetoothDevice.BOND_BONDED).when(mBluetoothDevice).getBondState();
- doReturn(false).when(mCachedBluetoothDevice).isConnected();
+ doReturn(false).when(mBluetoothDevice).isConnected();
assertThat(mBluetoothDeviceUpdater.isDeviceConnected(mCachedBluetoothDevice)).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java
index be86241..27ea6be 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java
@@ -32,6 +32,7 @@
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.testutils.DrawableTestHelper;
import org.junit.Before;
import org.junit.Test;
@@ -72,10 +73,10 @@
Preference pref = mController.createBluetoothPairingPreference(ORDER);
assertThat(pref.getKey()).isEqualTo(BluetoothPairingPreferenceController.KEY_PAIRING);
- assertThat(pref.getIcon()).isEqualTo(mContext.getDrawable(R.drawable.ic_menu_add));
+ DrawableTestHelper.assertDrawableResId(pref.getIcon(), R.drawable.ic_menu_add);
assertThat(pref.getOrder()).isEqualTo(ORDER);
assertThat(pref.getTitle())
- .isEqualTo(mContext.getString(R.string.bluetooth_pairing_pref_title));
+ .isEqualTo(mContext.getString(R.string.bluetooth_pairing_pref_title));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSliceBuilderTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSliceBuilderTest.java
index faab3bd..369d222 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSliceBuilderTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSliceBuilderTest.java
@@ -19,8 +19,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.spy;
-
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.content.Intent;
@@ -56,7 +54,7 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
+ mContext = RuntimeEnvironment.application;
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
diff --git a/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java
index 4d4a711..e25e4b2 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java
@@ -77,7 +77,7 @@
@Test
public void update_filterMatch_addPreference() {
doReturn(BluetoothDevice.BOND_BONDED).when(mBluetoothDevice).getBondState();
- doReturn(false).when(mCachedBluetoothDevice).isConnected();
+ doReturn(false).when(mBluetoothDevice).isConnected();
mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
@@ -87,7 +87,7 @@
@Test
public void update_filterNotMatch_removePreference() {
doReturn(BluetoothDevice.BOND_NONE).when(mBluetoothDevice).getBondState();
- doReturn(true).when(mCachedBluetoothDevice).isConnected();
+ doReturn(true).when(mBluetoothDevice).isConnected();
mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
@@ -96,7 +96,7 @@
@Test
public void onProfileConnectionStateChanged_deviceConnected_removePreference() {
- when(mCachedBluetoothDevice.isConnected()).thenReturn(true);
+ when(mBluetoothDevice.isConnected()).thenReturn(true);
mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
BluetoothProfile.STATE_CONNECTED, BluetoothProfile.A2DP);
@@ -106,7 +106,7 @@
@Test
public void onProfileConnectionStateChanged_deviceDisconnected_addPreference() {
- when(mCachedBluetoothDevice.isConnected()).thenReturn(false);
+ when(mBluetoothDevice.isConnected()).thenReturn(false);
mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
BluetoothProfile.STATE_DISCONNECTED, BluetoothProfile.A2DP);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/BluetoothOnWhileDrivingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/BluetoothOnWhileDrivingPreferenceControllerTest.java
deleted file mode 100644
index 83763bb..0000000
--- a/tests/robotests/src/com/android/settings/connecteddevice/BluetoothOnWhileDrivingPreferenceControllerTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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
- */
-package com.android.settings.connecteddevice;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-import android.provider.Settings;
-import android.provider.Settings.Secure;
-import android.util.FeatureFlagUtils;
-
-import com.android.settings.core.BasePreferenceController;
-import com.android.settings.core.FeatureFlags;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public class BluetoothOnWhileDrivingPreferenceControllerTest {
-
- private BluetoothOnWhileDrivingPreferenceController mController;
- private Context mContext;
-
- @Before
- public void setUp() {
- mContext = RuntimeEnvironment.application;
- mController = new BluetoothOnWhileDrivingPreferenceController(mContext);
- }
-
- @Test
- public void getAvailabilityStatus_onWhenEnabled() {
- FeatureFlagUtils.setEnabled(mContext, FeatureFlags.BLUETOOTH_WHILE_DRIVING, true);
-
- assertThat(mController.getAvailabilityStatus())
- .isEqualTo(BasePreferenceController.AVAILABLE);
- }
-
- @Test
- public void getAvailabilityStatus_offWhenDisabled() {
- assertThat(mController.getAvailabilityStatus())
- .isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
- }
-
- @Test
- public void setChecked_togglesSettingSecure() {
- mController.setChecked(true);
-
- final String name = Secure.BLUETOOTH_ON_WHILE_DRIVING;
- assertThat(Settings.Secure.getInt(mContext.getContentResolver(), name, 0)).isEqualTo(1);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceControllerTest.java
index bd6f508..913e7d9 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/DiscoverableFooterPreferenceControllerTest.java
@@ -49,7 +49,6 @@
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
-import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowApplication;
import java.util.ArrayList;
@@ -75,7 +74,6 @@
private DiscoverableFooterPreferenceController mDiscoverableFooterPreferenceController;
private BroadcastReceiver mBluetoothChangedReceiver;
private ShadowApplication mShadowApplication;
- private ShadowBluetoothAdapter mShadowBluetoothAdapter;
@Before
public void setUp() {
@@ -91,7 +89,6 @@
mAlwaysDiscoverable);
mBluetoothChangedReceiver = mDiscoverableFooterPreferenceController
.mBluetoothChangedReceiver;
- mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
}
@Test
@@ -137,15 +134,15 @@
@Test
public void onBluetoothStateChanged_bluetoothOn_updateTitle() {
- mShadowBluetoothAdapter.setName(DEVICE_NAME);
+ BluetoothAdapter.getDefaultAdapter().setName(DEVICE_NAME);
sendBluetoothStateChangedIntent(BluetoothAdapter.STATE_ON);
assertThat(mPreference.getTitle()).isEqualTo(generateTitle(DEVICE_NAME));
}
@Test
- public void onBluetoothStateChanged_bluetoothOff_updateTitle(){
- mShadowBluetoothAdapter.setName(DEVICE_NAME);
+ public void onBluetoothStateChanged_bluetoothOff_updateTitle() {
+ BluetoothAdapter.getDefaultAdapter().setName(DEVICE_NAME);
sendBluetoothStateChangedIntent(BluetoothAdapter.STATE_OFF);
assertThat(mPreference.getTitle()).isEqualTo(generateTitle(null));
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java
index ad04e7e..643d6b2 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java
@@ -28,6 +28,7 @@
import com.android.settings.connecteddevice.DevicePreferenceCallback;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.testutils.DrawableTestHelper;
import org.junit.Before;
import org.junit.Test;
@@ -68,8 +69,8 @@
mDeviceUpdater.initUsbPreference(mContext);
assertThat(mDeviceUpdater.mUsbPreference.getTitle()).isEqualTo("USB");
- assertThat(mDeviceUpdater.mUsbPreference.getIcon())
- .isEqualTo(mContext.getDrawable(R.drawable.ic_usb));
+ DrawableTestHelper.assertDrawableResId(
+ mDeviceUpdater.mUsbPreference.getIcon(), R.drawable.ic_usb);
assertThat(mDeviceUpdater.mUsbPreference.isSelectable()).isTrue();
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
index f34446c..ec697ad 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
@@ -16,10 +16,12 @@
package com.android.settings.connecteddevice.usb;
+import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.graphics.drawable.Drawable;
import android.hardware.usb.UsbManager;
import android.hardware.usb.UsbPort;
@@ -34,12 +36,14 @@
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.testutils.DrawableTestHelper;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
+import org.mockito.ArgumentMatcher;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
@@ -100,7 +104,10 @@
mDetailsHeaderController.refresh(true, UsbManager.FUNCTION_NONE, UsbPort.POWER_ROLE_SINK,
UsbPort.DATA_ROLE_DEVICE);
verify(mHeaderController).setLabel(mContext.getString(R.string.usb_pref));
- verify(mHeaderController).setIcon(mContext.getDrawable(R.drawable.ic_usb));
+ verify(mHeaderController).setIcon(argThat((ArgumentMatcher<Drawable>) t -> {
+ DrawableTestHelper.assertDrawableResId(t, R.drawable.ic_usb);
+ return true;
+ }));
verify(mHeaderController).done(mActivity, true);
}
}
diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java b/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java
index c5a6bca..644f249 100644
--- a/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java
@@ -24,6 +24,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -56,7 +57,7 @@
// Precondition: no metrics feature
assertThat(fragment.getMetricsFeatureProvider()).isNull();
- fragment.onAttach(ShadowApplication.getInstance().getApplicationContext());
+ fragment.onAttach(RuntimeEnvironment.application);
// Verify: has metrics feature
assertThat(fragment.getMetricsFeatureProvider()).isNotNull();
diff --git a/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java b/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java
index 61ef390..d8fb65d 100644
--- a/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java
@@ -157,8 +157,7 @@
mCategoryByKeyMap.put(CATEGORY_HOMEPAGE, category);
// Sort their priorities
- mCategoryManager.sortCategories(ShadowApplication.getInstance().getApplicationContext(),
- mCategoryByKeyMap);
+ mCategoryManager.sortCategories(RuntimeEnvironment.application, mCategoryByKeyMap);
// Verify they are now sorted.
assertThat(category.getTile(0)).isSameAs(tile3);
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardAdapterTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardAdapterTest.java
deleted file mode 100644
index f544f09..0000000
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardAdapterTest.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * 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.
- */
-package com.android.settings.dashboard;
-
-import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_TITLE;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.pm.ActivityInfo;
-import android.content.res.Resources;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.Icon;
-import android.os.Bundle;
-import android.service.settings.suggestions.Suggestion;
-import android.util.DisplayMetrics;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.WindowManager;
-import android.widget.TextView;
-
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.settings.R;
-import com.android.settings.SettingsActivity;
-import com.android.settings.dashboard.suggestions.SuggestionAdapter;
-import com.android.settings.homepage.conditional.ConditionManager;
-import com.android.settings.homepage.conditional.ConditionalCard;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settings.testutils.shadow.SettingsShadowResources;
-import com.android.settings.widget.RoundedHomepageIcon;
-import com.android.settingslib.drawer.CategoryKey;
-import com.android.settingslib.drawer.Tile;
-import com.android.settingslib.utils.IconCache;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = SettingsShadowResources.SettingsShadowTheme.class)
-public class DashboardAdapterTest {
-
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private SettingsActivity mContext;
- @Mock
- private ConditionalCard mCondition;
- @Mock
- private Resources mResources;
- @Mock
- private WindowManager mWindowManager;
- @Mock
- private ConditionManager mConditionManager;
-
- private ActivityInfo mActivityInfo;
- private DashboardAdapter mDashboardAdapter;
- private List<ConditionalCard> mConditionList;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- FakeFeatureFactory.setupForTest();
- mActivityInfo = new ActivityInfo();
- mActivityInfo.packageName = "pkg";
- mActivityInfo.name = "class";
- mActivityInfo.metaData = new Bundle();
- mActivityInfo.metaData.putString(META_DATA_PREFERENCE_TITLE, "test-title");
-
- when(mContext.getSystemService(Context.WINDOW_SERVICE)).thenReturn(mWindowManager);
- when(mContext.getResources()).thenReturn(mResources);
- when(mResources.getQuantityString(any(int.class), any(int.class), any())).thenReturn("");
-
- mConditionList = new ArrayList<>();
- mConditionList.add(mCondition);
- mDashboardAdapter = new DashboardAdapter(mContext, null /* savedInstanceState */,
- mConditionManager, null /* suggestionControllerMixin */, null /* lifecycle */);
- }
-
- @Test
- public void onSuggestionClosed_notOnlySuggestion_updateSuggestionOnly() {
- final DashboardAdapter adapter =
- spy(new DashboardAdapter(mContext, null /* savedInstanceState */,
- mConditionManager,
- null /* suggestionControllerMixin */,
- null /* lifecycle */));
- final List<Suggestion> suggestions = makeSuggestions("pkg1", "pkg2", "pkg3");
- adapter.setSuggestions(suggestions);
-
- final RecyclerView data = mock(RecyclerView.class);
- when(data.getResources()).thenReturn(mResources);
- when(data.getContext()).thenReturn(mContext);
- when(mResources.getDisplayMetrics()).thenReturn(mock(DisplayMetrics.class));
- final View itemView = mock(View.class);
- when(itemView.findViewById(R.id.suggestion_list)).thenReturn(data);
- when(itemView.findViewById(android.R.id.summary)).thenReturn(mock(TextView.class));
- when(itemView.findViewById(android.R.id.title)).thenReturn(mock(TextView.class));
- final DashboardAdapter.SuggestionContainerHolder holder =
- new DashboardAdapter.SuggestionContainerHolder(itemView);
-
- adapter.onBindSuggestion(holder, 0);
-
- reset(adapter); // clear interactions tracking
-
- final Suggestion suggestionToRemove = suggestions.get(1);
- adapter.onSuggestionClosed(suggestionToRemove);
-
- assertThat(suggestions.size()).isEqualTo(2);
- assertThat(suggestions.contains(suggestionToRemove)).isFalse();
- verify(adapter).notifyDashboardDataChanged(any());
- }
-
- @Test
- public void onSuggestionClosed_onlySuggestion_updateDashboardData() {
- final DashboardAdapter adapter =
- spy(new DashboardAdapter(mContext, null /* savedInstanceState */,
- mConditionManager,
- null /* suggestionControllerMixin */, null /* lifecycle */));
- final List<Suggestion> suggestions = makeSuggestions("pkg1");
- adapter.setSuggestions(suggestions);
- final DashboardData dashboardData = adapter.mDashboardData;
- reset(adapter); // clear interactions tracking
-
- adapter.onSuggestionClosed(suggestions.get(0));
-
- assertThat(adapter.mDashboardData).isNotEqualTo(dashboardData);
- verify(adapter).notifyDashboardDataChanged(any());
- }
-
- @Test
- public void onSuggestionClosed_notInSuggestionList_shouldNotUpdateSuggestionList() {
- final DashboardAdapter adapter =
- spy(new DashboardAdapter(mContext, null /* savedInstanceState */,
- mConditionManager,
- null /* suggestionControllerMixin */, null /* lifecycle */));
- final List<Suggestion> suggestions = makeSuggestions("pkg1");
- adapter.setSuggestions(suggestions);
-
- reset(adapter); // clear interactions tracking
-
- adapter.onSuggestionClosed(mock(Suggestion.class));
-
- verify(adapter, never()).setSuggestions(any());
- }
-
- @Test
- public void onBindSuggestion_shouldSetSuggestionAdapterAndNoCrash() {
- mDashboardAdapter = new DashboardAdapter(mContext, null /* savedInstanceState */,
- mConditionManager, null /* suggestionControllerMixin */, null /* lifecycle */);
- final List<Suggestion> suggestions = makeSuggestions("pkg1");
-
- mDashboardAdapter.setSuggestions(suggestions);
-
- final RecyclerView data = mock(RecyclerView.class);
- when(data.getResources()).thenReturn(mResources);
- when(data.getContext()).thenReturn(mContext);
- when(mResources.getDisplayMetrics()).thenReturn(mock(DisplayMetrics.class));
- final View itemView = mock(View.class);
- when(itemView.findViewById(R.id.suggestion_list)).thenReturn(data);
- when(itemView.findViewById(android.R.id.summary)).thenReturn(mock(TextView.class));
- when(itemView.findViewById(android.R.id.title)).thenReturn(mock(TextView.class));
- final DashboardAdapter.SuggestionContainerHolder holder =
- new DashboardAdapter.SuggestionContainerHolder(itemView);
-
- mDashboardAdapter.onBindSuggestion(holder, 0);
-
- verify(data).setAdapter(any(SuggestionAdapter.class));
- // should not crash
- }
-
- @Test
- public void onBindTile_internalTile_shouldNotUseGenericBackgroundIcon() {
- final Context context = RuntimeEnvironment.application;
- final View view = LayoutInflater.from(context).inflate(R.layout.dashboard_tile, null);
- final DashboardAdapter.DashboardItemHolder holder =
- new DashboardAdapter.DashboardItemHolder(view);
- final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE));
- doReturn(Icon.createWithResource(context, R.drawable.ic_settings))
- .when(tile).getIcon(context);
- final IconCache iconCache = mock(IconCache.class);
- when(iconCache.getIcon(tile.getIcon(context)))
- .thenReturn(context.getDrawable(R.drawable.ic_settings));
-
- mDashboardAdapter = new DashboardAdapter(context, null /* savedInstanceState */,
- mConditionManager, null /* suggestionControllerMixin */, null /* lifecycle */);
- ReflectionHelpers.setField(mDashboardAdapter, "mCache", iconCache);
- mDashboardAdapter.onBindTile(holder, tile);
-
- verify(iconCache, never()).updateIcon(any(Icon.class), any(Drawable.class));
- }
-
- @Test
- public void onBindTile_externalTile_shouldUpdateIcon() {
- final Context context = spy(RuntimeEnvironment.application);
- final View view = LayoutInflater.from(context).inflate(R.layout.dashboard_tile, null);
- final DashboardAdapter.DashboardItemHolder holder =
- new DashboardAdapter.DashboardItemHolder(view);
- final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE));
- final Icon icon = Icon.createWithResource(context, R.drawable.ic_settings);
- doReturn(icon).when(tile).getIcon(context);
-
- final IconCache iconCache = new IconCache(context);
-
- mDashboardAdapter = new DashboardAdapter(context, null /* savedInstanceState */,
- mConditionManager,
- null /* suggestionControllerMixin */, null /* lifecycle */);
- ReflectionHelpers.setField(mDashboardAdapter, "mCache", iconCache);
-
- doReturn("another.package").when(context).getPackageName();
- mDashboardAdapter.onBindTile(holder, tile);
-
- assertThat(iconCache.getIcon(tile.getIcon(context)))
- .isInstanceOf(RoundedHomepageIcon.class);
- }
-
- @Test
- public void onBindTile_externalTile_usingRoundedHomepageIcon_shouldNotUpdateIcon() {
- final Context context = RuntimeEnvironment.application;
- final View view = LayoutInflater.from(context).inflate(R.layout.dashboard_tile, null);
- final DashboardAdapter.DashboardItemHolder holder =
- new DashboardAdapter.DashboardItemHolder(view);
- final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE));
- doReturn(mock(Icon.class)).when(tile).getIcon(context);
- when(tile.getIcon(context).getResPackage()).thenReturn("another.package");
-
- final IconCache iconCache = mock(IconCache.class);
- when(iconCache.getIcon(tile.getIcon(context))).thenReturn(mock(RoundedHomepageIcon.class));
-
- mDashboardAdapter = new DashboardAdapter(context, null /* savedInstanceState */,
- mConditionManager, null /* suggestionControllerMixin */, null /* lifecycle */);
- ReflectionHelpers.setField(mDashboardAdapter, "mCache", iconCache);
-
- mDashboardAdapter.onBindTile(holder, tile);
-
- verify(iconCache, never()).updateIcon(eq(tile.getIcon(context)),
- any(RoundedHomepageIcon.class));
- }
-
- private List<Suggestion> makeSuggestions(String... pkgNames) {
- final List<Suggestion> suggestions = new ArrayList<>();
- for (String pkgName : pkgNames) {
- final Suggestion suggestion = new Suggestion.Builder(pkgName)
- .setPendingIntent(mock(PendingIntent.class))
- .build();
- suggestions.add(suggestion);
- }
- return suggestions;
- }
-}
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardDataTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardDataTest.java
deleted file mode 100644
index 73b1734..0000000
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardDataTest.java
+++ /dev/null
@@ -1,417 +0,0 @@
-/*
- * Copyright (C) 2016 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.dashboard;
-
-import static com.android.settings.dashboard.DashboardData.STABLE_ID_CONDITION_CONTAINER;
-import static com.android.settings.dashboard.DashboardData.STABLE_ID_CONDITION_FOOTER;
-import static com.android.settings.dashboard.DashboardData.STABLE_ID_SUGGESTION_CONDITION_DIVIDER;
-import static com.android.settings.dashboard.DashboardData.STABLE_ID_SUGGESTION_CONTAINER;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import android.app.PendingIntent;
-import android.service.settings.suggestions.Suggestion;
-
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.DiffUtil;
-import androidx.recyclerview.widget.ListUpdateCallback;
-
-import com.android.settings.homepage.conditional.AirplaneModeConditionCard;
-import com.android.settings.homepage.conditional.ConditionalCard;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settingslib.drawer.CategoryKey;
-import com.android.settingslib.drawer.DashboardCategory;
-import com.android.settingslib.drawer.Tile;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public class DashboardDataTest {
-
- private static final String TEST_SUGGESTION_TITLE = "Use fingerprint";
- private static final int TEST_TILE_ID = 12345;
-
- private DashboardData mDashboardDataWithOneConditions;
- private DashboardData mDashboardDataWithTwoConditions;
- private DashboardData mDashboardDataWithNoItems;
- private DashboardCategory mDashboardCategory;
- @Mock
- private Tile mTestCategoryTile;
- @Mock
- private ConditionalCard mTestCondition;
- @Mock
- private ConditionalCard mSecondCondition; // condition used to test insert in DiffUtil
- private Suggestion mTestSuggestion;
-
- @Before
- public void SetUp() {
- MockitoAnnotations.initMocks(this);
-
- mDashboardCategory = new DashboardCategory(CategoryKey.CATEGORY_HOMEPAGE);
-
- // Build suggestions
- final List<Suggestion> suggestions = new ArrayList<>();
- mTestSuggestion = new Suggestion.Builder("pkg")
- .setTitle(TEST_SUGGESTION_TITLE)
- .setPendingIntent(mock(PendingIntent.class))
- .build();
- suggestions.add(mTestSuggestion);
-
- // Build oneItemConditions
- final List<ConditionalCard> oneItemConditions = new ArrayList<>();
- oneItemConditions.add(mTestCondition);
-
- // Build twoItemConditions
- final List<ConditionalCard> twoItemsConditions = new ArrayList<>();
- twoItemsConditions.add(mTestCondition);
- twoItemsConditions.add(mSecondCondition);
-
- // Build category
- when(mTestCategoryTile.getId()).thenReturn(TEST_TILE_ID);
-
- mDashboardCategory.addTile(mTestCategoryTile);
-
- // Build DashboardData
- mDashboardDataWithOneConditions = new DashboardData.Builder()
- .setConditions(oneItemConditions)
- .setCategory(mDashboardCategory)
- .setSuggestions(suggestions)
- .setConditionExpanded(true)
- .build();
-
- mDashboardDataWithTwoConditions = new DashboardData.Builder()
- .setConditions(twoItemsConditions)
- .setCategory(mDashboardCategory)
- .setSuggestions(suggestions)
- .setConditionExpanded(true)
- .build();
-
- mDashboardDataWithNoItems = new DashboardData.Builder()
- .setConditions(null)
- .setCategory(null)
- .setSuggestions(null)
- .build();
- }
-
- @Test
- public void testBuildItemsData_shouldSetstableId() {
- final List<DashboardData.Item> items = mDashboardDataWithOneConditions.getItemList();
-
- // suggestion, separator, condition, footer, 1 tile
- assertThat(items).hasSize(5);
-
- assertThat(items.get(0).id).isEqualTo(STABLE_ID_SUGGESTION_CONTAINER);
- assertThat(items.get(1).id).isEqualTo(STABLE_ID_SUGGESTION_CONDITION_DIVIDER);
- assertThat(items.get(2).id).isEqualTo(STABLE_ID_CONDITION_CONTAINER);
- assertThat(items.get(3).id).isEqualTo(STABLE_ID_CONDITION_FOOTER);
- assertThat(items.get(4).id).isEqualTo(TEST_TILE_ID);
- }
-
- @Test
- public void testBuildItemsData_containsAllData() {
- final Object[] expectedObjects = {
- mDashboardDataWithOneConditions.getSuggestions(),
- null /* divider */,
- mDashboardDataWithOneConditions.getConditions(),
- null /* footer */, mTestCategoryTile};
- final int expectedSize = expectedObjects.length;
-
- assertThat(mDashboardDataWithOneConditions.getItemList()).hasSize(expectedSize);
-
- for (int i = 0; i < expectedSize; i++) {
- final Object item = mDashboardDataWithOneConditions.getItemEntityByPosition(i);
- if (item instanceof List) {
- assertThat(item).isEqualTo(expectedObjects[i]);
- } else if (item instanceof DashboardData.ConditionHeaderData) {
- DashboardData.ConditionHeaderData i1 = (DashboardData.ConditionHeaderData) item;
- DashboardData.ConditionHeaderData i2 =
- (DashboardData.ConditionHeaderData) expectedObjects[i];
- assertThat(i1.title).isEqualTo(i2.title);
- assertThat(i1.conditionCount).isEqualTo(i2.conditionCount);
- } else {
- assertThat(item).isSameAs(expectedObjects[i]);
- }
- }
- }
-
- @Test
- public void testGetPositionByEntity_selfInstance_returnPositionFound() {
- final int position = mDashboardDataWithOneConditions
- .getPositionByEntity(mDashboardDataWithOneConditions.getConditions());
- assertThat(position).isNotEqualTo(DashboardData.POSITION_NOT_FOUND);
- }
-
- @Test
- public void testGetPositionByEntity_notExisted_returnNotFound() {
- final ConditionalCard condition = mock(AirplaneModeConditionCard.class);
- final int position = mDashboardDataWithOneConditions.getPositionByEntity(condition);
- assertThat(position).isEqualTo(DashboardData.POSITION_NOT_FOUND);
- }
-
- @Test
- public void testGetPositionByTile_selfInstance_returnPositionFound() {
- final int position = mDashboardDataWithOneConditions.getPositionByTile(mTestCategoryTile);
- assertThat(position).isNotEqualTo(DashboardData.POSITION_NOT_FOUND);
- }
-
- @Test
- public void testGetPositionByTile_equalTitle_returnPositionFound() {
- final Tile tile = mock(Tile.class);
- when(tile.getId()).thenReturn(TEST_TILE_ID);
-
- final int position = mDashboardDataWithOneConditions.getPositionByTile(tile);
-
- assertThat(position).isNotEqualTo(DashboardData.POSITION_NOT_FOUND);
- }
-
- @Test
- public void testGetPositionByTile_notExisted_returnNotFound() {
- final Tile tile = mock(Tile.class);
- when(tile.getId()).thenReturn(123);
- final int position = mDashboardDataWithOneConditions.getPositionByTile(tile);
- assertThat(position).isEqualTo(DashboardData.POSITION_NOT_FOUND);
- }
-
- @Test
- public void testDiffUtil_DataEqual_noResultData() {
- List<ListUpdateResult.ResultData> testResultData = new ArrayList<>();
- testDiffUtil(mDashboardDataWithOneConditions,
- mDashboardDataWithOneConditions, testResultData);
- }
-
- @Test
- public void testDiffUtil_InsertOneCondition_ResultDataOneChanged() {
- final List<ListUpdateResult.ResultData> testResultData = new ArrayList<>();
- // Item in position 3 is the condition container containing the list of conditions, which
- // gets 1 more item
- testResultData.add(new ListUpdateResult.ResultData(
- ListUpdateResult.ResultData.TYPE_OPERATION_CHANGE, 2, 1));
-
- testDiffUtil(mDashboardDataWithOneConditions,
- mDashboardDataWithTwoConditions, testResultData);
- }
-
- @Test
- public void testDiffUtil_RemoveOneSuggestion_causeItemRemoveAndChange() {
- final List<ListUpdateResult.ResultData> testResultData = new ArrayList<>();
- // removed suggestion and the divider
- testResultData.add(new ListUpdateResult.ResultData(
- ListUpdateResult.ResultData.TYPE_OPERATION_REMOVE, 0, 2));
- testResultData.add(new ListUpdateResult.ResultData(
- ListUpdateResult.ResultData.TYPE_OPERATION_CHANGE, 2, 1));
- // Build DashboardData
- final List<ConditionalCard> oneItemConditions = new ArrayList<>();
-
- oneItemConditions.add(mTestCondition);
- final List<Suggestion> suggestions = new ArrayList<>();
- suggestions.add(mTestSuggestion);
-
- final DashboardData oldData = new DashboardData.Builder()
- .setConditions(oneItemConditions)
- .setCategory(mDashboardCategory)
- .setSuggestions(suggestions)
- .setConditionExpanded(false)
- .build();
- final DashboardData newData = new DashboardData.Builder()
- .setConditions(oneItemConditions)
- .setSuggestions(null)
- .setCategory(mDashboardCategory)
- .setConditionExpanded(false)
- .build();
-
- testDiffUtil(oldData, newData, testResultData);
- }
-
- @Test
- public void testDiffUtil_DeleteAllData_ResultDataOneDeleted() {
- final List<ListUpdateResult.ResultData> testResultData = new ArrayList<>();
- testResultData.add(new ListUpdateResult.ResultData(
- ListUpdateResult.ResultData.TYPE_OPERATION_REMOVE, 0, 5));
-
- testDiffUtil(mDashboardDataWithOneConditions, mDashboardDataWithNoItems, testResultData);
- }
-
- @Test
- public void testDiffUtil_typeSuggestedContainer_ResultDataNothingChanged() {
- final List<ListUpdateResult.ResultData> testResultData = new ArrayList<>();
-
- DashboardData prevData = new DashboardData.Builder()
- .setConditions(null)
- .setCategory(null)
- .setSuggestions(Collections.singletonList(mTestSuggestion))
- .build();
- DashboardData currentData = new DashboardData.Builder()
- .setConditions(null)
- .setCategory(null)
- .setSuggestions(Collections.singletonList(mTestSuggestion))
- .build();
- testDiffUtil(prevData, currentData, testResultData);
- }
-
- /**
- * Test when using the
- * {@link com.android.settings.dashboard.DashboardData.ItemsDataDiffCallback}
- * to transfer List from {@paramref baseDashboardData} to {@paramref diffDashboardData},
- * whether
- * the transform data result is equals to {@paramref testResultData}
- * <p>
- * The steps are described below:
- * 1. Calculate a {@link androidx.recyclerview.widget.DiffUtil.DiffResult} from
- * {@paramref baseDashboardData} to {@paramref diffDashboardData}
- * <p>
- * 2. Dispatch the {@link androidx.recyclerview.widget.DiffUtil.DiffResult} calculated from step
- * 1
- * into {@link ListUpdateResult}
- * <p>
- * 3. Get result data(a.k.a. baseResultData) from {@link ListUpdateResult} and compare it to
- * {@paramref testResultData}
- * <p>
- * Because baseResultData and {@paramref testResultData} don't have sequence. When do the
- * comparison, we will sort them first and then compare the inside data from them one by one.
- */
- private void testDiffUtil(DashboardData baseDashboardData, DashboardData diffDashboardData,
- List<ListUpdateResult.ResultData> testResultData) {
- final DiffUtil.DiffResult diffUtilResult = DiffUtil.calculateDiff(
- new DashboardData.ItemsDataDiffCallback(
- baseDashboardData.getItemList(), diffDashboardData.getItemList()));
-
- // Dispatch to listUpdateResult, then listUpdateResult will have result data
- final ListUpdateResult listUpdateResult = new ListUpdateResult();
- diffUtilResult.dispatchUpdatesTo(listUpdateResult);
-
- final List<ListUpdateResult.ResultData> baseResultData = listUpdateResult.getResultData();
- assertThat(testResultData.size()).isEqualTo(baseResultData.size());
-
- // Sort them so we can compare them one by one using a for loop
- Collections.sort(baseResultData);
- Collections.sort(testResultData);
- final int size = baseResultData.size();
- for (int i = 0; i < size; i++) {
- // Refer to equals method in ResultData
- assertThat(baseResultData.get(i)).isEqualTo(testResultData.get(i));
- }
- }
-
- /**
- * This class contains the result about how the changes made to convert one
- * list to another list. It implements ListUpdateCallback to record the result data.
- */
- private static class ListUpdateResult implements ListUpdateCallback {
- final private List<ResultData> mResultData;
-
- public ListUpdateResult() {
- mResultData = new ArrayList<>();
- }
-
- private List<ResultData> getResultData() {
- return mResultData;
- }
-
- @Override
- public void onInserted(int position, int count) {
- mResultData.add(new ResultData(ResultData.TYPE_OPERATION_INSERT, position, count));
- }
-
- @Override
- public void onRemoved(int position, int count) {
- mResultData.add(new ResultData(ResultData.TYPE_OPERATION_REMOVE, position, count));
- }
-
- @Override
- public void onMoved(int fromPosition, int toPosition) {
- mResultData.add(
- new ResultData(ResultData.TYPE_OPERATION_MOVE, fromPosition, toPosition));
- }
-
- @Override
- public void onChanged(int position, int count, Object payload) {
- mResultData.add(new ResultData(ResultData.TYPE_OPERATION_CHANGE, position, count));
- }
-
- /**
- * This class contains general type and field to record the operation data generated
- * in {@link ListUpdateCallback}. Please refer to {@link ListUpdateCallback} for more info.
- * <p>
- * The following are examples about the data stored in this class:
- * <p>
- * "The data starts from position(arg1) with count number(arg2) is changed(operation)"
- * or "The data is moved(operation) from position1(arg1) to position2(arg2)"
- */
- private static class ResultData implements Comparable<ResultData> {
-
- private static final int TYPE_OPERATION_INSERT = 0;
- private static final int TYPE_OPERATION_REMOVE = 1;
- private static final int TYPE_OPERATION_MOVE = 2;
- private static final int TYPE_OPERATION_CHANGE = 3;
-
- private final int operation;
- private final int arg1;
- private final int arg2;
-
- private ResultData(int operation, int arg1, int arg2) {
- this.operation = operation;
- this.arg1 = arg1;
- this.arg2 = arg2;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
-
- if (!(obj instanceof ResultData)) {
- return false;
- }
-
- ResultData targetData = (ResultData) obj;
-
- return operation == targetData.operation && arg1 == targetData.arg1
- && arg2 == targetData.arg2;
- }
-
- @Override
- public int compareTo(@NonNull ResultData resultData) {
- if (this.operation != resultData.operation) {
- return operation - resultData.operation;
- }
-
- if (arg1 != resultData.arg1) {
- return arg1 - resultData.arg1;
- }
-
- return arg2 - resultData.arg2;
- }
-
- @Override
- public String toString() {
- return "op:" + operation + ",arg1:" + arg1 + ",arg2:" + arg2;
- }
- }
- }
-}
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
index 4e788a1..634bdb7 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
@@ -75,7 +75,6 @@
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
-import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
import java.util.ArrayList;
@@ -348,8 +347,7 @@
ReflectionHelpers.setField(
mImpl, "mPackageManager", RuntimeEnvironment.application.getPackageManager());
FragmentActivity activity = Robolectric.buildActivity(FragmentActivity.class).get();
- final ShadowApplication application = ShadowApplication.getInstance();
- final Preference preference = new Preference(application.getApplicationContext());
+ final Preference preference = new Preference(RuntimeEnvironment.application);
final Tile tile = new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
mActivityInfo.metaData.putString("com.android.settings.intent.action", "TestAction");
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardItemAnimatorTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardItemAnimatorTest.java
deleted file mode 100644
index 646643b..0000000
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardItemAnimatorTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2016 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.dashboard;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.pm.ActivityInfo;
-import android.view.View;
-import android.widget.TextView;
-
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settingslib.drawer.CategoryKey;
-import com.android.settingslib.drawer.Tile;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public class DashboardItemAnimatorTest {
-
- private DashboardItemAnimator mDashboardItemAnimator;
- private ViewHolder mViewHolder;
-
- @Before
- public void SetUp() {
- mDashboardItemAnimator = new DashboardItemAnimator();
- mViewHolder = new ViewHolder(new TextView(RuntimeEnvironment.application));
- final ActivityInfo activityInfo = new ActivityInfo();
- activityInfo.packageName = "pkg";
- activityInfo.name = "class";
- mViewHolder.itemView.setTag(new Tile(activityInfo, CategoryKey.CATEGORY_HOMEPAGE));
- }
-
- @Test
- public void testAnimateChange_NoPositionChange_NoPendingAnimation() {
- final boolean hasPendingAnimation =
- mDashboardItemAnimator.animateChange(mViewHolder, mViewHolder, 0, 1, 0, 1);
- assertThat(hasPendingAnimation).isFalse();
- }
-
- @Test
- public void testAnimateChange_HasPositionChange_HasPendingAnimation() {
- final boolean hasPendingAnimation =
- mDashboardItemAnimator.animateChange(mViewHolder, mViewHolder, 0, 0, 1, 1);
- assertThat(hasPendingAnimation).isTrue();
- }
-
- @Test
- public void testAnimateChange_HasRunningAnimationWhileNoPositionChange_NoPendingAnimation() {
- // Set pending move animations
- mDashboardItemAnimator.animateMove(mViewHolder, 0, 0, 1, 1);
-
- final boolean hasPendingAnimation =
- mDashboardItemAnimator.animateChange(mViewHolder, mViewHolder, 0, 1, 0, 1);
- assertThat(hasPendingAnimation).isFalse();
- }
-
- // Sample viewholder to use for test
- static final class ViewHolder extends RecyclerView.ViewHolder {
-
- ViewHolder(View itemView) {
- super(itemView);
- }
- }
-}
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardSummaryTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardSummaryTest.java
deleted file mode 100644
index a4fba72..0000000
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardSummaryTest.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright (C) 2017 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.dashboard;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-
-import androidx.fragment.app.FragmentActivity;
-import androidx.recyclerview.widget.LinearLayoutManager;
-
-import com.android.settings.homepage.conditional.ConditionManager;
-import com.android.settings.homepage.conditional.FocusRecyclerView;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settingslib.drawer.CategoryKey;
-import com.android.settingslib.drawer.DashboardCategory;
-import com.android.settingslib.suggestions.SuggestionControllerMixinCompat;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.util.ReflectionHelpers;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public class DashboardSummaryTest {
-
- @Mock
- private DashboardAdapter mAdapter;
- @Mock
- private DashboardFeatureProvider mDashboardFeatureProvider;
- @Mock
- private FocusRecyclerView mDashboard;
- @Mock
- private LinearLayoutManager mLayoutManager;
- @Mock
- private ConditionManager mConditionManager;
- @Mock
- private SummaryLoader mSummaryLoader;
- @Mock
- private SuggestionControllerMixinCompat mSuggestionControllerMixin;
-
- private Context mContext;
- private DashboardSummary mSummary;
- private FakeFeatureFactory mFeatureFactory;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mFeatureFactory = FakeFeatureFactory.setupForTest();
- mContext = RuntimeEnvironment.application;
- mSummary = spy(new DashboardSummary());
- ReflectionHelpers.setField(mSummary, "mAdapter", mAdapter);
- ReflectionHelpers.setField(mSummary, "mDashboardFeatureProvider",
- mDashboardFeatureProvider);
- ReflectionHelpers.setField(mSummary, "mDashboard", mDashboard);
- ReflectionHelpers.setField(mSummary, "mLayoutManager", mLayoutManager);
- ReflectionHelpers.setField(mSummary, "mConditionManager", mConditionManager);
- ReflectionHelpers.setField(mSummary, "mSummaryLoader", mSummaryLoader);
- }
-
- @Test
- public void onAttach_suggestionDisabled_shouldNotStartSuggestionControllerMixin() {
- when(mFeatureFactory.suggestionsFeatureProvider.isSuggestionEnabled(any(Context.class)))
- .thenReturn(false);
-
- mSummary.onAttach(mContext);
- final SuggestionControllerMixinCompat mixin = ReflectionHelpers
- .getField(mSummary, "mSuggestionControllerMixin");
- assertThat(mixin).isNull();
- }
-
- @Test
- public void onAttach_suggestionEnabled_shouldStartSuggestionControllerMixin() {
- when(mFeatureFactory.suggestionsFeatureProvider.isSuggestionEnabled(any(Context.class)))
- .thenReturn(true);
-
- mSummary.onAttach(mContext);
- final SuggestionControllerMixinCompat mixin = ReflectionHelpers
- .getField(mSummary, "mSuggestionControllerMixin");
- assertThat(mixin).isNotNull();
- }
-
- @Test
- public void updateCategory_shouldGetCategoryFromFeatureProvider() {
- ReflectionHelpers.setField(mSummary, "mSuggestionControllerMixin",
- mSuggestionControllerMixin);
-
- when(mSuggestionControllerMixin.isSuggestionLoaded()).thenReturn(true);
- doReturn(mock(FragmentActivity.class)).when(mSummary).getActivity();
- mSummary.onAttach(mContext);
- mSummary.updateCategory();
-
- verify(mSummaryLoader).updateSummaryToCache(nullable(DashboardCategory.class));
- verify(mDashboardFeatureProvider).getTilesForCategory(CategoryKey.CATEGORY_HOMEPAGE);
- verify(mAdapter).setCategory(any());
- }
-
- @Test
- public void updateCategory_shouldGetCategoryFromFeatureProvider_evenIfSuggestionDisabled() {
- when(mFeatureFactory.suggestionsFeatureProvider.isSuggestionEnabled(any(Context.class)))
- .thenReturn(false);
-
- doReturn(mock(FragmentActivity.class)).when(mSummary).getActivity();
- mSummary.onAttach(mContext);
- mSummary.updateCategory();
-
- verify(mSummaryLoader).updateSummaryToCache(nullable(DashboardCategory.class));
- verify(mDashboardFeatureProvider).getTilesForCategory(CategoryKey.CATEGORY_HOMEPAGE);
- verify(mAdapter).setCategory(any());
- }
-
- @Test
- public void onConditionChanged_PositionAtTop_ScrollToTop() {
- when(mLayoutManager.findFirstCompletelyVisibleItemPosition()).thenReturn(1);
- mSummary.onConditionsChanged();
- mSummary.onConditionsChanged();
- verify(mDashboard).scrollToPosition(0);
- }
-
- @Test
- public void onConditionChanged_PositionNotTop_RemainPosition() {
- when(mLayoutManager.findFirstCompletelyVisibleItemPosition()).thenReturn(2);
- mSummary.onConditionsChanged();
- mSummary.onConditionsChanged();
- verify(mDashboard, never()).scrollToPosition(0);
- }
-
- @Test
- public void onConditionChanged_firstCall_shouldIgnore() {
- mSummary.onConditionsChanged();
- verify(mAdapter, never()).setConditions(any());
- }
-
- @Test
- public void onConditionChanged_secondCall_shouldSetConditionsOnAdapter() {
- mSummary.onConditionsChanged();
- mSummary.onConditionsChanged();
- verify(mAdapter).setConditions(any());
- }
-
- @Test
- public void onCategoryChanged_noRebuildOnFirstCall() {
- doReturn(mock(FragmentActivity.class)).when(mSummary).getActivity();
- doNothing().when(mSummary).rebuildUI();
- mSummary.onCategoriesChanged();
- verify(mSummary, never()).rebuildUI();
- }
-
- @Test
- public void onCategoryChanged_rebuildOnSecondCall() {
- doReturn(mock(FragmentActivity.class)).when(mSummary).getActivity();
- doNothing().when(mSummary).rebuildUI();
- mSummary.onCategoriesChanged();
- mSummary.onCategoriesChanged();
- verify(mSummary).rebuildUI();
- }
-}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionAdapterTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionAdapterTest.java
deleted file mode 100644
index a482647..0000000
--- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionAdapterTest.java
+++ /dev/null
@@ -1,345 +0,0 @@
-/*
- * Copyright (C) 2017 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.dashboard.suggestions;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.res.ColorStateList;
-import android.content.res.Resources;
-import android.content.res.TypedArray;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.Icon;
-import android.service.settings.suggestions.Suggestion;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.WindowManager;
-import android.widget.FrameLayout;
-import android.widget.LinearLayout;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
-import com.android.settings.SettingsActivity;
-import com.android.settings.dashboard.DashboardAdapter;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settings.testutils.shadow.ShadowCardView;
-import com.android.settingslib.Utils;
-import com.android.settingslib.suggestions.SuggestionControllerMixinCompat;
-import com.android.settingslib.utils.IconCache;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = ShadowCardView.class)
-public class SuggestionAdapterTest {
-
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private SettingsActivity mActivity;
- @Mock
- private SuggestionControllerMixinCompat mSuggestionControllerMixin;
- @Mock
- private Resources mResources;
- @Mock
- private WindowManager mWindowManager;
-
- private FakeFeatureFactory mFeatureFactory;
- private Context mContext;
- private SuggestionAdapter mSuggestionAdapter;
- private DashboardAdapter.DashboardItemHolder mSuggestionHolder;
- private List<Suggestion> mOneSuggestion;
- private List<Suggestion> mTwoSuggestions;
- private SuggestionAdapter.CardConfig mConfig;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- when(mActivity.getSystemService(Context.WINDOW_SERVICE)).thenReturn(mWindowManager);
- when(mActivity.getResources()).thenReturn(mResources);
- when(mResources.getDimensionPixelOffset(R.dimen.suggestion_card_inner_margin))
- .thenReturn(10);
- when(mResources.getDimensionPixelOffset(R.dimen.suggestion_card_outer_margin))
- .thenReturn(20);
- mConfig = spy(SuggestionAdapter.CardConfig.get(mActivity));
-
- mFeatureFactory = FakeFeatureFactory.setupForTest();
-
- final Suggestion suggestion1 = new Suggestion.Builder("id1")
- .setTitle("Test suggestion 1")
- .build();
- final Suggestion suggestion2 = new Suggestion.Builder("id2")
- .setTitle("Test suggestion 2")
- .build();
- mOneSuggestion = new ArrayList<>();
- mOneSuggestion.add(suggestion1);
- mTwoSuggestions = new ArrayList<>();
- mTwoSuggestions.add(suggestion1);
- mTwoSuggestions.add(suggestion2);
- }
-
- @Test
- public void getItemCount_shouldReturnListSize() {
- mSuggestionAdapter = new SuggestionAdapter(mContext, mSuggestionControllerMixin,
- null /* savedInstanceState */, null /* callback */, null /* lifecycle */);
- mSuggestionAdapter.setSuggestions(mOneSuggestion);
- assertThat(mSuggestionAdapter.getItemCount()).isEqualTo(1);
-
- mSuggestionAdapter.setSuggestions(mTwoSuggestions);
- assertThat(mSuggestionAdapter.getItemCount()).isEqualTo(2);
- }
-
- @Test
- public void getItemViewType_shouldReturnSuggestionTile() {
- mSuggestionAdapter = new SuggestionAdapter(mContext, mSuggestionControllerMixin,
- null /* savedInstanceState */, null /* callback */, null /* lifecycle */);
- mSuggestionAdapter.setSuggestions(mOneSuggestion);
- assertThat(mSuggestionAdapter.getItemViewType(0))
- .isEqualTo(R.layout.suggestion_tile);
- }
-
- @Test
- public void getItemType_hasButton_shouldReturnSuggestionWithButton() {
- final List<Suggestion> suggestions = new ArrayList<>();
- suggestions.add(new Suggestion.Builder("id")
- .setFlags(Suggestion.FLAG_HAS_BUTTON)
- .setTitle("123")
- .setSummary("456")
- .build());
- mSuggestionAdapter = new SuggestionAdapter(mContext, mSuggestionControllerMixin,
- null /* savedInstanceState */, null /* callback */, null /* lifecycle */);
- mSuggestionAdapter.setSuggestions(suggestions);
-
- assertThat(mSuggestionAdapter.getItemViewType(0))
- .isEqualTo(R.layout.suggestion_tile_with_button);
- }
-
- @Test
- public void onBindViewHolder_shouldLog() {
- final View view = spy(LayoutInflater.from(mContext).inflate(
- R.layout.suggestion_tile, new LinearLayout(mContext), true));
- mSuggestionHolder = new DashboardAdapter.DashboardItemHolder(view);
- mSuggestionAdapter = new SuggestionAdapter(mContext, mSuggestionControllerMixin,
- null /* savedInstanceState */, null /* callback */, null /* lifecycle */);
- mSuggestionAdapter.setSuggestions(mOneSuggestion);
- doReturn("sans").when(mContext).getString(anyInt());
-
- // Bind twice
- mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
- mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
-
- // Log once
- verify(mFeatureFactory.metricsFeatureProvider).action(
- mContext, MetricsProto.MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION,
- mOneSuggestion.get(0).getId());
- }
-
- @Test
- public void onBindViewHolder_itemViewShouldHandleClick()
- throws PendingIntent.CanceledException {
- final List<Suggestion> suggestions = makeSuggestions("pkg1");
- setupSuggestions(mActivity, suggestions);
-
- mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
- mSuggestionHolder.itemView.performClick();
-
- verify(mSuggestionControllerMixin).launchSuggestion(suggestions.get(0));
- verify(suggestions.get(0).getPendingIntent()).send();
- }
-
- @Test
- public void onBindViewHolder_hasButton_buttonShouldHandleClick()
- throws PendingIntent.CanceledException {
- final List<Suggestion> suggestions = new ArrayList<>();
- final PendingIntent pendingIntent = mock(PendingIntent.class);
- suggestions.add(new Suggestion.Builder("id")
- .setFlags(Suggestion.FLAG_HAS_BUTTON)
- .setTitle("123")
- .setSummary("456")
- .setPendingIntent(pendingIntent)
- .build());
- mSuggestionAdapter = new SuggestionAdapter(mContext, mSuggestionControllerMixin,
- null /* savedInstanceState */, null /* callback */, null /* lifecycle */);
- mSuggestionAdapter.setSuggestions(suggestions);
- mSuggestionHolder = mSuggestionAdapter.onCreateViewHolder(
- new FrameLayout(RuntimeEnvironment.application),
- mSuggestionAdapter.getItemViewType(0));
- doReturn("sans").when(mContext).getString(anyInt());
-
- mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
- mSuggestionHolder.itemView.findViewById(android.R.id.primary).performClick();
-
- verify(mSuggestionControllerMixin).launchSuggestion(suggestions.get(0));
- verify(pendingIntent).send();
- }
-
- @Test
- public void getSuggestions_shouldReturnSuggestionWhenMatch() {
- final List<Suggestion> suggestions = makeSuggestions("pkg1");
- setupSuggestions(mActivity, suggestions);
-
- assertThat(mSuggestionAdapter.getSuggestion(0)).isNotNull();
- }
-
- @Test
- public void onBindViewHolder_closeButtonShouldHandleClick()
- throws PendingIntent.CanceledException {
- final List<Suggestion> suggestions = makeSuggestions("pkg1");
- final SuggestionAdapter.Callback callback = mock(SuggestionAdapter.Callback.class);
- mSuggestionAdapter = new SuggestionAdapter(mActivity, mSuggestionControllerMixin,
- null /* savedInstanceState */, callback, null /* lifecycle */);
- mSuggestionAdapter.setSuggestions(suggestions);
- mSuggestionHolder = mSuggestionAdapter.onCreateViewHolder(
- new FrameLayout(RuntimeEnvironment.application),
- mSuggestionAdapter.getItemViewType(0));
-
- mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
- mSuggestionHolder.itemView.findViewById(R.id.close_button).performClick();
-
- final Suggestion suggestion = suggestions.get(0);
- verify(mFeatureFactory.suggestionsFeatureProvider).dismissSuggestion(
- mActivity, mSuggestionControllerMixin, suggestion);
- verify(callback).onSuggestionClosed(suggestion);
- }
-
- @Test
- public void onBindViewHolder_iconNotTintable_shouldNotTintIcon()
- throws PendingIntent.CanceledException {
- final Icon icon = mock(Icon.class);
- final Suggestion suggestion = new Suggestion.Builder("pkg1")
- .setPendingIntent(mock(PendingIntent.class))
- .setIcon(icon)
- .build();
- final List<Suggestion> suggestions = new ArrayList<>();
- suggestions.add(suggestion);
- mSuggestionAdapter = new SuggestionAdapter(mActivity, mSuggestionControllerMixin,
- null /* savedInstanceState */, null /* callback */, null /* lifecycle */);
- mSuggestionAdapter.setSuggestions(suggestions);
- mSuggestionHolder = mSuggestionAdapter.onCreateViewHolder(
- new FrameLayout(RuntimeEnvironment.application),
- mSuggestionAdapter.getItemViewType(0));
- IconCache cache = mock(IconCache.class);
- final Drawable drawable = mock(Drawable.class);
- when(cache.getIcon(icon)).thenReturn(drawable);
- ReflectionHelpers.setField(mSuggestionAdapter, "mCache", cache);
-
- mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
-
- verify(drawable, never()).setTint(anyInt());
- }
-
- @Test
- public void onBindViewHolder_iconTintable_shouldTintIcon()
- throws PendingIntent.CanceledException {
- final Icon icon = mock(Icon.class);
- final int FLAG_ICON_TINTABLE = 1 << 1;
- final Suggestion suggestion = new Suggestion.Builder("pkg1")
- .setPendingIntent(mock(PendingIntent.class))
- .setIcon(icon)
- .setFlags(FLAG_ICON_TINTABLE)
- .build();
- final List<Suggestion> suggestions = new ArrayList<>();
- suggestions.add(suggestion);
- mSuggestionAdapter = new SuggestionAdapter(mActivity, mSuggestionControllerMixin,
- null /* savedInstanceState */, null /* callback */, null /* lifecycle */);
- mSuggestionAdapter.setSuggestions(suggestions);
- mSuggestionHolder = mSuggestionAdapter.onCreateViewHolder(
- new FrameLayout(RuntimeEnvironment.application),
- mSuggestionAdapter.getItemViewType(0));
- IconCache cache = mock(IconCache.class);
- final Drawable drawable = mock(Drawable.class);
- when(cache.getIcon(icon)).thenReturn(drawable);
- ReflectionHelpers.setField(mSuggestionAdapter, "mCache", cache);
- TypedArray typedArray = mock(TypedArray.class);
- final ColorStateList colorAccentState = Utils.getColorAccent(mContext);
- when(mActivity.obtainStyledAttributes(any())).thenReturn(typedArray);
- when(typedArray.getColorStateList(anyInt())).thenReturn(colorAccentState);
-
- mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
-
- verify(drawable).setTintList(colorAccentState);
- }
-
- @Test
- public void onBindViewHolder_closeButtonShouldHaveContentDescription()
- throws PendingIntent.CanceledException {
- final List<Suggestion> suggestions = makeSuggestions("pkg1");
- setupSuggestions(mActivity, suggestions);
-
- mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
-
- assertThat(
- mSuggestionHolder.itemView.findViewById(R.id.close_button).getContentDescription())
- .isNotNull();
- }
-
- @Test
- public void setCardLayout_twoCards_shouldSetCardWidthToHalfScreenMinusPadding() {
- final List<Suggestion> suggestions = makeSuggestions("pkg1");
- setupSuggestions(mContext, suggestions);
- doReturn(200).when(mConfig).getScreenWidth();
-
- mConfig.setCardLayout(mSuggestionHolder, 0);
-
- /*
- * card width = (screen width - left margin - inner margin - right margin) / 2
- * = (200 - 20 - 10 - 20) / 2
- * = 75
- */
- assertThat(mSuggestionHolder.itemView.getLayoutParams().width).isEqualTo(75);
- }
-
- private void setupSuggestions(Context context, List<Suggestion> suggestions) {
- mSuggestionAdapter = new SuggestionAdapter(context, mSuggestionControllerMixin,
- null /* savedInstanceState */, null /* callback */, null /* lifecycle */);
- mSuggestionAdapter.setSuggestions(suggestions);
- mSuggestionHolder = mSuggestionAdapter.onCreateViewHolder(
- new FrameLayout(RuntimeEnvironment.application),
- mSuggestionAdapter.getItemViewType(0));
- }
-
- private List<Suggestion> makeSuggestions(String... pkgNames) {
- final List<Suggestion> suggestions = new ArrayList<>();
- for (String pkgName : pkgNames) {
- final Suggestion suggestion = new Suggestion.Builder(pkgName)
- .setPendingIntent(mock(PendingIntent.class))
- .build();
- suggestions.add(suggestion);
- }
- return suggestions;
- }
-}
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
index 121d9a2..855e40b 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
@@ -22,8 +22,8 @@
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
+import android.app.Activity;
import android.content.ComponentName;
-import android.content.Context;
import android.content.Intent;
import android.graphics.Typeface;
import android.net.NetworkTemplate;
@@ -51,7 +51,6 @@
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
-import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
@@ -66,7 +65,7 @@
private static final long UPDATE_LAG_MILLIS = 10000000L;
private static final String DUMMY_CARRIER = "z-mobile";
- private Context mContext;
+ private Activity mActivity;
private PreferenceViewHolder mHolder;
private DataUsageSummaryPreference mSummaryPreference;
private TextView mUsageTitle;
@@ -87,9 +86,9 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- mSummaryPreference = new DataUsageSummaryPreference(mContext, null /* attrs */);
- LayoutInflater inflater = LayoutInflater.from(mContext);
+ mActivity = spy(Robolectric.setupActivity(Activity.class));
+ mSummaryPreference = new DataUsageSummaryPreference(mActivity, null /* attrs */);
+ LayoutInflater inflater = LayoutInflater.from(mActivity);
View view = inflater.inflate(mSummaryPreference.getLayoutResource(), null /* root */,
false /* attachToRoot */);
@@ -227,7 +226,7 @@
bindViewHolder();
assertThat(mCarrierInfo.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(mCarrierInfo.getCurrentTextColor()).isEqualTo(
- Utils.getColorAttrDefaultColor(mContext, android.R.attr.textColorSecondary));
+ Utils.getColorAttrDefaultColor(mActivity, android.R.attr.textColorSecondary));
assertThat(mCarrierInfo.getTypeface()).isEqualTo(Typeface.SANS_SERIF);
}
@@ -240,7 +239,7 @@
bindViewHolder();
assertThat(mCarrierInfo.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(mCarrierInfo.getCurrentTextColor()).isEqualTo(
- Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorError));
+ Utils.getColorAttrDefaultColor(mActivity, android.R.attr.colorError));
assertThat(mCarrierInfo.getTypeface()).isEqualTo(
DataUsageSummaryPreference.SANS_SERIF_MEDIUM);
}
@@ -273,7 +272,7 @@
bindViewHolder();
assertThat(mCycleTime.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(mCycleTime.getText()).isEqualTo(
- mContext.getString(R.string.billing_cycle_less_than_one_day_left));
+ mActivity.getString(R.string.billing_cycle_less_than_one_day_left));
}
@Test
@@ -285,7 +284,7 @@
bindViewHolder();
assertThat(mCycleTime.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(mCycleTime.getText()).isEqualTo(
- mContext.getString(R.string.billing_cycle_none_left));
+ mActivity.getString(R.string.billing_cycle_none_left));
}
@Test
@@ -384,7 +383,7 @@
assertThat(mDataUsed.getText().toString()).isEqualTo("1.00 MB used");
assertThat(mDataRemaining.getText().toString()).isEqualTo("9.00 MB left");
assertThat(mDataRemaining.getVisibility()).isEqualTo(View.VISIBLE);
- final int colorId = Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorAccent);
+ final int colorId = Utils.getColorAttrDefaultColor(mActivity, android.R.attr.colorAccent);
assertThat(mDataRemaining.getCurrentTextColor()).isEqualTo(colorId);
}
@@ -400,7 +399,7 @@
bindViewHolder();
assertThat(mDataUsed.getText().toString()).isEqualTo("11.00 MB used");
assertThat(mDataRemaining.getText().toString()).isEqualTo("1.00 MB over");
- final int colorId = Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorError);
+ final int colorId = Utils.getColorAttrDefaultColor(mActivity, android.R.attr.colorError);
assertThat(mDataRemaining.getCurrentTextColor()).isEqualTo(colorId);
}
@@ -429,7 +428,7 @@
bindViewHolder();
assertThat(mLaunchButton.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(mLaunchButton.getText())
- .isEqualTo(mContext.getString(R.string.launch_mdp_app_text));
+ .isEqualTo(mActivity.getString(R.string.launch_mdp_app_text));
mLaunchButton.callOnClick();
ShadowActivity shadowActivity = Shadows.shadowOf(activity);
@@ -443,12 +442,12 @@
@Test
public void testSetUsageInfo_withOverflowStrings_dataRemainingNotShown() {
- LayoutInflater inflater = LayoutInflater.from(mContext);
+ LayoutInflater inflater = LayoutInflater.from(mActivity);
View view = inflater.inflate(mSummaryPreference.getLayoutResource(), null /* root */,
false /* attachToRoot */);
- TextView dataUsed = spy(new TextView(mContext));
- TextView dataRemaining = spy(new TextView(mContext));
+ TextView dataUsed = spy(new TextView(mActivity));
+ TextView dataRemaining = spy(new TextView(mActivity));
doReturn(dataUsed).when(mHolder).findViewById(R.id.data_usage_view);
doReturn(dataRemaining).when(mHolder).findViewById(R.id.data_remaining_view);
@@ -459,10 +458,10 @@
10 * BillingCycleSettings.MIB_IN_BYTES,
true /* hasMobileData */);
- when(mContext.getResources()).thenCallRealMethod();
- when(mContext.getText(R.string.data_used_formatted))
+ when(mActivity.getResources()).thenCallRealMethod();
+ when(mActivity.getText(R.string.data_used_formatted))
.thenReturn("^1 ^2 used with long trailing text");
- when(mContext.getText(R.string.data_remaining)).thenReturn("^1 left");
+ when(mActivity.getText(R.string.data_remaining)).thenReturn("^1 left");
bindViewHolder();
@@ -497,7 +496,7 @@
bindViewHolder();
assertThat(mUsageTitle.getText().toString())
- .isEqualTo(mContext.getString(R.string.data_usage_wifi_title));
+ .isEqualTo(mActivity.getString(R.string.data_usage_wifi_title));
assertThat(mUsageTitle.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(mCycleTime.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(mCycleTime.getText()).isEqualTo(cycleText);
@@ -505,7 +504,7 @@
assertThat(mDataLimits.getVisibility()).isEqualTo(View.GONE);
assertThat(mLaunchButton.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(mLaunchButton.getText())
- .isEqualTo(mContext.getString(R.string.launch_wifi_text));
+ .isEqualTo(mActivity.getString(R.string.launch_wifi_text));
mLaunchButton.callOnClick();
ShadowActivity shadowActivity = Shadows.shadowOf(activity);
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
index e52ff20..49e3e86 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
@@ -39,23 +39,27 @@
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
import com.android.settings.testutils.shadow.ShadowDashboardFragment;
import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
+import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.testutils.shadow.ShadowUtils;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
@Config(shadows = {
- SettingsShadowResourcesImpl.class,
- SettingsShadowResources.SettingsShadowTheme.class,
- ShadowUtils.class,
- ShadowDataUsageUtils.class,
- ShadowDashboardFragment.class
+ SettingsShadowResourcesImpl.class,
+ SettingsShadowResources.SettingsShadowTheme.class,
+ ShadowUtils.class,
+ ShadowDataUsageUtils.class,
+ ShadowDashboardFragment.class,
+ ShadowUserManager.class,
})
@RunWith(SettingsRobolectricTestRunner.class)
public class DataUsageSummaryTest {
@@ -77,15 +81,21 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
ShadowApplication shadowContext = ShadowApplication.getInstance();
+ ShadowUserManager.getShadow().setIsAdminUser(true);
shadowContext.setSystemService(Context.NETWORK_POLICY_SERVICE, mNetworkPolicyManager);
- mContext = shadowContext.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).get());
mSummaryProvider = DataUsageSummary.SUMMARY_PROVIDER_FACTORY
.createSummaryProvider(mActivity, mSummaryLoader);
}
+ @After
+ public void tearDown() {
+ ShadowUserManager.getShadow().reset();
+ }
+
@Test
public void formatUsage_shouldLookLikeFormatFileSize() {
SettingsShadowResources.overrideResource(com.android.internal.R.string.fileSizeSuffix,
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java
index 4ab4256..9a67df8 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java
@@ -39,6 +39,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -57,7 +58,7 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
ShadowApplication shadowContext = ShadowApplication.getInstance();
- mContext = shadowContext.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
shadowContext.setSystemService(Context.CONNECTIVITY_SERVICE, mManager);
shadowContext.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
shadowContext.setSystemService(Context.NETWORK_STATS_SERVICE, mNetworkStatsManager);
@@ -109,6 +110,6 @@
DataUsageUtils.hasEthernet(mContext);
verify(mNetworkStatsManager).querySummaryForUser(eq(ConnectivityManager.TYPE_ETHERNET),
- eq(subscriber), anyLong() /* startTime */, anyLong() /* endTime */);
+ eq(subscriber), anyLong() /* startTime */, anyLong() /* endTime */);
}
}
diff --git a/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java
index ef7e076..e472dbb 100644
--- a/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/AdbPreferenceControllerTest.java
@@ -68,7 +68,7 @@
@Test
public void onDeveloperOptionsDisabled_shouldDisablePreference() {
mController.onDeveloperOptionsDisabled();
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.ADB_ENABLED, -1);
assertThat(mode).isEqualTo(AdbPreferenceController.ADB_SETTING_OFF);
@@ -79,7 +79,7 @@
@Test
public void onAdbDialogConfirmed_shouldEnableAdbSetting() {
mController.onAdbDialogConfirmed();
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.ADB_ENABLED, -1);
assertThat(mode).isEqualTo(AdbPreferenceController.ADB_SETTING_ON);
@@ -87,7 +87,7 @@
@Test
public void onAdbDialogDismissed_preferenceShouldNotBeChecked() {
- Settings.System.putInt(mContext.getContentResolver(), Settings.Global.ADB_ENABLED,
+ Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.ADB_ENABLED,
AdbPreferenceController.ADB_SETTING_OFF);
mController.onAdbDialogDismissed();
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceControllerTest.java
index 0cab3ec..9750d3a 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceControllerTest.java
@@ -25,6 +25,7 @@
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.os.SystemProperties;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
@@ -37,7 +38,6 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.shadows.ShadowSystemProperties;
@RunWith(SettingsRobolectricTestRunner.class)
public class BluetoothDeviceNoNamePreferenceControllerTest {
@@ -56,7 +56,7 @@
mContext = RuntimeEnvironment.application;
mController = new BluetoothDeviceNoNamePreferenceController(mContext);
when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
- .thenReturn(mPreference);
+ .thenReturn(mPreference);
mController.displayPreference(mPreferenceScreen);
}
@@ -64,8 +64,9 @@
public void onPreferenceChanged_settingEnabled_shouldTurnOnBluetoothDeviceNoName() {
mController.onPreferenceChange(mPreference, true /* new value */);
- final boolean mode = ShadowSystemProperties
- .native_get_boolean(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, false /* default */);
+ final boolean mode = SystemProperties.getBoolean(
+ BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY,
+ false /* default */);
assertThat(mode).isTrue();
}
@@ -74,16 +75,16 @@
public void onPreferenceChanged_settingDisabled_shouldTurnOffBluetoothDeviceNoName() {
mController.onPreferenceChange(mPreference, false /* new value */);
- final boolean mode = ShadowSystemProperties
- .native_get_boolean(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, true /* default */);
+ final boolean mode = SystemProperties.getBoolean(
+ BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, true /* default */);
assertThat(mode).isFalse();
}
@Test
public void updateState_settingEnabled_preferenceShouldBeChecked() {
- ShadowSystemProperties
- .native_set(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, Boolean.toString(true));
+ SystemProperties.set(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY,
+ Boolean.toString(true));
mController.updateState(mPreference);
verify(mPreference).setChecked(true);
@@ -91,8 +92,8 @@
@Test
public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
- ShadowSystemProperties
- .native_set(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, Boolean.toString(false));
+ SystemProperties.set(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY,
+ Boolean.toString(false));
mController.updateState(mPreference);
verify(mPreference).setChecked(false);
@@ -102,8 +103,9 @@
public void onDeveloperOptionsDisabled_shouldDisablePreference() {
mController.onDeveloperOptionsDisabled();
- final boolean mode = ShadowSystemProperties
- .native_get_boolean(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, true /* default */);
+ final boolean mode = SystemProperties.getBoolean(
+ BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY,
+ true /* default */);
assertThat(mode).isFalse();
verify(mPreference).setEnabled(false);
diff --git a/tests/robotests/src/com/android/settings/development/ClearAdbKeysPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/ClearAdbKeysPreferenceControllerTest.java
index 56f1944..6ab4d4c 100644
--- a/tests/robotests/src/com/android/settings/development/ClearAdbKeysPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/ClearAdbKeysPreferenceControllerTest.java
@@ -28,7 +28,7 @@
import static org.mockito.Mockito.when;
import android.content.Context;
-import android.hardware.usb.IUsbManager;
+import android.debug.IAdbManager;
import android.os.RemoteException;
import android.os.SystemProperties;
@@ -60,7 +60,7 @@
@Mock
private SwitchPreference mPreference;
@Mock
- private IUsbManager mUsbManager;
+ private IAdbManager mAdbManager;
@Mock
private DevelopmentSettingsDashboardFragment mFragment;
@@ -71,7 +71,7 @@
MockitoAnnotations.initMocks(this);
final Context context = RuntimeEnvironment.application;
mController = spy(new ClearAdbKeysPreferenceController(context, mFragment));
- ReflectionHelpers.setField(mController, "mUsbManager", mUsbManager);
+ ReflectionHelpers.setField(mController, "mAdbManager", mAdbManager);
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
}
@@ -168,7 +168,7 @@
public void onClearAdbKeysConfirmed_shouldClearKeys() throws RemoteException {
mController.onClearAdbKeysConfirmed();
- verify(mUsbManager).clearUsbDebuggingKeys();
+ verify(mAdbManager).clearDebuggingKeys();
}
@Implements(ClearAdbKeysWarningDialog.class)
diff --git a/tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java
index e737077..790b46a 100644
--- a/tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java
@@ -61,7 +61,7 @@
public void onPreferenceChanged_turnOnViewAttributes() {
mController.onPreferenceChange(null, true);
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.DEBUG_VIEW_ATTRIBUTES, -1);
assertThat(mode).isEqualTo(DebugViewAttributesPreferenceController.SETTING_VALUE_ON);
@@ -71,7 +71,7 @@
public void onPreferenceChanged_turnOffViewAttributes() {
mController.onPreferenceChange(null, false);
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.DEBUG_VIEW_ATTRIBUTES, -1);
assertThat(mode).isEqualTo(DebugViewAttributesPreferenceController.SETTING_VALUE_OFF);
@@ -79,7 +79,7 @@
@Test
public void updateState_preferenceShouldBeChecked() {
- Settings.System.putInt(mContext.getContentResolver(), Settings.Global.DEBUG_VIEW_ATTRIBUTES,
+ Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEBUG_VIEW_ATTRIBUTES,
DebugViewAttributesPreferenceController.SETTING_VALUE_ON);
mController.updateState(mPreference);
@@ -88,7 +88,7 @@
@Test
public void updateState_preferenceShouldNotBeChecked() {
- Settings.System.putInt(mContext.getContentResolver(), Settings.Global.DEBUG_VIEW_ATTRIBUTES,
+ Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEBUG_VIEW_ATTRIBUTES,
DebugViewAttributesPreferenceController.SETTING_VALUE_OFF);
mController.updateState(mPreference);
@@ -98,7 +98,7 @@
@Test
public void onDeveloperOptionsDisabled_shouldDisablePreference() {
mController.onDeveloperOptionsDisabled();
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.DEBUG_VIEW_ATTRIBUTES, -1);
assertThat(mode).isEqualTo(DebugViewAttributesPreferenceController.SETTING_VALUE_OFF);
diff --git a/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java
new file mode 100644
index 0000000..e6e8cb9
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java
@@ -0,0 +1,132 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.development;
+
+import static android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS;
+
+import static com.android.settings.development.DesktopModePreferenceController.SETTING_VALUE_OFF;
+import static com.android.settings.development.DesktopModePreferenceController.SETTING_VALUE_ON;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class DesktopModePreferenceControllerTest {
+
+ private static final String ENG_BUILD_TYPE = "eng";
+ private static final String USER_BUILD_TYPE = "user";
+
+ @Mock
+ private SwitchPreference mPreference;
+ @Mock
+ private PreferenceScreen mScreen;
+
+ private Context mContext;
+ private DesktopModePreferenceController mController;
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+ mController = new DesktopModePreferenceController(mContext);
+ when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
+ mController.displayPreference(mScreen);
+ }
+
+ @Test
+ public void isAvailable_engBuild_shouldBeTrue() {
+ mController = spy(mController);
+ doReturn(ENG_BUILD_TYPE).when(mController).getBuildType();
+
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void isAvaiable_userBuild_shouldBeTrue() {
+ mController = spy(mController);
+ doReturn(USER_BUILD_TYPE).when(mController).getBuildType();
+
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void onPreferenceChange_switchEnabled_shouldEnableFreeformWindows() {
+ mController.onPreferenceChange(mPreference, true /* new value */);
+
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+ DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, -1 /* default */);
+ assertThat(mode).isEqualTo(SETTING_VALUE_ON);
+ }
+
+ @Test
+ public void onPreferenceChange_switchDisabled_shouldDisableFreeformWindows() {
+ mController.onPreferenceChange(mPreference, false /* new value */);
+
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+ DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, -1 /* default */);
+ assertThat(mode).isEqualTo(SETTING_VALUE_OFF);
+ }
+
+ @Test
+ public void updateState_settingEnabled_preferenceShouldBeChecked() {
+ Settings.Global.putInt(mContext.getContentResolver(),
+ DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, SETTING_VALUE_ON);
+
+ mController.updateState(mPreference);
+
+ verify(mPreference).setChecked(true);
+ }
+
+ @Test
+ public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
+ Settings.Global.putInt(mContext.getContentResolver(),
+ DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, SETTING_VALUE_OFF);
+
+ mController.updateState(mPreference);
+
+ verify(mPreference).setChecked(false);
+ }
+
+ @Test
+ public void onDeveloperOptionsSwitchDisabled_shouldDisablePreference() {
+ mController.onDeveloperOptionsSwitchDisabled();
+
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+ DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, -1 /* default */);
+ assertThat(mode).isEqualTo(SETTING_VALUE_OFF);
+ verify(mPreference).setEnabled(false);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
index fffcd4c..a3abb07 100644
--- a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
@@ -25,7 +25,6 @@
import static org.mockito.Mockito.when;
import android.content.Context;
-import android.os.UserManager;
import android.provider.SearchIndexableResource;
import android.provider.Settings;
@@ -33,6 +32,7 @@
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.widget.SwitchBar;
import com.android.settings.widget.ToggleSwitch;
import com.android.settingslib.development.AbstractEnableAdbPreferenceController;
@@ -44,16 +44,15 @@
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
-import org.robolectric.shadows.ShadowUserManager;
import org.robolectric.util.ReflectionHelpers;
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = ShadowUserManager.class)
public class DevelopmentSettingsDashboardFragmentTest {
private ToggleSwitch mSwitch;
@@ -69,14 +68,14 @@
mSwitch = switchBar.getSwitch();
mDashboard = spy(new DevelopmentSettingsDashboardFragment());
ReflectionHelpers.setField(mDashboard, "mSwitchBar", switchBar);
- UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
- mShadowUserManager = Shadows.shadowOf(userManager);
+ mShadowUserManager = ShadowUserManager.getShadow();
mShadowUserManager.setIsAdminUser(true);
}
@After
public void tearDown() {
ShadowEnableDevelopmentSettingWarningDialog.reset();
+ mShadowUserManager.reset();
}
@Test
@@ -87,7 +86,7 @@
@Test
public void shouldLogAsFeatureFlagPage() {
assertThat(mDashboard.getMetricsCategory())
- .isEqualTo(MetricsProto.MetricsEvent.DEVELOPMENT);
+ .isEqualTo(MetricsProto.MetricsEvent.DEVELOPMENT);
}
@Test
@@ -184,7 +183,7 @@
public void onOemUnlockDialogConfirmed_shouldCallControllerOemConfirmed() {
final OemUnlockPreferenceController controller = mock(OemUnlockPreferenceController.class);
doReturn(controller).when(mDashboard)
- .getDevelopmentOptionsController(OemUnlockPreferenceController.class);
+ .getDevelopmentOptionsController(OemUnlockPreferenceController.class);
mDashboard.onOemUnlockDialogConfirmed();
verify(controller).onOemUnlockConfirmed();
}
@@ -193,7 +192,7 @@
public void onOemUnlockDialogConfirmed_shouldCallControllerOemDismissed() {
final OemUnlockPreferenceController controller = mock(OemUnlockPreferenceController.class);
doReturn(controller).when(mDashboard)
- .getDevelopmentOptionsController(OemUnlockPreferenceController.class);
+ .getDevelopmentOptionsController(OemUnlockPreferenceController.class);
mDashboard.onOemUnlockDialogDismissed();
verify(controller).onOemUnlockDismissed();
}
@@ -202,7 +201,7 @@
public void onAdbDialogConfirmed_shouldCallControllerDialogConfirmed() {
final AdbPreferenceController controller = mock(AdbPreferenceController.class);
doReturn(controller).when(mDashboard)
- .getDevelopmentOptionsController(AdbPreferenceController.class);
+ .getDevelopmentOptionsController(AdbPreferenceController.class);
mDashboard.onEnableAdbDialogConfirmed();
verify(controller).onAdbDialogConfirmed();
@@ -212,7 +211,7 @@
public void onAdbDialogDismissed_shouldCallControllerOemDismissed() {
final AdbPreferenceController controller = mock(AdbPreferenceController.class);
doReturn(controller).when(mDashboard)
- .getDevelopmentOptionsController(AdbPreferenceController.class);
+ .getDevelopmentOptionsController(AdbPreferenceController.class);
mDashboard.onEnableAdbDialogDismissed();
verify(controller).onAdbDialogDismissed();
@@ -221,9 +220,9 @@
@Test
public void onAdbClearKeysDialogConfirmed_shouldCallControllerDialogConfirmed() {
final ClearAdbKeysPreferenceController controller =
- mock(ClearAdbKeysPreferenceController.class);
+ mock(ClearAdbKeysPreferenceController.class);
doReturn(controller).when(mDashboard)
- .getDevelopmentOptionsController(ClearAdbKeysPreferenceController.class);
+ .getDevelopmentOptionsController(ClearAdbKeysPreferenceController.class);
mDashboard.onAdbClearKeysDialogConfirmed();
verify(controller).onClearAdbKeysConfirmed();
@@ -232,9 +231,9 @@
@Test
public void onDisableLogPersistDialogConfirmed_shouldCallControllerDialogConfirmed() {
final LogPersistPreferenceController controller =
- mock(LogPersistPreferenceController.class);
+ mock(LogPersistPreferenceController.class);
doReturn(controller).when(mDashboard)
- .getDevelopmentOptionsController(LogPersistPreferenceController.class);
+ .getDevelopmentOptionsController(LogPersistPreferenceController.class);
mDashboard.onDisableLogPersistDialogConfirmed();
verify(controller).onDisableLogPersistDialogConfirmed();
@@ -243,9 +242,9 @@
@Test
public void onDisableLogPersistDialogRejected_shouldCallControllerDialogRejected() {
final LogPersistPreferenceController controller =
- mock(LogPersistPreferenceController.class);
+ mock(LogPersistPreferenceController.class);
doReturn(controller).when(mDashboard)
- .getDevelopmentOptionsController(LogPersistPreferenceController.class);
+ .getDevelopmentOptionsController(LogPersistPreferenceController.class);
mDashboard.onDisableLogPersistDialogRejected();
verify(controller).onDisableLogPersistDialogRejected();
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java
index a6d11e9..688db76 100644
--- a/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java
@@ -24,11 +24,11 @@
import static org.mockito.Mockito.when;
import android.content.Context;
-import android.os.UserManager;
import androidx.lifecycle.LifecycleOwner;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settings.widget.SwitchBar;
import com.android.settings.widget.SwitchBar.OnSwitchChangeListener;
@@ -41,14 +41,13 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = ShadowUtils.class)
+@Config(shadows = {ShadowUtils.class, ShadowUserManager.class})
public class DevelopmentSwitchBarControllerTest {
@Mock
@@ -61,8 +60,7 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
final Context context = RuntimeEnvironment.application;
- UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
- Shadows.shadowOf(userManager).setIsAdminUser(true);
+ ShadowUserManager.getShadow().setIsAdminUser(true);
mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner);
mSwitchBar = new SwitchBar(context);
@@ -72,6 +70,7 @@
@After
public void tearDown() {
ShadowUtils.reset();
+ ShadowUserManager.getShadow().reset();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java
index 8bc3ef6..5c76e08 100644
--- a/tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java
@@ -61,7 +61,7 @@
public void onPreferenceChanged_turnOnAutomaticUpdates() {
mController.onPreferenceChange(null, true);
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE, -1);
assertThat(mode).isEqualTo(
@@ -72,7 +72,7 @@
public void onPreferenceChanged_turnOffAutomaticUpdates() {
mController.onPreferenceChange(null, false);
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE, -1);
assertThat(mode).isEqualTo(
@@ -81,7 +81,7 @@
@Test
public void updateState_preferenceShouldBeChecked() {
- Settings.System
+ Settings.Global
.putInt(mContext.getContentResolver(), Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE,
DisableAutomaticUpdatesPreferenceController.ENABLE_UPDATES_SETTING);
mController.updateState(mPreference);
@@ -91,7 +91,7 @@
@Test
public void updateState_preferenceShouldNotBeChecked() {
- Settings.System
+ Settings.Global
.putInt(mContext.getContentResolver(), Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE,
DisableAutomaticUpdatesPreferenceController.DISABLE_UPDATES_SETTING);
mController.updateState(mPreference);
diff --git a/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java
index b58f756..08fb23e 100644
--- a/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java
@@ -19,7 +19,6 @@
import static com.android.settings.development.FreeformWindowsPreferenceController
.SETTING_VALUE_OFF;
import static com.android.settings.development.FreeformWindowsPreferenceController.SETTING_VALUE_ON;
-import static com.android.settings.development.FreeformWindowsPreferenceController.USER_BUILD_TYPE;
import static com.google.common.truth.Truth.assertThat;
@@ -47,6 +46,7 @@
public class FreeformWindowsPreferenceControllerTest {
private static final String ENG_BUILD_TYPE = "eng";
+ private static final String USER_BUILD_TYPE = "user";
@Mock
private SwitchPreference mPreference;
@@ -74,11 +74,11 @@
}
@Test
- public void isAvaiable_userBuild_shouldBeFalse() {
+ public void isAvaiable_userBuild_shouldBeTrue() {
mController = spy(mController);
doReturn(USER_BUILD_TYPE).when(mController).getBuildType();
- assertThat(mController.isAvailable()).isFalse();
+ assertThat(mController.isAvailable()).isTrue();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/development/HighFrequencyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/HighFrequencyPreferenceControllerTest.java
deleted file mode 100644
index 700f544..0000000
--- a/tests/robotests/src/com/android/settings/development/HighFrequencyPreferenceControllerTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.development;
-
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.IBinder;
-import android.os.RemoteException;
-
-import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
-
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.util.ReflectionHelpers;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public class HighFrequencyPreferenceControllerTest {
-
- private Context mContext;
- private SwitchPreference mPreference;
-
- @Mock
- private PreferenceScreen mScreen;
- @Mock
- private IBinder mSurfaceFlingerBinder;
-
- private HighFrequencyDisplayPreferenceController mController;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application;
- mPreference = new SwitchPreference(mContext);
- mController = spy(new HighFrequencyDisplayPreferenceController(mContext));
- ReflectionHelpers.setField(mController, "mSurfaceFlingerBinder", mSurfaceFlingerBinder);
- when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
- mController.displayPreference(mScreen);
- }
-
- @Test
- public void onPreferenceChange_settingToggledOn_shouldWriteTrueToHighFrequencySetting() {
- mController.onPreferenceChange(mPreference, true /* new value */);
-
- verify(mController).writeHighFrequencyDisplaySetting(true);
- }
-
- @Test
- public void onPreferenceChange_settingToggledOff_shouldWriteFalseToHighFrequencySetting() {
- mController.onPreferenceChange(mPreference, false /* new value */);
-
- verify(mController).writeHighFrequencyDisplaySetting(false);
- }
-
- @Test
- public void updateState_settingEnabled_shouldCheckPreference() throws RemoteException {
- mController.writeHighFrequencyDisplaySetting(true);
- mController.updateState(mPreference);
-
- verify(mController).readHighFrequencyDisplaySetting();
- }
-
- @Test
- public void updateState_settingDisabled_shouldUnCheckPreference() throws RemoteException {
- mController.writeHighFrequencyDisplaySetting(true);
- mController.updateState(mPreference);
-
- verify(mController).readHighFrequencyDisplaySetting();
- }
-
- @Test
- public void onDeveloperOptionsSwitchDisabled_preferenceChecked_shouldTurnOffPreference() {
- mController.onDeveloperOptionsSwitchDisabled();
-
- verify(mController).writeHighFrequencyDisplaySetting(false);
- }
-
- @Test
- public void onDeveloperOptionsSwitchDisabled_preferenceUnchecked_shouldNotTurnOffPreference() {
- mController.onDeveloperOptionsSwitchDisabled();
-
- verify(mController).writeHighFrequencyDisplaySetting(false);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/development/KeepActivitiesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/KeepActivitiesPreferenceControllerTest.java
index a71f9b0..05aee64 100644
--- a/tests/robotests/src/com/android/settings/development/KeepActivitiesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/KeepActivitiesPreferenceControllerTest.java
@@ -84,7 +84,7 @@
@Test
public void updateState_settingEnabled_preferenceShouldBeChecked() {
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.ALWAYS_FINISH_ACTIVITIES, SETTING_VALUE_ON);
mController.updateState(mPreference);
@@ -93,7 +93,7 @@
@Test
public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.ALWAYS_FINISH_ACTIVITIES, SETTING_VALUE_OFF);
mController.updateState(mPreference);
diff --git a/tests/robotests/src/com/android/settings/development/MobileDataAlwaysOnPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/MobileDataAlwaysOnPreferenceControllerTest.java
index 7424753..a578429 100644
--- a/tests/robotests/src/com/android/settings/development/MobileDataAlwaysOnPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/MobileDataAlwaysOnPreferenceControllerTest.java
@@ -61,7 +61,7 @@
public void onPreferenceChanged_turnOnPreference_shouldEnableMobileDataAlwaysOn() {
mController.onPreferenceChange(mPreference, true /* new value */);
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.MOBILE_DATA_ALWAYS_ON, -1 /* default */);
assertThat(mode).isEqualTo(MobileDataAlwaysOnPreferenceController.SETTING_VALUE_ON);
@@ -71,7 +71,7 @@
public void onPreferenceChanged_turnOffPreference_shouldDisableMobileDataAlwaysOn() {
mController.onPreferenceChange(mPreference, false /* new value */);
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.MOBILE_DATA_ALWAYS_ON, -1 /* default */);
assertThat(mode).isEqualTo(MobileDataAlwaysOnPreferenceController.SETTING_VALUE_OFF);
@@ -79,7 +79,7 @@
@Test
public void updateState_settingEnabled_preferenceShouldBeChecked() {
- Settings.System.putInt(mContext.getContentResolver(), Settings.Global.MOBILE_DATA_ALWAYS_ON,
+ Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.MOBILE_DATA_ALWAYS_ON,
MobileDataAlwaysOnPreferenceController.SETTING_VALUE_ON);
mController.updateState(mPreference);
@@ -88,7 +88,7 @@
@Test
public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
- Settings.System.putInt(mContext.getContentResolver(), Settings.Global.MOBILE_DATA_ALWAYS_ON,
+ Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.MOBILE_DATA_ALWAYS_ON,
MobileDataAlwaysOnPreferenceController.SETTING_VALUE_OFF);
mController.updateState(mPreference);
@@ -98,7 +98,7 @@
@Test
public void onDeveloperOptionsSwitchDisabled_preferenceShouldBeDisabled() {
mController.onDeveloperOptionsSwitchDisabled();
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.MOBILE_DATA_ALWAYS_ON, -1 /* default */);
assertThat(mode).isEqualTo(MobileDataAlwaysOnPreferenceController.SETTING_VALUE_OFF);
diff --git a/tests/robotests/src/com/android/settings/development/SmsAccessRestrictionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/SmsAccessRestrictionPreferenceControllerTest.java
new file mode 100644
index 0000000..7a0dd68
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/SmsAccessRestrictionPreferenceControllerTest.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2017 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.development;
+
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class SmsAccessRestrictionPreferenceControllerTest {
+
+ @Mock
+ private SwitchPreference mPreference;
+ @Mock
+ private PreferenceScreen mPreferenceScreen;
+
+ private Context mContext;
+ private SmsAccessRestrictionPreferenceController mController;
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+ mController = new SmsAccessRestrictionPreferenceController(mContext);
+ when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
+ .thenReturn(mPreference);
+ mController.displayPreference(mPreferenceScreen);
+ }
+
+ @Test
+ public void onPreferenceChange_settingEnabled_enableSmsRestrictionShouldBeOn() {
+ mController.onPreferenceChange(mPreference, true /* new value */);
+
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.SMS_ACCESS_RESTRICTION_ENABLED, -1 /* default */);
+
+ assertThat(mode).isEqualTo(1);
+ }
+
+ @Test
+ public void onPreferenceChange_settingDisabled_enableSmsRestrictionShouldBeOff() {
+ mController.onPreferenceChange(mPreference, false /* new value */);
+
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.SMS_ACCESS_RESTRICTION_ENABLED, -1 /* default */);
+
+ assertThat(mode).isEqualTo(0);
+ }
+
+ @Test
+ public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.SMS_ACCESS_RESTRICTION_ENABLED, 0);
+ mController.updateState(mPreference);
+
+ verify(mPreference).setChecked(false);
+ }
+
+ @Test
+ public void updateState_settingEnabled_preferenceShouldBeChecked() {
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.SMS_ACCESS_RESTRICTION_ENABLED, 1);
+ mController.updateState(mPreference);
+
+ verify(mPreference).setChecked(true);
+ }
+
+ @Test
+ public void onDeveloperOptionsSwitchDisabled_shouldDisablePreference() {
+ mController.onDeveloperOptionsSwitchDisabled();
+
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.SMS_ACCESS_RESTRICTION_ENABLED, -1 /* default */);
+
+ assertThat(mode).isEqualTo(0);
+ verify(mPreference).setChecked(false);
+ verify(mPreference).setEnabled(false);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/development/StayAwakePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/StayAwakePreferenceControllerTest.java
index 05edd14..97b4bf0 100644
--- a/tests/robotests/src/com/android/settings/development/StayAwakePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/StayAwakePreferenceControllerTest.java
@@ -72,7 +72,7 @@
public void onPreferenceChanged_turnOnStayAwake() {
mController.onPreferenceChange(null, true);
- final int mode = Settings.System.getInt(mContentResolver,
+ final int mode = Settings.Global.getInt(mContentResolver,
Settings.Global.STAY_ON_WHILE_PLUGGED_IN, -1);
assertThat(mode).isEqualTo(StayAwakePreferenceController.SETTING_VALUE_ON);
@@ -82,7 +82,7 @@
public void onPreferenceChanged_turnOffStayAwake() {
mController.onPreferenceChange(null, false);
- final int mode = Settings.System.getInt(mContentResolver,
+ final int mode = Settings.Global.getInt(mContentResolver,
Settings.Global.STAY_ON_WHILE_PLUGGED_IN, -1);
assertThat(mode).isEqualTo(StayAwakePreferenceController.SETTING_VALUE_OFF);
@@ -90,7 +90,7 @@
@Test
public void updateState_preferenceShouldBeChecked() {
- Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
+ Settings.Global.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
StayAwakePreferenceController.SETTING_VALUE_ON);
mController.updateState(mPreference);
@@ -99,7 +99,7 @@
@Test
public void updateState_preferenceShouldNotBeChecked() {
- Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
+ Settings.Global.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
StayAwakePreferenceController.SETTING_VALUE_OFF);
mController.updateState(mPreference);
@@ -119,7 +119,7 @@
@Test
public void observerOnChangeCalledWithSameUri_preferenceShouldBeUpdated() {
- Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
+ Settings.Global.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
StayAwakePreferenceController.SETTING_VALUE_ON);
mController.onResume();
mController.mSettingsObserver.onChange(false,
@@ -130,7 +130,7 @@
@Test
public void observerOnChangeCalledWithDifferentUri_preferenceShouldNotBeUpdated() {
- Settings.System.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
+ Settings.Global.putInt(mContentResolver, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
StayAwakePreferenceController.SETTING_VALUE_ON);
mController.onResume();
mController.mSettingsObserver.onChange(false, null);
diff --git a/tests/robotests/src/com/android/settings/development/TetheringHardwareAccelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/TetheringHardwareAccelPreferenceControllerTest.java
index e44aeb4..dc1d622 100644
--- a/tests/robotests/src/com/android/settings/development/TetheringHardwareAccelPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/TetheringHardwareAccelPreferenceControllerTest.java
@@ -61,7 +61,7 @@
public void onPreferenceChanged_settingEnabled_turnOnTetheringAccel() {
mController.onPreferenceChange(mPreference, true /* new value */);
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.TETHER_OFFLOAD_DISABLED, -1 /* default */);
assertThat(mode).isEqualTo(TetheringHardwareAccelPreferenceController.SETTING_VALUE_ON);
@@ -71,7 +71,7 @@
public void onPreferenceChanged_settingDisabled_turnOffTetheringAccel() {
mController.onPreferenceChange(mPreference, false /* new value */);
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.TETHER_OFFLOAD_DISABLED, -1 /* default */);
assertThat(mode).isEqualTo(TetheringHardwareAccelPreferenceController.SETTING_VALUE_OFF);
@@ -79,7 +79,7 @@
@Test
public void updateState_settingEnabled_preferenceShouldBeChecked() {
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.TETHER_OFFLOAD_DISABLED,
TetheringHardwareAccelPreferenceController.SETTING_VALUE_ON);
mController.updateState(mPreference);
@@ -89,7 +89,7 @@
@Test
public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.TETHER_OFFLOAD_DISABLED,
TetheringHardwareAccelPreferenceController.SETTING_VALUE_OFF);
mController.updateState(mPreference);
@@ -100,7 +100,7 @@
@Test
public void onDeveloperOptionsSwitchDisabled_shouldDisablePreference() {
mController.onDeveloperOptionsSwitchDisabled();
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.TETHER_OFFLOAD_DISABLED, -1 /* default */);
assertThat(mode).isEqualTo(TetheringHardwareAccelPreferenceController.SETTING_VALUE_OFF);
diff --git a/tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java
index 742bc7f..f712423 100644
--- a/tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java
@@ -61,7 +61,7 @@
public void onPreferenceChanged_turnOnWifiDisplayCertification() {
mController.onPreferenceChange(mPreference, true /* new value */);
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON, -1 /* default */);
assertThat(mode).isEqualTo(WifiDisplayCertificationPreferenceController.SETTING_VALUE_ON);
@@ -71,7 +71,7 @@
public void onPreferenceChanged_turnOffWifiDisplayCertification() {
mController.onPreferenceChange(mPreference, false /* new value */);
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON, -1 /* default */);
assertThat(mode).isEqualTo(WifiDisplayCertificationPreferenceController.SETTING_VALUE_OFF);
@@ -79,7 +79,7 @@
@Test
public void updateState_preferenceShouldBeChecked() {
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON,
WifiDisplayCertificationPreferenceController.SETTING_VALUE_ON);
mController.updateState(mPreference);
@@ -89,7 +89,7 @@
@Test
public void updateState_preferenceShouldNotBeChecked() {
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON,
WifiDisplayCertificationPreferenceController.SETTING_VALUE_OFF);
mController.updateState(mPreference);
@@ -100,7 +100,7 @@
@Test
public void onDeveloperOptionsDisabled_shouldDisablePreference() {
mController.onDeveloperOptionsDisabled();
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
+ final int mode = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON, -1 /* default */);
assertThat(mode).isEqualTo(WifiDisplayCertificationPreferenceController.SETTING_VALUE_OFF);
diff --git a/tests/robotests/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceControllerTest.java
index 2e538e0..1268797 100644
--- a/tests/robotests/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/autofill/AutofillLoggingLevelPreferenceControllerTest.java
@@ -16,6 +16,9 @@
package com.android.settings.development.autofill;
+import static androidx.lifecycle.Lifecycle.Event.ON_CREATE;
+import static androidx.lifecycle.Lifecycle.Event.ON_DESTROY;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.verify;
@@ -25,18 +28,25 @@
import android.content.res.Resources;
import android.view.autofill.AutofillManager;
+import androidx.lifecycle.LifecycleOwner;
import androidx.preference.ListPreference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.Resetter;
@RunWith(SettingsRobolectricTestRunner.class)
public class AutofillLoggingLevelPreferenceControllerTest {
@@ -57,20 +67,30 @@
private String[] mListValues;
private String[] mListSummaries;
+ private LifecycleOwner mLifecycleOwner;
+ private Lifecycle mLifecycle;
+
@Before
public void setup() {
MockitoAnnotations.initMocks(this); // TODO: use @Rule
+ mLifecycleOwner = () -> mLifecycle;
+ mLifecycle = new Lifecycle(mLifecycleOwner);
mContext = RuntimeEnvironment.application;
mHelper = new AutofillTestingHelper(mContext);
final Resources resources = mContext.getResources();
mListValues = resources.getStringArray(R.array.autofill_logging_level_values);
mListSummaries = resources.getStringArray(R.array.autofill_logging_level_entries);
- mController = new AutofillLoggingLevelPreferenceController(mContext);
+ mController = new AutofillLoggingLevelPreferenceController(mContext, mLifecycle);
when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
- .thenReturn(mPreference);
+ .thenReturn(mPreference);
mController.displayPreference(mPreferenceScreen);
}
+ @After
+ public void tearDown() {
+ ShadowAutofillLoggingLevelPreferenceController.reset();
+ }
+
@Test
public void handlePreferenceTreeClick_differentPreferenceKey_shouldNotTrigger()
throws Exception {
@@ -141,4 +161,28 @@
verify(mPreference).setValue(mListValues[IDX_VERBOSE]);
verify(mPreference).setSummary(mListSummaries[IDX_VERBOSE]);
}
+
+ @Test
+ @Config(shadows = ShadowAutofillLoggingLevelPreferenceController.class)
+ public void onDestory_shouldUnregisterObserver() {
+ mLifecycle.handleLifecycleEvent(ON_CREATE);
+ mLifecycle.handleLifecycleEvent(ON_DESTROY);
+
+ assertThat(ShadowAutofillLoggingLevelPreferenceController.isUnregisterObserver).isTrue();
+ }
+
+ @Implements(AutofillLoggingLevelPreferenceController.class)
+ public static class ShadowAutofillLoggingLevelPreferenceController {
+ private static boolean isUnregisterObserver = false;
+
+ @Implementation
+ public void onDestroy() {
+ isUnregisterObserver = true;
+ }
+
+ @Resetter
+ public static void reset() {
+ isUnregisterObserver = false;
+ }
+ }
}
diff --git a/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java b/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java
index c6ac4ae..12661e3 100644
--- a/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java
+++ b/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java
@@ -24,6 +24,7 @@
import android.content.ComponentName;
import android.content.pm.PackageManager;
+import android.os.UserManager;
import android.service.quicksettings.Tile;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -35,6 +36,9 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
+import org.robolectric.shadows.ShadowUserManager;
@RunWith(SettingsRobolectricTestRunner.class)
public class DevelopmentTilesTest {
@@ -50,6 +54,9 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mService = spy(Robolectric.setupService(DevelopmentTiles.ShowLayout.class));
+ final ShadowUserManager um = Shadows.shadowOf(
+ RuntimeEnvironment.application.getSystemService(UserManager.class));
+ um.setIsAdminUser(true);
doReturn(mTile).when(mService).getQsTile();
}
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
index d1d98eb..c88237d 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
@@ -81,10 +81,8 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
- final UserManager userManager =
- (UserManager) mContext.getSystemService(Context.USER_SERVICE);
- mShadowUserManager = Shadows.shadowOf(userManager);
- mShadowUserManager.setIsAdminUser(true);
+ mShadowUserManager = Shadows.shadowOf(
+ RuntimeEnvironment.application.getSystemService(UserManager.class));
mFactory = FakeFeatureFactory.setupForTest();
mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner);
@@ -101,8 +99,6 @@
@After
public void tearDown() {
ShadowUtils.reset();
- mShadowUserManager.setIsAdminUser(false);
- mShadowUserManager.setIsDemoUser(false);
}
@Test
@@ -201,6 +197,7 @@
@Test
public void onActivityResult_confirmPasswordRequestCompleted_enableDevPref() {
+ mShadowUserManager.setIsAdminUser(true);
mController =
new BuildNumberPreferenceController(mContext, mActivity, mFragment, mLifecycle);
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/DeviceNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/DeviceNamePreferenceControllerTest.java
index 8662c7f..9fb756a 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/DeviceNamePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/DeviceNamePreferenceControllerTest.java
@@ -44,6 +44,7 @@
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
@@ -67,7 +68,7 @@
MockitoAnnotations.initMocks(this);
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.WIFI_SERVICE, mWifiManager);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mPreference = new ValidatedEditTextPreference(mContext);
when(mScreen.findPreference(anyString())).thenReturn(mPreference);
final WifiConfiguration configuration = new WifiConfiguration();
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java
index 8ba4553..983621c 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java
@@ -22,6 +22,7 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.Activity;
import android.content.pm.PackageManager;
import android.os.storage.VolumeInfo;
import android.view.Menu;
@@ -37,7 +38,7 @@
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
import org.robolectric.shadows.ShadowApplication;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -68,7 +69,7 @@
when(mMigrateMenuItem.getItemId()).thenReturn(100);
mController = new PrivateVolumeOptionMenuController(
- RuntimeEnvironment.application, mPrimaryInfo, mPm);
+ Robolectric.setupActivity(Activity.class), mPrimaryInfo, mPm);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/deviceinfo/DeviceNameWarningDialogTest.java b/tests/robotests/src/com/android/settings/deviceinfo/aboutphone/DeviceNameWarningDialogTest.java
similarity index 72%
rename from tests/robotests/src/com/android/settings/deviceinfo/deviceinfo/DeviceNameWarningDialogTest.java
rename to tests/robotests/src/com/android/settings/deviceinfo/aboutphone/DeviceNameWarningDialogTest.java
index 0be0ac2..6ea36a0 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/deviceinfo/DeviceNameWarningDialogTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/aboutphone/DeviceNameWarningDialogTest.java
@@ -1,4 +1,20 @@
-package com.android.settings.deviceinfo.deviceinfo;
+/*
+ * 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.
+ */
+
+package com.android.settings.deviceinfo.aboutphone;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
@@ -6,8 +22,6 @@
import android.content.DialogInterface;
-import com.android.settings.deviceinfo.aboutphone.DeviceNameWarningDialog;
-import com.android.settings.deviceinfo.aboutphone.MyDeviceInfoFragment;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/MyDeviceInfoFragmentTest.java b/tests/robotests/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragmentTest.java
similarity index 97%
rename from tests/robotests/src/com/android/settings/deviceinfo/MyDeviceInfoFragmentTest.java
rename to tests/robotests/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragmentTest.java
index 4a741cf..e304a1e 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/MyDeviceInfoFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragmentTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.deviceinfo;
+package com.android.settings.deviceinfo.aboutphone;
import static com.android.settings.SettingsActivity.EXTRA_FRAGMENT_ARG_KEY;
@@ -35,7 +35,7 @@
import androidx.fragment.app.FragmentActivity;
import androidx.preference.PreferenceScreen;
-import com.android.settings.deviceinfo.aboutphone.MyDeviceInfoFragment;
+import com.android.settings.deviceinfo.BuildNumberPreferenceController;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources;
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/aboutphone/TopLevelAboutDevicePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/aboutphone/TopLevelAboutDevicePreferenceControllerTest.java
new file mode 100644
index 0000000..ae3007c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/deviceinfo/aboutphone/TopLevelAboutDevicePreferenceControllerTest.java
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.deviceinfo.aboutphone;
+
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.os.Build;
+
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class TopLevelAboutDevicePreferenceControllerTest {
+
+ private Context mContext;
+ private TopLevelAboutDevicePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ mContext = RuntimeEnvironment.application;
+ mController = new TopLevelAboutDevicePreferenceController(mContext, "test_key");
+ }
+
+ @Test
+ public void getAvailabilityState_shouldBeAvailable() {
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+ }
+
+ @Test
+ public void getSummary_shouldReturnDeviceModel() {
+ assertThat(mController.getSummary().toString()).isEqualTo(Build.MODEL);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelDialogControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelDialogControllerTest.java
index 8cb484e..fe7633c 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelDialogControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelDialogControllerTest.java
@@ -29,6 +29,7 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
@@ -41,7 +42,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
import org.robolectric.util.ReflectionHelpers;
import java.util.Collections;
@@ -62,7 +63,7 @@
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
+ mContext = spy(Robolectric.setupActivity(Activity.class));
when(mDialog.getContext()).thenReturn(mContext);
}
@@ -91,7 +92,7 @@
@Test
public void onClick_noActivityIntent_shouldDoNothing() {
when(mPackageManager.queryIntentActivities(any(), anyInt()))
- .thenReturn(Collections.emptyList());
+ .thenReturn(Collections.emptyList());
mController = new SecurityPatchLevelDialogController(mDialog);
ReflectionHelpers.setField(mController, "mPackageManager", mPackageManager);
@@ -103,7 +104,7 @@
@Test
public void onClick_activityIntentFound_shouldStartActivity() {
when(mPackageManager.queryIntentActivities(any(), anyInt()))
- .thenReturn(Collections.singletonList(null));
+ .thenReturn(Collections.singletonList(null));
mController = new SecurityPatchLevelDialogController(mDialog);
ReflectionHelpers.setField(mController, "mPackageManager", mPackageManager);
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java
index b51ae00..6892191 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceControllerTest.java
@@ -28,6 +28,7 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.Activity;
import android.content.Context;
import android.os.storage.VolumeInfo;
import android.text.format.Formatter;
@@ -51,15 +52,15 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
import java.io.File;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {
- SettingsShadowResources.class,
- SettingsShadowResources.SettingsShadowTheme.class
+ SettingsShadowResources.class,
+ SettingsShadowResources.SettingsShadowTheme.class
})
public class StorageSummaryDonutPreferenceControllerTest {
@@ -74,7 +75,7 @@
public void setUp() throws Exception {
SettingsShadowResources.overrideResource(
com.android.internal.R.string.config_headlineFontFamily, "");
- mContext = spy(RuntimeEnvironment.application.getApplicationContext());
+ mContext = spy(Robolectric.setupActivity(Activity.class));
mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
mMetricsFeatureProvider = mFakeFeatureFactory.getMetricsFeatureProvider();
mController = new StorageSummaryDonutPreferenceController(mContext);
@@ -82,7 +83,8 @@
LayoutInflater inflater = LayoutInflater.from(mContext);
final View view =
- inflater.inflate(mPreference.getLayoutResource(), new LinearLayout(mContext), false);
+ inflater.inflate(mPreference.getLayoutResource(), new LinearLayout(mContext),
+ false);
mHolder = PreferenceViewHolder.createInstanceForTests(view);
}
@@ -92,37 +94,37 @@
}
@Test
- public void testEmpty() throws Exception {
+ public void testEmpty() {
final long totalSpace = 32 * GIGABYTE;
final long usedSpace = 0;
mController.updateBytes(0, 32 * GIGABYTE);
mController.updateState(mPreference);
final Formatter.BytesResult usedSpaceResults =
- Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
+ Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
assertThat(mPreference.getTitle().toString())
- .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
+ .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
assertThat(mPreference.getSummary().toString())
- .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
+ .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
}
@Test
- public void testTotalStorage() throws Exception {
+ public void testTotalStorage() {
final long totalSpace = KILOBYTE * 10;
final long usedSpace = KILOBYTE;
mController.updateBytes(KILOBYTE, totalSpace);
mController.updateState(mPreference);
final Formatter.BytesResult usedSpaceResults =
- Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
+ Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
assertThat(mPreference.getTitle().toString())
- .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
+ .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
assertThat(mPreference.getSummary().toString())
- .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
+ .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
}
@Test
- public void testPopulateWithVolume() throws Exception {
+ public void testPopulateWithVolume() {
final long totalSpace = KILOBYTE * 10;
final long freeSpace = KILOBYTE;
final long usedSpace = totalSpace - freeSpace;
@@ -138,21 +140,21 @@
mController.updateState(mPreference);
final Formatter.BytesResult usedSpaceResults =
- Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
+ Formatter.formatBytes(mContext.getResources(), usedSpace, 0 /* flags */);
assertThat(mPreference.getTitle().toString())
- .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
+ .isEqualTo(usedSpaceResults.value + " " + usedSpaceResults.units);
assertThat(mPreference.getSummary().toString())
- .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
+ .isEqualTo("Used of " + Formatter.formatShortFileSize(mContext, totalSpace));
}
@Test
- public void testFreeUpSpaceMetricIsTriggered() throws Exception {
+ public void testFreeUpSpaceMetricIsTriggered() {
mPreference.onBindViewHolder(mHolder);
final Button button = (Button) mHolder.findViewById(R.id.deletion_helper_button);
mPreference.onClick(button);
verify(mMetricsFeatureProvider, times(1))
- .action(any(Context.class), eq(MetricsEvent.STORAGE_FREE_UP_SPACE_NOW));
+ .action(any(Context.class), eq(MetricsEvent.STORAGE_FREE_UP_SPACE_NOW));
}
}
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/UserProfileControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/UserProfileControllerTest.java
index 419aab5..4706b7d 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/storage/UserProfileControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/UserProfileControllerTest.java
@@ -25,6 +25,7 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.UserInfo;
@@ -47,7 +48,7 @@
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
@RunWith(SettingsRobolectricTestRunner.class)
public class UserProfileControllerTest {
@@ -64,7 +65,7 @@
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
+ mContext = spy(Robolectric.setupActivity(Activity.class));
mPrimaryProfile = new UserInfo();
mController = new UserProfileController(mContext, mPrimaryProfile, 0);
when(mScreen.getContext()).thenReturn(mContext);
@@ -74,7 +75,7 @@
}
@Test
- public void controllerAddsPrimaryProfilePreference() throws Exception {
+ public void controllerAddsPrimaryProfilePreference() {
final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class);
verify(mScreen).addPreference(argumentCaptor.capture());
final Preference preference = argumentCaptor.getValue();
@@ -84,7 +85,7 @@
}
@Test
- public void tappingProfilePreferenceSendsToStorageProfileFragment() throws Exception {
+ public void tappingProfilePreferenceSendsToStorageProfileFragment() {
final ArgumentCaptor<Preference> argumentCaptor = ArgumentCaptor.forClass(Preference.class);
verify(mScreen).addPreference(argumentCaptor.capture());
@@ -100,7 +101,7 @@
}
@Test
- public void acceptingResultUpdatesPreferenceSize() throws Exception {
+ public void acceptingResultUpdatesPreferenceSize() {
final SparseArray<StorageAsyncLoader.AppsStorageResult> result = new SparseArray<>();
final StorageAsyncLoader.AppsStorageResult userResult =
new StorageAsyncLoader.AppsStorageResult();
@@ -121,7 +122,7 @@
}
@Test
- public void iconCallbackChangesPreferenceIcon() throws Exception {
+ public void iconCallbackChangesPreferenceIcon() {
final SparseArray<Drawable> icons = new SparseArray<>();
final UserIconDrawable drawable = mock(UserIconDrawable.class);
when(drawable.mutate()).thenReturn(drawable);
diff --git a/tests/robotests/src/com/android/settings/display/TopLevelDisplayPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/TopLevelDisplayPreferenceControllerTest.java
new file mode 100644
index 0000000..fe4fcc8
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/display/TopLevelDisplayPreferenceControllerTest.java
@@ -0,0 +1,92 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.display;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class TopLevelDisplayPreferenceControllerTest {
+ @Mock
+ private Context mContext;
+ @Mock
+ private PackageManager mPackageManager;
+
+ private TopLevelDisplayPreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ when(mContext.getPackageManager()).thenReturn(mPackageManager);
+ when(mContext.getString(R.string.config_wallpaper_picker_package))
+ .thenReturn("pkg");
+ when(mContext.getString(R.string.config_wallpaper_picker_class))
+ .thenReturn("cls");
+
+ mController = new TopLevelDisplayPreferenceController(mContext, "test_key");
+ }
+
+ @Test
+ public void getAvailability_alwaysAvailable() {
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+ }
+
+ @Test
+ public void getSummary_hasWallpaper_shouldReturnWallpaperSummary() {
+ final List<ResolveInfo> resolveInfos = new ArrayList<>();
+ resolveInfos.add(mock(ResolveInfo.class));
+ when(mPackageManager.queryIntentActivities(any(Intent.class), anyInt()))
+ .thenReturn(resolveInfos);
+
+ assertThat(mController.getSummary())
+ .isEqualTo(mContext.getText(R.string.display_dashboard_summary));
+ }
+
+ @Test
+ public void getSummary_hasWallpaper_shouldReturnNoWallpaperSummary() {
+ final List<ResolveInfo> resolveInfos = new ArrayList<>();
+ when(mPackageManager.queryIntentActivities(any(Intent.class), anyInt()))
+ .thenReturn(resolveInfos);
+
+ assertThat(mController.getSummary())
+ .isEqualTo(mContext.getText(R.string.display_dashboard_nowallpaper_summary));
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/display/WallpaperPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/WallpaperPreferenceControllerTest.java
index 8a24241..b4305b6 100644
--- a/tests/robotests/src/com/android/settings/display/WallpaperPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/WallpaperPreferenceControllerTest.java
@@ -45,6 +45,7 @@
private static final String WALLPAPER_PACKAGE = "TestPkg";
private static final String WALLPAPER_CLASS = "TestCls";
+ private static final String TEST_KEY = "test_key";
@Mock
private Context mContext;
@@ -54,7 +55,7 @@
private WallpaperPreferenceController mController;
@Before
- public void setUp() throws PackageManager.NameNotFoundException {
+ public void setUp() {
MockitoAnnotations.initMocks(this);
when(mContext.getString(R.string.config_wallpaper_picker_package))
.thenReturn(WALLPAPER_PACKAGE);
@@ -62,11 +63,11 @@
.thenReturn(WALLPAPER_CLASS);
when(mContext.getPackageManager()).thenReturn(mPackageManager);
- mController = new WallpaperPreferenceController(mContext);
+ mController = new WallpaperPreferenceController(mContext, TEST_KEY);
}
@Test
- public void isAvailable_wallpaerPickerEnabled_shouldReturnTrue() {
+ public void isAvailable_wallpaperPickerEnabled_shouldReturnTrue() {
final List<ResolveInfo> resolveInfos = new ArrayList<>();
resolveInfos.add(mock(ResolveInfo.class));
when(mPackageManager.queryIntentActivities(any(Intent.class), anyInt()))
@@ -76,7 +77,7 @@
}
@Test
- public void isAvailable_wallpaerPickerDisbled_shouldReturnFalseAndNoCrash() {
+ public void isAvailable_wallpaperPickerDisabled_shouldReturnFalse() {
when(mPackageManager.queryIntentActivities(any(Intent.class), anyInt())).thenReturn(null);
assertThat(mController.isAvailable()).isFalse();
@@ -86,6 +87,5 @@
.thenReturn(resolveInfos);
assertThat(mController.isAvailable()).isFalse();
- // should not crash
}
}
diff --git a/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java b/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java
index 0a265a1..0a661b4 100644
--- a/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java
@@ -67,7 +67,7 @@
@Before
public void setUp() {
- mActivity = Robolectric.buildActivity(CustomActivity.class).get();
+ mActivity = Robolectric.setupActivity(CustomActivity.class);
mActivityShadow = Shadow.extract(mActivity);
mHelper = new ActionDisabledByAdminDialogHelper(mActivity);
}
diff --git a/tests/robotests/src/com/android/settings/flashlight/FlashlightSliceBuilderTest.java b/tests/robotests/src/com/android/settings/flashlight/FlashlightSliceBuilderTest.java
index 6bea031..56a84bb 100644
--- a/tests/robotests/src/com/android/settings/flashlight/FlashlightSliceBuilderTest.java
+++ b/tests/robotests/src/com/android/settings/flashlight/FlashlightSliceBuilderTest.java
@@ -19,8 +19,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.spy;
-
import android.content.Context;
import android.provider.Settings;
@@ -50,7 +48,7 @@
@Before
public void setUp() {
- mContext = spy(RuntimeEnvironment.application);
+ mContext = RuntimeEnvironment.application;
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
index b356c49..1a8d58d 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
@@ -258,7 +258,6 @@
verify(mEntityHeaderController).setIcon(mAppEntry);
verify(mEntityHeaderController).setLabel(mAppEntry);
verify(mEntityHeaderController).setIsInstantApp(true);
- verify(mEntityHeaderController).setSummary((CharSequence) null);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java
index 98031c9..0d3a391 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java
@@ -26,6 +26,7 @@
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
+import android.app.Activity;
import android.app.AppOpsManager;
import android.content.Context;
import android.content.Intent;
@@ -45,7 +46,7 @@
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
import java.util.ArrayList;
import java.util.List;
@@ -92,7 +93,7 @@
mOtherUserPackageOps = new AppOpsManager.PackageOps(
RESTRICTED_PACKAGE_NAME, OTHER_USER_UID, restrictedOps);
- mContext = spy(RuntimeEnvironment.application);
+ mContext = spy(Robolectric.setupActivity(Activity.class));
doReturn(mAppOpsManager).when(mContext).getSystemService(Context.APP_OPS_SERVICE);
doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
doReturn(mContext).when(mFragment).getContext();
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java
index 39555b2..55ab113 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java
@@ -18,6 +18,7 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.Activity;
import android.content.Context;
import com.android.internal.logging.nano.MetricsProto;
@@ -37,7 +38,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
import java.util.ArrayList;
import java.util.List;
@@ -63,7 +64,7 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application;
+ mContext = Robolectric.setupActivity(Activity.class);
mAppInfos = new ArrayList<>();
mAppInfos.add(new AppInfo.Builder()
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java
index 371bfb4..1c8bfdb 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java
@@ -27,6 +27,7 @@
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.testutils.DrawableTestHelper;
import org.junit.Before;
import org.junit.Test;
@@ -59,7 +60,7 @@
assertThat(preference.getTitle()).isEqualTo(TITLE);
assertThat(preference.getSummary()).isEqualTo(SUMMARY);
- assertThat(preference.getIcon()).isEqualTo(mContext.getDrawable(ICON_ID));
+ DrawableTestHelper.assertDrawableResId(preference.getIcon(), ICON_ID);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
index 7d8a88e..20bf4e6 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
@@ -82,7 +82,7 @@
@Test
public void testIsChecked_configIsNotSet_shouldReturnTrue() {
// Set the setting to be enabled.
- Settings.System.putInt(mContentResolver, CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, ON);
+ Settings.Secure.putInt(mContentResolver, CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, ON);
mController = new DoubleTapPowerPreferenceController(mContext, KEY_DOUBLE_TAP_POWER);
assertThat(mController.isChecked()).isTrue();
@@ -91,7 +91,7 @@
@Test
public void testIsChecked_configIsSet_shouldReturnFalse() {
// Set the setting to be disabled.
- Settings.System.putInt(mContentResolver, CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, OFF);
+ Settings.Secure.putInt(mContentResolver, CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, OFF);
mController = new DoubleTapPowerPreferenceController(mContext, KEY_DOUBLE_TAP_POWER);
assertThat(mController.isChecked()).isFalse();
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
index 0fce463..ae97336 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
@@ -139,7 +139,7 @@
public void testIsChecked_configIsSet_shouldReturnTrue() {
// Set the setting to be enabled.
final Context context = RuntimeEnvironment.application;
- Settings.System.putInt(context.getContentResolver(),
+ Settings.Secure.putInt(context.getContentResolver(),
Settings.Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 1);
mController = new DoubleTwistPreferenceController(context, KEY_DOUBLE_TWIST);
@@ -150,7 +150,7 @@
public void testIsChecked_configIsNotSet_shouldReturnFalse() {
// Set the setting to be disabled.
final Context context = RuntimeEnvironment.application;
- Settings.System.putInt(context.getContentResolver(),
+ Settings.Secure.putInt(context.getContentResolver(),
Settings.Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 0);
mController = new DoubleTwistPreferenceController(context, KEY_DOUBLE_TWIST);
diff --git a/tests/robotests/src/com/android/settings/gestures/PreventRingingGesturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PreventRingingGesturePreferenceControllerTest.java
new file mode 100644
index 0000000..6d77d77
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/PreventRingingGesturePreferenceControllerTest.java
@@ -0,0 +1,152 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.gestures;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+import static org.mockito.MockitoAnnotations.initMocks;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.preference.PreferenceCategory;
+import android.provider.Settings;
+
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.widget.RadioButtonPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class PreventRingingGesturePreferenceControllerTest {
+
+ private Context mContext;
+ private Resources mResources;
+ private PreventRingingGesturePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ mContext = spy(RuntimeEnvironment.application);
+ mResources = mock(Resources.class);
+ when(mContext.getResources()).thenReturn(mResources);
+ when(mResources.getBoolean(com.android.internal.R.bool.config_volumeHushGestureEnabled))
+ .thenReturn(true);
+ mController = new PreventRingingGesturePreferenceController(mContext, null);
+ mController.mVibratePref = new RadioButtonPreference(mContext);
+ mController.mNonePref = new RadioButtonPreference(mContext);
+ mController.mMutePref = new RadioButtonPreference(mContext);
+ }
+
+ @Test
+ public void testIsAvailable_configIsTrue_shouldReturnTrue() {
+ when(mResources.getBoolean(
+ com.android.internal.R.bool.config_volumeHushGestureEnabled)).thenReturn(true);
+
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void testIsAvailable_configIsFalse_shouldReturnFalse() {
+ when(mResources.getBoolean(
+ com.android.internal.R.bool.config_volumeHushGestureEnabled)).thenReturn(false);
+
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void testUpdateState_mute() {
+ Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.VOLUME_HUSH_GESTURE,
+ Settings.Secure.VOLUME_HUSH_MUTE);
+ mController.updateState(null);
+ assertThat(mController.mVibratePref.isChecked()).isFalse();
+ assertThat(mController.mNonePref.isChecked()).isFalse();
+ assertThat(mController.mMutePref.isChecked()).isTrue();
+ }
+
+ @Test
+ public void testUpdateState_vibrate() {
+ Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.VOLUME_HUSH_GESTURE,
+ Settings.Secure.VOLUME_HUSH_VIBRATE);
+ mController.updateState(null);
+ assertThat(mController.mVibratePref.isChecked()).isTrue();
+ assertThat(mController.mNonePref.isChecked()).isFalse();
+ assertThat(mController.mMutePref.isChecked()).isFalse();
+ }
+
+ @Test
+ public void testUpdateState_other() {
+ Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.VOLUME_HUSH_GESTURE,
+ 7);
+ mController.updateState(null);
+ assertThat(mController.mVibratePref.isChecked()).isFalse();
+ assertThat(mController.mNonePref.isChecked()).isTrue();
+ assertThat(mController.mMutePref.isChecked()).isFalse();
+ }
+
+ @Test
+ public void testRadioButtonClicked_mute() {
+ RadioButtonPreference rbPref = new RadioButtonPreference(mContext);
+ rbPref.setKey(PreventRingingGesturePreferenceController.KEY_MUTE);
+
+ Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.VOLUME_HUSH_GESTURE,
+ Settings.Secure.VOLUME_HUSH_OFF);
+ mController.onRadioButtonClicked(rbPref);
+
+ assertThat(Settings.Secure.VOLUME_HUSH_MUTE).isEqualTo(
+ Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Secure.VOLUME_HUSH_GESTURE, Settings.Secure.VOLUME_HUSH_OFF));
+ }
+
+ @Test
+ public void testRadioButtonClicked_vibrate() {
+ RadioButtonPreference rbPref = new RadioButtonPreference(mContext);
+ rbPref.setKey(PreventRingingGesturePreferenceController.KEY_VIBRATE);
+
+ Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.VOLUME_HUSH_GESTURE,
+ Settings.Secure.VOLUME_HUSH_OFF);
+ mController.onRadioButtonClicked(rbPref);
+
+ assertThat(Settings.Secure.VOLUME_HUSH_VIBRATE).isEqualTo(
+ Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Secure.VOLUME_HUSH_GESTURE, Settings.Secure.VOLUME_HUSH_OFF));
+ }
+
+ @Test
+ public void testRadioButtonClicked_off() {
+ RadioButtonPreference rbPref = new RadioButtonPreference(mContext);
+ rbPref.setKey(PreventRingingGesturePreferenceController.KEY_NONE);
+
+ Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.VOLUME_HUSH_GESTURE,
+ Settings.Secure.VOLUME_HUSH_MUTE);
+
+ mController.onRadioButtonClicked(rbPref);
+
+ assertThat(Settings.Secure.VOLUME_HUSH_OFF).isEqualTo(
+ Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Secure.VOLUME_HUSH_GESTURE, Settings.Secure.VOLUME_HUSH_VIBRATE));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/PreventRingingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PreventRingingPreferenceControllerTest.java
deleted file mode 100644
index 65c3b5d..0000000
--- a/tests/robotests/src/com/android/settings/gestures/PreventRingingPreferenceControllerTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.gestures;
-
-import static android.provider.Settings.Secure.VOLUME_HUSH_GESTURE;
-import static android.provider.Settings.Secure.VOLUME_HUSH_MUTE;
-import static android.provider.Settings.Secure.VOLUME_HUSH_OFF;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static junit.framework.Assert.assertEquals;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.provider.Settings;
-
-import androidx.preference.ListPreference;
-import androidx.preference.Preference;
-
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public class PreventRingingPreferenceControllerTest {
-
- private static final String KEY_PICK_UP = "gesture_prevent_ringing";
-
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private Context mContext;
-
- private PreventRingingPreferenceController mController;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mController = new PreventRingingPreferenceController(mContext, KEY_PICK_UP);
- }
-
- @Test
- public void testIsAvailable_configIsTrue_shouldReturnTrue() {
- when(mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_volumeHushGestureEnabled)).thenReturn(true);
-
- assertThat(mController.isAvailable()).isTrue();
- }
-
- @Test
- public void testIsAvailable_configIsFalse_shouldReturnFalse() {
- when(mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_volumeHushGestureEnabled)).thenReturn(false);
-
- assertThat(mController.isAvailable()).isFalse();
- }
-
- @Test
- public void testUpdateState_mute() {
- ListPreference pref = mock(ListPreference.class);
- Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.VOLUME_HUSH_GESTURE,
- Settings.Secure.VOLUME_HUSH_MUTE);
- mController.updateState(pref);
- verify(pref).setValue(String.valueOf(Settings.Secure.VOLUME_HUSH_MUTE));
- }
-
- @Test
- public void testUpdateState_vibrate() {
- ListPreference pref = mock(ListPreference.class);
- Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.VOLUME_HUSH_GESTURE,
- Settings.Secure.VOLUME_HUSH_VIBRATE);
- mController.updateState(pref);
- verify(pref).setValue(String.valueOf(Settings.Secure.VOLUME_HUSH_VIBRATE));
- }
-
- @Test
- public void testUpdateState_other() {
- ListPreference pref = mock(ListPreference.class);
- Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.VOLUME_HUSH_GESTURE,
- 7);
- mController.updateState(pref);
- verify(pref).setValue(String.valueOf(Settings.Secure.VOLUME_HUSH_OFF));
- }
-
- @Test
- public void testUpdateState_parentPage() {
- Preference pref = mock(Preference.class);
- // verify no exception
- mController.updateState(pref);
- }
-
- @Test
- public void testOnPreferenceChange() {
- Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.VOLUME_HUSH_GESTURE,
- 7);
-
- mController.onPreferenceChange(mock(Preference.class), String.valueOf(VOLUME_HUSH_MUTE));
-
- assertEquals(VOLUME_HUSH_MUTE, Settings.Secure.getInt(mContext.getContentResolver(),
- VOLUME_HUSH_GESTURE, VOLUME_HUSH_OFF));
- }
-}
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
index fefff22..b2816b5 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
@@ -100,7 +100,7 @@
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
// Set the setting to be enabled.
final Context context = RuntimeEnvironment.application;
- Settings.System.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 1);
+ Settings.Secure.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 1);
mController = new SwipeToNotificationPreferenceController(context, KEY_SWIPE_DOWN);
assertThat(mController.isChecked()).isTrue();
@@ -112,7 +112,7 @@
when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
// Set the setting to be disabled.
final Context context = RuntimeEnvironment.application;
- Settings.System.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 0);
+ Settings.Secure.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 0);
mController = new SwipeToNotificationPreferenceController(context, KEY_SWIPE_DOWN);
assertThat(mController.isChecked()).isFalse();
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
index b140b52..1ce6d0a 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
@@ -21,7 +21,9 @@
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.ApplicationInfo;
import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
import com.android.internal.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -69,7 +71,14 @@
mContext.getString(com.android.internal.R.string.config_recentsComponentName));
final Intent quickStepIntent = new Intent(ACTION_QUICKSTEP)
.setPackage(recentsComponentName.getPackageName());
- mPackageManager.addResolveInfoForIntent(quickStepIntent, new ResolveInfo());
+ final ResolveInfo info = new ResolveInfo();
+ info.serviceInfo = new ServiceInfo();
+ info.resolvePackageName = recentsComponentName.getPackageName();
+ info.serviceInfo.packageName = info.resolvePackageName;
+ info.serviceInfo.name = recentsComponentName.getClassName();
+ info.serviceInfo.applicationInfo = new ApplicationInfo();
+ info.serviceInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
+ mPackageManager.addResolveInfoForIntent(quickStepIntent, info);
assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isTrue();
}
@@ -121,7 +130,7 @@
@Test
public void isSliceableCorrectKey_returnsTrue() {
final SwipeUpPreferenceController controller =
- new SwipeUpPreferenceController(mContext,"gesture_swipe_up");
+ new SwipeUpPreferenceController(mContext, "gesture_swipe_up");
assertThat(controller.isSliceable()).isTrue();
}
diff --git a/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java b/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
new file mode 100644
index 0000000..f122819
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.util.FeatureFlagUtils;
+
+import com.android.settings.SettingsActivity;
+import com.android.settings.core.FeatureFlags;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
+import org.robolectric.shadows.ShadowActivity;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class SettingsHomepageActivityTest {
+
+ @Test
+ public void launch_featureFlagOff_shouldRedirectToSettingsActivity() {
+ FeatureFlagUtils.setEnabled(RuntimeEnvironment.application, FeatureFlags.DYNAMIC_HOMEPAGE,
+ false);
+
+ final ShadowActivity shadowActivity = Shadows.shadowOf(
+ Robolectric.setupActivity(SettingsHomepageActivity.class));
+ assertThat(shadowActivity.getNextStartedActivity().getComponent().getClassName())
+ .isEqualTo(SettingsActivity.class.getName());
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/homepage/conditional/ConditionAdapterTest.java b/tests/robotests/src/com/android/settings/homepage/conditional/ConditionAdapterTest.java
deleted file mode 100644
index 4d154da..0000000
--- a/tests/robotests/src/com/android/settings/homepage/conditional/ConditionAdapterTest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2017 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.homepage.conditional;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyLong;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.LinearLayout;
-
-import com.android.settings.R;
-import com.android.settings.dashboard.DashboardAdapter;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public class ConditionAdapterTest {
-
- @Mock
- private ConditionalCard mCondition1;
- @Mock
- private ConditionalCard mCondition2;
- @Mock
- private ConditionManager mConditionManager;
-
- private Context mContext;
- private ConditionAdapter mConditionAdapter;
- private List<ConditionalCard> mOneCondition;
- private List<ConditionalCard> mTwoConditions;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application;
- final CharSequence action = "action";
- when(mCondition1.getActionText()).thenReturn(action);
- mOneCondition = new ArrayList<>();
- mOneCondition.add(mCondition1);
- mTwoConditions = new ArrayList<>();
- mTwoConditions.add(mCondition1);
- mTwoConditions.add(mCondition2);
- }
-
- @Test
- public void getItemCount_notExpanded_shouldReturn0() {
- mConditionAdapter = new ConditionAdapter(mContext, mConditionManager, mOneCondition, false);
- assertThat(mConditionAdapter.getItemCount()).isEqualTo(0);
- }
-
- @Test
- public void getItemCount_expanded_shouldReturnListSize() {
- mConditionAdapter = new ConditionAdapter(mContext, mConditionManager, mOneCondition, true);
- assertThat(mConditionAdapter.getItemCount()).isEqualTo(1);
-
- mConditionAdapter = new ConditionAdapter(mContext, mConditionManager, mTwoConditions, true);
- assertThat(mConditionAdapter.getItemCount()).isEqualTo(2);
- }
-
- @Test
- public void getItemViewType_shouldReturnConditionTile() {
- mConditionAdapter = new ConditionAdapter(mContext, mConditionManager, mTwoConditions, true);
- assertThat(mConditionAdapter.getItemViewType(0)).isEqualTo(R.layout.condition_tile);
- }
-
- @Test
- public void onBindViewHolder_shouldSetListener() {
- final View view = LayoutInflater.from(mContext)
- .inflate(R.layout.condition_tile, new LinearLayout(mContext), true);
- final DashboardAdapter.DashboardItemHolder viewHolder =
- new DashboardAdapter.DashboardItemHolder(view);
- mConditionAdapter = new ConditionAdapter(mContext, mConditionManager, mOneCondition, true);
-
- mConditionAdapter.onBindViewHolder(viewHolder, 0);
- final View card = view.findViewById(R.id.content);
- assertThat(card).isNotNull();
- assertThat(card.hasOnClickListeners()).isTrue();
- }
-
- @Test
- public void viewClick_shouldInvokeConditionPrimaryClick() {
- final View view = LayoutInflater.from(mContext)
- .inflate(R.layout.condition_tile, new LinearLayout(mContext), true);
- final DashboardAdapter.DashboardItemHolder viewHolder =
- new DashboardAdapter.DashboardItemHolder(view);
- mConditionAdapter = new ConditionAdapter(mContext, mConditionManager, mOneCondition, true);
-
- mConditionAdapter.onBindViewHolder(viewHolder, 0);
- final View card = view.findViewById(R.id.content);
- assertThat(card).isNotNull();
- card.performClick();
- verify(mConditionManager).onPrimaryClick(any(Context.class), anyLong());
- }
-}
diff --git a/tests/robotests/src/com/android/settings/homepage/conditional/DndConditionalCardTest.java b/tests/robotests/src/com/android/settings/homepage/conditional/DndConditionalCardTest.java
deleted file mode 100644
index b22c89a..0000000
--- a/tests/robotests/src/com/android/settings/homepage/conditional/DndConditionalCardTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage.conditional;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyLong;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public class DndConditionalCardTest {
-
- @Mock
- private ConditionManager mManager;
- private DndConditionCardController mController;
-
- private Context mContext;
- private DndConditionCard mCard;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
-
- mController = new DndConditionCardController(mContext, mManager);
- when(mManager.getController(anyLong())).thenReturn(mController);
-
- mCard = new DndConditionCard(mContext, mManager);
- }
-
- @Test
- public void getId_sameAsController() {
- assertThat(mCard.getId()).isEqualTo(mController.getId());
- }
-
-}
diff --git a/tests/robotests/src/com/android/settings/homepage/conditional/RingerVibrateConditionCardTest.java b/tests/robotests/src/com/android/settings/homepage/conditional/RingerVibrateConditionCardTest.java
deleted file mode 100644
index 1f976dd..0000000
--- a/tests/robotests/src/com/android/settings/homepage/conditional/RingerVibrateConditionCardTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage.conditional;
-
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-
-import com.android.settings.R;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public class RingerVibrateConditionCardTest {
-
- private Context mContext;
- private RingerVibrateConditionCard mCard;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application;
- mCard = new RingerVibrateConditionCard(mContext);
- }
-
- @Test
- public void verifyText() {
- assertThat(mCard.getTitle()).isEqualTo(
- mContext.getText(R.string.condition_device_vibrate_title));
- assertThat(mCard.getSummary()).isEqualTo(
- mContext.getText(R.string.condition_device_vibrate_summary));
- assertThat(mCard.getActionText()).isEqualTo(
- mContext.getText(R.string.condition_device_muted_action_turn_on_sound));
- }
-}
diff --git a/tests/robotests/src/com/android/settings/homepage/CardContentProviderTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/CardContentProviderTest.java
similarity index 99%
rename from tests/robotests/src/com/android/settings/homepage/CardContentProviderTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/CardContentProviderTest.java
index f89d037..0ffabb4 100644
--- a/tests/robotests/src/com/android/settings/homepage/CardContentProviderTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/CardContentProviderTest.java
@@ -12,10 +12,9 @@
* 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.homepage;
+package com.android.settings.homepage.contextualcards;
import static com.google.common.truth.Truth.assertThat;
diff --git a/tests/robotests/src/com/android/settings/homepage/CardDatabaseHelperTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/CardDatabaseHelperTest.java
similarity index 60%
rename from tests/robotests/src/com/android/settings/homepage/CardDatabaseHelperTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/CardDatabaseHelperTest.java
index 6a17a25..ef60f85 100644
--- a/tests/robotests/src/com/android/settings/homepage/CardDatabaseHelperTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/CardDatabaseHelperTest.java
@@ -12,17 +12,18 @@
* 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.homepage;
+package com.android.settings.homepage.contextualcards;
import static com.google.common.truth.Truth.assertThat;
+import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
+import com.android.settings.intelligence.ContextualCardProto;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.After;
@@ -31,6 +32,9 @@
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
+import java.util.ArrayList;
+import java.util.List;
+
@RunWith(SettingsRobolectricTestRunner.class)
public class CardDatabaseHelperTest {
@@ -75,9 +79,44 @@
CardDatabaseHelper.CardColumns.CARD_ACTION,
CardDatabaseHelper.CardColumns.EXPIRE_TIME_MS,
CardDatabaseHelper.CardColumns.SUPPORT_HALF_WIDTH,
+ CardDatabaseHelper.CardColumns.CARD_DISMISSED,
};
assertThat(columnNames).isEqualTo(expectedNames);
cursor.close();
}
+
+ @Test
+ public void getContextualCards_shouldSortByScore() {
+ insertFakeCard(mDatabase, "card1", 1, "uri1");
+ insertFakeCard(mDatabase, "card2", 0, "uri2");
+ insertFakeCard(mDatabase, "card3", 10, "uri3");
+ // Should sort as 3,1,2
+ try (final Cursor cursor = CardDatabaseHelper.getInstance(mContext).getContextualCards()) {
+ assertThat(cursor.getCount()).isEqualTo(3);
+ final List<ContextualCard> cards = new ArrayList<>();
+ for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
+ cards.add(new ContextualCard(cursor));
+ }
+ assertThat(cards.get(0).getName()).isEqualTo("card3");
+ assertThat(cards.get(1).getName()).isEqualTo("card1");
+ assertThat(cards.get(2).getName()).isEqualTo("card2");
+ }
+ }
+
+ private static void insertFakeCard(SQLiteDatabase db, String name, double score, String uri) {
+ final ContentValues value = new ContentValues();
+ value.put(CardDatabaseHelper.CardColumns.NAME, name);
+ value.put(CardDatabaseHelper.CardColumns.SCORE, score);
+ value.put(CardDatabaseHelper.CardColumns.SLICE_URI, uri);
+
+ value.put(CardDatabaseHelper.CardColumns.TYPE, ContextualCard.CardType.SLICE);
+ value.put(CardDatabaseHelper.CardColumns.CATEGORY,
+ ContextualCardProto.ContextualCard.Category.DEFAULT.getNumber());
+ value.put(CardDatabaseHelper.CardColumns.PACKAGE_NAME,
+ RuntimeEnvironment.application.getPackageName());
+ value.put(CardDatabaseHelper.CardColumns.APP_VERSION, 1);
+
+ db.insert(CardDatabaseHelper.CARD_TABLE, null, value);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/homepage/ConditionalContextualCardTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ConditionalContextualCardTest.java
similarity index 85%
rename from tests/robotests/src/com/android/settings/homepage/ConditionalContextualCardTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/ConditionalContextualCardTest.java
index ced8b06..74e88d7 100644
--- a/tests/robotests/src/com/android/settings/homepage/ConditionalContextualCardTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ConditionalContextualCardTest.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package com.android.settings.homepage;
+package com.android.settings.homepage.contextualcards;
import static com.google.common.truth.Truth.assertThat;
-import com.android.settings.homepage.conditional.ConditionalContextualCard;
+import com.android.settings.homepage.contextualcards.conditional.ConditionalContextualCard;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Test;
@@ -30,7 +30,7 @@
@Test(expected = IllegalArgumentException.class)
public void newInstance_changeCardType_shouldCrash() {
new ConditionalContextualCard.Builder()
- .setCardType(ContextualCard.CardType.SUGGESTION)
+ .setCardType(ContextualCard.CardType.LEGACY_SUGGESTION)
.build();
}
diff --git a/tests/robotests/src/com/android/settings/homepage/CardContentLoaderTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
similarity index 66%
rename from tests/robotests/src/com/android/settings/homepage/CardContentLoaderTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
index defe0d9..e98e36f 100644
--- a/tests/robotests/src/com/android/settings/homepage/CardContentLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
@@ -14,16 +14,14 @@
* limitations under the License.
*/
-package com.android.settings.homepage;
+package com.android.settings.homepage.contextualcards;
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
import android.net.Uri;
-import com.android.settings.homepage.deviceinfo.DataUsageSlice;
-import com.android.settings.homepage.deviceinfo.DeviceInfoSlice;
-import com.android.settings.homepage.deviceinfo.StorageSlice;
+import com.android.settings.homepage.contextualcards.deviceinfo.BatterySlice;
import com.android.settings.slices.SettingsSliceProvider;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -38,36 +36,27 @@
import java.util.stream.Collectors;
@RunWith(SettingsRobolectricTestRunner.class)
-public class CardContentLoaderTest {
+public class ContextualCardLoaderTest {
private Context mContext;
- private CardContentLoader mCardContentLoader;
+ private ContextualCardLoader mContextualCardLoader;
private SettingsSliceProvider mProvider;
@Before
public void setUp() {
mContext = RuntimeEnvironment.application;
- mCardContentLoader = new CardContentLoader(mContext);
+ mContextualCardLoader = new ContextualCardLoader(mContext);
mProvider = new SettingsSliceProvider();
ShadowContentResolver.registerProviderInternal(SettingsSliceProvider.SLICE_AUTHORITY,
mProvider);
}
@Test
- public void createStaticCards_shouldReturnTwoCards() {
- final List<ContextualCard> defaultData = mCardContentLoader.createStaticCards();
+ public void createStaticCards_shouldContainCorrectCards() {
+ final Uri batteryInfo = BatterySlice.BATTERY_CARD_URI;
+ final List<Uri> expectedUris = Arrays.asList(batteryInfo);
- assertThat(defaultData).hasSize(3);
- }
-
- @Test
- public void createStaticCards_shouldContainDataUsageAndDeviceInfo() {
- final Uri dataUsage = DataUsageSlice.DATA_USAGE_CARD_URI;
- final Uri deviceInfo = DeviceInfoSlice.DEVICE_INFO_CARD_URI;
- final Uri storageInfo = StorageSlice.STORAGE_CARD_URI;
- final List<Uri> expectedUris = Arrays.asList(dataUsage, deviceInfo, storageInfo);
-
- final List<Uri> actualCardUris = mCardContentLoader.createStaticCards().stream().map(
+ final List<Uri> actualCardUris = mContextualCardLoader.createStaticCards().stream().map(
ContextualCard::getSliceUri).collect(Collectors.toList());
assertThat(actualCardUris).containsExactlyElementsIn(expectedUris);
@@ -82,7 +71,7 @@
.setSummaryText("custom_summary")
.build();
- assertThat(mCardContentLoader.isCardEligibleToDisplay(customCard)).isTrue();
+ assertThat(mContextualCardLoader.isCardEligibleToDisplay(customCard)).isTrue();
}
@Test
@@ -90,7 +79,8 @@
final String sliceUri = "contet://com.android.settings.slices/action/flashlight";
assertThat(
- mCardContentLoader.isCardEligibleToDisplay(getContextualCard(sliceUri))).isFalse();
+ mContextualCardLoader.isCardEligibleToDisplay(
+ getContextualCard(sliceUri))).isFalse();
}
@Test
@@ -98,14 +88,15 @@
final String sliceUri = "content://com.android.settings.test.slices/action/flashlight";
assertThat(
- mCardContentLoader.isCardEligibleToDisplay(getContextualCard(sliceUri))).isFalse();
+ mContextualCardLoader.isCardEligibleToDisplay(
+ getContextualCard(sliceUri))).isFalse();
}
private ContextualCard getContextualCard(String sliceUri) {
return new ContextualCard.Builder()
.setName("test_card")
.setCardType(ContextualCard.CardType.SLICE)
- .setSliceUri(sliceUri)
+ .setSliceUri(Uri.parse(sliceUri))
.build();
}
}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLookupTableTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLookupTableTest.java
new file mode 100644
index 0000000..4724500
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLookupTableTest.java
@@ -0,0 +1,115 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage.contextualcards;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import com.android.settings.homepage.contextualcards.ContextualCardLookupTable
+ .ControllerRendererMapping;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class ContextualCardLookupTableTest {
+
+ private static final int UNSUPPORTED_CARD_TYPE = -99999;
+ private static final int UNSUPPORTED_VIEW_TYPE = -99999;
+
+ private List<ControllerRendererMapping> mOriginalLookupTable;
+
+ @Before
+ public void setUp() {
+ mOriginalLookupTable = new ArrayList<>();
+ ContextualCardLookupTable.LOOKUP_TABLE.stream()
+ .forEach(mapping -> mOriginalLookupTable.add(mapping));
+ }
+
+ @After
+ public void reset() {
+ ContextualCardLookupTable.LOOKUP_TABLE.clear();
+ ContextualCardLookupTable.LOOKUP_TABLE.addAll(mOriginalLookupTable);
+ }
+
+ @Test
+ public void getCardControllerClass_hasSupportedCardType_shouldGetCorrespondingController() {
+ for (ControllerRendererMapping mapping : ContextualCardLookupTable.LOOKUP_TABLE) {
+ assertThat(ContextualCardLookupTable.getCardControllerClass(mapping.mCardType))
+ .isEqualTo(mapping.mControllerClass);
+ }
+ }
+
+ @Test
+ public void getCardControllerClass_hasUnsupportedCardType_shouldAlwaysGetNull() {
+ assertThat(ContextualCardLookupTable.getCardControllerClass(UNSUPPORTED_CARD_TYPE))
+ .isNull();
+ }
+
+ @Test
+ public void
+ getCardRendererClassByViewType_hasSupportedViewType_shouldGetCorrespondingRenderer() {
+ for (ControllerRendererMapping mapping : ContextualCardLookupTable.LOOKUP_TABLE) {
+ assertThat(ContextualCardLookupTable.getCardRendererClassByViewType(mapping.mViewType))
+ .isEqualTo(mapping.mRendererClass);
+ }
+ }
+
+ @Test
+ public void getCardRendererClassByViewType_hasUnsupportedViewType_shouldAlwaysGetNull() {
+ assertThat(ContextualCardLookupTable.getCardRendererClassByViewType(
+ UNSUPPORTED_VIEW_TYPE)).isNull();
+ }
+
+ @Test(expected = IllegalStateException.class)
+ public void
+ getCardRendererClassByViewType_hasDuplicateViewType_shouldThrowsIllegalStateException() {
+ final ControllerRendererMapping mapping1 =
+ new ControllerRendererMapping(
+ 1111 /* cardType */, UNSUPPORTED_VIEW_TYPE /* viewType */,
+ ContextualCardController.class, ContextualCardRenderer.class
+ );
+ final ControllerRendererMapping mapping2 =
+ new ControllerRendererMapping(
+ 2222 /* cardType */, UNSUPPORTED_VIEW_TYPE /* viewType */,
+ ContextualCardController.class, ContextualCardRenderer.class
+ );
+ ContextualCardLookupTable.LOOKUP_TABLE.add(mapping1);
+ ContextualCardLookupTable.LOOKUP_TABLE.add(mapping2);
+
+ ContextualCardLookupTable.getCardRendererClassByViewType(UNSUPPORTED_VIEW_TYPE);
+ }
+
+ @Test
+ public void getRendererClassByCardType_hasSupportedCardType_shouldGetCorrespondingRenderer() {
+ for (ControllerRendererMapping mapping : ContextualCardLookupTable.LOOKUP_TABLE) {
+ assertThat(ContextualCardLookupTable.getCardRendererClassByCardType(mapping.mCardType))
+ .isEqualTo(mapping.mRendererClass);
+ }
+ }
+
+ @Test
+ public void getCardRendererClassByCardType_hasUnsupportedCardType_shouldAlwaysGetNull() {
+ assertThat(ContextualCardLookupTable.getCardRendererClassByCardType(UNSUPPORTED_CARD_TYPE))
+ .isNull();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ControllerRendererPoolTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ControllerRendererPoolTest.java
new file mode 100644
index 0000000..e51169e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ControllerRendererPoolTest.java
@@ -0,0 +1,137 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage.contextualcards;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+
+import androidx.lifecycle.LifecycleOwner;
+
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class ControllerRendererPoolTest {
+
+ private static final int UNSUPPORTED_CARD_TYPE = -99999;
+ private static final int UNSUPPORTED_VIEW_TYPE = -99999;
+
+ private ControllerRendererPool mPool;
+ private Context mContext;
+ private Lifecycle mLifecycle;
+ private LifecycleOwner mLifecycleOwner;
+
+ @Before
+ public void setUp() {
+ mContext = RuntimeEnvironment.application;
+ mLifecycleOwner = () -> mLifecycle;
+ mLifecycle = new Lifecycle(mLifecycleOwner);
+
+ mPool = new ControllerRendererPool();
+ }
+
+ @Test
+ public void getController_hasSupportedCardType_shouldReturnCorrespondingController() {
+ ContextualCardLookupTable.LOOKUP_TABLE.stream().forEach(mapping -> assertThat(
+ mPool.getController(mContext, mapping.mCardType).getClass()).isEqualTo(
+ mapping.mControllerClass));
+ }
+
+ @Test
+ public void getController_hasSupportedCardType_shouldHaveTwoControllersInPool() {
+ final long count = ContextualCardLookupTable.LOOKUP_TABLE.stream().map(
+ mapping -> mapping.mControllerClass).distinct().count();
+
+ ContextualCardLookupTable.LOOKUP_TABLE.stream().forEach(
+ mapping -> mPool.getController(mContext, mapping.mCardType));
+
+ assertThat(mPool.getControllers()).hasSize((int) count);
+ }
+
+ @Test
+ public void getController_hasUnsupportedCardType_shouldReturnNullAndPoolIsEmpty() {
+ final ContextualCardController controller = mPool.getController(mContext,
+ UNSUPPORTED_CARD_TYPE);
+
+ assertThat(controller).isNull();
+ assertThat(mPool.getControllers()).isEmpty();
+ }
+
+ @Test
+ public void getRenderer_hasSupportedViewType_shouldReturnCorrespondingRenderer() {
+ ContextualCardLookupTable.LOOKUP_TABLE.stream().forEach(mapping -> assertThat(
+ mPool.getRendererByViewType(mContext, mLifecycleOwner,
+ mapping.mViewType).getClass()).isEqualTo(mapping.mRendererClass));
+ }
+
+ @Test
+ public void getRenderer_hasSupportedViewType_shouldHaveDistinctRenderersInPool() {
+ final long count = ContextualCardLookupTable.LOOKUP_TABLE.stream().map(
+ mapping -> mapping.mRendererClass).distinct().count();
+
+ ContextualCardLookupTable.LOOKUP_TABLE.stream().forEach(
+ mapping -> mPool.getRendererByViewType(mContext, mLifecycleOwner,
+ mapping.mViewType));
+
+ assertThat(mPool.getRenderers()).hasSize((int) count);
+ }
+
+ @Test
+ public void getRenderer_hasUnsupportedViewType_shouldReturnNullAndPoolIsEmpty() {
+ final ContextualCardRenderer renderer = mPool.getRendererByViewType(mContext,
+ mLifecycleOwner,
+ UNSUPPORTED_VIEW_TYPE);
+
+ assertThat(renderer).isNull();
+ assertThat(mPool.getRenderers()).isEmpty();
+ }
+
+ @Test
+ public void getRenderer_hasSupportedCardTypeAndWidth_shouldReturnCorrespondingRenderer() {
+ ContextualCardLookupTable.LOOKUP_TABLE.stream().forEach(mapping -> assertThat(
+ mPool.getRendererByCardType(mContext, mLifecycleOwner,
+ mapping.mCardType).getClass()).isEqualTo(mapping.mRendererClass));
+ }
+
+ @Test
+ public void getRenderer_hasSupportedCardTypeAndWidth_shouldHaveDistinctRenderersInPool() {
+ final long count = ContextualCardLookupTable.LOOKUP_TABLE.stream().map(
+ mapping -> mapping.mRendererClass).distinct().count();
+
+ ContextualCardLookupTable.LOOKUP_TABLE.stream().forEach(
+ mapping -> mPool.getRendererByCardType(mContext, mLifecycleOwner,
+ mapping.mCardType));
+
+ assertThat(mPool.getRenderers()).hasSize((int) count);
+ }
+
+ @Test
+ public void getRenderer_hasUnsupportedCardType_shouldReturnNullAndPoolIsEmpty() {
+ final ContextualCardRenderer renderer = mPool.getRendererByCardType(mContext,
+ mLifecycleOwner,
+ UNSUPPORTED_CARD_TYPE);
+
+ assertThat(renderer).isNull();
+ assertThat(mPool.getRenderers()).isEmpty();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java
index a80b963..6b1f8b1 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java
@@ -19,45 +19,75 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import android.app.slice.SliceManager;
import android.content.ContentResolver;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
+import com.android.settings.intelligence.ContextualCardProto.ContextualCard;
import com.android.settings.intelligence.ContextualCardProto.ContextualCardList;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.wifi.WifiSlice;
import com.google.android.settings.intelligence.libs.contextualcards.ContextualCardProvider;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
@RunWith(SettingsRobolectricTestRunner.class)
public class SettingsContextualCardProviderTest {
- private Context mContext;
+ @Mock
+ private SliceManager mSliceManager;
private ContentResolver mResolver;
private Uri mUri;
+ private SettingsContextualCardProvider mProvider;
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
- mResolver = mContext.getContentResolver();
+ MockitoAnnotations.initMocks(this);
+ mResolver = RuntimeEnvironment.application.getContentResolver();
mUri = new Uri.Builder()
.scheme(ContentResolver.SCHEME_CONTENT)
.authority(SettingsContextualCardProvider.CARD_AUTHORITY)
.build();
+ mProvider = spy(Robolectric.setupContentProvider(SettingsContextualCardProvider.class));
+ final Context context = spy(RuntimeEnvironment.application);
+ doReturn(mSliceManager).when(context).getSystemService(SliceManager.class);
+ doReturn(context).when(mProvider).getContext();
}
@Test
public void contentProviderCall_returnCorrectSize() throws Exception {
+ final int actualNo = mProvider.getContextualCards().getCardCount();
+
final Bundle returnValue =
- mResolver.call(mUri, ContextualCardProvider.METHOD_GET_CARD_LIST, "", null);
+ mProvider.call(ContextualCardProvider.METHOD_GET_CARD_LIST, "", null);
final ContextualCardList cards =
- ContextualCardList.parseFrom(
- returnValue.getByteArray(ContextualCardProvider.BUNDLE_CARD_LIST));
- assertThat(cards.getCardCount()).isEqualTo(2);
+ ContextualCardList.parseFrom(
+ returnValue.getByteArray(ContextualCardProvider.BUNDLE_CARD_LIST));
+ assertThat(cards.getCardCount()).isEqualTo(actualNo);
+ }
+
+ @Test
+ public void getContextualCards_wifiSlice_shouldGetCorrectCategory() {
+ final ContextualCardList cards = mProvider.getContextualCards();
+ ContextualCard wifiCard = null;
+ for (ContextualCard card : cards.getCardList()) {
+ if (card.getSliceUri().equals(WifiSlice.WIFI_URI.toString())) {
+ wifiCard = card;
+ }
+ }
+
+ assertThat(wifiCard.getCardCategory()).isEqualTo(ContextualCard.Category.IMPORTANT);
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/homepage/conditional/AbnormalRingerConditionControllerBaseTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/AbnormalRingerConditionControllerBaseTest.java
similarity index 89%
rename from tests/robotests/src/com/android/settings/homepage/conditional/AbnormalRingerConditionControllerBaseTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/AbnormalRingerConditionControllerBaseTest.java
index 9da1336..d27e024 100644
--- a/tests/robotests/src/com/android/settings/homepage/conditional/AbnormalRingerConditionControllerBaseTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/AbnormalRingerConditionControllerBaseTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
@@ -23,6 +23,7 @@
import android.content.Intent;
import android.media.AudioManager;
+import com.android.settings.homepage.contextualcards.ContextualCard;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -79,5 +80,10 @@
public boolean isDisplayable() {
return false;
}
+
+ @Override
+ public ContextualCard buildContextualCard() {
+ return new ConditionalContextualCard.Builder().build();
+ }
}
}
diff --git a/tests/robotests/src/com/android/settings/homepage/conditional/BackgroundDataConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java
similarity index 69%
rename from tests/robotests/src/com/android/settings/homepage/conditional/BackgroundDataConditionControllerTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java
index e3db59b..a962bc1 100644
--- a/tests/robotests/src/com/android/settings/homepage/conditional/BackgroundDataConditionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java
@@ -13,15 +13,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
+import android.app.Activity;
+import android.content.ComponentName;
import android.content.Context;
-import android.content.Intent;
import android.net.NetworkPolicyManager;
import com.android.settings.Settings;
@@ -30,10 +30,11 @@
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.RuntimeEnvironment;
+import org.robolectric.Robolectric;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowApplication;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -43,7 +44,7 @@
private ConditionManager mConditionManager;
@Mock
private NetworkPolicyManager mNetworkPolicyManager;
- private Context mContext;
+ private Activity mActivity;
private BackgroundDataConditionController mController;
@Before
@@ -51,19 +52,19 @@
MockitoAnnotations.initMocks(this);
ShadowApplication.getInstance().setSystemService(Context.NETWORK_POLICY_SERVICE,
mNetworkPolicyManager);
- mContext = spy(RuntimeEnvironment.application);
- mController = new BackgroundDataConditionController(mContext, mConditionManager);
+ mActivity = Robolectric.setupActivity(Activity.class);
+ mController = new BackgroundDataConditionController(mActivity, mConditionManager);
}
@Test
public void onPrimaryClick_shouldReturn2SummaryActivity() {
- final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
- mController.onPrimaryClick(mContext);
- verify(mContext).startActivity(argumentCaptor.capture());
- Intent intent = argumentCaptor.getValue();
+ final ComponentName componentName =
+ new ComponentName(mActivity, Settings.DataUsageSummaryActivity.class);
- assertThat(intent.getComponent().getClassName()).isEqualTo(
- Settings.DataUsageSummaryActivity.class.getName());
+ mController.onPrimaryClick(mActivity);
+
+ final ShadowActivity shadowActivity = Shadow.extract(mActivity);
+ assertThat(shadowActivity.getNextStartedActivity().getComponent()).isEqualTo(componentName);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/homepage/conditional/BatterySaverConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionControllerTest.java
similarity index 97%
rename from tests/robotests/src/com/android/settings/homepage/conditional/BatterySaverConditionControllerTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionControllerTest.java
index bf99a77..d28ab0f 100644
--- a/tests/robotests/src/com/android/settings/homepage/conditional/BatterySaverConditionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BatterySaverConditionControllerTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import static com.google.common.truth.Truth.assertThat;
diff --git a/tests/robotests/src/com/android/settings/homepage/conditional/ConditionContextualCardControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardControllerTest.java
similarity index 67%
rename from tests/robotests/src/com/android/settings/homepage/conditional/ConditionContextualCardControllerTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardControllerTest.java
index a59a3bc..ab82a54 100644
--- a/tests/robotests/src/com/android/settings/homepage/conditional/ConditionContextualCardControllerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardControllerTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.never;
@@ -23,10 +23,9 @@
import static org.mockito.Mockito.when;
import android.content.Context;
-import android.graphics.drawable.Drawable;
-import com.android.settings.R;
-import com.android.settings.homepage.ContextualCardUpdateListener;
+import com.android.settings.homepage.contextualcards.ContextualCard;
+import com.android.settings.homepage.contextualcards.ContextualCardUpdateListener;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -74,8 +73,8 @@
@Test
public void onConditionsChanged_listenerIsSet_shouldUpdateData() {
- final FakeConditionalCard fakeConditionalCard = new FakeConditionalCard(mContext);
- final List<ConditionalCard> conditionalCards = new ArrayList<>();
+ final ContextualCard fakeConditionalCard = new ConditionalContextualCard.Builder().build();
+ final List<ContextualCard> conditionalCards = new ArrayList<>();
conditionalCards.add(fakeConditionalCard);
when(mConditionManager.getDisplayableCards()).thenReturn(conditionalCards);
mController.setCardUpdateListener(mListener);
@@ -87,8 +86,8 @@
@Test
public void onConditionsChanged_listenerNotSet_shouldNotUpdateData() {
- final FakeConditionalCard fakeConditionalCard = new FakeConditionalCard(mContext);
- final List<ConditionalCard> conditionalCards = new ArrayList<>();
+ final ContextualCard fakeConditionalCard = new ConditionalContextualCard.Builder().build();
+ final List<ContextualCard> conditionalCards = new ArrayList<>();
conditionalCards.add(fakeConditionalCard);
when(mConditionManager.getDisplayableCards()).thenReturn(conditionalCards);
@@ -96,43 +95,4 @@
verify(mListener, never()).onContextualCardUpdated(any());
}
-
- private class FakeConditionalCard implements ConditionalCard {
-
- private final Context mContext;
-
- public FakeConditionalCard(Context context) {
- mContext = context;
- }
-
- @Override
- public long getId() {
- return 100;
- }
-
- @Override
- public CharSequence getActionText() {
- return "action_text_test";
- }
-
- @Override
- public int getMetricsConstant() {
- return 1;
- }
-
- @Override
- public Drawable getIcon() {
- return mContext.getDrawable(R.drawable.ic_do_not_disturb_on_24dp);
- }
-
- @Override
- public CharSequence getTitle() {
- return "title_text_test";
- }
-
- @Override
- public CharSequence getSummary() {
- return "summary_text_test";
- }
- }
}
diff --git a/tests/robotests/src/com/android/settings/homepage/conditional/ConditionContextualCardRendererTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRendererTest.java
similarity index 91%
rename from tests/robotests/src/com/android/settings/homepage/conditional/ConditionContextualCardRendererTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRendererTest.java
index dc56a7f..376042d 100644
--- a/tests/robotests/src/com/android/settings/homepage/conditional/ConditionContextualCardRendererTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRendererTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import static com.google.common.truth.Truth.assertThat;
@@ -31,8 +31,8 @@
import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R;
-import com.android.settings.homepage.ContextualCard;
-import com.android.settings.homepage.ControllerRendererPool;
+import com.android.settings.homepage.contextualcards.ContextualCard;
+import com.android.settings.homepage.contextualcards.ControllerRendererPool;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -61,7 +61,7 @@
@Test
public void bindView_shouldSetListener() {
- final int viewType = mRenderer.getViewType();
+ final int viewType = mRenderer.getViewType(false /* isHalfWidth */);
final RecyclerView recyclerView = new RecyclerView(mContext);
recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
final View view = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
@@ -78,7 +78,7 @@
@Test
public void viewClick_shouldInvokeControllerPrimaryClick() {
- final int viewType = mRenderer.getViewType();
+ final int viewType = mRenderer.getViewType(false /* isHalfWidth */);
final RecyclerView recyclerView = new RecyclerView(mContext);
recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
final View view = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
diff --git a/tests/robotests/src/com/android/settings/homepage/conditional/ConditionManagerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionManagerTest.java
similarity index 85%
rename from tests/robotests/src/com/android/settings/homepage/conditional/ConditionManagerTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionManagerTest.java
index 014a4a1..e8d5caa 100644
--- a/tests/robotests/src/com/android/settings/homepage/conditional/ConditionManagerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionManagerTest.java
@@ -14,11 +14,13 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -39,8 +41,6 @@
private static final long ID = 123L;
@Mock
- private ConditionalCard mCard;
- @Mock
private ConditionalCardController mController;
@Mock
private ConditionListener mConditionListener;
@@ -53,16 +53,13 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
- mManager = new ConditionManager(mContext, mConditionListener);
-
- assertThat(mManager.mCandidates.size()).isEqualTo(mManager.mCardControllers.size());
+ mManager = spy(new ConditionManager(mContext, mConditionListener));
when(mController.getId()).thenReturn(ID);
- when(mCard.getId()).thenReturn(ID);
-
- mManager.mCandidates.clear();
+ when(mController.buildContextualCard()).thenReturn(
+ new ConditionalContextualCard.Builder()
+ .build());
mManager.mCardControllers.clear();
- mManager.mCandidates.add(mCard);
mManager.mCardControllers.add(mController);
}
@@ -94,11 +91,13 @@
@Test
public void startMonitoringStateChange_multipleTimes_shouldRegisterOnce() {
- mManager.startMonitoringStateChange();
- mManager.startMonitoringStateChange();
- mManager.startMonitoringStateChange();
+ final int loopCount = 10;
+ for (int i = 0; i < loopCount; i++) {
+ mManager.startMonitoringStateChange();
+ }
verify(mController).startMonitoringStateChange();
+ verify(mManager, times(loopCount)).onConditionChanged();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/homepage/conditional/DndConditionalCardControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/DndConditionalCardControllerTest.java
similarity index 96%
rename from tests/robotests/src/com/android/settings/homepage/conditional/DndConditionalCardControllerTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/DndConditionalCardControllerTest.java
index 9fde607..9eb6145 100644
--- a/tests/robotests/src/com/android/settings/homepage/conditional/DndConditionalCardControllerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/DndConditionalCardControllerTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import static org.mockito.ArgumentMatchers.any;
diff --git a/tests/robotests/src/com/android/settings/homepage/conditional/NightDisplayConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/NightDisplayConditionControllerTest.java
similarity index 95%
rename from tests/robotests/src/com/android/settings/homepage/conditional/NightDisplayConditionControllerTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/NightDisplayConditionControllerTest.java
index 130df90..0ef23be 100644
--- a/tests/robotests/src/com/android/settings/homepage/conditional/NightDisplayConditionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/NightDisplayConditionControllerTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
import static org.mockito.Mockito.verify;
diff --git a/tests/robotests/src/com/android/settings/homepage/conditional/WorkModeConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java
similarity index 64%
rename from tests/robotests/src/com/android/settings/homepage/conditional/WorkModeConditionControllerTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java
index c993e68..2bc92a3 100644
--- a/tests/robotests/src/com/android/settings/homepage/conditional/WorkModeConditionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.conditional;
-import static org.mockito.ArgumentMatchers.argThat;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
+import android.app.Activity;
import android.content.ComponentName;
-import android.content.Context;
import com.android.settings.Settings;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -31,32 +31,34 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowActivity;
@RunWith(SettingsRobolectricTestRunner.class)
public class WorkModeConditionControllerTest {
@Mock
private ConditionManager mConditionManager;
- private Context mContext;
+ private Activity mActivity;
private WorkModeConditionController mController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- mController = new WorkModeConditionController(mContext, mConditionManager);
+ mActivity = spy(Robolectric.setupActivity(Activity.class));
+ mController = new WorkModeConditionController(mActivity, mConditionManager);
}
@Test
public void onPrimaryClick_shouldLaunchAccountsSetting() {
final ComponentName componentName =
- new ComponentName(mContext, Settings.AccountDashboardActivity.class);
+ new ComponentName(mActivity, Settings.AccountDashboardActivity.class);
- mController.onPrimaryClick(mContext);
+ mController.onPrimaryClick(mActivity);
- verify(mContext).startActivity(
- argThat(intent -> intent.getComponent().equals(componentName)));
+ final ShadowActivity shadowActivity = Shadow.extract(mActivity);
+ assertThat(shadowActivity.getNextStartedActivity().getComponent()).isEqualTo(componentName);
}
}
diff --git a/tests/robotests/src/com/android/settings/homepage/deviceinfo/StorageSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/BatterySliceTest.java
similarity index 67%
copy from tests/robotests/src/com/android/settings/homepage/deviceinfo/StorageSliceTest.java
copy to tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/BatterySliceTest.java
index 5609a7a..72c29fa 100644
--- a/tests/robotests/src/com/android/settings/homepage/deviceinfo/StorageSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/BatterySliceTest.java
@@ -14,17 +14,15 @@
* limitations under the License.
*/
-package com.android.settings.homepage.deviceinfo;
+package com.android.settings.homepage.contextualcards.deviceinfo;
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import android.content.Context;
-import android.content.res.Resources;
import androidx.core.graphics.drawable.IconCompat;
import androidx.slice.Slice;
@@ -37,7 +35,6 @@
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.SliceTester;
-import com.android.settingslib.deviceinfo.PrivateStorageInfo;
import org.junit.Before;
import org.junit.Test;
@@ -47,37 +44,34 @@
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
-public class StorageSliceTest {
- private static final String USED_BYTES_TEXT = "test used bytes";
- private static final String SUMMARY_TEXT = "test summary";
+public class BatterySliceTest {
private Context mContext;
- private StorageSlice mStorageSlice;
+ private BatterySlice mBatterySlice;
@Before
public void setUp() {
- mContext = spy(RuntimeEnvironment.application);
+ mContext = RuntimeEnvironment.application;
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
- mStorageSlice = spy(new StorageSlice(mContext));
+ mBatterySlice = spy(new BatterySlice(mContext));
}
@Test
public void getSlice_shouldBeCorrectSliceContent() {
- final PrivateStorageInfo info = new PrivateStorageInfo(100L, 600L);
- doReturn(info).when(mStorageSlice).getPrivateStorageInfo();
- doReturn(USED_BYTES_TEXT).when(mStorageSlice).getStorageUsedText(any());
- doReturn(SUMMARY_TEXT).when(mStorageSlice).getStorageSummaryText(any());
- final Slice slice = mStorageSlice.getSlice();
+ doNothing().when(mBatterySlice).loadBatteryInfo();
+ doReturn("10%").when(mBatterySlice).getBatteryPercentString();
+ doReturn("test").when(mBatterySlice).getSummary();
+ final Slice slice = mBatterySlice.getSlice();
final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
final SliceAction primaryAction = metadata.getPrimaryAction();
final IconCompat expectedIcon = IconCompat.createWithResource(mContext,
- R.drawable.ic_homepage_storage);
+ R.drawable.ic_settings_battery);
assertThat(primaryAction.getIcon().toString()).isEqualTo(expectedIcon.toString());
final List<SliceItem> sliceItems = slice.getItems();
- SliceTester.assertTitle(sliceItems, mContext.getString(R.string.storage_label));
+ SliceTester.assertTitle(sliceItems, mContext.getString(R.string.power_usage_summary_title));
}
}
diff --git a/tests/robotests/src/com/android/settings/homepage/deviceinfo/DataUsageSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/DataUsageSliceTest.java
similarity index 96%
rename from tests/robotests/src/com/android/settings/homepage/deviceinfo/DataUsageSliceTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/DataUsageSliceTest.java
index c0af3d8..fc74df9 100644
--- a/tests/robotests/src/com/android/settings/homepage/deviceinfo/DataUsageSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/DataUsageSliceTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.deviceinfo;
+package com.android.settings.homepage.contextualcards.deviceinfo;
import static com.google.common.truth.Truth.assertThat;
@@ -56,7 +56,7 @@
@Before
public void setUp() {
- mContext = spy(RuntimeEnvironment.application);
+ mContext = RuntimeEnvironment.application;
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
diff --git a/tests/robotests/src/com/android/settings/homepage/deviceinfo/DeviceInfoSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/DeviceInfoSliceTest.java
similarity index 96%
rename from tests/robotests/src/com/android/settings/homepage/deviceinfo/DeviceInfoSliceTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/DeviceInfoSliceTest.java
index 2480baf..2083456 100644
--- a/tests/robotests/src/com/android/settings/homepage/deviceinfo/DeviceInfoSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/DeviceInfoSliceTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.homepage.deviceinfo;
+package com.android.settings.homepage.contextualcards.deviceinfo;
import static com.google.common.truth.Truth.assertThat;
@@ -57,7 +57,7 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
+ mContext = RuntimeEnvironment.application;
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
diff --git a/tests/robotests/src/com/android/settings/homepage/deviceinfo/StorageSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/StorageSliceTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/homepage/deviceinfo/StorageSliceTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/StorageSliceTest.java
index 5609a7a..17d7bd2 100644
--- a/tests/robotests/src/com/android/settings/homepage/deviceinfo/StorageSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/StorageSliceTest.java
@@ -14,17 +14,15 @@
* limitations under the License.
*/
-package com.android.settings.homepage.deviceinfo;
+package com.android.settings.homepage.contextualcards.deviceinfo;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import android.content.Context;
-import android.content.res.Resources;
import androidx.core.graphics.drawable.IconCompat;
import androidx.slice.Slice;
@@ -56,7 +54,7 @@
@Before
public void setUp() {
- mContext = spy(RuntimeEnvironment.application);
+ mContext = RuntimeEnvironment.application;
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardControllerTest.java
new file mode 100644
index 0000000..9d9d84e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardControllerTest.java
@@ -0,0 +1,94 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage.contextualcards.legacysuggestion;
+
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+
+import com.android.settings.homepage.contextualcards.ContextualCardUpdateListener;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowThreadUtils;
+import com.android.settingslib.suggestions.SuggestionController;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = ShadowThreadUtils.class)
+public class LegacySuggestionContextualCardControllerTest {
+
+ @Mock
+ private SuggestionController mSuggestionController;
+ @Mock
+ private ContextualCardUpdateListener mCardUpdateListener;
+
+ private Context mContext;
+ private LegacySuggestionContextualCardController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ FakeFeatureFactory.setupForTest();
+ mContext = RuntimeEnvironment.application;
+ mController = new LegacySuggestionContextualCardController(mContext);
+ }
+
+ @Test
+ public void init_configOn_shouldCreateSuggestionController() {
+ final LegacySuggestionContextualCardController controller =
+ new LegacySuggestionContextualCardController(mContext);
+ assertThat(controller.mSuggestionController).isNotNull();
+ }
+
+ @Test
+ @Config(qualifiers = "mcc999")
+ public void init_configOff_shouldNotCreateSuggestionController() {
+ final LegacySuggestionContextualCardController controller =
+ new LegacySuggestionContextualCardController(mContext);
+
+ assertThat(controller.mSuggestionController).isNull();
+ }
+
+ @Test
+ public void goThroughLifecycle_hasSuggestionController_shouldStartStopController() {
+ mController.mSuggestionController = mSuggestionController;
+ mController.onStart();
+ verify(mSuggestionController).start();
+
+ mController.onStop();
+ verify(mSuggestionController).stop();
+ }
+
+ @Test
+ public void onServiceConnected_shouldLoadSuggestion() {
+ mController.mSuggestionController = mSuggestionController;
+ mController.setCardUpdateListener(mCardUpdateListener);
+ mController.onServiceConnected();
+
+ verify(mSuggestionController).getSuggestions();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/homepage/conditional/ConditionContextualCardRendererTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardRendererTest.java
similarity index 65%
copy from tests/robotests/src/com/android/settings/homepage/conditional/ConditionContextualCardRendererTest.java
copy to tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardRendererTest.java
index dc56a7f..20f1b7b 100644
--- a/tests/robotests/src/com/android/settings/homepage/conditional/ConditionContextualCardRendererTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardRendererTest.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package com.android.settings.homepage.conditional;
+package com.android.settings.homepage.contextualcards.legacysuggestion;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -31,8 +31,8 @@
import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R;
-import com.android.settings.homepage.ContextualCard;
-import com.android.settings.homepage.ControllerRendererPool;
+import com.android.settings.homepage.contextualcards.ContextualCard;
+import com.android.settings.homepage.contextualcards.ControllerRendererPool;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -43,34 +43,34 @@
import org.robolectric.RuntimeEnvironment;
@RunWith(SettingsRobolectricTestRunner.class)
-public class ConditionContextualCardRendererTest {
-
+public class LegacySuggestionContextualCardRendererTest {
@Mock
private ControllerRendererPool mControllerRendererPool;
@Mock
- private ConditionContextualCardController mController;
+ private LegacySuggestionContextualCardController mController;
private Context mContext;
- private ConditionContextualCardRenderer mRenderer;
+ private LegacySuggestionContextualCardRenderer mRenderer;
+
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- mRenderer = new ConditionContextualCardRenderer(mContext, mControllerRendererPool);
+ mContext = RuntimeEnvironment.application;
+ mRenderer = new LegacySuggestionContextualCardRenderer(mContext, mControllerRendererPool);
}
@Test
public void bindView_shouldSetListener() {
- final int viewType = mRenderer.getViewType();
+ final int viewType = mRenderer.getViewType(true /* isHalfWidth */);
final RecyclerView recyclerView = new RecyclerView(mContext);
recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
- final View view = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
- final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(view);
- final View card = view.findViewById(R.id.content);
- when(mControllerRendererPool.getController(mContext,
- ContextualCard.CardType.CONDITIONAL)).thenReturn(mController);
+ final View card = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
+ final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(card);
- mRenderer.bindView(viewHolder, buildConditionContextualCard());
+ when(mControllerRendererPool.getController(mContext,
+ ContextualCard.CardType.LEGACY_SUGGESTION)).thenReturn(mController);
+
+ mRenderer.bindView(viewHolder, buildContextualCard());
assertThat(card).isNotNull();
assertThat(card.hasOnClickListeners()).isTrue();
@@ -78,16 +78,15 @@
@Test
public void viewClick_shouldInvokeControllerPrimaryClick() {
- final int viewType = mRenderer.getViewType();
+ final int viewType = mRenderer.getViewType(true /* isHalfWidth */);
final RecyclerView recyclerView = new RecyclerView(mContext);
recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
- final View view = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
- final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(view);
- final View card = view.findViewById(R.id.content);
+ final View card = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
+ final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(card);
when(mControllerRendererPool.getController(mContext,
- ContextualCard.CardType.CONDITIONAL)).thenReturn(mController);
+ ContextualCard.CardType.LEGACY_SUGGESTION)).thenReturn(mController);
- mRenderer.bindView(viewHolder, buildConditionContextualCard());
+ mRenderer.bindView(viewHolder, buildContextualCard());
assertThat(card).isNotNull();
card.performClick();
@@ -95,16 +94,12 @@
verify(mController).onPrimaryClick(any(ContextualCard.class));
}
- private ContextualCard buildConditionContextualCard() {
- return new ConditionalContextualCard.Builder()
- .setConditionId(123)
- .setMetricsConstant(1)
- .setActionText("test_action")
+ private ContextualCard buildContextualCard() {
+ return new LegacySuggestionContextualCard.Builder()
.setName("test_name")
.setTitleText("test_title")
.setSummaryText("test_summary")
.setIconDrawable(mContext.getDrawable(R.drawable.ic_do_not_disturb_on_24dp))
- .setIsHalfWidth(true)
.build();
}
}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardTest.java
new file mode 100644
index 0000000..8b9a7a9
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardTest.java
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage.contextualcards.legacysuggestion;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+
+import android.app.PendingIntent;
+
+import com.android.settings.homepage.contextualcards.ContextualCard;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class LegacySuggestionContextualCardTest {
+
+ @Test(expected = IllegalArgumentException.class)
+ public void newInstance_changeCardType_shouldCrash() {
+ new LegacySuggestionContextualCard.Builder()
+ .setCardType(ContextualCard.CardType.CONDITIONAL)
+ .build();
+ }
+
+ @Test
+ public void getCardType_shouldAlwaysBeSuggestionType() {
+ assertThat(new LegacySuggestionContextualCard.Builder().build().getCardType())
+ .isEqualTo(ContextualCard.CardType.LEGACY_SUGGESTION);
+ }
+
+ @Test
+ public void build_shouldSetPendingIntent() {
+ assertThat(new LegacySuggestionContextualCard.Builder()
+ .setPendingIntent(mock(PendingIntent.class))
+ .build()
+ .getPendingIntent()).isNotNull();
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSliceTest.java
new file mode 100644
index 0000000..23da127
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSliceTest.java
@@ -0,0 +1,99 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.homepage.contextualcards.slices;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+
+import androidx.core.graphics.drawable.IconCompat;
+import androidx.slice.Slice;
+import androidx.slice.SliceItem;
+import androidx.slice.SliceProvider;
+import androidx.slice.widget.SliceLiveData;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.SliceTester;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class ConnectedDeviceSliceTest {
+
+ @Mock
+ private CachedBluetoothDevice mCachedBluetoothDevice;
+
+ private List<CachedBluetoothDevice> mCachedDevices = new ArrayList<CachedBluetoothDevice>();
+ private Context mContext;
+ private ConnectedDeviceSlice mConnectedDeviceSlice;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+
+ // Set-up specs for SliceMetadata.
+ SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
+
+ mConnectedDeviceSlice = spy(new ConnectedDeviceSlice(mContext));
+ }
+
+ @Test
+ public void getSlice_hasConnectedDevices_shouldBeCorrectSliceContent() {
+ final String title = "BluetoothTitle";
+ final String summary = "BluetoothSummary";
+ final IconCompat icon = IconCompat.createWithResource(mContext,
+ R.drawable.ic_homepage_connected_device);
+ final PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0,
+ new Intent("test action"), 0);
+ doReturn(title).when(mCachedBluetoothDevice).getName();
+ doReturn(summary).when(mCachedBluetoothDevice).getConnectionSummary();
+ mCachedDevices.add(mCachedBluetoothDevice);
+ doReturn(mCachedDevices).when(mConnectedDeviceSlice).getBluetoothConnectedDevices();
+ doReturn(icon).when(mConnectedDeviceSlice).getConnectedDeviceIcon(any());
+ doReturn(pendingIntent).when(mConnectedDeviceSlice).getBluetoothDetailIntent(any());
+ final Slice slice = mConnectedDeviceSlice.getSlice();
+
+ final List<SliceItem> sliceItems = slice.getItems();
+ SliceTester.assertTitle(sliceItems, title);
+ }
+
+ @Test
+ public void getSlice_hasNoConnectedDevices_shouldReturnCorrectHeader() {
+ final List<CachedBluetoothDevice> connectedBluetoothList = new ArrayList<>();
+ doReturn(connectedBluetoothList).when(mConnectedDeviceSlice).getBluetoothConnectedDevices();
+ final Slice slice = mConnectedDeviceSlice.getSlice();
+
+ final List<SliceItem> sliceItems = slice.getItems();
+ SliceTester.assertTitle(sliceItems, mContext.getString(R.string.no_connected_devices));
+ }
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/homepage/slices/SliceContextualCardRendererTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
similarity index 69%
rename from tests/robotests/src/com/android/settings/homepage/slices/SliceContextualCardRendererTest.java
rename to tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
index 3239971..7a07d35 100644
--- a/tests/robotests/src/com/android/settings/homepage/slices/SliceContextualCardRendererTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
@@ -14,33 +14,40 @@
* limitations under the License.
*/
-package com.android.settings.homepage.slices;
+package com.android.settings.homepage.contextualcards.slices;
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
import android.content.Context;
+import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import androidx.lifecycle.LifecycleOwner;
+import androidx.lifecycle.LiveData;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+import androidx.slice.Slice;
-import com.android.settings.homepage.ContextualCard;
-import com.android.settings.homepage.PersonalSettingsFragment;
+import com.android.settings.homepage.contextualcards.ContextualCard;
+import com.android.settings.homepage.contextualcards.ContextualCardsFragment;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
@RunWith(SettingsRobolectricTestRunner.class)
public class SliceContextualCardRendererTest {
+ @Mock
+ private LiveData<Slice> mSliceLiveData;
+
private Context mContext;
private SliceContextualCardRenderer mRenderer;
private LifecycleOwner mLifecycleOwner;
@@ -49,11 +56,23 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
- mLifecycleOwner = new PersonalSettingsFragment();
+ mLifecycleOwner = new ContextualCardsFragment();
mRenderer = new SliceContextualCardRenderer(mContext, mLifecycleOwner);
}
@Test
+ public void bindView_shouldSetScrollableToFalse() {
+ final String sliceUri = "content://com.android.settings.slices/action/flashlight";
+ RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
+
+ mRenderer.bindView(viewHolder, buildContextualCard(sliceUri));
+
+ assertThat(
+ ((SliceContextualCardRenderer.SliceViewHolder) viewHolder).sliceView.isScrollable
+ ()).isFalse();
+ }
+
+ @Test
public void bindView_invalidScheme_sliceShouldBeNull() {
final String sliceUri = "contet://com.android.settings.slices/action/flashlight";
RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
@@ -83,8 +102,18 @@
assertThat(mRenderer.mSliceLiveDataMap.get(sliceUri).hasObservers()).isTrue();
}
+ @Test
+ public void bindview_sliceLiveDataShouldRemoveObservers() {
+ final String sliceUri = "content://com.android.settings.slices/action/flashlight";
+ mRenderer.mSliceLiveDataMap.put(sliceUri, mSliceLiveData);
+
+ mRenderer.bindView(getSliceViewHolder(), buildContextualCard(sliceUri));
+
+ verify(mSliceLiveData).removeObservers(mLifecycleOwner);
+ }
+
private RecyclerView.ViewHolder getSliceViewHolder() {
- final int viewType = mRenderer.getViewType();
+ final int viewType = mRenderer.getViewType(false /* isHalfWidth */);
final RecyclerView recyclerView = new RecyclerView(mContext);
recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
final View view = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
@@ -96,7 +125,7 @@
private ContextualCard buildContextualCard(String sliceUri) {
return new ContextualCard.Builder()
.setName("test_name")
- .setSliceUri(sliceUri)
+ .setSliceUri(Uri.parse(sliceUri))
.build();
}
}
diff --git a/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java
index 16c694e..a15fdff 100644
--- a/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java
@@ -31,16 +31,16 @@
@Test
public void isAvailable_noLocationLinkPermission_shouldReturnFalse() {
- Settings.System.putInt(mContext.getContentResolver(),
- android.provider.Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 0);
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 0);
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void displayPreference_hasLocationLinkPermission_shouldReturnTrue() {
- Settings.System.putInt(mContext.getContentResolver(),
- android.provider.Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 1);
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED, 1);
assertThat(mController.isAvailable()).isTrue();
}
diff --git a/tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java
deleted file mode 100644
index c12fdc9..0000000
--- a/tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (C) 2017 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.location;
-
-import static androidx.lifecycle.Lifecycle.Event.ON_PAUSE;
-import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.BroadcastReceiver;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.location.LocationManager;
-import android.provider.Settings.Secure;
-
-import androidx.lifecycle.LifecycleOwner;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public class LocationPreferenceControllerTest {
- @Mock
- private Preference mPreference;
- @Mock
- private PreferenceScreen mScreen;
-
- private LifecycleOwner mLifecycleOwner;
- private Lifecycle mLifecycle;
- private LocationPreferenceController mController;
-
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private Context mContext;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mLifecycleOwner = () -> mLifecycle;
- mLifecycle = new Lifecycle(mLifecycleOwner);
- mController = new LocationPreferenceController(mContext, mLifecycle);
- when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
- }
-
- @Test
- public void isAvailable_shouldReturnTrue() {
- assertThat(mController.isAvailable()).isTrue();
- }
-
- @Test
- public void updateState_shouldSetSummary() {
- mController.updateState(mPreference);
-
- verify(mPreference).setSummary(nullable(String.class));
- }
-
- @Test
- public void updateSummary_shouldSetSummary() {
- mController.displayPreference(mScreen);
- mController.updateSummary();
-
- verify(mPreference).setSummary(nullable(String.class));
- }
-
- @Test
- public void getLocationSummary_locationOff_shouldSetSummaryOff() {
- final ContentResolver contentResolver = mContext.getContentResolver();
- Secure.putInt(contentResolver, Secure.LOCATION_MODE, Secure.LOCATION_MODE_OFF);
-
- final String locationSummary = mController.getLocationSummary(mContext);
- assertThat(locationSummary).isEqualTo(mContext.getString(R.string.location_off_summary));
- }
-
- @Test
- public void getLocationSummary_sensorsOnly_shouldSetSummaryOn() {
- final ContentResolver contentResolver = mContext.getContentResolver();
- Secure.putInt(contentResolver, Secure.LOCATION_MODE, Secure.LOCATION_MODE_SENSORS_ONLY);
-
- final String locationSummary = mController.getLocationSummary(mContext);
- assertThat(locationSummary).isEqualTo(mContext.getString(R.string.location_on_summary));
- }
-
- @Test
- public void getLocationSummary_highAccuracy_shouldSetSummaryOn() {
- final ContentResolver contentResolver = mContext.getContentResolver();
- Secure.putInt(contentResolver, Secure.LOCATION_MODE, Secure.LOCATION_MODE_HIGH_ACCURACY);
-
- final String locationSummary = mController.getLocationSummary(mContext);
- assertThat(locationSummary).isEqualTo(mContext.getString(R.string.location_on_summary));
- }
-
- @Test
- public void getLocationSummary_batterySaving_shouldSetSummaryOn() {
- final ContentResolver contentResolver = mContext.getContentResolver();
- Secure.putInt(contentResolver, Secure.LOCATION_MODE, Secure.LOCATION_MODE_BATTERY_SAVING);
-
- final String locationSummary = mController.getLocationSummary(mContext);
- assertThat(locationSummary).isEqualTo(mContext.getString(R.string.location_on_summary));
- }
-
- @Test
- public void onResume_shouldRegisterObserver() {
- mLifecycle.handleLifecycleEvent(ON_RESUME);
- verify(mContext).registerReceiver(any(BroadcastReceiver.class), any(IntentFilter.class));
- }
-
- @Test
- public void onPause_shouldUnregisterObserver() {
- mLifecycle.handleLifecycleEvent(ON_RESUME);
- mLifecycle.handleLifecycleEvent(ON_PAUSE);
- verify(mContext).unregisterReceiver(any(BroadcastReceiver.class));
- }
-
- @Test
- public void locationProvidersChangedReceiver_updatesPreferenceSummary() {
- mController.displayPreference(mScreen);
- mController.onResume();
-
- mController.mLocationProvidersChangedReceiver
- .onReceive(mContext, new Intent(LocationManager.PROVIDERS_CHANGED_ACTION));
-
- verify(mPreference).setSummary(any());
- }
-}
diff --git a/tests/robotests/src/com/android/settings/location/LocationSliceBuilderTest.java b/tests/robotests/src/com/android/settings/location/LocationSliceBuilderTest.java
index 90222ca..ecbf858 100644
--- a/tests/robotests/src/com/android/settings/location/LocationSliceBuilderTest.java
+++ b/tests/robotests/src/com/android/settings/location/LocationSliceBuilderTest.java
@@ -2,8 +2,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.spy;
-
import android.content.Context;
import androidx.core.graphics.drawable.IconCompat;
@@ -32,7 +30,7 @@
@Before
public void setUp() {
- mContext = spy(RuntimeEnvironment.application);
+ mContext = RuntimeEnvironment.application;
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
index 1687210..a8959c7 100644
--- a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
@@ -30,6 +30,7 @@
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;
@@ -59,7 +60,7 @@
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -83,7 +84,7 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
+ mContext = spy(Robolectric.setupActivity(Activity.class));
mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner);
when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
diff --git a/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java
index 469a537..e0370a4 100644
--- a/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java
@@ -17,17 +17,10 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
-import static org.mockito.Mockito.when;
-
import android.content.Context;
import android.provider.SearchIndexableResource;
-import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settings.wifi.WifiMasterSwitchPreferenceController;
import com.android.settingslib.drawer.CategoryKey;
import org.junit.Before;
@@ -65,90 +58,4 @@
assertThat(indexRes).hasSize(1);
assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId());
}
-
- @Test
- public void summaryProviderSetListening_hasMobileAndHotspot_shouldReturnMobileSummary() {
- final WifiMasterSwitchPreferenceController wifiPreferenceController =
- mock(WifiMasterSwitchPreferenceController.class);
- final MobileNetworkPreferenceController mobileNetworkPreferenceController =
- mock(MobileNetworkPreferenceController.class);
- final TetherPreferenceController tetherPreferenceController =
- mock(TetherPreferenceController.class);
-
- final SummaryLoader summaryLoader = mock(SummaryLoader.class);
- final SummaryLoader.SummaryProvider provider =
- new NetworkDashboardFragment.SummaryProvider(mContext, summaryLoader,
- wifiPreferenceController, mobileNetworkPreferenceController,
- tetherPreferenceController, () -> true);
-
- provider.setListening(false);
-
- verifyZeroInteractions(summaryLoader);
-
- when(wifiPreferenceController.isAvailable()).thenReturn(true);
- when(mobileNetworkPreferenceController.isAvailable()).thenReturn(true);
- when(tetherPreferenceController.isAvailable()).thenReturn(true);
-
- provider.setListening(true);
-
- verify(summaryLoader).setSummary(provider, "Wi\u2011Fi, mobile, data usage, and hotspot");
- }
-
- @Test
- public void summaryProviderSetListening_noMobileOrHotspot_shouldReturnSimpleSummary() {
- final WifiMasterSwitchPreferenceController wifiPreferenceController =
- mock(WifiMasterSwitchPreferenceController.class);
- final MobileNetworkPreferenceController mobileNetworkPreferenceController =
- mock(MobileNetworkPreferenceController.class);
- final TetherPreferenceController tetherPreferenceController =
- mock(TetherPreferenceController.class);
-
- final SummaryLoader summaryLoader = mock(SummaryLoader.class);
- final SummaryLoader.SummaryProvider provider =
- new NetworkDashboardFragment.SummaryProvider(mContext, summaryLoader,
- wifiPreferenceController, mobileNetworkPreferenceController,
- tetherPreferenceController, () -> true);
-
- provider.setListening(false);
-
- verifyZeroInteractions(summaryLoader);
-
- when(wifiPreferenceController.isAvailable()).thenReturn(true);
- when(mobileNetworkPreferenceController.isAvailable()).thenReturn(false);
- when(tetherPreferenceController.isAvailable()).thenReturn(false);
-
- provider.setListening(true);
-
- verify(summaryLoader).setSummary(provider, "Wi\u2011Fi and data usage");
- }
-
- @Test
- public void summaryProviderSetListening_noDataUsageActivity_shouldReturnNoDataUsageSummary() {
- final WifiMasterSwitchPreferenceController wifiPreferenceController =
- mock(WifiMasterSwitchPreferenceController.class);
- final MobileNetworkPreferenceController mobileNetworkPreferenceController =
- mock(MobileNetworkPreferenceController.class);
- final TetherPreferenceController tetherPreferenceController =
- mock(TetherPreferenceController.class);
-
- final SummaryLoader summaryLoader = mock(SummaryLoader.class);
- final SummaryLoader.SummaryProvider provider =
- new NetworkDashboardFragment.SummaryProvider(mContext, summaryLoader,
- wifiPreferenceController, mobileNetworkPreferenceController,
- tetherPreferenceController, () -> false);
-
- provider.setListening(false);
-
- verifyZeroInteractions(summaryLoader);
-
- when(wifiPreferenceController.isAvailable()).thenReturn(true);
- when(mobileNetworkPreferenceController.isAvailable()).thenReturn(true);
- when(tetherPreferenceController.isAvailable()).thenReturn(true);
-
- provider.setListening(true);
-
- verify(summaryLoader).setSummary(provider, "Wi\u2011Fi, mobile, and hotspot");
- }
-
-
}
diff --git a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
index b475c7e..464b290 100644
--- a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
@@ -43,6 +43,7 @@
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.withSettings;
+import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.net.ConnectivityManager;
@@ -50,6 +51,8 @@
import android.net.LinkProperties;
import android.net.Network;
import android.os.Handler;
+import android.os.UserHandle;
+import android.os.UserManager;
import android.provider.Settings;
import androidx.lifecycle.LifecycleOwner;
@@ -58,6 +61,8 @@
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before;
@@ -79,6 +84,10 @@
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowUserManager.class,
+ ShadowDevicePolicyManager.class
+})
public class PrivateDnsPreferenceControllerTest {
private final static String HOSTNAME = "dns.example.com";
@@ -108,6 +117,7 @@
private ShadowContentResolver mShadowContentResolver;
private Lifecycle mLifecycle;
private LifecycleOwner mLifecycleOwner;
+ private ShadowUserManager mShadowUserManager;
@Before
public void setUp() {
@@ -127,6 +137,8 @@
mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner);
mLifecycle.addObserver(mController);
+
+ mShadowUserManager = ShadowUserManager.getShadow();
}
private void updateLinkProperties(LinkProperties lp) {
@@ -264,6 +276,31 @@
verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_opportunistic));
}
+ @Test
+ public void isEnabled_canBeDisabledByAdmin() {
+ final int userId = UserHandle.myUserId();
+ final List<UserManager.EnforcingUser> enforcingUsers = Collections.singletonList(
+ new UserManager.EnforcingUser(userId,
+ UserManager.RESTRICTION_SOURCE_DEVICE_OWNER)
+ );
+ mShadowUserManager.setUserRestrictionSources(
+ UserManager.DISALLOW_CONFIG_PRIVATE_DNS,
+ UserHandle.of(userId),
+ enforcingUsers);
+
+ ShadowDevicePolicyManager.getShadow().setDeviceOwnerComponentOnAnyUser(
+ new ComponentName("test", "test"));
+
+ mController.updateState(mPreference);
+ verify(mPreference).setEnabled(false);
+ }
+
+ @Test
+ public void isEnabled_isEnabledByDefault() {
+ mController.updateState(mPreference);
+ verify(mPreference).setEnabled(true);
+ }
+
private void setPrivateDnsMode(String mode) {
Settings.Global.putString(mContentResolver, PRIVATE_DNS_MODE, mode);
}
diff --git a/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
index 004e352..8198042 100644
--- a/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
@@ -21,6 +21,7 @@
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.os.UserManager;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
@@ -32,9 +33,12 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowUserManager;
import org.robolectric.util.ReflectionHelpers;
+
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = ShadowRestrictedLockUtilsInternal.class)
public class TopLevelNetworkEntryPreferenceControllerTest {
@@ -53,6 +57,10 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
+ final ShadowUserManager um = Shadows.shadowOf(
+ RuntimeEnvironment.application.getSystemService(UserManager.class));
+ um.setIsAdminUser(true);
+
mController = new TopLevelNetworkEntryPreferenceController(mContext, "test_key");
ReflectionHelpers.setField(mController, "mWifiPreferenceController",
@@ -61,7 +69,6 @@
mMobileNetworkPreferenceController);
ReflectionHelpers.setField(mController, "mTetherPreferenceController",
mTetherPreferenceController);
-
}
@Test
diff --git a/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java
new file mode 100644
index 0000000..9664428
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java
@@ -0,0 +1,137 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import com.android.internal.telephony.PhoneConstants;
+import com.android.settings.network.ApnSettings;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.RestrictedPreference;
+
+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;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class ApnPreferenceControllerTest {
+ private static final int SUB_ID = 2;
+
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private TelephonyManager mInvalidTelephonyManager;
+ @Mock
+ private SubscriptionManager mSubscriptionManager;
+ @Mock
+ private CarrierConfigManager mCarrierConfigManager;
+
+ private ApnPreferenceController mController;
+ private RestrictedPreference mPreference;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(Robolectric.setupActivity(Activity.class));
+ doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
+ doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
+ doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
+ doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
+
+ mPreference = new RestrictedPreference(mContext);
+ mController = new ApnPreferenceController(mContext, "mobile_data");
+ mController.init(SUB_ID);
+ mController.setPreference(mPreference);
+ mController.mCarrierConfigManager = mCarrierConfigManager;
+ mPreference.setKey(mController.getPreferenceKey());
+ }
+
+ @Test
+ public void getAvailabilityStatus_apnSettingsNotSupported_returnUnavailable() {
+ doReturn(PhoneConstants.PHONE_TYPE_CDMA).when(mTelephonyManager).getPhoneType();
+ final PersistableBundle bundle = new PersistableBundle();
+ bundle.putBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL, false);
+ doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_apnSettingsSupportedWithCDMA_returnAvailable() {
+ doReturn(PhoneConstants.PHONE_TYPE_CDMA).when(mTelephonyManager).getPhoneType();
+ final PersistableBundle bundle = new PersistableBundle();
+ bundle.putBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL, true);
+ doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_apnSettingsSupportedWithGsm_returnAvailable() {
+ doReturn(PhoneConstants.PHONE_TYPE_GSM).when(mTelephonyManager).getPhoneType();
+ final PersistableBundle bundle = new PersistableBundle();
+ bundle.putBoolean(CarrierConfigManager.KEY_APN_EXPAND_BOOL, true);
+ doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_carrierConfigNull_returnUnavailable() {
+ doReturn(PhoneConstants.PHONE_TYPE_GSM).when(mTelephonyManager).getPhoneType();
+ when(mCarrierConfigManager.getConfigForSubId(SUB_ID)).thenReturn(null);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+ }
+
+ @Test
+ public void handPreferenceTreeClick_fireIntent() {
+ ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
+
+ mController.handlePreferenceTreeClick(mPreference);
+
+ verify(mContext).startActivity(captor.capture());
+ final Intent intent = captor.getValue();
+ assertThat(intent.getAction()).isEqualTo(Settings.ACTION_APN_SETTINGS);
+ assertThat(intent.getIntExtra(ApnSettings.SUB_ID, 0)).isEqualTo(SUB_ID);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/CarrierPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/CarrierPreferenceControllerTest.java
new file mode 100644
index 0000000..8673de8
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/CarrierPreferenceControllerTest.java
@@ -0,0 +1,109 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import com.android.internal.telephony.PhoneConstants;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.RestrictedPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class CarrierPreferenceControllerTest {
+ private static final int SUB_ID = 2;
+
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private TelephonyManager mInvalidTelephonyManager;
+ @Mock
+ private SubscriptionManager mSubscriptionManager;
+ @Mock
+ private CarrierConfigManager mCarrierConfigManager;
+
+ private CarrierPreferenceController mController;
+ private RestrictedPreference mPreference;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
+ doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
+ doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
+ doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
+
+ mPreference = new RestrictedPreference(mContext);
+ mController = new CarrierPreferenceController(mContext, "mobile_data");
+ mController.init(SUB_ID);
+ mController.mCarrierConfigManager = mCarrierConfigManager;
+ mPreference.setKey(mController.getPreferenceKey());
+ }
+
+ @Test
+ public void getAvailabilityStatus_cdmaWithFlagOff_returnUnavailable() {
+ doReturn(PhoneConstants.PHONE_TYPE_CDMA).when(mTelephonyManager).getPhoneType();
+ final PersistableBundle bundle = new PersistableBundle();
+ bundle.putBoolean(CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL, false);
+ doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_cdmaWithFlagOnreturnAvailable() {
+ doReturn(PhoneConstants.PHONE_TYPE_CDMA).when(mTelephonyManager).getPhoneType();
+ final PersistableBundle bundle = new PersistableBundle();
+ bundle.putBoolean(CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL, true);
+ doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_gsmWithFlagOnreturnAvailable() {
+ doReturn(PhoneConstants.PHONE_TYPE_GSM).when(mTelephonyManager).getPhoneType();
+ final PersistableBundle bundle = new PersistableBundle();
+ bundle.putBoolean(CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL, true);
+ doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java
new file mode 100644
index 0000000..85a627d
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java
@@ -0,0 +1,138 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+
+import androidx.preference.Preference;
+
+import com.android.internal.telephony.PhoneConstants;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.RestrictedPreference;
+
+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;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class DataServiceSetupPreferenceControllerTest {
+ private static final int SUB_ID = 2;
+
+ private static final String SETUP_URL = "url://tmp_url:^1";
+
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private TelephonyManager mInvalidTelephonyManager;
+ @Mock
+ private CarrierConfigManager mCarrierConfigManager;
+
+ private PersistableBundle mCarrierConfig;
+ private DataServiceSetupPreferenceController mController;
+ private Preference mPreference;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(Robolectric.setupActivity(Activity.class));
+ doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
+ doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
+ doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
+ Settings.Global.putString(mContext.getContentResolver(),
+ Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL, SETUP_URL);
+
+ mCarrierConfig = new PersistableBundle();
+ doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
+
+ mPreference = new RestrictedPreference(mContext);
+ mController = new DataServiceSetupPreferenceController(mContext, "data_service_setup");
+ mController.init(SUB_ID);
+ mPreference.setKey(mController.getPreferenceKey());
+ }
+
+ @Test
+ public void getAvailabilityStatus_allConfigOn_returnAvailable() {
+ doReturn(PhoneConstants.LTE_ON_CDMA_TRUE).when(mTelephonyManager).getLteOnCdmaMode();
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
+ false);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_missUrl_returnUnavailable() {
+ Settings.Global.putString(mContext.getContentResolver(),
+ Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL, "");
+ doReturn(PhoneConstants.LTE_ON_CDMA_TRUE).when(mTelephonyManager).getLteOnCdmaMode();
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
+ false);
+
+ mController = new DataServiceSetupPreferenceController(mContext, "data_service_setup");
+ mController.init(SUB_ID);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_notCdma_returnUnavailable() {
+ doReturn(PhoneConstants.LTE_ON_CDMA_FALSE).when(mTelephonyManager).getLteOnCdmaMode();
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
+ false);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+ }
+
+ @Test
+ public void handlePreferenceTreeClick_startActivity() {
+ ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
+
+ mController.handlePreferenceTreeClick(mPreference);
+
+ verify(mContext).startActivity(captor.capture());
+
+ final Intent intent = captor.getValue();
+ assertThat(intent.getAction()).isEqualTo(Intent.ACTION_VIEW);
+ assertThat(intent.getData()).isEqualTo(
+ Uri.parse(TextUtils.expandTemplate(SETUP_URL, "").toString()));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java
new file mode 100644
index 0000000..ea6f903
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java
@@ -0,0 +1,103 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.provider.Settings;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+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;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class DataUsagePreferenceControllerTest {
+ private static final int SUB_ID = 2;
+
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ private DataUsagePreferenceController mController;
+ private SwitchPreference mPreference;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(Robolectric.setupActivity(Activity.class));
+ doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
+ doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
+
+ mPreference = new SwitchPreference(mContext);
+ mController = new DataUsagePreferenceController(mContext, "data_usage");
+ mController.init(SUB_ID);
+ mPreference.setKey(mController.getPreferenceKey());
+ }
+
+ @Test
+ public void getAvailabilityStatus_validSubId_returnAvailable() {
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(
+ BasePreferenceController.AVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_invalidSubId_returnUnsearchable() {
+ mController.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(
+ BasePreferenceController.AVAILABLE_UNSEARCHABLE);
+ }
+
+ @Test
+ public void handlePreferenceTreeClick_needDialog_showDialog() {
+ final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
+ mController.handlePreferenceTreeClick(mPreference);
+
+ verify(mContext).startActivity(captor.capture());
+ final Intent intent = captor.getValue();
+
+ assertThat(intent.getAction()).isEqualTo(Settings.ACTION_MOBILE_DATA_USAGE);
+ assertThat(intent.getIntExtra(Settings.EXTRA_SUB_ID, 0)).isEqualTo(SUB_ID);
+ }
+
+ @Test
+ public void updateState_invalidSubId_disabled() {
+ mController.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
new file mode 100644
index 0000000..02710fb
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
@@ -0,0 +1,153 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.ListPreference;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class EnabledNetworkModePreferenceControllerTest {
+ private static final int SUB_ID = 2;
+
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private TelephonyManager mInvalidTelephonyManager;
+ @Mock
+ private CarrierConfigManager mCarrierConfigManager;
+
+ private PersistableBundle mPersistableBundle;
+ private EnabledNetworkModePreferenceController mController;
+ private ListPreference mPreference;
+ private Context mContext;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
+ doReturn(mTelephonyManager).when(mContext).getSystemService(TelephonyManager.class);
+ doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
+ doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
+ doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ doReturn(mContext).when(mContext).createPackageContext(anyString(), anyInt());
+ mPersistableBundle = new PersistableBundle();
+ doReturn(mPersistableBundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
+
+ mPreference = new ListPreference(mContext);
+ mPreference.setEntries(R.array.enabled_networks_choices);
+ mPreference.setEntryValues(R.array.enabled_networks_values);
+ mController = new EnabledNetworkModePreferenceController(mContext, "enabled_network");
+ mController.init(SUB_ID);
+ mPreference.setKey(mController.getPreferenceKey());
+ }
+
+ @Test
+ public void getAvailabilityStatus_hideCarrierNetworkSettings_returnUnavailable() {
+ mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
+ true);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_notWorldPhone_returnAvailable() {
+ mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
+ false);
+ mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, false);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+ }
+
+ @Test
+ public void init_initShow4GForLTE() {
+ mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL,
+ true);
+
+ mController.init(SUB_ID);
+
+ assertThat(mController.mShow4GForLTE).isTrue();
+ }
+
+ @Test
+ public void updateState_updateByNetworkMode() {
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
+ TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getValue()).isEqualTo(
+ String.valueOf(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
+ assertThat(mPreference.getSummary()).isEqualTo("3G");
+ }
+
+ @Test
+ public void onPreferenceChange_updateSuccess() {
+ doReturn(true).when(mTelephonyManager).setPreferredNetworkType(SUB_ID,
+ TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA);
+
+ mController.onPreferenceChange(mPreference,
+ String.valueOf(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA));
+
+ assertThat(Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID, 0)).isEqualTo(
+ TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA);
+ }
+
+ @Test
+ public void onPreferenceChange_updateFail() {
+ doReturn(false).when(mTelephonyManager).setPreferredNetworkType(SUB_ID,
+ TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA);
+
+ mController.onPreferenceChange(mPreference,
+ String.valueOf(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA));
+
+ assertThat(Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID, 0)).isNotEqualTo(
+ TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA);
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceControllerTest.java
new file mode 100644
index 0000000..dee4c5e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLtePreferenceControllerTest.java
@@ -0,0 +1,138 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.SwitchPreference;
+
+import com.android.ims.ImsManager;
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class Enhanced4gLtePreferenceControllerTest {
+ private static final int SUB_ID = 2;
+
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private TelephonyManager mInvalidTelephonyManager;
+ @Mock
+ private SubscriptionManager mSubscriptionManager;
+ @Mock
+ private CarrierConfigManager mCarrierConfigManager;
+ @Mock
+ private ImsManager mImsManager;
+
+ private Enhanced4gLtePreferenceController mController;
+ private SwitchPreference mPreference;
+ private PersistableBundle mCarrierConfig;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
+ doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
+ doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
+ doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
+ doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+
+ mCarrierConfig = new PersistableBundle();
+ doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
+
+ mPreference = new RestrictedSwitchPreference(mContext);
+ mController = new Enhanced4gLtePreferenceController(mContext, "roaming");
+ mController.mImsManager = mImsManager;
+ mController.init(SUB_ID);
+ mPreference.setKey(mController.getPreferenceKey());
+ }
+
+ @Test
+ public void getAvailabilityStatus_invalidSubId_returnUnavailable() {
+ mController.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(
+ BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_volteDisabled_returnUnavailable() {
+ doReturn(false).when(mImsManager).isVolteEnabledByPlatform();
+ doReturn(true).when(mImsManager).isVolteProvisionedOnDevice();
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(
+ BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
+ }
+
+ @Test
+ public void updateState_variant4gLte_useVariantTitle() {
+ mCarrierConfig.putInt(CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT, 1);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getTitle()).isEqualTo(
+ mContext.getString(R.string.enhanced_4g_lte_mode_title_variant));
+ }
+
+ @Test
+ public void updateState_configEnabled_prefEnabled() {
+ mPreference.setEnabled(false);
+ mCarrierConfig.putInt(CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT, 1);
+ doReturn(TelephonyManager.CALL_STATE_IDLE).when(mTelephonyManager).getCallState(SUB_ID);
+ doReturn(true).when(mImsManager).isNonTtyOrTtyOnVolteEnabled();
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL, true);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isTrue();
+ }
+
+ @Test
+ public void updateState_configOn_prefChecked() {
+ mPreference.setChecked(false);
+ doReturn(true).when(mImsManager).isEnhanced4gLteModeSettingEnabledByUser();
+ doReturn(true).when(mImsManager).isNonTtyOrTtyOnVolteEnabled();
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isChecked()).isTrue();
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java b/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java
index 9b6d563..d260a97 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java
@@ -79,7 +79,7 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
+ mContext = RuntimeEnvironment.application;
mFeatureFactory = FakeFeatureFactory.setupForTest();
mSlicesFeatureProvider = mFeatureFactory.getSlicesFeatureProvider();
diff --git a/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java
new file mode 100644
index 0000000..8fd2c28
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java
@@ -0,0 +1,79 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.telephony.TelephonyManager;
+import android.telephony.euicc.EuiccManager;
+
+import androidx.preference.Preference;
+
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+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;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class EuiccPreferenceControllerTest {
+ private static final int SUB_ID = 2;
+
+ @Mock
+ private TelephonyManager mTelephonyManager;
+
+ private EuiccPreferenceController mController;
+ private Preference mPreference;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(Robolectric.setupActivity(Activity.class));
+ doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
+ doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
+
+ mPreference = new Preference(mContext);
+ mController = new EuiccPreferenceController(mContext, "euicc");
+ mController.init(SUB_ID);
+ mPreference.setKey(mController.getPreferenceKey());
+ }
+
+ @Test
+ public void handlePreferenceTreeClick_startActivity() {
+ ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
+
+ mController.handlePreferenceTreeClick(mPreference);
+
+ verify(mContext).startActivity(captor.capture());
+ assertThat(captor.getValue().getAction()).isEqualTo(
+ EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS);
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileSettingsActivityTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java
similarity index 61%
rename from tests/robotests/src/com/android/settings/network/telephony/MobileSettingsActivityTest.java
rename to tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java
index c5ca427..68634a8 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileSettingsActivityTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java
@@ -16,16 +16,19 @@
package com.android.settings.network.telephony;
-import static com.android.settings.network.telephony.MobileSettingsActivity.MOBILE_SETTINGS_TAG;
+import static com.android.settings.network.telephony.MobileNetworkActivity.MOBILE_SETTINGS_TAG;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import android.content.Context;
+import android.content.Intent;
import android.os.Bundle;
+import android.provider.Settings;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.view.Menu;
@@ -53,13 +56,13 @@
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
-public class MobileSettingsActivityTest {
+public class MobileNetworkActivityTest {
private static final int CURRENT_SUB_ID = 3;
private static final int PREV_SUB_ID = 1;
private Context mContext;
- private MobileSettingsActivity mMobileSettingsActivity;
+ private MobileNetworkActivity mMobileNetworkActivity;
private List<SubscriptionInfo> mSubscriptionInfos;
private Fragment mShowFragment;
private Fragment mHideFragment;
@@ -69,6 +72,8 @@
@Mock
private SubscriptionInfo mSubscriptionInfo;
@Mock
+ private SubscriptionInfo mSubscriptionInfo2;
+ @Mock
private FragmentManager mFragmentManager;
@Mock
private FragmentTransaction mFragmentTransaction;
@@ -80,16 +85,19 @@
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
- mMobileSettingsActivity = spy(new MobileSettingsActivity());
+ mMobileNetworkActivity = spy(new MobileNetworkActivity());
mSubscriptionInfos = new ArrayList<>();
mShowFragment = new Fragment();
mHideFragment = new Fragment();
- mMobileSettingsActivity.mSubscriptionInfos = mSubscriptionInfos;
+ mMobileNetworkActivity.mSubscriptionInfos = mSubscriptionInfos;
+ mMobileNetworkActivity.mSubscriptionManager = mSubscriptionManager;
+ when(mSubscriptionInfo.getSubscriptionId()).thenReturn(PREV_SUB_ID);
+ when(mSubscriptionInfo2.getSubscriptionId()).thenReturn(CURRENT_SUB_ID);
- doReturn(mSubscriptionManager).when(mMobileSettingsActivity).getSystemService(
+ doReturn(mSubscriptionManager).when(mMobileNetworkActivity).getSystemService(
SubscriptionManager.class);
- doReturn(mBottomNavigationView).when(mMobileSettingsActivity).findViewById(R.id.bottom_nav);
- doReturn(mFragmentManager).when(mMobileSettingsActivity).getSupportFragmentManager();
+ doReturn(mBottomNavigationView).when(mMobileNetworkActivity).findViewById(R.id.bottom_nav);
+ doReturn(mFragmentManager).when(mMobileNetworkActivity).getSupportFragmentManager();
doReturn(mFragmentTransaction).when(mFragmentManager).beginTransaction();
doReturn(mHideFragment).when(mFragmentManager).findFragmentByTag(
MOBILE_SETTINGS_TAG + PREV_SUB_ID);
@@ -102,7 +110,7 @@
mSubscriptionInfos.add(mSubscriptionInfo);
doReturn(mSubscriptionInfos).when(mSubscriptionManager).getActiveSubscriptionInfoList();
- mMobileSettingsActivity.updateBottomNavigationView();
+ mMobileNetworkActivity.updateBottomNavigationView();
verify(mBottomNavigationView).setVisibility(View.GONE);
}
@@ -115,41 +123,50 @@
doReturn(mSubscriptionInfos).when(mSubscriptionManager).getActiveSubscriptionInfoList();
doReturn(menu).when(mBottomNavigationView).getMenu();
- mMobileSettingsActivity.updateBottomNavigationView();
+ mMobileNetworkActivity.updateBottomNavigationView();
assertThat(menu.size()).isEqualTo(2);
}
@Test
- public void switchFragment_hidePreviousFragment() {
- mMobileSettingsActivity.mCurSubscriptionId = PREV_SUB_ID;
+ public void switchFragment_newFragment_replaceIt() {
+ mMobileNetworkActivity.mCurSubscriptionId = PREV_SUB_ID;
- mMobileSettingsActivity.switchFragment(mShowFragment, CURRENT_SUB_ID);
+ mMobileNetworkActivity.switchFragment(mShowFragment, CURRENT_SUB_ID);
- verify(mFragmentTransaction).hide(mHideFragment);
+ verify(mFragmentTransaction).replace(R.id.main_content, mShowFragment,
+ MOBILE_SETTINGS_TAG + CURRENT_SUB_ID);
}
@Test
- public void switchFragment_fragmentExist_showItWithArguments() {
- mMobileSettingsActivity.mCurSubscriptionId = PREV_SUB_ID;
+ public void getSubscriptionId_hasIntent_getIdFromIntent() {
+ final Intent intent = new Intent();
+ intent.putExtra(Settings.EXTRA_SUB_ID, CURRENT_SUB_ID);
+ doReturn(intent).when(mMobileNetworkActivity).getIntent();
+ doReturn(true).when(mSubscriptionManager).isActiveSubscriptionId(CURRENT_SUB_ID);
- mMobileSettingsActivity.switchFragment(mShowFragment, CURRENT_SUB_ID);
+ assertThat(mMobileNetworkActivity.getSubscriptionId()).isEqualTo(CURRENT_SUB_ID);
+ }
- assertThat(mShowFragment.getArguments().getInt(
- MobileSettingsActivity.KEY_SUBSCRIPTION_ID)).isEqualTo(CURRENT_SUB_ID);
- verify(mFragmentTransaction).show(mShowFragment);
+ @Test
+ public void getSubscriptionId_noIntent_firstIdInList() {
+ doReturn(null).when(mMobileNetworkActivity).getIntent();
+ mSubscriptionInfos.add(mSubscriptionInfo);
+ mSubscriptionInfos.add(mSubscriptionInfo2);
+
+ assertThat(mMobileNetworkActivity.getSubscriptionId()).isEqualTo(PREV_SUB_ID);
}
@Test
public void onSaveInstanceState_saveCurrentSubId() {
- mMobileSettingsActivity = Robolectric.buildActivity(
- MobileSettingsActivity.class).get();
- mMobileSettingsActivity.mCurSubscriptionId = PREV_SUB_ID;
+ mMobileNetworkActivity = Robolectric.buildActivity(
+ MobileNetworkActivity.class).get();
+ mMobileNetworkActivity.mCurSubscriptionId = PREV_SUB_ID;
final Bundle bundle = new Bundle();
- mMobileSettingsActivity.saveInstanceState(bundle);
+ mMobileNetworkActivity.saveInstanceState(bundle);
- assertThat(bundle.getInt(MobileSettingsActivity.KEY_CUR_SUBSCRIPTION_ID)).isEqualTo(
+ assertThat(bundle.getInt(Settings.EXTRA_SUB_ID)).isEqualTo(
PREV_SUB_ID);
}
}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java
index d5c8648..8a57a0c 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java
@@ -18,25 +18,29 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
+import android.os.PersistableBundle;
+import android.provider.Settings;
import android.telecom.PhoneAccountHandle;
+import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -73,27 +77,35 @@
private ComponentName mComponentName;
@Mock
private ResolveInfo mResolveInfo;
+ @Mock
+ private CarrierConfigManager mCarrierConfigManager;
private Context mContext;
+ private PersistableBundle mCarrierConfig;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
- doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
- doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
- doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID_1);
- doReturn(mTelephonyManager2).when(mTelephonyManager).createForSubscriptionId(SUB_ID_2);
- doReturn(mPackageManager).when(mContext).getPackageManager();
- doReturn(mComponentName).when(mPhoneAccountHandle).getComponentName();
- doReturn(PACKAGE_NAME).when(mComponentName).getPackageName();
+ when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
+ when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+ when(mTelephonyManager.createForSubscriptionId(SUB_ID_1)).thenReturn(mTelephonyManager);
+ when(mTelephonyManager.createForSubscriptionId(SUB_ID_2)).thenReturn(mTelephonyManager2);
+ when(mContext.getPackageManager()).thenReturn(mPackageManager);
+ when(mPhoneAccountHandle.getComponentName()).thenReturn(mComponentName);
+ when(mComponentName.getPackageName()).thenReturn(PACKAGE_NAME);
+ when(mContext.getSystemService(CarrierConfigManager.class)).thenReturn(
+ mCarrierConfigManager);
- doReturn(SUB_ID_1).when(mSubscriptionInfo1).getSubscriptionId();
- doReturn(SUB_ID_2).when(mSubscriptionInfo2).getSubscriptionId();
+ mCarrierConfig = new PersistableBundle();
+ when(mCarrierConfigManager.getConfigForSubId(SUB_ID_1)).thenReturn(mCarrierConfig);
- doReturn(Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)).when(
- mSubscriptionManager).getActiveSubscriptionInfoList();
+ when(mSubscriptionInfo1.getSubscriptionId()).thenReturn(SUB_ID_1);
+ when(mSubscriptionInfo2.getSubscriptionId()).thenReturn(SUB_ID_2);
+
+ when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
+ Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
}
@Test
@@ -127,8 +139,8 @@
@Test
public void buildConfigureIntent_noActivityHandleIntent_returnNull() {
- doReturn(new ArrayList<ResolveInfo>()).when(mPackageManager).queryIntentActivities(
- nullable(Intent.class), anyInt());
+ when(mPackageManager.queryIntentActivities(nullable(Intent.class), anyInt()))
+ .thenReturn(new ArrayList<>());
assertThat(MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext,
mPhoneAccountHandle)).isNull();
@@ -136,10 +148,39 @@
@Test
public void buildConfigureIntent_hasActivityHandleIntent_returnIntent() {
- doReturn(Arrays.asList(mResolveInfo)).when(mPackageManager).queryIntentActivities(
- nullable(Intent.class), anyInt());
+ when(mPackageManager.queryIntentActivities(nullable(Intent.class), anyInt()))
+ .thenReturn(Arrays.asList(mResolveInfo));
assertThat(MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext,
mPhoneAccountHandle)).isNotNull();
}
+
+ @Test
+ public void isCdmaOptions_phoneTypeCdma_returnTrue() {
+ when(mTelephonyManager.getPhoneType()).thenReturn(PhoneConstants.PHONE_TYPE_CDMA);
+
+ assertThat(MobileNetworkUtils.isCdmaOptions(mContext, SUB_ID_1)).isTrue();
+ }
+
+ @Test
+ public void isCdmaOptions_worldModeWithGsmWcdma_returnTrue() {
+ when(mTelephonyManager.getPhoneType()).thenReturn(PhoneConstants.PHONE_TYPE_GSM);
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
+
+ Settings.Global.putInt(mContext.getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID_1,
+ TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA);
+
+ assertThat(MobileNetworkUtils.isCdmaOptions(mContext, SUB_ID_1)).isTrue();
+ }
+
+ @Test
+ public void isCdmaOptions_carrierWorldModeWithoutHideCarrier_returnTrue() {
+ when(mTelephonyManager.getPhoneType()).thenReturn(PhoneConstants.PHONE_TYPE_GSM);
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
+ false);
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
+
+ assertThat(MobileNetworkUtils.isCdmaOptions(mContext, SUB_ID_1)).isTrue();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java b/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
new file mode 100644
index 0000000..956b601
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
@@ -0,0 +1,107 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.telephony.CellInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceManager;
+
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.Arrays;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class NetworkSelectSettingsTest {
+ private static final int SUB_ID = 2;
+
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private SubscriptionManager mSubscriptionManager;
+ @Mock
+ private CellInfo mCellInfo1;
+ @Mock
+ private CellInfo mCellInfo2;
+ @Mock
+ private PreferenceManager mPreferenceManager;
+ private Context mContext;
+
+ private PreferenceCategory mConnectedPreferenceCategory;
+ private PreferenceCategory mPreferenceCategory;
+
+ private NetworkSelectSettings mNetworkSelectSettings;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+ when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
+ when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
+
+ when(mCellInfo1.isRegistered()).thenReturn(true);
+ when(mCellInfo2.isRegistered()).thenReturn(false);
+
+ mConnectedPreferenceCategory = spy(new PreferenceCategory(mContext));
+ doReturn(mPreferenceManager).when(mConnectedPreferenceCategory).getPreferenceManager();
+ mPreferenceCategory = spy(new PreferenceCategory(mContext));
+ doReturn(mPreferenceManager).when(mPreferenceCategory).getPreferenceManager();
+
+ mNetworkSelectSettings = spy(new NetworkSelectSettings());
+ doReturn(mContext).when(mNetworkSelectSettings).getContext();
+ doReturn(mPreferenceManager).when(mNetworkSelectSettings).getPreferenceManager();
+ 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() {
+ mNetworkSelectSettings.updateAllPreferenceCategory();
+
+ assertThat(mConnectedPreferenceCategory.getPreferenceCount()).isEqualTo(1);
+ final NetworkOperatorPreference connectedPreference =
+ (NetworkOperatorPreference) mConnectedPreferenceCategory.getPreference(0);
+ assertThat(connectedPreference.getCellInfo()).isEqualTo(mCellInfo1);
+ assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(1);
+ final NetworkOperatorPreference preference =
+ (NetworkOperatorPreference) mPreferenceCategory.getPreference(0);
+ assertThat(preference.getCellInfo()).isEqualTo(mCellInfo2);
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java
new file mode 100644
index 0000000..d11e11c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java
@@ -0,0 +1,144 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.fragment.app.FragmentManager;
+import androidx.preference.ListPreference;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class PreferredNetworkModePreferenceControllerTest {
+ private static final int SUB_ID = 2;
+
+ @Mock
+ private FragmentManager mFragmentManager;
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private TelephonyManager mInvalidTelephonyManager;
+ @Mock
+ private CarrierConfigManager mCarrierConfigManager;
+
+ private PersistableBundle mPersistableBundle;
+ private PreferredNetworkModePreferenceController mController;
+ private ListPreference mPreference;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
+ doReturn(mTelephonyManager).when(mContext).getSystemService(TelephonyManager.class);
+ doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
+ doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
+ doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ mPersistableBundle = new PersistableBundle();
+ doReturn(mPersistableBundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
+
+ mPreference = new ListPreference(mContext);
+ mPreference.setEntries(R.array.preferred_network_mode_choices);
+ mPreference.setEntryValues(R.array.preferred_network_mode_values);
+ mController = new PreferredNetworkModePreferenceController(mContext, "mobile_data");
+ mController.init(SUB_ID);
+ mPreference.setKey(mController.getPreferenceKey());
+ }
+
+ @Test
+ public void getAvailabilityStatus_hideCarrierNetworkSettings_returnUnavailable() {
+ mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
+ true);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_worldPhone_returnAvailable() {
+ mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
+ false);
+ mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+ }
+
+ @Test
+ public void updateState_updateByNetworkMode() {
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
+ TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getValue()).isEqualTo(
+ String.valueOf(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
+ assertThat(mPreference.getSummary()).isEqualTo(
+ mContext.getString(R.string.preferred_network_mode_tdscdma_gsm_wcdma_summary));
+ }
+
+ @Test
+ public void onPreferenceChange_updateSuccess() {
+ doReturn(true).when(mTelephonyManager).setPreferredNetworkType(SUB_ID,
+ TelephonyManager.NETWORK_MODE_LTE_TDSCDMA);
+
+ mController.onPreferenceChange(mPreference,
+ String.valueOf(TelephonyManager.NETWORK_MODE_LTE_TDSCDMA));
+
+ assertThat(Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID, 0)).isEqualTo(
+ TelephonyManager.NETWORK_MODE_LTE_TDSCDMA);
+ }
+
+ @Test
+ public void onPreferenceChange_updateFail() {
+ doReturn(false).when(mTelephonyManager).setPreferredNetworkType(SUB_ID,
+ TelephonyManager.NETWORK_MODE_LTE_TDSCDMA);
+
+ mController.onPreferenceChange(mPreference,
+ String.valueOf(TelephonyManager.NETWORK_MODE_LTE_TDSCDMA));
+
+ assertThat(Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID, 0)).isNotEqualTo(
+ TelephonyManager.NETWORK_MODE_LTE_TDSCDMA);
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/RoamingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/RoamingPreferenceControllerTest.java
new file mode 100644
index 0000000..79d281f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/RoamingPreferenceControllerTest.java
@@ -0,0 +1,144 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class RoamingPreferenceControllerTest {
+ private static final int SUB_ID = 2;
+
+ @Mock
+ private FragmentManager mFragmentManager;
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private TelephonyManager mInvalidTelephonyManager;
+ @Mock
+ private SubscriptionManager mSubscriptionManager;
+ @Mock
+ private FragmentTransaction mFragmentTransaction;
+ @Mock
+ private CarrierConfigManager mCarrierConfigManager;
+
+ private RoamingPreferenceController mController;
+ private RestrictedSwitchPreference mPreference;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
+ doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
+ doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
+ doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
+ doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ doReturn(mFragmentTransaction).when(mFragmentManager).beginTransaction();
+
+ mPreference = new RestrictedSwitchPreference(mContext);
+ mController = new RoamingPreferenceController(mContext, "roaming");
+ mController.init(mFragmentManager, SUB_ID);
+ mPreference.setKey(mController.getPreferenceKey());
+ }
+
+ @Test
+ public void getAvailabilityStatus_validSubId_returnAvailable() {
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(
+ BasePreferenceController.AVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_invalidSubId_returnUnsearchable() {
+ mController.init(mFragmentManager, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(
+ BasePreferenceController.AVAILABLE_UNSEARCHABLE);
+ }
+
+ @Test
+ public void isDialogNeeded_roamingDisabledWithoutFlag_returnTrue() {
+ final PersistableBundle bundle = new PersistableBundle();
+ bundle.putBoolean(CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL, false);
+ doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
+ doReturn(false).when(mTelephonyManager).isDataRoamingEnabled();
+
+ assertThat(mController.isDialogNeeded()).isTrue();
+ }
+
+ @Test
+ public void isDialogNeeded_roamingEnabled_returnFalse() {
+ doReturn(true).when(mTelephonyManager).isDataRoamingEnabled();
+
+ assertThat(mController.isDialogNeeded()).isFalse();
+ }
+
+ @Test
+ public void handlePreferenceTreeClick_needDialog_showDialog() {
+ mController.mNeedDialog = true;
+
+ mController.handlePreferenceTreeClick(mPreference);
+
+ verify(mFragmentManager).beginTransaction();
+ }
+
+ @Test
+ public void updateState_invalidSubId_disabled() {
+ mController.init(mFragmentManager, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void updateState_validSubId_enabled() {
+ doReturn(true).when(mTelephonyManager).isDataRoamingEnabled();
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isTrue();
+ assertThat(mPreference.isChecked()).isTrue();
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/VideoCallingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/VideoCallingPreferenceControllerTest.java
new file mode 100644
index 0000000..e50e264
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/VideoCallingPreferenceControllerTest.java
@@ -0,0 +1,129 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+import android.telephony.TelephonyManager;
+import android.telephony.ims.feature.ImsFeature;
+
+import androidx.preference.SwitchPreference;
+
+import com.android.ims.ImsManager;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class VideoCallingPreferenceControllerTest {
+ private static final int SUB_ID = 2;
+
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private ImsManager mImsManager;
+ @Mock
+ private CarrierConfigManager mCarrierConfigManager;
+
+ private VideoCallingPreferenceController mController;
+ private PersistableBundle mCarrierConfig;
+ private SwitchPreference mPreference;
+ private Context mContext;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
+ doReturn(mTelephonyManager).when(mContext).getSystemService(TelephonyManager.class);
+ doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
+ doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
+
+ mCarrierConfig = new PersistableBundle();
+ mCarrierConfig.putBoolean(
+ CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS, true);
+ doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
+
+ mPreference = new SwitchPreference(mContext);
+ mController = new VideoCallingPreferenceController(mContext, "wifi_calling");
+ mController.init(SUB_ID);
+ mController.mImsManager = mImsManager;
+ mPreference.setKey(mController.getPreferenceKey());
+
+ doReturn(true).when(mImsManager).isVtEnabledByPlatform();
+ doReturn(true).when(mImsManager).isVtProvisionedOnDevice();
+ doReturn(ImsFeature.STATE_READY).when(mImsManager).getImsServiceState();
+ doReturn(true).when(mTelephonyManager).isDataEnabled();
+ }
+
+ @Test
+ public void isVideoCallEnabled_allFlagsOn_returnTrue() {
+ assertThat(mController.isVideoCallEnabled()).isTrue();
+ }
+
+ @Test
+ public void isVideoCallEnabled_disabledByPlatform_returnFalse() {
+ doReturn(false).when(mImsManager).isVtEnabledByPlatform();
+
+ assertThat(mController.isVideoCallEnabled()).isFalse();
+ }
+
+ @Test
+ public void isVideoCallEnabled_dataDisabled_returnFalse() {
+ mCarrierConfig.putBoolean(
+ CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS, false);
+ doReturn(false).when(mTelephonyManager).isDataEnabled();
+
+ assertThat(mController.isVideoCallEnabled()).isFalse();
+ }
+
+ @Test
+ public void updateState_4gLteOff_disabled() {
+ doReturn(false).when(mImsManager).isEnhanced4gLteModeSettingEnabledByUser();
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ assertThat(mPreference.isChecked()).isFalse();
+ }
+
+ @Test
+ public void updateState_4gLteOnWithoutCall_checked() {
+ doReturn(true).when(mImsManager).isVtEnabledByUser();
+ doReturn(true).when(mImsManager).isEnhanced4gLteModeSettingEnabledByUser();
+ doReturn(true).when(mImsManager).isNonTtyOrTtyOnVolteEnabled();
+ doReturn(TelephonyManager.CALL_STATE_IDLE).when(mTelephonyManager).getCallState(SUB_ID);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isTrue();
+ assertThat(mPreference.isChecked()).isTrue();
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java
new file mode 100644
index 0000000..a209b00
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java
@@ -0,0 +1,114 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+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.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class WifiCallingPreferenceControllerTest {
+ private static final int SUB_ID = 2;
+
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private ImsManager mImsManager;
+ @Mock
+ private PreferenceScreen mPreferenceScreen;
+
+ private WifiCallingPreferenceController mController;
+ private Preference mPreference;
+ private PreferenceCategory mPreferenceCategory;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+ when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
+ when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
+
+ mPreference = new Preference(mContext);
+ mController = new WifiCallingPreferenceController(mContext, "wifi_calling");
+ mController.init(SUB_ID);
+ mController.mImsManager = mImsManager;
+ mPreference.setKey(mController.getPreferenceKey());
+
+ mPreferenceCategory = new PreferenceCategory(mContext);
+ when(mPreferenceScreen.findPreference(
+ WifiCallingPreferenceController.KEY_PREFERENCE_CATEGORY)).thenReturn(
+ mPreferenceCategory);
+
+ }
+
+ @Test
+ public void updateState_noSimCallManager_setCorrectSummary() {
+ mController.mSimCallManager = null;
+ when(mImsManager.isWfcEnabledByUser()).thenReturn(true);
+ when(mImsManager.getWfcMode(anyBoolean())).thenReturn(
+ ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getSummary()).isEqualTo(
+ mContext.getString(com.android.internal.R.string.wfc_mode_wifi_only_summary));
+ }
+
+ @Test
+ public void updateState_notCallIdle_disable() {
+ when(mTelephonyManager.getCallState(SUB_ID)).thenReturn(
+ TelephonyManager.CALL_STATE_RINGING);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void displayPreference_notAvailable_setCategoryInvisible() {
+ mController.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+
+ mController.displayPreference(mPreferenceScreen);
+
+ assertThat(mPreferenceCategory.isVisible()).isFalse();
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaListPreferenceTest.java b/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaListPreferenceTest.java
new file mode 100644
index 0000000..8945649
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaListPreferenceTest.java
@@ -0,0 +1,71 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony.cdma;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.PreferenceManager;
+
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class CdmaListPreferenceTest {
+ private static final int SUB_ID = 2;
+
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private PreferenceManager mPreferenceManager;
+
+ private CdmaListPreference mPreference;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
+ doReturn(mTelephonyManager).when(mContext).getSystemService(TelephonyManager.class);
+ doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
+
+ mPreference = spy(new CdmaListPreference(mContext, null));
+ mPreference.setSubId(SUB_ID);
+ }
+
+ @Test
+ public void onClick_inEcm_doNothing() {
+ doReturn(true).when(mTelephonyManager).getEmergencyCallbackMode();
+
+ mPreference.onClick();
+
+ verify(mPreferenceManager, never()).showDialog(mPreference);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceControllerTest.java
new file mode 100644
index 0000000..4044b6c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceControllerTest.java
@@ -0,0 +1,131 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony.cdma;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.os.SystemProperties;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.ListPreference;
+import androidx.preference.PreferenceManager;
+
+import com.android.internal.telephony.Phone;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class CdmaSubscriptionPreferenceControllerTest {
+ private static final int SUB_ID = 2;
+
+ @Mock
+ private PreferenceManager mPreferenceManager;
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private TelephonyManager mInvalidTelephonyManager;
+ @Mock
+ private SubscriptionManager mSubscriptionManager;
+ @Mock
+ private CarrierConfigManager mCarrierConfigManager;
+
+ private CdmaSubscriptionPreferenceController mController;
+ private ListPreference mPreference;
+ private PersistableBundle mCarrierConfig;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
+ doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
+ doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
+ doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
+
+ mCarrierConfig = new PersistableBundle();
+ when(mCarrierConfigManager.getConfigForSubId(SUB_ID)).thenReturn(mCarrierConfig);
+
+ mPreference = new ListPreference(mContext);
+ mController = new CdmaSubscriptionPreferenceController(mContext, "mobile_data");
+ mController.init(mPreferenceManager, SUB_ID);
+ mController.mPreference = mPreference;
+ mPreference.setKey(mController.getPreferenceKey());
+ }
+
+ @Test
+ public void onPreferenceChange_selectNV_returnNVMode() {
+ doReturn(true).when(mTelephonyManager).setCdmaSubscriptionMode(anyInt());
+
+ mController.onPreferenceChange(mPreference, Integer.toString(Phone.CDMA_SUBSCRIPTION_NV));
+
+ assertThat(Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.CDMA_SUBSCRIPTION_MODE,
+ Phone.CDMA_SUBSCRIPTION_RUIM_SIM)).isEqualTo(Phone.CDMA_SUBSCRIPTION_NV);
+ }
+
+ @Test
+ public void updateState_stateRUIM_displayRUIM() {
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.CDMA_SUBSCRIPTION_MODE, Phone.CDMA_SUBSCRIPTION_NV);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getValue()).isEqualTo(Integer.toString(Phone.CDMA_SUBSCRIPTION_NV));
+ }
+
+ @Test
+ public void updateState_stateUnknown_doNothing() {
+ mPreference.setValue(Integer.toString(Phone.CDMA_SUBSCRIPTION_NV));
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.CDMA_SUBSCRIPTION_MODE, Phone.CDMA_SUBSCRIPTION_UNKNOWN);
+
+ mController.updateState(mPreference);
+
+ // Still NV mode
+ assertThat(mPreference.getValue()).isEqualTo(Integer.toString(Phone.CDMA_SUBSCRIPTION_NV));
+ }
+
+ @Test
+ public void deviceSupportsNvAndRuim() {
+ SystemProperties.set("ril.subscription.types", "NV,RUIM");
+ assertThat(mController.deviceSupportsNvAndRuim()).isTrue();
+
+ SystemProperties.set("ril.subscription.types", "");
+
+ assertThat(mController.deviceSupportsNvAndRuim()).isFalse();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceControllerTest.java
new file mode 100644
index 0000000..f00afc9
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceControllerTest.java
@@ -0,0 +1,148 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony.cdma;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.ListPreference;
+import androidx.preference.PreferenceManager;
+
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class CdmaSystemSelectPreferenceControllerTest {
+ private static final int SUB_ID = 2;
+
+ @Mock
+ private PreferenceManager mPreferenceManager;
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private TelephonyManager mInvalidTelephonyManager;
+ @Mock
+ private SubscriptionManager mSubscriptionManager;
+ @Mock
+ private CarrierConfigManager mCarrierConfigManager;
+
+ private CdmaSystemSelectPreferenceController mController;
+ private ListPreference mPreference;
+ private PersistableBundle mCarrierConfig;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
+ doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
+ doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
+ doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+
+ doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
+
+ mCarrierConfig = new PersistableBundle();
+ when(mCarrierConfigManager.getConfigForSubId(SUB_ID)).thenReturn(mCarrierConfig);
+
+
+ mPreference = new ListPreference(mContext);
+ mController = new CdmaSystemSelectPreferenceController(mContext, "mobile_data");
+ mController.init(mPreferenceManager, SUB_ID);
+ mController.mPreference = mPreference;
+ mPreference.setKey(mController.getPreferenceKey());
+ }
+
+ @Test
+ public void onPreferenceChange_selectHome_returnHomeMode() {
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.CDMA_ROAMING_MODE,
+ TelephonyManager.CDMA_ROAMING_MODE_ANY);
+ doReturn(true).when(mTelephonyManager).setCdmaRoamingMode(anyInt());
+
+ mController.onPreferenceChange(mPreference,
+ Integer.toString(TelephonyManager.CDMA_ROAMING_MODE_HOME));
+
+ assertThat(Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.CDMA_ROAMING_MODE,
+ TelephonyManager.CDMA_ROAMING_MODE_ANY)).isEqualTo(
+ TelephonyManager.CDMA_ROAMING_MODE_HOME);
+ }
+
+ @Test
+ public void updateState_stateHome_displayHome() {
+ doReturn(TelephonyManager.CDMA_ROAMING_MODE_HOME).when(
+ mTelephonyManager).getCdmaRoamingMode();
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getValue()).isEqualTo(
+ Integer.toString(TelephonyManager.CDMA_ROAMING_MODE_HOME));
+ }
+
+ @Test
+ public void updateState_LteGSMWcdma_disabled() {
+ doReturn(TelephonyManager.CDMA_ROAMING_MODE_HOME).when(
+ mTelephonyManager).getCdmaRoamingMode();
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
+ TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+
+
+ @Test
+ public void updateState_stateOther_resetToDefault() {
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.CDMA_ROAMING_MODE,
+ TelephonyManager.CDMA_ROAMING_MODE_HOME);
+ doReturn(TelephonyManager.CDMA_ROAMING_MODE_AFFILIATED).when(
+ mTelephonyManager).getCdmaRoamingMode();
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getValue()).isEqualTo(
+ Integer.toString(TelephonyManager.CDMA_ROAMING_MODE_ANY));
+ assertThat(Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.CDMA_ROAMING_MODE,
+ TelephonyManager.CDMA_ROAMING_MODE_HOME)).isEqualTo(
+ TelephonyManager.CDMA_ROAMING_MODE_ANY);
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceControllerTest.java
new file mode 100644
index 0000000..5f65241
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceControllerTest.java
@@ -0,0 +1,114 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony.gsm;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class AutoSelectPreferenceControllerTest {
+ private static final int SUB_ID = 2;
+ private static final String OPERATOR_NAME = "T-mobile";
+
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private SubscriptionManager mSubscriptionManager;
+ @Mock
+ private CarrierConfigManager mCarrierConfigManager;
+
+ private PersistableBundle mCarrierConfig;
+ private AutoSelectPreferenceController mController;
+ private Preference mPreference;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+ when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
+ when(mContext.getSystemService(CarrierConfigManager.class)).thenReturn(
+ mCarrierConfigManager);
+ when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
+
+ mCarrierConfig = new PersistableBundle();
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL,
+ true);
+ when(mCarrierConfigManager.getConfigForSubId(SUB_ID)).thenReturn(mCarrierConfig);
+
+ mPreference = new Preference(mContext);
+ mController = new AutoSelectPreferenceController(mContext, "auto_select");
+ mController.init(SUB_ID);
+ }
+
+ @Test
+ public void setChecked_isChecked_updateValue() {
+ when(mTelephonyManager.getNetworkSelectionMode()).thenReturn(
+ TelephonyManager.NETWORK_SELECTION_MODE_AUTO);
+
+ assertThat(mController.setChecked(true)).isTrue();
+
+ verify(mTelephonyManager).setNetworkSelectionModeAutomatic();
+ }
+
+ @Test
+ public void updateState_isRoaming_enabled() {
+ when(mTelephonyManager.getServiceState().getRoaming()).thenReturn(true);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isTrue();
+ }
+
+ @Test
+ public void updateState_notRoamingWithAutoSelectOn_disabled() {
+ when(mTelephonyManager.getServiceState().getRoaming()).thenReturn(false);
+ doReturn(OPERATOR_NAME).when(mTelephonyManager).getSimOperatorName();
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ assertThat(mPreference.getSummary()).isEqualTo(
+ mContext.getString(R.string.manual_mode_disallowed_summary,
+ mTelephonyManager.getSimOperatorName()));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.java
new file mode 100644
index 0000000..d5fc6e0
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.java
@@ -0,0 +1,110 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.network.telephony.gsm;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+import android.telephony.ServiceState;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class OpenNetworkSelectPagePreferenceControllerTest {
+ private static final int SUB_ID = 2;
+ private static final String OPERATOR_NAME = "T-mobile";
+
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private SubscriptionManager mSubscriptionManager;
+ @Mock
+ private CarrierConfigManager mCarrierConfigManager;
+ @Mock
+ private ServiceState mServiceState;
+
+ private PersistableBundle mCarrierConfig;
+ private OpenNetworkSelectPagePreferenceController mController;
+ private Preference mPreference;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+ when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
+ when(mContext.getSystemService(CarrierConfigManager.class)).thenReturn(
+ mCarrierConfigManager);
+ when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
+ when(mTelephonyManager.getServiceState()).thenReturn(mServiceState);
+
+ mCarrierConfig = new PersistableBundle();
+ when(mCarrierConfigManager.getConfigForSubId(SUB_ID)).thenReturn(mCarrierConfig);
+
+ mPreference = new Preference(mContext);
+ mController = new OpenNetworkSelectPagePreferenceController(mContext,
+ "open_network_select");
+ mController.init(SUB_ID);
+ }
+
+ @Test
+ public void updateState_modeAuto_disabled() {
+ when(mTelephonyManager.getNetworkSelectionMode()).thenReturn(
+ TelephonyManager.NETWORK_SELECTION_MODE_AUTO);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void getSummary_inService_returnOperatorName() {
+ when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
+ doReturn(OPERATOR_NAME).when(mTelephonyManager).getNetworkOperatorName();
+
+ assertThat(mController.getSummary()).isEqualTo(OPERATOR_NAME);
+ }
+
+ @Test
+ public void getSummary_notInService_returnDisconnect() {
+ when(mServiceState.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
+ doReturn(OPERATOR_NAME).when(mTelephonyManager).getNetworkOperatorName();
+
+ assertThat(mController.getSummary()).isEqualTo(
+ mContext.getString(R.string.network_disconnected));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java b/tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java
index 5caf009..5dfc4f7 100644
--- a/tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java
+++ b/tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java
@@ -34,7 +34,6 @@
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -48,10 +47,10 @@
@Before
public void setUp() {
- mContext = ShadowApplication.getInstance().getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mNfcAdapter = NfcAdapter.getDefaultAdapter(mContext);
- mNfcPreference = new SwitchPreference(RuntimeEnvironment.application);
+ mNfcPreference = new SwitchPreference(mContext);
mNfcAirplaneModeObserver =
new NfcAirplaneModeObserver(mContext, mNfcAdapter, mNfcPreference);
@@ -76,7 +75,7 @@
final ContentResolver contentResolver = mContext.getContentResolver();
Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 1);
Settings.Global.putString(contentResolver,
- Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Settings.Global.RADIO_NFC);
+ Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Settings.Global.RADIO_NFC);
mNfcAirplaneModeObserver.onChange(false, NfcAirplaneModeObserver.AIRPLANE_MODE_URI);
@@ -89,7 +88,7 @@
final ContentResolver contentResolver = mContext.getContentResolver();
Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 1);
Settings.Global.putString(contentResolver,
- Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Global.RADIO_WIFI);
+ Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Global.RADIO_WIFI);
mNfcAirplaneModeObserver.onChange(false, NfcAirplaneModeObserver.AIRPLANE_MODE_URI);
diff --git a/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java
index af53f23..06ef601 100644
--- a/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java
@@ -54,6 +54,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -81,7 +82,7 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mController = spy(new BlockPreferenceController(mContext, mImportanceListener, mBackend));
mSwitch = new SwitchBar(mContext);
when(mPreference.findViewById(R.id.switch_bar)).thenReturn(mSwitch);
diff --git a/tests/robotests/src/com/android/settings/notification/BootSoundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BootSoundPreferenceControllerTest.java
index 0aa94c7..220269e 100644
--- a/tests/robotests/src/com/android/settings/notification/BootSoundPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BootSoundPreferenceControllerTest.java
@@ -27,6 +27,7 @@
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
+import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -35,7 +36,6 @@
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.shadows.ShadowSystemProperties;
@RunWith(SettingsRobolectricTestRunner.class)
public class BootSoundPreferenceControllerTest {
@@ -52,8 +52,8 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- when(mContext.getResources().getBoolean(com.android.settings.R.bool.has_boot_sounds))
- .thenReturn(true);
+ when(mContext.getResources().getBoolean(R.bool.has_boot_sounds))
+ .thenReturn(true);
mController = new BootSoundPreferenceController(mContext);
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
when(mPreference.getKey()).thenReturn(mController.getPreferenceKey());
@@ -62,7 +62,7 @@
@Test
public void isAvailable_hasBootSounds_shouldReturnTrue() {
when(mContext.getResources().getBoolean(
- com.android.settings.R.bool.has_boot_sounds)).thenReturn(true);
+ R.bool.has_boot_sounds)).thenReturn(true);
assertThat(mController.isAvailable()).isTrue();
}
@@ -70,15 +70,14 @@
@Test
public void isAvailable_noBootSounds_shouldReturnFale() {
when(mContext.getResources().getBoolean(
- com.android.settings.R.bool.has_boot_sounds)).thenReturn(false);
+ R.bool.has_boot_sounds)).thenReturn(false);
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void displayPreference_bootSoundEnabled_shouldCheckedPreference() {
- ShadowSystemProperties.native_set(BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, "1");
-
+ SystemProperties.set(BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, "true");
mController.displayPreference(mScreen);
verify(mPreference).setChecked(true);
@@ -86,7 +85,7 @@
@Test
public void displayPreference_bootSoundDisabled_shouldUncheckedPreference() {
- ShadowSystemProperties.native_set(BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, "0");
+ SystemProperties.set(BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, "0");
mController.displayPreference(mScreen);
@@ -100,7 +99,7 @@
mController.handlePreferenceTreeClick(mPreference);
assertThat(SystemProperties.get(
- BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, null)).isEqualTo("1");
+ BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, null)).isEqualTo("1");
}
@Test
@@ -110,6 +109,6 @@
mController.handlePreferenceTreeClick(mPreference);
assertThat(SystemProperties.get(
- BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, null)).isEqualTo("0");
+ BootSoundPreferenceController.PROPERTY_BOOT_SOUNDS, null)).isEqualTo("0");
}
}
diff --git a/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java
index 35c7a11..6d3f1b4 100644
--- a/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/DeletedChannelsPreferenceControllerTest.java
@@ -42,6 +42,7 @@
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -63,7 +64,7 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mController = new DeletedChannelsPreferenceController(mContext, mBackend);
}
diff --git a/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java
index 0d82fcb..649918a 100644
--- a/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/DescriptionPreferenceControllerTest.java
@@ -62,7 +62,7 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mController = spy(new DescriptionPreferenceController(mContext));
}
diff --git a/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java
index 871aafb..57c8712 100644
--- a/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/HeaderPreferenceControllerTest.java
@@ -45,6 +45,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -68,7 +69,7 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
PreferenceFragmentCompat fragment = mock(PreferenceFragmentCompat.class);
when(fragment.getContext()).thenReturn(mContext);
FragmentActivity activity = mock(FragmentActivity.class);
diff --git a/tests/robotests/src/com/android/settings/notification/LightsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/LightsPreferenceControllerTest.java
index c276825..6ceaffa 100644
--- a/tests/robotests/src/com/android/settings/notification/LightsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/LightsPreferenceControllerTest.java
@@ -85,7 +85,7 @@
// By default allow lights
SettingsShadowResources.overrideResource(
com.android.internal.R.bool.config_intrusiveNotificationLed, true);
- Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1);
+ Settings.System.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1);
}
@Test
@@ -107,7 +107,7 @@
@Test
public void testIsAvailable_notIfSettingNotAllowed() {
- Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0);
+ Settings.System.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0);
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_DEFAULT);
mController.onResume(appRow, channel, null, null);
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java
index 3c83c4e..5d6e1fe 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java
@@ -51,6 +51,7 @@
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -73,7 +74,7 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mController = new TestPreferenceController(mContext, mBackend);
}
diff --git a/tests/robotests/src/com/android/settings/notification/PulseNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/PulseNotificationPreferenceControllerTest.java
index df1ee6f..235d7b2 100644
--- a/tests/robotests/src/com/android/settings/notification/PulseNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/PulseNotificationPreferenceControllerTest.java
@@ -138,14 +138,14 @@
@Test
public void isChecked_configOn_shouldReturnTrue() {
- Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1);
+ Settings.System.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1);
assertThat(mController.isChecked()).isTrue();
}
@Test
public void isChecked_configOff_shouldReturnFalse() {
- Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0);
+ Settings.System.putInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0);
assertThat(mController.isChecked()).isFalse();
}
@@ -156,7 +156,7 @@
assertThat(mController.isChecked()).isTrue();
assertThat(
- Settings.Secure.getInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0))
+ Settings.System.getInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 0))
.isEqualTo(1);
}
@@ -166,7 +166,7 @@
assertThat(mController.isChecked()).isFalse();
assertThat(
- Settings.Secure.getInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1))
+ Settings.System.getInt(mContext.getContentResolver(), NOTIFICATION_LIGHT_PULSE, 1))
.isEqualTo(0);
}
}
diff --git a/tests/robotests/src/com/android/settings/notification/SoundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/SoundPreferenceControllerTest.java
index 3fc563a..cfffbdc 100644
--- a/tests/robotests/src/com/android/settings/notification/SoundPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/SoundPreferenceControllerTest.java
@@ -59,6 +59,7 @@
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
@@ -90,7 +91,7 @@
shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
SettingsShadowResources.overrideResource(com.android.internal.R.string.ringtone_silent,
"silent");
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mController = spy(new SoundPreferenceController(
mContext, mFragment, mImportanceListener, mBackend));
}
diff --git a/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java
index d0e7b5a..8aad02e 100644
--- a/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java
@@ -59,6 +59,7 @@
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
@@ -91,7 +92,7 @@
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
shadowApplication.setSystemService(Context.DEVICE_POLICY_SERVICE, mDm);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mController = spy(new VisibilityPreferenceController(mContext, mLockUtils, mBackend));
// by default the lockscreen is secure
@@ -202,7 +203,7 @@
mController.updateState(pref);
ArgumentCaptor<CharSequence[]> argumentCaptor =
- ArgumentCaptor.forClass(CharSequence[].class);
+ ArgumentCaptor.forClass(CharSequence[].class);
verify(pref, times(1)).setEntryValues(argumentCaptor.capture());
assertFalse(toStringList(argumentCaptor.getValue())
.contains(String.valueOf(VISIBILITY_NO_OVERRIDE)));
@@ -250,7 +251,7 @@
mController.updateState(pref);
ArgumentCaptor<CharSequence[]> argumentCaptor =
- ArgumentCaptor.forClass(CharSequence[].class);
+ ArgumentCaptor.forClass(CharSequence[].class);
verify(pref, times(1)).setEntryValues(argumentCaptor.capture());
assertEquals(2, toStringList(argumentCaptor.getValue()).size());
assertFalse(toStringList(argumentCaptor.getValue())
@@ -267,7 +268,7 @@
mController.updateState(pref);
ArgumentCaptor<CharSequence[]> argumentCaptor =
- ArgumentCaptor.forClass(CharSequence[].class);
+ ArgumentCaptor.forClass(CharSequence[].class);
verify(pref, times(1)).setEntryValues(argumentCaptor.capture());
List<String> values = toStringList(argumentCaptor.getValue());
assertEquals(3, values.size());
diff --git a/tests/robotests/src/com/android/settings/notification/ZenFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenFooterPreferenceControllerTest.java
index 81ed5ef..eb89f82 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenFooterPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenFooterPreferenceControllerTest.java
@@ -47,6 +47,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
@@ -61,7 +62,8 @@
private Context mContext;
@Mock
private PreferenceScreen mScreen;
- @Mock NotificationManager mNotificationManager;
+ @Mock
+ NotificationManager mNotificationManager;
private static final String PREF_KEY = "main_pref";
@@ -69,7 +71,7 @@
public void setup() {
MockitoAnnotations.initMocks(this);
ShadowApplication shadowApplication = ShadowApplication.getInstance();
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
when(mNotificationManager.getNotificationPolicy()).thenReturn(
mock(NotificationManager.Policy.class));
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeAlarmsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeAlarmsPreferenceControllerTest.java
index 7caccf2..df4df51 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeAlarmsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeAlarmsPreferenceControllerTest.java
@@ -30,9 +30,6 @@
import android.content.Context;
import android.provider.Settings;
-import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
-
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -45,6 +42,9 @@
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+
@RunWith(SettingsRobolectricTestRunner.class)
public class ZenModeAlarmsPreferenceControllerTest {
@@ -72,14 +72,15 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mContentResolver = RuntimeEnvironment.application.getContentResolver();
when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
- mController = new ZenModeAlarmsPreferenceController(mContext, mock(Lifecycle.class));
+ mController = new ZenModeAlarmsPreferenceController(mContext, mock(Lifecycle.class),
+ "zen_mode_behavior_alarms");
ReflectionHelpers.setField(mController, "mBackend", mBackend);
when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
- .thenReturn(mockPref);
+ .thenReturn(mockPref);
mController.displayPreference(mPreferenceScreen);
}
@@ -124,7 +125,7 @@
mController.onPreferenceChange(mockPref, allowAlarms);
verify(mBackend)
- .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS, allowAlarms);
+ .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS, allowAlarms);
}
@Test
@@ -133,6 +134,6 @@
mController.onPreferenceChange(mockPref, allowAlarms);
verify(mBackend)
- .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS, allowAlarms);
+ .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS, allowAlarms);
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorCallsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorCallsPreferenceControllerTest.java
deleted file mode 100644
index f1f1b2e..0000000
--- a/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorCallsPreferenceControllerTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.notification;
-
-import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.NotificationManager;
-import android.content.Context;
-
-import androidx.preference.Preference;
-
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.util.ReflectionHelpers;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public final class ZenModeBehaviorCallsPreferenceControllerTest {
-
- private ZenModeBehaviorCallsPreferenceController mController;
- @Mock
- private NotificationManager mNotificationManager;
- @Mock
- private NotificationManager.Policy mPolicy;
-
- private Context mContext;
- @Mock
- private ZenModeBackend mBackend;
-
- @Before
- public void setup() {
- MockitoAnnotations.initMocks(this);
- ShadowApplication shadowApplication = ShadowApplication.getInstance();
- shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
-
- mContext = RuntimeEnvironment.application;
- when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
-
- mController = new ZenModeBehaviorCallsPreferenceController(
- mContext, mock(Lifecycle.class));
- ReflectionHelpers.setField(mController, "mBackend", mBackend);
- }
-
- @Test
- public void testIsAvailable() {
- assertTrue(mController.isAvailable());
- }
-
- @Test
- public void testHasSummary() {
- Preference pref = mock(Preference.class);
- mController.updateState(pref);
- verify(pref).setSummary(any());
- }
-}
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorFooterPreferenceControllerTest.java
index 4170ee8..c4b2b3d 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorFooterPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorFooterPreferenceControllerTest.java
@@ -86,7 +86,7 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mContentResolver = RuntimeEnvironment.application.getContentResolver();
when(mNotificationManager.getZenModeConfig()).thenReturn(mZenModeConfig);
@@ -95,7 +95,7 @@
ReflectionHelpers.setField(mController, "mZenModeConfigWrapper", mConfigWrapper);
when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
- .thenReturn(mockPref);
+ .thenReturn(mockPref);
mController.displayPreference(mPreferenceScreen);
}
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorMsgEventReminderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorMsgEventReminderPreferenceControllerTest.java
deleted file mode 100644
index 11cdfcc..0000000
--- a/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorMsgEventReminderPreferenceControllerTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.notification;
-
-import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.NotificationManager;
-import android.content.Context;
-
-import androidx.preference.Preference;
-
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.util.ReflectionHelpers;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public final class ZenModeBehaviorMsgEventReminderPreferenceControllerTest {
-
- private ZenModeBehaviorMsgEventReminderPreferenceController mController;
- @Mock
- private NotificationManager mNotificationManager;
- @Mock
- private NotificationManager.Policy mPolicy;
-
- private Context mContext;
- @Mock
- private ZenModeBackend mBackend;
-
- @Before
- public void setup() {
- MockitoAnnotations.initMocks(this);
- ShadowApplication shadowApplication = ShadowApplication.getInstance();
- shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
-
- mContext = RuntimeEnvironment.application;
- when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
-
- mController = new ZenModeBehaviorMsgEventReminderPreferenceController(
- mContext, mock(Lifecycle.class));
- ReflectionHelpers.setField(mController, "mBackend", mBackend);
- }
-
- @Test
- public void testIsAvailable() {
- assertTrue(mController.isAvailable());
- }
-
- @Test
- public void testHasSummary() {
- Preference pref = mock(Preference.class);
- mController.updateState(pref);
- verify(pref).setSummary(any());
- }
-}
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorSoundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorSoundPreferenceControllerTest.java
deleted file mode 100644
index c854e8a..0000000
--- a/tests/robotests/src/com/android/settings/notification/ZenModeBehaviorSoundPreferenceControllerTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.notification;
-
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.NotificationManager;
-import android.content.Context;
-
-import androidx.preference.Preference;
-
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.util.ReflectionHelpers;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public final class ZenModeBehaviorSoundPreferenceControllerTest {
-
- private ZenModeBehaviorSoundPreferenceController mController;
- @Mock
- private NotificationManager mNotificationManager;
- @Mock
- private NotificationManager.Policy mPolicy;
-
- private Context mContext;
- @Mock
- private ZenModeBackend mBackend;
-
- @Before
- public void setup() {
- MockitoAnnotations.initMocks(this);
- ShadowApplication shadowApplication = ShadowApplication.getInstance();
- shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
-
- mContext = RuntimeEnvironment.application;
- when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
-
- mController = new ZenModeBehaviorSoundPreferenceController(
- mContext, mock(Lifecycle.class));
- ReflectionHelpers.setField(mController, "mBackend", mBackend);
- }
-
- @Test
- public void testIsAvailable() {
- assertTrue(mController.isAvailable());
- }
-
- @Test
- public void testHasSummary() {
- Preference pref = mock(Preference.class);
- mController.updateState(pref);
- verify(pref).setSummary(any());
- }
-}
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeButtonPreferenceControllerTest.java
index 6701174..a3c3261 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeButtonPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeButtonPreferenceControllerTest.java
@@ -77,7 +77,7 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mContentResolver = RuntimeEnvironment.application.getContentResolver();
mController = new ZenModeButtonPreferenceController(mContext, mock(Lifecycle.class),
mock(FragmentManager.class));
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeCallsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeCallsPreferenceControllerTest.java
index 3093b6a..fdc43f3 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeCallsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeCallsPreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 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.
@@ -16,24 +16,15 @@
package com.android.settings.notification;
-import static android.provider.Settings.Global.ZEN_MODE;
-import static android.provider.Settings.Global.ZEN_MODE_ALARMS;
-import static android.provider.Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
-import static android.provider.Settings.Global.ZEN_MODE_NO_INTERRUPTIONS;
-
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.NotificationManager;
-import android.content.ContentResolver;
import android.content.Context;
-import android.provider.Settings;
-import androidx.preference.ListPreference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -46,32 +37,20 @@
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
+import androidx.preference.Preference;
+
@RunWith(SettingsRobolectricTestRunner.class)
-public class ZenModeCallsPreferenceControllerTest {
+public final class ZenModeCallsPreferenceControllerTest {
private ZenModeCallsPreferenceController mController;
-
- @Mock
- private ZenModeBackend mBackend;
@Mock
private NotificationManager mNotificationManager;
@Mock
- private ListPreference mockPref;
- @Mock
private NotificationManager.Policy mPolicy;
- @Mock
- private PreferenceScreen mPreferenceScreen;
- private ContentResolver mContentResolver;
- private Context mContext;
- /**
- * Array Values Key
- * 0: anyone
- * 1: contacts
- * 2: starred
- * 3: none
- */
- private String[] mValues;
+ private Context mContext;
+ @Mock
+ private ZenModeBackend mBackend;
@Before
public void setup() {
@@ -79,101 +58,23 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = shadowApplication.getApplicationContext();
- mValues = mContext.getResources().getStringArray(R.array.zen_mode_contacts_values);
- mContentResolver = RuntimeEnvironment.application.getContentResolver();
+ mContext = RuntimeEnvironment.application;
when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
- when(mBackend.getPriorityCallSenders())
- .thenReturn(NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
- when(mBackend.getContactsSummary(ZenModeBackend.SOURCE_NONE))
- .thenCallRealMethod();
- when(mBackend.getContactsSummary(NotificationManager.Policy.PRIORITY_CATEGORY_CALLS))
- .thenCallRealMethod();
-
- mController = new ZenModeCallsPreferenceController(mContext, mock(Lifecycle.class));
+ mController = new ZenModeCallsPreferenceController(
+ mContext, mock(Lifecycle.class), "zen_mode_calls_settings");
ReflectionHelpers.setField(mController, "mBackend", mBackend);
-
- when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(
- mockPref);
- mController.displayPreference(mPreferenceScreen);
}
@Test
- public void updateState_TotalSilence() {
- Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_NO_INTERRUPTIONS);
-
- when(mBackend.isPriorityCategoryEnabled(
- NotificationManager.Policy.PRIORITY_CATEGORY_CALLS))
- .thenReturn(false);
- final ListPreference mockPref = mock(ListPreference.class);
- mController.updateState(mockPref);
-
- verify(mockPref).setEnabled(false);
- verify(mockPref).setSummary(R.string.zen_mode_from_none);
+ public void testIsAvailable() {
+ assertTrue(mController.isAvailable());
}
@Test
- public void updateState_AlarmsOnly() {
- Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_ALARMS);
-
- final ListPreference mockPref = mock(ListPreference.class);
- mController.updateState(mockPref);
-
- verify(mockPref).setEnabled(false);
- verify(mockPref).setSummary(R.string.zen_mode_from_none);
+ public void testHasSummary() {
+ Preference pref = mock(Preference.class);
+ mController.updateState(pref);
+ verify(pref).setSummary(any());
}
-
- @Test
- public void updateState_Priority() {
- Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
-
- when(mBackend.isPriorityCategoryEnabled(
- NotificationManager.Policy.PRIORITY_CATEGORY_CALLS))
- .thenReturn(true);
-
- mController.updateState(mockPref);
-
- verify(mockPref).setEnabled(true);
- verify(mockPref).setSummary(R.string.zen_mode_from_starred);
- }
-
- @Test
- public void onPreferenceChange_setSelectedContacts_any() {
- Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
- when(mBackend.getPriorityCallSenders()).thenReturn(
- NotificationManager.Policy.PRIORITY_SENDERS_ANY);
- mController.updateState(mockPref);
- verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
- ZenModeBackend.ZEN_MODE_FROM_ANYONE)]);
- }
-
- @Test
- public void onPreferenceChange_setSelectedContacts_none() {
- Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
- when(mBackend.getPriorityCallSenders()).thenReturn(ZenModeBackend.SOURCE_NONE);
- mController.updateState(mockPref);
- verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
- ZenModeBackend.ZEN_MODE_FROM_NONE)]);
- }
-
- @Test
- public void onPreferenceChange_setSelectedContacts_starred() {
- Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
- when(mBackend.getPriorityCallSenders()).thenReturn(
- NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
- mController.updateState(mockPref);
- verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
- ZenModeBackend.ZEN_MODE_FROM_STARRED)]);
- }
-
- @Test
- public void onPreferenceChange_setSelectedContacts_contacts() {
- Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
- when(mBackend.getPriorityCallSenders()).thenReturn(
- NotificationManager.Policy.PRIORITY_SENDERS_CONTACTS);
- mController.updateState(mockPref);
- verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
- ZenModeBackend.ZEN_MODE_FROM_CONTACTS)]);
- }
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeDurationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeDurationPreferenceControllerTest.java
index b9d2978..2d5e54a 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeDurationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeDurationPreferenceControllerTest.java
@@ -57,7 +57,7 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mContentResolver = RuntimeEnvironment.application.getContentResolver();
mController = new ZenModeDurationPreferenceController(mContext, mock(Lifecycle.class));
when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java
index 5d8be5a..9a922ba 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java
@@ -29,6 +29,8 @@
import android.content.Intent;
import android.content.res.Resources;
+import androidx.fragment.app.FragmentActivity;
+
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources;
@@ -38,6 +40,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.shadows.ShadowToast;
@@ -45,8 +48,6 @@
import java.util.ArrayList;
import java.util.List;
-import androidx.fragment.app.FragmentActivity;
-
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = SettingsShadowResources.SettingsShadowTheme.class)
public class ZenModeEventRuleSettingsTest {
@@ -69,7 +70,7 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mFragment = spy(new TestFragment());
mFragment.onAttach(application);
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeMediaPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeMediaPreferenceControllerTest.java
index f5eca34..9217f64 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeMediaPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeMediaPreferenceControllerTest.java
@@ -70,7 +70,7 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mContentResolver = RuntimeEnvironment.application.getContentResolver();
when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
@@ -79,7 +79,7 @@
ReflectionHelpers.setField(mController, "mBackend", mBackend);
when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
- .thenReturn(mockPref);
+ .thenReturn(mockPref);
mController.displayPreference(mPreferenceScreen);
}
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeMessagesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeMessagesPreferenceControllerTest.java
index 37ffd78..890f6c2 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeMessagesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeMessagesPreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 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.
@@ -16,24 +16,13 @@
package com.android.settings.notification;
-import static android.provider.Settings.Global.ZEN_MODE;
-import static android.provider.Settings.Global.ZEN_MODE_ALARMS;
-import static android.provider.Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
-import static android.provider.Settings.Global.ZEN_MODE_NO_INTERRUPTIONS;
-
+import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.NotificationManager;
-import android.content.ContentResolver;
import android.content.Context;
-import android.provider.Settings;
-import androidx.preference.ListPreference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -47,31 +36,17 @@
import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class)
-public class ZenModeMessagesPreferenceControllerTest {
+public final class ZenModeMessagesPreferenceControllerTest {
private ZenModeMessagesPreferenceController mController;
-
- @Mock
- private ZenModeBackend mBackend;
@Mock
private NotificationManager mNotificationManager;
@Mock
- private ListPreference mockPref;
- @Mock
private NotificationManager.Policy mPolicy;
- @Mock
- private PreferenceScreen mPreferenceScreen;
- private ContentResolver mContentResolver;
- private Context mContext;
- /**
- * Array Values Key
- * 0: anyone
- * 1: contacts
- * 2: starred
- * 3: none
- */
- private String[] mValues;
+ private Context mContext;
+ @Mock
+ private ZenModeBackend mBackend;
@Before
public void setup() {
@@ -79,101 +54,24 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = shadowApplication.getApplicationContext();
- mValues = mContext.getResources().getStringArray(R.array.zen_mode_contacts_values);
- mContentResolver = RuntimeEnvironment.application.getContentResolver();
+ mContext = RuntimeEnvironment.application;
when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
- when(mBackend.getPriorityMessageSenders())
- .thenReturn(NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
- when(mBackend.getContactsSummary(ZenModeBackend.SOURCE_NONE))
- .thenCallRealMethod();
- when(mBackend.getContactsSummary(NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES))
- .thenCallRealMethod();
-
- mController = new ZenModeMessagesPreferenceController(mContext, mock(Lifecycle.class));
+ mController = new ZenModeMessagesPreferenceController(
+ mContext, mock(Lifecycle.class), "zen_mode_messages_settings");
ReflectionHelpers.setField(mController, "mBackend", mBackend);
-
- when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(
- mockPref);
- mController.displayPreference(mPreferenceScreen);
}
@Test
- public void updateState_TotalSilence() {
- Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_NO_INTERRUPTIONS);
-
- when(mBackend.isPriorityCategoryEnabled(
- NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES))
- .thenReturn(false);
- final ListPreference mockPref = mock(ListPreference.class);
- mController.updateState(mockPref);
-
- verify(mockPref).setEnabled(false);
- verify(mockPref).setSummary(R.string.zen_mode_from_none);
+ public void testIsAvailable() {
+ assertTrue(mController.isAvailable());
}
- @Test
- public void updateState_AlarmsOnly() {
- Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_ALARMS);
-
- final ListPreference mockPref = mock(ListPreference.class);
- mController.updateState(mockPref);
-
- verify(mockPref).setEnabled(false);
- verify(mockPref).setSummary(R.string.zen_mode_from_none);
- }
-
- @Test
- public void updateState_Priority() {
- Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
-
- when(mBackend.isPriorityCategoryEnabled(
- NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES))
- .thenReturn(true);
-
- mController.updateState(mockPref);
-
- verify(mockPref).setEnabled(true);
- verify(mockPref).setSummary(R.string.zen_mode_from_starred);
- }
-
- @Test
- public void onPreferenceChange_setSelectedContacts_any() {
- Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
- when(mBackend.getPriorityMessageSenders()).thenReturn(
- NotificationManager.Policy.PRIORITY_SENDERS_ANY);
- mController.updateState(mockPref);
- verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
- ZenModeBackend.ZEN_MODE_FROM_ANYONE)]);
- }
-
- @Test
- public void onPreferenceChange_setSelectedContacts_none() {
- Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
- when(mBackend.getPriorityMessageSenders()).thenReturn(ZenModeBackend.SOURCE_NONE);
- mController.updateState(mockPref);
- verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
- ZenModeBackend.ZEN_MODE_FROM_NONE)]);
- }
-
- @Test
- public void onPreferenceChange_setSelectedContacts_starred() {
- Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
- when(mBackend.getPriorityMessageSenders()).thenReturn(
- NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
- mController.updateState(mockPref);
- verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
- ZenModeBackend.ZEN_MODE_FROM_STARRED)]);
- }
-
- @Test
- public void onPreferenceChange_setSelectedContacts_contacts() {
- Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
- when(mBackend.getPriorityMessageSenders()).thenReturn(
- NotificationManager.Policy.PRIORITY_SENDERS_CONTACTS);
- mController.updateState(mockPref);
- verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
- ZenModeBackend.ZEN_MODE_FROM_CONTACTS)]);
- }
-}
\ No newline at end of file
+// TODO: (b/111475013 - beverlyt) set messages summary
+// @Test
+// public void testHasSummary() {
+// Preference pref = mock(Preference.class);
+// mController.updateState(pref);
+// verify(pref).setSummary(any());
+// }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java
index 80e1e1b..141813b 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModePreferenceControllerTest.java
@@ -41,6 +41,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
@@ -64,7 +65,7 @@
MockitoAnnotations.initMocks(this);
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mController = new ZenModePreferenceController(mContext, KEY_ZEN_MODE);
when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
mSummaryBuilder = spy(new ZenModeSettings.SummaryBuilder(mContext));
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModePriorityCallsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModePriorityCallsPreferenceControllerTest.java
new file mode 100644
index 0000000..36a1382
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/ZenModePriorityCallsPreferenceControllerTest.java
@@ -0,0 +1,179 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.notification;
+
+import static android.provider.Settings.Global.ZEN_MODE;
+import static android.provider.Settings.Global.ZEN_MODE_ALARMS;
+import static android.provider.Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
+import static android.provider.Settings.Global.ZEN_MODE_NO_INTERRUPTIONS;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.NotificationManager;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.provider.Settings;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadows.ShadowApplication;
+import org.robolectric.util.ReflectionHelpers;
+
+import androidx.preference.ListPreference;
+import androidx.preference.PreferenceScreen;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class ZenModePriorityCallsPreferenceControllerTest {
+
+ private ZenModePriorityCallsPreferenceController mController;
+
+ @Mock
+ private ZenModeBackend mBackend;
+ @Mock
+ private NotificationManager mNotificationManager;
+ @Mock
+ private ListPreference mockPref;
+ @Mock
+ private NotificationManager.Policy mPolicy;
+ @Mock
+ private PreferenceScreen mPreferenceScreen;
+ private ContentResolver mContentResolver;
+ private Context mContext;
+
+ /**
+ * Array Values Key
+ * 0: anyone
+ * 1: contacts
+ * 2: starred
+ * 3: none
+ */
+ private String[] mValues;
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+ ShadowApplication shadowApplication = ShadowApplication.getInstance();
+ shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
+
+ mContext = RuntimeEnvironment.application;
+ mValues = mContext.getResources().getStringArray(R.array.zen_mode_contacts_values);
+ mContentResolver = RuntimeEnvironment.application.getContentResolver();
+ when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
+
+ when(mBackend.getPriorityCallSenders())
+ .thenReturn(NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
+ when(mBackend.getContactsSummary(ZenModeBackend.SOURCE_NONE))
+ .thenCallRealMethod();
+ when(mBackend.getContactsSummary(NotificationManager.Policy.PRIORITY_CATEGORY_CALLS))
+ .thenCallRealMethod();
+
+ mController = new ZenModePriorityCallsPreferenceController(mContext, mock(Lifecycle.class));
+ ReflectionHelpers.setField(mController, "mBackend", mBackend);
+
+ when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(
+ mockPref);
+ mController.displayPreference(mPreferenceScreen);
+ }
+
+ @Test
+ public void updateState_TotalSilence() {
+ Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_NO_INTERRUPTIONS);
+
+ when(mBackend.isPriorityCategoryEnabled(
+ NotificationManager.Policy.PRIORITY_CATEGORY_CALLS))
+ .thenReturn(false);
+ final ListPreference mockPref = mock(ListPreference.class);
+ mController.updateState(mockPref);
+
+ verify(mockPref).setEnabled(false);
+ verify(mockPref).setSummary(R.string.zen_mode_from_none);
+ }
+
+ @Test
+ public void updateState_AlarmsOnly() {
+ Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_ALARMS);
+
+ final ListPreference mockPref = mock(ListPreference.class);
+ mController.updateState(mockPref);
+
+ verify(mockPref).setEnabled(false);
+ verify(mockPref).setSummary(R.string.zen_mode_from_none);
+ }
+
+ @Test
+ public void updateState_Priority() {
+ Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
+
+ when(mBackend.isPriorityCategoryEnabled(
+ NotificationManager.Policy.PRIORITY_CATEGORY_CALLS))
+ .thenReturn(true);
+
+ mController.updateState(mockPref);
+
+ verify(mockPref).setEnabled(true);
+ verify(mockPref).setSummary(R.string.zen_mode_from_starred);
+ }
+
+ @Test
+ public void onPreferenceChange_setSelectedContacts_any() {
+ Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
+ when(mBackend.getPriorityCallSenders()).thenReturn(
+ NotificationManager.Policy.PRIORITY_SENDERS_ANY);
+ mController.updateState(mockPref);
+ verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
+ ZenModeBackend.ZEN_MODE_FROM_ANYONE)]);
+ }
+
+ @Test
+ public void onPreferenceChange_setSelectedContacts_none() {
+ Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
+ when(mBackend.getPriorityCallSenders()).thenReturn(ZenModeBackend.SOURCE_NONE);
+ mController.updateState(mockPref);
+ verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
+ ZenModeBackend.ZEN_MODE_FROM_NONE)]);
+ }
+
+ @Test
+ public void onPreferenceChange_setSelectedContacts_starred() {
+ Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
+ when(mBackend.getPriorityCallSenders()).thenReturn(
+ NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
+ mController.updateState(mockPref);
+ verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
+ ZenModeBackend.ZEN_MODE_FROM_STARRED)]);
+ }
+
+ @Test
+ public void onPreferenceChange_setSelectedContacts_contacts() {
+ Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
+ when(mBackend.getPriorityCallSenders()).thenReturn(
+ NotificationManager.Policy.PRIORITY_SENDERS_CONTACTS);
+ mController.updateState(mockPref);
+ verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
+ ZenModeBackend.ZEN_MODE_FROM_CONTACTS)]);
+ }
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModePriorityMessagesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModePriorityMessagesPreferenceControllerTest.java
new file mode 100644
index 0000000..75605a4
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/ZenModePriorityMessagesPreferenceControllerTest.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2017 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.notification;
+
+import static android.provider.Settings.Global.ZEN_MODE;
+import static android.provider.Settings.Global.ZEN_MODE_ALARMS;
+import static android.provider.Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
+import static android.provider.Settings.Global.ZEN_MODE_NO_INTERRUPTIONS;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.NotificationManager;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.provider.Settings;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadows.ShadowApplication;
+import org.robolectric.util.ReflectionHelpers;
+
+import androidx.preference.ListPreference;
+import androidx.preference.PreferenceScreen;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class ZenModePriorityMessagesPreferenceControllerTest {
+
+ private ZenModePriorityMessagesPreferenceController mController;
+
+ @Mock
+ private ZenModeBackend mBackend;
+ @Mock
+ private NotificationManager mNotificationManager;
+ @Mock
+ private ListPreference mockPref;
+ @Mock
+ private NotificationManager.Policy mPolicy;
+ @Mock
+ private PreferenceScreen mPreferenceScreen;
+ private ContentResolver mContentResolver;
+ private Context mContext;
+
+ /**
+ * Array Values Key
+ * 0: anyone
+ * 1: contacts
+ * 2: starred
+ * 3: none
+ */
+ private String[] mValues;
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+ ShadowApplication shadowApplication = ShadowApplication.getInstance();
+ shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
+
+ mContext = RuntimeEnvironment.application;
+ mValues = mContext.getResources().getStringArray(R.array.zen_mode_contacts_values);
+ mContentResolver = RuntimeEnvironment.application.getContentResolver();
+ when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
+
+ when(mBackend.getPriorityMessageSenders())
+ .thenReturn(NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
+ when(mBackend.getContactsSummary(ZenModeBackend.SOURCE_NONE))
+ .thenCallRealMethod();
+ when(mBackend.getContactsSummary(NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES))
+ .thenCallRealMethod();
+
+ mController = new ZenModePriorityMessagesPreferenceController(mContext, mock(Lifecycle.class));
+ ReflectionHelpers.setField(mController, "mBackend", mBackend);
+
+ when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(
+ mockPref);
+ mController.displayPreference(mPreferenceScreen);
+ }
+
+ @Test
+ public void updateState_TotalSilence() {
+ Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_NO_INTERRUPTIONS);
+
+ when(mBackend.isPriorityCategoryEnabled(
+ NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES))
+ .thenReturn(false);
+ final ListPreference mockPref = mock(ListPreference.class);
+ mController.updateState(mockPref);
+
+ verify(mockPref).setEnabled(false);
+ verify(mockPref).setSummary(R.string.zen_mode_from_none);
+ }
+
+ @Test
+ public void updateState_AlarmsOnly() {
+ Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_ALARMS);
+
+ final ListPreference mockPref = mock(ListPreference.class);
+ mController.updateState(mockPref);
+
+ verify(mockPref).setEnabled(false);
+ verify(mockPref).setSummary(R.string.zen_mode_from_none);
+ }
+
+ @Test
+ public void updateState_Priority() {
+ Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
+
+ when(mBackend.isPriorityCategoryEnabled(
+ NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES))
+ .thenReturn(true);
+
+ mController.updateState(mockPref);
+
+ verify(mockPref).setEnabled(true);
+ verify(mockPref).setSummary(R.string.zen_mode_from_starred);
+ }
+
+ @Test
+ public void onPreferenceChange_setSelectedContacts_any() {
+ Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
+ when(mBackend.getPriorityMessageSenders()).thenReturn(
+ NotificationManager.Policy.PRIORITY_SENDERS_ANY);
+ mController.updateState(mockPref);
+ verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
+ ZenModeBackend.ZEN_MODE_FROM_ANYONE)]);
+ }
+
+ @Test
+ public void onPreferenceChange_setSelectedContacts_none() {
+ Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
+ when(mBackend.getPriorityMessageSenders()).thenReturn(ZenModeBackend.SOURCE_NONE);
+ mController.updateState(mockPref);
+ verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
+ ZenModeBackend.ZEN_MODE_FROM_NONE)]);
+ }
+
+ @Test
+ public void onPreferenceChange_setSelectedContacts_starred() {
+ Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
+ when(mBackend.getPriorityMessageSenders()).thenReturn(
+ NotificationManager.Policy.PRIORITY_SENDERS_STARRED);
+ mController.updateState(mockPref);
+ verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
+ ZenModeBackend.ZEN_MODE_FROM_STARRED)]);
+ }
+
+ @Test
+ public void onPreferenceChange_setSelectedContacts_contacts() {
+ Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
+ when(mBackend.getPriorityMessageSenders()).thenReturn(
+ NotificationManager.Policy.PRIORITY_SENDERS_CONTACTS);
+ mController.updateState(mockPref);
+ verify(mockPref).setValue(mValues[mController.getIndexOfSendersValue(
+ ZenModeBackend.ZEN_MODE_FROM_CONTACTS)]);
+ }
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeRemindersPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeRemindersPreferenceControllerTest.java
index 4ddb5fc..de20fb4 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeRemindersPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeRemindersPreferenceControllerTest.java
@@ -72,7 +72,7 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mContentResolver = RuntimeEnvironment.application.getContentResolver();
when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
@@ -80,7 +80,7 @@
ReflectionHelpers.setField(mController, "mBackend", mBackend);
when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
- .thenReturn(mockPref);
+ .thenReturn(mockPref);
mController.displayPreference(mPreferenceScreen);
}
@@ -127,7 +127,7 @@
mController.onPreferenceChange(mockPref, allow);
verify(mBackend)
- .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS, allow);
+ .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS, allow);
}
@Test
@@ -136,6 +136,6 @@
mController.onPreferenceChange(mockPref, allow);
verify(mBackend)
- .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS, allow);
+ .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS, allow);
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceControllerTest.java
index 4518427..fd6a9af 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeRepeatCallersPreferenceControllerTest.java
@@ -71,7 +71,7 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mContentResolver = RuntimeEnvironment.application.getContentResolver();
when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
@@ -142,7 +142,8 @@
mController.onPreferenceChange(mockPref, allow);
verify(mBackend)
- .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REPEAT_CALLERS, allow);
+ .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REPEAT_CALLERS,
+ allow);
}
@Test
@@ -151,6 +152,7 @@
mController.onPreferenceChange(mockPref, allow);
verify(mBackend)
- .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REPEAT_CALLERS, allow);
+ .saveSoundPolicy(NotificationManager.Policy.PRIORITY_CATEGORY_REPEAT_CALLERS,
+ allow);
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeScheduleRuleSettingsTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeScheduleRuleSettingsTest.java
index 2596aa1..ecfb784 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeScheduleRuleSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeScheduleRuleSettingsTest.java
@@ -40,6 +40,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.shadows.ShadowToast;
@@ -66,7 +67,7 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mFragment = spy(new TestFragment());
mFragment.onAttach(application);
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsFooterPreferenceControllerTest.java
index b6efd78..c1634fb 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsFooterPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsFooterPreferenceControllerTest.java
@@ -88,12 +88,12 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mContentResolver = RuntimeEnvironment.application.getContentResolver();
when(mNotificationManager.getZenModeConfig()).thenReturn(mZenModeConfig);
mController =
- new ZenModeSettingsFooterPreferenceController(mContext, mock(Lifecycle.class));
+ new ZenModeSettingsFooterPreferenceController(mContext, mock(Lifecycle.class));
ReflectionHelpers.setField(mZenModeConfig, AUTOMATIC_RULES_FIELD, mInjectedAutomaticRules);
ReflectionHelpers.setField(mController, "mZenModeConfigWrapper", mConfigWrapper);
@@ -276,7 +276,7 @@
injectedManualRule.conditionId = mock(Uri.class);
when(mConfigWrapper.parseManualRuleTime(injectedManualRule.conditionId)).thenReturn(time);
when(mConfigWrapper.getFormattedTime(time, mContext.getUserId()))
- .thenReturn(timePlaceholder);
+ .thenReturn(timePlaceholder);
ReflectionHelpers.setField(mZenModeConfig, MANUAL_RULE_FIELD, injectedManualRule);
}
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java
index 96e5658..4fc7d57 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java
@@ -69,63 +69,6 @@
}
@Test
- public void testGetMsgEventReminderSettingSummary_none() {
- Policy policy = new Policy(0, 0, 0, 0);
- assertThat(mBuilder.getMsgEventReminderSettingSummary(policy)).isEqualTo("None");
- }
-
- @Test
- public void testGetMsgEventReminderSettingSummary_single() {
- Policy policy = new Policy(
- Policy.PRIORITY_CATEGORY_ALARMS | Policy.PRIORITY_CATEGORY_EVENTS, 0 , 0 , 0);
- assertThat(mBuilder.getMsgEventReminderSettingSummary(policy)).isEqualTo("Events");
- }
-
- @Test
- public void testGetMsgEventReminderSettingSummary_someMsgs() {
- Policy policy = new Policy(Policy.PRIORITY_CATEGORY_MESSAGES, 0,
- Policy.PRIORITY_SENDERS_CONTACTS , 0);
- assertThat(mBuilder.getMsgEventReminderSettingSummary(policy)).isEqualTo("Some messages");
-
- policy = new Policy(Policy.PRIORITY_CATEGORY_MESSAGES, 0,
- Policy.PRIORITY_SENDERS_STARRED , 0);
- assertThat(mBuilder.getMsgEventReminderSettingSummary(policy)).isEqualTo("Some messages");
- }
-
- @Test
- public void testGetMsgEventReminderSettingSummary_msgs() {
- Policy policy = new Policy(Policy.PRIORITY_CATEGORY_MESSAGES, 0, 0, 0);
- assertThat(mBuilder.getMsgEventReminderSettingSummary(policy)).isEqualTo("Messages");
- }
-
- @Test
- public void testGetMsgEventReminderSettingSummary_someMsgsAndOther() {
- Policy policy = new Policy(
- Policy.PRIORITY_CATEGORY_MESSAGES | Policy.PRIORITY_CATEGORY_REMINDERS,
- 0, Policy.PRIORITY_SENDERS_CONTACTS , 0);
- assertThat(mBuilder.getMsgEventReminderSettingSummary(policy))
- .isEqualTo("Some messages and reminders");
- }
-
- @Test
- public void testGetMsgEventReminderSettingSummary_someMsgsAndAllOthers() {
- Policy policy = new Policy(Policy.PRIORITY_CATEGORY_EVENTS
- | Policy.PRIORITY_CATEGORY_MESSAGES | Policy.PRIORITY_CATEGORY_REMINDERS,
- 0, Policy.PRIORITY_SENDERS_CONTACTS , 0);
- assertThat(mBuilder.getMsgEventReminderSettingSummary(policy))
- .isEqualTo("Some messages, events, and reminders");
- }
-
- @Test
- public void testGetMsgEventReminderSettingSummary_noMsgsAndOther() {
- Policy policy = new Policy(
- Policy.PRIORITY_CATEGORY_EVENTS | Policy.PRIORITY_CATEGORY_REMINDERS,
- 0,0, 0);
- assertThat(mBuilder.getMsgEventReminderSettingSummary(policy))
- .isEqualTo("Events and reminders");
- }
-
- @Test
public void testGetCallsSettingSummary_none() {
Policy policy = new Policy(0, 0, 0, 0);
assertThat(mBuilder.getCallsSettingSummary(policy)).isEqualTo("None");
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeSliceBuilderTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeSliceBuilderTest.java
index 6c43736..ee51317 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeSliceBuilderTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeSliceBuilderTest.java
@@ -20,8 +20,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.spy;
-
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
@@ -55,7 +53,7 @@
@Before
public void setUp() {
- mContext = spy(RuntimeEnvironment.application);
+ mContext = RuntimeEnvironment.application;
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeStarredContactsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeStarredContactsPreferenceControllerTest.java
index c2ca9be..9e6eb82 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeStarredContactsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeStarredContactsPreferenceControllerTest.java
@@ -45,6 +45,7 @@
import org.mockito.MockitoAnnotations;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
@@ -78,7 +79,7 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
when(testIntent.resolveActivity(any())).thenReturn(mComponentName);
@@ -163,8 +164,8 @@
// expected - no null values
List<String> contacts = mMessagesController.getStarredContacts(testCursorWithNullValues);
- for (int i = 0 ; i < contacts.size(); i++) {
- assertThat(contacts.get(i)).isNotNull();
+ for (String contact : contacts) {
+ assertThat(contact).isNotNull();
}
}
@@ -183,6 +184,7 @@
doAnswer(new Answer<Boolean>() {
int count = 0;
+
@Override
public Boolean answer(InvocationOnMock invocation) throws Throwable {
if (count < size) {
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeSystemPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeSystemPreferenceControllerTest.java
index 418af78..57bc303 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeSystemPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeSystemPreferenceControllerTest.java
@@ -69,7 +69,7 @@
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mContentResolver = RuntimeEnvironment.application.getContentResolver();
when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
mController = new ZenModeSystemPreferenceController(mContext, mock(Lifecycle.class));
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectPreferenceControllerTest.java
index 71720bf..65c39f8 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectPreferenceControllerTest.java
@@ -47,6 +47,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
@@ -62,7 +63,8 @@
private FakeFeatureFactory mFeatureFactory;
@Mock
private PreferenceScreen mScreen;
- @Mock NotificationManager mNotificationManager;
+ @Mock
+ NotificationManager mNotificationManager;
private static final String PREF_KEY = "main_pref";
private static final int PREF_METRICS = 1;
@@ -73,7 +75,7 @@
public void setup() {
MockitoAnnotations.initMocks(this);
ShadowApplication shadowApplication = ShadowApplication.getInstance();
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mFeatureFactory = FakeFeatureFactory.setupForTest();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
when(mNotificationManager.getNotificationPolicy()).thenReturn(
@@ -129,7 +131,7 @@
public void updateState_checkedFalse_parentChecked() {
mController = new ZenModeVisEffectPreferenceController(mContext, mock(Lifecycle.class),
PREF_KEY, SUPPRESSED_EFFECT_PEEK, PREF_METRICS,
- new int[] {PARENT_EFFECT1, PARENT_EFFECT2});
+ new int[]{PARENT_EFFECT1, PARENT_EFFECT2});
ReflectionHelpers.setField(mController, "mBackend", mBackend);
when(mBackend.isVisualEffectSuppressed(SUPPRESSED_EFFECT_PEEK)).thenReturn(false);
when(mBackend.isVisualEffectSuppressed(PARENT_EFFECT1)).thenReturn(false);
@@ -145,7 +147,7 @@
public void updateState_checkedFalse_parentNotChecked() {
mController = new ZenModeVisEffectPreferenceController(mContext, mock(Lifecycle.class),
PREF_KEY, SUPPRESSED_EFFECT_PEEK, PREF_METRICS,
- new int[] {PARENT_EFFECT1, PARENT_EFFECT2});
+ new int[]{PARENT_EFFECT1, PARENT_EFFECT2});
ReflectionHelpers.setField(mController, "mBackend", mBackend);
when(mBackend.isVisualEffectSuppressed(SUPPRESSED_EFFECT_PEEK)).thenReturn(false);
when(mBackend.isVisualEffectSuppressed(PARENT_EFFECT1)).thenReturn(false);
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceControllerTest.java
index 3cada1e..5ae37e3 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsAllPreferenceControllerTest.java
@@ -49,6 +49,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
@@ -64,7 +65,8 @@
private FakeFeatureFactory mFeatureFactory;
@Mock
private PreferenceScreen mScreen;
- @Mock NotificationManager mNotificationManager;
+ @Mock
+ NotificationManager mNotificationManager;
private static final String PREF_KEY = "main_pref";
@@ -72,7 +74,7 @@
public void setup() {
MockitoAnnotations.initMocks(this);
ShadowApplication shadowApplication = ShadowApplication.getInstance();
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mFeatureFactory = FakeFeatureFactory.setupForTest();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
when(mNotificationManager.getNotificationPolicy()).thenReturn(
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java
index f365882..a318a39 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsCustomPreferenceControllerTest.java
@@ -47,6 +47,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
@@ -62,7 +63,8 @@
private FakeFeatureFactory mFeatureFactory;
@Mock
private PreferenceScreen mScreen;
- @Mock NotificationManager mNotificationManager;
+ @Mock
+ NotificationManager mNotificationManager;
private static final String PREF_KEY = "main_pref";
@@ -70,7 +72,7 @@
public void setup() {
MockitoAnnotations.initMocks(this);
ShadowApplication shadowApplication = ShadowApplication.getInstance();
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mFeatureFactory = FakeFeatureFactory.setupForTest();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
when(mNotificationManager.getNotificationPolicy()).thenReturn(
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceControllerTest.java
index 08384af..fe45d1c 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeVisEffectsNonePreferenceControllerTest.java
@@ -49,6 +49,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
@@ -64,16 +65,16 @@
private FakeFeatureFactory mFeatureFactory;
@Mock
private PreferenceScreen mScreen;
- @Mock NotificationManager mNotificationManager;
+ @Mock
+ NotificationManager mNotificationManager;
private static final String PREF_KEY = "main_pref";
- private static final int PREF_METRICS = 1;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
ShadowApplication shadowApplication = ShadowApplication.getInstance();
- mContext = shadowApplication.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mFeatureFactory = FakeFeatureFactory.setupForTest();
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
when(mNotificationManager.getNotificationPolicy()).thenReturn(
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java
index cd99f36..ab7f795 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java
@@ -31,14 +31,13 @@
import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
import com.android.settings.testutils.shadow.ShadowUtils;
+import com.android.settingslib.testutils.DrawableTestHelper;
import com.android.setupwizardlib.GlifLayout;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
-import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowDrawable;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {
@@ -103,9 +102,8 @@
ChooseLockPattern activity = createActivity(true);
ChooseLockPatternFragment fragment = (ChooseLockPatternFragment)
activity.getSupportFragmentManager().findFragmentById(R.id.main_content);
-
- ShadowDrawable drawable = Shadows.shadowOf(((GlifLayout) fragment.getView()).getIcon());
- assertThat(drawable.getCreatedFromResId()).isEqualTo(R.drawable.ic_fingerprint_header);
+ DrawableTestHelper.assertDrawableResId(((GlifLayout) fragment.getView()).getIcon(),
+ R.drawable.ic_fingerprint_header);
}
@Config(qualifiers = "sw300dp")
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockSettingsHelperTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockSettingsHelperTest.java
index 5d51178..e3f3833 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockSettingsHelperTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockSettingsHelperTest.java
@@ -62,8 +62,6 @@
assertEquals(
true,
(startedIntent.getFlags() & Intent.FLAG_ACTIVITY_FORWARD_RESULT) != 0);
- assertEquals(true, startedIntent.getBooleanExtra(
- ConfirmDeviceCredentialBaseFragment.ALLOW_FP_AUTHENTICATION, false));
assertFalse(startedIntent.getBooleanExtra(
ConfirmDeviceCredentialBaseFragment.DARK_THEME, false));
assertFalse(startedIntent.getBooleanExtra(
@@ -100,8 +98,6 @@
assertEquals(
false,
(startedIntent.getFlags() & Intent.FLAG_ACTIVITY_FORWARD_RESULT) != 0);
- assertEquals(false, startedIntent.getBooleanExtra(
- ConfirmDeviceCredentialBaseFragment.ALLOW_FP_AUTHENTICATION, false));
assertFalse(startedIntent.getBooleanExtra(
ConfirmDeviceCredentialBaseFragment.DARK_THEME, false));
assertFalse(startedIntent.getBooleanExtra(
diff --git a/tests/robotests/src/com/android/settings/print/PrintJobMessagePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/print/PrintJobMessagePreferenceControllerTest.java
new file mode 100644
index 0000000..50dd38b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/print/PrintJobMessagePreferenceControllerTest.java
@@ -0,0 +1,113 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.print;
+
+import static androidx.lifecycle.Lifecycle.Event.ON_START;
+import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.print.PrintJob;
+import android.print.PrintJobInfo;
+import android.print.PrintManager;
+
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class PrintJobMessagePreferenceControllerTest {
+ private static final String PREF_KEY = "print_job_message_preference";
+
+ @Mock
+ private PrintManager mPrintManager;
+ @Mock
+ private PrintJob mPrintJob;
+ @Mock
+ private PrintJobInfo mPrintJobInfo;
+ @Mock
+ private PreferenceScreen mScreen;
+
+ private Context mContext;
+ private PrintJobMessagePreferenceController mController;
+ private Preference mPreference;
+ private LifecycleOwner mLifecycleOwner;
+ private Lifecycle mLifecycle;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = spy(RuntimeEnvironment.application);
+ mPreference = new Preference(mContext);
+ when(mContext.getSystemService(Context.PRINT_SERVICE)).thenReturn(mPrintManager);
+ when(mPrintManager.getGlobalPrintManagerForUser(anyInt())).thenReturn(mPrintManager);
+ when(mPrintManager.getPrintJob(anyObject())).thenReturn(mPrintJob);
+ when(mPrintJob.getInfo()).thenReturn(mPrintJobInfo);
+ mController = new PrintJobMessagePreferenceController(mContext, PREF_KEY);
+ when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
+ mController.displayPreference(mScreen);
+ mLifecycleOwner = () -> mLifecycle;
+ mLifecycle = new Lifecycle(mLifecycleOwner);
+ mLifecycle.addObserver(mController);
+ }
+
+ @Test
+ public void onStartStop_shouldRegisterPrintStateListener() {
+ mLifecycle.handleLifecycleEvent(ON_START);
+ mLifecycle.handleLifecycleEvent(ON_STOP);
+
+ verify(mPrintManager).addPrintJobStateChangeListener(mController);
+ verify(mPrintManager).removePrintJobStateChangeListener(mController);
+ }
+
+ @Test
+ public void updateUi_visiblePreference() {
+ when(mPrintJobInfo.getStatus(anyObject())).thenReturn("TestPrint");
+ mLifecycle.handleLifecycleEvent(ON_START);
+
+ assertThat(mPreference.isVisible()).isTrue();
+
+ mLifecycle.handleLifecycleEvent(ON_STOP);
+ }
+
+ @Test
+ public void updateUi_invisiblePreference() {
+ when(mPrintJobInfo.getStatus(anyObject())).thenReturn(null);
+ mLifecycle.handleLifecycleEvent(ON_START);
+
+ assertThat(mPreference.isVisible()).isFalse();
+
+ mLifecycle.handleLifecycleEvent(ON_STOP);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/print/PrintJobPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/print/PrintJobPreferenceControllerTest.java
new file mode 100644
index 0000000..fc92eb3
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/print/PrintJobPreferenceControllerTest.java
@@ -0,0 +1,189 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.print;
+
+import static androidx.lifecycle.Lifecycle.Event.ON_START;
+import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.print.PrintJob;
+import android.print.PrintJobInfo;
+import android.print.PrintManager;
+
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class PrintJobPreferenceControllerTest {
+ private static final String PREF_KEY = "print_job_preference";
+
+ @Mock
+ private PrintManager mPrintManager;
+ @Mock
+ private PrintJob mPrintJob;
+ @Mock
+ private PrintJobInfo mPrintJobInfo;
+ @Mock
+ private PreferenceScreen mScreen;
+
+ private Context mContext;
+ private LifecycleOwner mLifecycleOwner;
+ private Lifecycle mLifecycle;
+ private PrintJobPreferenceController mController;
+ private Preference mPreference;
+ private String mTestLabel;
+
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = spy(RuntimeEnvironment.application);
+ mPreference = new Preference(mContext);
+ mTestLabel = "PrintTest";
+ when(mContext.getSystemService(Context.PRINT_SERVICE)).thenReturn(mPrintManager);
+ when(mPrintManager.getGlobalPrintManagerForUser(anyInt())).thenReturn(mPrintManager);
+ when(mPrintManager.getPrintJob(anyObject())).thenReturn(mPrintJob);
+ when(mPrintJob.getInfo()).thenReturn(mPrintJobInfo);
+ mController = new PrintJobPreferenceController(mContext, PREF_KEY);
+ when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
+ when(mPrintJobInfo.getLabel()).thenReturn(mTestLabel);
+ mController.displayPreference(mScreen);
+ mLifecycleOwner = () -> mLifecycle;
+ mLifecycle = new Lifecycle(mLifecycleOwner);
+ mLifecycle.addObserver(mController);
+ }
+
+ @Test
+ public void onStartStop_shouldRegisterPrintStateListener() {
+ mLifecycle.handleLifecycleEvent(ON_START);
+ mLifecycle.handleLifecycleEvent(ON_STOP);
+
+ verify(mPrintManager).addPrintJobStateChangeListener(mController);
+ verify(mPrintManager).removePrintJobStateChangeListener(mController);
+ }
+
+ @Test
+ public void updateUi_jobState_STATE_CREATED() {
+ when(mPrintJobInfo.getState()).thenReturn(PrintJobInfo.STATE_CREATED);
+
+ mController.onStart();
+ String title = mContext.getString(
+ R.string.print_configuring_state_title_template, mTestLabel);
+
+ assertThat(mPreference.getTitle()).isEqualTo(title);
+ }
+
+ @Test
+ public void updateUi_jobState_STATE_QUEUED() {
+ when(mPrintJobInfo.getState()).thenReturn(PrintJobInfo.STATE_QUEUED);
+
+ mController.onStart();
+ String title = mContext.getString(
+ R.string.print_printing_state_title_template, mTestLabel);
+
+ assertThat(mPreference.getTitle()).isEqualTo(title);
+ }
+
+ @Test
+ public void updateUi_jobState_STATE_STARTED() {
+ when(mPrintJobInfo.getState()).thenReturn(PrintJobInfo.STATE_STARTED);
+
+ mController.onStart();
+ String title = mContext.getString(
+ R.string.print_printing_state_title_template, mTestLabel);
+
+ assertThat(mPreference.getTitle()).isEqualTo(title);
+ }
+
+ @Test
+ public void updateUi_jobState_STATE_QUEUED_and_jobInfo_CANCELLING() {
+ when(mPrintJobInfo.getState()).thenReturn(PrintJobInfo.STATE_QUEUED);
+ when(mPrintJobInfo.isCancelling()).thenReturn(true);
+
+ mController.onStart();
+ String title = mContext.getString(
+ R.string.print_cancelling_state_title_template, mTestLabel);
+
+ assertThat(mPreference.getTitle()).isEqualTo(title);
+ }
+
+ @Test
+ public void updateUi_jobState_STATE_STARTED_and_jobInfo_CANCELLING() {
+ when(mPrintJobInfo.getState()).thenReturn(PrintJobInfo.STATE_STARTED);
+ when(mPrintJobInfo.isCancelling()).thenReturn(true);
+
+ mController.onStart();
+ String title = mContext.getString(
+ R.string.print_cancelling_state_title_template, mTestLabel);
+
+ assertThat(mPreference.getTitle()).isEqualTo(title);
+ }
+
+ @Test
+ public void updateUi_jobState_STATE_FAILED() {
+ when(mPrintJobInfo.getState()).thenReturn(PrintJobInfo.STATE_FAILED);
+
+ mController.onStart();
+ String title = mContext.getString(
+ R.string.print_failed_state_title_template, mTestLabel);
+
+ assertThat(mPreference.getTitle()).isEqualTo(title);
+ }
+
+ @Test
+ public void updateUi_jobState_STATE_BLOCKED() {
+ when(mPrintJobInfo.getState()).thenReturn(PrintJobInfo.STATE_BLOCKED);
+
+ mController.onStart();
+ String title = mContext.getString(
+ R.string.print_blocked_state_title_template, mTestLabel);
+
+ assertThat(mPreference.getTitle()).isEqualTo(title);
+ }
+
+ @Test
+ public void updateUi_jobState_STATE_BLOCKED_and_jobInfo_CANCELLING() {
+ when(mPrintJobInfo.getState()).thenReturn(PrintJobInfo.STATE_BLOCKED);
+ when(mPrintJobInfo.isCancelling()).thenReturn(true);
+
+ mController.onStart();
+ String title = mContext.getString(
+ R.string.print_cancelling_state_title_template, mTestLabel);
+
+ assertThat(mPreference.getTitle()).isEqualTo(title);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
index adb5e43..d0546b6 100644
--- a/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
@@ -24,16 +24,19 @@
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
+import android.provider.Settings;
import android.widget.Toolbar;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUtils;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.Shadows;
+import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class)
public class SearchFeatureProviderImplTest {
@@ -49,6 +52,7 @@
}
@Test
+ @Config(shadows = ShadowUtils.class)
public void initSearchToolbar_shouldInitWithOnClickListener() {
mProvider.initSearchToolbar(mActivity, null);
// Should not crash.
@@ -63,7 +67,7 @@
final Intent launchIntent = Shadows.shadowOf(mActivity).getNextStartedActivity();
assertThat(launchIntent.getAction())
- .isEqualTo("com.android.settings.action.SETTINGS_SEARCH");
+ .isEqualTo(Settings.ACTION_APP_SEARCH_SETTINGS);
}
@Test(expected = IllegalArgumentException.class)
diff --git a/tests/robotests/src/com/android/settings/search/actionbar/SearchMenuControllerTest.java b/tests/robotests/src/com/android/settings/search/actionbar/SearchMenuControllerTest.java
index 3ab4ab4..b4076b5 100644
--- a/tests/robotests/src/com/android/settings/search/actionbar/SearchMenuControllerTest.java
+++ b/tests/robotests/src/com/android/settings/search/actionbar/SearchMenuControllerTest.java
@@ -30,6 +30,7 @@
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settingslib.core.lifecycle.ObservableFragment;
import com.android.settingslib.core.lifecycle.ObservablePreferenceFragment;
@@ -39,8 +40,10 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = ShadowUtils.class)
public class SearchMenuControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/security/EncryptionAndCredentialTest.java b/tests/robotests/src/com/android/settings/security/EncryptionAndCredentialTest.java
index 24e4e62..6a58482 100644
--- a/tests/robotests/src/com/android/settings/security/EncryptionAndCredentialTest.java
+++ b/tests/robotests/src/com/android/settings/security/EncryptionAndCredentialTest.java
@@ -36,6 +36,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
import java.util.ArrayList;
@@ -57,7 +58,7 @@
ShadowApplication application = ShadowApplication.getInstance();
application.setSystemService(Context.DEVICE_POLICY_SERVICE, mDevicePolicyManager);
application.setSystemService(Context.USER_SERVICE, mUserManager);
- mContext = application.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
}
@Test
diff --git a/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java
index ee9fb16..8221b15 100644
--- a/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java
@@ -24,49 +24,54 @@
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
-import android.os.UserManager;
import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = ShadowLockPatternUtils.class)
+@Config(shadows = {ShadowLockPatternUtils.class, ShadowUserManager.class})
public class EncryptionStatusPreferenceControllerTest {
private Context mContext;
private EncryptionStatusPreferenceController mController;
private Preference mPreference;
+ private ShadowUserManager mShadowUserManager;
@Before
public void setUp() {
mContext = RuntimeEnvironment.application;
mController =
- new EncryptionStatusPreferenceController(mContext, PREF_KEY_ENCRYPTION_DETAIL_PAGE);
+ new EncryptionStatusPreferenceController(mContext, PREF_KEY_ENCRYPTION_DETAIL_PAGE);
+ mShadowUserManager = ShadowUserManager.getShadow();
mPreference = new Preference(mContext);
}
+ @After
+ public void tearDown() {
+ mShadowUserManager.reset();
+ }
+
@Test
public void isAvailable_admin_true() {
- UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
- Shadows.shadowOf(userManager).setIsAdminUser(true);
+ mShadowUserManager.setIsAdminUser(true);
assertThat(mController.isAvailable()).isTrue();
}
@Test
public void isAvailable_notAdmin_false() {
- UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
- Shadows.shadowOf(userManager).setIsAdminUser(false);
+ mShadowUserManager.setIsAdminUser(false);
assertThat(mController.isAvailable()).isFalse();
}
@@ -83,8 +88,7 @@
mController = new EncryptionStatusPreferenceController(mContext,
PREF_KEY_ENCRYPTION_SECURITY_PAGE);
- UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
- Shadows.shadowOf(userManager).setIsAdminUser(true);
+ mShadowUserManager.setIsAdminUser(true);
assertThat(mController.isAvailable()).isTrue();
}
@@ -114,7 +118,8 @@
@Test
public void updateSummary_unencrypted_securityPage_shouldNotHaveEncryptionFragment() {
mController =
- new EncryptionStatusPreferenceController(mContext, PREF_KEY_ENCRYPTION_SECURITY_PAGE);
+ new EncryptionStatusPreferenceController(mContext,
+ PREF_KEY_ENCRYPTION_SECURITY_PAGE);
ShadowLockPatternUtils.setDeviceEncryptionEnabled(false);
mController.updateState(mPreference);
diff --git a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
index f7c6bba..3c2cbdb 100644
--- a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
@@ -41,6 +41,7 @@
import android.provider.Settings;
import android.provider.SettingsSlicesContract;
import android.util.ArraySet;
+import android.view.accessibility.AccessibilityManager;
import androidx.slice.Slice;
import androidx.slice.SliceProvider;
@@ -54,18 +55,27 @@
import com.android.settings.testutils.DatabaseTestUtils;
import com.android.settings.testutils.FakeToggleController;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
import com.android.settings.testutils.shadow.ShadowThreadUtils;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settings.wifi.WifiSlice;
+import com.android.settingslib.wifi.WifiTracker;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.Resetter;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowAccessibilityManager;
import java.util.ArrayList;
import java.util.Arrays;
@@ -80,7 +90,10 @@
* TODO Investigate using ShadowContentResolver.registerProviderInternal(String, ContentProvider)
*/
@RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = ShadowThreadUtils.class)
+@Config(shadows = {ShadowUserManager.class, ShadowThreadUtils.class, ShadowUtils.class,
+ SlicesDatabaseAccessorTest.ShadowApplicationPackageManager.class,
+ ShadowBluetoothAdapter.class, ShadowLockPatternUtils.class,
+ SettingsSliceProviderTest.ShadowWifiScanWorker.class})
public class SettingsSliceProviderTest {
private static final String KEY = "KEY";
@@ -96,7 +109,7 @@
private Context mContext;
private SettingsSliceProvider mProvider;
- private SQLiteDatabase mDb;
+ @Mock
private SliceManager mManager;
private static final List<Uri> SPECIAL_CASE_PLATFORM_URIS = Arrays.asList(
@@ -112,7 +125,13 @@
@Before
public void setUp() {
+ MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
+ // Register the fake a11y Service
+ ShadowAccessibilityManager shadowAccessibilityManager = Shadow.extract(
+ RuntimeEnvironment.application.getSystemService(AccessibilityManager.class));
+ shadowAccessibilityManager.setInstalledAccessibilityServiceList(new ArrayList<>());
+
mProvider = spy(new SettingsSliceProvider());
ShadowStrictMode.reset();
mProvider.mSliceWeakDataCache = new HashMap<>();
@@ -121,10 +140,9 @@
mProvider.mCustomSliceManager = new CustomSliceManager(mContext);
when(mProvider.getContext()).thenReturn(mContext);
- mDb = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
SlicesDatabaseHelper.getInstance(mContext).setIndexedState();
- mManager = mock(SliceManager.class);
- when(mContext.getSystemService(SliceManager.class)).thenReturn(mManager);
+
+ doReturn(mManager).when(mContext).getSystemService(SliceManager.class);
when(mManager.getPinnedSlices()).thenReturn(Collections.emptyList());
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
@@ -481,6 +499,54 @@
mProvider.onSlicePinned(uri);
}
+ @Implements(WifiSlice.WifiScanWorker.class)
+ public static class ShadowWifiScanWorker {
+ private static WifiTracker mWifiTracker;
+
+ @Implementation
+ protected void onSlicePinned() {
+ mWifiTracker = mock(WifiTracker.class);
+ mWifiTracker.onStart();
+ }
+
+ @Implementation
+ protected void onSliceUnpinned() {
+ mWifiTracker.onStop();
+ }
+
+ @Implementation
+ public void close() {
+ mWifiTracker.onDestroy();
+ }
+
+ static WifiTracker getWifiTracker() {
+ return mWifiTracker;
+ }
+ }
+
+ @Test
+ public void onSlicePinned_backgroundWorker_started() {
+ mProvider.onSlicePinned(WifiSlice.WIFI_URI);
+
+ verify(ShadowWifiScanWorker.getWifiTracker()).onStart();
+ }
+
+ @Test
+ public void onSlicePinned_backgroundWorker_stopped() {
+ mProvider.onSlicePinned(WifiSlice.WIFI_URI);
+ mProvider.onSliceUnpinned(WifiSlice.WIFI_URI);
+
+ verify(ShadowWifiScanWorker.getWifiTracker()).onStop();
+ }
+
+ @Test
+ public void shutdown_backgroundWorker_closed() {
+ mProvider.onSlicePinned(WifiSlice.WIFI_URI);
+ mProvider.shutdown();
+
+ verify(ShadowWifiScanWorker.getWifiTracker()).onDestroy();
+ }
+
@Test
public void grantWhitelistedPackagePermissions_noWhitelist_shouldNotGrant() {
final List<Uri> uris = new ArrayList<>();
@@ -508,7 +574,7 @@
}
private void insertSpecialCase(String key, boolean isPlatformSlice) {
- ContentValues values = new ContentValues();
+ final ContentValues values = new ContentValues();
values.put(SlicesDatabaseHelper.IndexColumns.KEY, key);
values.put(SlicesDatabaseHelper.IndexColumns.TITLE, TITLE);
values.put(SlicesDatabaseHelper.IndexColumns.SUMMARY, "s");
@@ -518,8 +584,15 @@
values.put(SlicesDatabaseHelper.IndexColumns.CONTROLLER, PREF_CONTROLLER);
values.put(SlicesDatabaseHelper.IndexColumns.PLATFORM_SLICE, isPlatformSlice);
values.put(SlicesDatabaseHelper.IndexColumns.SLICE_TYPE, SliceData.SliceType.INTENT);
-
- mDb.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
+ final SQLiteDatabase db = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
+ db.beginTransaction();
+ try {
+ db.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
+ db.setTransactionSuccessful();
+ } finally {
+ db.endTransaction();
+ }
+ db.close();
}
private static SliceData getDummyData() {
@@ -535,7 +608,7 @@
.build();
}
- @Implements(value = StrictMode.class, inheritImplementationMethods = true)
+ @Implements(value = StrictMode.class)
public static class ShadowStrictMode {
private static int sSetThreadPolicyCount;
@@ -554,4 +627,4 @@
return sSetThreadPolicyCount != 0;
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java b/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java
index 078186a..4371278 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java
@@ -41,6 +41,7 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
+import com.android.settings.testutils.FakeCopyableController;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.FakeSliderController;
import com.android.settings.testutils.FakeToggleController;
@@ -67,6 +68,7 @@
private final Uri URI = Uri.parse("content://com.android.settings.slices/test");
private final Class TOGGLE_CONTROLLER = FakeToggleController.class;
private final Class SLIDER_CONTROLLER = FakeSliderController.class;
+ private final Class COPYABLE_CONTROLLER = FakeCopyableController.class;
private final Class CONTEXT_CONTROLLER = FakeContextOnlyPreferenceController.class;
private final boolean IS_DYNAMIC_SUMMARY_ALLOWED = false;
@@ -79,7 +81,7 @@
@Before
public void setUp() {
- mContext = spy(RuntimeEnvironment.application);
+ mContext = RuntimeEnvironment.application;
mFeatureFactory = FakeFeatureFactory.setupForTest();
mLoggingArgumentCatpor = ArgumentCaptor.forClass(Pair.class);
@@ -116,7 +118,6 @@
public void buildSliderSlice_returnsMatchingSlice() {
final SliceData data = getDummyData(SLIDER_CONTROLLER, SliceData.SliceType.SLIDER);
-
final Slice slice = SliceBuilderUtils.buildSlice(mContext, data);
verify(mFeatureFactory.metricsFeatureProvider)
.action(eq(mContext), eq(MetricsEvent.ACTION_SETTINGS_SLICE_REQUESTED),
@@ -131,6 +132,23 @@
}
@Test
+ public void buildCopyableSlice_returnsMatchingSlice() {
+ final SliceData dummyData = getDummyData(COPYABLE_CONTROLLER, -1);
+
+ final Slice slice = SliceBuilderUtils.buildSlice(mContext, dummyData);
+ verify(mFeatureFactory.metricsFeatureProvider)
+ .action(eq(mContext), eq(MetricsEvent.ACTION_SETTINGS_SLICE_REQUESTED),
+ mLoggingArgumentCatpor.capture());
+ final Pair<Integer, Object> capturedLoggingPair = mLoggingArgumentCatpor.getValue();
+
+ assertThat(capturedLoggingPair.first)
+ .isEqualTo(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME);
+ assertThat(capturedLoggingPair.second)
+ .isEqualTo(dummyData.getKey());
+ SliceTester.testSettingsCopyableSlice(mContext, slice, dummyData);
+ }
+
+ @Test
public void testUriBuilder_oemAuthority_intentPath_returnsValidSliceUri() {
final Uri expectedUri = new Uri.Builder()
.scheme(ContentResolver.SCHEME_CONTENT)
@@ -433,6 +451,25 @@
}
@Test
+ public void buildDisabledDependentSlice_noIconPassed_returnsSliceWithIcon() {
+ final int expectedIconResource = IconCompat.createWithResource(mContext,
+ R.drawable.ic_settings).toIcon().getResId();
+ final SliceData data = getDummyData(FakeUnavailablePreferenceController.class,
+ SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE, 0 /* icon */,
+ IS_DYNAMIC_SUMMARY_ALLOWED);
+ Settings.Global.putInt(mContext.getContentResolver(),
+ FakeUnavailablePreferenceController.AVAILABILITY_KEY,
+ BasePreferenceController.DISABLED_DEPENDENT_SETTING);
+
+ final Slice slice = SliceBuilderUtils.buildSlice(mContext, data);
+
+ final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
+ final SliceAction primaryAction = metadata.getPrimaryAction();
+ final int actualIconResource = primaryAction.getIcon().toIcon().getResId();
+ assertThat(actualIconResource).isEqualTo(expectedIconResource);
+ }
+
+ @Test
public void buildToggleSlice_noIconPassed_returnsSliceWithIcon() {
final int expectedIconResource = IconCompat.createWithResource(mContext,
R.drawable.ic_settings).toIcon().getResId();
diff --git a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
index 949d151..bebf797 100644
--- a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
@@ -21,6 +21,8 @@
import static org.mockito.Mockito.spy;
+import android.app.ApplicationPackageManager;
+import android.content.ComponentName;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
@@ -33,6 +35,10 @@
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.FakeIndexProvider;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settings.testutils.shadow.ShadowUtils;
import org.junit.After;
import org.junit.Before;
@@ -40,6 +46,8 @@
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowAccessibilityManager;
@@ -49,6 +57,9 @@
@RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowUserManager.class, ShadowUtils.class,
+ SlicesDatabaseAccessorTest.ShadowApplicationPackageManager.class,
+ ShadowBluetoothAdapter.class, ShadowLockPatternUtils.class})
public class SlicesDatabaseAccessorTest {
private final String FAKE_TITLE = "title";
@@ -66,6 +77,7 @@
@Before
public void setUp() {
mContext = RuntimeEnvironment.application;
+ ShadowUserManager.getShadow().setIsAdminUser(true);
mAccessor = spy(new SlicesDatabaseAccessor(mContext));
mDb = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
SlicesDatabaseHelper.getInstance(mContext).setIndexedState();
@@ -78,6 +90,7 @@
@After
public void cleanUp() {
+ ShadowUserManager.getShadow().reset();
DatabaseTestUtils.clearDb(mContext);
}
@@ -258,4 +271,14 @@
mDb.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
}
+
+ @Implements(ApplicationPackageManager.class)
+ public static class ShadowApplicationPackageManager extends
+ org.robolectric.shadows.ShadowApplicationPackageManager {
+
+ @Implementation
+ protected ComponentName getInstantAppResolverSettingsComponent() {
+ return null;
+ }
+ }
}
diff --git a/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java b/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java
index c92ee91..4602711 100644
--- a/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java
@@ -60,13 +60,11 @@
private SlicesIndexer mManager;
- private SQLiteDatabase mDb;
@Before
public void setUp() {
mContext = RuntimeEnvironment.application;
mManager = spy(new SlicesIndexer(mContext));
- mDb = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
}
@After
@@ -84,11 +82,16 @@
// Attempt indexing - should not do anything.
mManager.run();
- Cursor cursor = mDb.rawQuery("SELECT * FROM slices_index", null);
- cursor.moveToFirst();
- assertThat(cursor.getCount()).isEqualTo(1);
- assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEY))).isEqualTo(newKey);
- assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.TITLE))).isEqualTo(newTitle);
+ final SQLiteDatabase db = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
+ try (final Cursor cursor = db.rawQuery("SELECT * FROM slices_index", null)) {
+ cursor.moveToFirst();
+ assertThat(cursor.getCount()).isEqualTo(1);
+ assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEY))).isEqualTo(newKey);
+ assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.TITLE)))
+ .isEqualTo(newTitle);
+ } finally {
+ db.close();
+ }
}
@Test
@@ -109,33 +112,43 @@
mManager.run();
- final Cursor cursor = mDb.rawQuery("SELECT * FROM slices_index", null);
- assertThat(cursor.getCount()).isEqualTo(sliceData.size());
+ final SQLiteDatabase db = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
+ try (final Cursor cursor = db.rawQuery("SELECT * FROM slices_index", null)) {
+ assertThat(cursor.getCount()).isEqualTo(sliceData.size());
- cursor.moveToFirst();
- for (int i = 0; i < sliceData.size(); i++) {
- assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEY))).isEqualTo(
- KEYS[i]);
- assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.TITLE))).isEqualTo(
- TITLES[i]);
- assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.FRAGMENT))).isEqualTo(
- FRAGMENT_NAME);
- assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.SCREENTITLE))).isEqualTo(
- SCREEN_TITLE);
- assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEYWORDS))).isEqualTo(
- KEYWORDS);
- assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.ICON_RESOURCE))).isEqualTo(
- ICON);
- assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.CONTROLLER))).isEqualTo(
- PREF_CONTROLLER);
- assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.PLATFORM_SLICE))).isEqualTo(
- 1 /* true */);
- assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.SLICE_TYPE))).isEqualTo(
- SLICE_TYPE);
- assertThat(cursor.getInt(
- cursor.getColumnIndex(IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE))).isEqualTo(
- 1 /* true */);
- cursor.moveToNext();
+ cursor.moveToFirst();
+ for (int i = 0; i < sliceData.size(); i++) {
+ assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.KEY)))
+ .isEqualTo(KEYS[i]);
+ assertThat(cursor.getString(cursor.getColumnIndex(IndexColumns.TITLE)))
+ .isEqualTo(TITLES[i]);
+ assertThat(
+ cursor.getString(cursor.getColumnIndex(IndexColumns.FRAGMENT)))
+ .isEqualTo(FRAGMENT_NAME);
+ assertThat(cursor.getString(
+ cursor.getColumnIndex(IndexColumns.SCREENTITLE))).isEqualTo(SCREEN_TITLE);
+ assertThat(
+ cursor.getString(cursor.getColumnIndex(IndexColumns.KEYWORDS)))
+ .isEqualTo(KEYWORDS);
+ assertThat(
+ cursor.getInt(cursor.getColumnIndex(IndexColumns.ICON_RESOURCE)))
+ .isEqualTo(ICON);
+ assertThat(
+ cursor.getString(cursor.getColumnIndex(IndexColumns.CONTROLLER)))
+ .isEqualTo(PREF_CONTROLLER);
+ assertThat(cursor.getInt(
+ cursor.getColumnIndex(IndexColumns.PLATFORM_SLICE)))
+ .isEqualTo(1 /* true */);
+ assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.SLICE_TYPE)))
+ .isEqualTo(SLICE_TYPE);
+ assertThat(cursor.getInt(
+ cursor.getColumnIndex(
+ IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE)))
+ .isEqualTo(1 /* true */);
+ cursor.moveToNext();
+ }
+ } finally {
+ db.close();
}
}
@@ -143,8 +156,15 @@
final ContentValues values = new ContentValues();
values.put(IndexColumns.KEY, key);
values.put(IndexColumns.TITLE, title);
-
- mDb.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
+ final SQLiteDatabase db = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
+ db.beginTransaction();
+ try {
+ db.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
+ db.setTransactionSuccessful();
+ } finally {
+ db.endTransaction();
+ }
+ db.close();
}
private List<SliceData> getDummyIndexableData() {
diff --git a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
index 1b5bdf8..2ed1907 100644
--- a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
@@ -169,7 +169,6 @@
@After
public void tearDown() {
mShadowAudioManager.reset();
- mShadowMediaRouter.reset();
ShadowBluetoothUtils.reset();
}
diff --git a/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
index 58df2d2..e3014b7 100644
--- a/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
@@ -164,7 +164,6 @@
@After
public void tearDown() {
mShadowAudioManager.reset();
- mShadowMediaRouter.reset();
ShadowBluetoothUtils.reset();
}
diff --git a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
index 9e1ac3d..cdee894 100644
--- a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
@@ -165,7 +165,6 @@
@After
public void tearDown() {
mShadowAudioManager.reset();
- mShadowMediaRouter.reset();
ShadowBluetoothUtils.reset();
}
diff --git a/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java
index ff09412..542a4a1 100644
--- a/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java
@@ -18,10 +18,10 @@
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
-import android.os.UserManager;
import android.provider.Settings;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.testutils.shadow.ShadowUtils;
import org.junit.After;
@@ -29,10 +29,10 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
-import org.robolectric.shadows.ShadowUserManager;
+import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = ShadowUserManager.class)
public class FactoryResetPreferenceControllerTest {
private static final String FACTORY_RESET_KEY = "factory_reset";
@@ -45,8 +45,7 @@
@Before
public void setUp() {
mContext = RuntimeEnvironment.application;
- UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
- mShadowUserManager = Shadows.shadowOf(userManager);
+ mShadowUserManager = ShadowUserManager.getShadow();
mController = new FactoryResetPreferenceController(mContext);
}
diff --git a/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java
index 597389a..5f787a9 100644
--- a/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java
@@ -23,6 +23,7 @@
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.XmlTestUtils;
import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.ShadowUserManager;
import org.junit.After;
import org.junit.Before;
@@ -34,18 +35,20 @@
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
-@Config(shadows = SettingsShadowResources.class)
+@Config(shadows = {SettingsShadowResources.class, ShadowUserManager.class})
public class SystemDashboardFragmentTest {
@Before
public void setup() {
SettingsShadowResources.overrideResource(
com.android.internal.R.bool.config_supportSystemNavigationKeys, true);
+ ShadowUserManager.getShadow().setIsAdminUser(true);
}
@After
public void tearDown() {
SettingsShadowResources.reset();
+ ShadowUserManager.getShadow().reset();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java
index 4245c96..bd17fd7 100644
--- a/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java
@@ -29,13 +29,13 @@
import android.os.Build;
import android.os.Bundle;
import android.os.SystemUpdateManager;
-import android.os.UserManager;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowUserManager;
import org.junit.After;
import org.junit.Before;
@@ -44,15 +44,14 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.shadows.ShadowUserManager;
import java.util.ArrayList;
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = ShadowUserManager.class)
public class SystemUpdatePreferenceControllerTest {
@Mock
@@ -69,8 +68,7 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
- UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
- mShadowUserManager = Shadows.shadowOf(userManager);
+ mShadowUserManager = ShadowUserManager.getShadow();
ShadowApplication.getInstance().setSystemService(Context.SYSTEM_UPDATE_SERVICE,
mSystemUpdateManager);
@@ -140,7 +138,8 @@
mController.updateState(mPreference);
assertThat(mPreference.getSummary())
- .isEqualTo(mContext.getString(R.string.android_version_summary, Build.VERSION.RELEASE));
+ .isEqualTo(mContext.getString(R.string.android_version_summary,
+ Build.VERSION.RELEASE));
}
@Test
@@ -155,7 +154,7 @@
mController.updateState(mPreference);
assertThat(mPreference.getSummary())
- .isEqualTo(mContext.getString(R.string.android_version_summary, testReleaseName));
+ .isEqualTo(mContext.getString(R.string.android_version_summary, testReleaseName));
}
@Test
@@ -167,6 +166,6 @@
mController.updateState(mPreference);
assertThat(mPreference.getSummary())
- .isEqualTo(mContext.getString(R.string.android_version_pending_update_summary));
+ .isEqualTo(mContext.getString(R.string.android_version_pending_update_summary));
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/testutils/FakeCopyableController.java b/tests/robotests/src/com/android/settings/testutils/FakeCopyableController.java
new file mode 100644
index 0000000..a02377c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/FakeCopyableController.java
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.testutils;
+
+import android.content.Context;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.slices.CopyableSlice;
+
+public class FakeCopyableController extends BasePreferenceController implements
+ CopyableSlice {
+
+ public FakeCopyableController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ public boolean isSliceable() {
+ return true;
+ }
+
+ @Override
+ public void copy() {
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/ResIdSubject.java b/tests/robotests/src/com/android/settings/testutils/ResIdSubject.java
deleted file mode 100644
index 3803d75..0000000
--- a/tests/robotests/src/com/android/settings/testutils/ResIdSubject.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2017 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;
-
-import static com.google.common.truth.Truth.assertAbout;
-
-import static org.robolectric.RuntimeEnvironment.application;
-
-import androidx.annotation.Nullable;
-
-import com.google.common.truth.ComparableSubject;
-import com.google.common.truth.FailureStrategy;
-import com.google.common.truth.SubjectFactory;
-
-/**
- * Custom subject for use with {@link com.google.common.truth.Truth}, to provide a more readable
- * error message, so that instead of "Not true that 2130706432 equals to 17170444", it will say
- * "Not true that color/my_color equals to android:color/black".
- *
- * <p>Usage:
- * <pre>{@code
- * ResIdSubject.assertResId(activity.getThemeResId()).isEqualTo(android.R.style.Theme_Material)
- * }</pre>
- */
-public class ResIdSubject extends ComparableSubject<ResIdSubject, Integer> {
-
- public static final SubjectFactory<ResIdSubject, Integer> FACTORY =
- new SubjectFactory<ResIdSubject, Integer>() {
- @Override
- public ResIdSubject getSubject(
- FailureStrategy failureStrategy, Integer integer) {
- return new ResIdSubject(failureStrategy, integer);
- }
- };
-
- public static ResIdSubject assertResId(int resId) {
- return assertAbout(ResIdSubject.FACTORY).that(resId);
- }
-
- public ResIdSubject(
- FailureStrategy failureStrategy,
- @Nullable Integer integer) {
- super(failureStrategy, integer);
- }
-
- public void isEqualTo(int other) {
- Integer subject = getSubject();
- if (subject == null || subject != other) {
- fail("equals to", resIdToString(other));
- }
- }
-
- @Override
- protected String getDisplaySubject() {
- String resourceName = "<" + resIdToString(getSubject()) + ">";
- String customName = internalCustomName();
- if (customName != null) {
- return customName + " " + resourceName;
- } else {
- return resourceName;
- }
- }
-
- private static String resIdToString(int resId) {
- return application.getResources().getResourceName(resId);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java b/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java
index 49197e8..5e5410c 100644
--- a/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java
+++ b/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java
@@ -88,6 +88,8 @@
paths.add(new ResourcePath(null,
Fs.fromURL(new URL("file:frameworks/opt/setupwizard/library/main/res")), null));
paths.add(new ResourcePath(null,
+ Fs.fromURL(new URL("file:out/target/common/obj/JAVA_LIBRARIES/robolectric_android-all-stub_intermediates/classes/raw-res/res")), null));
+ paths.add(new ResourcePath(null,
Fs.fromURL(new URL("file:frameworks/opt/setupwizard/library/gingerbread/res")), null));
paths.add(new ResourcePath(null,
Fs.fromURL(new URL("file:frameworks/opt/setupwizard/library/recyclerview/res")), null));
diff --git a/tests/robotests/src/com/android/settings/testutils/SliceTester.java b/tests/robotests/src/com/android/settings/testutils/SliceTester.java
index 49a84f2..be4199d 100644
--- a/tests/robotests/src/com/android/settings/testutils/SliceTester.java
+++ b/tests/robotests/src/com/android/settings/testutils/SliceTester.java
@@ -169,6 +169,43 @@
}
/**
+ * Test the copyable slice, including:
+ * - No intent
+ * - Correct title
+ * - Correct intent
+ * - Correct keywords
+ * - TTL
+ * - Color
+ */
+ public static void testSettingsCopyableSlice(Context context, Slice slice,
+ SliceData sliceData) {
+ final SliceMetadata metadata = SliceMetadata.from(context, slice);
+
+ final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR);
+ final int color = colorItem.getInt();
+ assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context));
+
+ final SliceAction primaryAction = metadata.getPrimaryAction();
+
+ final IconCompat expectedIcon = IconCompat.createWithResource(context,
+ sliceData.getIconResource());
+ assertThat(expectedIcon.toString()).isEqualTo(primaryAction.getIcon().toString());
+
+ final long sliceTTL = metadata.getExpiry();
+ assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
+
+ // Check primary intent
+ final PendingIntent primaryPendingIntent = primaryAction.getAction();
+ assertThat(primaryPendingIntent).isEqualTo(
+ SliceBuilderUtils.getContentPendingIntent(context, sliceData));
+
+ final List<SliceItem> sliceItems = slice.getItems();
+ assertTitle(sliceItems, sliceData.getTitle());
+
+ assertKeywords(metadata, sliceData);
+ }
+
+ /**
* Test the contents of an unavailable slice, including:
* - No toggles
* - Correct title
@@ -213,7 +250,7 @@
for (SliceItem subTitleItem : titleItems) {
if (TextUtils.equals(subTitleItem.getText(), title)) {
hasTitle = true;
- assertThat(subTitleItem.getText()).isEqualTo(title);
+ break;
}
}
}
@@ -229,4 +266,4 @@
expectedKeywords.add(data.getScreenTitle().toString());
assertThat(keywords).containsExactlyElementsIn(expectedKeywords);
}
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
index bd21cdc..c673508 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
@@ -24,13 +24,10 @@
import com.android.settings.R;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
import org.robolectric.android.XmlResourceParserImpl;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.RealObject;
-import org.robolectric.shadows.ShadowAssetManager;
import org.robolectric.shadows.ShadowResources;
import org.robolectric.util.ReflectionHelpers;
import org.robolectric.util.ReflectionHelpers.ClassParameter;
@@ -40,7 +37,7 @@
* Shadow Resources and Theme classes to handle resource references that Robolectric shadows cannot
* handle because they are too new or private.
*/
-@Implements(value = Resources.class, inheritImplementationMethods = true)
+@Implements(value = Resources.class)
public class SettingsShadowResources extends ShadowResources {
@RealObject
@@ -178,17 +175,14 @@
ClassParameter.from(int.class, id));
}
- @Implements(value = Theme.class, inheritImplementationMethods = true)
- public static class SettingsShadowTheme extends ShadowTheme {
+ @Implements(value = Theme.class)
+ public static class SettingsShadowTheme extends ShadowLegacyTheme {
@RealObject
Theme realTheme;
- private ShadowAssetManager mAssetManager = Shadows.shadowOf(
- RuntimeEnvironment.application.getAssets());
-
@Implementation
- public TypedArray obtainStyledAttributes(
+ protected TypedArray obtainStyledAttributes(
AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) {
// Replace all private string references with a placeholder.
if (set != null) {
@@ -228,7 +222,7 @@
}
private Resources getResources() {
- return ReflectionHelpers.callInstanceMethod(ShadowTheme.class, this, "getResources");
+ return ReflectionHelpers.callInstanceMethod(ShadowLegacyTheme.class, this, "getResources");
}
}
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResourcesImpl.java b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResourcesImpl.java
index dd51687..c76991e 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResourcesImpl.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResourcesImpl.java
@@ -26,15 +26,14 @@
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
-import org.robolectric.shadows.ShadowResourcesImpl;
+import org.robolectric.shadows.ShadowLegacyResourcesImpl;
@Implements(
value = ResourcesImpl.class,
- inheritImplementationMethods = true,
isInAndroidSdk = false,
minSdk = 26
)
-public class SettingsShadowResourcesImpl extends ShadowResourcesImpl {
+public class SettingsShadowResourcesImpl extends ShadowLegacyResourcesImpl {
@Implementation
public Drawable loadDrawable(Resources wrapper, TypedValue value, int id, int density,
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowTypedArray.java b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowTypedArray.java
index fc3ff0c..1e64dd1 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowTypedArray.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowTypedArray.java
@@ -30,7 +30,7 @@
import org.robolectric.annotation.RealObject;
import org.robolectric.shadows.ShadowTypedArray;
-@Implements(value = TypedArray.class, inheritImplementationMethods = true)
+@Implements(value = TypedArray.class)
public class SettingsShadowTypedArray extends ShadowTypedArray {
@RealObject
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java
index 03aabb5..4401926 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java
@@ -16,19 +16,24 @@
package com.android.settings.testutils.shadow;
+import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AuthenticatorDescription;
+import android.annotation.NonNull;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
@Implements(AccountManager.class)
public class ShadowAccountManager{
private static final Map<String, AuthenticatorDescription> sAuthenticators = new HashMap<>();
+ private static final Map<Integer, List<Account>> sAccountsByUserId = new HashMap<>();
@Implementation
public AuthenticatorDescription[] getAuthenticatorTypesAsUser(int userId) {
@@ -39,7 +44,24 @@
sAuthenticators.put(authenticator.type, authenticator);
}
- public static void resetAuthenticator() {
+ public static void reset() {
sAuthenticators.clear();
+ sAccountsByUserId.clear();
+ }
+
+ @Implementation @NonNull
+ public Account[] getAccountsAsUser(int userId) {
+ if (sAccountsByUserId.containsKey(userId)) {
+ return sAccountsByUserId.get(userId).toArray(new Account[0]);
+ } else {
+ return new Account[0];
+ }
+ }
+
+ public static void addAccountForUser(int userId, Account account) {
+ if (!sAccountsByUserId.containsKey(userId)) {
+ sAccountsByUserId.put(userId, new ArrayList<>());
+ }
+ sAccountsByUserId.get(userId).add(account);
}
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivity.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivity.java
index 0f67bbf..babf9e3 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivity.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivity.java
@@ -23,13 +23,12 @@
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
-import org.robolectric.shadows.ShadowApplication;
@Implements(CustomActivity.class)
public class ShadowActivity extends org.robolectric.shadows.ShadowActivity {
@Implementation
- public void startActivityAsUser(Intent intent, UserHandle user) {
- ShadowApplication.getInstance().startActivity(intent);
+ protected void startActivityAsUser(Intent intent, UserHandle user) {
+ realActivity.startActivity(intent);
}
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java
index bcf90c4..cea50f3 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java
@@ -38,7 +38,7 @@
import java.util.ArrayList;
-@Implements(value = AudioManager.class, inheritImplementationMethods = true)
+@Implements(value = AudioManager.class)
public class ShadowAudioManager extends org.robolectric.shadows.ShadowAudioManager {
private int mRingerMode;
private int mDeviceCodes;
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java
index 30837f4..371c1b1 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java
@@ -24,11 +24,9 @@
import java.util.ArrayList;
import java.util.List;
-@Implements(value = BluetoothAdapter.class, inheritImplementationMethods = true)
+@Implements(value = BluetoothAdapter.class)
public class ShadowBluetoothAdapter extends org.robolectric.shadows.ShadowBluetoothAdapter {
- private String mName;
- private int mScanMode;
private int mState;
private List<Integer> mSupportedProfiles = new ArrayList<Integer>();
@@ -45,25 +43,6 @@
mSupportedProfiles.clear();
}
- public void setName(String name) {
- mName = name;
- }
-
- @Implementation
- public String getName() {
- return mName;
- }
-
- @Implementation
- public void setScanMode(int scanMode) {
- mScanMode = scanMode;
- }
-
- @Implementation
- public int getScanMode() {
- return mScanMode;
- }
-
@Implementation
public int getConnectionState() {
return mState;
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothDevice.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothDevice.java
index a96f781..0b1665c 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothDevice.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothDevice.java
@@ -21,7 +21,7 @@
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
-@Implements(value = BluetoothDevice.class, inheritImplementationMethods = true)
+@Implements(value = BluetoothDevice.class)
public class ShadowBluetoothDevice extends org.robolectric.shadows.ShadowBluetoothDevice {
private int mMessageAccessPermission = BluetoothDevice.ACCESS_UNKNOWN;
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCardView.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCardView.java
deleted file mode 100644
index 75526c8..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCardView.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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
- */
-
-package com.android.settings.testutils.shadow;
-
-import android.content.Context;
-import android.util.AttributeSet;
-
-import androidx.cardview.widget.CardView;
-
-import org.robolectric.annotation.Implements;
-import org.robolectric.shadows.ShadowFrameLayout;
-
-/**
- * Shadow for CardView to get around view not implemented error.
- */
-@Implements(CardView.class)
-public class ShadowCardView extends ShadowFrameLayout {
-
- public void __constructor__(Context context, AttributeSet attrs, int defStyleAttr) {
- // do nothing
- }
-
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
index 05687f4..794fcbb 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
@@ -24,7 +24,7 @@
import org.robolectric.annotation.Implements;
import org.robolectric.shadow.api.Shadow;
-@Implements(value = ConnectivityManager.class, inheritImplementationMethods = true)
+@Implements(value = ConnectivityManager.class)
public class ShadowConnectivityManager extends org.robolectric.shadows.ShadowConnectivityManager {
private final SparseBooleanArray mSupportedNetworkTypes = new SparseBooleanArray();
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFingerprintManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFingerprintManager.java
index e4be318..cb185a5 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFingerprintManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFingerprintManager.java
@@ -16,7 +16,6 @@
package com.android.settings.testutils.shadow;
-import android.content.Context;
import android.hardware.fingerprint.Fingerprint;
import android.hardware.fingerprint.FingerprintManager;
@@ -25,36 +24,16 @@
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.Resetter;
import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowContextImpl;
-import org.robolectric.util.ReflectionHelpers;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import java.util.Map;
import java.util.stream.IntStream;
@Implements(FingerprintManager.class)
-public class ShadowFingerprintManager {
+public class ShadowFingerprintManager extends org.robolectric.shadows.ShadowFingerprintManager {
- private static Map<String, String> getSystemServiceMap() {
- return ReflectionHelpers.getStaticField(ShadowContextImpl.class, "SYSTEM_SERVICE_MAP");
- }
-
- /**
- * Call this in @Before of a test to add FingerprintManager to Robolectric's system service
- * map. Otherwise getSystemService(FINGERPRINT_SERVICE) will return null.
- */
- public static void addToServiceMap() {
- getSystemServiceMap().put(Context.FINGERPRINT_SERVICE, FingerprintManager.class.getName());
- }
-
- @Resetter
- public static void reset() {
- getSystemServiceMap().remove(Context.FINGERPRINT_SERVICE);
- }
public boolean hardwareDetected = true;
@@ -62,22 +41,22 @@
private List<Fingerprint> mFingerprints = Collections.emptyList();
@Implementation
- public boolean isHardwareDetected() {
+ protected boolean isHardwareDetected() {
return hardwareDetected;
}
@Implementation
- public boolean hasEnrolledFingerprints() {
+ protected boolean hasEnrolledFingerprints() {
return !mFingerprints.isEmpty();
}
@Implementation
- public List<Fingerprint> getEnrolledFingerprints() {
+ protected List<Fingerprint> getEnrolledFingerprints() {
return mFingerprints;
}
@Implementation
- public List<Fingerprint> getEnrolledFingerprints(int userId) {
+ protected List<Fingerprint> getEnrolledFingerprints(int userId) {
return mFingerprints;
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowMediaRouter.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowMediaRouter.java
index 68c92a7..a69faba 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowMediaRouter.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowMediaRouter.java
@@ -21,12 +21,11 @@
import android.media.MediaRouter;
import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.Resetter;
import org.robolectric.shadow.api.Shadow;
import java.util.concurrent.CopyOnWriteArrayList;
-@Implements(value = MediaRouter.class, inheritImplementationMethods = true)
+@Implements(value = MediaRouter.class)
public class ShadowMediaRouter extends org.robolectric.shadows.ShadowMediaRouter {
MediaRouter.RouteInfo mSelectedRoute;
@@ -42,16 +41,12 @@
}
public void removeCallback(MediaRouter.Callback cb) {
- if (mCallbacks.contains(cb))
+ if (mCallbacks.contains(cb)) {
mCallbacks.remove(cb);
+ }
}
public static ShadowMediaRouter getShadow() {
return Shadow.extract(application.getSystemService(MediaRouter.class));
}
-
- @Resetter
- public void reset() {
- mCallbacks.clear();
- }
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java
index 3266a7f..61278f3 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java
@@ -37,7 +37,7 @@
import java.util.Map;
import java.util.Set;
-@Implements(value = UserManager.class, inheritImplementationMethods = true)
+@Implements(value = UserManager.class)
public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager {
private SparseArray<UserInfo> mUserInfos = new SparseArray<>();
@@ -46,7 +46,7 @@
private final List<UserInfo> mUserProfileInfos = new ArrayList<>();
private final Set<Integer> mManagedProfiles = new HashSet<>();
private boolean mIsQuietModeEnabled = false;
- private int[] profileIdsForUser;
+ private int[] profileIdsForUser = new int[0];
private boolean mUserSwitchEnabled;
@@ -59,6 +59,7 @@
mManagedProfiles.clear();
mIsQuietModeEnabled = false;
mUserSwitchEnabled = false;
+ profileIdsForUser = new int[0];
}
public void setUserInfo(int userHandle, UserInfo userInfo) {
@@ -66,7 +67,7 @@
}
@Implementation
- public UserInfo getUserInfo(int userHandle) {
+ protected UserInfo getUserInfo(int userHandle) {
return mUserInfos.get(userHandle);
}
@@ -75,12 +76,12 @@
}
@Implementation
- public List<UserInfo> getProfiles(@UserIdInt int userHandle) {
+ protected List<UserInfo> getProfiles(@UserIdInt int userHandle) {
return mUserProfileInfos;
}
@Implementation
- public int[] getProfileIds(@UserIdInt int userHandle, boolean enabledOnly) {
+ protected int[] getProfileIds(@UserIdInt int userHandle, boolean enabledOnly) {
int[] ids = new int[mUserProfileInfos.size()];
for (int i = 0; i < mUserProfileInfos.size(); i++) {
ids[i] = mUserProfileInfos.get(i).id;
@@ -89,12 +90,22 @@
}
@Implementation
- public int getCredentialOwnerProfile(@UserIdInt int userHandle) {
+ public List<UserHandle> getUserProfiles(){
+ int[] userIds = getProfileIds(UserHandle.myUserId(), true /* enabledOnly */);
+ List<UserHandle> result = new ArrayList<>(userIds.length);
+ for (int userId : userIds) {
+ result.add(UserHandle.of(userId));
+ }
+ return result;
+ }
+
+ @Implementation
+ protected int getCredentialOwnerProfile(@UserIdInt int userHandle) {
return userHandle;
}
@Implementation
- public boolean hasBaseUserRestriction(String restrictionKey, UserHandle userHandle) {
+ protected boolean hasBaseUserRestriction(String restrictionKey, UserHandle userHandle) {
return mRestrictions.contains(restrictionKey);
}
@@ -108,7 +119,7 @@
}
@Implementation
- public List<EnforcingUser> getUserRestrictionSources(
+ protected List<EnforcingUser> getUserRestrictionSources(
String restrictionKey, UserHandle userHandle) {
// Return empty list when there is no enforcing user, otherwise might trigger
// NullPointer Exception in RestrictedLockUtils.checkIfRestrictionEnforced.
@@ -123,7 +134,7 @@
}
@Implementation
- public boolean isManagedProfile(@UserIdInt int userId) {
+ protected boolean isManagedProfile(@UserIdInt int userId) {
return mManagedProfiles.contains(userId);
}
@@ -132,7 +143,7 @@
}
@Implementation
- public boolean isQuietModeEnabled(UserHandle userHandle) {
+ protected boolean isQuietModeEnabled(UserHandle userHandle) {
return mIsQuietModeEnabled;
}
@@ -141,7 +152,7 @@
}
@Implementation
- public int[] getProfileIdsWithDisabled(@UserIdInt int userId) {
+ protected int[] getProfileIdsWithDisabled(@UserIdInt int userId) {
return profileIdsForUser;
}
@@ -150,7 +161,7 @@
}
@Implementation
- public boolean isUserSwitcherEnabled() {
+ protected boolean isUserSwitcherEnabled() {
return mUserSwitchEnabled;
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
index b09bc74..0927956 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
@@ -21,9 +21,13 @@
import android.hardware.fingerprint.FingerprintManager;
import android.os.UserHandle;
import android.os.UserManager;
+import android.util.Log;
import com.android.settings.Utils;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.SearchFeatureProviderImpl;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
@@ -102,6 +106,11 @@
return null;
}
+ @Implementation
+ public static boolean isPackageEnabled(Context context, String packageName) {
+ return true;
+ }
+
public static void setApplicationLabel(String packageName, String appLabel) {
if (sAppNameMap == null) {
sAppNameMap = new HashMap<>();
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowVibrator.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowVibrator.java
deleted file mode 100644
index 69e08d5..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowVibrator.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2017 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 static org.mockito.Mockito.mock;
-
-import android.content.Context;
-import android.media.AudioAttributes;
-import android.os.SystemVibrator;
-import android.os.VibrationEffect;
-import android.os.Vibrator;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.fakes.RoboVibrator;
-import org.robolectric.shadows.ShadowContextImpl;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.Map;
-
-@Implements(SystemVibrator.class)
-public class ShadowVibrator {
-
- private static Map<String, String> getSystemServiceMap() {
- return ReflectionHelpers.getStaticField(ShadowContextImpl.class, "SYSTEM_SERVICE_MAP");
- }
-
- public static void addToServiceMap() {
- getSystemServiceMap().put(Context.VIBRATOR_SERVICE, SystemVibrator.class.getName());
- }
-
- public static void reset() {
- getSystemServiceMap().put(Context.VIBRATOR_SERVICE, RoboVibrator.class.getName());
- }
-
- public final Vibrator delegate = mock(Vibrator.class);
-
- @Implementation
- public void vibrate(int uid, String opPkg, VibrationEffect vibe, String reason,
- AudioAttributes attributes) {
- delegate.vibrate(uid, opPkg, vibe, reason, attributes);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java
index d9bc486..b41b396 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java
@@ -30,7 +30,7 @@
import java.util.Collections;
import java.util.List;
-@Implements(value = WifiManager.class, inheritImplementationMethods = true)
+@Implements(value = WifiManager.class)
public class ShadowWifiManager extends org.robolectric.shadows.ShadowWifiManager {
public WifiConfiguration savedWifiConfig;
diff --git a/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
index 0f95334..2bd12c3 100644
--- a/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
@@ -38,6 +38,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
@@ -57,9 +58,8 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- ShadowApplication shadowContext = ShadowApplication.getInstance();
+ mContext = RuntimeEnvironment.application;
mUserManager = ShadowUserManager.getShadow();
- mContext = shadowContext.getApplicationContext();
mController = new AddUserWhenLockedPreferenceController(mContext, "fake_key");
}
diff --git a/tests/robotests/src/com/android/settings/users/AutoSyncDataPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/AutoSyncDataPreferenceControllerTest.java
index 04b314e..a791528 100644
--- a/tests/robotests/src/com/android/settings/users/AutoSyncDataPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/AutoSyncDataPreferenceControllerTest.java
@@ -64,7 +64,7 @@
MockitoAnnotations.initMocks(this);
ShadowApplication shadowContext = ShadowApplication.getInstance();
shadowContext.setSystemService(Context.USER_SERVICE, mUserManager);
- mContext = shadowContext.getApplicationContext();
+ mContext = RuntimeEnvironment.application;
mController = new AutoSyncDataPreferenceController(mContext, mFragment);
mConfirmSyncFragment = new AutoSyncDataPreferenceController.ConfirmAutoSyncChangeFragment();
mConfirmSyncFragment.setTargetFragment(mFragment, 0);
diff --git a/tests/robotests/src/com/android/settings/users/AutoSyncPersonalDataPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/AutoSyncPersonalDataPreferenceControllerTest.java
index fb75701..1850f3a 100644
--- a/tests/robotests/src/com/android/settings/users/AutoSyncPersonalDataPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/AutoSyncPersonalDataPreferenceControllerTest.java
@@ -36,6 +36,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
import java.util.ArrayList;
@@ -58,9 +59,9 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
ShadowApplication shadowContext = ShadowApplication.getInstance();
shadowContext.setSystemService(Context.USER_SERVICE, mUserManager);
- mContext = shadowContext.getApplicationContext();
mController = new AutoSyncPersonalDataPreferenceController(mContext, mFragment);
mPreference = new Preference(mContext);
mPreference.setKey(mController.getPreferenceKey());
diff --git a/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java
index cf4a37f..e5519a3 100644
--- a/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java
@@ -18,6 +18,7 @@
import static com.google.common.truth.Truth.assertThat;
+import android.app.Activity;
import android.content.Context;
import android.content.Intent;
@@ -30,7 +31,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
@RunWith(SettingsRobolectricTestRunner.class)
public class WallpaperTypePreferenceControllerTest {
@@ -43,7 +44,7 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application;
+ mContext = Robolectric.setupActivity(Activity.class);
mController = new WallpaperTypePreferenceController(mContext, "pref_key");
mIntent = new Intent();
mPreference = new Preference(mContext);
diff --git a/tests/robotests/src/com/android/settings/widget/RoundedHomepageIconTest.java b/tests/robotests/src/com/android/settings/widget/RoundedHomepageIconTest.java
index 042341b..aaffa93 100644
--- a/tests/robotests/src/com/android/settings/widget/RoundedHomepageIconTest.java
+++ b/tests/robotests/src/com/android/settings/widget/RoundedHomepageIconTest.java
@@ -40,6 +40,7 @@
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.drawer.CategoryKey;
import com.android.settingslib.drawer.Tile;
+import com.android.settingslib.testutils.DrawableTestHelper;
import org.junit.Before;
import org.junit.Test;
@@ -67,8 +68,8 @@
new RoundedHomepageIcon(mContext, new ColorDrawable(Color.BLACK));
assertThat(icon.getNumberOfLayers()).isEqualTo(2);
- assertThat(icon.getDrawable(0))
- .isEqualTo(mContext.getDrawable(R.drawable.ic_homepage_generic_background));
+ DrawableTestHelper.assertDrawableResId(icon.getDrawable(0),
+ R.drawable.ic_homepage_generic_background);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java b/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java
index ebfe74c..04b85dc 100644
--- a/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java
+++ b/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java
@@ -60,11 +60,10 @@
assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
.isEqualTo(mContext.getString(defaultOffText));
- assertThat(mBar.getBackground()).isEqualTo(new ColorDrawable(COLOR_BACKGROUND));
mBar.setChecked(true);
- assertThat(mBar.getBackground()).isEqualTo(new ColorDrawable(COLOR_BACKGROUND_ACTIVATED));
+ assertThat(mBar.getBackground()).isInstanceOf(ColorDrawable.class);
assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
.isEqualTo(mContext.getString(defaultOnText));
}
@@ -75,12 +74,12 @@
final int offText = R.string.manage_space_text;
mBar.setSwitchBarText(onText, offText);
- assertThat(mBar.getBackground()).isEqualTo(new ColorDrawable(COLOR_BACKGROUND));
assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
.isEqualTo(mContext.getString(offText));
mBar.setChecked(true);
- assertThat(mBar.getBackground()).isEqualTo(new ColorDrawable(COLOR_BACKGROUND_ACTIVATED));
+ assertThat(mBar.getBackground()).isInstanceOf(ColorDrawable.class);
+
assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
.isEqualTo(mContext.getString(onText));
}
diff --git a/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogFragmentTest.java
new file mode 100644
index 0000000..f987f40
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogFragmentTest.java
@@ -0,0 +1,70 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.wifi;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.content.DialogInterface;
+import android.widget.Button;
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
+import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.annotation.Config;
+import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = {SettingsShadowResourcesImpl.class, ShadowAlertDialogCompat.class})
+public class NetworkRequestDialogFragmentTest {
+
+ private FragmentActivity mActivity;
+ private NetworkRequestDialogFragment networkRequestDialogFragment;
+
+ @Before
+ public void setUp() {
+ mActivity = Robolectric.setupActivity(FragmentActivity.class);
+ networkRequestDialogFragment = spy(NetworkRequestDialogFragment.newInstance(-1, null));
+ }
+
+ @Test
+ public void display_shouldShowTheDialog() {
+ networkRequestDialogFragment.show(mActivity.getSupportFragmentManager(), null);
+ AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+ assertThat(alertDialog).isNotNull();
+ assertThat(alertDialog.isShowing()).isTrue();
+ }
+
+ @Test
+ public void clickPositiveButton_shouldCloseTheDialog() {
+ networkRequestDialogFragment.show(mActivity.getSupportFragmentManager(), null);
+ AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+ assertThat(alertDialog.isShowing()).isTrue();
+
+ Button positiveButton = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
+ assertThat(positiveButton).isNotNull();
+
+ positiveButton.performClick();
+ assertThat(alertDialog.isShowing()).isFalse();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java
index c9be0f6..bf4c6e7 100644
--- a/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java
@@ -86,7 +86,7 @@
@Test
public void updateState_preferenceSetCheckedWhenSettingsAreEnabled() {
final SwitchPreference preference = mock(SwitchPreference.class);
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Global.putInt(mContext.getContentResolver(),
WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 1);
mController.updateState(preference);
@@ -97,7 +97,7 @@
@Test
public void updateState_preferenceSetCheckedWhenSettingsAreDisabled() {
final SwitchPreference preference = mock(SwitchPreference.class);
- Settings.System.putInt(mContext.getContentResolver(),
+ Settings.Global.putInt(mContext.getContentResolver(),
WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 0);
mController.updateState(preference);
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java
index e9daec3..c9e6c1e 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java
@@ -20,20 +20,31 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import android.app.Activity;
+import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
+import android.os.PowerManager;
+import android.provider.Settings;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
import com.android.settings.search.SearchIndexableRaw;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.wifi.WifiTracker;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
@@ -42,18 +53,33 @@
@RunWith(SettingsRobolectricTestRunner.class)
public class WifiSettingsTest {
+ private static final int NUM_NETWORKS = 4;
+
+ @Mock
+ private WifiTracker mWifiTracker;
+ @Mock
+ private PowerManager mPowerManager;
private Context mContext;
+ private WifiSettings mWifiSettings;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
+
+ mWifiSettings = spy(new WifiSettings());
+ doReturn(mContext).when(mWifiSettings).getContext();
+ doReturn(mPowerManager).when(mContext).getSystemService(PowerManager.class);
+ mWifiSettings.mSavedNetworksPreference = new Preference(mContext);
+ mWifiSettings.mConfigureWifiSettingsPreference = new Preference(mContext);
+ mWifiSettings.mWifiTracker = mWifiTracker;
}
@Test
public void testSearchIndexProvider_shouldIndexFragmentTitle() {
final List<SearchIndexableRaw> indexRes =
- WifiSettings.SEARCH_INDEX_DATA_PROVIDER.getRawDataToIndex(mContext, true /* enabled */);
+ WifiSettings.SEARCH_INDEX_DATA_PROVIDER.getRawDataToIndex(mContext,
+ true /* enabled */);
assertThat(indexRes).isNotNull();
assertThat(indexRes.get(0).key).isEqualTo(WifiSettings.DATA_KEY_REFERENCE);
@@ -63,7 +89,8 @@
@Config(qualifiers = "mcc999")
public void testSearchIndexProvider_ifWifiSettingsNotVisible_shouldNotIndexFragmentTitle() {
final List<SearchIndexableRaw> indexRes =
- WifiSettings.SEARCH_INDEX_DATA_PROVIDER.getRawDataToIndex(mContext, true /* enabled */);
+ WifiSettings.SEARCH_INDEX_DATA_PROVIDER.getRawDataToIndex(mContext,
+ true /* enabled */);
assertThat(indexRes).isEmpty();
}
@@ -78,4 +105,51 @@
verify(wifiSettings).handleAddNetworkRequest(anyInt(), any(Intent.class));
}
+
+ @Test
+ public void setAdditionalSettingsSummaries_hasSavedNetwork_preferenceVisible() {
+ when(mWifiTracker.getNumSavedNetworks()).thenReturn(NUM_NETWORKS);
+
+ mWifiSettings.setAdditionalSettingsSummaries();
+
+ assertThat(mWifiSettings.mSavedNetworksPreference.isVisible()).isTrue();
+ assertThat(mWifiSettings.mSavedNetworksPreference.getSummary()).isEqualTo(
+ mContext.getResources().getQuantityString(
+ R.plurals.wifi_saved_access_points_summary,
+ NUM_NETWORKS, NUM_NETWORKS));
+ }
+
+ @Test
+ public void setAdditionalSettingsSummaries_noSavedNetwork_preferenceInvisible() {
+ when(mWifiTracker.getNumSavedNetworks()).thenReturn(0);
+
+ mWifiSettings.setAdditionalSettingsSummaries();
+
+ assertThat(mWifiSettings.mSavedNetworksPreference.isVisible()).isFalse();
+ }
+
+ @Test
+ public void setAdditionalSettingsSummaries_wifiWakeupEnabled_displayOn() {
+ final ContentResolver contentResolver = mContext.getContentResolver();
+ Settings.Global.putInt(contentResolver, Settings.Global.WIFI_WAKEUP_ENABLED, 1);
+ Settings.Global.putInt(contentResolver, Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 1);
+ Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 0);
+ when(mPowerManager.isPowerSaveMode()).thenReturn(false);
+
+ mWifiSettings.setAdditionalSettingsSummaries();
+
+ assertThat(mWifiSettings.mConfigureWifiSettingsPreference.getSummary()).isEqualTo(
+ mContext.getString(R.string.wifi_configure_settings_preference_summary_wakeup_on));
+ }
+
+ @Test
+ public void setAdditionalSettingsSummaries_wifiWakeupDisabled_displayOff() {
+ final ContentResolver contentResolver = mContext.getContentResolver();
+ Settings.Global.putInt(contentResolver, Settings.Global.WIFI_WAKEUP_ENABLED, 0);
+
+ mWifiSettings.setAdditionalSettingsSummaries();
+
+ assertThat(mWifiSettings.mConfigureWifiSettingsPreference.getSummary()).isEqualTo(
+ mContext.getString(R.string.wifi_configure_settings_preference_summary_wakeup_off));
+ }
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiSliceTest.java b/tests/robotests/src/com/android/settings/wifi/WifiSliceTest.java
index 5a2f546..5ac25ed 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiSliceTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiSliceTest.java
@@ -17,9 +17,12 @@
package com.android.settings.wifi;
-import static com.google.common.truth.Truth.assertThat;
+import static android.app.slice.Slice.HINT_LIST_ITEM;
+import static android.app.slice.SliceItem.FORMAT_SLICE;
-import static org.mockito.Mockito.spy;
+import static com.android.settings.wifi.WifiSlice.DEFAULT_EXPANDED_ROW_COUNT;
+
+import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
import android.content.Intent;
@@ -31,6 +34,7 @@
import androidx.slice.SliceMetadata;
import androidx.slice.SliceProvider;
import androidx.slice.core.SliceAction;
+import androidx.slice.core.SliceQuery;
import androidx.slice.widget.SliceLiveData;
import com.android.settings.R;
@@ -53,7 +57,7 @@
@Before
public void setUp() {
- mContext = spy(RuntimeEnvironment.application);
+ mContext = RuntimeEnvironment.application;
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
@@ -62,7 +66,7 @@
}
@Test
- public void getWifiSlice_correctSliceContent() {
+ public void getWifiSlice_shouldHaveTitleAndToggle() {
final Slice wifiSlice = mWifiSlice.getSlice();
final SliceMetadata metadata = SliceMetadata.from(mContext, wifiSlice);
@@ -79,6 +83,16 @@
}
@Test
+ public void getWifiSlice_noAp_shouldReturnPlaceholder() {
+ final Slice wifiSlice = mWifiSlice.getSlice();
+
+ int rows = SliceQuery.findAll(wifiSlice, FORMAT_SLICE, HINT_LIST_ITEM,
+ null /* nonHints */).size();
+ // All AP rows + title row
+ assertThat(rows).isEqualTo(DEFAULT_EXPANDED_ROW_COUNT + 1);
+ }
+
+ @Test
public void handleUriChange_updatesWifi() {
final Intent intent = mWifiSlice.getIntent();
intent.putExtra(android.app.slice.Slice.EXTRA_TOGGLE_STATE, true);
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java
index ffe1d8f..6deae7f 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java
@@ -48,16 +48,14 @@
@RunWith(SettingsRobolectricTestRunner.class)
public class WifiWakeupPreferenceControllerTest {
- private static final String NO_LOCATION_STRING =
- "Unavailable because location is turned off. Turn on location.";
private Context mContext;
private WifiWakeupPreferenceController mController;
@Mock
- DashboardFragment mFragment;
+ private DashboardFragment mFragment;
@Mock
- LocationManager mLocationManager;
+ private LocationManager mLocationManager;
@Mock
- SwitchPreference mPreference;
+ private SwitchPreference mPreference;
@Before
public void setUp() {
@@ -67,7 +65,7 @@
mController.mLocationManager = mLocationManager;
mController.mPreference = mPreference;
- Settings.System.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1);
+ Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1);
doReturn(true).when(mLocationManager).isLocationEnabled();
}
@@ -105,7 +103,8 @@
@Test
public void updateState_preferenceSetCheckedWhenWakeupSettingEnabled() {
final SwitchPreference preference = mock(SwitchPreference.class);
- Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
+ Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
+ Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1);
mController.updateState(preference);
@@ -116,7 +115,7 @@
@Test
public void updateState_preferenceSetUncheckedWhenWakeupSettingDisabled() {
final SwitchPreference preference = mock(SwitchPreference.class);
- Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 0);
+ Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 0);
mController.updateState(preference);
@@ -127,8 +126,8 @@
@Test
public void updateState_preferenceSetUncheckedWhenWifiScanningDisabled() {
final SwitchPreference preference = mock(SwitchPreference.class);
- Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
- Settings.System.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0);
+ Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
+ Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0);
mController.updateState(preference);
@@ -138,7 +137,7 @@
@Test
public void updateState_preferenceSetUncheckedWhenWakeupSettingEnabledNoLocation() {
final SwitchPreference preference = mock(SwitchPreference.class);
- Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
+ Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
doReturn(false).when(mLocationManager).isLocationEnabled();
mController.updateState(preference);
@@ -150,7 +149,7 @@
@Test
public void updateState_preferenceSetUncheckedWhenWakeupSettingDisabledLocationEnabled() {
final SwitchPreference preference = mock(SwitchPreference.class);
- Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 0);
+ Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 0);
doReturn(false).when(mLocationManager).isLocationEnabled();
mController.updateState(preference);
@@ -162,8 +161,8 @@
@Test
public void updateState_preferenceSetUncheckedWhenWifiScanningDisabledLocationEnabled() {
final SwitchPreference preference = mock(SwitchPreference.class);
- Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
- Settings.System.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0);
+ Settings.Global.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1);
+ Settings.Global.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 0);
doReturn(false).when(mLocationManager).isLocationEnabled();
mController.updateState(preference);
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 c5c4b67..ae4c753 100644
--- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
@@ -86,7 +86,7 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
+ mContext = RuntimeEnvironment.application;
//setup for SettingsSliceProvider tests
mProvider = spy(new SettingsSliceProvider());
diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiPrivacyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiPrivacyPreferenceControllerTest.java
new file mode 100644
index 0000000..a4bcfff
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/wifi/details/WifiPrivacyPreferenceControllerTest.java
@@ -0,0 +1,89 @@
+/*
+ * 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.
+ */
+
+package com.android.settings.wifi.details;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.net.wifi.WifiConfiguration;
+
+import androidx.preference.DropDownPreference;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class WifiPrivacyPreferenceControllerTest {
+
+ private static final int PRIVACY_RANDOMIZED = 0;
+ private static final int PRIVACY_TRUSTED = 1;
+
+ @Mock
+ private WifiConfiguration mWifiConfiguration;
+
+ private WifiPrivacyPreferenceController mPreferenceController;
+ private Context mContext;
+ private DropDownPreference mDropDownPreference;
+
+ @Before
+ public void setUp() {
+ mContext = RuntimeEnvironment.application;
+
+ WifiPrivacyPreferenceController preferenceController = new WifiPrivacyPreferenceController(
+ mContext);
+ preferenceController.setWifiConfiguration(mWifiConfiguration);
+ mPreferenceController = spy(preferenceController);
+ mDropDownPreference = new DropDownPreference(mContext);
+ mDropDownPreference.setEntries(R.array.wifi_privacy_entries);
+ mDropDownPreference.setEntryValues(R.array.wifi_privacy_values);
+ }
+
+ @Test
+ public void testUpdateState_wifiPrivacy_setCorrectValue() {
+ doReturn(PRIVACY_TRUSTED).when(mPreferenceController).getRandomizationValue();
+
+ mPreferenceController.updateState(mDropDownPreference);
+
+ assertThat(mDropDownPreference.getEntry()).isEqualTo("Trusted");
+ }
+
+ @Test
+ public void testUpdateState_wifiNotMetered_setCorrectValue() {
+ doReturn(PRIVACY_RANDOMIZED).when(mPreferenceController).getRandomizationValue();
+
+ mPreferenceController.updateState(mDropDownPreference);
+
+ assertThat(mDropDownPreference.getEntry()).isEqualTo("Default (use randomized MAC)");
+ }
+
+ @Test
+ public void testController_resilientToNullConfig() {
+ mPreferenceController = spy(new WifiPrivacyPreferenceController(mContext));
+
+ mPreferenceController.getRandomizationValue();
+ mPreferenceController.onPreferenceChange(mDropDownPreference, new String("1"));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceControllerTest.java
index f813185..e8d13df 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceControllerTest.java
@@ -66,7 +66,7 @@
public void onPreferenceChange_securityValueUpdated() {
mController.onPreferenceChange(mPreference, WPA2_PSK);
assertThat(mController.getSecurityType()).isEqualTo(WifiConfiguration.KeyMgmt.WPA2_PSK);
- assertThat(mPreference.getSummary()).isEqualTo("WPA2 PSK");
+ assertThat(mPreference.getSummary()).isEqualTo("WPA2-Personal");
mController.onPreferenceChange(mPreference, NONE);
assertThat(mController.getSecurityType()).isEqualTo(WifiConfiguration.KeyMgmt.NONE);
@@ -75,11 +75,11 @@
@Test
public void updateDisplay_preferenceUpdated() {
- // test defaulting to WPA2 PSK on new config
+ // test defaulting to WPA2-Personal on new config
when(mWifiManager.getWifiApConfiguration()).thenReturn(null);
mController.updateDisplay();
assertThat(mController.getSecurityType()).isEqualTo(WifiConfiguration.KeyMgmt.WPA2_PSK);
- assertThat(mPreference.getSummary()).isEqualTo("WPA2 PSK");
+ assertThat(mPreference.getSummary()).isEqualTo("WPA2-Personal");
// test open tether network
when(mWifiManager.getWifiApConfiguration()).thenReturn(mConfig);
@@ -89,11 +89,11 @@
assertThat(mController.getSecurityType()).isEqualTo(WifiConfiguration.KeyMgmt.NONE);
assertThat(mPreference.getSummary()).isEqualTo("None");
- // test WPA2 PSK tether network
+ // test WPA2-Personal tether network
mConfig.allowedKeyManagement.clear();
mConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA2_PSK);
mController.updateDisplay();
assertThat(mController.getSecurityType()).isEqualTo(WifiConfiguration.KeyMgmt.WPA2_PSK);
- assertThat(mPreference.getSummary()).isEqualTo("WPA2 PSK");
+ assertThat(mPreference.getSummary()).isEqualTo("WPA2-Personal");
}
}
diff --git a/tests/uitests/assets/search_results_list b/tests/uitests/assets/search_results_list
index a0cc894..6f7c513 100644
--- a/tests/uitests/assets/search_results_list
+++ b/tests/uitests/assets/search_results_list
@@ -166,7 +166,6 @@
Device security;security_category
Device theme;theme
Dial pad tones;dial_pad_tones
-Directory access;special_app_directory_access
Disable Bluetooth A2DP hardware offload;bluetooth_disable_a2dp_hw_offload
Disable HW overlays;disable_overlays
Disable USB audio routing;usb_audio
@@ -236,6 +235,7 @@
Force RTL layout direction;force_rtl_layout_all_locales
Force activities to be resizable;force_resizable_activities
Force allow apps on external;force_allow_on_external
+Force desktop mode;force_desktop_mode_on_external_displays
Force full GNSS measurements;enable_gnss_raw_meas_full_tracking
Free up space;storage_settings_free_space
Games;pref_games
@@ -620,4 +620,4 @@
;auto_brightness_video
;battery_header
;battery_tip
- ;feature_flag_category
\ No newline at end of file
+ ;feature_flag_category
diff --git a/tests/unit/src/com/android/settings/dashboard/DashboardSummaryInstrumentationTest.java b/tests/unit/src/com/android/settings/dashboard/DashboardSummaryInstrumentationTest.java
deleted file mode 100644
index c21f0c0..0000000
--- a/tests/unit/src/com/android/settings/dashboard/DashboardSummaryInstrumentationTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.dashboard;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.Instrumentation;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ActivityInfo;
-import android.provider.Settings;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.List;
-
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentActivity;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class DashboardSummaryInstrumentationTest {
-
- private static final long TIMEOUT = 2000l;
-
- private Context mContext;
- private Instrumentation mInstrumentation;
-
- private UiDevice mDevice;
-
- @Before
- public void setUp() {
- mInstrumentation = InstrumentationRegistry.getInstrumentation();
- mDevice = UiDevice.getInstance(mInstrumentation);
- mContext = InstrumentationRegistry.getTargetContext();
- }
-
- @Test
- public void rotate_shouldSaveCategoriesChangedState() {
- final Intent intent = new Intent(Settings.ACTION_SETTINGS)
- .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- final FragmentActivity activity =
- (FragmentActivity) mInstrumentation.startActivitySync(intent);
-
- activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
- activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
-
- final UiObject2 item = mDevice.wait(Until.findObject(By.res("android:id/title")
- .text("Network & internet")), TIMEOUT);
- assertThat(item).isNotNull();
-
- final List<Fragment> fragments = activity.getSupportFragmentManager().getFragments();
- final DashboardSummary fragment = (DashboardSummary) fragments.get(0);
-
- assertThat(fragment.mIsOnCategoriesChangedCalled).isTrue();
- }
-
-}
diff --git a/tests/unit/src/com/android/settings/homepage/SettingsHomepageActivityTest.java b/tests/unit/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
deleted file mode 100644
index 89ec476..0000000
--- a/tests/unit/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.homepage;
-
-import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
-
-import static com.android.settings.homepage.SettingsHomepageActivity.PERSONAL_SETTINGS_TAG;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-import android.content.Intent;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
-import android.util.FeatureFlagUtils;
-
-import androidx.fragment.app.Fragment;
-
-import com.android.settings.core.FeatureFlags;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class SettingsHomepageActivityTest {
-
- private Context mContext;
- private SettingsHomepageActivity mActivity;
-
- @Before
- public void setUp() {
- mContext = InstrumentationRegistry.getTargetContext();
- FeatureFlagUtils.setEnabled(mContext, FeatureFlags.DYNAMIC_HOMEPAGE, true);
- }
-
- @After
- public void tearDown() {
- FeatureFlagUtils.setEnabled(mContext, FeatureFlags.DYNAMIC_HOMEPAGE, false);
- }
-
- @Test
- public void launchHomepage_shouldOpenPersonalSettings() {
- final Intent intent = new Intent().setClass(mContext, SettingsHomepageActivity.class)
- .addFlags(FLAG_ACTIVITY_NEW_TASK);
-
- mActivity = (SettingsHomepageActivity) InstrumentationRegistry.getInstrumentation()
- .startActivitySync(intent);
-
- final Fragment fragment = mActivity.getSupportFragmentManager()
- .findFragmentByTag(PERSONAL_SETTINGS_TAG);
-
- assertThat(fragment).isInstanceOf(PersonalSettingsFragment.class);
- }
-
-}
diff --git a/tests/unit/src/com/android/settings/homepage/CardContentLoaderTest.java b/tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
similarity index 83%
rename from tests/unit/src/com/android/settings/homepage/CardContentLoaderTest.java
rename to tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
index 1f762bb..5bdeb8d 100644
--- a/tests/unit/src/com/android/settings/homepage/CardContentLoaderTest.java
+++ b/tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
@@ -14,11 +14,12 @@
* limitations under the License.
*/
-package com.android.settings.homepage;
+package com.android.settings.homepage.contextualcards;
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
+import android.net.Uri;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
@@ -30,15 +31,15 @@
import java.util.List;
@RunWith(AndroidJUnit4.class)
-public class CardContentLoaderTest {
+public class ContextualCardLoaderTest {
private Context mContext;
- private CardContentLoader mCardContentLoader;
+ private ContextualCardLoader mContextualCardLoader;
@Before
public void setUp() {
mContext = InstrumentationRegistry.getTargetContext();
- mCardContentLoader = new CardContentLoader(mContext);
+ mContextualCardLoader = new ContextualCardLoader(mContext);
}
@Test
@@ -52,7 +53,7 @@
cards.add(getContextualCard(sliceUri2));
cards.add(getContextualCard(sliceUri3));
- final List<ContextualCard> result = mCardContentLoader.filter(cards);
+ final List<ContextualCard> result = mContextualCardLoader.filterEligibleCards(cards);
assertThat(result).hasSize(1);
}
@@ -61,7 +62,7 @@
return new ContextualCard.Builder()
.setName("test_card")
.setCardType(ContextualCard.CardType.SLICE)
- .setSliceUri(sliceUri)
+ .setSliceUri(Uri.parse(sliceUri))
.build();
}
}