[automerger skipped] Merge "Import translations. DO NOT MERGE" into rvc-d1-dev am: 42a6154347 -s ours am: 8ebbe4db5c -s ours
am skip reason: subject contains skip directive
Change-Id: I726fa5c772a31d7b45b93554d0499b819629e686
diff --git a/MODULE_LICENSE_APACHE2 b/MODULE_LICENSE_APACHE2
deleted file mode 100644
index e69de29..0000000
--- a/MODULE_LICENSE_APACHE2
+++ /dev/null
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9faceac..381b70c 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -11577,6 +11577,9 @@
<string name="mobile_data_settings_summary_auto_switch">
Phone will automatically switch to this carrier when in range
</string>
+ <!-- Mobile network setting screen, summary of Mobile data switch preference when the network
+ is unavailable, the preference selection will be disabled. [CHAR LIMIT=NONE] -->
+ <string name="mobile_data_settings_summary_unavailable">No SIM card available</string>
<!-- Mobile network settings screen, title of item showing the name of the default subscription
that will be used for calls. This only appears in multi-SIM mode. [CHAR LIMIT=NONE] -->
diff --git a/src/com/android/settings/applications/AppStorageSettings.java b/src/com/android/settings/applications/AppStorageSettings.java
index f07c66c..3cded6a 100644
--- a/src/com/android/settings/applications/AppStorageSettings.java
+++ b/src/com/android/settings/applications/AppStorageSettings.java
@@ -311,13 +311,9 @@
if (appHasSpaceManagementUI) {
mButtonsPref.setButton1Text(R.string.manage_space_text);
} else {
- mButtonsPref
- .setButton1Text(R.string.clear_user_data_text)
- .setButton1Icon(R.drawable.ic_settings_delete);
+ mButtonsPref.setButton1Text(R.string.clear_user_data_text);
}
- mButtonsPref
- .setButton1Text(R.string.clear_user_data_text)
- .setButton1Icon(R.drawable.ic_settings_delete)
+ mButtonsPref.setButton1Icon(R.drawable.ic_settings_delete)
.setButton1OnClickListener(v -> handleClearDataClick());
}
diff --git a/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdater.java b/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdater.java
index 1078a21..6a13a96 100644
--- a/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdater.java
+++ b/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdater.java
@@ -97,7 +97,7 @@
// New version - uses a separate screen.
new SubSettingLauncher(mFragment.getContext())
.setDestination(UsbDetailsFragment.class.getName())
- .setTitleRes(R.string.device_details_title)
+ .setTitleRes(R.string.usb_preference)
.setSourceMetricsCategory(mFragment.getMetricsCategory())
.launch();
return true;
diff --git a/src/com/android/settings/datetime/timezone/OWNERS b/src/com/android/settings/datetime/timezone/OWNERS
index 02cf23c..7ad770a 100644
--- a/src/com/android/settings/datetime/timezone/OWNERS
+++ b/src/com/android/settings/datetime/timezone/OWNERS
@@ -1,6 +1,5 @@
# Default reviewers for this and subdirectories.
vichang@google.com
-tobiast@google.com
nfuller@google.com
# Emergency approvers in case the above are not available
diff --git a/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceController.java b/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceController.java
index a6db773..aec3648 100644
--- a/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceController.java
+++ b/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceController.java
@@ -20,6 +20,7 @@
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
+import android.text.TextUtils;
import com.android.settings.core.BasePreferenceController;
@@ -49,6 +50,6 @@
@Override
public int getAvailabilityStatus() {
- return AVAILABLE;
+ return TextUtils.isEmpty(getSummary()) ? UNSUPPORTED_ON_DEVICE : AVAILABLE;
}
}
diff --git a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
index c35eef6..91c46df 100644
--- a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
+++ b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
@@ -128,6 +128,13 @@
preference.setEnabled(true);
preference.setSummary(R.string.mobile_data_settings_summary);
}
+
+ if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ preference.setSelectable(false);
+ preference.setSummary(R.string.mobile_data_settings_summary_unavailable);
+ } else {
+ preference.setSelectable(true);
+ }
}
private boolean isOpportunistic() {
diff --git a/src/com/android/settings/panel/PanelFragment.java b/src/com/android/settings/panel/PanelFragment.java
index 9de4139..9129963 100644
--- a/src/com/android/settings/panel/PanelFragment.java
+++ b/src/com/android/settings/panel/PanelFragment.java
@@ -156,8 +156,13 @@
private void createPanelContent() {
final FragmentActivity activity = getActivity();
+ if (activity == null) {
+ return;
+ }
+
if (mLayoutView == null) {
activity.finish();
+ return;
}
mPanelSlices = mLayoutView.findViewById(R.id.panel_parent_layout);
@@ -183,6 +188,7 @@
if (mPanel == null) {
activity.finish();
+ return;
}
mPanel.registerCallback(new LocalPanelCallback());
diff --git a/src/com/android/settings/users/EditUserInfoController.java b/src/com/android/settings/users/EditUserInfoController.java
index 373d6a9..afa7cdd 100644
--- a/src/com/android/settings/users/EditUserInfoController.java
+++ b/src/com/android/settings/users/EditUserInfoController.java
@@ -95,8 +95,7 @@
}
public void onSaveInstanceState(Bundle outState) {
- if (mEditUserInfoDialog != null && mEditUserInfoDialog.isShowing()
- && mEditUserPhotoController != null) {
+ if (mEditUserInfoDialog != null && mEditUserPhotoController != null) {
// Bitmap cannot be stored into bundle because it may exceed parcel limit
// Store it in a temporary file instead
File file = mEditUserPhotoController.saveNewUserPhotoBitmap();
diff --git a/src/com/android/settings/vpn2/ConfigDialog.java b/src/com/android/settings/vpn2/ConfigDialog.java
index 4e6cc89..26c1565 100644
--- a/src/com/android/settings/vpn2/ConfigDialog.java
+++ b/src/com/android/settings/vpn2/ConfigDialog.java
@@ -20,6 +20,7 @@
import android.content.Context;
import android.content.DialogInterface;
+import android.content.pm.PackageManager;
import android.net.Proxy;
import android.net.ProxyInfo;
import android.os.Bundle;
@@ -43,6 +44,9 @@
import com.android.settings.R;
import java.net.InetAddress;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
/**
* Dialog showing information about a VPN configuration. The dialog
@@ -129,6 +133,7 @@
// Second, copy values from the profile.
mName.setText(mProfile.name);
+ setTypesByFeature(mType);
mType.setSelection(mProfile.type);
mServer.setText(mProfile.server);
if (mProfile.saveLogin) {
@@ -343,14 +348,14 @@
mView.findViewById(R.id.vpn_proxy_fields).setVisibility(visible);
}
- private boolean hasAdvancedOptionsEnabled() {
+ private boolean isAdvancedOptionsEnabled() {
return mSearchDomains.getText().length() > 0 || mDnsServers.getText().length() > 0 ||
mRoutes.getText().length() > 0 || mProxyHost.getText().length() > 0
|| mProxyPort.getText().length() > 0;
}
private void configureAdvancedOptionsVisibility() {
- if (mShowOptions.isChecked() || hasAdvancedOptionsEnabled()) {
+ if (mShowOptions.isChecked() || isAdvancedOptionsEnabled()) {
mView.findViewById(R.id.options).setVisibility(View.VISIBLE);
mShowOptions.setVisibility(View.GONE);
@@ -487,6 +492,25 @@
return true;
}
+ private void setTypesByFeature(Spinner typeSpinner) {
+ String[] types = getContext().getResources().getStringArray(R.array.vpn_types);
+ if (!getContext().getPackageManager().hasSystemFeature(
+ PackageManager.FEATURE_IPSEC_TUNNELS)) {
+ final List<String> typesList = new ArrayList<>(Arrays.asList(types));
+
+ // This must be removed from back to front in order to ensure index consistency
+ typesList.remove(VpnProfile.TYPE_IKEV2_IPSEC_RSA);
+ typesList.remove(VpnProfile.TYPE_IKEV2_IPSEC_PSK);
+ typesList.remove(VpnProfile.TYPE_IKEV2_IPSEC_USER_PASS);
+
+ types = typesList.toArray(new String[0]);
+ }
+ final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
+ getContext(), android.R.layout.simple_spinner_item, types);
+ adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ typeSpinner.setAdapter(adapter);
+ }
+
private void loadCertificates(Spinner spinner, String prefix, int firstId, String selected) {
Context context = getContext();
String first = (firstId == 0) ? "" : context.getString(firstId);
diff --git a/tests/perftests/Android.bp b/tests/perftests/Android.bp
index 7708bbe..1ba5d9c 100644
--- a/tests/perftests/Android.bp
+++ b/tests/perftests/Android.bp
@@ -19,4 +19,4 @@
test_suites: ["device-tests"],
instrumentation_for: "Settings",
-}
\ No newline at end of file
+}
diff --git a/tests/perftests/AndroidManifest.xml b/tests/perftests/AndroidManifest.xml
index 972467f..8aae24a 100644
--- a/tests/perftests/AndroidManifest.xml
+++ b/tests/perftests/AndroidManifest.xml
@@ -15,15 +15,15 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.settings.tests.perf">
+ package="com.android.settings.tests.perf">
<application>
- <uses-library android:name="android.test.runner"/>
+ <uses-library android:name="android.test.runner" />
</application>
<instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
- android:targetPackage="com.android.settings.tests.perf"
- android:label="Settings Performance Test Cases">
+ android:targetPackage="com.android.settings.tests.perf"
+ android:label="Settings Performance Test Cases">
</instrumentation>
</manifest>
diff --git a/tests/perftests/src/com/android/settings/tests/perf/LaunchSettingsTest.java b/tests/perftests/src/com/android/settings/tests/perf/LaunchSettingsTest.java
index f55598c..f6eac3a 100644
--- a/tests/perftests/src/com/android/settings/tests/perf/LaunchSettingsTest.java
+++ b/tests/perftests/src/com/android/settings/tests/perf/LaunchSettingsTest.java
@@ -21,8 +21,10 @@
import android.app.Instrumentation;
import android.os.Bundle;
+import android.util.Log;
import android.support.test.uiautomator.By;
import android.support.test.uiautomator.UiDevice;
+import android.support.test.uiautomator.UiSelector;
import android.support.test.uiautomator.Until;
import androidx.test.InstrumentationRegistry;
@@ -34,9 +36,9 @@
import org.junit.runner.RunWith;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.Collections;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -54,6 +56,8 @@
}
}
+ private static final String SCREEN_TIME_OUT = "7200000";
+ private static final String DEFAULT_SCREEN_TIMEOUT = "15000";
private static final int TIME_OUT = 5000;
private static final int TEST_TIME = 10;
private static final Pattern PATTERN = Pattern.compile("TotalTime:\\s[0-9]*");
@@ -65,7 +69,8 @@
new Page("android.settings.WIFI_SETTINGS", "Use Wi‑Fi", "Wi-Fi"),
new Page("android.settings.BLUETOOTH_SETTINGS", "Connected devices", "BlueTooth"),
new Page("android.settings.APPLICATION_SETTINGS", "App info", "Application"),
- new Page("android.intent.action.POWER_USAGE_SUMMARY", "Battery", "Battery")
+ new Page("android.intent.action.POWER_USAGE_SUMMARY", "Battery", "Battery"),
+ new Page("android.settings.INTERNAL_STORAGE_SETTINGS", "Storage", "Storage")
};
}
@@ -73,6 +78,7 @@
private UiDevice mDevice;
private Instrumentation mInstrumentation;
private Map<String, ArrayList<Integer>> mResult;
+ private String mDefaultScreenTimeout;
@Before
public void setUp() throws Exception {
@@ -80,6 +86,9 @@
mDevice = UiDevice.getInstance(getInstrumentation());
mInstrumentation = InstrumentationRegistry.getInstrumentation();
mResult = new LinkedHashMap<>();
+ mDefaultScreenTimeout = mDevice.executeShellCommand(
+ "settings get system screen_off_timeout");
+ setScreenTimeOut(SCREEN_TIME_OUT);
mDevice.pressHome();
mDevice.waitForIdle(TIME_OUT);
@@ -92,6 +101,8 @@
public void tearDown() throws Exception {
putResultToBundle();
mInstrumentation.sendStatus(0, mBundle);
+ resetScreenTimeout();
+ closeApp();
}
@Test
@@ -105,11 +116,11 @@
private void executePreformanceTest(String action, String displayName, String title)
throws Exception {
+ closeApp();
+ mDevice.waitForIdle(TIME_OUT);
final String mString = mDevice.executeShellCommand("am start -W -a" + action);
mDevice.wait(Until.findObject(By.text(displayName)), TIME_OUT);
handleLaunchResult(title, mString);
- closeApp();
- mDevice.waitForIdle(TIME_OUT);
}
private void handleLaunchResult(String title, String s) {
@@ -148,4 +159,16 @@
private String getAvg(ArrayList<Integer> launchResult) {
return String.valueOf((int) launchResult.stream().mapToInt(i -> i).average().orElse(0));
}
+
+ private void setScreenTimeOut(String timeout) throws Exception {
+ mDevice.executeShellCommand("settings put system screen_off_timeout " + timeout);
+ }
+
+ private void resetScreenTimeout() throws Exception {
+ String timeout = DEFAULT_SCREEN_TIMEOUT;
+ if (!mDefaultScreenTimeout.isEmpty()) {
+ timeout = mDefaultScreenTimeout;
+ }
+ setScreenTimeOut(timeout);
+ }
}
\ No newline at end of file