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
This commit is contained in:
@@ -3030,6 +3030,8 @@
|
||||
android:value="com.android.settings.category.ia.homepage"/>
|
||||
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
||||
android:value="com.android.settings.network.NetworkDashboardFragment"/>
|
||||
<meta-data android:name="com.android.settings.summary"
|
||||
android:value="@string/network_dashboard_summary"/>
|
||||
</activity>
|
||||
|
||||
<activity-alias android:name="DataUsageDashboardAlias"
|
||||
@@ -3053,6 +3055,8 @@
|
||||
android:value="com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment"/>
|
||||
<meta-data android:name="com.android.settings.category"
|
||||
android:value="com.android.settings.category.ia.homepage"/>
|
||||
<meta-data android:name="com.android.settings.summary"
|
||||
android:value="@string/connected_devices_dashboard_summary"/>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".Settings$AppAndNotificationDashboardActivity"
|
||||
@@ -3065,6 +3069,8 @@
|
||||
android:value="com.android.settings.applications.AppAndNotificationDashboardFragment"/>
|
||||
<meta-data android:name="com.android.settings.category"
|
||||
android:value="com.android.settings.category.ia.homepage"/>
|
||||
<meta-data android:name="com.android.settings.summary"
|
||||
android:value="@string/app_and_notification_dashboard_summary"/>
|
||||
</activity>
|
||||
|
||||
<activity-alias android:name="BatteryDashboardAlias"
|
||||
@@ -3089,6 +3095,8 @@
|
||||
android:value="com.android.settings.DisplaySettings" />
|
||||
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
|
||||
android:value="true" />
|
||||
<meta-data android:name="com.android.settings.summary"
|
||||
android:value="@string/display_dashboard_summary"/>
|
||||
</activity-alias>
|
||||
|
||||
<activity-alias android:name="SoundDashboardAlias"
|
||||
@@ -3102,6 +3110,8 @@
|
||||
android:value="com.android.settings.notification.SoundSettings" />
|
||||
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
|
||||
android:value="true" />
|
||||
<meta-data android:name="com.android.settings.summary"
|
||||
android:value="@string/sound_dashboard_summary"/>
|
||||
</activity-alias>
|
||||
|
||||
<activity android:name=".Settings$StorageDashboardActivity"
|
||||
@@ -3167,6 +3177,8 @@
|
||||
android:value="com.android.settings.accessibility.AccessibilitySettings" />
|
||||
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
|
||||
android:value="true" />
|
||||
<meta-data android:name="com.android.settings.summary"
|
||||
android:resource="@string/accessibility_settings_summary" />
|
||||
</activity-alias>
|
||||
|
||||
<activity android:name=".Settings$SystemDashboardActivity"
|
||||
@@ -3179,6 +3191,8 @@
|
||||
android:value="com.android.settings.category.ia.homepage"/>
|
||||
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
||||
android:value="com.android.settings.system.SystemDashboardFragment"/>
|
||||
<meta-data android:name="com.android.settings.summary"
|
||||
android:value="@string/system_dashboard_summary"/>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".Settings$SupportDashboardActivity"
|
||||
@@ -3192,7 +3206,7 @@
|
||||
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
||||
android:value="com.android.settings.dashboard.SupportFragment"/>
|
||||
<meta-data android:name="com.android.settings.summary"
|
||||
android:resource="@string/help_label"/>
|
||||
android:resource="@string/support_summary"/>
|
||||
</activity>
|
||||
|
||||
<!-- Alias for IME & Language in new IA. Should merge into TargetActivity when launch -->
|
||||
|
@@ -743,7 +743,8 @@
|
||||
<!-- Main Settings screen setting option title for the item to take you to the accounts screen [CHAR LIMIT=22] -->
|
||||
<string name="account_settings_title">Accounts</string>
|
||||
<!-- Main Settings screen setting option title for the item to take you to the security screen -->
|
||||
<string name="security_settings_title">Security & lockscreen</string>
|
||||
<string name="security_settings_title">Security & screen lock</string>
|
||||
|
||||
<!-- Main Settings screen setting option summary text for the item tot ake you to the security and location screen -->
|
||||
<string name="security_settings_summary">Set My Location, screen unlock, SIM card lock, credential storage lock</string>
|
||||
<!-- Main Settings screen setting option summary text for the item to take you to the CDMA security and location screen -->
|
||||
@@ -754,7 +755,8 @@
|
||||
<string name="disabled_by_administrator_summary">Disabled by administrator</string>
|
||||
<!-- In the security screen, the header title for security statuses -->
|
||||
<string name="security_status_title">Security status</string>
|
||||
|
||||
<!-- Summary for Security settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
|
||||
<string name="security_dashboard_summary">Location, fingerprint</string>
|
||||
<!-- Fingerprint enrollment and settings --><skip />
|
||||
<!-- Title shown for menu item that launches fingerprint settings or enrollment [CHAR LIMIT=22] -->
|
||||
<string name="security_settings_fingerprint_preference_title">Fingerprint</string>
|
||||
@@ -3960,6 +3962,8 @@
|
||||
<string name="accessibility_settings">Accessibility</string>
|
||||
<!-- Settings title for accessibility settings screen -->
|
||||
<string name="accessibility_settings_title">Accessibility settings</string>
|
||||
<!-- Summary for Accessibility settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
|
||||
<string name="accessibility_settings_summary">Screen readers, audio, display, interaction controls</string>
|
||||
<!-- Settings title for a brief version of Vision-Related Accessibility Settings. Displayed in Setup Wizard only. [CHAR LIMIT=35] -->
|
||||
<string name="vision_settings_title">Vision Settings</string>
|
||||
<!-- Settings description for a brief version of Vision-Related Accessibility Settings. Tells the user that they can adjust these settings now to help them through the remainder of the Setup Wizard and that they can later be changed in Settings. Displayed in Setup Wizard only. [CHAR LIMIT=none] -->
|
||||
@@ -5698,6 +5702,9 @@
|
||||
<!-- Help menu label [CHAR LIMIT=20] -->
|
||||
<string name="help_label">Help & feedback</string>
|
||||
|
||||
<!-- Summary text for support setting tile [CHAR LIMIT=None] -->
|
||||
<string name="support_summary">Help articles, phone & chat support</string>
|
||||
|
||||
<!-- Help URI, Default [DO NOT TRANSLATE] -->
|
||||
<string name="help_uri_default" translatable="false"></string>
|
||||
<!-- Help URI, Android beam [DO NOT TRANSLATE] -->
|
||||
@@ -5956,17 +5963,23 @@
|
||||
|
||||
<!-- Title for setting tile leading to network and Internet settings [CHAR LIMIT=40]-->
|
||||
<string name="network_dashboard_title">Network & internet</string>
|
||||
<!-- Summary for Network and Internet settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
|
||||
<string name="network_dashboard_summary">Wi-Fi, cellular, data usage, hotspot</string>
|
||||
<!-- Title for setting tile leading to Connected devices settings [CHAR LIMIT=40]-->
|
||||
<string name="connected_devices_dashboard_title">Connected devices</string>
|
||||
<!-- Summary for Connected devices settings, explaning a few important settings under it [CHAR LIMIT=NONE]-->
|
||||
<string name="connected_devices_dashboard_summary">Bluetooth, NFC, cast</string>
|
||||
<!-- Title for setting tile leading to Apps & Notification settings [CHAR LIMIT=40]-->
|
||||
<string name="app_and_notification_dashboard_title">Apps & notifications</string>
|
||||
<!-- Summary for Apps & Notification settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
|
||||
<string name="app_and_notification_dashboard_summary">Permissions, default apps</string>
|
||||
<!-- Title for setting tile leading to User and accounts settings [CHAR LIMIT=40]-->
|
||||
<string name="account_dashboard_title">User & accounts</string>
|
||||
<!-- Title for setting tile leading to setting UI which allows user set default app to
|
||||
handle actions such as open web page, making phone calls, default SMS apps [CHAR LIMIT=40]-->
|
||||
<string name="app_default_dashboard_title">Default apps</string>
|
||||
<!-- Summary text for system preference tile, showing current display language of device [CHAR LIMIT=NONE]-->
|
||||
<string name="system_dashboard_summary">Language: <xliff:g id="language">%1$s</xliff:g></string>
|
||||
<!-- Summary text for system preference tile, showing important setting items under system setting [CHAR LIMIT=NONE]-->
|
||||
<string name="system_dashboard_summary">Languages, backup, updates, about phone</string>
|
||||
|
||||
<!-- Search strings -->
|
||||
<!-- Text to describe the search results fragment title [CHAR LIMIT=16] -->
|
||||
@@ -6060,6 +6073,9 @@
|
||||
[CHAR LIMIT=100] -->
|
||||
<string name="sound_settings_summary">Ring volume at <xliff:g id="percentage" example="2%">%1$s</xliff:g></string>
|
||||
|
||||
<!-- Summary for sound settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
|
||||
<string name="sound_dashboard_summary">Volume, vibration, Do not disturb</string>
|
||||
|
||||
<!-- Sound: Dashboard summary indicating the volume of ringtone when at 0% with vibrate enabled. [CHAR LIMIT=100] -->
|
||||
<string name="sound_settings_summary_vibrate">Ringer set to vibrate</string>
|
||||
|
||||
@@ -7403,6 +7419,8 @@
|
||||
|
||||
<!-- Summary of display with screen sleep timeout [CHAR LIMIT=NONE] -->
|
||||
<string name="display_summary">Sleep after <xliff:g id="timeout_description" example="10 minutes">%1$s</xliff:g> of inactivity</string>
|
||||
<!-- Summary for Display settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
|
||||
<string name="display_dashboard_summary">Wallpaper, sleep, font size</string>
|
||||
<!-- Example summary of display used in Setup Wizard preview screen [CHAR LIMIT=NONE] -->
|
||||
<string name="display_summary_example">Sleep after 10 minutes of inactivity</string>
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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<SearchIndexableResource> getXmlResourcesToIndex(
|
||||
Context context, boolean enabled) {
|
||||
final SearchIndexableResource sir = new SearchIndexableResource(context);
|
||||
sir.xmlResId = R.xml.sound_settings;
|
||||
return Arrays.asList(sir);
|
||||
}
|
||||
public List<SearchIndexableResource> getXmlResourcesToIndex(
|
||||
Context context, boolean enabled) {
|
||||
final SearchIndexableResource sir = new SearchIndexableResource(context);
|
||||
sir.xmlResId = R.xml.sound_settings;
|
||||
return Arrays.asList(sir);
|
||||
}
|
||||
|
||||
public List<String> getNonIndexableKeys(Context context) {
|
||||
final ArrayList<String> rt = new ArrayList<String>();
|
||||
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<String> getNonIndexableKeys(Context context) {
|
||||
final ArrayList<String> rt = new ArrayList<String>();
|
||||
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 ===
|
||||
|
||||
|
@@ -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.
|
||||
*/
|
||||
|
@@ -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
|
||||
|
@@ -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, "");
|
||||
}
|
||||
}
|
@@ -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<SearchIndexableResource> indexRes =
|
||||
|
@@ -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());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user