Notification settings to match ixd mocks:

- added default sound config to general notification settings page
- reordered items to match docs

Bug: 37481153
Test: RunSettingsRoboTests; manual

Change-Id: I2404f0a3f97601c8b3a9d15de58e1d53bf801c45
This commit is contained in:
Alison Cichowlas
2017-06-21 11:41:34 -04:00
parent c225ee4e0a
commit 4fe455de57
3 changed files with 79 additions and 21 deletions

View File

@@ -22,6 +22,17 @@
android:key="dashboard_tile_placeholder" android:key="dashboard_tile_placeholder"
android:order="1"/> android:order="1"/>
<PreferenceCategory
android:key="lock_screen_notifications_profile_header"
android:title="@string/profile_section_header">
<com.android.settings.notification.RestrictedDropDownPreference
android:key="lock_screen_notifications_profile"
android:title="@string/lock_screen_notifications_title"
android:summary="@string/summary_placeholder"/>
</PreferenceCategory>
<!-- Notification badging --> <!-- Notification badging -->
<SwitchPreference <SwitchPreference
android:key="notification_badging" android:key="notification_badging"
@@ -38,20 +49,17 @@
android:title="@string/lock_screen_notifications_title" android:title="@string/lock_screen_notifications_title"
android:summary="@string/summary_placeholder"/> android:summary="@string/summary_placeholder"/>
<!-- Default notification ringtone -->
<com.android.settings.DefaultRingtonePreference
android:key="notification_default_ringtone"
android:title="@string/notification_ringtone_title"
android:dialogTitle="@string/notification_ringtone_title"
android:summary="@string/summary_placeholder"
android:ringtoneType="notification" />
<Preference <Preference
android:key="gesture_swipe_down_fingerprint_notifications" android:key="gesture_swipe_down_fingerprint_notifications"
android:title="@string/fingerprint_swipe_for_notifications_title" android:title="@string/fingerprint_swipe_for_notifications_title"
android:fragment="com.android.settings.gestures.SwipeToNotificationSettings" /> android:fragment="com.android.settings.gestures.SwipeToNotificationSettings" />
<PreferenceCategory
android:key="lock_screen_notifications_profile_header"
android:title="@string/profile_section_header">
<com.android.settings.notification.RestrictedDropDownPreference
android:key="lock_screen_notifications_profile"
android:title="@string/lock_screen_notifications_title"
android:summary="@string/summary_placeholder"/>
</PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>

View File

@@ -40,12 +40,10 @@
<PreferenceCategory <PreferenceCategory
android:title="@string/advanced_apps"> android:title="@string/advanced_apps">
<!-- Show badge --> <!-- Visibility Override -->
<com.android.settingslib.RestrictedSwitchPreference <com.android.settings.notification.RestrictedDropDownPreference
android:key="badge" android:key="visibility_override"
android:title="@string/notification_channel_badge_title" android:title="@string/app_notification_visibility_override_title" />
settings:useAdditionalSummary="true"
settings:restrictedSwitchSummary="@string/enabled_by_admin" />
<!-- Lights --> <!-- Lights -->
<com.android.settingslib.RestrictedSwitchPreference <com.android.settingslib.RestrictedSwitchPreference
@@ -53,10 +51,12 @@
android:title="@string/notification_show_lights_title" android:title="@string/notification_show_lights_title"
settings:useAdditionalSummary="true" /> settings:useAdditionalSummary="true" />
<!-- Visibility Override --> <!-- Show badge -->
<com.android.settings.notification.RestrictedDropDownPreference <com.android.settingslib.RestrictedSwitchPreference
android:key="visibility_override" android:key="badge"
android:title="@string/app_notification_visibility_override_title" /> android:title="@string/notification_channel_badge_title"
settings:useAdditionalSummary="true"
settings:restrictedSwitchSummary="@string/enabled_by_admin" />
<!-- Bypass DND --> <!-- Bypass DND -->
<com.android.settingslib.RestrictedSwitchPreference <com.android.settingslib.RestrictedSwitchPreference

View File

@@ -18,10 +18,16 @@ package com.android.settings.notification;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.UserHandle;
import android.provider.SearchIndexableResource; import android.provider.SearchIndexableResource;
import android.support.v7.preference.Preference;
import android.util.Log;
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.RingtonePreference;
import com.android.settings.applications.NotificationApps; import com.android.settings.applications.NotificationApps;
import com.android.settings.applications.NotificationApps.SummaryProvider; import com.android.settings.applications.NotificationApps.SummaryProvider;
import com.android.settings.core.PreferenceController; import com.android.settings.core.PreferenceController;
@@ -40,6 +46,11 @@ public class ConfigureNotificationSettings extends DashboardFragment {
private static final String TAG = "ConfigNotiSettings"; private static final String TAG = "ConfigNotiSettings";
private static final String KEY_SWIPE_DOWN = "gesture_swipe_down_fingerprint_notifications"; private static final String KEY_SWIPE_DOWN = "gesture_swipe_down_fingerprint_notifications";
private static final String KEY_NOTI_DEFAULT_RINGTONE = "notification_default_ringtone";
private RingtonePreference mRequestPreference;
private static final int REQUEST_CODE = 200;
private static final String SELECTED_PREFERENCE_KEY = "selected_preference";
@Override @Override
public int getMetricsCategory() { public int getMetricsCategory() {
@@ -82,9 +93,47 @@ public class ConfigureNotificationSettings extends DashboardFragment {
controllers.add(badgeController); controllers.add(badgeController);
controllers.add(pulseController); controllers.add(pulseController);
controllers.add(lockScreenNotificationController); controllers.add(lockScreenNotificationController);
controllers.add(new NotificationRingtonePreferenceController(context) {
@Override
public String getPreferenceKey() {
return KEY_NOTI_DEFAULT_RINGTONE;
}
});
return controllers; return controllers;
} }
@Override
public boolean onPreferenceTreeClick(Preference preference) {
if (preference instanceof RingtonePreference) {
mRequestPreference = (RingtonePreference) preference;
mRequestPreference.onPrepareRingtonePickerIntent(mRequestPreference.getIntent());
startActivityForResultAsUser(
mRequestPreference.getIntent(),
REQUEST_CODE,
null,
UserHandle.of(mRequestPreference.getUserId()));
return true;
}
return super.onPreferenceTreeClick(preference);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (mRequestPreference != null) {
mRequestPreference.onActivityResult(requestCode, resultCode, data);
mRequestPreference = null;
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if (mRequestPreference != null) {
outState.putString(SELECTED_PREFERENCE_KEY, mRequestPreference.getKey());
}
}
public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
= new SummaryLoader.SummaryProviderFactory() { = new SummaryLoader.SummaryProviderFactory() {
@Override @Override
@@ -111,5 +160,6 @@ public class ConfigureNotificationSettings extends DashboardFragment {
public List<PreferenceController> getPreferenceControllers(Context context) { public List<PreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context, null); return buildPreferenceControllers(context, null);
} }
}; };
} }