Merge "Update top level menu items summary text."
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user