Merge "Fix print settings crash."
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 18f311f..a71821f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1932,16 +1932,6 @@
android:value="com.android.settings.wfd.WifiDisplaySettings" />
</activity>
-
- <!-- Development settings -->
-
- <!-- DeviceInfo adds the user's requested build to stats upload. -->
- <receiver android:name=".DeviceInfo$StatsReportReceiver">
- <intent-filter>
- <action android:name="android.intent.action.STATISTICS_REPORT" />
- </intent-filter>
- </receiver>
-
<activity android:name="Display" android:label="@string/display_label"
android:configChanges="fontScale"
android:taskAffinity="com.android.settings"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index a1f77cc..ecc465e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -7019,4 +7019,25 @@
<!-- Summary of display with adaptive brightness off [CHAR LIMIT=NONE] -->
<string name="display_summary_off">Adaptive brightness is OFF</string>
+
+ <!-- Summary of memory screen [CHAR LIMIT=NONE] -->
+ <string name="memory_summary">Avg <xliff:g id="used_memory" example="1.7GB">%1$s</xliff:g> of <xliff:g id="total_memory" example="2GB">%2$s</xliff:g> memory used</string>
+
+ <!-- Summary of user screen [CHAR LIMIT=NONE] -->
+ <string name="user_summary">Signed in as <xliff:g id="user_name" example="Jason">%1$s</xliff:g></string>
+
+ <!-- Summary of payment screen [CHAR LIMIT=NONE] -->
+ <string name="payment_summary"><xliff:g id="app_name" example="Payment App">%1$s</xliff:g> is default</string>
+
+ <!-- Summary of location screen [CHAR LIMIT=NONE] -->
+ <string name="location_on_summary">ON / <xliff:g id="location_mode" example="High accuracy">%1$s</xliff:g></string>
+
+ <!-- Location off [CHAR LIMIT=NONE] -->
+ <string name="location_off_summary">OFF</string>
+
+ <!-- Backup disabled summary [CHAR LIMIT=NONE] -->
+ <string name="backup_disabled">Back up disabled</string>
+
+ <!-- Summary of device info page [CHAR LIMIT=NONE] -->
+ <string name="about_summary">Android <xliff:g id="version" example="6.0">%1$s</xliff:g></string>
</resources>
diff --git a/res/xml/accessibility_autoclick_settings.xml b/res/xml/accessibility_autoclick_settings.xml
index 1eb4dc1..39b9736 100644
--- a/res/xml/accessibility_autoclick_settings.xml
+++ b/res/xml/accessibility_autoclick_settings.xml
@@ -18,7 +18,7 @@
android:title="@string/accessibility_autoclick_preference_title" >
- <SeekBarPreference
+ <com.android.settings.SeekBarPreference
android:key="autoclick_delay"
android:title="@string/accessibility_autoclick_delay_preference_title"
android:layout="@layout/preference_iconless_slider" />
diff --git a/src/com/android/settings/DateTimeSettings.java b/src/com/android/settings/DateTimeSettings.java
index 0540575..d92d610 100644
--- a/src/com/android/settings/DateTimeSettings.java
+++ b/src/com/android/settings/DateTimeSettings.java
@@ -38,6 +38,7 @@
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 @@
}
}
};
+
+ 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 40be2e7..95f1a83 100644
--- a/src/com/android/settings/DeviceInfoSettings.java
+++ b/src/com/android/settings/DeviceInfoSettings.java
@@ -36,6 +36,7 @@
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 @@
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 14e45be..2344a33 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.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 @@
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 399558b..09fea89 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.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 @@
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 779944b..fff5a78 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.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 @@
}
}
+ 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 38647bd..0c8ea66 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.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;
@@ -33,14 +35,13 @@
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Switch;
-
import com.android.internal.logging.MetricsLogger;
import com.android.settings.DimmableIconPreference;
-import com.android.settings.PreferenceActivity;
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 +332,25 @@
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
@@ -416,10 +419,45 @@
// start new fragment to display extended information
Bundle args = new Bundle();
args.putString(InstalledAppDetails.ARG_PACKAGE_NAME, mPackage);
- ((PreferenceActivity) getActivity()).startPreferencePanelAsUser(
+ ((SettingsActivity) getActivity()).startPreferencePanelAsUser(
InstalledAppDetails.class.getName(), args,
R.string.application_info_label, null, mUserHandle);
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 c918d2f..4738728 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 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 b03a9ef..42545b9 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.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 @@
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 59ab901..3e2ac87 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.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 @@
}
}
+ 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