Merge changes I1c3620d3,Ic0bf23f6
* changes:
Move some subsetting launch to SubSettingLauncher
Migrate more subsetting launching to SubSettingLauncher
diff --git a/res/values/strings.xml b/res/values/strings.xml
index b1435c9..ad11706 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -9218,6 +9218,8 @@
<!-- Confirmation message displayed when the user taps Clear app, to ensure they want to remove
the instant app from the device. -->
<string name="clear_instant_app_confirmation">Do you want to remove this instant app?</string>
+ <!-- Label for button that allows user to launch the instant app. -->
+ <string name="launch_instant_app">Open</string>
<!-- Title of games app storage screen [CHAR LIMIT=30] -->
<string name="game_storage_settings">Games</string>
diff --git a/src/com/android/settings/accounts/AccountDashboardFragment.java b/src/com/android/settings/accounts/AccountDashboardFragment.java
index 0a4c343..9702102 100644
--- a/src/com/android/settings/accounts/AccountDashboardFragment.java
+++ b/src/com/android/settings/accounts/AccountDashboardFragment.java
@@ -22,6 +22,7 @@
import android.os.UserHandle;
import android.provider.SearchIndexableResource;
import android.text.BidiFormatter;
+import android.text.TextUtils;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
@@ -94,17 +95,21 @@
if (types == null || types.length == 0) {
summary = mContext.getString(R.string.account_dashboard_default_summary);
} else {
- // Show up to 3 account types
- final int size = Math.min(3, types.length);
+ // Show up to 3 account types, ignore any null value
+ int accountToAdd = Math.min(3, types.length);
- for (int i = 0; i < size; i++) {
+ for (int i = 0; i < types.length && accountToAdd > 0; i++) {
final CharSequence label = authHelper.getLabelForType(mContext, types[i]);
+ if (TextUtils.isEmpty(label)) {
+ continue;
+ }
if (summary == null) {
summary = bidiFormatter.unicodeWrap(label);
} else {
summary = mContext.getString(R.string.join_many_items_middle, summary,
bidiFormatter.unicodeWrap(label));
}
+ accountToAdd--;
}
}
mSummaryLoader.setSummary(this, summary);
diff --git a/src/com/android/settings/dashboard/DashboardFragmentRegistry.java b/src/com/android/settings/dashboard/DashboardFragmentRegistry.java
index 275af3d..29d66bd 100644
--- a/src/com/android/settings/dashboard/DashboardFragmentRegistry.java
+++ b/src/com/android/settings/dashboard/DashboardFragmentRegistry.java
@@ -19,12 +19,11 @@
import android.util.ArrayMap;
import com.android.settings.DisplaySettings;
-import com.android.settings.accounts.AccountDetailDashboardFragment;
import com.android.settings.accounts.AccountDashboardFragment;
+import com.android.settings.accounts.AccountDetailDashboardFragment;
import com.android.settings.applications.AppAndNotificationDashboardFragment;
import com.android.settings.applications.DefaultAppSettings;
import com.android.settings.connecteddevice.AdvancedConnectedDeviceDashboardFragment;
-import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragmentOld;
import com.android.settings.development.DevelopmentSettingsDashboardFragment;
import com.android.settings.deviceinfo.StorageDashboardFragment;
import com.android.settings.fuelgauge.PowerUsageSummary;
@@ -60,9 +59,6 @@
PARENT_TO_CATEGORY_KEY_MAP = new ArrayMap<>();
PARENT_TO_CATEGORY_KEY_MAP.put(
NetworkDashboardFragment.class.getName(), CategoryKey.CATEGORY_NETWORK);
- //TODO(b/69471219): update ConnectedDeviceDashboardFragment once new feature is done.
- PARENT_TO_CATEGORY_KEY_MAP.put(ConnectedDeviceDashboardFragmentOld.class.getName(),
- CategoryKey.CATEGORY_DEVICE);
PARENT_TO_CATEGORY_KEY_MAP.put(AdvancedConnectedDeviceDashboardFragment.class.getName(),
CategoryKey.CATEGORY_DEVICE);
PARENT_TO_CATEGORY_KEY_MAP.put(AppAndNotificationDashboardFragment.class.getName(),
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/accounts/AccountDashboardFragmentTest.java
index 9371019..3ed9717 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountDashboardFragmentTest.java
@@ -17,6 +17,9 @@
import static com.android.settings.accounts.AccountDashboardFragmentTest
.ShadowAuthenticationHelper.LABELS;
+import static com.android.settings.accounts.AccountDashboardFragmentTest
+ .ShadowAuthenticationHelper.TYPES;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
@@ -75,7 +78,6 @@
ShadowAuthenticationHelper.class
})
public void updateSummary_hasAccount_shouldDisplayUpTo3AccountTypes() {
- ShadowAuthenticationHelper.setHasAccount(true);
final SummaryLoader loader = mock(SummaryLoader.class);
final Activity activity = Robolectric.buildActivity(Activity.class).setup().get();
@@ -91,7 +93,7 @@
ShadowAuthenticationHelper.class
})
public void updateSummary_noAccount_shouldDisplayDefaultSummary() {
- ShadowAuthenticationHelper.setHasAccount(false);
+ ShadowAuthenticationHelper.setEnabledAccount(null);
final SummaryLoader loader = mock(SummaryLoader.class);
final Activity activity = Robolectric.buildActivity(Activity.class).setup().get();
@@ -104,6 +106,24 @@
}
@Test
+ @Config(shadows = {
+ ShadowAuthenticationHelper.class
+ })
+ public void updateSummary_noAccountTypeLabel_shouldNotDisplayNullEntry() {
+ final SummaryLoader loader = mock(SummaryLoader.class);
+ final Activity activity = Robolectric.buildActivity(Activity.class).setup().get();
+ final String[] enabledAccounts = {TYPES[0], "unlabled_account_type", TYPES[1]};
+ ShadowAuthenticationHelper.setEnabledAccount(enabledAccounts);
+
+ final SummaryLoader.SummaryProvider provider = mFragment.SUMMARY_PROVIDER_FACTORY
+ .createSummaryProvider(activity, loader);
+ provider.setListening(true);
+
+ // should only show the 2 accounts with labels
+ verify(loader).setSummary(provider, LABELS[0] + ", " + LABELS[1]);
+ }
+
+ @Test
public void testSearchIndexProvider_shouldIndexResource() {
final List<SearchIndexableResource> indexRes =
AccountDashboardFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
@@ -118,26 +138,25 @@
public static class ShadowAuthenticationHelper {
static final String[] TYPES = new String[] {"type1", "type2", "type3", "type4"};
- static final String[] LABELS = new String[] {"LABEL1", "LABEL2",
- "LABEL3", "LABEL4"};
- private static boolean sHasAccount = true;
+ static final String[] LABELS = new String[] {"LABEL1", "LABEL2", "LABEL3", "LABEL4"};
+ private static String[] sEnabledAccount = TYPES;
public void __constructor__(Context context, UserHandle userHandle,
AuthenticatorHelper.OnAccountsUpdateListener listener) {
}
- public static void setHasAccount(boolean hasAccount) {
- sHasAccount = hasAccount;
+ public static void setEnabledAccount(String[] enabledAccount) {
+ sEnabledAccount = enabledAccount;
}
@Resetter
public static void reset() {
- sHasAccount = true;
+ sEnabledAccount = TYPES;
}
@Implementation
public String[] getEnabledAccountTypes() {
- return sHasAccount ? TYPES : null;
+ return sEnabledAccount;
}
@Implementation
@@ -151,7 +170,7 @@
} else if (TextUtils.equals(accountType, TYPES[3])) {
return LABELS[3];
}
- return "no_label";
+ return null;
}
}
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment2Test.java b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment2Test.java
index 3eacd7a..5aa3933 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment2Test.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment2Test.java
@@ -72,11 +72,6 @@
}
@Test
- public void testCategory_isConnectedDevice() {
- assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_DEVICE);
- }
-
- @Test
public void testSearchIndexProvider_shouldIndexResource() {
final List<SearchIndexableResource> indexRes =
mFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(mContext,
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
index ea1d29b..41032bb 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
@@ -16,6 +16,9 @@
package com.android.settings.datausage;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.doReturn;
+
import android.content.Context;
import android.content.Intent;
import android.net.NetworkTemplate;
@@ -68,8 +71,10 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application;
+ mContext = spy(RuntimeEnvironment.application);
+ doReturn("%1$s %2%s").when(mContext)
+ .getString(com.android.internal.R.string.fileSizeSuffix);
mController = new DataUsageSummaryPreferenceController(
mContext,
mDataUsageController,