From 49cdb602ea29462c3a8bd66d31cad3f8cabcf00a Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Wed, 17 Mar 2021 13:32:32 +0800 Subject: [PATCH 01/20] [Settings] Support getSystemService(Class) Add getSystemService(Class) to align the capability with framework part. Bug: 179640862 Test: local Change-Id: I278951c2402aa8551cee37923f45626ab1830dd3 --- src/com/android/settings/SettingsPreferenceFragment.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java index 659ada4bd40..14402a791fc 100644 --- a/src/com/android/settings/SettingsPreferenceFragment.java +++ b/src/com/android/settings/SettingsPreferenceFragment.java @@ -438,6 +438,13 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF return getActivity().getSystemService(name); } + /** + * Returns the specified system service from the owning Activity. + */ + protected T getSystemService(final Class serviceClass) { + return getActivity().getSystemService(serviceClass); + } + /** * Returns the PackageManager from the owning Activity. */ From dd2654493fc627c123da20c68d0e7d520d9414e0 Mon Sep 17 00:00:00 2001 From: Bill Lin Date: Mon, 15 Mar 2021 11:20:41 +0800 Subject: [PATCH 02/20] 2/ Set Swipe bottom for notification OFF by default Note: 1) The "Swipe bottom for notification" will still available in Settings 2) If user had ever turn ON this settings, then we will NOT help user change() any setting for this purpose. Test: facory reset and observe the default function if OFF Bug: 182711813 Change-Id: I9d76c6c5c83a1dcfaaf289b5af9dcc996bb943fa --- ...ipeBottomToNotificationPreferenceController.java | 2 +- ...ottomToNotificationPreferenceControllerTest.java | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceController.java b/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceController.java index 04a32de6bd8..5eba5394388 100644 --- a/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceController.java +++ b/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceController.java @@ -76,7 +76,7 @@ public class SwipeBottomToNotificationPreferenceController extends TogglePrefere @Override public boolean isChecked() { return Settings.Secure.getInt(mContext.getContentResolver(), - SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, ON) == ON; + SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, OFF) == ON; } @Override diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceControllerTest.java index a1c0c8f5396..c6d823371a4 100644 --- a/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceControllerTest.java @@ -58,7 +58,7 @@ public class SwipeBottomToNotificationPreferenceControllerTest { mController.setChecked(true); assertThat(Settings.Secure.getInt(mContext.getContentResolver(), - SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, 1)).isEqualTo(1); + SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, 0)).isEqualTo(1); } @Test @@ -66,7 +66,7 @@ public class SwipeBottomToNotificationPreferenceControllerTest { mController.setChecked(false); assertThat(Settings.Secure.getInt(mContext.getContentResolver(), - SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, 1)).isEqualTo(0); + SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, 0)).isEqualTo(0); } @Test @@ -109,4 +109,13 @@ public class SwipeBottomToNotificationPreferenceControllerTest { assertThat(mController.getSummary()).isEqualTo( mContext.getText(R.string.gesture_setting_off)); } + + @Test + public void getDefaultConfig_returnsOffState() { + SystemProperties.set(OneHandedEnablePreferenceController.SUPPORT_ONE_HANDED_MODE, "false"); + Settings.Secure.resetToDefaults(mContext.getContentResolver(), + Settings.Secure.ONE_HANDED_MODE_ENABLED); + + assertThat(mController.isChecked()).isFalse(); + } } From db6c47756de821c27f8311aeb75f7b1f0a78e4a1 Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Sat, 20 Mar 2021 04:46:39 +0800 Subject: [PATCH 03/20] [Settings] Convert to getSystemService(Class) Change to getSystemService(Class) to align the capability with framework part. Bug: 179640862 Test: local Change-Id: I1b4812044fc4876bec6645570049a60f9470dbbd --- .../DeviceNamePreferenceController.java | 2 +- .../deviceinfo/StorageWizardMigrateConfirm.java | 2 +- .../aboutphone/MyDeviceInfoFragment.java | 4 ++-- ...irmwareVersionDetailPreferenceController.java | 2 +- .../imei/ImeiInfoPreferenceController.java | 2 +- .../simstatus/SimStatusPreferenceController.java | 6 +++--- src/com/android/settings/network/ApnEditor.java | 4 ++-- .../android/settings/network/ApnSettings.java | 4 ++-- .../EthernetTetherPreferenceController.java | 2 +- .../network/MobilePlanPreferenceController.java | 6 +++--- .../network/NetworkResetRestrictionChecker.java | 2 +- .../settings/network/NetworkScorerPicker.java | 2 +- .../NetworkScorerPickerPreferenceController.java | 2 +- .../android/settings/network/TetherEnabler.java | 8 ++++---- .../network/telephony/MobileNetworkSettings.java | 2 +- .../network/telephony/NetworkSelectSettings.java | 4 ++-- .../RenameMobileNetworkDialogFragment.java | 4 ++-- .../settings/sim/SimSelectNotification.java | 16 ++++++++-------- .../settings/vpn2/AppManagementFragment.java | 2 +- src/com/android/settings/vpn2/VpnSettings.java | 8 ++++---- .../settings/wifi/ChangeWifiStateDetails.java | 2 +- .../settings/wifi/ConfigureWifiSettings.java | 2 +- .../wifi/UseOpenWifiPreferenceController.java | 2 +- src/com/android/settings/wifi/WifiAPITest.java | 2 +- .../android/settings/wifi/WifiConfigInfo.java | 2 +- src/com/android/settings/wifi/WifiEnabler.java | 4 ++-- .../settings/wifi/WifiNoInternetDialog.java | 2 +- .../android/settings/wifi/WifiStatusTest.java | 2 +- src/com/android/settings/wifi/WifiUtils.java | 2 +- .../wifi/WifiWakeupPreferenceController.java | 2 +- .../wifi/calling/WifiCallingSettingsForSub.java | 8 ++++---- .../details2/AddDevicePreferenceController2.java | 2 +- .../details2/WifiNetworkDetailsFragment2.java | 4 ++-- .../WifiPrivacyPreferenceController2.java | 2 +- .../android/settings/wifi/dpp/WifiDppUtils.java | 4 ++-- .../wifi/p2p/WifiP2pPreferenceController.java | 2 +- .../settings/wifi/p2p/WifiP2pSettings.java | 2 +- .../android/settings/wifi/qrcode/QrCamera.java | 2 +- .../settings/wifi/tether/TetherService.java | 2 +- .../WifiTetherBasePreferenceController.java | 4 ++-- .../tether/WifiTetherPreferenceController.java | 2 +- .../settings/wifi/tether/WifiTetherSettings.java | 2 +- .../tether/WifiTetherSwitchBarController.java | 4 ++-- .../imei/ImeiInfoPreferenceControllerTest.java | 4 ++-- .../BluetoothTetherPreferenceControllerTest.java | 2 +- .../EthernetTetherPreferenceControllerTest.java | 4 ++-- .../NetworkResetRestrictionCheckerTest.java | 4 ++-- .../PrivateDnsPreferenceControllerTest.java | 2 +- .../settings/network/TetherEnablerTest.java | 6 +++--- .../UsbTetherPreferenceControllerTest.java | 2 +- ...ifiTetherDisablePreferenceControllerTest.java | 2 +- .../network/telephony/MobileDataSliceTest.java | 2 +- .../telephony/NetworkSelectSettingsTest.java | 2 +- .../wifi/NetworkRequestDialogActivityTest.java | 2 +- .../android/settings/wifi/WifiEnablerTest.java | 2 +- ...WifiMasterSwitchPreferenceControllerTest.java | 2 +- .../android/settings/wifi/WifiSettings2Test.java | 2 +- .../calling/DisclaimerItemListAdapterTest.java | 2 +- .../EmergencyCallLimitationDisclaimerTest.java | 2 +- .../calling/LocationPolicyDisclaimerTest.java | 2 +- ...WifiTetherApBandPreferenceControllerTest.java | 4 ++-- .../wifi/tether/WifiTetherSettingsTest.java | 8 ++++---- ...abledNetworkModePreferenceControllerTest.java | 2 +- .../MobileDataPreferenceControllerTest.java | 2 +- 64 files changed, 103 insertions(+), 103 deletions(-) diff --git a/src/com/android/settings/deviceinfo/DeviceNamePreferenceController.java b/src/com/android/settings/deviceinfo/DeviceNamePreferenceController.java index 6ada11b1e69..32247dadc81 100644 --- a/src/com/android/settings/deviceinfo/DeviceNamePreferenceController.java +++ b/src/com/android/settings/deviceinfo/DeviceNamePreferenceController.java @@ -55,7 +55,7 @@ public class DeviceNamePreferenceController extends BasePreferenceController public DeviceNamePreferenceController(Context context, String key) { super(context, key); - mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); + mWifiManager = context.getSystemService(WifiManager.class); mWifiDeviceNameTextValidator = new WifiDeviceNameTextValidator(); mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); diff --git a/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java b/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java index 1cae22eca90..ecd88fb5dae 100644 --- a/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java +++ b/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java @@ -115,7 +115,7 @@ public class StorageWizardMigrateConfirm extends StorageWizardBase { try { moveId = getPackageManager().movePrimaryStorage(mVolume); } catch (IllegalArgumentException e) { - StorageManager sm = (StorageManager) getSystemService(STORAGE_SERVICE); + StorageManager sm = getSystemService(StorageManager.class); if (Objects.equals(mVolume.getFsUuid(), sm.getPrimaryStorageVolume().getUuid())) { final Intent intent = new Intent(this, StorageWizardReady.class); diff --git a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java index 4af5d79c37f..fcbd5d3b769 100644 --- a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java +++ b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java @@ -146,8 +146,8 @@ public class MyDeviceInfoFragment extends DashboardFragment // TODO: There may be an avatar setting action we can use here. final int iconId = bundle.getInt("icon_id", 0); if (iconId == 0) { - final UserManager userManager = (UserManager) getActivity().getSystemService( - Context.USER_SERVICE); + final UserManager userManager = getActivity().getSystemService( + UserManager.class); final UserInfo info = Utils.getExistingUser(userManager, android.os.Process.myUserHandle()); controller.setLabel(info.name); diff --git a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDetailPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDetailPreferenceController.java index d6cf442b11c..14e86b4475d 100644 --- a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDetailPreferenceController.java +++ b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionDetailPreferenceController.java @@ -49,7 +49,7 @@ public class FirmwareVersionDetailPreferenceController extends BasePreferenceCon public FirmwareVersionDetailPreferenceController(Context context, String key) { super(context, key); - mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); + mUserManager = mContext.getSystemService(UserManager.class); initializeAdminPermissions(); } diff --git a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java index 967eea6155d..fbb29a7a981 100644 --- a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java +++ b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java @@ -49,7 +49,7 @@ public class ImeiInfoPreferenceController extends BasePreferenceController { public ImeiInfoPreferenceController(Context context, String key) { super(context, key); - mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); + mTelephonyManager = context.getSystemService(TelephonyManager.class); mIsMultiSim = mTelephonyManager.getPhoneCount() > 1; } diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java index 02c191679d1..c3917505278 100644 --- a/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java +++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java @@ -46,9 +46,9 @@ public class SimStatusPreferenceController extends public SimStatusPreferenceController(Context context, Fragment fragment) { super(context); - mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - mSubscriptionManager = (SubscriptionManager) context.getSystemService( - Context.TELEPHONY_SUBSCRIPTION_SERVICE); + mTelephonyManager = context.getSystemService(TelephonyManager.class); + mSubscriptionManager = context.getSystemService( + SubscriptionManager.class); mFragment = fragment; } diff --git a/src/com/android/settings/network/ApnEditor.java b/src/com/android/settings/network/ApnEditor.java index a852fd69ed9..7110b97a770 100644 --- a/src/com/android/settings/network/ApnEditor.java +++ b/src/com/android/settings/network/ApnEditor.java @@ -1285,8 +1285,8 @@ public class ApnEditor extends SettingsPreferenceFragment mReadOnlyApnTypes = null; mReadOnlyApnFields = null; - final CarrierConfigManager configManager = (CarrierConfigManager) - getSystemService(Context.CARRIER_CONFIG_SERVICE); + final CarrierConfigManager configManager = + getSystemService(CarrierConfigManager.class); if (configManager != null) { final PersistableBundle b = configManager.getConfigForSubId(mSubId); if (b != null) { diff --git a/src/com/android/settings/network/ApnSettings.java b/src/com/android/settings/network/ApnSettings.java index f7617fc1fd0..71f7f766a50 100755 --- a/src/com/android/settings/network/ApnSettings.java +++ b/src/com/android/settings/network/ApnSettings.java @@ -206,8 +206,8 @@ public class ApnSettings extends RestrictedSettingsFragment mSubscriptionInfo = getSubscriptionInfo(mSubId); mTelephonyManager = activity.getSystemService(TelephonyManager.class); - final CarrierConfigManager configManager = (CarrierConfigManager) - getSystemService(Context.CARRIER_CONFIG_SERVICE); + final CarrierConfigManager configManager = + getSystemService(CarrierConfigManager.class); final PersistableBundle b = configManager.getConfigForSubId(mSubId); mHideImsApn = b.getBoolean(CarrierConfigManager.KEY_HIDE_IMS_APN_BOOL); mAllowAddingApns = b.getBoolean(CarrierConfigManager.KEY_ALLOW_ADDING_APNS_BOOL); diff --git a/src/com/android/settings/network/EthernetTetherPreferenceController.java b/src/com/android/settings/network/EthernetTetherPreferenceController.java index 06cd6a7feed..3559edb948f 100644 --- a/src/com/android/settings/network/EthernetTetherPreferenceController.java +++ b/src/com/android/settings/network/EthernetTetherPreferenceController.java @@ -43,7 +43,7 @@ public final class EthernetTetherPreferenceController extends TetherBasePreferen super(context, preferenceKey); mEthernetRegex = context.getString( com.android.internal.R.string.config_ethernet_iface_regex); - mEthernetManager = (EthernetManager) context.getSystemService(Context.ETHERNET_SERVICE); + mEthernetManager = context.getSystemService(EthernetManager.class); } @OnLifecycleEvent(Lifecycle.Event.ON_START) diff --git a/src/com/android/settings/network/MobilePlanPreferenceController.java b/src/com/android/settings/network/MobilePlanPreferenceController.java index d8963ad9374..65439bc2065 100644 --- a/src/com/android/settings/network/MobilePlanPreferenceController.java +++ b/src/com/android/settings/network/MobilePlanPreferenceController.java @@ -73,9 +73,9 @@ public class MobilePlanPreferenceController extends AbstractPreferenceController MobilePlanPreferenceHost host) { super(context); mHost = host; - mCm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - mTm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE); + mCm = context.getSystemService(ConnectivityManager.class); + mTm = context.getSystemService(TelephonyManager.class); + mUserManager = context.getSystemService(UserManager.class); mIsSecondaryUser = !mUserManager.isAdminUser(); } diff --git a/src/com/android/settings/network/NetworkResetRestrictionChecker.java b/src/com/android/settings/network/NetworkResetRestrictionChecker.java index 46227f9f5a0..c873f9dffae 100644 --- a/src/com/android/settings/network/NetworkResetRestrictionChecker.java +++ b/src/com/android/settings/network/NetworkResetRestrictionChecker.java @@ -31,7 +31,7 @@ public class NetworkResetRestrictionChecker { public NetworkResetRestrictionChecker(Context context) { mContext = context; - mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE); + mUserManager = context.getSystemService(UserManager.class); } @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) diff --git a/src/com/android/settings/network/NetworkScorerPicker.java b/src/com/android/settings/network/NetworkScorerPicker.java index 9ecab3bfb6f..011cf054d0b 100644 --- a/src/com/android/settings/network/NetworkScorerPicker.java +++ b/src/com/android/settings/network/NetworkScorerPicker.java @@ -140,6 +140,6 @@ public class NetworkScorerPicker extends InstrumentedPreferenceFragment implemen @VisibleForTesting NetworkScoreManager createNetworkScorerManager(Context context) { - return (NetworkScoreManager) context.getSystemService(Context.NETWORK_SCORE_SERVICE); + return context.getSystemService(NetworkScoreManager.class); } } diff --git a/src/com/android/settings/network/NetworkScorerPickerPreferenceController.java b/src/com/android/settings/network/NetworkScorerPickerPreferenceController.java index 4b452c01c15..2abe3901c40 100644 --- a/src/com/android/settings/network/NetworkScorerPickerPreferenceController.java +++ b/src/com/android/settings/network/NetworkScorerPickerPreferenceController.java @@ -37,7 +37,7 @@ public class NetworkScorerPickerPreferenceController extends BasePreferenceContr public NetworkScorerPickerPreferenceController(Context context, String key) { super(context, key); mNetworkScoreManager = - (NetworkScoreManager) mContext.getSystemService(Context.NETWORK_SCORE_SERVICE); + mContext.getSystemService(NetworkScoreManager.class); } @Override diff --git a/src/com/android/settings/network/TetherEnabler.java b/src/com/android/settings/network/TetherEnabler.java index 447508584ae..d001456d280 100644 --- a/src/com/android/settings/network/TetherEnabler.java +++ b/src/com/android/settings/network/TetherEnabler.java @@ -128,10 +128,10 @@ public class TetherEnabler implements SwitchWidgetController.OnSwitchChangeListe mSwitchWidgetController = switchWidgetController; mDataSaverBackend = new DataSaverBackend(context); mConnectivityManager = - (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - mTetheringManager = (TetheringManager) context.getSystemService(Context.TETHERING_SERVICE); - mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); - mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE); + context.getSystemService(ConnectivityManager.class); + mTetheringManager = context.getSystemService(TetheringManager.class); + mWifiManager = context.getSystemService(WifiManager.class); + mUserManager = context.getSystemService(UserManager.class); mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); mBluetoothPan = bluetoothPan; mEthernetRegex = diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java index 528e5c7788b..36073e18bf8 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkSettings.java +++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java @@ -194,7 +194,7 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings { super.onCreate(icicle); final Context context = getContext(); - mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE); + mUserManager = context.getSystemService(UserManager.class); mTelephonyManager = context.getSystemService(TelephonyManager.class) .createForSubscriptionId(mSubId); diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java index c8121c491be..588d828980a 100644 --- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java +++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java @@ -106,8 +106,8 @@ public class NetworkSelectSettings extends DashboardFragment { .createForSubscriptionId(mSubId); mNetworkScanHelper = new NetworkScanHelper( mTelephonyManager, mCallback, mNetworkScanExecutor); - PersistableBundle bundle = ((CarrierConfigManager) getContext().getSystemService( - Context.CARRIER_CONFIG_SERVICE)).getConfigForSubId(mSubId); + PersistableBundle bundle = (getContext().getSystemService( + CarrierConfigManager.class)).getConfigForSubId(mSubId); if (bundle != null) { mShow4GForLTE = bundle.getBoolean( CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL); diff --git a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java index abcf621d7c6..1aacfff8ccc 100644 --- a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java +++ b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java @@ -190,8 +190,8 @@ public class RenameMobileNetworkDialogFragment extends InstrumentedDialogFragmen @Override public View getView(int position, View convertView, ViewGroup parent) { - final LayoutInflater inflater = (LayoutInflater) - mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + final LayoutInflater inflater = + mContext.getSystemService(LayoutInflater.class); if (convertView == null) { convertView = inflater.inflate(mItemResId, null); diff --git a/src/com/android/settings/sim/SimSelectNotification.java b/src/com/android/settings/sim/SimSelectNotification.java index 8d5a3e05c44..0c98f90a111 100644 --- a/src/com/android/settings/sim/SimSelectNotification.java +++ b/src/com/android/settings/sim/SimSelectNotification.java @@ -104,8 +104,8 @@ public class SimSelectNotification extends BroadcastReceiver { subId = SubscriptionManager.getDefaultSmsSubscriptionId(); } - SubscriptionManager subscriptionManager = ((SubscriptionManager) context.getSystemService( - Context.TELEPHONY_SUBSCRIPTION_SERVICE)); + SubscriptionManager subscriptionManager = (context.getSystemService( + SubscriptionManager.class)); if (!subscriptionManager.isActiveSubscriptionId(subId)) { Log.w(TAG, "onEnableMmsDataRequest invalid sub ID " + subId); return; @@ -130,8 +130,8 @@ public class SimSelectNotification extends BroadcastReceiver { return; } - TelephonyManager tm = ((TelephonyManager) context.getSystemService( - Context.TELEPHONY_SERVICE)).createForSubscriptionId(subId); + TelephonyManager tm = (context.getSystemService( + TelephonyManager.class)).createForSubscriptionId(subId); if (tm.isDataEnabledForApn(TYPE_MMS)) { Log.w(TAG, "onEnableMmsDataRequest MMS data already enabled on sub ID " + subId); @@ -229,14 +229,14 @@ public class SimSelectNotification extends BroadcastReceiver { PendingIntent.FLAG_CANCEL_CURRENT); builder.setContentIntent(resultPendingIntent); NotificationManager notificationManager = - (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + context.getSystemService(NotificationManager.class); notificationManager.createNotificationChannel(notificationChannel); notificationManager.notify(SIM_SELECT_NOTIFICATION_ID, builder.build()); } public static void cancelSimSelectNotification(Context context) { NotificationManager notificationManager = - (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + context.getSystemService(NotificationManager.class); notificationManager.cancel(SIM_SELECT_NOTIFICATION_ID); } @@ -269,14 +269,14 @@ public class SimSelectNotification extends BroadcastReceiver { // Notify the notification. NotificationManager notificationManager = - (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + context.getSystemService(NotificationManager.class); notificationManager.createNotificationChannel(notificationChannel); notificationManager.notify(ENABLE_MMS_NOTIFICATION_ID, builder.build()); } private void cancelEnableMmsNotification(Context context) { NotificationManager notificationManager = - (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + context.getSystemService(NotificationManager.class); notificationManager.cancel(ENABLE_MMS_NOTIFICATION_ID); } diff --git a/src/com/android/settings/vpn2/AppManagementFragment.java b/src/com/android/settings/vpn2/AppManagementFragment.java index 0543fee7dbe..4543f3faac9 100644 --- a/src/com/android/settings/vpn2/AppManagementFragment.java +++ b/src/com/android/settings/vpn2/AppManagementFragment.java @@ -319,7 +319,7 @@ public class AppManagementFragment extends SettingsPreferenceFragment @VisibleForTesting static boolean appHasVpnPermission(Context context, @NonNull ApplicationInfo application) { final AppOpsManager service = - (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); + context.getSystemService(AppOpsManager.class); final List ops = service.getOpsForPackage(application.uid, application.packageName, new int[]{OP_ACTIVATE_VPN, OP_ACTIVATE_PLATFORM_VPN}); return !ArrayUtils.isEmpty(ops); diff --git a/src/com/android/settings/vpn2/VpnSettings.java b/src/com/android/settings/vpn2/VpnSettings.java index 7635733d77f..0b6fa911e2a 100644 --- a/src/com/android/settings/vpn2/VpnSettings.java +++ b/src/com/android/settings/vpn2/VpnSettings.java @@ -116,9 +116,9 @@ public class VpnSettings extends RestrictedSettingsFragment implements public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - mUserManager = (UserManager) getSystemService(Context.USER_SERVICE); - mConnectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); - mVpnManager = (VpnManager) getSystemService(Context.VPN_MANAGEMENT_SERVICE); + mUserManager = getSystemService(UserManager.class); + mConnectivityManager = getSystemService(ConnectivityManager.class); + mVpnManager = getSystemService(VpnManager.class); mUnavailable = isUiRestricted(); setHasOptionsMenu(!mUnavailable); @@ -509,7 +509,7 @@ public class VpnSettings extends RestrictedSettingsFragment implements } // Fetch VPN-enabled apps from AppOps. - AppOpsManager aom = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); + AppOpsManager aom = context.getSystemService(AppOpsManager.class); List apps = aom.getPackagesForOps(new int[] {OP_ACTIVATE_VPN, OP_ACTIVATE_PLATFORM_VPN}); if (apps != null) { diff --git a/src/com/android/settings/wifi/ChangeWifiStateDetails.java b/src/com/android/settings/wifi/ChangeWifiStateDetails.java index 9841615a690..4e3e62eb11c 100644 --- a/src/com/android/settings/wifi/ChangeWifiStateDetails.java +++ b/src/com/android/settings/wifi/ChangeWifiStateDetails.java @@ -49,7 +49,7 @@ public class ChangeWifiStateDetails extends AppInfoWithHeader super.onCreate(savedInstanceState); final Context context = getActivity(); mAppBridge = new AppStateChangeWifiStateBridge(context, mState, null); - mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); + mAppOpsManager = context.getSystemService(AppOpsManager.class); // find preferences addPreferencesFromResource(R.xml.change_wifi_state_details); diff --git a/src/com/android/settings/wifi/ConfigureWifiSettings.java b/src/com/android/settings/wifi/ConfigureWifiSettings.java index 3009ae72f83..c913a8d5eb4 100644 --- a/src/com/android/settings/wifi/ConfigureWifiSettings.java +++ b/src/com/android/settings/wifi/ConfigureWifiSettings.java @@ -68,7 +68,7 @@ public class ConfigureWifiSettings extends DashboardFragment { @Override protected List createPreferenceControllers(Context context) { - final WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); + final WifiManager wifiManager = getSystemService(WifiManager.class); final List controllers = new ArrayList<>(); controllers.add(new WifiP2pPreferenceController(context, getSettingsLifecycle(), wifiManager)); diff --git a/src/com/android/settings/wifi/UseOpenWifiPreferenceController.java b/src/com/android/settings/wifi/UseOpenWifiPreferenceController.java index 44114e5aa75..5fa4dfb4e66 100644 --- a/src/com/android/settings/wifi/UseOpenWifiPreferenceController.java +++ b/src/com/android/settings/wifi/UseOpenWifiPreferenceController.java @@ -51,7 +51,7 @@ public class UseOpenWifiPreferenceController extends TogglePreferenceController super(context, KEY_USE_OPEN_WIFI_AUTOMATICALLY); mContentResolver = context.getContentResolver(); mNetworkScoreManager = - (NetworkScoreManager) context.getSystemService(Context.NETWORK_SCORE_SERVICE); + context.getSystemService(NetworkScoreManager.class); mSettingObserver = new SettingObserver(); updateEnableUseWifiComponentName(); checkForFeatureSupportedScorers(); diff --git a/src/com/android/settings/wifi/WifiAPITest.java b/src/com/android/settings/wifi/WifiAPITest.java index 15465edb04b..498539d9d6d 100644 --- a/src/com/android/settings/wifi/WifiAPITest.java +++ b/src/com/android/settings/wifi/WifiAPITest.java @@ -64,7 +64,7 @@ public class WifiAPITest extends SettingsPreferenceFragment implements public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - mWifiManager = (WifiManager) getSystemService(WIFI_SERVICE); + mWifiManager = getSystemService(WifiManager.class); } @Override diff --git a/src/com/android/settings/wifi/WifiConfigInfo.java b/src/com/android/settings/wifi/WifiConfigInfo.java index 0de306396a2..18ac2e57cd5 100644 --- a/src/com/android/settings/wifi/WifiConfigInfo.java +++ b/src/com/android/settings/wifi/WifiConfigInfo.java @@ -38,7 +38,7 @@ public class WifiConfigInfo extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - mWifiManager = (WifiManager) getSystemService(WIFI_SERVICE); + mWifiManager = getSystemService(WifiManager.class); setContentView(R.layout.wifi_config_info); mConfigList = (TextView) findViewById(R.id.config_list); } diff --git a/src/com/android/settings/wifi/WifiEnabler.java b/src/com/android/settings/wifi/WifiEnabler.java index dc5be4209a8..ba1ee3c2347 100644 --- a/src/com/android/settings/wifi/WifiEnabler.java +++ b/src/com/android/settings/wifi/WifiEnabler.java @@ -75,7 +75,7 @@ public class WifiEnabler implements SwitchWidgetController.OnSwitchChangeListene public WifiEnabler(Context context, SwitchWidgetController switchWidget, MetricsFeatureProvider metricsFeatureProvider) { this(context, switchWidget, metricsFeatureProvider, - (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)); + context.getSystemService(ConnectivityManager.class)); } @VisibleForTesting @@ -86,7 +86,7 @@ public class WifiEnabler implements SwitchWidgetController.OnSwitchChangeListene mSwitchWidget = switchWidget; mSwitchWidget.setListener(this); mMetricsFeatureProvider = metricsFeatureProvider; - mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); + mWifiManager = context.getSystemService(WifiManager.class); mConnectivityManager = connectivityManager; mIntentFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION); diff --git a/src/com/android/settings/wifi/WifiNoInternetDialog.java b/src/com/android/settings/wifi/WifiNoInternetDialog.java index 10f4c798a54..5bd9a2627e5 100644 --- a/src/com/android/settings/wifi/WifiNoInternetDialog.java +++ b/src/com/android/settings/wifi/WifiNoInternetDialog.java @@ -102,7 +102,7 @@ public final class WifiNoInternetDialog extends AlertActivity implements } }; - mCM = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + mCM = getSystemService(ConnectivityManager.class); mCM.registerNetworkCallback(request, mNetworkCallback); final NetworkInfo ni = mCM.getNetworkInfo(mNetwork); diff --git a/src/com/android/settings/wifi/WifiStatusTest.java b/src/com/android/settings/wifi/WifiStatusTest.java index 249cd710fd6..06242e3575b 100644 --- a/src/com/android/settings/wifi/WifiStatusTest.java +++ b/src/com/android/settings/wifi/WifiStatusTest.java @@ -116,7 +116,7 @@ public class WifiStatusTest extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - mWifiManager = (WifiManager) getSystemService(WIFI_SERVICE); + mWifiManager = getSystemService(WifiManager.class); mWifiStateFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION); mWifiStateFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); diff --git a/src/com/android/settings/wifi/WifiUtils.java b/src/com/android/settings/wifi/WifiUtils.java index 2214605e774..04bf00233c8 100644 --- a/src/com/android/settings/wifi/WifiUtils.java +++ b/src/com/android/settings/wifi/WifiUtils.java @@ -83,7 +83,7 @@ public class WifiUtils { final DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); final PackageManager pm = context.getPackageManager(); - final UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE); + final UserManager um = context.getSystemService(UserManager.class); // Check if device has DPM capability. If it has and dpm is still null, then we // treat this case with suspicion and bail out. diff --git a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java index e9fd35004da..3aa62b97a64 100644 --- a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java +++ b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java @@ -73,7 +73,7 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i public WifiWakeupPreferenceController(Context context) { super(context, KEY_ENABLE_WIFI_WAKEUP); - mLocationManager = (LocationManager) context.getSystemService(Service.LOCATION_SERVICE); + mLocationManager = context.getSystemService(LocationManager.class); mWifiManager = context.getSystemService(WifiManager.class); } diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java index 735fecc9c9a..286e04e3e76 100644 --- a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java +++ b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java @@ -124,8 +124,8 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment boolean isWfcModeEditable = true; boolean isWfcRoamingModeEditable = false; - final CarrierConfigManager configManager = (CarrierConfigManager) - activity.getSystemService(Context.CARRIER_CONFIG_SERVICE); + final CarrierConfigManager configManager = + activity.getSystemService(CarrierConfigManager.class); if (configManager != null) { PersistableBundle b = configManager.getConfigForSubId(WifiCallingSettingsForSub.this.mSubId); @@ -340,8 +340,8 @@ public class WifiCallingSettingsForSub extends SettingsPreferenceFragment return; } - final CarrierConfigManager configManager = (CarrierConfigManager) - getSystemService(Context.CARRIER_CONFIG_SERVICE); + final CarrierConfigManager configManager = + getSystemService(CarrierConfigManager.class); boolean isWifiOnlySupported = true; if (configManager != null) { diff --git a/src/com/android/settings/wifi/details2/AddDevicePreferenceController2.java b/src/com/android/settings/wifi/details2/AddDevicePreferenceController2.java index 8f9741a6b34..9ab64c7a661 100644 --- a/src/com/android/settings/wifi/details2/AddDevicePreferenceController2.java +++ b/src/com/android/settings/wifi/details2/AddDevicePreferenceController2.java @@ -42,7 +42,7 @@ public class AddDevicePreferenceController2 extends BasePreferenceController { public AddDevicePreferenceController2(Context context) { super(context, KEY_ADD_DEVICE); - mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); + mWifiManager = context.getSystemService(WifiManager.class); } public void setWifiEntry(WifiEntry wifiEntry) { diff --git a/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java b/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java index d0708eababf..6279dff246f 100644 --- a/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java +++ b/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java @@ -140,8 +140,8 @@ public class WifiNetworkDetailsFragment2 extends DashboardFragment implements if (admin == null) { final DevicePolicyManager dpm = (DevicePolicyManager) getContext().getSystemService(Context.DEVICE_POLICY_SERVICE); - final UserManager um = (UserManager) - getContext().getSystemService(Context.USER_SERVICE); + final UserManager um = + getContext().getSystemService(UserManager.class); final int profileOwnerUserId = Utils.getManagedProfileId( um, UserHandle.myUserId()); if (profileOwnerUserId != UserHandle.USER_NULL) { diff --git a/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java index c4849225641..72a23615249 100644 --- a/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java +++ b/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java @@ -45,7 +45,7 @@ public class WifiPrivacyPreferenceController2 extends BasePreferenceController i public WifiPrivacyPreferenceController2(Context context) { super(context, KEY_WIFI_PRIVACY); - mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); + mWifiManager = context.getSystemService(WifiManager.class); } public void setWifiEntry(WifiEntry wifiEntry) { diff --git a/src/com/android/settings/wifi/dpp/WifiDppUtils.java b/src/com/android/settings/wifi/dpp/WifiDppUtils.java index 71301d55141..02854ee2351 100644 --- a/src/com/android/settings/wifi/dpp/WifiDppUtils.java +++ b/src/com/android/settings/wifi/dpp/WifiDppUtils.java @@ -403,8 +403,8 @@ public class WifiDppUtils { * device security or if lock screen is unlocked */ public static void showLockScreen(Context context, Runnable successRunnable) { - final KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService( - Context.KEYGUARD_SERVICE); + final KeyguardManager keyguardManager = context.getSystemService( + KeyguardManager.class); if (keyguardManager.isKeyguardSecure()) { final BiometricPrompt.AuthenticationCallback authenticationCallback = diff --git a/src/com/android/settings/wifi/p2p/WifiP2pPreferenceController.java b/src/com/android/settings/wifi/p2p/WifiP2pPreferenceController.java index 96044100647..8696bef2a62 100644 --- a/src/com/android/settings/wifi/p2p/WifiP2pPreferenceController.java +++ b/src/com/android/settings/wifi/p2p/WifiP2pPreferenceController.java @@ -71,7 +71,7 @@ public class WifiP2pPreferenceController extends AbstractPreferenceController super(context); mWifiManager = wifiManager; lifecycle.addObserver(this); - mLocationManager = (LocationManager) context.getSystemService(Service.LOCATION_SERVICE); + mLocationManager = context.getSystemService(LocationManager.class); } @Override diff --git a/src/com/android/settings/wifi/p2p/WifiP2pSettings.java b/src/com/android/settings/wifi/p2p/WifiP2pSettings.java index 9578c802ab0..0aac0bb46dc 100644 --- a/src/com/android/settings/wifi/p2p/WifiP2pSettings.java +++ b/src/com/android/settings/wifi/p2p/WifiP2pSettings.java @@ -200,7 +200,7 @@ public class WifiP2pSettings extends DashboardFragment public void onActivityCreated(Bundle savedInstanceState) { final Activity activity = getActivity(); if (mWifiP2pManager == null) { - mWifiP2pManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE); + mWifiP2pManager = getSystemService(WifiP2pManager.class); } if (mWifiP2pManager != null) { diff --git a/src/com/android/settings/wifi/qrcode/QrCamera.java b/src/com/android/settings/wifi/qrcode/QrCamera.java index 3865eb1f116..274655d45d4 100644 --- a/src/com/android/settings/wifi/qrcode/QrCamera.java +++ b/src/com/android/settings/wifi/qrcode/QrCamera.java @@ -202,7 +202,7 @@ public class QrCamera extends Handler { } final WindowManager winManager = - (WindowManager) mContext.get().getSystemService(Context.WINDOW_SERVICE); + mContext.get().getSystemService(WindowManager.class); final int rotation = winManager.getDefaultDisplay().getRotation(); int degrees = 0; switch (rotation) { diff --git a/src/com/android/settings/wifi/tether/TetherService.java b/src/com/android/settings/wifi/tether/TetherService.java index 59027193ed5..a3321bb27c7 100644 --- a/src/com/android/settings/wifi/tether/TetherService.java +++ b/src/com/android/settings/wifi/tether/TetherService.java @@ -255,7 +255,7 @@ public class TetherService extends Service { } private void disableTethering(final int tetheringType) { - final TetheringManager tm = (TetheringManager) getSystemService(Context.TETHERING_SERVICE); + final TetheringManager tm = getSystemService(TetheringManager.class); tm.stopTethering(tetheringType); } diff --git a/src/com/android/settings/wifi/tether/WifiTetherBasePreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherBasePreferenceController.java index 46da097959c..a950dc312cd 100644 --- a/src/com/android/settings/wifi/tether/WifiTetherBasePreferenceController.java +++ b/src/com/android/settings/wifi/tether/WifiTetherBasePreferenceController.java @@ -45,8 +45,8 @@ public abstract class WifiTetherBasePreferenceController extends AbstractPrefere OnTetherConfigUpdateListener listener) { super(context); mListener = listener; - mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); - mTm = (TetheringManager) context.getSystemService(Context.TETHERING_SERVICE); + mWifiManager = context.getSystemService(WifiManager.class); + mTm = context.getSystemService(TetheringManager.class); mWifiRegexs = mTm.getTetherableWifiRegexs(); } diff --git a/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java index 70b6a45eb52..1fa41b2f359 100644 --- a/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java +++ b/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java @@ -63,7 +63,7 @@ public class WifiTetherPreferenceController extends AbstractPreferenceController boolean initSoftApManager) { super(context); mTetheringManager = context.getSystemService(TetheringManager.class); - mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); + mWifiManager = context.getSystemService(WifiManager.class); mWifiRegexs = mTetheringManager.getTetherableWifiRegexs(); mLifecycle = lifecycle; if (lifecycle != null) { diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java index 2b201b17246..19baa4472cf 100644 --- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java +++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java @@ -110,7 +110,7 @@ public class WifiTetherSettings extends RestrictedDashboardFragment @Override public void onAttach(Context context) { super.onAttach(context); - mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); + mWifiManager = context.getSystemService(WifiManager.class); mTetherChangeReceiver = new TetherChangeReceiver(); mSSIDPreferenceController = use(WifiTetherSSIDPreferenceController.class); diff --git a/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java b/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java index 912fb8c4864..635367dc8d2 100644 --- a/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java +++ b/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java @@ -73,8 +73,8 @@ public class WifiTetherSwitchBarController implements mSwitch = mSwitchBar.getSwitch(); mDataSaverBackend = new DataSaverBackend(context); mConnectivityManager = - (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); + context.getSystemService(ConnectivityManager.class); + mWifiManager = context.getSystemService(WifiManager.class); mSwitchBar.setChecked(mWifiManager.getWifiApState() == WifiManager.WIFI_AP_STATE_ENABLED); updateWifiSwitch(); } diff --git a/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java index 997c35e19e5..60eab127d3f 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java @@ -181,8 +181,8 @@ public class ImeiInfoPreferenceControllerTest { mController.copy(); - final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService( - CLIPBOARD_SERVICE); + final ClipboardManager clipboard = mContext.getSystemService( + ClipboardManager.class); final CharSequence data = clipboard.getPrimaryClip().getItemAt(0).getText(); assertThat(data.toString()).isEqualTo(meid); } diff --git a/tests/robotests/src/com/android/settings/network/BluetoothTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/BluetoothTetherPreferenceControllerTest.java index d3a3129f4a2..53dd95917ff 100644 --- a/tests/robotests/src/com/android/settings/network/BluetoothTetherPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/BluetoothTetherPreferenceControllerTest.java @@ -57,7 +57,7 @@ public class BluetoothTetherPreferenceControllerTest { mContext = spy(ApplicationProvider.getApplicationContext()); mSwitchPreference = spy(SwitchPreference.class); - when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager); + when(mContext.getSystemService(TetheringManager.class)).thenReturn(mTetheringManager); when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[] {""}); mController = new BluetoothTetherPreferenceController(mContext, "BLUETOOTH"); mController.setTetherEnabler(mTetherEnabler); diff --git a/tests/robotests/src/com/android/settings/network/EthernetTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/EthernetTetherPreferenceControllerTest.java index 8a819087296..de642f65ab1 100644 --- a/tests/robotests/src/com/android/settings/network/EthernetTetherPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/EthernetTetherPreferenceControllerTest.java @@ -62,9 +62,9 @@ public class EthernetTetherPreferenceControllerTest { public void setUp() { mContext = spy(ApplicationProvider.getApplicationContext()); mPreference = spy(SwitchPreference.class); - when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager); + when(mContext.getSystemService(TetheringManager.class)).thenReturn(mTetheringManager); when(mTetheringManager.getTetherableIfaces()).thenReturn(new String[]{ETHERNET_REGEX}); - when(mContext.getSystemService(Context.ETHERNET_SERVICE)).thenReturn(mEthernetManager); + when(mContext.getSystemService(EthernetManager.class)).thenReturn(mEthernetManager); mController = new EthernetTetherPreferenceController(mContext, "ethernet"); mController.setTetherEnabler(mTetherEnabler); ReflectionHelpers.setField(mController, "mEthernetRegex", ETHERNET_REGEX); diff --git a/tests/robotests/src/com/android/settings/network/NetworkResetRestrictionCheckerTest.java b/tests/robotests/src/com/android/settings/network/NetworkResetRestrictionCheckerTest.java index 8996c1d24a2..293b6493a5a 100644 --- a/tests/robotests/src/com/android/settings/network/NetworkResetRestrictionCheckerTest.java +++ b/tests/robotests/src/com/android/settings/network/NetworkResetRestrictionCheckerTest.java @@ -45,14 +45,14 @@ public class NetworkResetRestrictionCheckerTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); - when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager); + when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager); mRestrictionChecker = spy(new NetworkResetRestrictionChecker(mContext)); } @Test public void testHasRestriction_notAdmin_shouldReturnTrue() { final Context context = mock(Context.class); - when(context.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager); + when(context.getSystemService(UserManager.class)).thenReturn(mUserManager); when(mUserManager.isAdminUser()).thenReturn(false); assertThat(mRestrictionChecker.hasRestriction()).isTrue(); diff --git a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java index 390a6744d1d..fce95178567 100644 --- a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java @@ -125,7 +125,7 @@ public class PrivateDnsPreferenceControllerTest { mContext = spy(RuntimeEnvironment.application); mContentResolver = mContext.getContentResolver(); mShadowContentResolver = Shadow.extract(mContentResolver); - when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)) + when(mContext.getSystemService(ConnectivityManager.class)) .thenReturn(mConnectivityManager); doNothing().when(mConnectivityManager).registerDefaultNetworkCallback( mCallbackCaptor.capture(), nullable(Handler.class)); diff --git a/tests/robotests/src/com/android/settings/network/TetherEnablerTest.java b/tests/robotests/src/com/android/settings/network/TetherEnablerTest.java index bb4b0c41492..7f9ed9a21d2 100644 --- a/tests/robotests/src/com/android/settings/network/TetherEnablerTest.java +++ b/tests/robotests/src/com/android/settings/network/TetherEnablerTest.java @@ -95,10 +95,10 @@ public class TetherEnablerTest { AtomicReference panReference = spy(AtomicReference.class); mSwitchBar = spy(new SwitchBar(context)); mSwitchWidgetController = spy(new SwitchBarController(mSwitchBar)); - when(context.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager); - when(context.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn( + when(context.getSystemService(WifiManager.class)).thenReturn(mWifiManager); + when(context.getSystemService(ConnectivityManager.class)).thenReturn( mConnectivityManager); - when(context.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager); + when(context.getSystemService(TetheringManager.class)).thenReturn(mTetheringManager); when(context.getSystemService(Context.NETWORK_POLICY_SERVICE)).thenReturn( mNetworkPolicyManager); when(mTetheringManager.getTetherableIfaces()).thenReturn(new String[0]); diff --git a/tests/robotests/src/com/android/settings/network/UsbTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/UsbTetherPreferenceControllerTest.java index e02da9002a9..0639ef320c0 100644 --- a/tests/robotests/src/com/android/settings/network/UsbTetherPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/UsbTetherPreferenceControllerTest.java @@ -55,7 +55,7 @@ public class UsbTetherPreferenceControllerTest { MockitoAnnotations.initMocks(this); mContext = spy(ApplicationProvider.getApplicationContext()); - when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager); + when(mContext.getSystemService(TetheringManager.class)).thenReturn(mTetheringManager); when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[]{""}); mController = new UsbTetherPreferenceController(mContext, "USB"); mController.setTetherEnabler(mTetherEnabler); diff --git a/tests/robotests/src/com/android/settings/network/WifiTetherDisablePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/WifiTetherDisablePreferenceControllerTest.java index a82a71f18f5..22ed55cbd90 100644 --- a/tests/robotests/src/com/android/settings/network/WifiTetherDisablePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/WifiTetherDisablePreferenceControllerTest.java @@ -100,7 +100,7 @@ public class WifiTetherDisablePreferenceControllerTest { mContext = spy(ApplicationProvider.getApplicationContext()); mPreference = spy(SwitchPreference.class); - when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager); + when(mContext.getSystemService(TetheringManager.class)).thenReturn(mTetheringManager); when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{""}); mController = new WifiTetherDisablePreferenceController(mContext, WIFI_TETHER_DISABLE_KEY); mController.setTetherEnabler(mTetherEnabler); diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java index ba37c30389a..acc6b1a2967 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java @@ -74,7 +74,7 @@ public class MobileDataSliceTest { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); - doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE); + doReturn(mTelephonyManager).when(mContext).getSystemService(TelephonyManager.class); doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class); doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID); doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(anyInt()); diff --git a/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java b/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java index 6bee38fba9e..0d864080eb7 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java @@ -77,7 +77,7 @@ public class NetworkSelectSettingsTest { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); - when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager); + when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager); diff --git a/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogActivityTest.java b/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogActivityTest.java index ecf9c68c649..66cc56a2ce6 100644 --- a/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogActivityTest.java +++ b/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogActivityTest.java @@ -66,7 +66,7 @@ public class NetworkRequestDialogActivityTest { mActivity = spy(activity); mWifiManager = mock(WifiManager.class); - when(mActivity.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager); + when(mActivity.getSystemService(WifiManager.class)).thenReturn(mWifiManager); } @Test diff --git a/tests/robotests/src/com/android/settings/wifi/WifiEnablerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiEnablerTest.java index 65cc8111e36..2475d807f94 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiEnablerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiEnablerTest.java @@ -53,7 +53,7 @@ public class WifiEnablerTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); - when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager); + when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager); mEnabler = new WifiEnabler(mContext, mock(SwitchWidgetController.class), mock(MetricsFeatureProvider.class), mConnectivityManager); } diff --git a/tests/robotests/src/com/android/settings/wifi/WifiMasterSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiMasterSwitchPreferenceControllerTest.java index 1d13232345e..60d6b4d35c7 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiMasterSwitchPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiMasterSwitchPreferenceControllerTest.java @@ -78,7 +78,7 @@ public class WifiMasterSwitchPreferenceControllerTest { when(mContext.getSystemService(NetworkScoreManager.class)).thenReturn(mNetworkScoreManager); mController = new WifiMasterSwitchPreferenceController(mContext, mMetricsFeatureProvider); when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); - when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager); + when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager); when(mWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED); } diff --git a/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java index b2a28db8dce..c410df62f9e 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java @@ -209,7 +209,7 @@ public class WifiSettings2Test { final Resources.Theme theme = mContext.getTheme(); when(activity.getTheme()).thenReturn(theme); UserManager userManager = mock(UserManager.class); - when(activity.getSystemService(Context.USER_SERVICE)) + when(activity.getSystemService(UserManager.class)) .thenReturn(userManager); when(mWifiSettings2.findPreference(WifiSettings2.PREF_KEY_DATA_USAGE)) diff --git a/tests/robotests/src/com/android/settings/wifi/calling/DisclaimerItemListAdapterTest.java b/tests/robotests/src/com/android/settings/wifi/calling/DisclaimerItemListAdapterTest.java index 8478a5471ac..3e15348c9f3 100644 --- a/tests/robotests/src/com/android/settings/wifi/calling/DisclaimerItemListAdapterTest.java +++ b/tests/robotests/src/com/android/settings/wifi/calling/DisclaimerItemListAdapterTest.java @@ -77,7 +77,7 @@ public class DisclaimerItemListAdapterTest { when(mLayoutInflater.inflate(anyInt(), anyObject(), anyBoolean())).thenReturn(mView); when(mViewGroup.getContext()).thenReturn(mContext); - when(mViewGroup.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).thenReturn( + when(mViewGroup.getContext().getSystemService(LayoutInflater.class)).thenReturn( mLayoutInflater); when(mView.findViewById(ID_DISCLAIMER_ITEM_TITLE)).thenReturn(mTestView); when(mView.findViewById(ID_DISCLAIMER_ITEM_DESCRIPTION)).thenReturn(mDescView); diff --git a/tests/robotests/src/com/android/settings/wifi/calling/EmergencyCallLimitationDisclaimerTest.java b/tests/robotests/src/com/android/settings/wifi/calling/EmergencyCallLimitationDisclaimerTest.java index 985edda69b5..c15e8507397 100644 --- a/tests/robotests/src/com/android/settings/wifi/calling/EmergencyCallLimitationDisclaimerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/calling/EmergencyCallLimitationDisclaimerTest.java @@ -54,7 +54,7 @@ public class EmergencyCallLimitationDisclaimerTest { mContext = spy(RuntimeEnvironment.application); doReturn(mCarrierConfigManager).when(mContext).getSystemService( - Context.CARRIER_CONFIG_SERVICE); + CarrierConfigManager.class); when(mCarrierConfigManager.getConfigForSubId(anyInt())).thenReturn(mBundle); doReturn(getSharedPreferences()).when(mContext).getSharedPreferences(anyString(), anyInt()); diff --git a/tests/robotests/src/com/android/settings/wifi/calling/LocationPolicyDisclaimerTest.java b/tests/robotests/src/com/android/settings/wifi/calling/LocationPolicyDisclaimerTest.java index 3fe9678c26e..108acf8195e 100644 --- a/tests/robotests/src/com/android/settings/wifi/calling/LocationPolicyDisclaimerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/calling/LocationPolicyDisclaimerTest.java @@ -54,7 +54,7 @@ public class LocationPolicyDisclaimerTest { mContext = spy(RuntimeEnvironment.application); doReturn(mCarrierConfigManager).when(mContext).getSystemService( - Context.CARRIER_CONFIG_SERVICE); + CarrierConfigManager.class); when(mCarrierConfigManager.getConfigForSubId(anyInt())).thenReturn(mBundle); doReturn(getSharedPreferences()).when(mContext).getSharedPreferences(anyString(), anyInt()); } diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java index d777a597936..252d876c1b0 100644 --- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java @@ -73,8 +73,8 @@ public class WifiTetherApBandPreferenceControllerTest { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); mPreference = new ListPreference(RuntimeEnvironment.application); - when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager); - when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager); + when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager); + when(mContext.getSystemService(TetheringManager.class)).thenReturn(mTetheringManager); when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"}); when(mContext.getResources()).thenReturn(RuntimeEnvironment.application.getResources()); when(mScreen.findPreference(anyString())).thenReturn(mPreference); diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java index 7c1939d4beb..ac73863a0f6 100644 --- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java +++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java @@ -79,10 +79,10 @@ public class WifiTetherSettingsTest { MockitoAnnotations.initMocks(this); doReturn(mConnectivityManager) - .when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE); - doReturn(mTetheringManager).when(mContext).getSystemService(Context.TETHERING_SERVICE); + .when(mContext).getSystemService(ConnectivityManager.class); + doReturn(mTetheringManager).when(mContext).getSystemService(TetheringManager.class); doReturn(WIFI_REGEXS).when(mTetheringManager).getTetherableWifiRegexs(); - doReturn(mUserManager).when(mContext).getSystemService(Context.USER_SERVICE); + doReturn(mUserManager).when(mContext).getSystemService(UserManager.class); mWifiTetherSettings = new WifiTetherSettings(); } @@ -131,7 +131,7 @@ public class WifiTetherSettingsTest { when(settings.getContext()).thenReturn(mContext); final Resources.Theme theme = mContext.getTheme(); when(activity.getTheme()).thenReturn(theme); - when(activity.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager); + when(activity.getSystemService(UserManager.class)).thenReturn(mUserManager); doNothing().when(settings) .onCreatePreferences(any(Bundle.class), nullable(String.class)); final FakeFeatureFactory fakeFeatureFactory = FakeFeatureFactory.setupForTest(); diff --git a/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java index 81841b73760..74db8c48c4b 100644 --- a/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java @@ -94,7 +94,7 @@ public class EnabledNetworkModePreferenceControllerTest { when(mContext.getSystemService(CarrierConfigManager.class)).thenReturn( mCarrierConfigManager); - when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager); + when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID); doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId( diff --git a/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java index c35942afef9..f5bd86ac6bf 100644 --- a/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java @@ -73,7 +73,7 @@ public class MobileDataPreferenceControllerTest { MockitoAnnotations.initMocks(this); mContext = spy(ApplicationProvider.getApplicationContext()); - doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE); + doReturn(mTelephonyManager).when(mContext).getSystemService(TelephonyManager.class); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID); From e88740eae22be093784ee59c4239b21a9ea2f98e Mon Sep 17 00:00:00 2001 From: SongFerngWang Date: Thu, 11 Mar 2021 13:24:03 +0800 Subject: [PATCH 04/20] KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY change type as IntArray Bug: 179814490 Test: build pass Change-Id: I9d2abe1abe3082267ed64b71602d8ada21c95c6c Merged-In: I9d2abe1abe3082267ed64b71602d8ada21c95c6c --- .../telephony/Enhanced4gBasePreferenceController.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java b/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java index 989cb028455..78c4036ab73 100644 --- a/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java +++ b/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java @@ -34,6 +34,7 @@ import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; +import com.android.internal.telephony.util.ArrayUtils; import com.android.settings.R; import com.android.settings.network.ims.VolteQueryImsState; import com.android.settingslib.core.lifecycle.LifecycleObserver; @@ -95,9 +96,10 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc mShow5gLimitedDialog = carrierConfig.getBoolean( CarrierConfigManager.KEY_VOLTE_5G_LIMITED_ALERT_DIALOG_BOOL); - mIsNrEnabledFromCarrierConfig = carrierConfig.getInt( - CarrierConfigManager.KEY_CARRIER_NR_AVAILABILITY_INT) - != CarrierConfigManager.CARRIER_NR_AVAILABILITY_NONE; + + int[] nrAvailabilities = carrierConfig.getIntArray( + CarrierConfigManager.KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY); + mIsNrEnabledFromCarrierConfig = !ArrayUtils.isEmpty(nrAvailabilities); return this; } From 0fd51cc9eab5c4dade559e5e89d4c0fe13c6a88c Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Mon, 22 Mar 2021 16:56:30 +0800 Subject: [PATCH 05/20] [Settings] Rollback design for getSystemService(String) Some of the design are intented for getSystemService(String). Rollback those items. Bug: 179640862 Test: local Change-Id: I581070afb380a86c6352322f927c269b4527aee9 --- .../network/EnabledNetworkModePreferenceControllerTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java index 74db8c48c4b..81841b73760 100644 --- a/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java @@ -94,7 +94,7 @@ public class EnabledNetworkModePreferenceControllerTest { when(mContext.getSystemService(CarrierConfigManager.class)).thenReturn( mCarrierConfigManager); - when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); + when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager); when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID); doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId( From 784eb94a14dba4b0858b12a1d5f12773e9ff7ae5 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Mon, 22 Mar 2021 22:00:11 +0800 Subject: [PATCH 06/20] [Provider Model] Update Internet preference summary - Show "Networks available" summary instead of "Not connected" when no network connected - Screenshot: https://screenshot.googleplex.com/AxhtTqpxXVSCT5o Bug: 182244261 Test: manual test atest -c InternetPreferenceControllerTest Change-Id: If32f656d7d89a8b19c4da4876ccc0d1cf92262a0 --- res/values/strings.xml | 2 ++ .../android/settings/network/InternetPreferenceController.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 7755da4c366..a336068c43d 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -12804,6 +12804,8 @@ Resetting your internet\u2026 Fix connectivity + + Networks available To switch networks, disconnect ethernet diff --git a/src/com/android/settings/network/InternetPreferenceController.java b/src/com/android/settings/network/InternetPreferenceController.java index a6c857467c1..639bab5322c 100644 --- a/src/com/android/settings/network/InternetPreferenceController.java +++ b/src/com/android/settings/network/InternetPreferenceController.java @@ -75,7 +75,7 @@ public class InternetPreferenceController extends AbstractPreferenceController i private static Map sSummaryMap = new HashMap<>(); static { sSummaryMap.put(INTERNET_OFF, R.string.condition_airplane_title); - sSummaryMap.put(INTERNET_NETWORKS_AVAILABLE, R.string.disconnected); + sSummaryMap.put(INTERNET_NETWORKS_AVAILABLE, R.string.networks_available); sSummaryMap.put(INTERNET_WIFI, 0); sSummaryMap.put(INTERNET_CELLULAR, 0); sSummaryMap.put(INTERNET_ETHERNET, R.string.to_switch_networks_disconnect_ethernet); From bec3144c1133e2c45696a2ebbe8f627c395512e9 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Mon, 22 Mar 2021 22:27:47 +0800 Subject: [PATCH 07/20] [Provider Model] Bring back the "turn on Wi-Fi automatically" option - Screenshot: https://screenshot.googleplex.com/92uXX6KQCqWxvub Bug: 182620666 Test: manual test make RunSettingsRoboTests ROBOTEST_FILTER=WifiWakeupPreferenceControllerTest Change-Id: Ic0ce47a6d9a374fce9752d67a9c2d083486b9083 --- .../settings/wifi/WifiWakeupPreferenceController.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java index 58697050375..e9fd35004da 100644 --- a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java +++ b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java @@ -26,7 +26,6 @@ import android.content.IntentFilter; import android.location.LocationManager; import android.net.wifi.WifiManager; import android.provider.Settings; -import android.util.FeatureFlagUtils; import androidx.annotation.VisibleForTesting; import androidx.fragment.app.Fragment; @@ -45,7 +44,6 @@ import com.android.settingslib.core.lifecycle.events.OnResume; * {@link TogglePreferenceController} that controls whether the Wi-Fi Wakeup feature should be * enabled. */ -// TODO(b/167474581): Should clean up this controller when Provider Model finished. public class WifiWakeupPreferenceController extends TogglePreferenceController implements LifecycleObserver, OnPause, OnResume { @@ -91,9 +89,6 @@ public class WifiWakeupPreferenceController extends TogglePreferenceController i @Override public int getAvailabilityStatus() { - if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) { - return CONDITIONALLY_UNAVAILABLE; - } return AVAILABLE; } From 08806754141f0c5792f1cd01e7bf5cd7de12453f Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Mon, 22 Mar 2021 17:09:00 +0000 Subject: [PATCH 08/20] [Settings] Fix divide by zero in data usage UI Data usage UI got divide by zero exception when zero data usage. Bug: 182822862 Test: local Change-Id: Ibe57034e7d441e94c0529cb76f1a16665aaacff6 --- .../android/settings/datausage/ChartDataUsagePreference.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/datausage/ChartDataUsagePreference.java b/src/com/android/settings/datausage/ChartDataUsagePreference.java index 6c845a951fa..0577e9c01f3 100644 --- a/src/com/android/settings/datausage/ChartDataUsagePreference.java +++ b/src/com/android/settings/datausage/ChartDataUsagePreference.java @@ -174,8 +174,8 @@ public class ChartDataUsagePreference extends Preference { @VisibleForTesting List getDensedStatsData(List usageSummary) { final List dataUsageSummaryNodes = new ArrayList<>(); - final long overallDataUsage = usageSummary.stream() - .mapToLong(NetworkCycleData::getTotalUsage).sum(); + final long overallDataUsage = Math.max(1L, usageSummary.stream() + .mapToLong(NetworkCycleData::getTotalUsage).sum()); long cumulatedDataUsage = 0L; int cumulatedDataUsagePercentage = 0; From 5dc25d8afa6d7b1670f9f31743ee7505d20494e4 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 22 Mar 2021 19:38:12 +0000 Subject: [PATCH 09/20] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I69f56fb22074981f0776f0f8b76e98ea83a14d3f --- res/values-iw/arrays.xml | 4 ++-- res/values-nl/arrays.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml index f71da6d6d24..b1f01a645ac 100644 --- a/res/values-iw/arrays.xml +++ b/res/values-iw/arrays.xml @@ -250,7 +250,7 @@ "‏שלח SMS" "‏קרא ICC SMS" "‏כתוב ICC SMS" - "שנה הגדרות" + "שינוי הגדרות" "צייר מעל" "גישה אל התראות" "מצלמה" @@ -305,7 +305,7 @@ "קרא יומן" "שנה יומן" "מיקום" - "פירסום התראה" + "פרסום התראה" "מיקום" "שיחת טלפון" "‏קרא SMS/MMS" diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml index 2228a8857aa..faba7eb84d1 100644 --- a/res/values-nl/arrays.xml +++ b/res/values-nl/arrays.xml @@ -272,7 +272,7 @@ "locatie met hoog energieverbruik controleren" "gebruiksstatistieken ophalen" "microfoon uit-/aanzetten" - "toast weergeven" + "toast tonen" "media projecteren" "VPN activeren" "achtergrond schrijven" @@ -339,7 +339,7 @@ "Locatie" "Gebruiksstatistieken ophalen" "Microfoon uit-/aanzetten" - "Toast weergeven" + "Toast tonen" "Media projecteren" "VPN activeren" "Achtergrond schrijven" From a1d35aad4e1624d6c9bb8efb73733db99f0d3ae2 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 22 Mar 2021 20:08:20 +0000 Subject: [PATCH 10/20] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I77c6e5117bcfaeac74a85a013190873900e7501d --- res/values-ca/strings.xml | 8 +- res/values-fr-rCA/strings.xml | 8 +- res/values-gu/strings.xml | 2 +- res/values-it/strings.xml | 2 +- res/values-iw/strings.xml | 70 ++++++------ res/values-nl/strings.xml | 206 +++++++++++++++++----------------- res/values-ta/strings.xml | 4 +- 7 files changed, 150 insertions(+), 150 deletions(-) diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index a8fbb654945..c00bd16ad32 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -1196,7 +1196,7 @@ "Activat / La pantalla no s\'apagarà si estàs mirant-la" "Desactivat" "Cal accés a la càmera" - "Toca per gestionar els permisos dels serveis de personalització del dispositiu" + "Toca per gestionar els permisos dels Serveis de personalització del dispositiu" "Evita que la pantalla s\'apagui si l\'estàs mirant" "La funció Atenció a la pantalla fa servir la càmera frontal per detectar si algú està mirant la pantalla. Funciona al dispositiu i les imatges mai no s\'emmagatzemen ni s\'envien a Google." "Activa l\'atenció a la pantalla" @@ -2610,7 +2610,7 @@ "%1$s de RAM utilitzada durant %2$s" "Fons" "Primer pla" - "Memòria" + "A la memòria cau" "SO Android" "Nadiu" "Kernel" @@ -2634,7 +2634,7 @@ "Tipus d\'estadístiques" "Fons" "Primer pla" - "Memòria" + "A la memòria cau" "Entrada i sortida de veu" "Configuració d\'entrada i sortida de veu" "Cerca per veu" @@ -2662,7 +2662,7 @@ "Instal·la un certificat" "Instal·la els certificats des de l\'emmagatzematge" "Instal·la els certificats des de la targeta SD" - "Esborra els certificats" + "Esborra les credencials" "Esborra tots els certificats" "Certificats de confiança" "Mostra certificats de CA de confiança" diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml index b8d6b15ff1f..6cb31da56d6 100644 --- a/res/values-fr-rCA/strings.xml +++ b/res/values-fr-rCA/strings.xml @@ -714,7 +714,7 @@ "Dissocier" "Déconnecter et dissocier" "Options…" - "Options avancées" + "Paramètres avancés" "Paramètres Bluetooth avancés" "Si la fonctionnalité Bluetooth est activée, l\'appareil peut communiquer avec les autres appareils Bluetooth à proximité." "Lorsque le Bluetooth est activé, votre appareil peut communiquer avec d\'autres appareils Bluetooth à proximité.\n\nPour améliorer l\'expérience d\'utilisation de l\'appareil, les applications et les services peuvent continuer de rechercher les appareils à proximité à tout moment, même si le Bluetooth est désactivé. Cette autorisation peut permettre, par exemple, d\'améliorer les fonctionnalités et les services basés sur la localisation. Vous pouvez modifier cette option dans les ""paramètres de recherche""." @@ -841,7 +841,7 @@ "Plus d\'options" "Wi-Fi Direct" "Scanner" - "Options avancées" + "Paramètres avancés" "Configurer" "Se connecter au réseau" "Mémoriser ce réseau" @@ -2163,7 +2163,7 @@ "Toucher l\'écran trois fois" "toucher l\'écran trois fois" "Touchez rapidement l\'écran trois fois. Ce raccourci peut ralentir votre appareil." - "Avancé" + "Paramètres avancés" "Le bouton d\'accessibilité est défini à %1$s. Pour utiliser cette fonction, maintenez enfoncé le bouton d\'accessibilité, puis sélectionnez l\'agrandissement." "Le geste d\'accessibilité est défini pour %1$s. Pour utiliser le zoom, balayez l\'écran de bas en haut deux avec doigts, puis maintenez-les-y. Sélectionnez ensuite Zoom." "Raccourci touches volume" @@ -2668,7 +2668,7 @@ "Afficher les certificats d\'autorité de confiance" "Authentifiants d\'utilisateur" "Afficher et modifier les authentifiants stockés" - "Avancés" + "Paramètres avancés" "Type de stockage" "Intégré au matériel" "Uniquement logiciel" diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml index f2c6a397fef..2cafc7c3fae 100644 --- a/res/values-gu/strings.xml +++ b/res/values-gu/strings.xml @@ -536,7 +536,7 @@ "ફેસ અનલૉક + પાસવર્ડ" "ફેસ અનલૉક વિના ચાલુ રાખો" "તમે તમારા ફોનને તમારા ચહેરાની મદદથી અનલૉક કરી શકો છો. સુરક્ષા માટે, આ વિકલ્પ હેતુ બૅકઅપ સ્ક્રીન લૉક આવશ્યક છે." - "વ્યવસ્થાપક, એન્ક્રિપ્શન પૉલિસી કે ક્રિડેન્શ્યલ સ્ટોરેજ દ્વારા બંધ કરાયેલો" + "વ્યવસ્થાપક, એન્ક્રિપ્શન પૉલિસી કે ક્રિડેન્શ્યલ સ્ટોરેજ વડે બંધ કરેલ" "કોઈ નહીં" "સ્વાઇપ કરો" "પૅટર્ન" diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index dd6230e887c..0604e7e4702 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -3873,7 +3873,7 @@ "Inserisci PIN amministratore" "On" "Off" - "Blocco delle app su schermo" + "Blocco app su schermo" "Con il blocco delle app su schermo, l\'app corrente resterà visibile fino a quando decidi di sbloccarla. Questa funzionalità può essere utilizzata, ad esempio, per consentire a un amico di cui ti fidi di giocare a un gioco specifico. \n\nQuando un\'app è bloccata su schermo, questa potrebbe aprire altre app e i dati personali potrebbero essere accessibili. \n\nPer utilizzare il blocco delle app su schermo: \n1. Attiva il blocco delle app su schermo \n2. Apri Panoramica \n3. Tocca l\'icona dell\'app nella parte superiore della schermata, quindi tocca Blocca" "Con il blocco delle app su schermo, l\'app corrente resterà visibile fino a quando decidi di sbloccarla. Questa funzionalità può essere utilizzata, ad esempio, per consentire a un amico di cui ti fidi di giocare a un gioco specifico. \n\nUn\'app bloccata potrebbe aprire altre app e i dati personali potrebbero essere accessibili. \n\nSe vuoi condividere il tuo dispositivo con qualcuno in modo sicuro, prova a usare invece un utente ospite. \n\nPer utilizzare il blocco delle app su schermo: \n1. Attiva il blocco delle app su schermo. \n2. Apri Panoramica. \n3. Tocca l\'icona dell\'app nella parte superiore della schermata, quindi tocca Blocca." "Quando un\'app è bloccata su schermo: \n\n• I dati personali potrebbero essere accessibili (ad esempio i contatti o i contenuti delle email) \n\n• Le app bloccate potrebbero aprire altre app \n\nUtilizza il blocco delle app su schermo solo con persone di cui ti fidi." diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index 499cf59639c..5b814a200c1 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -18,7 +18,7 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "כן" "לא" - "צור" + "יצירה" "כן, זה בסדר" "דחייה" "הפעלה" @@ -454,7 +454,7 @@ "בנוסף לביטול הנעילה של הטלפון, אפשר להשתמש בטביעת האצבע כדי לאשר רכישות וגישה לאפליקציות. ""למידע נוסף" " אפשרות נעילת המסך מושבתת. למידע נוסף ניתן לפנות למנהל המכשיר בארגון. ""למידע נוסף"\n\n"עדיין ניתן להשתמש בטביעת האצבע שלך כדי לאשר רכישות ולגשת לאפליקציות. ""למידע נוסף" "יש להרים את האצבע ולגעת שוב בחיישן" - "תוכל להוסיף עד %d טביעות אצבע" + "אפשר להוסיף עד %d טביעות אצבע" "הוספת את המספר המרבי של טביעות אצבע." "לא ניתן להוסיף עוד טביעות אצבע" "האם להסיר את כל טביעות האצבע?" @@ -854,7 +854,7 @@ "כדי להשתמש בתכונה, יש לבחור ספק של דירוג רשת" "כדי להשתמש בתכונה, יש לבחור ספק תואם של דירוג רשת" "התקנת אישורים" - "‏כדי לשפר את דיוק המיקום, אפליקציות ושירותים יוכלו לחפש רשתות Wi‑Fi בכל עת, גם כאשר ה-Wi‑Fi כבוי. ניתן להשתמש בכך, למשל, כדי לשפר תכונות ושירותים מבוססי מיקום. אפשר לשנות זאת בLINK_BEGINהגדרות הסריקהLINK_END." + "‏כדי לשפר את דיוק המיקום, אפליקציות ושירותים יוכלו לחפש רשתות Wi-Fi בכל עת, גם כאשר ה-Wi-Fi כבוי. ניתן להשתמש בכך, למשל, כדי לשפר תכונות ושירותים מבוססי מיקום. אפשר לשנות זאת בLINK_BEGINהגדרות הסריקהLINK_END." "‏כדי לשפר את דיוק המיקום, יש לחפש נקודות Wi-Fi בLINK_BEGINהגדרות הסריקהLINK_END." "אל תציג שוב" "‏ה-Wi-Fi ימשיך לפעול בזמן שינה" @@ -888,7 +888,7 @@ "‏התקנה אוטומטית (WPS)" "‏להפעיל את \'חיפוש נקודות Wi-Fi\'?" "‏כדי להפעיל Wi-Fi באופן אוטומטי, צריך קודם להפעיל את \'חיפוש נקודות Wi-Fi\'." - "‏חיפוש נקודות Wi-Fi מאפשר לאפליקציות ולשירותים לחפש תמיד רשתות Wi‑Fi, גם כאשר ה-Wi‑Fi כבוי. האפשרות הזו יעילה, למשל, לשיפור פיצ\'רים ושירותים מבוססי מיקום." + "‏חיפוש נקודות Wi-Fi מאפשר לאפליקציות ולשירותים לחפש תמיד רשתות Wi-Fi, גם כאשר ה-Wi-Fi כבוי. האפשרות הזו יעילה, למשל, לשיפור פיצ\'רים ושירותים מבוססי מיקום." "הפעלה" "‏\'חיפוש נקודות Wi-Fi\' מופעל" "אפשרויות מתקדמות" @@ -971,7 +971,7 @@ "ניסיון נוסף" "שתף עם משתמשים אחרים במכשיר" "(ללא שינוי)" - "בחר" + "יש לבחור" "(נוספו מספר אישורים)" "השתמש באישורי מערכת" "ללא אישור" @@ -986,7 +986,7 @@ "חיבור לרשת של %1$s" "‏לשיפור דיוק המיקום ולמטרות אחרות, %1$s רוצה להפעיל את חיפוש הרשתות, גם כאשר ה-Wi-Fi כבוי.\n\nהאם לאפשר זאת עבור כל האפליקציות?" "‏לשיפור של דיוק המיקום ולמטרות אחרות, אפליקציה לא ידועה רוצה להפעיל את סריקת הרשתות, גם כאשר ה-Wi-Fi כבוי.\n\nהאם להתיר זאת עבור כל האפליקציות שרוצות לסרוק?" - "כדי לכבות, עבור אל \'מתקדם\' באפשרויות הנוספות." + "כדי לכבות, עוברים אל \'מתקדם\' באפשרויות הנוספות." "כן, זה בסדר" "דחה" "האם להיכנס כדי להתחבר?" @@ -1185,10 +1185,10 @@ "אל תשמיע צלילים בעת הכנסת הטאבלט לעגינה או הסרתו משם" "אל תפעיל צליל בעת הכנסת הטלפון לעגינה או הוצאתו מעגינה" "חשבונות" - "חשבונות פרופיל עבודה - %s" + "חשבונות פרופיל עבודה – %s" "חשבונות פרופיל אישי" "חשבון עבודה - %s" - "חשבון אישי - %s" + "חשבון אישי – %s" "חיפוש" "תצוגה" "סיבוב אוטומטי של המסך" @@ -1529,7 +1529,7 @@ "לאחסון כל דבר במכשיר זה בלבד, כולל אפליקציות ותמונות. נדרשת קביעת פורמט שלא מאפשרת לו לפעול עם מכשירים אחרים." "קביעת פורמט כאחסון פנימי" "יש לפרמט את ^1 כדי שיהיה מאובטח. \n\nלאחר הפרמוט, ^1 זה יפעל רק במכשיר הזה. \n\n""הפרמוט מוחק את כל הנתונים שמאוחסנים כרגע ב-^1."" כדי למנוע את אובדן הנתונים, מומלץ לגבות אותם." - "פרמט כאחסון נייד" + "פירמוט כאחסון נייד" "יש לפרמט את ^1 כדי לבצע את הפעולה הזו. \n\n""פרמוט מוחק את כל הנתונים המאוחסנים ב^1."" מומלץ לגבות את הנתונים כדי לא לאבד אותם." "מחק ופרמט" "מפרמט את ^1…" @@ -1652,7 +1652,7 @@ "‏פעולה זו תמחק את כל הנתונים מ""האחסון הפנימי"" של הטלפון, כולל:\n\n"
  • "חשבון Google שלך"
  • \n
  • "הנתונים וההגדרות של המערכת והאפליקציות"
  • \n
  • "אפליקציות שהורדת"
  • \n\n"החשבונות הבאים שלך פעילים כעת:\n" \n\n"קיימים משתמשים אחרים במכשיר זה.\n" -
  • "מוסיקה"
  • \n
  • "תמונות"
  • \n
  • "נתוני משתמש אחרים"
  • +
  • "מוזיקה"
  • \n
  • "תמונות"
  • \n
  • "נתוני משתמש אחרים"
  • "‏"
  • "כרטיסי eSIM"
  • \n\n"מחיקת הנתונים לא תבטל את תוכנית השירות הסלולרי שלך." "‏\n\nכדי למחוק פריטי מוזיקה, תמונות ונתוני משתמש אחרים, יש למחוק את ""אחסון ה-USB""." @@ -1665,12 +1665,12 @@ "מחיקת כל הנתונים" "כל המידע האישי שלך והאפליקציות שהורדת יימחקו. לא ניתן לבטל את הפעולה הזו." "‏כל המידע האישי שלך יימחק, כולל אפליקציות וכרטיסי SIM שהורדת. לא ניתן לבטל את הפעולה הזו." - "מחיקת הכל" + "מחיקת הכול" "לא בוצע איפוס מכיוון שהשירות \'ניקוי מערכת\' אינו זמין." "האם למחוק את כל הנתונים?" "איפוס להגדרות היצרן אינו זמין עבור המשתמש הזה" "מוחק" - "אנא המתן..." + "רק רגע..." "הגדרות שיחה" "הגדרת דואר קולי, העברת שיחות, שיחה ממתינה, זיהוי מתקשר" "‏שיתוף אינטרנט דרך USB" @@ -1723,7 +1723,7 @@ "‏נקודה לשיתוף אינטרנט (Hotspot) ושיתוף אינטרנט בין מכשירים (tethering) מאפשרים למכשירים אחרים להתחבר לאינטרנט דרך Wi-Fi או דרך חבילת הגלישה שלך. יש גם אפליקציות שמאפשרות ליצור נקודה לשיתוף אינטרנט ולשתף תכנים עם מכשירים קרובים." "עזרה" "רשתות סלולריות" - "תכנית לנייד" + "תוכנית לנייד" "‏אפליקציית SMS" "‏לשנות את אפליקציית ה-SMS?" "‏האם להשתמש ב-%1$s במקום ב-%2$s כאפליקציית ה-SMS?" @@ -1738,7 +1738,7 @@ "‏הכנס כרטיס SIM ואתחל" "התחבר לאינטרנט" "בקשות של מיקומים אחרונים" - "הצג הכול" + "הצגת הכול" "שירותי מיקום" "המיקום שלי" "מיקום עבור פרופיל עבודה" @@ -2093,7 +2093,7 @@ "הפניה אוטומטית של רטט" "שליחת רטט אל בקר משחק כשמחובר" "בחירת פריסת מקלדת" - "הגדר פריסות מקלדת" + "הגדרת פריסות מקלדת" "‏כדי להחליף פריסה, הקש Control-מקש רווח" "ברירת מחדל" "פריסות מקלדת" @@ -2583,7 +2583,7 @@ "טלפון לא פעיל" "שונות" "חישוב יתר" - "‏CPU - סך הכל" + "‏CPU – סך הכול" "‏CPU בחזית" "שמירה במצב פעיל" "GPS" @@ -2629,7 +2629,7 @@ "בחירת מצב חיסכון בסוללה" "ייתכן שהאפליקציה מציעה הגדרות לצמצום צריכת הסוללה" "סוללה בשימוש על ידי משתמש" - "צריכת סוללה - שונות" + "צריכת סוללה – שונות" "צריכת הסוללה היא הערכה מקורבת של צריכת החשמל ואינה כוללת את כל הגורמים לניצול הסוללה. \'שונות\' הוא ההפרש בין הצריכה המקורבת שחושבה ובין הניצול בפועל שאובחן בסוללה." "חישוב יתר של שימוש בחשמל" "%d מיליאמפר לשעה" @@ -2729,7 +2729,7 @@ "שפה מדוברת" "התקנת צלילים" "המשך אל האפליקציה %s כדי להתקין צלילים" - "פתח האפליקציה" + "פתיחת האפליקציה" "ביטול" "איפוס המכשיר" "הפעלה" @@ -2815,14 +2815,14 @@ "צלצול ורטט שיחה" "פרטי רשת" - "הסינכרון מופעל" - "הסינכרון מושבת" + "הסנכרון מופעל" + "הסנכרון מושבת" "מסנכרן כעת" "שגיאת סנכרון" "הסנכרון נכשל" "סנכרון פעיל" "סנכרון" - "הסינכרון נתקל כעת בבעיות. הוא ימשיך תוך זמן קצר." + "הסנכרון נתקל כעת בבעיות. הוא ימשיך תוך זמן קצר." "הוספת חשבון" "פרופיל עבודה עדיין אינו זמין" "פרופיל עבודה" @@ -2853,7 +2853,7 @@ "נתונים וסינכרון" "שנה סיסמה" "הגדרות חשבון" - "הסר חשבון" + "הסרת החשבון" "הוספת חשבון" "להסיר את החשבון?" "הסרת חשבון זה תגרום להסרת כל ההודעות, אנשי הקשר ונתונים נוספים מהטאבלט!" @@ -2874,7 +2874,7 @@ "קובצי \'שונות\'" "נבחרו %1$d מתוך %2$d" "%1$s מתוך %2$s" - "בחר הכל" + "בחירת הכול" "שימוש בנתונים" "‏חבילת גלישה ו-Wi‑Fi" "ייתכן שחישוב השימוש בנתונים אצל הספק יהיה שונה מזה שבמכשיר." @@ -3093,7 +3093,7 @@ "פרופיל מוגבל" "לא מוגדר" "לא מוגדר - פרופיל מוגבל" - "לא מוגדר - פרופיל עבודה" + "לא מוגדר – פרופיל עבודה" "מנהל מערכת" "את/ה (%s)" "כינוי" @@ -3222,7 +3222,7 @@ "‏כרטיסי SIM" "‏כרטיסי SIM" - "%1$s ‏- %2$s" + "%1$s ‏– %2$s" "‏כרטיסי SIM השתנו" "הקש כדי להגדיר פעילויות" "חבילת הגלישה לא זמינה" @@ -3261,10 +3261,10 @@ "‏בחירת SIM" "הגדרות" - ‏הצג %d פריטים מוסתרים - ‏הצג %d פריטים מוסתרים - ‏הצג %d פריטים מוסתרים - ‏הצג פריט %d מוסתר + ‏הצגת %d פריטים מוסתרים + ‏הצגת %d פריטים מוסתרים + ‏הצגת %d פריטים מוסתרים + ‏הצגת פריט %d מוסתר "רשת ואינטרנט" "סלולרית" @@ -3424,7 +3424,7 @@ "נא לא להפריע" "שליחת התראה רק מאפליקציות ומאנשים חשובים" "הגבלת הפרעות" - "הפעלת מצב נא לא להפריע" + "הפעלת מצב \'נא לא להפריע\'" "התראות וצלילי מדיה יכולים להפריע" "לוחות זמנים" "מחיקת לוחות זמנים" @@ -3848,7 +3848,7 @@ "יצירת הגדרות מותאמות אישית ללוח הזמנים" "למשך ‘%1$s’" ", " - "%1$s - %2$s" + "%1$s%2$s" "%1$s עד %2$s" "שיחות" "שיחות שיכולות להפריע" @@ -4090,7 +4090,7 @@ "כל האפליקציות" "אפליקציות מותקנות" "אפליקציות ללא התקנה" - "אפליקציות: הכל" + "אפליקציות: הכול" "ההתראות הושבתו" "קטגוריות: חשיבות דחופה" "קטגוריות: חשיבות נמוכה" @@ -4333,7 +4333,7 @@ "הותקנו %1$d אפליקציות" "הותקנו 24 אפליקציות" "%1$s בשימוש, %2$s פנויים" - "אחסון פנימי: %1$s בשימוש - %2$s פנוי" + "אחסון פנימי: %1$s בשימוש – %2$s פנוי" "עבור למצב שינה לאחר %1$s של חוסר פעילות" "טפטים, שינה וגודל הגופן" "סגנונות, טפטים, זמן קצוב לכיבוי המסך, גודל גופן" @@ -4424,7 +4424,7 @@ "סבב של שימוש בחבילת הגלישה" "אזהרה לגבי שימוש בנתונים: ^1" "מגבלת נתונים: ^1" - "אזהרה לגבי שימוש בנתונים - ^1 / מגבלת נתונים - ^2" + "אזהרה לגבי שימוש בנתונים – ^1 / מגבלת נתונים – ^2" "כל חודש ב-%1$s בחודש" "הגבלות רשת" @@ -5004,7 +5004,7 @@ "החיבור הצליח" "החיבור נכשל" "הצגת הכול" - "מתבצע חיפוש אחר מכשיר…" + "מתבצע חיפוש של מכשיר…" "מתבצעת התחברות למכשיר…" "שמאל" "ימין" diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index f0719aac7f6..0d1eb87ea11 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -154,7 +154,7 @@ "Eerder verbonden apparaten" "Eerder verbonden" "Bluetooth ingeschakeld" - "Alles weergeven" + "Alles tonen" "Datum en tijd" "Een tijdzone kiezen" @@ -282,18 +282,18 @@ "%1$s na time-out" "Onmiddellijk na time-out, behalve wanneer ontgrendeld gehouden door %1$s" "%1$s na time-out, behalve wanneer ontgrendeld gehouden door %2$s" - "Eigenaarsgegevens weergeven op vergrendeld scherm" + "Eigenaarsgegevens tonen op vergrendelscherm" "Tekst toevoegen op vergrendelscherm" "Widgets inschakelen" "Uitgeschakeld door beheerder" - "Lockdown-optie weergeven" + "Lockdown-optie tonen" "Optie voor aan/uit-knop weergeven waarmee Smart Lock, biometrische ontgrendeling en meldingen op het vergrendelscherm worden uitgeschakeld" "Scherm vergr. als vertrouwen kwijt is" "Indien ingeschakeld, wordt het apparaat vergrendeld wanneer de laatste trust agent het vertrouwen kwijtraakt" "Geen" "%1$d/%2$d" "Bijvoorbeeld \'Android van Jan\'." - "Profielinfo weergeven op vergrendelscherm" + "Profielinfo tonen op vergrendelscherm" "Accounts" "Locatie" "Locatie gebruiken" @@ -311,7 +311,7 @@ "Apparaat versleuteld" "Apparaat niet gecodeerd" "Vergrendelscherm" - "Wat wordt weergegeven" + "Wat wordt getoond" "\'Mijn locatie\', schermontgrendeling, sim- en certificaatopslagvergrendeling instellen" "\'Mijn locatie\' instellen, scherm ontgrendelen, certificaatopslag vergrendelen" "Privacy" @@ -822,7 +822,7 @@ "Certificaten installeren" "Apps en services kunnen gewoon wifi-netwerken detecteren, zelfs als wifi is uitgeschakeld, om de locatienauwkeurigheid te verbeteren. Dit kan worden gebruikt om bijvoorbeeld locatiegebaseerde functies en services te verbeteren. Je kunt dit wijzigen in de LINK_BEGINscaninstellingenLINK_END." "Schakel wifi-scannen in via de LINK_BEGINscaninstellingenLINK_END om de locatienauwkeurigheid te verbeteren." - "Niet opnieuw weergeven" + "Niet opnieuw tonen" "Wifi behouden in slaapstand" "Wifi aan in slaapstand" "Er is een probleem opgetreden bij het wijzigen van de instelling" @@ -883,7 +883,7 @@ "Identiteit" "Anonieme identiteit" "Wachtwoord" - "Wachtwoord weergeven" + "Wachtwoord tonen" "Frequentieband voor toegangspunt selecteren" "Automatisch" "2,4-GHz-frequentieband" @@ -965,7 +965,7 @@ "Je kunt overschakelen naar het mobiele netwerk wanneer er geen goede wifi-verbinding is. Er kunnen kosten voor datagebruik in rekening worden gebracht." "Overschakelen naar mobiel" "Wifi blijven gebruiken" - "Nooit meer laten zien" + "Nooit meer tonen" "Verbinden" "Wifi ingeschakeld" "Verbonden met %1$s" @@ -1085,7 +1085,7 @@ "Wifi" "Mobiel" - "Mobiel netwerk gebruiken als er geef wifi beschikbaar is" + "Mobiel netwerk gebruiken als er geen wifi beschikbaar is" "Gebruik wifi als er geen mobiel netwerk beschikbaar is" "Bellen via wifi. Zonder wifi-signaal wordt het gesprek beëindigd." "Wanneer bellen via wifi is ingeschakeld, kan je telefoon gesprekken doorschakelen via wifi-netwerken of het netwerk van je provider, afhankelijk van je voorkeur en welk signaal sterker is. Voordat je deze functie inschakelt, neem je contact met je provider op over de kosten en andere details.%1$s" @@ -1276,10 +1276,10 @@ "Automatische helderheid" "Optillen om te activeren" "Inactief scherm" - "Wanneer weergeven" + "Wanneer tonen" "Scherm activeren voor meldingen" "Als het scherm donker is, wordt het ingeschakeld bij nieuwe meldingen" - "Altijd tijd en info weergeven" + "Altijd tijd en info tonen" "Hoger batterijgebruik" "Lettergrootte" "Tekst groter of kleiner maken" @@ -1346,8 +1346,8 @@ "Opslag en cache" "Opslag" "Instellingen voor opslag" - "USB-opslag ontkoppelen, beschikbare opslag weergeven" - "SD-kaart ontkoppelen, beschikbare opslagruimte weergeven" + "USB-opslag ontkoppelen, beschikbare opslag bekijken" + "SD-kaart ontkoppelen, beschikbare opslagruimte bekijken" "IMEI (simkaartsleuf %1$d)" "Kies opgeslagen netwerk om te bekijken" "MDN" @@ -1696,7 +1696,7 @@ "Plaats een simkaart en start het apparaat opnieuw" "Maak verbinding met internet" "Recente locatieverzoeken" - "Alles weergeven" + "Alles tonen" "Locatieservices" "Mijn locatie" "Locatie voor werkprofiel" @@ -1707,7 +1707,7 @@ %1$d van %2$d apps heeft toegang tot de locatie "Recente locatietoegang" - "Details weergeven" + "Details bekijken" "Er zijn geen apps die je locatie onlangs hebben opgevraagd" "Er zijn geen apps die recent toegang hebben gehad tot je locatie" "Hoog accugebruik" @@ -1736,7 +1736,7 @@ "Over de telefoon" "Over het apparaat" "Over het geëmuleerde apparaat" - "Juridische info, status, softwareversie weergeven" + "Juridische info, status, softwareversie bekijken" "Juridische informatie" "Bijdragers" "Handleiding" @@ -1756,7 +1756,7 @@ "Laden..." "Veiligheidsinformatie" "Veiligheidsinformatie" - "Je hebt geen gegevensverbinding. Als je deze informatie nu wilt weergeven, ga je op een computer met internetverbinding naar %s." + "Je hebt geen dataverbinding. Als je deze informatie nu wilt bekijken, ga je op een computer met internetverbinding naar %s." "Laden..." "Schermvergrendeling instellen" "Stel een wachtwoord in voor betere beveiliging" @@ -1851,8 +1851,8 @@ "Alle appbronnen toestaan" "Recent geopende apps" - Alle %1$d apps weergeven - Alle apps weergeven + Alle %1$d apps tonen + Alle apps tonen "Neem contact op met je IT-beheerder" "De beheerder kan je helpen je pincode, patroon of wachtwoord te resetten" @@ -1902,8 +1902,8 @@ "Sorteren op grootte" "Meest recent" "Vaakst" - "Actieve services weergeven" - "Gecachte processen weerg." + "Actieve services tonen" + "Processen in cache tonen" "Nood-app" "App-voorkeuren resetten" "App-voorkeuren resetten?" @@ -1961,7 +1961,7 @@ "(Nooit gebruikt)" "Geen standaard-apps." "Opslaggebruik" - "Gebruikte opslagruimte voor apps weergeven" + "Gebruikte opslagruimte voor apps bekijken" "Opnieuw starten" "Gecacht achtergrondproces" "Niets wordt uitgevoerd." @@ -2021,7 +2021,7 @@ "Automatische interpunctie" "Instellingen voor vast toetsenbord" "Druk twee keer op de spatiebalk om een punt (.) in te voegen" - "Wachtwoorden weergeven" + "Wachtwoorden tonen" "Tekens kort weergeven terwijl je typt" "Deze spellingcontrole verzamelt mogelijk alle tekst die je typt, inclusief persoonsgegevens zoals wachtwoorden en creditcardnummers. De service is afkomstig uit de app %1$s. Wil je deze spellingcontrole gebruiken?" "Instellingen" @@ -2034,7 +2034,7 @@ "Toetsenbordondersteuning" "Fysiek toetsenbord" "Schermtoetsenbord gebruiken" - "Dit op het scherm weergeven terwijl het fysieke toetsenbord actief is" + "Op het scherm tonen terwijl het fysieke toetsenbord actief is" "Sneltoetsen" "Beschikbare sneltoetsen weergeven" "Toetsenborden en tools van werkprofiel" @@ -2077,7 +2077,7 @@ "Huidig toetsenbord" "Selectie voor invoermethode" "Automatisch" - "Altijd weergeven" + "Altijd tonen" "Altijd verbergen" "Invoermethoden instellen" "Instellingen" @@ -2189,7 +2189,7 @@ "2 minuten" "Tijd voor actie (time-out voor toegankelijkheid)" "Tijd om actie te ondernemen" - "Kies hoelang je berichten wilt weergeven die je vragen om actie te ondernemen, maar die slechts tijdelijk zichtbaar zijn.\n\nDeze instelling wordt niet door alle apps ondersteund." + "Kies hoelang je berichten wilt tonen die je vragen om actie te ondernemen, maar die slechts tijdelijk zichtbaar zijn.\n\nDeze instelling wordt niet door alle apps ondersteund." "Vertraging voor blijven aanraken" "Kleurinversie" "Kleurinversie gebruiken" @@ -2214,7 +2214,7 @@ "%1$s gebruiken" "%1$s openen" "Kleurcorrectie gebruiken" - "Ondertiteling weergeven" + "Ondertiteling tonen" "Alleen voor ondersteunde apps" "Grootte en stijl van ondertiteling" "Tekstgrootte %1$s" @@ -2240,7 +2240,7 @@ "Uit" "Werkt niet. Tik voor informatie." "Deze service werkt niet goed." - "Weergeven in Snelle instellingen" + "Tonen in Snelle instellingen" "Correctiemodus" "Deuteranomalie" "Protanomalie" @@ -2362,7 +2362,7 @@ "%1$s annuleren" "Printerfout %1$s" "%1$s geblokkeerd door printer" - "Zoekvak weergegeven" + "Zoekvak getoond" "Zoekvak verborgen" "Meer informatie over deze printer" "Batterij" @@ -2602,7 +2602,7 @@ "Nooit" "bij %1$s batterijlading" "Batterijpercentage" - "Batterijpercentage in statusbalk weergeven" + "Batterijpercentage in statusbalk tonen" "Processtatistieken" "Statistieken voor nerds over actieve processen" "Geheugengebruik" @@ -2627,9 +2627,9 @@ "6 uur" "12 uur" "1 dag" - "Systeem weergeven" + "Systeem tonen" "Systeem verbergen" - "Percentages weergeven" + "Percentages tonen" "USS gebruiken" "Statistiektype" "Achtergrond" @@ -2809,10 +2809,10 @@ "Dataroaming" "Achtergrondgegevens beperken" "Achtergrondgegev. toestaan" - "4G-gebruik apart weergeven" - "Wifi weergeven" + "4G-gebruik apart tonen" + "Wifi tonen" "Wifi verbergen" - "Ethernetgebruik weergeven" + "Ethernetgebruik tonen" "Ethernetgebruik verbergen" "Netwerkbeperkingen" "Gegevens automatisch synchroniseren" @@ -2899,7 +2899,7 @@ "IPSec-gebruikerscertificaat" "CA-certificaat voor IPSec" "IPSec-servercertificaat" - "Geavanceerde opties weergeven" + "Geavanceerde opties tonen" "DNS-zoekdomeinen" "DNS-servers (bijv. 8.8.8.8)" "Doorstuurroutes (bijv. 10.0.0.0/8)" @@ -3175,8 +3175,8 @@ "Simkaartselectie" "Instellingen" - %d verborgen items weergeven - %d verborgen item weergeven + %d verborgen items tonen + %d verborgen item tonen "Netwerk en internet" "mobiel" @@ -3358,7 +3358,7 @@ "Wanneer er meldingen binnenkomen, laat je telefoon geen geluid horen en trilt deze niet" "Geen zichtbare of hoorbare meldingen" "Je ziet of hoort geen meldingen" - "Je telefoon trilt niet en maakt geen geluid voor nieuwe of bestaande meldingen. Ook laat je telefoon deze niet zien. Belangrijke meldingen over je telefoonactiviteit en -status blijven echter wel verschijnen.\n\nAls je \'Niet storen\' uitschakelt, kun je de gemiste meldingen zien door van boven naar beneden te vegen op je scherm." + "Je telefoon trilt niet en maakt geen geluid voor nieuwe of bestaande meldingen. Ook laat je telefoon deze niet zien. Je ziet wel nog belangrijke meldingen over je telefoonactiviteit en -status.\n\nAls je \'Niet storen\' uitzet, kun je de gemiste meldingen zien door vanaf de bovenkant van het scherm omlaag te swipen." "Aangepast" "Aangepaste instelling inschakelen" "Aangepaste instelling verwijderen" @@ -3449,7 +3449,7 @@ "Andere geluiden en trillingen" "Meldingen" "Recent verstuurd" - "Alles weergeven van de afgelopen zeven dagen" + "Alles van de afgelopen 7 dagen tonen" "Geavanceerd" "Werkmeldingen" "Aanpasbare meldingen" @@ -3458,40 +3458,40 @@ "Aanpasbare rangschikking van meldingen" "Meldingen automatisch rangschikken op relevantie" "Voorgestelde acties en antwoorden" - "Voorgestelde acties en antwoorden automatisch weergeven" - "Recente en gesnoozede meldingen weergeven" + "Voorgestelde acties en antwoorden automatisch tonen" + "Recente en gesnoozede meldingen tonen" "Meldingsgeschiedenis" "Meldingsgeschiedenis gebruiken" "Meldingsgeschiedenis uitgeschakeld" "Schakel de meldingsgeschiedenis in om recente meldingen en gesnoozede meldingen te bekijken" "Geen recente meldingen" - "Je recente en gesnoozede meldingen worden hier weergegeven" + "Je recente en gesnoozede meldingen zie je hier" "instellingen voor meldingen bekijken" "melding openen" "Snoozen van meldingen toestaan" "Pictogrammen van subtiele meldingen verbergen" - "Pictogrammen van subtiele meldingen worden niet weergegeven in de statusbalk" + "Iconen van subtiele meldingen worden niet getoond in de statusbalk" "Meldingsstipje op app-icoon" - "Strook met recente gesprekken weergeven" + "Strook met recente gesprekken tonen" "Bubbels" - "Bepaalde meldingen en andere content kunnen in bubbels worden weergegeven op het scherm. Tik op een bubbel om deze te openen. Sleep deze naar de onderkant van het scherm als je deze wilt sluiten." + "Bepaalde meldingen en andere content kunnen in bubbels worden getoond op het scherm. Tik op een bubbel om deze te openen. Sleep deze naar de onderkant van het scherm als je deze wilt sluiten." "Bubbels" "Alle instellingen voor bubbels" - "Dit gesprek als bubbel weergeven" - "Zwevend icoon vóór apps weergeven" - "Toestaan dat %1$s bepaalde meldingen weergeeft als bubbels" + "Dit gesprek als bubbel tonen" + "Zwevend icoon vóór apps tonen" + "Toestaan dat %1$s bepaalde meldingen toont als bubbels" "Bubbels voor apparaat inschakelen?" - "Als je bubbels inschakelt voor deze app, worden bubbels ook ingeschakeld voor je apparaat.\n\nDit is van invloed op andere apps of gesprekken die als bubbel mogen worden weergegeven." + "Als je bubbels gebruikt voor deze app, worden bubbels ook gebruikt voor je apparaat.\n\nDit is van invloed op andere apps of gesprekken die als bubbel mogen worden getoond." "Inschakelen" "Annuleren" - "Aan: gesprekken kunnen worden weergegeven als zwevende iconen" - "Toestaan dat apps bubbels weergeven" - "Sommige gesprekken worden over andere apps heen weergegeven als zwevende iconen" - "Alle gesprekken kunnen als bubbel worden weergegeven" + "Aan: gesprekken kunnen als zwevende iconen worden getoond" + "Toestaan dat apps bubbels tonen" + "Sommige gesprekken worden vóór andere apps weergegeven als zwevende iconen" + "Alle gesprekken kunnen als bubbel worden getoond" "Geselecteerde gesprekken kunnen als bubbel worden getoond" - "Niets kan als bubbel worden weergegeven" + "Niets kan als bubbel worden getoond" "Gesprekken" - "Alle gesprekken kunnen als bubbel worden weergegeven, behalve" + "Alle gesprekken kunnen als bubbel worden getoond, behalve" "Bubbels uitschakelen voor dit gesprek" "Bubbels inschakelen voor dit gesprek" "Swipeacties" @@ -3501,7 +3501,7 @@ "Ook weergeven in" "Statusbalk" "Vergrendelscherm" - "Subtiele meldingen maken geen geluid en worden altijd weergegeven in het pull-downvenster" + "Subtiele meldingen maken geen geluid en worden altijd in het pull-downvenster getoond" "Alleen weergeven in pull-downvenster" "Weergeven in pull-downvenster en op vergrendelscherm" "Weergeven in pull-downvenster en statusbalk" @@ -3514,21 +3514,21 @@ "Scherm vergrendelen, vergrendelscherm, overslaan" "Als werkprofiel is vergrendeld" "Meldingen op vergrendelscherm" - "Gesprekken (standaard en stil) weergeven" + "Gesprekken (standaard en stil) tonen" "Stille gesprekken en meldingen verbergen" - "Geen meldingen weergeven" + "Geen meldingen tonen" "Gevoelige meldingen" - "Gevoelige content weergeven op vergrendelscherm" + "Gevoelige content tonen op vergrendelscherm" "Gevoelige werkprofielmeldingen" - "Gevoelige werkprofielcontent weergeven op vergrendelscherm" - "Content van alle meldingen weergeven" - "Gevoelige content alleen weergeven als ontgrendeld" + "Gevoelige werkprofielcontent tonen op vergrendelscherm" + "Content van alle meldingen tonen" + "Gevoelige content alleen tonen als ontgrendeld" "Helemaal geen meldingen tonen" "Hoe wil je dat het vergrendelscherm wordt weergegeven?" "Vergrendelscherm" - "Content van alle werkmeldingen weergeven" + "Content van alle werkmeldingen tonen" "Gevoelige werkcontent verbergen" - "Hoe moeten profielmeldingen worden weergegeven wanneer je apparaat is vergrendeld?" + "Hoe moeten profielmeldingen worden getoond als je apparaat is vergrendeld?" "Profielmeldingen" "Meldingen" "App-meldingen" @@ -3552,18 +3552,18 @@ %d prioriteitsgesprek "Prioriteitsgesprekken" - "Bovenaan het gespreksgedeelte weergeven als zwevende bubbels" - "Bovenaan het gespreksgedeelte weergeven" + "Bovenaan het gespreksgedeelte tonen als zwevende bubbels" + "Bovenaan het gespreksgedeelte tonen" "Andere gesprekken" "Gesprekken waarin je wijzigingen hebt aangebracht" - "Prioriteitsgesprekken als bubbel weergeven" - "Prioriteitsgesprekken worden bovenaan het pull-downvenster weergegeven. Je kunt ook instellen dat ze als bubbels worden weergegeven en \'Niet storen\' onderbreken." - "Prioriteitsgesprekken en gewijzigde gesprekken worden hier weergegeven" - "Zodra je een gesprek als prioriteitsgesprek markeert of wijzigingen in gesprekken aanbrengt, worden ze hier weergegeven. \n\nGespreksinstellingen wijzigen: \nSwipe omlaag vanaf de bovenkant van het scherm om het pull-downvenster te openen, tik op een gesprek en houd dit vast." - "Stil weergeven en minimaliseren" - "Zonder geluid weergeven" + "Prioriteitsgesprekken als bubbel tonen" + "Prioriteitsgesprekken worden bovenaan het pull-downvenster getoond. Je kunt ook instellen dat ze als bubbels worden getoond en \'Niet storen\' onderbreken." + "Prioriteitsgesprekken en gewijzigde gesprekken zie je hier" + "Zodra je een gesprek als prioriteitsgesprek markeert of wijzigingen in gesprekken aanbrengt, zie je ze hier. \n\nGespreksinstellingen wijzigen: \nSwipe omlaag vanaf de bovenkant van het scherm om het pull-downvenster te openen, tik op een gesprek en houd het vast." + "Stil tonen en minimaliseren" + "Zonder geluid tonen" "Geluid laten horen" - "Geluid laten horen en op het scherm weergeven" + "Geluid laten horen en op het scherm tonen" "Weergeven op scherm" "Minimaliseren" "Gemiddeld" @@ -3573,13 +3573,13 @@ "Stil" "Standaard" "Onderbrekingen toestaan" - "De app geluid laten maken, laten trillen en/of meldingen laten weergeven op het scherm" + "De app geluid laten maken, laten trillen en/of meldingen laten tonen op het scherm" "Prioriteit" "Verschijnt als zwevende bubbel bovenaan het gespreksgedeelte en toont profielfoto op vergrendelscherm" - "%1$s ondersteunt de meeste gespreksfuncties niet. Je kunt niet instellen dat een gesprek prioriteit heeft en gesprekken worden niet weergegeven als zwevende bubbels." + "%1$s ondersteunt de meeste gespreksfuncties niet. Je kunt niet instellen dat een gesprek prioriteit heeft en gesprekken worden niet getoond als zwevende bubbels." "Meldingen in het pull-downvenster samenvouwen tot één regel" "Geen geluid of trilling" - "Geen geluid of trilling en wordt op een lagere positie in het gedeelte met gesprekken weergegeven" + "Geen geluid of trilling en wordt op een lagere positie in het gedeelte met gesprekken getoond" "Kan overgaan of trillen op basis van de telefooninstellingen" "Wanneer het apparaat is ontgrendeld, worden meldingen als banner bovenaan het scherm getoond" "Alle meldingen van \'%1$s\'" @@ -3678,7 +3678,7 @@ "Aan" "Uit" "Alles blokkeren" - "Deze meldingen nooit weergeven" + "Deze meldingen nooit tonen" "Meldingen tonen" "Nooit meldingen tonen in het meldingenpaneel of op randapparaten" "Meldingsstipje toestaan" @@ -3862,7 +3862,7 @@ "Wijzigen in \'Alleen wekkers\' tot %1$s" "Wijzigen in \'Altijd onderbreken\'" "Wanneer het scherm is ingeschakeld" - "Meldingen die door \'Niet storen\' geen geluid maken, op het scherm laten weergeven en een icoon in de statusbalk weergeven" + "Meldingen die door \'Niet storen\' geen geluid maken, op het scherm laten zien en een icoon in de statusbalk tonen" "Wanneer het scherm is uitgeschakeld" "Toestaan dat meldingen die op stil zijn gezet door \'Niet storen\', het scherm inschakelen of het meldingslampje laten knipperen" "Meldingen die op stil zijn gezet door \'Niet storen\', het scherm laten inschakelen" @@ -3874,8 +3874,8 @@ "Aan" "Uit" "App vastzetten" - "Als je een app vastzet, kun je de huidige app blijven weergeven totdat je deze losmaakt. Je kunt deze functie bijvoorbeeld gebruiken om een vriend die je vertrouwt een specifieke game te laten spelen. \n\nAls een app is vastgezet, kan de vastgezette app mogelijk andere apps openen en zijn er misschien persoonlijke gegevens toegankelijk. \n\nEen app vastzetten: \n1. Schakel \'App vastzetten\' in. \n2. Open \'Overzicht\'. \n3. Tik bovenaan het scherm op het app-icoon en daarna op \'Vastzetten\'." - "Als je een app vastzet, kun je de huidige app in beeld houden totdat je deze weer losmaakt. Je kunt deze functie bijvoorbeeld gebruiken om een vriend die je vertrouwt, een specifieke game te laten spelen. \n\nAls een app is vastgezet, kan de vastgezette app mogelijk andere apps openen en zijn er misschien persoonlijke gegevens toegankelijk. \n\nAls je je apparaat op een veilige manier met iemand wilt delen, gebruik dan liever een gastgebruiker. \n\nEen app vastzetten: \n1. Schakel \'App vastzetten\' in. \n2. Open \'Overzicht\'. \n3. Tik bovenaan het scherm op het app-icoon en daarna op \'Vastzetten\'." + "Als je een app vastzet, kun je de huidige app in beeld houden totdat je deze losmaakt. Je kunt deze functie bijvoorbeeld gebruiken om een vriend die je vertrouwt een specifieke game te laten spelen. \n\nAls een app is vastgezet, kan de vastgezette app mogelijk andere apps openen en zijn er misschien persoonlijke gegevens toegankelijk. \n\nEen app vastzetten: \n1. Zet App vastzetten aan. \n2. Open Overzicht. \n3. Tik bovenaan het scherm op het app-icoon en daarna op Vastzetten." + "Als je een app vastzet, kun je de huidige app in beeld houden totdat je deze weer losmaakt. Je kunt deze functie bijvoorbeeld gebruiken om een vriend die je vertrouwt, een specifieke game te laten spelen. \n\nAls een app is vastgezet, kan de vastgezette app mogelijk andere apps openen en zijn er misschien persoonlijke gegevens toegankelijk. \n\nAls je je apparaat op een veilige manier met iemand wilt delen, gebruik dan liever een gastgebruiker. \n\nEen app vastzetten: \n1. Zet App vastzetten aan. \n2. Open Overzicht. \n3. Tik bovenaan het scherm op het app-icoon en daarna op Vastzetten." "Als een app is vastgezet: \n\n•  Persoonlijke gegevens kunnen toegankelijk zijn \n (zoals contacten en e-mailcontent). \n•  De vastgezette app kan mogelijk andere apps openen. \n\nGebruik deze functie alleen met mensen die je vertrouwt." "Vraag om ontgrendelingspatroon voor losmaken" "Vraag pin voor losmaken" @@ -4024,8 +4024,8 @@ "%1$s (%2$d)" "Batterijoptimalisatie" "Gebruiksmeldingen" - "Gebruik voor hele apparaat weergeven" - "App-gebruik weergeven" + "Gebruik voor hele apparaat tonen" + "App-gebruik tonen" %2$d vertonen abnormaal gedrag %1$s vertoont abnormaal gedrag @@ -4045,7 +4045,7 @@ "Energiebeheer" "Geen accugebruik sinds laatste volledige lading" "App-instellingen" - "SystemUI Tuner weergeven" + "SystemUI Tuner tonen" "Aanvullende rechten" "Nog %1$d" "Bugrapport delen?" @@ -4215,7 +4215,7 @@ "Je beheerder kan apps en gegevens bijhouden en beheren die aan dit apparaat zijn gekoppeld (waaronder instellingen, rechten, zakelijke toegang, netwerkactiviteit en locatiegegevens van het apparaat)." "Uitschakelen" "Inschakelen" - "Weergeven" + "Tonen" "Verbergen" "Hotspot is actief" "Vliegmodus is ingeschakeld" @@ -4355,7 +4355,7 @@ "prioriteit" "belang" "uitleg" - "kan badge weergeven" + "kan badge tonen" "intentie" "intentie verwijderen" "intentie voor volledig scherm" @@ -4367,7 +4367,7 @@ "icoon" "pakketgrootte" "ashmem" - "waarschuwing voor melding weergegeven" + "waarschuwing voor melding getoond" "kanaal" "geen" "Rangschikkingsobject ontbreekt" @@ -4382,13 +4382,13 @@ %d apps kunnen onbeperkt data gebruiken 1 app kan onbeperkt data gebruiken - "Meer weergeven" + "Meer tonen" "Weet je zeker dat je de gebruikersgegevens wilt wissen en wilt converteren naar versleuteling op basis van bestanden?" "Wissen en converteren" "Rate limiting van ShortcutManager resetten" "De rate limiting van ShortcutManager is gereset." "Informatie op vergrendelscherm beheren" - "Content van meldingen weergeven of verbergen" + "Content van meldingen tonen of verbergen" "Alle" "Tips en support" "Kleinste breedte" @@ -4415,7 +4415,7 @@ "Contacten zoeken" "Contactzoekopdrachten door je organisatie toestaan om bellers en contacten te identificeren" "Agenda voor meerdere profielen" - "Werkafspraken weergeven in je persoonlijke agenda" + "Werkafspraken tonen in je persoonlijke agenda" %s uur 1 uur @@ -4625,8 +4625,8 @@ "Deze functie is uitgeschakeld omdat je telefoon erdoor wordt vertraagd" "Volledige GNSS-metingen afdwingen" "Alle GNSS-constellaties en -frequenties bijhouden zonder duty cycling" - "Altijd een crashvenster weergeven" - "Bij gecrashte apps altijd een venster weergeven" + "Altijd een crashvenster tonen" + "Bij gecrashte apps altijd een venster tonen" "App met ANGLE-functionaliteit selecteren" "Geen app met ANGLE-functionaliteit ingesteld" "App met ANGLE-functionaliteit: %1$s" @@ -4817,7 +4817,7 @@ "Namen toegangspunten" "Niet beschikbaar wanneer verbonden met %1$s" "Meer bekijken" - "Minder weergeven" + "Minder tonen" "Verbinding maken met apparaat" "De app %1$s wil een tijdelijk wifi-netwerk gebruiken om verbinding te maken met je apparaat." "Geen apparaten gevonden. Zorg dat apparaten zijn ingeschakeld en beschikbaar zijn voor verbinding." @@ -4857,7 +4857,7 @@ "0 apps hebben rechten gebruikt" "Rechtengebruik in de afgelopen 24 uur" - "Alles weergeven op dashboard" + "Alles op dashboard tonen" %s apps 1 app @@ -4911,18 +4911,18 @@ "kaarten en passen" "Menu voor aan/uit-knop" "Menu voor aan/uit-knop" - "Kaarten en passen weergeven" - "Apparaatbediening weergeven" - "Kaarten, passen en apparaatbediening weergeven" + "Kaarten en passen tonen" + "Apparaatbediening tonen" + "Kaarten, passen en apparaatbediening tonen" "Vergrendelscherm" - "Geen content weergeven" + "Geen content tonen" "Gevoelige content" - "Kaarten en bedieningselementen weergeven indien vergrendeld" - "Bedieningselementen weergeven op vergrendelscherm" - "Kaarten weergeven als apparaat is vergrendeld" + "Kaarten en bedieningselementen tonen op vergrendelscherm" + "Bedieningselementen tonen op vergrendelscherm" + "Kaarten tonen op vergrendelscherm" "Kaarten en bedieningselementen verbergen indien vergrendeld" "Stel voor gebruik eerst een schermvergrendeling in" - "Apparaatbediening weergeven" + "Apparaatbediening tonen" "Kaarten en passen" "Houd de aan/uit-knop ingedrukt om toegang te krijgen tot apparaatopties voor verbonden apparaten" "Tik op de aan/uit-knop en houd deze ingedrukt om je betaalmethoden, instapkaarten en meer te zien." @@ -4943,7 +4943,7 @@ "Speler verbergen als de mediasessie is afgelopen" "Met de speler kun je een sessie hervatten vanuit het uitgevouwen deelvenster \'Snelle instellingen\'." "Speler verbergen" - "Speler weergeven" + "Speler tonen" "Geen spelers beschikbaar" "media" "Een niet-vertrouwd apparaat wil toegang tot je berichten. Tik voor details." diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml index 660fc5c14d1..98ad43ad454 100644 --- a/res/values-ta/strings.xml +++ b/res/values-ta/strings.xml @@ -3763,9 +3763,9 @@ ஒருவர் "ஏதுமில்லை" - "Messages" + "மெசேஜஸ்" "மெசேஜ்கள்" - "Messages" + "மெசேஜஸ்" "குறுக்கிட முடிந்த மெசேஜ்கள்" "அனுமதிக்கப்படும் மெசேஜ்கள் ஒலி எழுப்புமா என்பதை உறுதிப்படுத்த உங்கள் சாதனம் ஒலி எழுப்பும்படி உள்ளதா என்பதைச் சரிபார்க்கவும்" "‘%1$s’ என்பதற்கு உள்வரும் மெசேஜ்கள் தடுக்கப்பட்டுள்ளன. உங்களைத் தொடர்புகொள்ள நண்பர்களையோ குடும்பத்தினரையோ வேறு தொடர்புகளையோ அனுமதிக்குமாறு அமைப்புகளை மாற்றிக்கொள்ளலாம்." From 75a91836e7182c4543db585acbe3f73a11402eb4 Mon Sep 17 00:00:00 2001 From: Janis Danisevskis Date: Wed, 10 Mar 2021 09:30:46 -0800 Subject: [PATCH 11/20] Keystore 2.0: Remove references to Keystore 1.0 Test: N/A Bug: 171305684 Change-Id: I8b50c024e919d5b98348b792e0769c510ff1a33d --- .../settings/UserCredentialsSettings.java | 29 +++++++------------ .../utils/AndroidKeystoreAliasLoader.java | 18 ++++-------- 2 files changed, 15 insertions(+), 32 deletions(-) diff --git a/src/com/android/settings/UserCredentialsSettings.java b/src/com/android/settings/UserCredentialsSettings.java index 5f72ca58423..80b97e4272a 100644 --- a/src/com/android/settings/UserCredentialsSettings.java +++ b/src/com/android/settings/UserCredentialsSettings.java @@ -34,7 +34,6 @@ import android.security.Credentials; import android.security.IKeyChainService; import android.security.KeyChain; import android.security.KeyChain.KeyChainConnection; -import android.security.keystore.AndroidKeyStoreProvider; import android.security.keystore.KeyProperties; import android.security.keystore2.AndroidKeyStoreLoadStoreParameter; import android.util.Log; @@ -74,6 +73,8 @@ public class UserCredentialsSettings extends SettingsPreferenceFragment implements View.OnClickListener { private static final String TAG = "UserCredentialsSettings"; + private static final String KEYSTORE_PROVIDER = "AndroidKeyStore"; + @Override public int getMetricsCategory() { return SettingsEnums.USER_CREDENTIALS; @@ -210,15 +211,10 @@ public class UserCredentialsSettings extends SettingsPreferenceFragment private void deleteWifiCredential(final Credential credential) { try { - KeyStore keyStore = null; - if (AndroidKeyStoreProvider.isKeystore2Enabled()) { - keyStore = KeyStore.getInstance("AndroidKeyStore"); - keyStore.load( - new AndroidKeyStoreLoadStoreParameter( - KeyProperties.NAMESPACE_WIFI)); - } else { - keyStore = AndroidKeyStoreProvider.getKeyStoreForUid(Process.WIFI_UID); - } + final KeyStore keyStore = KeyStore.getInstance(KEYSTORE_PROVIDER); + keyStore.load( + new AndroidKeyStoreLoadStoreParameter( + KeyProperties.NAMESPACE_WIFI)); keyStore.deleteEntry(credential.getAlias()); } catch (Exception e) { throw new RuntimeException("Failed to delete keys from keystore."); @@ -278,18 +274,13 @@ public class UserCredentialsSettings extends SettingsPreferenceFragment final int wifiUid = UserHandle.getUid(myUserId, Process.WIFI_UID); try { - KeyStore processKeystore = KeyStore.getInstance("AndroidKeyStore"); + KeyStore processKeystore = KeyStore.getInstance(KEYSTORE_PROVIDER); processKeystore.load(null); KeyStore wifiKeystore = null; if (myUserId == 0) { - // Only the primary user may see wifi configurations. - if (AndroidKeyStoreProvider.isKeystore2Enabled()) { - wifiKeystore = KeyStore.getInstance("AndroidKeyStore"); - wifiKeystore.load(new AndroidKeyStoreLoadStoreParameter( - KeyProperties.NAMESPACE_WIFI)); - } else { - wifiKeystore = AndroidKeyStoreProvider.getKeyStoreForUid(Process.WIFI_UID); - } + wifiKeystore = KeyStore.getInstance(KEYSTORE_PROVIDER); + wifiKeystore.load(new AndroidKeyStoreLoadStoreParameter( + KeyProperties.NAMESPACE_WIFI)); } List credentials = new ArrayList<>(); diff --git a/src/com/android/settings/utils/AndroidKeystoreAliasLoader.java b/src/com/android/settings/utils/AndroidKeystoreAliasLoader.java index bb9abb981be..c4e8124c3ed 100644 --- a/src/com/android/settings/utils/AndroidKeystoreAliasLoader.java +++ b/src/com/android/settings/utils/AndroidKeystoreAliasLoader.java @@ -16,8 +16,6 @@ package com.android.settings.utils; -import android.os.Process; -import android.security.keystore.AndroidKeyStoreProvider; import android.security.keystore.KeyProperties; import android.security.keystore2.AndroidKeyStoreLoadStoreParameter; import android.util.Log; @@ -41,6 +39,8 @@ import java.util.Enumeration; public class AndroidKeystoreAliasLoader { private static final String TAG = "SettingsKeystoreUtils"; + private static final String KEYSTORE_PROVIDER = "AndroidKeyStore"; + private final Collection mKeyCertAliases; private final Collection mCaCertAliases; /** @@ -58,21 +58,13 @@ public class AndroidKeystoreAliasLoader { public AndroidKeystoreAliasLoader(Integer namespace) { mKeyCertAliases = new ArrayList<>(); mCaCertAliases = new ArrayList<>(); - KeyStore keyStore = null; + final KeyStore keyStore; final Enumeration aliases; try { + keyStore = KeyStore.getInstance(KEYSTORE_PROVIDER); if (namespace != null && namespace != KeyProperties.NAMESPACE_APPLICATION) { - if (AndroidKeyStoreProvider.isKeystore2Enabled()) { - keyStore = KeyStore.getInstance("AndroidKeyStore"); - keyStore.load(new AndroidKeyStoreLoadStoreParameter(namespace)); - } else { - // In the legacy case we pass in the WIFI UID because that is the only - // possible special namespace that existed as of this writing, - // and new namespaces must only be added using the new mechanism. - keyStore = AndroidKeyStoreProvider.getKeyStoreForUid(Process.WIFI_UID); - } + keyStore.load(new AndroidKeyStoreLoadStoreParameter(namespace)); } else { - keyStore = KeyStore.getInstance("AndroidKeyStore"); keyStore.load(null); } aliases = keyStore.aliases(); From 01da19f6a43904640f5ba6b703b3ecb405275a43 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 22 Mar 2021 21:04:30 +0000 Subject: [PATCH 12/20] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: Icad99664d1ec79ef02031537bb9a1ca851641757 --- res/values-iw/arrays.xml | 4 ++-- res/values-nl/arrays.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml index f71da6d6d24..b1f01a645ac 100644 --- a/res/values-iw/arrays.xml +++ b/res/values-iw/arrays.xml @@ -250,7 +250,7 @@ "‏שלח SMS" "‏קרא ICC SMS" "‏כתוב ICC SMS" - "שנה הגדרות" + "שינוי הגדרות" "צייר מעל" "גישה אל התראות" "מצלמה" @@ -305,7 +305,7 @@ "קרא יומן" "שנה יומן" "מיקום" - "פירסום התראה" + "פרסום התראה" "מיקום" "שיחת טלפון" "‏קרא SMS/MMS" diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml index 2228a8857aa..faba7eb84d1 100644 --- a/res/values-nl/arrays.xml +++ b/res/values-nl/arrays.xml @@ -272,7 +272,7 @@ "locatie met hoog energieverbruik controleren" "gebruiksstatistieken ophalen" "microfoon uit-/aanzetten" - "toast weergeven" + "toast tonen" "media projecteren" "VPN activeren" "achtergrond schrijven" @@ -339,7 +339,7 @@ "Locatie" "Gebruiksstatistieken ophalen" "Microfoon uit-/aanzetten" - "Toast weergeven" + "Toast tonen" "Media projecteren" "VPN activeren" "Achtergrond schrijven" From 927aaac8f63f9e5b431f7d8afca32f6b7a501a3b Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 22 Mar 2021 21:34:18 +0000 Subject: [PATCH 13/20] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I1948338eeed22ea232872da2e8ecfc80c86fd5a2 --- res/values-ca/strings.xml | 8 +- res/values-es-rUS/strings.xml | 2 +- res/values-fr-rCA/strings.xml | 8 +- res/values-gu/strings.xml | 2 +- res/values-it/strings.xml | 2 +- res/values-iw/strings.xml | 70 ++++++------ res/values-nl/strings.xml | 208 +++++++++++++++++----------------- res/values-ta/strings.xml | 4 +- 8 files changed, 152 insertions(+), 152 deletions(-) diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 7b7eefe5252..9b3663ad8bb 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -1197,7 +1197,7 @@ "Activat / La pantalla no s\'apagarà si estàs mirant-la" "Desactivat" "Cal accés a la càmera" - "Toca per gestionar els permisos dels serveis de personalització del dispositiu" + "Toca per gestionar els permisos dels Serveis de personalització del dispositiu" "Evita que la pantalla s\'apagui si l\'estàs mirant" "La funció Atenció a la pantalla fa servir la càmera frontal per detectar si algú està mirant la pantalla. Funciona al dispositiu i les imatges mai no s\'emmagatzemen ni s\'envien a Google." "Activa l\'atenció a la pantalla" @@ -2620,7 +2620,7 @@ "%1$s de RAM utilitzada durant %2$s" "Fons" "Primer pla" - "Memòria" + "A la memòria cau" "SO Android" "Nadiu" "Kernel" @@ -2644,7 +2644,7 @@ "Tipus d\'estadístiques" "Fons" "Primer pla" - "Memòria" + "A la memòria cau" "Entrada i sortida de veu" "Configuració d\'entrada i sortida de veu" "Cerca per veu" @@ -2674,7 +2674,7 @@ "Instal·la un certificat" "Instal·la els certificats des de l\'emmagatzematge" "Instal·la els certificats des de la targeta SD" - "Esborra els certificats" + "Esborra les credencials" "Esborra tots els certificats" "Certificats de confiança" "Mostra certificats de CA de confiança" diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index 96096eded25..f0509287f03 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -2668,7 +2668,7 @@ "Restablecer" "Reproducir" "VPN" - "Conectividad Adaptable" + "Conectividad adaptable" "Extiende la duración de batería y mejora el rendimiento del dispositivo, ya que administra automáticamente las conexiones de red" "Almacenamiento de credenciales" "Instala un certificado" diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml index 65114289c88..e26a6804946 100644 --- a/res/values-fr-rCA/strings.xml +++ b/res/values-fr-rCA/strings.xml @@ -717,7 +717,7 @@ "Dissocier" "Déconnecter et dissocier" "Options…" - "Options avancées" + "Paramètres avancés" "Paramètres Bluetooth avancés" "Si la fonctionnalité Bluetooth est activée, l\'appareil peut communiquer avec les autres appareils Bluetooth à proximité." "Lorsque le Bluetooth est activé, votre appareil peut communiquer avec d\'autres appareils Bluetooth à proximité.\n\nPour améliorer l\'expérience d\'utilisation de l\'appareil, les applications et les services peuvent continuer de rechercher les appareils à proximité à tout moment, même si le Bluetooth est désactivé. Cette autorisation peut permettre, par exemple, d\'améliorer les fonctionnalités et les services basés sur la localisation. Vous pouvez modifier cette option dans les ""paramètres de recherche""." @@ -844,7 +844,7 @@ "Plus d\'options" "Wi-Fi Direct" "Scanner" - "Options avancées" + "Paramètres avancés" "Configurer" "Se connecter au réseau" "Mémoriser ce réseau" @@ -2169,7 +2169,7 @@ "Toucher l\'écran trois fois" "toucher l\'écran trois fois" "Touchez rapidement l\'écran trois fois. Ce raccourci peut ralentir votre appareil." - "Avancé" + "Paramètres avancés" "Le bouton d\'accessibilité est défini à %1$s. Pour utiliser cette fonction, maintenez enfoncé le bouton d\'accessibilité, puis sélectionnez l\'agrandissement." "Le geste d\'accessibilité est défini pour %1$s. Pour utiliser le zoom, balayez l\'écran de bas en haut deux avec doigts, puis maintenez-les-y. Sélectionnez ensuite Zoom." "Raccourci touches volume" @@ -2680,7 +2680,7 @@ "Afficher les certificats d\'autorité de confiance" "Authentifiants d\'utilisateur" "Afficher et modifier les authentifiants stockés" - "Avancés" + "Paramètres avancés" "Type de stockage" "Intégré au matériel" "Uniquement logiciel" diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml index c285231e67f..926531dec38 100644 --- a/res/values-gu/strings.xml +++ b/res/values-gu/strings.xml @@ -539,7 +539,7 @@ "ફેસ અનલૉક + પાસવર્ડ" "ફેસ અનલૉક વિના ચાલુ રાખો" "તમે તમારા ફોનને તમારા ચહેરાની મદદથી અનલૉક કરી શકો છો. સુરક્ષા માટે, આ વિકલ્પ હેતુ બૅકઅપ સ્ક્રીન લૉક આવશ્યક છે." - "વ્યવસ્થાપક, એન્ક્રિપ્શન પૉલિસી કે ક્રિડેન્શ્યલ સ્ટોરેજ દ્વારા બંધ કરાયેલો" + "વ્યવસ્થાપક, એન્ક્રિપ્શન પૉલિસી કે ક્રિડેન્શ્યલ સ્ટોરેજ વડે બંધ કરેલ" "કોઈ નહીં" "સ્વાઇપ કરો" "પૅટર્ન" diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index b0e219000e5..39719d82e9e 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -3885,7 +3885,7 @@ "Inserisci PIN amministratore" "On" "Off" - "Blocco delle app su schermo" + "Blocco app su schermo" "Con il blocco delle app su schermo, l\'app corrente resterà visibile fino a quando decidi di sbloccarla. Questa funzionalità può essere utilizzata, ad esempio, per consentire a un amico di cui ti fidi di giocare a un gioco specifico. \n\nQuando un\'app è bloccata su schermo, questa potrebbe aprire altre app e i dati personali potrebbero essere accessibili. \n\nPer utilizzare il blocco delle app su schermo: \n1. Attiva il blocco delle app su schermo \n2. Apri Panoramica \n3. Tocca l\'icona dell\'app nella parte superiore della schermata, quindi tocca Blocca" "Con il blocco delle app su schermo, l\'app corrente resterà visibile fino a quando decidi di sbloccarla. Questa funzionalità può essere utilizzata, ad esempio, per consentire a un amico di cui ti fidi di giocare a un gioco specifico. \n\nUn\'app bloccata potrebbe aprire altre app e i dati personali potrebbero essere accessibili. \n\nSe vuoi condividere il tuo dispositivo con qualcuno in modo sicuro, prova a usare invece un utente ospite. \n\nPer utilizzare il blocco delle app su schermo: \n1. Attiva il blocco delle app su schermo. \n2. Apri Panoramica. \n3. Tocca l\'icona dell\'app nella parte superiore della schermata, quindi tocca Blocca." "Quando un\'app è bloccata su schermo: \n\n• I dati personali potrebbero essere accessibili (ad esempio i contatti o i contenuti delle email) \n\n• Le app bloccate potrebbero aprire altre app \n\nUtilizza il blocco delle app su schermo solo con persone di cui ti fidi." diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index 9d65709e864..6229021bdce 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -18,7 +18,7 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "כן" "לא" - "צור" + "יצירה" "כן, זה בסדר" "דחייה" "הפעלה" @@ -457,7 +457,7 @@ "בנוסף לביטול הנעילה של הטלפון, אפשר להשתמש בטביעת האצבע כדי לאשר רכישות וגישה לאפליקציות. ""למידע נוסף" " אפשרות נעילת המסך מושבתת. למידע נוסף ניתן לפנות למנהל המכשיר בארגון. ""למידע נוסף"\n\n"עדיין ניתן להשתמש בטביעת האצבע שלך כדי לאשר רכישות ולגשת לאפליקציות. ""למידע נוסף" "יש להרים את האצבע ולגעת שוב בחיישן" - "תוכל להוסיף עד %d טביעות אצבע" + "אפשר להוסיף עד %d טביעות אצבע" "הוספת את המספר המרבי של טביעות אצבע." "לא ניתן להוסיף עוד טביעות אצבע" "האם להסיר את כל טביעות האצבע?" @@ -857,7 +857,7 @@ "כדי להשתמש בתכונה, יש לבחור ספק של דירוג רשת" "כדי להשתמש בתכונה, יש לבחור ספק תואם של דירוג רשת" "התקנת אישורים" - "‏כדי לשפר את דיוק המיקום, אפליקציות ושירותים יוכלו לחפש רשתות Wi‑Fi בכל עת, גם כאשר ה-Wi‑Fi כבוי. ניתן להשתמש בכך, למשל, כדי לשפר תכונות ושירותים מבוססי מיקום. אפשר לשנות זאת בLINK_BEGINהגדרות הסריקהLINK_END." + "‏כדי לשפר את דיוק המיקום, אפליקציות ושירותים יוכלו לחפש רשתות Wi-Fi בכל עת, גם כאשר ה-Wi-Fi כבוי. ניתן להשתמש בכך, למשל, כדי לשפר תכונות ושירותים מבוססי מיקום. אפשר לשנות זאת בLINK_BEGINהגדרות הסריקהLINK_END." "‏כדי לשפר את דיוק המיקום, יש לחפש נקודות Wi-Fi בLINK_BEGINהגדרות הסריקהLINK_END." "אל תציג שוב" "‏ה-Wi-Fi ימשיך לפעול בזמן שינה" @@ -891,7 +891,7 @@ "‏התקנה אוטומטית (WPS)" "‏להפעיל את \'חיפוש נקודות Wi-Fi\'?" "‏כדי להפעיל Wi-Fi באופן אוטומטי, צריך קודם להפעיל את \'חיפוש נקודות Wi-Fi\'." - "‏חיפוש נקודות Wi-Fi מאפשר לאפליקציות ולשירותים לחפש תמיד רשתות Wi‑Fi, גם כאשר ה-Wi‑Fi כבוי. האפשרות הזו יעילה, למשל, לשיפור פיצ\'רים ושירותים מבוססי מיקום." + "‏חיפוש נקודות Wi-Fi מאפשר לאפליקציות ולשירותים לחפש תמיד רשתות Wi-Fi, גם כאשר ה-Wi-Fi כבוי. האפשרות הזו יעילה, למשל, לשיפור פיצ\'רים ושירותים מבוססי מיקום." "הפעלה" "‏\'חיפוש נקודות Wi-Fi\' מופעל" "אפשרויות מתקדמות" @@ -973,7 +973,7 @@ "ניסיון נוסף" "שתף עם משתמשים אחרים במכשיר" "(ללא שינוי)" - "בחר" + "יש לבחור" "(נוספו מספר אישורים)" "השתמש באישורי מערכת" "ללא אישור" @@ -987,7 +987,7 @@ "חיבור לרשת של %1$s" "‏לשיפור דיוק המיקום ולמטרות אחרות, %1$s רוצה להפעיל את חיפוש הרשתות, גם כאשר ה-Wi-Fi כבוי.\n\nהאם לאפשר זאת עבור כל האפליקציות?" "‏לשיפור של דיוק המיקום ולמטרות אחרות, אפליקציה לא ידועה רוצה להפעיל את סריקת הרשתות, גם כאשר ה-Wi-Fi כבוי.\n\nהאם להתיר זאת עבור כל האפליקציות שרוצות לסרוק?" - "כדי לכבות, עבור אל \'מתקדם\' באפשרויות הנוספות." + "כדי לכבות, עוברים אל \'מתקדם\' באפשרויות הנוספות." "כן, זה בסדר" "דחה" "האם להיכנס כדי להתחבר?" @@ -1186,10 +1186,10 @@ "אל תשמיע צלילים בעת הכנסת הטאבלט לעגינה או הסרתו משם" "אל תפעיל צליל בעת הכנסת הטלפון לעגינה או הוצאתו מעגינה" "חשבונות" - "חשבונות פרופיל עבודה - %s" + "חשבונות פרופיל עבודה – %s" "חשבונות פרופיל אישי" "חשבון עבודה - %s" - "חשבון אישי - %s" + "חשבון אישי – %s" "חיפוש" "תצוגה" "סיבוב אוטומטי של המסך" @@ -1529,7 +1529,7 @@ "לאחסון כל דבר במכשיר זה בלבד, כולל אפליקציות ותמונות. נדרשת קביעת פורמט שלא מאפשרת לו לפעול עם מכשירים אחרים." "קביעת פורמט כאחסון פנימי" "יש לפרמט את ^1 כדי שיהיה מאובטח. \n\nלאחר הפרמוט, ^1 זה יפעל רק במכשיר הזה. \n\n""הפרמוט מוחק את כל הנתונים שמאוחסנים כרגע ב-^1."" כדי למנוע את אובדן הנתונים, מומלץ לגבות אותם." - "פרמט כאחסון נייד" + "פירמוט כאחסון נייד" "יש לפרמט את ^1 כדי לבצע את הפעולה הזו. \n\n""פרמוט מוחק את כל הנתונים המאוחסנים ב^1."" מומלץ לגבות את הנתונים כדי לא לאבד אותם." "מחק ופרמט" "מפרמט את ^1…" @@ -1652,7 +1652,7 @@ "‏פעולה זו תמחק את כל הנתונים מ""האחסון הפנימי"" של הטלפון, כולל:\n\n"
  • "חשבון Google שלך"
  • \n
  • "הנתונים וההגדרות של המערכת והאפליקציות"
  • \n
  • "אפליקציות שהורדת"
  • \n\n"החשבונות הבאים שלך פעילים כעת:\n" \n\n"קיימים משתמשים אחרים במכשיר זה.\n" -
  • "מוסיקה"
  • \n
  • "תמונות"
  • \n
  • "נתוני משתמש אחרים"
  • +
  • "מוזיקה"
  • \n
  • "תמונות"
  • \n
  • "נתוני משתמש אחרים"
  • "‏"
  • "כרטיסי eSIM"
  • \n\n"מחיקת הנתונים לא תבטל את תוכנית השירות הסלולרי שלך." "‏\n\nכדי למחוק פריטי מוזיקה, תמונות ונתוני משתמש אחרים, יש למחוק את ""אחסון ה-USB""." @@ -1665,12 +1665,12 @@ "מחיקת כל הנתונים" "כל המידע האישי שלך והאפליקציות שהורדת יימחקו. לא ניתן לבטל את הפעולה הזו." "‏כל המידע האישי שלך יימחק, כולל אפליקציות וכרטיסי SIM שהורדת. לא ניתן לבטל את הפעולה הזו." - "מחיקת הכל" + "מחיקת הכול" "לא בוצע איפוס מכיוון שהשירות \'ניקוי מערכת\' אינו זמין." "האם למחוק את כל הנתונים?" "איפוס להגדרות היצרן אינו זמין עבור המשתמש הזה" "מוחק" - "אנא המתן..." + "רק רגע..." "הגדרות שיחה" "הגדרת דואר קולי, העברת שיחות, שיחה ממתינה, זיהוי מתקשר" "‏שיתוף אינטרנט דרך USB" @@ -1723,7 +1723,7 @@ "‏נקודה לשיתוף אינטרנט (Hotspot) ושיתוף אינטרנט בין מכשירים (tethering) מאפשרים למכשירים אחרים להתחבר לאינטרנט דרך Wi-Fi או דרך חבילת הגלישה שלך. יש גם אפליקציות שמאפשרות ליצור נקודה לשיתוף אינטרנט ולשתף תכנים עם מכשירים קרובים." "עזרה" "רשתות סלולריות" - "תכנית לנייד" + "תוכנית לנייד" "‏אפליקציית SMS" "‏לשנות את אפליקציית ה-SMS?" "‏האם להשתמש ב-%1$s במקום ב-%2$s כאפליקציית ה-SMS?" @@ -1738,7 +1738,7 @@ "‏הכנס כרטיס SIM ואתחל" "התחבר לאינטרנט" "בקשות של מיקומים אחרונים" - "הצג הכול" + "הצגת הכול" "שירותי מיקום" "המיקום שלי" "מיקום עבור פרופיל עבודה" @@ -2099,7 +2099,7 @@ "הפניה אוטומטית של רטט" "שליחת רטט אל בקר משחק כשמחובר" "בחירת פריסת מקלדת" - "הגדר פריסות מקלדת" + "הגדרת פריסות מקלדת" "‏כדי להחליף פריסה, הקש Control-מקש רווח" "ברירת מחדל" "פריסות מקלדת" @@ -2593,7 +2593,7 @@ "טלפון לא פעיל" "שונות" "חישוב יתר" - "‏CPU - סך הכל" + "‏CPU – סך הכול" "‏CPU בחזית" "שמירה במצב פעיל" "GPS" @@ -2639,7 +2639,7 @@ "בחירת מצב חיסכון בסוללה" "ייתכן שהאפליקציה מציעה הגדרות לצמצום צריכת הסוללה" "סוללה בשימוש על ידי משתמש" - "צריכת סוללה - שונות" + "צריכת סוללה – שונות" "צריכת הסוללה היא הערכה מקורבת של צריכת החשמל ואינה כוללת את כל הגורמים לניצול הסוללה. \'שונות\' הוא ההפרש בין הצריכה המקורבת שחושבה ובין הניצול בפועל שאובחן בסוללה." "חישוב יתר של שימוש בחשמל" "%d מיליאמפר לשעה" @@ -2739,7 +2739,7 @@ "שפה מדוברת" "התקנת צלילים" "המשך אל האפליקציה %s כדי להתקין צלילים" - "פתח האפליקציה" + "פתיחת האפליקציה" "ביטול" "איפוס המכשיר" "הפעלה" @@ -2827,14 +2827,14 @@
    "צלצול ורטט שיחה" "פרטי רשת" - "הסינכרון מופעל" - "הסינכרון מושבת" + "הסנכרון מופעל" + "הסנכרון מושבת" "מסנכרן כעת" "שגיאת סנכרון" "הסנכרון נכשל" "סנכרון פעיל" "סנכרון" - "הסינכרון נתקל כעת בבעיות. הוא ימשיך תוך זמן קצר." + "הסנכרון נתקל כעת בבעיות. הוא ימשיך תוך זמן קצר." "הוספת חשבון" "פרופיל עבודה עדיין אינו זמין" "פרופיל עבודה" @@ -2865,7 +2865,7 @@ "נתונים וסינכרון" "שנה סיסמה" "הגדרות חשבון" - "הסר חשבון" + "הסרת החשבון" "הוספת חשבון" "להסיר את החשבון?" "הסרת חשבון זה תגרום להסרת כל ההודעות, אנשי הקשר ונתונים נוספים מהטאבלט!" @@ -2886,7 +2886,7 @@ "קובצי \'שונות\'" "נבחרו %1$d מתוך %2$d" "%1$s מתוך %2$s" - "בחר הכל" + "בחירת הכול" "שימוש בנתונים" "‏חבילת גלישה ו-Wi‑Fi" "ייתכן שחישוב השימוש בנתונים אצל הספק יהיה שונה מזה שבמכשיר." @@ -3105,7 +3105,7 @@ "פרופיל מוגבל" "לא מוגדר" "לא מוגדר - פרופיל מוגבל" - "לא מוגדר - פרופיל עבודה" + "לא מוגדר – פרופיל עבודה" "מנהל מערכת" "את/ה (%s)" "כינוי" @@ -3234,7 +3234,7 @@ "‏כרטיסי SIM" "‏כרטיסי SIM" - "%1$s ‏- %2$s" + "%1$s ‏– %2$s" "‏כרטיסי SIM השתנו" "הקש כדי להגדיר פעילויות" "חבילת הגלישה לא זמינה" @@ -3273,10 +3273,10 @@ "‏בחירת SIM" "הגדרות" - ‏הצג %d פריטים מוסתרים - ‏הצג %d פריטים מוסתרים - ‏הצג %d פריטים מוסתרים - ‏הצג פריט %d מוסתר + ‏הצגת %d פריטים מוסתרים + ‏הצגת %d פריטים מוסתרים + ‏הצגת %d פריטים מוסתרים + ‏הצגת פריט %d מוסתר "רשת ואינטרנט" "סלולרית" @@ -3436,7 +3436,7 @@ "נא לא להפריע" "שליחת התראה רק מאפליקציות ומאנשים חשובים" "הגבלת הפרעות" - "הפעלת מצב נא לא להפריע" + "הפעלת מצב \'נא לא להפריע\'" "התראות וצלילי מדיה יכולים להפריע" "לוחות זמנים" "מחיקת לוחות זמנים" @@ -3860,7 +3860,7 @@ "יצירת הגדרות מותאמות אישית ללוח הזמנים" "למשך ‘%1$s’" ", " - "%1$s - %2$s" + "%1$s%2$s" "%1$s עד %2$s" "שיחות" "שיחות שיכולות להפריע" @@ -4102,7 +4102,7 @@ "כל האפליקציות" "אפליקציות מותקנות" "אפליקציות ללא התקנה" - "אפליקציות: הכל" + "אפליקציות: הכול" "ההתראות הושבתו" "קטגוריות: חשיבות דחופה" "קטגוריות: חשיבות נמוכה" @@ -4345,7 +4345,7 @@ "הותקנו %1$d אפליקציות" "הותקנו 24 אפליקציות" "%1$s בשימוש, %2$s פנויים" - "אחסון פנימי: %1$s בשימוש - %2$s פנוי" + "אחסון פנימי: %1$s בשימוש – %2$s פנוי" "עבור למצב שינה לאחר %1$s של חוסר פעילות" "טפטים, שינה וגודל הגופן" "סגנונות, טפטים, זמן קצוב לכיבוי המסך, גודל גופן" @@ -4436,7 +4436,7 @@ "סבב של שימוש בחבילת הגלישה" "אזהרה לגבי שימוש בנתונים: ^1" "מגבלת נתונים: ^1" - "אזהרה לגבי שימוש בנתונים - ^1 / מגבלת נתונים - ^2" + "אזהרה לגבי שימוש בנתונים – ^1 / מגבלת נתונים – ^2" "כל חודש ב-%1$s בחודש" "הגבלות רשת" @@ -5021,7 +5021,7 @@ "החיבור הצליח" "החיבור נכשל" "הצגת הכול" - "מתבצע חיפוש אחר מכשיר…" + "מתבצע חיפוש של מכשיר…" "מתבצעת התחברות למכשיר…" "שמאל" "ימין" diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index 932051ffa41..8e24636f2ea 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -154,7 +154,7 @@ "Eerder verbonden apparaten" "Eerder verbonden" "Bluetooth ingeschakeld" - "Alles weergeven" + "Alles tonen" "Datum en tijd" "Een tijdzone kiezen" @@ -282,18 +282,18 @@ "%1$s na time-out" "Onmiddellijk na time-out, behalve wanneer ontgrendeld gehouden door %1$s" "%1$s na time-out, behalve wanneer ontgrendeld gehouden door %2$s" - "Eigenaarsgegevens weergeven op vergrendeld scherm" + "Eigenaarsgegevens tonen op vergrendelscherm" "Tekst toevoegen op vergrendelscherm" "Widgets inschakelen" "Uitgeschakeld door beheerder" - "Lockdown-optie weergeven" + "Lockdown-optie tonen" "Optie voor aan/uit-knop weergeven waarmee Smart Lock, biometrische ontgrendeling en meldingen op het vergrendelscherm worden uitgeschakeld" "Scherm vergr. als vertrouwen kwijt is" "Indien ingeschakeld, wordt het apparaat vergrendeld wanneer de laatste trust agent het vertrouwen kwijtraakt" "Geen" "%1$d/%2$d" "Bijvoorbeeld \'Android van Jan\'." - "Profielinfo weergeven op vergrendelscherm" + "Profielinfo tonen op vergrendelscherm" "Accounts" "Locatie" "Locatie gebruiken" @@ -311,7 +311,7 @@ "Apparaat versleuteld" "Apparaat niet gecodeerd" "Vergrendelscherm" - "Wat wordt weergegeven" + "Wat wordt getoond" "\'Mijn locatie\', schermontgrendeling, sim- en certificaatopslagvergrendeling instellen" "\'Mijn locatie\' instellen, scherm ontgrendelen, certificaatopslag vergrendelen" "Privacy" @@ -825,7 +825,7 @@ "Certificaten installeren" "Apps en services kunnen gewoon wifi-netwerken detecteren, zelfs als wifi is uitgeschakeld, om de locatienauwkeurigheid te verbeteren. Dit kan worden gebruikt om bijvoorbeeld locatiegebaseerde functies en services te verbeteren. Je kunt dit wijzigen in de LINK_BEGINscaninstellingenLINK_END." "Schakel wifi-scannen in via de LINK_BEGINscaninstellingenLINK_END om de locatienauwkeurigheid te verbeteren." - "Niet opnieuw weergeven" + "Niet opnieuw tonen" "Wifi behouden in slaapstand" "Wifi aan in slaapstand" "Er is een probleem opgetreden bij het wijzigen van de instelling" @@ -886,7 +886,7 @@ "Identiteit" "Anonieme identiteit" "Wachtwoord" - "Wachtwoord weergeven" + "Wachtwoord tonen" "Frequentieband voor toegangspunt selecteren" "Automatisch" "2,4-GHz-frequentieband" @@ -966,7 +966,7 @@ "Je kunt overschakelen naar het mobiele netwerk wanneer er geen goede wifi-verbinding is. Er kunnen kosten voor datagebruik in rekening worden gebracht." "Overschakelen naar mobiel" "Wifi blijven gebruiken" - "Nooit meer laten zien" + "Nooit meer tonen" "Verbinden" "Wifi ingeschakeld" "Verbonden met %1$s" @@ -1086,7 +1086,7 @@ "Wifi" "Mobiel" - "Mobiel netwerk gebruiken als er geef wifi beschikbaar is" + "Mobiel netwerk gebruiken als er geen wifi beschikbaar is" "Gebruik wifi als er geen mobiel netwerk beschikbaar is" "Bellen via wifi. Zonder wifi-signaal wordt het gesprek beëindigd." "Wanneer bellen via wifi is ingeschakeld, kan je telefoon gesprekken doorschakelen via wifi-netwerken of het netwerk van je provider, afhankelijk van je voorkeur en welk signaal sterker is. Voordat je deze functie inschakelt, neem je contact met je provider op over de kosten en andere details.%1$s" @@ -1277,10 +1277,10 @@ "Automatische helderheid" "Optillen om te activeren" "Inactief scherm" - "Wanneer weergeven" + "Wanneer tonen" "Scherm activeren voor meldingen" "Als het scherm donker is, wordt het ingeschakeld bij nieuwe meldingen" - "Altijd tijd en info weergeven" + "Altijd tijd en info tonen" "Hoger batterijgebruik" "Lettergrootte" "Tekst groter of kleiner maken" @@ -1346,8 +1346,8 @@ "Opslag en cache" "Opslag" "Instellingen voor opslag" - "USB-opslag ontkoppelen, beschikbare opslag weergeven" - "SD-kaart ontkoppelen, beschikbare opslagruimte weergeven" + "USB-opslag ontkoppelen, beschikbare opslag bekijken" + "SD-kaart ontkoppelen, beschikbare opslagruimte bekijken" "IMEI (simkaartsleuf %1$d)" "Kies opgeslagen netwerk om te bekijken" "MDN" @@ -1696,7 +1696,7 @@ "Plaats een simkaart en start het apparaat opnieuw" "Maak verbinding met internet" "Recente locatieverzoeken" - "Alles weergeven" + "Alles tonen" "Locatieservices" "Mijn locatie" "Locatie voor werkprofiel" @@ -1707,7 +1707,7 @@ %1$d van %2$d apps heeft toegang tot de locatie "Recente locatietoegang" - "Details weergeven" + "Details bekijken" "Er zijn geen apps die je locatie onlangs hebben opgevraagd" "Er zijn geen apps die recent toegang hebben gehad tot je locatie" "Hoog accugebruik" @@ -1736,7 +1736,7 @@ "Over de telefoon" "Over het apparaat" "Over het geëmuleerde apparaat" - "Juridische info, status, softwareversie weergeven" + "Juridische info, status, softwareversie bekijken" "Juridische informatie" "Bijdragers" "Handleiding" @@ -1756,7 +1756,7 @@ "Laden..." "Veiligheidsinformatie" "Veiligheidsinformatie" - "Je hebt geen gegevensverbinding. Als je deze informatie nu wilt weergeven, ga je op een computer met internetverbinding naar %s." + "Je hebt geen dataverbinding. Als je deze informatie nu wilt bekijken, ga je op een computer met internetverbinding naar %s." "Laden..." "Schermvergrendeling instellen" "Stel een wachtwoord in voor betere beveiliging" @@ -1851,8 +1851,8 @@ "Alle appbronnen toestaan" "Recent geopende apps" - Alle %1$d apps weergeven - Alle apps weergeven + Alle %1$d apps tonen + Alle apps tonen "Neem contact op met je IT-beheerder" "De beheerder kan je helpen je pincode, patroon of wachtwoord te resetten" @@ -1908,8 +1908,8 @@ "Sorteren op grootte" "Meest recent" "Vaakst" - "Actieve services weergeven" - "Gecachte processen weerg." + "Actieve services tonen" + "Processen in cache tonen" "Nood-app" "App-voorkeuren resetten" "App-voorkeuren resetten?" @@ -1967,7 +1967,7 @@ "(Nooit gebruikt)" "Geen standaard-apps." "Opslaggebruik" - "Gebruikte opslagruimte voor apps weergeven" + "Gebruikte opslagruimte voor apps bekijken" "Opnieuw starten" "Gecacht achtergrondproces" "Niets wordt uitgevoerd." @@ -2027,7 +2027,7 @@ "Automatische interpunctie" "Instellingen voor vast toetsenbord" "Druk twee keer op de spatiebalk om een punt (.) in te voegen" - "Wachtwoorden weergeven" + "Wachtwoorden tonen" "Tekens kort weergeven terwijl je typt" "Deze spellingcontrole verzamelt mogelijk alle tekst die je typt, inclusief persoonsgegevens zoals wachtwoorden en creditcardnummers. De service is afkomstig uit de app %1$s. Wil je deze spellingcontrole gebruiken?" "Instellingen" @@ -2040,7 +2040,7 @@ "Toetsenbordondersteuning" "Fysiek toetsenbord" "Schermtoetsenbord gebruiken" - "Dit op het scherm weergeven terwijl het fysieke toetsenbord actief is" + "Op het scherm tonen terwijl het fysieke toetsenbord actief is" "Sneltoetsen" "Beschikbare sneltoetsen weergeven" "Toetsenborden en tools van werkprofiel" @@ -2083,7 +2083,7 @@ "Huidig toetsenbord" "Selectie voor invoermethode" "Automatisch" - "Altijd weergeven" + "Altijd tonen" "Altijd verbergen" "Invoermethoden instellen" "Instellingen" @@ -2195,7 +2195,7 @@ "2 minuten" "Tijd voor actie (time-out voor toegankelijkheid)" "Tijd om actie te ondernemen" - "Kies hoelang je berichten wilt weergeven die je vragen om actie te ondernemen, maar die slechts tijdelijk zichtbaar zijn.\n\nDeze instelling wordt niet door alle apps ondersteund." + "Kies hoelang je berichten wilt tonen die je vragen om actie te ondernemen, maar die slechts tijdelijk zichtbaar zijn.\n\nDeze instelling wordt niet door alle apps ondersteund." "Vertraging voor blijven aanraken" "Kleurinversie" "Kleurinversie gebruiken" @@ -2220,7 +2220,7 @@ "%1$s gebruiken" "%1$s openen" "Kleurcorrectie gebruiken" - "Ondertiteling weergeven" + "Ondertiteling tonen" "Alleen voor ondersteunde apps" "Grootte en stijl van ondertiteling" "Tekstgrootte %1$s" @@ -2246,7 +2246,7 @@ "Uit" "Werkt niet. Tik voor informatie." "Deze service werkt niet goed." - "Weergeven in Snelle instellingen" + "Tonen in Snelle instellingen" "Correctiemodus" "Deuteranomalie" "Protanomalie" @@ -2368,7 +2368,7 @@ "%1$s annuleren" "Printerfout %1$s" "%1$s geblokkeerd door printer" - "Zoekvak weergegeven" + "Zoekvak getoond" "Zoekvak verborgen" "Meer informatie over deze printer" "Batterij" @@ -2612,7 +2612,7 @@ "Nooit" "bij %1$s batterijlading" "Batterijpercentage" - "Batterijpercentage in statusbalk weergeven" + "Batterijpercentage in statusbalk tonen" "Processtatistieken" "Statistieken voor nerds over actieve processen" "Geheugengebruik" @@ -2637,9 +2637,9 @@ "6 uur" "12 uur" "1 dag" - "Systeem weergeven" + "Systeem tonen" "Systeem verbergen" - "Percentages weergeven" + "Percentages tonen" "USS gebruiken" "Statistiektype" "Achtergrond" @@ -2821,10 +2821,10 @@ "Dataroaming" "Achtergrondgegevens beperken" "Achtergrondgegev. toestaan" - "4G-gebruik apart weergeven" - "Wifi weergeven" + "4G-gebruik apart tonen" + "Wifi tonen" "Wifi verbergen" - "Ethernetgebruik weergeven" + "Ethernetgebruik tonen" "Ethernetgebruik verbergen" "Netwerkbeperkingen" "Gegevens automatisch synchroniseren" @@ -2911,7 +2911,7 @@ "IPSec-gebruikerscertificaat" "CA-certificaat voor IPSec" "IPSec-servercertificaat" - "Geavanceerde opties weergeven" + "Geavanceerde opties tonen" "DNS-zoekdomeinen" "DNS-servers (bijv. 8.8.8.8)" "Doorstuurroutes (bijv. 10.0.0.0/8)" @@ -3187,8 +3187,8 @@ "Simkaartselectie" "Instellingen" - %d verborgen items weergeven - %d verborgen item weergeven + %d verborgen items tonen + %d verborgen item tonen "Netwerk en internet" "mobiel" @@ -3370,7 +3370,7 @@ "Wanneer er meldingen binnenkomen, laat je telefoon geen geluid horen en trilt deze niet" "Geen zichtbare of hoorbare meldingen" "Je ziet of hoort geen meldingen" - "Je telefoon trilt niet en maakt geen geluid voor nieuwe of bestaande meldingen. Ook laat je telefoon deze niet zien. Belangrijke meldingen over je telefoonactiviteit en -status blijven echter wel verschijnen.\n\nAls je \'Niet storen\' uitschakelt, kun je de gemiste meldingen zien door van boven naar beneden te vegen op je scherm." + "Je telefoon trilt niet en maakt geen geluid voor nieuwe of bestaande meldingen. Ook laat je telefoon deze niet zien. Je ziet wel nog belangrijke meldingen over je telefoonactiviteit en -status.\n\nAls je \'Niet storen\' uitzet, kun je de gemiste meldingen zien door vanaf de bovenkant van het scherm omlaag te swipen." "Aangepast" "Aangepaste instelling inschakelen" "Aangepaste instelling verwijderen" @@ -3461,7 +3461,7 @@ "Andere geluiden en trillingen" "Meldingen" "Recent verstuurd" - "Alles weergeven van de afgelopen zeven dagen" + "Alles van de afgelopen 7 dagen tonen" "Geavanceerd" "Werkmeldingen" "Aanpasbare meldingen" @@ -3470,40 +3470,40 @@ "Aanpasbare rangschikking van meldingen" "Meldingen automatisch rangschikken op relevantie" "Voorgestelde acties en antwoorden" - "Voorgestelde acties en antwoorden automatisch weergeven" - "Recente en gesnoozede meldingen weergeven" + "Voorgestelde acties en antwoorden automatisch tonen" + "Recente en gesnoozede meldingen tonen" "Meldingsgeschiedenis" "Meldingsgeschiedenis gebruiken" "Meldingsgeschiedenis uitgeschakeld" "Schakel de meldingsgeschiedenis in om recente meldingen en gesnoozede meldingen te bekijken" "Geen recente meldingen" - "Je recente en gesnoozede meldingen worden hier weergegeven" + "Je recente en gesnoozede meldingen zie je hier" "instellingen voor meldingen bekijken" "melding openen" "Snoozen van meldingen toestaan" "Pictogrammen van subtiele meldingen verbergen" - "Pictogrammen van subtiele meldingen worden niet weergegeven in de statusbalk" + "Iconen van subtiele meldingen worden niet getoond in de statusbalk" "Meldingsstipje op app-icoon" - "Strook met recente gesprekken weergeven" + "Strook met recente gesprekken tonen" "Bubbels" - "Bepaalde meldingen en andere content kunnen in bubbels worden weergegeven op het scherm. Tik op een bubbel om deze te openen. Sleep deze naar de onderkant van het scherm als je deze wilt sluiten." + "Bepaalde meldingen en andere content kunnen in bubbels worden getoond op het scherm. Tik op een bubbel om deze te openen. Sleep deze naar de onderkant van het scherm als je deze wilt sluiten." "Bubbels" "Alle instellingen voor bubbels" - "Dit gesprek als bubbel weergeven" - "Zwevend icoon vóór apps weergeven" - "Toestaan dat %1$s bepaalde meldingen weergeeft als bubbels" + "Dit gesprek als bubbel tonen" + "Zwevend icoon vóór apps tonen" + "Toestaan dat %1$s bepaalde meldingen toont als bubbels" "Bubbels voor apparaat inschakelen?" - "Als je bubbels inschakelt voor deze app, worden bubbels ook ingeschakeld voor je apparaat.\n\nDit is van invloed op andere apps of gesprekken die als bubbel mogen worden weergegeven." + "Als je bubbels gebruikt voor deze app, worden bubbels ook gebruikt voor je apparaat.\n\nDit is van invloed op andere apps of gesprekken die als bubbel mogen worden getoond." "Inschakelen" "Annuleren" - "Aan: gesprekken kunnen worden weergegeven als zwevende iconen" - "Toestaan dat apps bubbels weergeven" - "Sommige gesprekken worden over andere apps heen weergegeven als zwevende iconen" - "Alle gesprekken kunnen als bubbel worden weergegeven" + "Aan: gesprekken kunnen als zwevende iconen worden getoond" + "Toestaan dat apps bubbels tonen" + "Sommige gesprekken worden vóór andere apps weergegeven als zwevende iconen" + "Alle gesprekken kunnen als bubbel worden getoond" "Geselecteerde gesprekken kunnen als bubbel worden getoond" - "Niets kan als bubbel worden weergegeven" + "Niets kan als bubbel worden getoond" "Gesprekken" - "Alle gesprekken kunnen als bubbel worden weergegeven, behalve" + "Alle gesprekken kunnen als bubbel worden getoond, behalve" "Bubbels uitschakelen voor dit gesprek" "Bubbels inschakelen voor dit gesprek" "Swipeacties" @@ -3513,7 +3513,7 @@ "Ook weergeven in" "Statusbalk" "Vergrendelscherm" - "Subtiele meldingen maken geen geluid en worden altijd weergegeven in het pull-downvenster" + "Subtiele meldingen maken geen geluid en worden altijd in het pull-downvenster getoond" "Alleen weergeven in pull-downvenster" "Weergeven in pull-downvenster en op vergrendelscherm" "Weergeven in pull-downvenster en statusbalk" @@ -3526,21 +3526,21 @@ "Scherm vergrendelen, vergrendelscherm, overslaan" "Als werkprofiel is vergrendeld" "Meldingen op vergrendelscherm" - "Gesprekken (standaard en stil) weergeven" + "Gesprekken (standaard en stil) tonen" "Stille gesprekken en meldingen verbergen" - "Geen meldingen weergeven" + "Geen meldingen tonen" "Gevoelige meldingen" - "Gevoelige content weergeven op vergrendelscherm" + "Gevoelige content tonen op vergrendelscherm" "Gevoelige werkprofielmeldingen" - "Gevoelige werkprofielcontent weergeven op vergrendelscherm" - "Content van alle meldingen weergeven" - "Gevoelige content alleen weergeven als ontgrendeld" + "Gevoelige werkprofielcontent tonen op vergrendelscherm" + "Content van alle meldingen tonen" + "Gevoelige content alleen tonen als ontgrendeld" "Helemaal geen meldingen tonen" "Hoe wil je dat het vergrendelscherm wordt weergegeven?" "Vergrendelscherm" - "Content van alle werkmeldingen weergeven" + "Content van alle werkmeldingen tonen" "Gevoelige werkcontent verbergen" - "Hoe moeten profielmeldingen worden weergegeven wanneer je apparaat is vergrendeld?" + "Hoe moeten profielmeldingen worden getoond als je apparaat is vergrendeld?" "Profielmeldingen" "Meldingen" "App-meldingen" @@ -3564,18 +3564,18 @@ %d prioriteitsgesprek "Prioriteitsgesprekken" - "Bovenaan het gespreksgedeelte weergeven als zwevende bubbels" - "Bovenaan het gespreksgedeelte weergeven" + "Bovenaan het gespreksgedeelte tonen als zwevende bubbels" + "Bovenaan het gespreksgedeelte tonen" "Andere gesprekken" "Gesprekken waarin je wijzigingen hebt aangebracht" - "Prioriteitsgesprekken als bubbel weergeven" - "Prioriteitsgesprekken worden bovenaan het pull-downvenster weergegeven. Je kunt ook instellen dat ze als bubbels worden weergegeven en \'Niet storen\' onderbreken." - "Prioriteitsgesprekken en gewijzigde gesprekken worden hier weergegeven" - "Zodra je een gesprek als prioriteitsgesprek markeert of wijzigingen in gesprekken aanbrengt, worden ze hier weergegeven. \n\nGespreksinstellingen wijzigen: \nSwipe omlaag vanaf de bovenkant van het scherm om het pull-downvenster te openen, tik op een gesprek en houd dit vast." - "Stil weergeven en minimaliseren" - "Zonder geluid weergeven" + "Prioriteitsgesprekken als bubbel tonen" + "Prioriteitsgesprekken worden bovenaan het pull-downvenster getoond. Je kunt ook instellen dat ze als bubbels worden getoond en \'Niet storen\' onderbreken." + "Prioriteitsgesprekken en gewijzigde gesprekken zie je hier" + "Zodra je een gesprek als prioriteitsgesprek markeert of wijzigingen in gesprekken aanbrengt, zie je ze hier. \n\nGespreksinstellingen wijzigen: \nSwipe omlaag vanaf de bovenkant van het scherm om het pull-downvenster te openen, tik op een gesprek en houd het vast." + "Stil tonen en minimaliseren" + "Zonder geluid tonen" "Geluid laten horen" - "Geluid laten horen en op het scherm weergeven" + "Geluid laten horen en op het scherm tonen" "Weergeven op scherm" "Minimaliseren" "Gemiddeld" @@ -3585,13 +3585,13 @@ "Stil" "Standaard" "Onderbrekingen toestaan" - "De app geluid laten maken, laten trillen en/of meldingen laten weergeven op het scherm" + "De app geluid laten maken, laten trillen en/of meldingen laten tonen op het scherm" "Prioriteit" "Verschijnt als zwevende bubbel bovenaan het gespreksgedeelte en toont profielfoto op vergrendelscherm" - "%1$s ondersteunt de meeste gespreksfuncties niet. Je kunt niet instellen dat een gesprek prioriteit heeft en gesprekken worden niet weergegeven als zwevende bubbels." + "%1$s ondersteunt de meeste gespreksfuncties niet. Je kunt niet instellen dat een gesprek prioriteit heeft en gesprekken worden niet getoond als zwevende bubbels." "Meldingen in het pull-downvenster samenvouwen tot één regel" "Geen geluid of trilling" - "Geen geluid of trilling en wordt op een lagere positie in het gedeelte met gesprekken weergegeven" + "Geen geluid of trilling en wordt op een lagere positie in het gedeelte met gesprekken getoond" "Kan overgaan of trillen op basis van de telefooninstellingen" "Wanneer het apparaat is ontgrendeld, worden meldingen als banner bovenaan het scherm getoond" "Alle meldingen van \'%1$s\'" @@ -3690,7 +3690,7 @@ "Aan" "Uit" "Alles blokkeren" - "Deze meldingen nooit weergeven" + "Deze meldingen nooit tonen" "Meldingen tonen" "Nooit meldingen tonen in het meldingenpaneel of op randapparaten" "Meldingsstipje toestaan" @@ -3874,7 +3874,7 @@ "Wijzigen in \'Alleen wekkers\' tot %1$s" "Wijzigen in \'Altijd onderbreken\'" "Wanneer het scherm is ingeschakeld" - "Meldingen die door \'Niet storen\' geen geluid maken, op het scherm laten weergeven en een icoon in de statusbalk weergeven" + "Meldingen die door \'Niet storen\' geen geluid maken, op het scherm laten zien en een icoon in de statusbalk tonen" "Wanneer het scherm is uitgeschakeld" "Toestaan dat meldingen die op stil zijn gezet door \'Niet storen\', het scherm inschakelen of het meldingslampje laten knipperen" "Meldingen die op stil zijn gezet door \'Niet storen\', het scherm laten inschakelen" @@ -3886,8 +3886,8 @@ "Aan" "Uit" "App vastzetten" - "Als je een app vastzet, kun je de huidige app blijven weergeven totdat je deze losmaakt. Je kunt deze functie bijvoorbeeld gebruiken om een vriend die je vertrouwt een specifieke game te laten spelen. \n\nAls een app is vastgezet, kan de vastgezette app mogelijk andere apps openen en zijn er misschien persoonlijke gegevens toegankelijk. \n\nEen app vastzetten: \n1. Schakel \'App vastzetten\' in. \n2. Open \'Overzicht\'. \n3. Tik bovenaan het scherm op het app-icoon en daarna op \'Vastzetten\'." - "Als je een app vastzet, kun je de huidige app in beeld houden totdat je deze weer losmaakt. Je kunt deze functie bijvoorbeeld gebruiken om een vriend die je vertrouwt, een specifieke game te laten spelen. \n\nAls een app is vastgezet, kan de vastgezette app mogelijk andere apps openen en zijn er misschien persoonlijke gegevens toegankelijk. \n\nAls je je apparaat op een veilige manier met iemand wilt delen, gebruik dan liever een gastgebruiker. \n\nEen app vastzetten: \n1. Schakel \'App vastzetten\' in. \n2. Open \'Overzicht\'. \n3. Tik bovenaan het scherm op het app-icoon en daarna op \'Vastzetten\'." + "Als je een app vastzet, kun je de huidige app in beeld houden totdat je deze losmaakt. Je kunt deze functie bijvoorbeeld gebruiken om een vriend die je vertrouwt een specifieke game te laten spelen. \n\nAls een app is vastgezet, kan de vastgezette app mogelijk andere apps openen en zijn er misschien persoonlijke gegevens toegankelijk. \n\nEen app vastzetten: \n1. Zet App vastzetten aan. \n2. Open Overzicht. \n3. Tik bovenaan het scherm op het app-icoon en daarna op Vastzetten." + "Als je een app vastzet, kun je de huidige app in beeld houden totdat je deze weer losmaakt. Je kunt deze functie bijvoorbeeld gebruiken om een vriend die je vertrouwt, een specifieke game te laten spelen. \n\nAls een app is vastgezet, kan de vastgezette app mogelijk andere apps openen en zijn er misschien persoonlijke gegevens toegankelijk. \n\nAls je je apparaat op een veilige manier met iemand wilt delen, gebruik dan liever een gastgebruiker. \n\nEen app vastzetten: \n1. Zet App vastzetten aan. \n2. Open Overzicht. \n3. Tik bovenaan het scherm op het app-icoon en daarna op Vastzetten." "Als een app is vastgezet: \n\n•  Persoonlijke gegevens kunnen toegankelijk zijn \n (zoals contacten en e-mailcontent). \n•  De vastgezette app kan mogelijk andere apps openen. \n\nGebruik deze functie alleen met mensen die je vertrouwt." "Vraag om ontgrendelingspatroon voor losmaken" "Vraag pin voor losmaken" @@ -4036,8 +4036,8 @@ "%1$s (%2$d)" "Batterijoptimalisatie" "Gebruiksmeldingen" - "Gebruik voor hele apparaat weergeven" - "App-gebruik weergeven" + "Gebruik voor hele apparaat tonen" + "App-gebruik tonen" %2$d vertonen abnormaal gedrag %1$s vertoont abnormaal gedrag @@ -4057,7 +4057,7 @@ "Energiebeheer" "Geen accugebruik sinds laatste volledige lading" "App-instellingen" - "SystemUI Tuner weergeven" + "SystemUI Tuner tonen" "Aanvullende rechten" "Nog %1$d" "Bugrapport delen?" @@ -4227,7 +4227,7 @@ "Je beheerder kan apps en gegevens bijhouden en beheren die aan dit apparaat zijn gekoppeld (waaronder instellingen, rechten, zakelijke toegang, netwerkactiviteit en locatiegegevens van het apparaat)." "Uitschakelen" "Inschakelen" - "Weergeven" + "Tonen" "Verbergen" "Hotspot is actief" "Vliegmodus is ingeschakeld" @@ -4367,7 +4367,7 @@ "prioriteit" "belang" "uitleg" - "kan badge weergeven" + "kan badge tonen" "intentie" "intentie verwijderen" "intentie voor volledig scherm" @@ -4379,7 +4379,7 @@ "icoon" "pakketgrootte" "ashmem" - "waarschuwing voor melding weergegeven" + "waarschuwing voor melding getoond" "kanaal" "geen" "Rangschikkingsobject ontbreekt" @@ -4394,13 +4394,13 @@ %d apps kunnen onbeperkt data gebruiken 1 app kan onbeperkt data gebruiken - "Meer weergeven" + "Meer tonen" "Weet je zeker dat je de gebruikersgegevens wilt wissen en wilt converteren naar versleuteling op basis van bestanden?" "Wissen en converteren" "Rate limiting van ShortcutManager resetten" "De rate limiting van ShortcutManager is gereset." "Informatie op vergrendelscherm beheren" - "Content van meldingen weergeven of verbergen" + "Content van meldingen tonen of verbergen" "Alle" "Tips en support" "Kleinste breedte" @@ -4427,7 +4427,7 @@ "Contacten zoeken" "Contactzoekopdrachten door je organisatie toestaan om bellers en contacten te identificeren" "Agenda voor meerdere profielen" - "Werkafspraken weergeven in je persoonlijke agenda" + "Werkafspraken tonen in je persoonlijke agenda" %s uur 1 uur @@ -4637,8 +4637,8 @@ "Deze functie is uitgeschakeld omdat je telefoon erdoor wordt vertraagd" "Volledige GNSS-metingen afdwingen" "Alle GNSS-constellaties en -frequenties bijhouden zonder duty cycling" - "Altijd een crashvenster weergeven" - "Bij gecrashte apps altijd een venster weergeven" + "Altijd een crashvenster tonen" + "Bij gecrashte apps altijd een venster tonen" "App met ANGLE-functionaliteit selecteren" "Geen app met ANGLE-functionaliteit ingesteld" "App met ANGLE-functionaliteit: %1$s" @@ -4834,7 +4834,7 @@ "Namen toegangspunten" "Niet beschikbaar wanneer verbonden met %1$s" "Meer bekijken" - "Minder weergeven" + "Minder tonen" "Verbinding maken met apparaat" "De app %1$s wil een tijdelijk wifi-netwerk gebruiken om verbinding te maken met je apparaat." "Geen apparaten gevonden. Zorg dat apparaten zijn ingeschakeld en beschikbaar zijn voor verbinding." @@ -4874,7 +4874,7 @@ "0 apps hebben rechten gebruikt" "Rechtengebruik in de afgelopen 24 uur" - "Alles weergeven op dashboard" + "Alles op dashboard tonen" %s apps 1 app @@ -4928,18 +4928,18 @@ "kaarten en passen" "Menu voor aan/uit-knop" "Menu voor aan/uit-knop" - "Kaarten en passen weergeven" - "Apparaatbediening weergeven" - "Kaarten, passen en apparaatbediening weergeven" + "Kaarten en passen tonen" + "Apparaatbediening tonen" + "Kaarten, passen en apparaatbediening tonen" "Vergrendelscherm" - "Geen content weergeven" + "Geen content tonen" "Gevoelige content" - "Kaarten en bedieningselementen weergeven indien vergrendeld" - "Bedieningselementen weergeven op vergrendelscherm" - "Kaarten weergeven als apparaat is vergrendeld" + "Kaarten en bedieningselementen tonen op vergrendelscherm" + "Bedieningselementen tonen op vergrendelscherm" + "Kaarten tonen op vergrendelscherm" "Kaarten en bedieningselementen verbergen indien vergrendeld" "Stel voor gebruik eerst een schermvergrendeling in" - "Apparaatbediening weergeven" + "Apparaatbediening tonen" "Kaarten en passen" "Houd de aan/uit-knop ingedrukt om toegang te krijgen tot apparaatopties voor verbonden apparaten" "Tik op de aan/uit-knop en houd deze ingedrukt om je betaalmethoden, instapkaarten en meer te zien." @@ -4958,9 +4958,9 @@ "Toestaan dat apps die vóór andere apps kunnen worden weergegeven, vóór instellingsschermen worden weergegeven" "Media" "Mediaspeler in Snelle instellingen" - "Mediaspeler langer weergeven om afspelen makkelijker te hervatten" + "Mediaspeler langer tonen om afspelen makkelijker te hervatten" "Speler verbergen" - "Speler weergeven" + "Speler tonen" "Geen spelers beschikbaar" "media" "Bluetooth wordt ingeschakeld" diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml index 5ca431efd8e..fdc07ae951c 100644 --- a/res/values-ta/strings.xml +++ b/res/values-ta/strings.xml @@ -3775,9 +3775,9 @@ ஒருவர் "ஏதுமில்லை" - "Messages" + "மெசேஜஸ்" "மெசேஜ்கள்" - "Messages" + "மெசேஜஸ்" "குறுக்கிட முடிந்த மெசேஜ்கள்" "அனுமதிக்கப்படும் மெசேஜ்கள் ஒலி எழுப்புமா என்பதை உறுதிப்படுத்த உங்கள் சாதனம் ஒலி எழுப்பும்படி உள்ளதா என்பதைச் சரிபார்க்கவும்" "‘%1$s’ என்பதற்கு உள்வரும் மெசேஜ்கள் தடுக்கப்பட்டுள்ளன. உங்களைத் தொடர்புகொள்ள நண்பர்களையோ குடும்பத்தினரையோ வேறு தொடர்புகளையோ அனுமதிக்குமாறு அமைப்புகளை மாற்றிக்கொள்ளலாம்." From 3b5c5f0d7c0e3e2b70d11992fed87dd31c0e1a02 Mon Sep 17 00:00:00 2001 From: Dmitri Plotnikov Date: Mon, 22 Mar 2021 15:51:21 -0700 Subject: [PATCH 14/20] Change getStatsStartRealtime to getStatsStartTimestamp Bug: 183434301 Test: make RunSettingsRoboTests Test: make RunSettingsGoogleRoboTests Change-Id: Ic86a04a91d910c863706a0f799c757dcd7c5262d --- src/com/android/settings/fuelgauge/BatteryUtils.java | 2 +- .../src/com/android/settings/fuelgauge/BatteryUtilsTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/fuelgauge/BatteryUtils.java b/src/com/android/settings/fuelgauge/BatteryUtils.java index 16455905ce7..68a0b033f1a 100644 --- a/src/com/android/settings/fuelgauge/BatteryUtils.java +++ b/src/com/android/settings/fuelgauge/BatteryUtils.java @@ -298,7 +298,7 @@ public class BatteryUtils { */ public long calculateLastFullChargeTime(BatteryUsageStats batteryUsageStats, long currentTimeMs) { - return currentTimeMs - batteryUsageStats.getStatsStartRealtime(); + return currentTimeMs - batteryUsageStats.getStatsStartTimestamp(); } public static void logRuntime(String tag, String message, long startTime) { diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java index 775ca4015a1..744db8c4e97 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java @@ -277,7 +277,7 @@ public class BatteryUtilsTest { @Test public void testCalculateLastFullChargeTime() { final long currentTimeMs = System.currentTimeMillis(); - when(mBatteryUsageStats.getStatsStartRealtime()).thenReturn( + when(mBatteryUsageStats.getStatsStartTimestamp()).thenReturn( currentTimeMs - TIME_SINCE_LAST_FULL_CHARGE_MS); assertThat(mBatteryUtils.calculateLastFullChargeTime(mBatteryUsageStats, currentTimeMs)) From 22339eb5059fbedd0a0ebf0c3c06ae8c9e620ae7 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Tue, 23 Mar 2021 11:40:36 +0800 Subject: [PATCH 15/20] [Provider Model] Remove unused strings. Bug: 183459230 Test: build passed Change-Id: I4ca000659172e568245c7a431f571be3d83e50e0 --- res/values/strings.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index d306ea9b5b5..869f7c3fe85 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -12788,10 +12788,6 @@ Connect to public networks network connection, internet, wireless, data, wifi, wi-fi, wi fi, cellular, mobile, cell carrier, 4g, 3g, 2g, lte - - View airplane mode networks - - Viewing airplane mode networks Turn on Wi\u2011Fi From 3a52e335be12b14d7cb62846697a764168e37978 Mon Sep 17 00:00:00 2001 From: "Wesley.CW Wang" Date: Fri, 19 Mar 2021 19:34:49 +0800 Subject: [PATCH 16/20] Remove Battery Settings page default tips - Remove SummaryTips from default tips - Clean up test file import Screenshot: https://screenshot.googleplex.com/6rYrnMvoTbeCS7m.png Bug: 183079415 Test: make RunSettingsRoboTests -j40 Change-Id: I1001d75235a6d8d5947b974939884103eb0834da --- .../batterytip/BatteryTipLoader.java | 2 -- .../batterytip/BatteryTipPolicy.java | 2 +- .../BatteryTipPreferenceController.java | 10 ++++---- .../batterytip/BatteryTipLoaderTest.java | 1 - .../BatteryTipPreferenceControllerTest.java | 24 ++++++++++++------- .../batterytip/BatteryTipPolicyTest.java | 2 +- 6 files changed, 22 insertions(+), 19 deletions(-) diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java index 433c06d0220..1052afe8981 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java @@ -28,7 +28,6 @@ import com.android.settings.fuelgauge.batterytip.detectors.EarlyWarningDetector; import com.android.settings.fuelgauge.batterytip.detectors.HighUsageDetector; import com.android.settings.fuelgauge.batterytip.detectors.LowBatteryDetector; import com.android.settings.fuelgauge.batterytip.detectors.SmartBatteryDetector; -import com.android.settings.fuelgauge.batterytip.detectors.SummaryDetector; import com.android.settings.fuelgauge.batterytip.tips.BatteryTip; import com.android.settings.fuelgauge.batterytip.tips.LowBatteryTip; import com.android.settings.fuelgauge.batterytip.tips.SummaryTip; @@ -73,7 +72,6 @@ public class BatteryTipLoader extends AsyncLoaderCompat> { tips.add(new SmartBatteryDetector(policy, context.getContentResolver()).detect()); tips.add(new EarlyWarningDetector(policy, context).detect()); tips.add(new BatteryDefenderDetector(batteryInfo).detect()); - tips.add(new SummaryDetector(policy, batteryInfo.averageTimeToDischarge).detect()); // Disable this feature now since it introduces false positive cases. We will try to improve // it in the future. // tips.add(new RestrictAppDetector(context, policy).detect()); diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java index 487adf859d4..3fbbf5b5f81 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java @@ -230,7 +230,7 @@ public class BatteryTipPolicy { } batteryTipEnabled = mParser.getBoolean(KEY_BATTERY_TIP_ENABLED, true); - summaryEnabled = mParser.getBoolean(KEY_SUMMARY_ENABLED, true); + summaryEnabled = mParser.getBoolean(KEY_SUMMARY_ENABLED, false); batterySaverTipEnabled = mParser.getBoolean(KEY_BATTERY_SAVER_TIP_ENABLED, true); highUsageEnabled = mParser.getBoolean(KEY_HIGH_USAGE_ENABLED, true); highUsageAppCount = mParser.getInt(KEY_HIGH_USAGE_APP_COUNT, 3); diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java index 4317bffaf7d..00b1e874d33 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java @@ -28,11 +28,9 @@ import com.android.settings.core.BasePreferenceController; import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction; import com.android.settings.fuelgauge.batterytip.tips.BatteryTip; -import com.android.settings.fuelgauge.batterytip.tips.SummaryTip; import com.android.settings.overlay.FeatureFactory; import com.android.settings.widget.CardPreference; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; -import com.android.settingslib.fuelgauge.EstimateKt; import java.util.HashMap; import java.util.List; @@ -91,10 +89,8 @@ public class BatteryTipPreferenceController extends BasePreferenceController { mPrefContext = screen.getContext(); mCardPreference = screen.findPreference(getPreferenceKey()); - // Add summary tip in advance to avoid UI flakiness - final SummaryTip summaryTip = new SummaryTip(BatteryTip.StateType.NEW, - EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN); - summaryTip.updatePreference(mCardPreference); + // Set preference as invisible since there is no default tips. + mCardPreference.setVisible(false); } public void updateBatteryTips(List batteryTips) { @@ -110,10 +106,12 @@ public class BatteryTipPreferenceController extends BasePreferenceController { } } + mCardPreference.setVisible(false); for (int i = 0, size = batteryTips.size(); i < size; i++) { final BatteryTip batteryTip = mBatteryTips.get(i); batteryTip.validateCheck(mContext); if (batteryTip.getState() != BatteryTip.StateType.INVISIBLE) { + mCardPreference.setVisible(true); batteryTip.updatePreference(mCardPreference); mBatteryTipMap.put(mCardPreference.getKey(), batteryTip); batteryTip.log(mContext, mMetricsFeatureProvider); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java index 82448d138d9..5d7b082bd4a 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java @@ -54,7 +54,6 @@ public class BatteryTipLoaderTest { BatteryTip.TipType.BATTERY_SAVER, BatteryTip.TipType.HIGH_DEVICE_USAGE, BatteryTip.TipType.LOW_BATTERY, - BatteryTip.TipType.SUMMARY, BatteryTip.TipType.SMART_BATTERY_MANAGER}; @Mock(answer = Answers.RETURNS_DEEP_STUBS) private BatteryUsageStats mBatteryUsageStats; diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java index b68a8f57dd7..e9192889cd9 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java @@ -20,7 +20,6 @@ import static com.android.settings.fuelgauge.batterytip.tips.BatteryTip.TipType import static com.google.common.truth.Truth.assertThat; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -30,10 +29,6 @@ import android.content.Context; import android.os.Bundle; import android.text.format.DateUtils; -import androidx.preference.Preference; -import androidx.preference.PreferenceCategory; -import androidx.preference.PreferenceGroup; -import androidx.preference.PreferenceManager; import androidx.preference.PreferenceScreen; import com.android.internal.logging.nano.MetricsProto; @@ -49,7 +44,6 @@ import com.android.settings.widget.CardPreference; 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.RobolectricTestRunner; @@ -104,10 +98,24 @@ public class BatteryTipPreferenceControllerTest { } @Test - public void testDisplayPreference_addSummaryTip() { + public void testDisplayPreference_isInvisible() { mBatteryTipPreferenceController.displayPreference(mPreferenceScreen); - assertOnlyContainsSummaryTip(mCardPreference); + assertThat(mCardPreference.isVisible()).isFalse(); + } + + @Test + public void testUpdateBatteryTips_tipsStateNew_isVisible() { + mBatteryTipPreferenceController.updateBatteryTips(mOldBatteryTips); + + assertThat(mCardPreference.isVisible()).isTrue(); + } + + @Test + public void testUpdateBatteryTips_tipsStateInvisible_isInvisible() { + mBatteryTipPreferenceController.updateBatteryTips(mNewBatteryTips); + + assertThat(mCardPreference.isVisible()).isFalse(); } @Test diff --git a/tests/unit/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java b/tests/unit/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java index 4be2ae6c339..9b42951bcd5 100644 --- a/tests/unit/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java +++ b/tests/unit/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java @@ -94,7 +94,7 @@ public class BatteryTipPolicyTest { final BatteryTipPolicy batteryTipPolicy = new BatteryTipPolicy(mContext); assertThat(batteryTipPolicy.batteryTipEnabled).isTrue(); - assertThat(batteryTipPolicy.summaryEnabled).isTrue(); + assertThat(batteryTipPolicy.summaryEnabled).isFalse(); assertThat(batteryTipPolicy.batterySaverTipEnabled).isTrue(); assertThat(batteryTipPolicy.highUsageEnabled).isTrue(); assertThat(batteryTipPolicy.highUsageAppCount).isEqualTo(3); From 9e07eab08f1d7049cf674c692b72216c5306a373 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Mon, 22 Mar 2021 15:33:01 -0600 Subject: [PATCH 17/20] Request new Bluetooth runtime permissions. An upcoming platform change is introducing a new "Nearby devices" runtime permission which contains the new BLUETOOTH_CONNECT and BLUETOOTH_SCAN permissions. We have logic in place to use to translate the older BLUETOOTH and BLUETOOTH_ADMIN permissions into these new runtime permissions, but modern apps will need to pivot to requesting them directly as part of targeting Android S. This change requests both the old and new permissions to avoid breakage while the new permission enforcement is being phased in. Bug: 181813006 Test: atest CtsPermission2TestCases Test: atest CtsPermission3TestCases Test: atest CtsStatsdAtomHostTestCases Change-Id: I0a6ff040520deaa7c7a6fecd83e8608a9bf28c4a --- AndroidManifest.xml | 2 ++ tests/anomaly-tester/AndroidManifest.xml | 4 +++- tests/componenttests/AndroidManifest.xml | 4 +++- tests/uitests/AndroidManifest.xml | 2 ++ tests/unit/AndroidManifest.xml | 2 ++ 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index eeb969464b5..6a4b8d56aa5 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -19,6 +19,8 @@ + + diff --git a/tests/anomaly-tester/AndroidManifest.xml b/tests/anomaly-tester/AndroidManifest.xml index d6f68a892c1..3c5fb1fc1c6 100644 --- a/tests/anomaly-tester/AndroidManifest.xml +++ b/tests/anomaly-tester/AndroidManifest.xml @@ -19,6 +19,8 @@ + + @@ -49,4 +51,4 @@ android:label="Settings Test Cases"> - \ No newline at end of file + diff --git a/tests/componenttests/AndroidManifest.xml b/tests/componenttests/AndroidManifest.xml index 54ea3746d97..fb6c26f09a8 100644 --- a/tests/componenttests/AndroidManifest.xml +++ b/tests/componenttests/AndroidManifest.xml @@ -20,6 +20,8 @@ + + @@ -37,4 +39,4 @@ android:label="Settings Test Cases"> - \ No newline at end of file + diff --git a/tests/uitests/AndroidManifest.xml b/tests/uitests/AndroidManifest.xml index dc6fc15d1cd..1072754be2b 100644 --- a/tests/uitests/AndroidManifest.xml +++ b/tests/uitests/AndroidManifest.xml @@ -26,6 +26,8 @@ + + diff --git a/tests/unit/AndroidManifest.xml b/tests/unit/AndroidManifest.xml index 616e6a9076a..7ef7ae1d2ba 100644 --- a/tests/unit/AndroidManifest.xml +++ b/tests/unit/AndroidManifest.xml @@ -19,6 +19,8 @@ + + From 468278661faae94621f2f637b65035c953bc2d26 Mon Sep 17 00:00:00 2001 From: Oli Lan Date: Tue, 23 Mar 2021 15:30:08 +0000 Subject: [PATCH 18/20] Update strings for clipboard access notification setting. This changes the strings for the clipboard notification setting in line with UX recommendations. Bug: 182349993 Test: Build & install, check setting is displayed correctly Change-Id: Ife2cf4fa6ee98069170ec02a0c3fb7a0880a90b8 --- res/values/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 869f7c3fe85..daf2c51ef0d 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -12933,8 +12933,8 @@ - Copy & paste notifications + Show clipboard access - Show a message when apps access text or data you have copied + Show a message when apps access text, images, or other content you\u2019ve copied From 930df91e66e14417bb5e5698c46b5363a2079d59 Mon Sep 17 00:00:00 2001 From: Salud Lemus Date: Mon, 15 Mar 2021 17:06:30 +0000 Subject: [PATCH 19/20] Update Privacy Settings text for a financed device Bug: 182802692 Test: Used a test device that is registered via ZT Test: m RunSettingsRoboTests ROBOTEST_FILTER=EnterprisePrivacySettingsTest Test: m RunSettingsRoboTests ROBOTEST_FILTER=PrivacySettingsEnterprisePreferenceTest Test: m RunSettingsRoboTests ROBOTEST_FILTER=PrivacySettingsFinancedPreferenceTest Change-Id: Icc131252430cd147e2a06ba2aa260f6ea26734bb --- res/values/strings.xml | 19 +++ res/xml/financed_privacy_settings.xml | 84 +++++++++++++ .../enterprise/EnterprisePrivacySettings.java | 80 ++++++------ .../PrivacySettingsEnterprisePreference.java | 97 +++++++++++++++ .../PrivacySettingsFinancedPreference.java | 78 ++++++++++++ .../enterprise/PrivacySettingsPreference.java | 42 +++++++ .../PrivacySettingsPreferenceFactory.java | 54 ++++++++ .../BasePrivacySettingsPreferenceTest.java | 116 ++++++++++++++++++ .../EnterprisePrivacySettingsTest.java | 102 +++++++-------- ...ivacySettingsEnterprisePreferenceTest.java | 66 ++++++++++ ...PrivacySettingsFinancedPreferenceTest.java | 66 ++++++++++ 11 files changed, 713 insertions(+), 91 deletions(-) create mode 100644 res/xml/financed_privacy_settings.xml create mode 100644 src/com/android/settings/enterprise/PrivacySettingsEnterprisePreference.java create mode 100644 src/com/android/settings/enterprise/PrivacySettingsFinancedPreference.java create mode 100644 src/com/android/settings/enterprise/PrivacySettingsPreference.java create mode 100644 src/com/android/settings/enterprise/PrivacySettingsPreferenceFactory.java create mode 100644 tests/robotests/src/com/android/settings/enterprise/BasePrivacySettingsPreferenceTest.java create mode 100644 tests/robotests/src/com/android/settings/enterprise/PrivacySettingsEnterprisePreferenceTest.java create mode 100644 tests/robotests/src/com/android/settings/enterprise/PrivacySettingsFinancedPreferenceTest.java diff --git a/res/values/strings.xml b/res/values/strings.xml index 0e29ea21976..4b43480de55 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -11522,6 +11522,25 @@ Learn more + + + + Financed device info + + Types of information your device administrator can see + + Data associated with your account, such as email and calendar info + + Changes made by your device administrator + + Device administrator can lock this device and reset password + + Device administrator can delete all device data + + Failed password attempts before deleting device data + + Your credit provider can change settings and install software on this device.\n\nTo learn more, contact your creditor provider. + diff --git a/res/xml/financed_privacy_settings.xml b/res/xml/financed_privacy_settings.xml new file mode 100644 index 00000000000..742d7e1e9eb --- /dev/null +++ b/res/xml/financed_privacy_settings.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/com/android/settings/enterprise/EnterprisePrivacySettings.java b/src/com/android/settings/enterprise/EnterprisePrivacySettings.java index dd0a9ce8793..1aad54448f6 100644 --- a/src/com/android/settings/enterprise/EnterprisePrivacySettings.java +++ b/src/com/android/settings/enterprise/EnterprisePrivacySettings.java @@ -20,16 +20,13 @@ import android.app.settings.SettingsEnums; import android.content.Context; import android.provider.SearchIndexableResource; -import com.android.settings.R; +import com.android.internal.annotations.VisibleForTesting; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.widget.PreferenceCategoryController; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.search.SearchIndexable; -import java.util.ArrayList; -import java.util.Arrays; import java.util.List; @SearchIndexable @@ -37,6 +34,23 @@ public class EnterprisePrivacySettings extends DashboardFragment { static final String TAG = "EnterprisePrivacySettings"; + @VisibleForTesting + PrivacySettingsPreference mPrivacySettingsPreference; + + @Override + public void onAttach(Context context) { + mPrivacySettingsPreference = + PrivacySettingsPreferenceFactory.createPrivacySettingsPreference(context); + + super.onAttach(context); + } + + @Override + public void onDetach() { + mPrivacySettingsPreference = null; + super.onDetach(); + } + @Override public int getMetricsCategory() { return SettingsEnums.ENTERPRISE_PRIVACY_SETTINGS; @@ -49,47 +63,12 @@ public class EnterprisePrivacySettings extends DashboardFragment { @Override protected int getPreferenceScreenResId() { - return R.xml.enterprise_privacy_settings; + return mPrivacySettingsPreference.getPreferenceScreenResId(); } @Override protected List createPreferenceControllers(Context context) { - return buildPreferenceControllers(context, true /* async */); - } - - private static List buildPreferenceControllers(Context context, - boolean async) { - final List controllers = new ArrayList<>(); - controllers.add(new NetworkLogsPreferenceController(context)); - controllers.add(new BugReportsPreferenceController(context)); - controllers.add(new SecurityLogsPreferenceController(context)); - final List exposureChangesCategoryControllers = - new ArrayList<>(); - exposureChangesCategoryControllers.add(new EnterpriseInstalledPackagesPreferenceController( - context, async)); - exposureChangesCategoryControllers.add( - new AdminGrantedLocationPermissionsPreferenceController(context, async)); - exposureChangesCategoryControllers.add( - new AdminGrantedMicrophonePermissionPreferenceController(context, async)); - exposureChangesCategoryControllers.add(new AdminGrantedCameraPermissionPreferenceController( - context, async)); - exposureChangesCategoryControllers.add(new EnterpriseSetDefaultAppsPreferenceController( - context)); - exposureChangesCategoryControllers.add(new AlwaysOnVpnCurrentUserPreferenceController( - context)); - exposureChangesCategoryControllers.add(new AlwaysOnVpnManagedProfilePreferenceController( - context)); - exposureChangesCategoryControllers.add(new ImePreferenceController(context)); - exposureChangesCategoryControllers.add(new GlobalHttpProxyPreferenceController(context)); - exposureChangesCategoryControllers.add(new CaCertsCurrentUserPreferenceController(context)); - exposureChangesCategoryControllers.add(new CaCertsManagedProfilePreferenceController( - context)); - controllers.addAll(exposureChangesCategoryControllers); - controllers.add(new PreferenceCategoryController(context, "exposure_changes_category") - .setChildren(exposureChangesCategoryControllers)); - controllers.add(new FailedPasswordWipeCurrentUserPreferenceController(context)); - controllers.add(new FailedPasswordWipeManagedProfilePreferenceController(context)); - return controllers; + return mPrivacySettingsPreference.createPreferenceControllers(true /* async */); } public static boolean isPageEnabled(Context context) { @@ -99,17 +78,32 @@ public class EnterprisePrivacySettings extends DashboardFragment { } public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = - new BaseSearchIndexProvider(R.xml.enterprise_privacy_settings) { + new BaseSearchIndexProvider() { + + private PrivacySettingsPreference mPrivacySettingsPreference; + @Override protected boolean isPageSearchEnabled(Context context) { return isPageEnabled(context); } + @Override + public List getXmlResourcesToIndex(Context context, + boolean enabled) { + mPrivacySettingsPreference = + PrivacySettingsPreferenceFactory.createPrivacySettingsPreference( + context); + return mPrivacySettingsPreference.getXmlResourcesToIndex(); + } @Override public List createPreferenceControllers( Context context) { - return buildPreferenceControllers(context, false /* async */); + mPrivacySettingsPreference = + PrivacySettingsPreferenceFactory.createPrivacySettingsPreference( + context); + return mPrivacySettingsPreference.createPreferenceControllers( + false /* async */); } }; } diff --git a/src/com/android/settings/enterprise/PrivacySettingsEnterprisePreference.java b/src/com/android/settings/enterprise/PrivacySettingsEnterprisePreference.java new file mode 100644 index 00000000000..19556a13e5c --- /dev/null +++ b/src/com/android/settings/enterprise/PrivacySettingsEnterprisePreference.java @@ -0,0 +1,97 @@ +/* + * Copyright (C) 2021 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.enterprise; + +import android.content.Context; +import android.provider.SearchIndexableResource; + +import com.android.settings.R; +import com.android.settings.widget.PreferenceCategoryController; +import com.android.settingslib.core.AbstractPreferenceController; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** Privacy Settings preferences for an Enterprise device. */ +public class PrivacySettingsEnterprisePreference implements PrivacySettingsPreference { + private static final String KEY_EXPOSURE_CHANGES_CATEGORY = "exposure_changes_category"; + + private final Context mContext; + + public PrivacySettingsEnterprisePreference(Context context) { + mContext = context.getApplicationContext(); + } + + /** + * Returns the XML Res Id that is used for an Enterprise device in the Privacy Settings screen. + */ + @Override + public int getPreferenceScreenResId() { + return R.xml.enterprise_privacy_settings; + } + + /** + * Returns the Enterprise XML resources to index for an Enterprise device. + */ + @Override + public List getXmlResourcesToIndex() { + final SearchIndexableResource sir = new SearchIndexableResource(mContext); + sir.xmlResId = getPreferenceScreenResId(); + return Collections.singletonList(sir); + } + + /** + * Returns the preference controllers used to populate the privacy preferences in the Privacy + * Settings screen for Enterprise devices. + */ + @Override + public List createPreferenceControllers(boolean async) { + final List controllers = new ArrayList<>(); + controllers.add(new NetworkLogsPreferenceController(mContext)); + controllers.add(new BugReportsPreferenceController(mContext)); + controllers.add(new SecurityLogsPreferenceController(mContext)); + final List exposureChangesCategoryControllers = + new ArrayList<>(); + exposureChangesCategoryControllers.add(new EnterpriseInstalledPackagesPreferenceController( + mContext, async)); + exposureChangesCategoryControllers.add( + new AdminGrantedLocationPermissionsPreferenceController(mContext, async)); + exposureChangesCategoryControllers.add( + new AdminGrantedMicrophonePermissionPreferenceController(mContext, async)); + exposureChangesCategoryControllers.add(new AdminGrantedCameraPermissionPreferenceController( + mContext, async)); + exposureChangesCategoryControllers.add(new EnterpriseSetDefaultAppsPreferenceController( + mContext)); + exposureChangesCategoryControllers.add(new AlwaysOnVpnCurrentUserPreferenceController( + mContext)); + exposureChangesCategoryControllers.add(new AlwaysOnVpnManagedProfilePreferenceController( + mContext)); + exposureChangesCategoryControllers.add(new ImePreferenceController(mContext)); + exposureChangesCategoryControllers.add(new GlobalHttpProxyPreferenceController(mContext)); + exposureChangesCategoryControllers.add(new CaCertsCurrentUserPreferenceController( + mContext)); + exposureChangesCategoryControllers.add(new CaCertsManagedProfilePreferenceController( + mContext)); + controllers.addAll(exposureChangesCategoryControllers); + controllers.add(new PreferenceCategoryController(mContext, KEY_EXPOSURE_CHANGES_CATEGORY) + .setChildren(exposureChangesCategoryControllers)); + controllers.add(new FailedPasswordWipeCurrentUserPreferenceController(mContext)); + controllers.add(new FailedPasswordWipeManagedProfilePreferenceController(mContext)); + return controllers; + } +} diff --git a/src/com/android/settings/enterprise/PrivacySettingsFinancedPreference.java b/src/com/android/settings/enterprise/PrivacySettingsFinancedPreference.java new file mode 100644 index 00000000000..12901a63c15 --- /dev/null +++ b/src/com/android/settings/enterprise/PrivacySettingsFinancedPreference.java @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2021 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.enterprise; + +import android.content.Context; +import android.provider.SearchIndexableResource; + +import com.android.settings.R; +import com.android.settings.widget.PreferenceCategoryController; +import com.android.settingslib.core.AbstractPreferenceController; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** Privacy Settings preferences for a financed device. */ +public class PrivacySettingsFinancedPreference implements PrivacySettingsPreference { + private static final String KEY_EXPOSURE_CHANGES_CATEGORY = "exposure_changes_category"; + + private final Context mContext; + + public PrivacySettingsFinancedPreference(Context context) { + mContext = context.getApplicationContext(); + } + + /** + * Returns the XML Res Id that is used for financed devices in the Privacy Settings screen. + */ + @Override + public int getPreferenceScreenResId() { + return R.xml.financed_privacy_settings; + } + + /** + * Returns the XML resources to index for a financed device. + */ + @Override + public List getXmlResourcesToIndex() { + final SearchIndexableResource sir = new SearchIndexableResource(mContext); + sir.xmlResId = getPreferenceScreenResId(); + return Collections.singletonList(sir); + } + + /** + * Returns the preference controllers used to populate the privacy preferences in the Privacy + * Settings screen for a financed device. + */ + @Override + public List createPreferenceControllers(boolean async) { + final List controllers = new ArrayList<>(); + controllers.add(new NetworkLogsPreferenceController(mContext)); + controllers.add(new BugReportsPreferenceController(mContext)); + controllers.add(new SecurityLogsPreferenceController(mContext)); + final List exposureChangesCategoryControllers = + new ArrayList<>(); + exposureChangesCategoryControllers.add(new EnterpriseInstalledPackagesPreferenceController( + mContext, async)); + controllers.addAll(exposureChangesCategoryControllers); + controllers.add(new PreferenceCategoryController(mContext, KEY_EXPOSURE_CHANGES_CATEGORY) + .setChildren(exposureChangesCategoryControllers)); + controllers.add(new FailedPasswordWipeCurrentUserPreferenceController(mContext)); + return controllers; + } +} diff --git a/src/com/android/settings/enterprise/PrivacySettingsPreference.java b/src/com/android/settings/enterprise/PrivacySettingsPreference.java new file mode 100644 index 00000000000..4310f5e58cc --- /dev/null +++ b/src/com/android/settings/enterprise/PrivacySettingsPreference.java @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2021 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.enterprise; + +import android.provider.SearchIndexableResource; + +import com.android.settingslib.core.AbstractPreferenceController; + +import java.util.List; + +/** Interface for configuring what is displayed on the Privacy Settings. */ +public interface PrivacySettingsPreference { + + /** + * Returns the XML Res Id that is used in the Privacy Settings screen. + */ + int getPreferenceScreenResId(); + + /** + * Returns the XML resources to index. + */ + List getXmlResourcesToIndex(); + + /** + * Returns the preference controllers used to populate the privacy preferences. + */ + List createPreferenceControllers(boolean async); +} diff --git a/src/com/android/settings/enterprise/PrivacySettingsPreferenceFactory.java b/src/com/android/settings/enterprise/PrivacySettingsPreferenceFactory.java new file mode 100644 index 00000000000..0ec2498177e --- /dev/null +++ b/src/com/android/settings/enterprise/PrivacySettingsPreferenceFactory.java @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2021 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.enterprise; + +import static android.app.admin.DevicePolicyManager.DEVICE_OWNER_TYPE_FINANCED; + +import android.app.admin.DevicePolicyManager; +import android.content.Context; + +/** Factory for creating the privacy settings preference for a managed device. */ +public class PrivacySettingsPreferenceFactory { + + /** + * Determines which preference to use in the Privacy Settings based off of the type of managed + * device. + */ + public static PrivacySettingsPreference createPrivacySettingsPreference(Context context) { + if (isFinancedDevice(context)) { + return createPrivacySettingsFinancedPreference(context); + } else { + return createPrivacySettingsEnterprisePreference(context); + } + } + + private static PrivacySettingsEnterprisePreference createPrivacySettingsEnterprisePreference( + Context context) { + return new PrivacySettingsEnterprisePreference(context); + } + + private static PrivacySettingsFinancedPreference createPrivacySettingsFinancedPreference( + Context context) { + return new PrivacySettingsFinancedPreference(context); + } + + private static boolean isFinancedDevice(Context context) { + final DevicePolicyManager dpm = context.getSystemService(DevicePolicyManager.class); + return dpm.isDeviceManaged() && dpm.getDeviceOwnerType( + dpm.getDeviceOwnerComponentOnAnyUser()) == DEVICE_OWNER_TYPE_FINANCED; + } +} diff --git a/tests/robotests/src/com/android/settings/enterprise/BasePrivacySettingsPreferenceTest.java b/tests/robotests/src/com/android/settings/enterprise/BasePrivacySettingsPreferenceTest.java new file mode 100644 index 00000000000..fdf005dd602 --- /dev/null +++ b/tests/robotests/src/com/android/settings/enterprise/BasePrivacySettingsPreferenceTest.java @@ -0,0 +1,116 @@ +/* + * Copyright (C) 2021 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.enterprise; + +import static com.google.common.truth.Truth.assertThat; + +import android.content.Context; +import android.provider.SearchIndexableResource; + +import androidx.test.core.app.ApplicationProvider; + +import com.android.settings.R; +import com.android.settings.widget.PreferenceCategoryController; +import com.android.settingslib.core.AbstractPreferenceController; + +import org.junit.Before; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; + +import java.util.List; + +@RunWith(RobolectricTestRunner.class) +public abstract class BasePrivacySettingsPreferenceTest { + + protected Context mContext; + + @Before + public void setUp() { + mContext = ApplicationProvider.getApplicationContext(); + } + + protected static void verifyEnterpriseSearchIndexableResources( + List searchIndexableResources) { + assertThat(searchIndexableResources).isNotEmpty(); + assertThat(searchIndexableResources.size()).isEqualTo(1); + assertThat(searchIndexableResources.get(0).xmlResId) + .isEqualTo(R.xml.enterprise_privacy_settings); + } + + protected static void verifyEnterprisePreferenceControllers( + List controllers) { + assertThat(controllers).isNotNull(); + assertThat(controllers.size()).isEqualTo(17); + int position = 0; + assertThat(controllers.get(position++)).isInstanceOf(NetworkLogsPreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf(BugReportsPreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf( + SecurityLogsPreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf( + EnterpriseInstalledPackagesPreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf( + AdminGrantedLocationPermissionsPreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf( + AdminGrantedMicrophonePermissionPreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf( + AdminGrantedCameraPermissionPreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf( + EnterpriseSetDefaultAppsPreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf( + AlwaysOnVpnCurrentUserPreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf( + AlwaysOnVpnManagedProfilePreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf(ImePreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf( + GlobalHttpProxyPreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf( + CaCertsCurrentUserPreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf( + CaCertsManagedProfilePreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf( + PreferenceCategoryController.class); + assertThat(controllers.get(position++)).isInstanceOf( + FailedPasswordWipeCurrentUserPreferenceController.class); + assertThat(controllers.get(position)).isInstanceOf( + FailedPasswordWipeManagedProfilePreferenceController.class); + } + + protected static void verifyFinancedSearchIndexableResources( + List searchIndexableResources) { + assertThat(searchIndexableResources).isNotEmpty(); + assertThat(searchIndexableResources.size()).isEqualTo(1); + assertThat(searchIndexableResources.get(0).xmlResId) + .isEqualTo(R.xml.financed_privacy_settings); + } + + protected static void verifyFinancedPreferenceControllers( + List controllers) { + assertThat(controllers).isNotNull(); + assertThat(controllers.size()).isEqualTo(6); + int position = 0; + assertThat(controllers.get(position++)).isInstanceOf(NetworkLogsPreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf(BugReportsPreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf( + SecurityLogsPreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf( + EnterpriseInstalledPackagesPreferenceController.class); + assertThat(controllers.get(position++)).isInstanceOf( + PreferenceCategoryController.class); + assertThat(controllers.get(position)).isInstanceOf( + FailedPasswordWipeCurrentUserPreferenceController.class); + } +} diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java index 2d4ba6295e5..eb7074911bb 100644 --- a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java +++ b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java @@ -16,47 +16,70 @@ package com.android.settings.enterprise; +import static android.app.admin.DevicePolicyManager.DEVICE_OWNER_TYPE_DEFAULT; + 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.app.admin.DevicePolicyManager; +import android.content.ComponentName; +import android.provider.SearchIndexableResource; + +import androidx.test.core.app.ApplicationProvider; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.testutils.FakeFeatureFactory; -import com.android.settings.widget.PreferenceCategoryController; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.drawer.CategoryKey; 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.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; +import java.util.ArrayList; import java.util.List; @RunWith(RobolectricTestRunner.class) -public class EnterprisePrivacySettingsTest { +public class EnterprisePrivacySettingsTest extends BasePrivacySettingsPreferenceTest { + private static final ComponentName DEVICE_OWNER_COMPONENT = + new ComponentName("com.android.foo", "bar"); - @Mock(answer = Answers.RETURNS_DEEP_STUBS) - private Context mContext; + @Mock + private DevicePolicyManager mDevicePolicyManager; + @Mock + private PrivacySettingsPreference mPrivacySettingsPreference; private FakeFeatureFactory mFeatureFactory; private EnterprisePrivacySettings mSettings; + @Override @Before public void setUp() { MockitoAnnotations.initMocks(this); + mContext = spy(ApplicationProvider.getApplicationContext()); mFeatureFactory = FakeFeatureFactory.setupForTest(); mSettings = new EnterprisePrivacySettings(); + mSettings.mPrivacySettingsPreference = mPrivacySettingsPreference; + + when(mContext.getSystemService(DevicePolicyManager.class)).thenReturn(mDevicePolicyManager); + when(mDevicePolicyManager.isDeviceManaged()).thenReturn(true); + when(mDevicePolicyManager.getDeviceOwnerComponentOnAnyUser()) + .thenReturn(DEVICE_OWNER_COMPONENT); + when(mDevicePolicyManager.getDeviceOwnerType(DEVICE_OWNER_COMPONENT)) + .thenReturn(DEVICE_OWNER_TYPE_DEFAULT); } @Test public void verifyConstants() { + when(mPrivacySettingsPreference.getPreferenceScreenResId()) + .thenReturn(R.xml.enterprise_privacy_settings); + assertThat(mSettings.getMetricsCategory()) .isEqualTo(MetricsEvent.ENTERPRISE_PRIVACY_SETTINGS); assertThat(mSettings.getLogTag()).isEqualTo("EnterprisePrivacySettings"); @@ -76,6 +99,7 @@ public class EnterprisePrivacySettingsTest { @Test public void isPageEnabled_noDeviceOwner_shouldReturnFalse() { + when(mDevicePolicyManager.isDeviceManaged()).thenReturn(false); when(mFeatureFactory.enterprisePrivacyFeatureProvider.hasDeviceOwner()) .thenReturn(false); @@ -85,53 +109,35 @@ public class EnterprisePrivacySettingsTest { @Test public void getPreferenceControllers() { - final List controllers = - mSettings.createPreferenceControllers(RuntimeEnvironment.application); - verifyPreferenceControllers(controllers); + final List controllers = new ArrayList<>(); + controllers.add(new NetworkLogsPreferenceController(mContext)); + when(mPrivacySettingsPreference.createPreferenceControllers(anyBoolean())) + .thenReturn(controllers); + + final List privacyControllers = + mSettings.createPreferenceControllers(mContext); + + assertThat(privacyControllers).isNotNull(); + assertThat(privacyControllers.size()).isEqualTo(1); + assertThat(controllers.get(0)).isInstanceOf(NetworkLogsPreferenceController.class); } @Test - public void getSearchIndexProviderPreferenceControllers() { + public void + getSearchIndexProviderPreferenceControllers_returnsEnterpriseSearchIndexPreferenceControllers() { final List controllers = EnterprisePrivacySettings.SEARCH_INDEX_DATA_PROVIDER - .getPreferenceControllers(RuntimeEnvironment.application); - verifyPreferenceControllers(controllers); + .getPreferenceControllers(mContext); + + verifyEnterprisePreferenceControllers(controllers); } - private void verifyPreferenceControllers(List controllers) { - assertThat(controllers).isNotNull(); - assertThat(controllers.size()).isEqualTo(17); - int position = 0; - assertThat(controllers.get(position++)).isInstanceOf(NetworkLogsPreferenceController.class); - assertThat(controllers.get(position++)).isInstanceOf(BugReportsPreferenceController.class); - assertThat(controllers.get(position++)).isInstanceOf( - SecurityLogsPreferenceController.class); - assertThat(controllers.get(position++)).isInstanceOf( - EnterpriseInstalledPackagesPreferenceController.class); - assertThat(controllers.get(position++)).isInstanceOf( - AdminGrantedLocationPermissionsPreferenceController.class); - assertThat(controllers.get(position++)).isInstanceOf( - AdminGrantedMicrophonePermissionPreferenceController.class); - assertThat(controllers.get(position++)).isInstanceOf( - AdminGrantedCameraPermissionPreferenceController.class); - assertThat(controllers.get(position++)).isInstanceOf( - EnterpriseSetDefaultAppsPreferenceController.class); - assertThat(controllers.get(position++)).isInstanceOf( - AlwaysOnVpnCurrentUserPreferenceController.class); - assertThat(controllers.get(position++)).isInstanceOf( - AlwaysOnVpnManagedProfilePreferenceController.class); - assertThat(controllers.get(position++)).isInstanceOf(ImePreferenceController.class); - assertThat(controllers.get(position++)).isInstanceOf( - GlobalHttpProxyPreferenceController.class); - assertThat(controllers.get(position++)).isInstanceOf( - CaCertsCurrentUserPreferenceController.class); - assertThat(controllers.get(position++)).isInstanceOf( - CaCertsManagedProfilePreferenceController.class); - assertThat(controllers.get(position++)).isInstanceOf( - PreferenceCategoryController.class); - assertThat(controllers.get(position++)).isInstanceOf( - FailedPasswordWipeCurrentUserPreferenceController.class); - assertThat(controllers.get(position)).isInstanceOf( - FailedPasswordWipeManagedProfilePreferenceController.class); + @Test + public void getXmlResourcesToIndex_returnsEnterpriseXmlResources() { + final List searchIndexableResources = + EnterprisePrivacySettings.SEARCH_INDEX_DATA_PROVIDER + .getXmlResourcesToIndex(mContext, true); + + verifyEnterpriseSearchIndexableResources(searchIndexableResources); } } diff --git a/tests/robotests/src/com/android/settings/enterprise/PrivacySettingsEnterprisePreferenceTest.java b/tests/robotests/src/com/android/settings/enterprise/PrivacySettingsEnterprisePreferenceTest.java new file mode 100644 index 00000000000..68e37fc7792 --- /dev/null +++ b/tests/robotests/src/com/android/settings/enterprise/PrivacySettingsEnterprisePreferenceTest.java @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2021 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.enterprise; + +import static com.google.common.truth.Truth.assertThat; + +import android.provider.SearchIndexableResource; + +import com.android.settings.R; +import com.android.settingslib.core.AbstractPreferenceController; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; + +import java.util.List; + +@RunWith(RobolectricTestRunner.class) +public class PrivacySettingsEnterprisePreferenceTest extends BasePrivacySettingsPreferenceTest { + + private PrivacySettingsEnterprisePreference mPrivacySettingsEnterprisePreference; + + @Override + @Before + public void setUp() { + super.setUp(); + mPrivacySettingsEnterprisePreference = new PrivacySettingsEnterprisePreference(mContext); + } + + @Test + public void getPreferenceScreenResId() { + assertThat(mPrivacySettingsEnterprisePreference.getPreferenceScreenResId()) + .isEqualTo(R.xml.enterprise_privacy_settings); + } + + @Test + public void getXmlResourcesToIndex() { + final List searchIndexableResources = + mPrivacySettingsEnterprisePreference.getXmlResourcesToIndex(); + + verifyEnterpriseSearchIndexableResources(searchIndexableResources); + } + + @Test + public void getPreferenceControllers() { + final List controllers = + mPrivacySettingsEnterprisePreference.createPreferenceControllers(true); + + verifyEnterprisePreferenceControllers(controllers); + } +} diff --git a/tests/robotests/src/com/android/settings/enterprise/PrivacySettingsFinancedPreferenceTest.java b/tests/robotests/src/com/android/settings/enterprise/PrivacySettingsFinancedPreferenceTest.java new file mode 100644 index 00000000000..fe7b214c851 --- /dev/null +++ b/tests/robotests/src/com/android/settings/enterprise/PrivacySettingsFinancedPreferenceTest.java @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2021 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.enterprise; + +import static com.google.common.truth.Truth.assertThat; + +import android.provider.SearchIndexableResource; + +import com.android.settings.R; +import com.android.settingslib.core.AbstractPreferenceController; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; + +import java.util.List; + +@RunWith(RobolectricTestRunner.class) +public class PrivacySettingsFinancedPreferenceTest extends BasePrivacySettingsPreferenceTest { + + private PrivacySettingsFinancedPreference mPrivacySettingsFinancedPreference; + + @Override + @Before + public void setUp() { + super.setUp(); + mPrivacySettingsFinancedPreference = new PrivacySettingsFinancedPreference(mContext); + } + + @Test + public void getPreferenceScreenResId() { + assertThat(mPrivacySettingsFinancedPreference.getPreferenceScreenResId()) + .isEqualTo(R.xml.financed_privacy_settings); + } + + @Test + public void getXmlResourcesToIndex() { + final List searchIndexableResources = + mPrivacySettingsFinancedPreference.getXmlResourcesToIndex(); + + verifyFinancedSearchIndexableResources(searchIndexableResources); + } + + @Test + public void getPreferenceControllers() { + final List controllers = + mPrivacySettingsFinancedPreference.createPreferenceControllers(true); + + verifyFinancedPreferenceControllers(controllers); + } +} From a9a24372fd73cea21a2873654b463feadc6378ad Mon Sep 17 00:00:00 2001 From: Salud Lemus Date: Tue, 23 Mar 2021 00:35:02 +0000 Subject: [PATCH 20/20] Update Managed Device Info text for a financed device Bug: 183448705 Test: Used a test device that is registered via ZT Test: m RunSettingsRoboTests ROBOTEST_FILTER=EnterprisePrivacyPreferenceControllerTest Change-Id: Iea2567e7943b122c6c6d2772380f8ddd57066a3f --- ...EnterprisePrivacyPreferenceController.java | 13 +++++++ ...rprisePrivacyPreferenceControllerTest.java | 37 +++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java b/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java index b07eb911143..8353d208534 100644 --- a/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java +++ b/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java @@ -13,6 +13,9 @@ */ package com.android.settings.enterprise; +import static android.app.admin.DevicePolicyManager.DEVICE_OWNER_TYPE_FINANCED; + +import android.app.admin.DevicePolicyManager; import android.content.Context; import androidx.preference.Preference; @@ -39,6 +42,10 @@ public class EnterprisePrivacyPreferenceController extends AbstractPreferenceCon if (preference == null) { return; } + if (isFinancedDevice()) { + preference.setTitle(R.string.financed_privacy_settings); + } + final String organizationName = mFeatureProvider.getDeviceOwnerOrganizationName(); if (organizationName == null) { preference.setSummary(R.string.enterprise_privacy_settings_summary_generic); @@ -57,4 +64,10 @@ public class EnterprisePrivacyPreferenceController extends AbstractPreferenceCon public String getPreferenceKey() { return KEY_ENTERPRISE_PRIVACY; } + + private boolean isFinancedDevice() { + final DevicePolicyManager dpm = mContext.getSystemService(DevicePolicyManager.class); + return dpm.isDeviceManaged() && dpm.getDeviceOwnerType( + dpm.getDeviceOwnerComponentOnAnyUser()) == DEVICE_OWNER_TYPE_FINANCED; + } } diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceControllerTest.java index 6858dd3391b..80523573011 100644 --- a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceControllerTest.java @@ -16,10 +16,15 @@ package com.android.settings.enterprise; +import static android.app.admin.DevicePolicyManager.DEVICE_OWNER_TYPE_DEFAULT; +import static android.app.admin.DevicePolicyManager.DEVICE_OWNER_TYPE_FINANCED; + import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.when; +import android.app.admin.DevicePolicyManager; +import android.content.ComponentName; import android.content.Context; import androidx.preference.Preference; @@ -42,9 +47,14 @@ public class EnterprisePrivacyPreferenceControllerTest { private static final String MANAGED_WITH_NAME = "managed by Foo, Inc."; private static final String MANAGING_ORGANIZATION = "Foo, Inc."; private static final String KEY_ENTERPRISE_PRIVACY = "enterprise_privacy"; + private static final String FINANCED_PREFERENCE_TITLE = "Financed device info"; + private static final ComponentName DEVICE_OWNER_COMPONENT = + new ComponentName("com.android.foo", "bar"); @Mock(answer = Answers.RETURNS_DEEP_STUBS) private Context mContext; + @Mock + private DevicePolicyManager mDevicePolicyManager; private FakeFeatureFactory mFeatureFactory; private EnterprisePrivacyPreferenceController mController; @@ -54,6 +64,14 @@ public class EnterprisePrivacyPreferenceControllerTest { MockitoAnnotations.initMocks(this); mFeatureFactory = FakeFeatureFactory.setupForTest(); mController = new EnterprisePrivacyPreferenceController(mContext); + + when((Object) mContext.getSystemService(DevicePolicyManager.class)) + .thenReturn(mDevicePolicyManager); + when(mDevicePolicyManager.isDeviceManaged()).thenReturn(true); + when(mDevicePolicyManager.getDeviceOwnerComponentOnAnyUser()) + .thenReturn(DEVICE_OWNER_COMPONENT); + when(mDevicePolicyManager.getDeviceOwnerType(DEVICE_OWNER_COMPONENT)) + .thenReturn(DEVICE_OWNER_TYPE_DEFAULT); } @Test @@ -76,6 +94,25 @@ public class EnterprisePrivacyPreferenceControllerTest { assertThat(preference.getSummary()).isEqualTo(MANAGED_WITH_NAME); } + @Test + public void testUpdateState_verifyPreferenceTitleIsUpdatedForFinancedDevice() { + final Preference preference = new Preference(mContext, null, 0, 0); + when(mContext.getResources().getString( + R.string.enterprise_privacy_settings_summary_with_name, MANAGING_ORGANIZATION)) + .thenReturn(MANAGED_WITH_NAME); + when(mContext.getString(R.string.financed_privacy_settings)) + .thenReturn(FINANCED_PREFERENCE_TITLE); + when(mFeatureFactory.enterprisePrivacyFeatureProvider.getDeviceOwnerOrganizationName()) + .thenReturn(MANAGING_ORGANIZATION); + when(mDevicePolicyManager.getDeviceOwnerType(DEVICE_OWNER_COMPONENT)) + .thenReturn(DEVICE_OWNER_TYPE_FINANCED); + + mController.updateState(preference); + + assertThat(preference.getTitle()).isEqualTo(FINANCED_PREFERENCE_TITLE); + assertThat(preference.getSummary()).isEqualTo(MANAGED_WITH_NAME); + } + @Test public void testIsAvailable() { when(mFeatureFactory.enterprisePrivacyFeatureProvider.hasDeviceOwner()).thenReturn(false);