From 7520e81ab5b75097a6a1c76e19e89b455a18cf58 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Thu, 9 Feb 2017 13:06:58 -0800 Subject: [PATCH] Update top level menu items summary text. - Use static summary for most items - Move summary for user setting to user&account setting Bug: 34975053 Test: RunSettingsRoboTests Change-Id: I9bf87267778dc5933f97f5d3b9ae0f4f0b8da1a8 --- AndroidManifest.xml | 16 +- res/values/strings.xml | 26 ++- src/com/android/settings/DisplaySettings.java | 46 ----- .../android/settings/SecuritySettings.java | 3 +- .../UserAndAccountDashboardFragment.java | 35 ++++ .../settings/notification/SoundSettings.java | 183 ++++++------------ .../system/SystemDashboardFragment.java | 30 --- .../android/settings/users/UserSettings.java | 32 --- .../android/settings/DisplaySettingsTest.java | 78 -------- .../UserAndAccountDashboardFragmentTest.java | 28 +++ .../system/SystemDashboardFragmentTest.java | 78 -------- 11 files changed, 157 insertions(+), 398 deletions(-) delete mode 100644 tests/robotests/src/com/android/settings/DisplaySettingsTest.java delete mode 100644 tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 178d2252cbe..fb9264790aa 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -3030,6 +3030,8 @@ android:value="com.android.settings.category.ia.homepage"/> + + + + + + + + android:resource="@string/support_summary"/> diff --git a/res/values/strings.xml b/res/values/strings.xml index 6cb164a0df2..d4a1786dc1e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -743,7 +743,8 @@ Accounts - Security & lockscreen + Security & screen lock + Set My Location, screen unlock, SIM card lock, credential storage lock @@ -754,7 +755,8 @@ Disabled by administrator Security status - + + Location, fingerprint Fingerprint @@ -3960,6 +3962,8 @@ Accessibility Accessibility settings + + Screen readers, audio, display, interaction controls Vision Settings @@ -5698,6 +5702,9 @@ Help & feedback + + Help articles, phone & chat support + @@ -5956,17 +5963,23 @@ Network & internet + + Wi-Fi, cellular, data usage, hotspot Connected devices + + Bluetooth, NFC, cast Apps & notifications + + Permissions, default apps User & accounts Default apps - - Language: %1$s + + Languages, backup, updates, about phone @@ -6060,6 +6073,9 @@ [CHAR LIMIT=100] --> Ring volume at %1$s + + Volume, vibration, Do not disturb + Ringer set to vibrate @@ -7403,6 +7419,8 @@ Sleep after %1$s of inactivity + + Wallpaper, sleep, font size Sleep after 10 minutes of inactivity diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java index d9cd047da9c..aa174999209 100644 --- a/src/com/android/settings/DisplaySettings.java +++ b/src/com/android/settings/DisplaySettings.java @@ -16,15 +16,12 @@ package com.android.settings; -import android.app.Activity; import android.content.Context; import android.provider.SearchIndexableResource; -import android.provider.Settings; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.core.PreferenceController; import com.android.settings.dashboard.DashboardFragment; -import com.android.settings.dashboard.SummaryLoader; import com.android.settings.display.AutoBrightnessPreferenceController; import com.android.settings.display.AutoRotatePreferenceController; import com.android.settings.display.CameraGesturePreferenceController; @@ -42,13 +39,10 @@ import com.android.settings.display.WallpaperPreferenceController; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; -import com.android.settingslib.drawer.CategoryKey; import java.util.ArrayList; import java.util.List; -import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT; - public class DisplaySettings extends DashboardFragment { private static final String TAG = "DisplaySettings"; @@ -102,46 +96,6 @@ public class DisplaySettings extends DashboardFragment { return R.string.help_uri_display; } - private static class SummaryProvider implements SummaryLoader.SummaryProvider { - private final Context mContext; - private final SummaryLoader mLoader; - - private SummaryProvider(Context context, SummaryLoader loader) { - mContext = context; - mLoader = loader; - } - - @Override - public void setListening(boolean listening) { - if (listening) { - updateSummary(); - } - } - - private void updateSummary() { - final long currentTimeout = Settings.System.getLong(mContext.getContentResolver(), - SCREEN_OFF_TIMEOUT, TimeoutPreferenceController.FALLBACK_SCREEN_TIMEOUT_VALUE); - final CharSequence[] entries = - mContext.getResources().getTextArray(R.array.screen_timeout_entries); - final CharSequence[] values = - mContext.getResources().getTextArray(R.array.screen_timeout_values); - final CharSequence timeoutDescription = TimeoutPreferenceController - .getTimeoutDescription(currentTimeout, entries, values); - final String summary = timeoutDescription == null ? "" - : mContext.getString(R.string.display_summary, timeoutDescription); - mLoader.setSummary(this, summary); - } - } - - public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY - = new SummaryLoader.SummaryProviderFactory() { - @Override - public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity, - SummaryLoader summaryLoader) { - return new SummaryProvider(activity, summaryLoader); - } - }; - public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider() { @Override diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index 4dc545bb0ce..f274114c73c 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -1300,7 +1300,8 @@ public class SecuritySettings extends SettingsPreferenceFragment dashboardFeatureProvider.getTilesForCategory(CategoryKey.CATEGORY_SECURITY); mSummaryLoader.setSummary(this, getPackageVerifierSummary(dashboardCategory)); } else { - mSummaryLoader.setSummary(this, null); + mSummaryLoader.setSummary(this, + mContext.getString(R.string.security_dashboard_summary)); } } diff --git a/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java b/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java index dbc0292677a..66fd85ae69c 100644 --- a/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java +++ b/src/com/android/settings/accounts/UserAndAccountDashboardFragment.java @@ -15,14 +15,19 @@ */ package com.android.settings.accounts; +import android.app.Activity; import android.content.Context; +import android.content.pm.UserInfo; import android.os.Bundle; +import android.os.UserHandle; +import android.os.UserManager; import android.provider.SearchIndexableResource; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.core.PreferenceController; import com.android.settings.dashboard.DashboardFragment; +import com.android.settings.dashboard.SummaryLoader; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.drawer.Tile; @@ -81,6 +86,36 @@ public class UserAndAccountDashboardFragment extends DashboardFragment { return true; } + private static class SummaryProvider implements SummaryLoader.SummaryProvider { + + private final Context mContext; + private final SummaryLoader mSummaryLoader; + + public SummaryProvider(Context context, SummaryLoader summaryLoader) { + mContext = context; + mSummaryLoader = summaryLoader; + } + + @Override + public void setListening(boolean listening) { + if (listening) { + UserInfo info = mContext.getSystemService(UserManager.class).getUserInfo( + UserHandle.myUserId()); + mSummaryLoader.setSummary(this, mContext.getString(R.string.user_summary, + info.name)); + } + } + } + + public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY + = new SummaryLoader.SummaryProviderFactory() { + @Override + public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity, + SummaryLoader summaryLoader) { + return new SummaryProvider(activity, summaryLoader); + } + }; + public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider() { @Override diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java index 1cf0ae691cc..c1a21599ea6 100644 --- a/src/com/android/settings/notification/SoundSettings.java +++ b/src/com/android/settings/notification/SoundSettings.java @@ -16,14 +16,8 @@ package com.android.settings.notification; -import android.app.Activity; -import android.app.NotificationManager; -import android.content.BroadcastReceiver; -import android.content.ComponentName; import android.content.Context; import android.content.Intent; -import android.content.IntentFilter; -import android.media.AudioManager; import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -39,11 +33,9 @@ import com.android.settings.RingtonePreference; import com.android.settings.core.PreferenceController; import com.android.settings.core.lifecycle.Lifecycle; import com.android.settings.dashboard.DashboardFragment; -import com.android.settings.dashboard.SummaryLoader; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; -import java.text.NumberFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -109,7 +101,7 @@ public class SoundSettings extends DashboardFragment { @Override protected int getPreferenceScreenResId() { return mDashboardFeatureProvider.isEnabled() - ? R.xml.ia_sound_settings : R.xml.sound_settings; + ? R.xml.ia_sound_settings : R.xml.sound_settings; } @Override @@ -127,7 +119,7 @@ public class SoundSettings extends DashboardFragment { controllers.add(new AlarmVolumePreferenceController(context, mVolumeCallback, lifecycle)); controllers.add(new MediaVolumePreferenceController(context, mVolumeCallback, lifecycle)); controllers.add( - new NotificationVolumePreferenceController(context, mVolumeCallback, lifecycle)); + new NotificationVolumePreferenceController(context, mVolumeCallback, lifecycle)); controllers.add(new RingVolumePreferenceController(context, mVolumeCallback, lifecycle)); // === Phone & notification ringtone === @@ -198,7 +190,9 @@ public class SoundSettings extends DashboardFragment { mCurrent.stopSample(); } } - }; + } + + ; // === Callbacks === @@ -220,130 +214,63 @@ public class SoundSettings extends DashboardFragment { } } - // === Summary === - - private static class SummaryProvider extends BroadcastReceiver - implements SummaryLoader.SummaryProvider { - - private final Context mContext; - private final AudioManager mAudioManager; - private final SummaryLoader mSummaryLoader; - private final int maxVolume; - - public SummaryProvider(Context context, SummaryLoader summaryLoader) { - mContext = context; - mSummaryLoader = summaryLoader; - mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); - maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_RING); - } - - @Override - public void setListening(boolean listening) { - if (listening) { - IntentFilter filter = new IntentFilter(); - filter.addAction(AudioManager.VOLUME_CHANGED_ACTION); - filter.addAction(AudioManager.STREAM_DEVICES_CHANGED_ACTION); - filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION); - filter.addAction(AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION); - filter.addAction(AudioManager.STREAM_MUTE_CHANGED_ACTION); - filter.addAction(NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED); - mContext.registerReceiver(this, filter); - } else { - mContext.unregisterReceiver(this); - } - } - - @Override - public void onReceive(Context context, Intent intent) { - final int ringerMode = mAudioManager.getRingerMode(); - int resId; - String percent = ""; - if (ringerMode == mAudioManager.RINGER_MODE_SILENT) { - resId = R.string.sound_settings_summary_silent; - } else if (ringerMode == mAudioManager.RINGER_MODE_VIBRATE){ - resId = R.string.sound_settings_summary_vibrate; - } - else { - percent = NumberFormat.getPercentInstance().format( - (double) mAudioManager.getStreamVolume( - AudioManager.STREAM_RING) / maxVolume); - resId = R.string.sound_settings_summary; - } - - final ComponentName suppressor = NotificationManager.from(mContext) - .getEffectsSuppressor(); - if (suppressor != null) { - String suppressText = SuppressorHelper.getSuppressionText(mContext, suppressor); - mSummaryLoader.setSummary(this, suppressText); - } else { - mSummaryLoader.setSummary(this, mContext.getString(resId, percent)); - } - } - } - - public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY - = new SummaryLoader.SummaryProviderFactory() { - @Override - public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity, - SummaryLoader summaryLoader) { - return new SummaryProvider(activity, summaryLoader); - } - }; - // === Indexing === public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider() { - public List getXmlResourcesToIndex( - Context context, boolean enabled) { - final SearchIndexableResource sir = new SearchIndexableResource(context); - sir.xmlResId = R.xml.sound_settings; - return Arrays.asList(sir); - } + public List getXmlResourcesToIndex( + Context context, boolean enabled) { + final SearchIndexableResource sir = new SearchIndexableResource(context); + sir.xmlResId = R.xml.sound_settings; + return Arrays.asList(sir); + } - public List getNonIndexableKeys(Context context) { - final ArrayList rt = new ArrayList(); - new NotificationVolumePreferenceController( - context, null /* Callback */, null /* Lifecycle */).updateNonIndexableKeys(rt); - new RingVolumePreferenceController( - context, null /* Callback */, null /* Lifecycle */).updateNonIndexableKeys(rt); - new PhoneRingtonePreferenceController(context).updateNonIndexableKeys(rt); - new VibrateWhenRingPreferenceController(context).updateNonIndexableKeys(rt); - new EmergencyBroadcastPreferenceController(context).updateNonIndexableKeys(rt); - if (FeatureFactory.getFactory(context).getDashboardFeatureProvider(context) - .isEnabled()) { - new DialPadTonePreferenceController(context, - null /* SettingsPreferenceFragment */, - null /* Lifecycle */).updateNonIndexableKeys(rt); - new ScreenLockSoundPreferenceController(context, - null /* SettingsPreferenceFragment */, - null /* Lifecycle */).updateNonIndexableKeys(rt); - new ChargingSoundPreferenceController(context, - null /* SettingsPreferenceFragment */, - null /* Lifecycle */).updateNonIndexableKeys(rt); - new DockingSoundPreferenceController(context, - null /* SettingsPreferenceFragment */, - null /* Lifecycle */).updateNonIndexableKeys(rt); - new TouchSoundPreferenceController(context, null /* SettingsPreferenceFragment */, - null /* Lifecycle */).updateNonIndexableKeys(rt); - new VibrateOnTouchPreferenceController(context, - null /* SettingsPreferenceFragment */, - null /* Lifecycle */).updateNonIndexableKeys(rt); - new DockAudioMediaPreferenceController(context, - null /* SettingsPreferenceFragment */, - null /* Lifecycle */).updateNonIndexableKeys(rt); - new BootSoundPreferenceController(context).updateNonIndexableKeys(rt); - new EmergencyTonePreferenceController(context, - null /* SettingsPreferenceFragment */, - null /* Lifecycle */).updateNonIndexableKeys(rt); - } else { - new CastPreferenceController(context).updateNonIndexableKeys(rt); - } + public List getNonIndexableKeys(Context context) { + final ArrayList rt = new ArrayList(); + new NotificationVolumePreferenceController( + context, null /* Callback */, + null /* Lifecycle */).updateNonIndexableKeys(rt); + new RingVolumePreferenceController( + context, null /* Callback */, + null /* Lifecycle */).updateNonIndexableKeys(rt); + new PhoneRingtonePreferenceController(context).updateNonIndexableKeys(rt); + new VibrateWhenRingPreferenceController(context).updateNonIndexableKeys(rt); + new EmergencyBroadcastPreferenceController(context).updateNonIndexableKeys(rt); + if (FeatureFactory.getFactory(context).getDashboardFeatureProvider(context) + .isEnabled()) { + new DialPadTonePreferenceController(context, + null /* SettingsPreferenceFragment */, + null /* Lifecycle */).updateNonIndexableKeys(rt); + new ScreenLockSoundPreferenceController(context, + null /* SettingsPreferenceFragment */, + null /* Lifecycle */).updateNonIndexableKeys(rt); + new ChargingSoundPreferenceController(context, + null /* SettingsPreferenceFragment */, + null /* Lifecycle */).updateNonIndexableKeys(rt); + new DockingSoundPreferenceController(context, + null /* SettingsPreferenceFragment */, + null /* Lifecycle */).updateNonIndexableKeys(rt); + new TouchSoundPreferenceController(context, null /* + SettingsPreferenceFragment */, + null /* Lifecycle */).updateNonIndexableKeys(rt); + new VibrateOnTouchPreferenceController(context, + null /* SettingsPreferenceFragment */, + null /* Lifecycle */).updateNonIndexableKeys(rt); + new DockAudioMediaPreferenceController(context, + null /* SettingsPreferenceFragment */, + null /* Lifecycle */).updateNonIndexableKeys(rt); + new BootSoundPreferenceController(context).updateNonIndexableKeys(rt); + new EmergencyTonePreferenceController(context, + null /* SettingsPreferenceFragment */, + null /* Lifecycle */).updateNonIndexableKeys(rt); + } else { + new CastPreferenceController(context).updateNonIndexableKeys(rt); + } - return rt; - } - }; + return rt; + } + }; // === Work Sound Settings === diff --git a/src/com/android/settings/system/SystemDashboardFragment.java b/src/com/android/settings/system/SystemDashboardFragment.java index c46bc6fbeba..2898ce27bf2 100644 --- a/src/com/android/settings/system/SystemDashboardFragment.java +++ b/src/com/android/settings/system/SystemDashboardFragment.java @@ -23,10 +23,8 @@ import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.core.PreferenceController; import com.android.settings.dashboard.DashboardFragment; -import com.android.settings.dashboard.SummaryLoader; import com.android.settings.deviceinfo.AdditionalSystemUpdatePreferenceController; import com.android.settings.deviceinfo.SystemUpdatePreferenceController; -import com.android.settings.localepicker.LocaleFeatureProvider; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; @@ -63,34 +61,6 @@ public class SystemDashboardFragment extends DashboardFragment { return controllers; } - /** - * For Summary - */ - private static class SummaryProvider implements SummaryLoader.SummaryProvider { - - private final Context mContext; - private final SummaryLoader mSummaryLoader; - private final LocaleFeatureProvider mLocaleFeatureProvider; - - public SummaryProvider(Context context, SummaryLoader summaryLoader) { - mContext = context; - mSummaryLoader = summaryLoader; - mLocaleFeatureProvider = FeatureFactory.getFactory(context).getLocaleFeatureProvider(); - } - - @Override - public void setListening(boolean listening) { - if (listening) { - final String language = mContext.getString( - R.string.system_dashboard_summary, mLocaleFeatureProvider.getLocaleNames()); - mSummaryLoader.setSummary(this, language); - } - } - } - - public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY = - (context, summaryLoader) -> new SummaryProvider(context, summaryLoader); - /** * For Search. */ diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index a7949534cb6..c49aa1d1af8 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -39,7 +39,6 @@ import android.os.Message; import android.os.RemoteException; import android.os.UserHandle; import android.os.UserManager; -import android.provider.Settings; import android.provider.Settings.Global; import android.support.v7.preference.Preference; import android.support.v7.preference.Preference.OnPreferenceClickListener; @@ -66,7 +65,6 @@ import com.android.settings.SettingsPreferenceFragment; import com.android.settings.Utils; import com.android.settings.accounts.AddUserWhenLockedPreferenceController; import com.android.settings.accounts.EmergencyInfoPreferenceController; -import com.android.settings.dashboard.SummaryLoader; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; @@ -1060,36 +1058,6 @@ public class UserSettings extends SettingsPreferenceFragment mMePreference.setTitle(label); } - private static class SummaryProvider implements SummaryLoader.SummaryProvider { - - private final Context mContext; - private final SummaryLoader mSummaryLoader; - - public SummaryProvider(Context context, SummaryLoader summaryLoader) { - mContext = context; - mSummaryLoader = summaryLoader; - } - - @Override - public void setListening(boolean listening) { - if (listening) { - UserInfo info = mContext.getSystemService(UserManager.class).getUserInfo( - UserHandle.myUserId()); - mSummaryLoader.setSummary(this, mContext.getString(R.string.user_summary, - info.name)); - } - } - } - - public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY - = new SummaryLoader.SummaryProviderFactory() { - @Override - public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity, - SummaryLoader summaryLoader) { - return new SummaryProvider(activity, summaryLoader); - } - }; - public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider() { @Override diff --git a/tests/robotests/src/com/android/settings/DisplaySettingsTest.java b/tests/robotests/src/com/android/settings/DisplaySettingsTest.java deleted file mode 100644 index ac499eb91cf..00000000000 --- a/tests/robotests/src/com/android/settings/DisplaySettingsTest.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.settings; - -import android.app.Activity; -import android.provider.Settings.System; -import com.android.settings.dashboard.SummaryLoader; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.robolectric.Robolectric; -import org.robolectric.annotation.Config; - -import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT; -import static junit.framework.Assert.assertEquals; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; - -@RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) -public class DisplaySettingsTest { - - private Activity mActivity; - @Mock private SummaryLoader mSummaryLoader; - private SummaryLoader.SummaryProvider mSummaryProvider; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - mActivity = Robolectric.buildActivity(Activity.class).get(); - mSummaryProvider = DisplaySettings.SUMMARY_PROVIDER_FACTORY.createSummaryProvider( - mActivity, mSummaryLoader); - } - - @Test - public void testInvalidTimeouts_summaryShouldBeEmpty() { - System.putLong(mActivity.getContentResolver(), SCREEN_OFF_TIMEOUT, -1); - assertEquals(System.getLong(mActivity.getContentResolver(), SCREEN_OFF_TIMEOUT, 0), -1); - mSummaryProvider.setListening(true); - - System.putLong(mActivity.getContentResolver(), SCREEN_OFF_TIMEOUT, 1234); - mSummaryProvider.setListening(true); - - verify(mSummaryLoader, times(2)).setSummary(mSummaryProvider, ""); - } - - @Test - public void testValidTimeouts_summaryShouldNotBeEmpty() { - final CharSequence[] values = - mActivity.getResources().getTextArray(R.array.screen_timeout_values); - - for (CharSequence value : values) { - long timeout = Long.parseLong(value.toString()); - System.putLong(mActivity.getContentResolver(), SCREEN_OFF_TIMEOUT, timeout); - assertEquals(System.getLong(mActivity.getContentResolver(), SCREEN_OFF_TIMEOUT, 0), timeout); - mSummaryProvider.setListening(true); - } - - verify(mSummaryLoader, never()).setSummary(mSummaryProvider, ""); - } -} diff --git a/tests/robotests/src/com/android/settings/accounts/UserAndAccountDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/accounts/UserAndAccountDashboardFragmentTest.java index 90761a01a77..e1c2abfe75e 100644 --- a/tests/robotests/src/com/android/settings/accounts/UserAndAccountDashboardFragmentTest.java +++ b/tests/robotests/src/com/android/settings/accounts/UserAndAccountDashboardFragmentTest.java @@ -15,11 +15,16 @@ */ package com.android.settings.accounts; +import android.app.Activity; import android.content.Context; +import android.content.pm.UserInfo; import android.os.Bundle; +import android.os.UserManager; import android.provider.SearchIndexableResource; +import com.android.settings.R; import com.android.settings.TestConfig; +import com.android.settings.dashboard.SummaryLoader; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.Tile; @@ -37,6 +42,9 @@ import org.robolectric.shadows.ShadowApplication; import java.util.List; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @RunWith(RobolectricTestRunner.class) @@ -48,6 +56,8 @@ public class UserAndAccountDashboardFragmentTest { @Mock(answer = Answers.RETURNS_DEEP_STUBS) private Context mContext; + @Mock + private UserManager mUserManager; private UserAndAccountDashboardFragment mFragment; @Before @@ -86,6 +96,24 @@ public class UserAndAccountDashboardFragmentTest { assertThat(mFragment.displayTile(tile)).isTrue(); } + @Test + public void updateSummary_shouldDisplaySignedInUser() { + final Activity activity = mock(Activity.class); + final SummaryLoader loader = mock(SummaryLoader.class); + final UserInfo userInfo = new UserInfo(); + userInfo.name = "test_name"; + + when(activity.getSystemService(UserManager.class)).thenReturn(mUserManager); + when(mUserManager.getUserInfo(anyInt())).thenReturn(userInfo); + + final SummaryLoader.SummaryProvider provider = mFragment.SUMMARY_PROVIDER_FACTORY + .createSummaryProvider(activity, loader); + provider.setListening(true); + + verify(activity).getString(R.string.user_summary, + userInfo.name); + } + @Test public void testSearchIndexProvider_shouldIndexResource() { final List indexRes = diff --git a/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java deleted file mode 100644 index 65a8805e7b8..00000000000 --- a/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.settings.system; - - -import android.app.Activity; -import com.android.settings.SettingsRobolectricTestRunner; -import com.android.settings.TestConfig; -import com.android.settings.dashboard.SummaryLoader; -import com.android.settings.testutils.FakeFeatureFactory; -import com.google.common.truth.Truth; -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.annotation.Config; - -import static com.android.settings.system.SystemDashboardFragment.SUMMARY_PROVIDER_FACTORY; -import static org.mockito.Matchers.anyString; -import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.verify; - -@RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) -public class SystemDashboardFragmentTest { - - @Mock(answer = Answers.RETURNS_DEEP_STUBS) - private Activity mActivity; - @Mock - private SummaryLoader mSummaryLoader; - - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - FakeFeatureFactory.setupForTest(mActivity); - } - - @Test - public void hasSummaryProvider() { - Truth.assertThat(SUMMARY_PROVIDER_FACTORY).isNotNull(); - } - - @Test - public void updateSummary_isListening_shouldNotifySummaryLoader() { - final SummaryLoader.SummaryProvider summaryProvider = - SUMMARY_PROVIDER_FACTORY.createSummaryProvider(mActivity, mSummaryLoader); - summaryProvider.setListening(true); - - verify(mSummaryLoader).setSummary(eq(summaryProvider), anyString()); - } - - @Test - public void updateSummary_notListening_shouldNotNotifySummaryLoader() { - final SummaryLoader.SummaryProvider summaryProvider = - SUMMARY_PROVIDER_FACTORY.createSummaryProvider(mActivity, mSummaryLoader); - summaryProvider.setListening(false); - - verify(mSummaryLoader, never()).setSummary(eq(summaryProvider), anyString()); - } -}