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"/>
|
android:value="com.android.settings.category.ia.homepage"/>
|
||||||
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
||||||
android:value="com.android.settings.network.NetworkDashboardFragment"/>
|
android:value="com.android.settings.network.NetworkDashboardFragment"/>
|
||||||
|
<meta-data android:name="com.android.settings.summary"
|
||||||
|
android:value="@string/network_dashboard_summary"/>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity-alias android:name="DataUsageDashboardAlias"
|
<activity-alias android:name="DataUsageDashboardAlias"
|
||||||
@@ -3053,6 +3055,8 @@
|
|||||||
android:value="com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment"/>
|
android:value="com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment"/>
|
||||||
<meta-data android:name="com.android.settings.category"
|
<meta-data android:name="com.android.settings.category"
|
||||||
android:value="com.android.settings.category.ia.homepage"/>
|
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>
|
||||||
|
|
||||||
<activity android:name=".Settings$AppAndNotificationDashboardActivity"
|
<activity android:name=".Settings$AppAndNotificationDashboardActivity"
|
||||||
@@ -3065,6 +3069,8 @@
|
|||||||
android:value="com.android.settings.applications.AppAndNotificationDashboardFragment"/>
|
android:value="com.android.settings.applications.AppAndNotificationDashboardFragment"/>
|
||||||
<meta-data android:name="com.android.settings.category"
|
<meta-data android:name="com.android.settings.category"
|
||||||
android:value="com.android.settings.category.ia.homepage"/>
|
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>
|
||||||
|
|
||||||
<activity-alias android:name="BatteryDashboardAlias"
|
<activity-alias android:name="BatteryDashboardAlias"
|
||||||
@@ -3089,6 +3095,8 @@
|
|||||||
android:value="com.android.settings.DisplaySettings" />
|
android:value="com.android.settings.DisplaySettings" />
|
||||||
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
|
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
|
||||||
android:value="true" />
|
android:value="true" />
|
||||||
|
<meta-data android:name="com.android.settings.summary"
|
||||||
|
android:value="@string/display_dashboard_summary"/>
|
||||||
</activity-alias>
|
</activity-alias>
|
||||||
|
|
||||||
<activity-alias android:name="SoundDashboardAlias"
|
<activity-alias android:name="SoundDashboardAlias"
|
||||||
@@ -3102,6 +3110,8 @@
|
|||||||
android:value="com.android.settings.notification.SoundSettings" />
|
android:value="com.android.settings.notification.SoundSettings" />
|
||||||
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
|
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
|
||||||
android:value="true" />
|
android:value="true" />
|
||||||
|
<meta-data android:name="com.android.settings.summary"
|
||||||
|
android:value="@string/sound_dashboard_summary"/>
|
||||||
</activity-alias>
|
</activity-alias>
|
||||||
|
|
||||||
<activity android:name=".Settings$StorageDashboardActivity"
|
<activity android:name=".Settings$StorageDashboardActivity"
|
||||||
@@ -3167,6 +3177,8 @@
|
|||||||
android:value="com.android.settings.accessibility.AccessibilitySettings" />
|
android:value="com.android.settings.accessibility.AccessibilitySettings" />
|
||||||
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
|
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
|
||||||
android:value="true" />
|
android:value="true" />
|
||||||
|
<meta-data android:name="com.android.settings.summary"
|
||||||
|
android:resource="@string/accessibility_settings_summary" />
|
||||||
</activity-alias>
|
</activity-alias>
|
||||||
|
|
||||||
<activity android:name=".Settings$SystemDashboardActivity"
|
<activity android:name=".Settings$SystemDashboardActivity"
|
||||||
@@ -3179,6 +3191,8 @@
|
|||||||
android:value="com.android.settings.category.ia.homepage"/>
|
android:value="com.android.settings.category.ia.homepage"/>
|
||||||
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
||||||
android:value="com.android.settings.system.SystemDashboardFragment"/>
|
android:value="com.android.settings.system.SystemDashboardFragment"/>
|
||||||
|
<meta-data android:name="com.android.settings.summary"
|
||||||
|
android:value="@string/system_dashboard_summary"/>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity android:name=".Settings$SupportDashboardActivity"
|
<activity android:name=".Settings$SupportDashboardActivity"
|
||||||
@@ -3192,7 +3206,7 @@
|
|||||||
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
||||||
android:value="com.android.settings.dashboard.SupportFragment"/>
|
android:value="com.android.settings.dashboard.SupportFragment"/>
|
||||||
<meta-data android:name="com.android.settings.summary"
|
<meta-data android:name="com.android.settings.summary"
|
||||||
android:resource="@string/help_label"/>
|
android:resource="@string/support_summary"/>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<!-- Alias for IME & Language in new IA. Should merge into TargetActivity when launch -->
|
<!-- 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] -->
|
<!-- 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>
|
<string name="account_settings_title">Accounts</string>
|
||||||
<!-- Main Settings screen setting option title for the item to take you to the security screen -->
|
<!-- 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 -->
|
<!-- 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>
|
<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 -->
|
<!-- 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>
|
<string name="disabled_by_administrator_summary">Disabled by administrator</string>
|
||||||
<!-- In the security screen, the header title for security statuses -->
|
<!-- In the security screen, the header title for security statuses -->
|
||||||
<string name="security_status_title">Security status</string>
|
<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 />
|
<!-- Fingerprint enrollment and settings --><skip />
|
||||||
<!-- Title shown for menu item that launches fingerprint settings or enrollment [CHAR LIMIT=22] -->
|
<!-- Title shown for menu item that launches fingerprint settings or enrollment [CHAR LIMIT=22] -->
|
||||||
<string name="security_settings_fingerprint_preference_title">Fingerprint</string>
|
<string name="security_settings_fingerprint_preference_title">Fingerprint</string>
|
||||||
@@ -3960,6 +3962,8 @@
|
|||||||
<string name="accessibility_settings">Accessibility</string>
|
<string name="accessibility_settings">Accessibility</string>
|
||||||
<!-- Settings title for accessibility settings screen -->
|
<!-- Settings title for accessibility settings screen -->
|
||||||
<string name="accessibility_settings_title">Accessibility settings</string>
|
<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] -->
|
<!-- 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>
|
<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] -->
|
<!-- 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] -->
|
<!-- Help menu label [CHAR LIMIT=20] -->
|
||||||
<string name="help_label">Help & feedback</string>
|
<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] -->
|
<!-- Help URI, Default [DO NOT TRANSLATE] -->
|
||||||
<string name="help_uri_default" translatable="false"></string>
|
<string name="help_uri_default" translatable="false"></string>
|
||||||
<!-- Help URI, Android beam [DO NOT TRANSLATE] -->
|
<!-- Help URI, Android beam [DO NOT TRANSLATE] -->
|
||||||
@@ -5956,17 +5963,23 @@
|
|||||||
|
|
||||||
<!-- Title for setting tile leading to network and Internet settings [CHAR LIMIT=40]-->
|
<!-- Title for setting tile leading to network and Internet settings [CHAR LIMIT=40]-->
|
||||||
<string name="network_dashboard_title">Network & internet</string>
|
<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]-->
|
<!-- Title for setting tile leading to Connected devices settings [CHAR LIMIT=40]-->
|
||||||
<string name="connected_devices_dashboard_title">Connected devices</string>
|
<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]-->
|
<!-- Title for setting tile leading to Apps & Notification settings [CHAR LIMIT=40]-->
|
||||||
<string name="app_and_notification_dashboard_title">Apps & notifications</string>
|
<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]-->
|
<!-- Title for setting tile leading to User and accounts settings [CHAR LIMIT=40]-->
|
||||||
<string name="account_dashboard_title">User & accounts</string>
|
<string name="account_dashboard_title">User & accounts</string>
|
||||||
<!-- Title for setting tile leading to setting UI which allows user set default app to
|
<!-- 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]-->
|
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>
|
<string name="app_default_dashboard_title">Default apps</string>
|
||||||
<!-- Summary text for system preference tile, showing current display language of device [CHAR LIMIT=NONE]-->
|
<!-- Summary text for system preference tile, showing important setting items under system setting [CHAR LIMIT=NONE]-->
|
||||||
<string name="system_dashboard_summary">Language: <xliff:g id="language">%1$s</xliff:g></string>
|
<string name="system_dashboard_summary">Languages, backup, updates, about phone</string>
|
||||||
|
|
||||||
<!-- Search strings -->
|
<!-- Search strings -->
|
||||||
<!-- Text to describe the search results fragment title [CHAR LIMIT=16] -->
|
<!-- Text to describe the search results fragment title [CHAR LIMIT=16] -->
|
||||||
@@ -6060,6 +6073,9 @@
|
|||||||
[CHAR LIMIT=100] -->
|
[CHAR LIMIT=100] -->
|
||||||
<string name="sound_settings_summary">Ring volume at <xliff:g id="percentage" example="2%">%1$s</xliff:g></string>
|
<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] -->
|
<!-- 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>
|
<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] -->
|
<!-- 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>
|
<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] -->
|
<!-- 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>
|
<string name="display_summary_example">Sleep after 10 minutes of inactivity</string>
|
||||||
|
|
||||||
|
@@ -16,15 +16,12 @@
|
|||||||
|
|
||||||
package com.android.settings;
|
package com.android.settings;
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.provider.SearchIndexableResource;
|
import android.provider.SearchIndexableResource;
|
||||||
import android.provider.Settings;
|
|
||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.core.PreferenceController;
|
import com.android.settings.core.PreferenceController;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.dashboard.SummaryLoader;
|
|
||||||
import com.android.settings.display.AutoBrightnessPreferenceController;
|
import com.android.settings.display.AutoBrightnessPreferenceController;
|
||||||
import com.android.settings.display.AutoRotatePreferenceController;
|
import com.android.settings.display.AutoRotatePreferenceController;
|
||||||
import com.android.settings.display.CameraGesturePreferenceController;
|
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.overlay.FeatureFactory;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settings.search.Indexable;
|
import com.android.settings.search.Indexable;
|
||||||
import com.android.settingslib.drawer.CategoryKey;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
|
|
||||||
|
|
||||||
public class DisplaySettings extends DashboardFragment {
|
public class DisplaySettings extends DashboardFragment {
|
||||||
private static final String TAG = "DisplaySettings";
|
private static final String TAG = "DisplaySettings";
|
||||||
|
|
||||||
@@ -102,46 +96,6 @@ public class DisplaySettings extends DashboardFragment {
|
|||||||
return R.string.help_uri_display;
|
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 =
|
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||||
new BaseSearchIndexProvider() {
|
new BaseSearchIndexProvider() {
|
||||||
@Override
|
@Override
|
||||||
|
@@ -1300,7 +1300,8 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
dashboardFeatureProvider.getTilesForCategory(CategoryKey.CATEGORY_SECURITY);
|
dashboardFeatureProvider.getTilesForCategory(CategoryKey.CATEGORY_SECURITY);
|
||||||
mSummaryLoader.setSummary(this, getPackageVerifierSummary(dashboardCategory));
|
mSummaryLoader.setSummary(this, getPackageVerifierSummary(dashboardCategory));
|
||||||
} else {
|
} else {
|
||||||
mSummaryLoader.setSummary(this, null);
|
mSummaryLoader.setSummary(this,
|
||||||
|
mContext.getString(R.string.security_dashboard_summary));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -15,14 +15,19 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.settings.accounts;
|
package com.android.settings.accounts;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.pm.UserInfo;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.UserHandle;
|
||||||
|
import android.os.UserManager;
|
||||||
import android.provider.SearchIndexableResource;
|
import android.provider.SearchIndexableResource;
|
||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.PreferenceController;
|
import com.android.settings.core.PreferenceController;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
|
import com.android.settings.dashboard.SummaryLoader;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settingslib.drawer.Tile;
|
import com.android.settingslib.drawer.Tile;
|
||||||
@@ -81,6 +86,36 @@ public class UserAndAccountDashboardFragment extends DashboardFragment {
|
|||||||
return true;
|
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 =
|
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||||
new BaseSearchIndexProvider() {
|
new BaseSearchIndexProvider() {
|
||||||
@Override
|
@Override
|
||||||
|
@@ -16,14 +16,8 @@
|
|||||||
|
|
||||||
package com.android.settings.notification;
|
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.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
|
||||||
import android.media.AudioManager;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
@@ -39,11 +33,9 @@ import com.android.settings.RingtonePreference;
|
|||||||
import com.android.settings.core.PreferenceController;
|
import com.android.settings.core.PreferenceController;
|
||||||
import com.android.settings.core.lifecycle.Lifecycle;
|
import com.android.settings.core.lifecycle.Lifecycle;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.dashboard.SummaryLoader;
|
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
|
|
||||||
import java.text.NumberFormat;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -109,7 +101,7 @@ public class SoundSettings extends DashboardFragment {
|
|||||||
@Override
|
@Override
|
||||||
protected int getPreferenceScreenResId() {
|
protected int getPreferenceScreenResId() {
|
||||||
return mDashboardFeatureProvider.isEnabled()
|
return mDashboardFeatureProvider.isEnabled()
|
||||||
? R.xml.ia_sound_settings : R.xml.sound_settings;
|
? R.xml.ia_sound_settings : R.xml.sound_settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -127,7 +119,7 @@ public class SoundSettings extends DashboardFragment {
|
|||||||
controllers.add(new AlarmVolumePreferenceController(context, mVolumeCallback, lifecycle));
|
controllers.add(new AlarmVolumePreferenceController(context, mVolumeCallback, lifecycle));
|
||||||
controllers.add(new MediaVolumePreferenceController(context, mVolumeCallback, lifecycle));
|
controllers.add(new MediaVolumePreferenceController(context, mVolumeCallback, lifecycle));
|
||||||
controllers.add(
|
controllers.add(
|
||||||
new NotificationVolumePreferenceController(context, mVolumeCallback, lifecycle));
|
new NotificationVolumePreferenceController(context, mVolumeCallback, lifecycle));
|
||||||
controllers.add(new RingVolumePreferenceController(context, mVolumeCallback, lifecycle));
|
controllers.add(new RingVolumePreferenceController(context, mVolumeCallback, lifecycle));
|
||||||
|
|
||||||
// === Phone & notification ringtone ===
|
// === Phone & notification ringtone ===
|
||||||
@@ -198,7 +190,9 @@ public class SoundSettings extends DashboardFragment {
|
|||||||
mCurrent.stopSample();
|
mCurrent.stopSample();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
// === Callbacks ===
|
// === 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 ===
|
// === Indexing ===
|
||||||
|
|
||||||
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||||
new BaseSearchIndexProvider() {
|
new BaseSearchIndexProvider() {
|
||||||
|
|
||||||
public List<SearchIndexableResource> getXmlResourcesToIndex(
|
public List<SearchIndexableResource> getXmlResourcesToIndex(
|
||||||
Context context, boolean enabled) {
|
Context context, boolean enabled) {
|
||||||
final SearchIndexableResource sir = new SearchIndexableResource(context);
|
final SearchIndexableResource sir = new SearchIndexableResource(context);
|
||||||
sir.xmlResId = R.xml.sound_settings;
|
sir.xmlResId = R.xml.sound_settings;
|
||||||
return Arrays.asList(sir);
|
return Arrays.asList(sir);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getNonIndexableKeys(Context context) {
|
public List<String> getNonIndexableKeys(Context context) {
|
||||||
final ArrayList<String> rt = new ArrayList<String>();
|
final ArrayList<String> rt = new ArrayList<String>();
|
||||||
new NotificationVolumePreferenceController(
|
new NotificationVolumePreferenceController(
|
||||||
context, null /* Callback */, null /* Lifecycle */).updateNonIndexableKeys(rt);
|
context, null /* Callback */,
|
||||||
new RingVolumePreferenceController(
|
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
||||||
context, null /* Callback */, null /* Lifecycle */).updateNonIndexableKeys(rt);
|
new RingVolumePreferenceController(
|
||||||
new PhoneRingtonePreferenceController(context).updateNonIndexableKeys(rt);
|
context, null /* Callback */,
|
||||||
new VibrateWhenRingPreferenceController(context).updateNonIndexableKeys(rt);
|
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
||||||
new EmergencyBroadcastPreferenceController(context).updateNonIndexableKeys(rt);
|
new PhoneRingtonePreferenceController(context).updateNonIndexableKeys(rt);
|
||||||
if (FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
|
new VibrateWhenRingPreferenceController(context).updateNonIndexableKeys(rt);
|
||||||
.isEnabled()) {
|
new EmergencyBroadcastPreferenceController(context).updateNonIndexableKeys(rt);
|
||||||
new DialPadTonePreferenceController(context,
|
if (FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
|
||||||
null /* SettingsPreferenceFragment */,
|
.isEnabled()) {
|
||||||
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
new DialPadTonePreferenceController(context,
|
||||||
new ScreenLockSoundPreferenceController(context,
|
null /* SettingsPreferenceFragment */,
|
||||||
null /* SettingsPreferenceFragment */,
|
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
||||||
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
new ScreenLockSoundPreferenceController(context,
|
||||||
new ChargingSoundPreferenceController(context,
|
null /* SettingsPreferenceFragment */,
|
||||||
null /* SettingsPreferenceFragment */,
|
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
||||||
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
new ChargingSoundPreferenceController(context,
|
||||||
new DockingSoundPreferenceController(context,
|
null /* SettingsPreferenceFragment */,
|
||||||
null /* SettingsPreferenceFragment */,
|
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
||||||
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
new DockingSoundPreferenceController(context,
|
||||||
new TouchSoundPreferenceController(context, null /* SettingsPreferenceFragment */,
|
null /* SettingsPreferenceFragment */,
|
||||||
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
||||||
new VibrateOnTouchPreferenceController(context,
|
new TouchSoundPreferenceController(context, null /*
|
||||||
null /* SettingsPreferenceFragment */,
|
SettingsPreferenceFragment */,
|
||||||
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
||||||
new DockAudioMediaPreferenceController(context,
|
new VibrateOnTouchPreferenceController(context,
|
||||||
null /* SettingsPreferenceFragment */,
|
null /* SettingsPreferenceFragment */,
|
||||||
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
||||||
new BootSoundPreferenceController(context).updateNonIndexableKeys(rt);
|
new DockAudioMediaPreferenceController(context,
|
||||||
new EmergencyTonePreferenceController(context,
|
null /* SettingsPreferenceFragment */,
|
||||||
null /* SettingsPreferenceFragment */,
|
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
||||||
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
new BootSoundPreferenceController(context).updateNonIndexableKeys(rt);
|
||||||
} else {
|
new EmergencyTonePreferenceController(context,
|
||||||
new CastPreferenceController(context).updateNonIndexableKeys(rt);
|
null /* SettingsPreferenceFragment */,
|
||||||
}
|
null /* Lifecycle */).updateNonIndexableKeys(rt);
|
||||||
|
} else {
|
||||||
|
new CastPreferenceController(context).updateNonIndexableKeys(rt);
|
||||||
|
}
|
||||||
|
|
||||||
return rt;
|
return rt;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// === Work Sound Settings ===
|
// === Work Sound Settings ===
|
||||||
|
|
||||||
|
@@ -23,10 +23,8 @@ import com.android.internal.logging.nano.MetricsProto;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.PreferenceController;
|
import com.android.settings.core.PreferenceController;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.dashboard.SummaryLoader;
|
|
||||||
import com.android.settings.deviceinfo.AdditionalSystemUpdatePreferenceController;
|
import com.android.settings.deviceinfo.AdditionalSystemUpdatePreferenceController;
|
||||||
import com.android.settings.deviceinfo.SystemUpdatePreferenceController;
|
import com.android.settings.deviceinfo.SystemUpdatePreferenceController;
|
||||||
import com.android.settings.localepicker.LocaleFeatureProvider;
|
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settings.search.Indexable;
|
import com.android.settings.search.Indexable;
|
||||||
@@ -63,34 +61,6 @@ public class SystemDashboardFragment extends DashboardFragment {
|
|||||||
return controllers;
|
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.
|
* For Search.
|
||||||
*/
|
*/
|
||||||
|
@@ -39,7 +39,6 @@ import android.os.Message;
|
|||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.provider.Settings;
|
|
||||||
import android.provider.Settings.Global;
|
import android.provider.Settings.Global;
|
||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
import android.support.v7.preference.Preference.OnPreferenceClickListener;
|
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.Utils;
|
||||||
import com.android.settings.accounts.AddUserWhenLockedPreferenceController;
|
import com.android.settings.accounts.AddUserWhenLockedPreferenceController;
|
||||||
import com.android.settings.accounts.EmergencyInfoPreferenceController;
|
import com.android.settings.accounts.EmergencyInfoPreferenceController;
|
||||||
import com.android.settings.dashboard.SummaryLoader;
|
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settings.search.Indexable;
|
import com.android.settings.search.Indexable;
|
||||||
@@ -1060,36 +1058,6 @@ public class UserSettings extends SettingsPreferenceFragment
|
|||||||
mMePreference.setTitle(label);
|
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 =
|
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||||
new BaseSearchIndexProvider() {
|
new BaseSearchIndexProvider() {
|
||||||
@Override
|
@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;
|
package com.android.settings.accounts;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.pm.UserInfo;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.UserManager;
|
||||||
import android.provider.SearchIndexableResource;
|
import android.provider.SearchIndexableResource;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
import com.android.settings.TestConfig;
|
import com.android.settings.TestConfig;
|
||||||
|
import com.android.settings.dashboard.SummaryLoader;
|
||||||
import com.android.settings.testutils.FakeFeatureFactory;
|
import com.android.settings.testutils.FakeFeatureFactory;
|
||||||
import com.android.settingslib.drawer.CategoryKey;
|
import com.android.settingslib.drawer.CategoryKey;
|
||||||
import com.android.settingslib.drawer.Tile;
|
import com.android.settingslib.drawer.Tile;
|
||||||
@@ -37,6 +42,9 @@ import org.robolectric.shadows.ShadowApplication;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
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;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
@@ -48,6 +56,8 @@ public class UserAndAccountDashboardFragmentTest {
|
|||||||
|
|
||||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
@Mock
|
||||||
|
private UserManager mUserManager;
|
||||||
private UserAndAccountDashboardFragment mFragment;
|
private UserAndAccountDashboardFragment mFragment;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
@@ -86,6 +96,24 @@ public class UserAndAccountDashboardFragmentTest {
|
|||||||
assertThat(mFragment.displayTile(tile)).isTrue();
|
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
|
@Test
|
||||||
public void testSearchIndexProvider_shouldIndexResource() {
|
public void testSearchIndexProvider_shouldIndexResource() {
|
||||||
final List<SearchIndexableResource> indexRes =
|
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