diff --git a/res/values/strings.xml b/res/values/strings.xml index 462387bf0f2..28113da228e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -7020,4 +7020,25 @@ Adaptive brightness is OFF + + + Avg %1$s of %2$s memory used + + + Signed in as %1$s + + + %1$s is default + + + ON / %1$s + + + OFF + + + Back up disabled + + + Android %1$s diff --git a/src/com/android/settings/DateTimeSettings.java b/src/com/android/settings/DateTimeSettings.java index 05405751413..d92d6108ce6 100644 --- a/src/com/android/settings/DateTimeSettings.java +++ b/src/com/android/settings/DateTimeSettings.java @@ -38,6 +38,7 @@ import android.widget.DatePicker; import android.widget.TimePicker; import com.android.internal.logging.MetricsLogger; +import com.android.settings.dashboard.SummaryLoader; import com.android.settingslib.datetime.ZoneGetter; import java.util.Calendar; @@ -353,4 +354,33 @@ public class DateTimeSettings extends SettingsPreferenceFragment } } }; + + 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) { + final Calendar now = Calendar.getInstance(); + mSummaryLoader.setSummary(this, ZoneGetter.getTimeZoneOffsetAndName( + now.getTimeZone(), now.getTime())); + } + } + } + + 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); + } + }; } diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java index 40be2e7a6a2..95f1a83560e 100644 --- a/src/com/android/settings/DeviceInfoSettings.java +++ b/src/com/android/settings/DeviceInfoSettings.java @@ -36,6 +36,7 @@ import android.util.Log; import android.widget.Toast; import com.android.internal.logging.MetricsLogger; +import com.android.settings.dashboard.SummaryLoader; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Index; import com.android.settings.search.Indexable; @@ -337,6 +338,34 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In startActivityForResult(intent, 0); } + 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) { + mSummaryLoader.setSummary(this, mContext.getString(R.string.about_summary, + Build.VERSION.RELEASE)); + } + } + } + + 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); + } + }; + /** * For Search. */ diff --git a/src/com/android/settings/PrivacySettings.java b/src/com/android/settings/PrivacySettings.java index 14e45bec459..2344a33ee89 100644 --- a/src/com/android/settings/PrivacySettings.java +++ b/src/com/android/settings/PrivacySettings.java @@ -16,6 +16,7 @@ package com.android.settings; +import android.app.Activity; import android.app.backup.IBackupManager; import android.content.ContentResolver; import android.content.Context; @@ -34,6 +35,7 @@ import android.support.v7.preference.PreferenceScreen; import android.util.Log; import com.android.internal.logging.MetricsLogger; +import com.android.settings.dashboard.SummaryLoader; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; @@ -180,6 +182,51 @@ public class PrivacySettings extends SettingsPreferenceFragment implements Index return R.string.help_url_backup_reset; } + 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) { + IBackupManager backupManager = IBackupManager.Stub.asInterface( + ServiceManager.getService(Context.BACKUP_SERVICE)); + try { + boolean backupEnabled = backupManager.isBackupEnabled(); + if (backupEnabled) { + String transport = backupManager.getCurrentTransport(); + String configSummary = backupManager.getDestinationString(transport); + if (configSummary != null) { + mSummaryLoader.setSummary(this, configSummary); + } else { + mSummaryLoader.setSummary(this, mContext.getString( + R.string.backup_configure_account_default_summary)); + } + } else { + mSummaryLoader.setSummary(this, mContext.getString( + R.string.backup_disabled)); + } + } catch (RemoteException e) { + } + } + } + } + + 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); + } + }; + /** * For Search. */ diff --git a/src/com/android/settings/applications/ProcessStatsSummary.java b/src/com/android/settings/applications/ProcessStatsSummary.java index 399558b27d9..09fea8947b8 100644 --- a/src/com/android/settings/applications/ProcessStatsSummary.java +++ b/src/com/android/settings/applications/ProcessStatsSummary.java @@ -15,6 +15,8 @@ */ package com.android.settings.applications; +import android.app.Activity; +import android.content.BroadcastReceiver; import android.content.Context; import android.os.Bundle; import android.support.v7.preference.Preference; @@ -28,6 +30,7 @@ import com.android.internal.logging.MetricsLogger; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.applications.ProcStatsData.MemInfo; +import com.android.settings.dashboard.SummaryLoader; public class ProcessStatsSummary extends ProcessStatsBase implements OnPreferenceClickListener { @@ -123,4 +126,39 @@ public class ProcessStatsSummary extends ProcessStatsBase implements OnPreferenc return false; } + 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) { + ProcStatsData statsManager = new ProcStatsData(mContext, false); + statsManager.setDuration(sDurations[0]); + MemInfo memInfo = statsManager.getMemInfo(); + String usedResult = Formatter.formatShortFileSize(mContext, + (long) memInfo.realUsedRam); + String totalResult = Formatter.formatShortFileSize(mContext, + (long) memInfo.realTotalRam); + mSummaryLoader.setSummary(this, mContext.getString(R.string.memory_summary, + usedResult, totalResult)); + } + } + } + + 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); + } + }; + } diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java index 779944b8ded..fff5a785f05 100644 --- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java +++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java @@ -60,6 +60,7 @@ import com.android.settings.SubSettings; import com.android.settings.UserDictionarySettings; import com.android.settings.Utils; import com.android.settings.VoiceInputOutputSettings; +import com.android.settings.dashboard.SummaryLoader; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; import com.android.settings.search.SearchIndexableRaw; @@ -648,6 +649,34 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment } } + 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) { + String localeName = getLocaleName(mContext); + mSummaryLoader.setSummary(this, localeName); + } + } + } + + public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY + = new SummaryLoader.SummaryProviderFactory() { + @Override + public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity, + SummaryLoader summaryLoader) { + return new SummaryProvider(activity, summaryLoader); + } + }; + public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider() { @Override diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java index 38647bda417..0259c9f7222 100644 --- a/src/com/android/settings/location/LocationSettings.java +++ b/src/com/android/settings/location/LocationSettings.java @@ -16,6 +16,7 @@ package com.android.settings.location; +import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -24,6 +25,7 @@ import android.location.SettingInjectorService; import android.os.Bundle; import android.os.UserHandle; import android.os.UserManager; +import android.provider.Settings; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceGroup; @@ -41,6 +43,7 @@ import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.Utils; import com.android.settings.applications.InstalledAppDetails; +import com.android.settings.dashboard.SummaryLoader; import com.android.settings.widget.SwitchBar; import com.android.settingslib.location.RecentLocationApps; @@ -331,23 +334,25 @@ public class LocationSettings extends LocationSettingsBase return R.string.help_url_location_access; } - @Override - public void onModeChanged(int mode, boolean restricted) { + private static int getLocationString(int mode) { switch (mode) { case android.provider.Settings.Secure.LOCATION_MODE_OFF: - mLocationMode.setSummary(R.string.location_mode_location_off_title); - break; + return R.string.location_mode_location_off_title; case android.provider.Settings.Secure.LOCATION_MODE_SENSORS_ONLY: - mLocationMode.setSummary(R.string.location_mode_sensors_only_title); - break; + return R.string.location_mode_sensors_only_title; case android.provider.Settings.Secure.LOCATION_MODE_BATTERY_SAVING: - mLocationMode.setSummary(R.string.location_mode_battery_saving_title); - break; + return R.string.location_mode_battery_saving_title; case android.provider.Settings.Secure.LOCATION_MODE_HIGH_ACCURACY: - mLocationMode.setSummary(R.string.location_mode_high_accuracy_title); - break; - default: - break; + return R.string.location_mode_high_accuracy_title; + } + return 0; + } + + @Override + public void onModeChanged(int mode, boolean restricted) { + int modeDescription = getLocationString(mode); + if (modeDescription != 0) { + mLocationMode.setSummary(modeDescription); } // Restricted user can't change the location mode, so disable the master switch. But in some @@ -422,4 +427,39 @@ public class LocationSettings extends LocationSettingsBase 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) { + int mode = Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF); + if (mode != Settings.Secure.LOCATION_MODE_OFF) { + mSummaryLoader.setSummary(this, mContext.getString(R.string.location_on_summary, + mContext.getString(getLocationString(mode)))); + } else { + mSummaryLoader.setSummary(this, + mContext.getString(R.string.location_off_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); + } + }; } diff --git a/src/com/android/settings/nfc/NfcPaymentPreference.java b/src/com/android/settings/nfc/NfcPaymentPreference.java index c918d2f2a89..4738728a5f4 100644 --- a/src/com/android/settings/nfc/NfcPaymentPreference.java +++ b/src/com/android/settings/nfc/NfcPaymentPreference.java @@ -15,6 +15,7 @@ */ package com.android.settings.nfc; +import android.app.Activity; import android.app.AlertDialog; import android.content.ActivityNotFoundException; import android.content.Context; @@ -32,6 +33,7 @@ import android.widget.RadioButton; import com.android.settings.CustomDialogPreference; import com.android.settings.R; +import com.android.settings.dashboard.SummaryLoader; import com.android.settings.nfc.PaymentBackend.PaymentAppInfo; import java.util.List; diff --git a/src/com/android/settings/nfc/PaymentSettings.java b/src/com/android/settings/nfc/PaymentSettings.java index b03a9ef7838..42545b909f5 100644 --- a/src/com/android/settings/nfc/PaymentSettings.java +++ b/src/com/android/settings/nfc/PaymentSettings.java @@ -16,6 +16,8 @@ package com.android.settings.nfc; +import android.app.Activity; +import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v7.preference.PreferenceManager; @@ -25,9 +27,12 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; + import com.android.internal.logging.MetricsLogger; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.dashboard.SummaryLoader; +import com.android.settings.nfc.PaymentBackend.PaymentAppInfo; import java.util.List; @@ -93,4 +98,35 @@ public class PaymentSettings extends SettingsPreferenceFragment { menuItem.setIntent(howItWorksIntent); menuItem.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_NEVER); } + + 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) { + PaymentBackend paymentBackend = new PaymentBackend(mContext); + paymentBackend.refresh(); + PaymentAppInfo app = paymentBackend.getDefaultApp(); + mSummaryLoader.setSummary(this, mContext.getString(R.string.payment_summary, + app.label)); + } + } + } + + 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); + } + }; } diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index 59ab9016f66..3e2ac872324 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -61,6 +61,7 @@ import com.android.settings.SelectableEditTextPreference; import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.Utils; +import com.android.settings.dashboard.SummaryLoader; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; import com.android.settings.search.SearchIndexableRaw; @@ -1052,6 +1053,36 @@ public class UserSettings extends SettingsPreferenceFragment } } + 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