Merge "Create AppDataUsageSummaryController" into main
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 321eb16..0f39c6c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -148,6 +148,7 @@
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.GET_BACKGROUND_INSTALLED_PACKAGES" />
<uses-permission android:name="android.permission.SATELLITE_COMMUNICATION" />
+ <uses-permission android:name="android.permission.READ_SYSTEM_GRAMMATICAL_GENDER" />
<application
android:name=".SettingsApplication"
diff --git a/src/com/android/settings/network/SubscriptionUtil.java b/src/com/android/settings/network/SubscriptionUtil.java
index 1ab3ed5..f3eb519 100644
--- a/src/com/android/settings/network/SubscriptionUtil.java
+++ b/src/com/android/settings/network/SubscriptionUtil.java
@@ -76,8 +76,9 @@
static final String SUB_ID = "sub_id";
@VisibleForTesting
static final String KEY_UNIQUE_SUBSCRIPTION_DISPLAYNAME = "unique_subscription_displayName";
- private static final String REGEX_DISPLAY_NAME_PREFIXES = "^";
- private static final String REGEX_DISPLAY_NAME_SUFFIXES = "\\s[0-9]+";
+ private static final String REGEX_DISPLAY_NAME_SUFFIX = "\\s[0-9]+";
+ private static final Pattern REGEX_DISPLAY_NAME_SUFFIX_PATTERN =
+ Pattern.compile(REGEX_DISPLAY_NAME_SUFFIX);
private static List<SubscriptionInfo> sAvailableResultsForTesting;
private static List<SubscriptionInfo> sActiveResultsForTesting;
@@ -461,12 +462,12 @@
@VisibleForTesting
static boolean isValidCachedDisplayName(String cachedDisplayName, String originalName) {
- if (TextUtils.isEmpty(cachedDisplayName) || TextUtils.isEmpty(originalName)) {
+ if (TextUtils.isEmpty(cachedDisplayName) || TextUtils.isEmpty(originalName)
+ || !cachedDisplayName.startsWith(originalName)) {
return false;
}
- String regex = REGEX_DISPLAY_NAME_PREFIXES + originalName + REGEX_DISPLAY_NAME_SUFFIXES;
- Pattern pattern = Pattern.compile(regex);
- Matcher matcher = pattern.matcher(cachedDisplayName);
+ String displayNameSuffix = cachedDisplayName.substring(originalName.length());
+ Matcher matcher = REGEX_DISPLAY_NAME_SUFFIX_PATTERN.matcher(displayNameSuffix);
return matcher.matches();
}
diff --git a/src/com/android/settings/wifi/WifiAPITest.java b/src/com/android/settings/wifi/WifiAPITest.java
index c8bcf7f..8953875 100644
--- a/src/com/android/settings/wifi/WifiAPITest.java
+++ b/src/com/android/settings/wifi/WifiAPITest.java
@@ -18,7 +18,10 @@
import static android.content.Context.WIFI_SERVICE;
+import static com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils.isChangeWifiStateAllowed;
+
import android.app.settings.SettingsEnums;
+import android.content.Context;
import android.content.DialogInterface;
import android.net.wifi.WifiManager;
import android.os.Bundle;
@@ -38,7 +41,7 @@
public class WifiAPITest extends SettingsPreferenceFragment implements
Preference.OnPreferenceClickListener {
- private static final String TAG = "WifiAPITest";
+ private static final String TAG = "WifiAPITest+++";
private int netid;
//============================
@@ -69,18 +72,38 @@
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ Context context = getContext();
+ if (context == null) {
+ return;
+ }
addPreferencesFromResource(R.xml.wifi_api_test);
+ boolean isChangeWifiStateAllowed = isChangeWifiStateAllowed(context);
final PreferenceScreen preferenceScreen = getPreferenceScreen();
mWifiDisconnect = (Preference) preferenceScreen.findPreference(KEY_DISCONNECT);
- mWifiDisconnect.setOnPreferenceClickListener(this);
+ if (mWifiDisconnect != null) {
+ mWifiDisconnect.setEnabled(isChangeWifiStateAllowed);
+ if (isChangeWifiStateAllowed) {
+ mWifiDisconnect.setOnPreferenceClickListener(this);
+ }
+ }
mWifiDisableNetwork = (Preference) preferenceScreen.findPreference(KEY_DISABLE_NETWORK);
- mWifiDisableNetwork.setOnPreferenceClickListener(this);
+ if (mWifiDisableNetwork != null) {
+ mWifiDisableNetwork.setEnabled(isChangeWifiStateAllowed);
+ if (isChangeWifiStateAllowed) {
+ mWifiDisableNetwork.setOnPreferenceClickListener(this);
+ }
+ }
mWifiEnableNetwork = (Preference) preferenceScreen.findPreference(KEY_ENABLE_NETWORK);
- mWifiEnableNetwork.setOnPreferenceClickListener(this);
+ if (mWifiEnableNetwork != null) {
+ mWifiEnableNetwork.setEnabled(isChangeWifiStateAllowed);
+ if (isChangeWifiStateAllowed) {
+ mWifiEnableNetwork.setOnPreferenceClickListener(this);
+ }
+ }
}
diff --git a/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java b/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java
index 6df281a..46c281f 100644
--- a/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java
+++ b/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java
@@ -636,6 +636,14 @@
}
@Test
+ public void isValidCachedDisplayName_withBrackets_noCrash() {
+ String originalName = "originalName(";
+ String cacheString = "originalName( 1234";
+
+ assertThat(SubscriptionUtil.isValidCachedDisplayName(cacheString, originalName)).isTrue();
+ }
+
+ @Test
public void isConnectedToWifi_hasWiFi_returnTrue() {
addNetworkTransportType(NetworkCapabilities.TRANSPORT_WIFI);