Expand channel settings if coming from app
am: f3290eafce
Change-Id: I4e84efc05de679a5a001603b58d7e3de4824d93d
This commit is contained in:
@@ -125,7 +125,7 @@ public class AppNotificationSettings extends NotificationSettingsBase {
|
|||||||
mControllers.add(new VibrationPreferenceController(context, mBackend));
|
mControllers.add(new VibrationPreferenceController(context, mBackend));
|
||||||
mControllers.add(new VisibilityPreferenceController(context, new LockPatternUtils(context),
|
mControllers.add(new VisibilityPreferenceController(context, new LockPatternUtils(context),
|
||||||
mBackend));
|
mBackend));
|
||||||
mControllers.add(new DndPreferenceController(context, getLifecycle(), mBackend));
|
mControllers.add(new DndPreferenceController(context, mBackend));
|
||||||
mControllers.add(new AppLinkPreferenceController(context));
|
mControllers.add(new AppLinkPreferenceController(context));
|
||||||
mControllers.add(new DescriptionPreferenceController(context));
|
mControllers.add(new DescriptionPreferenceController(context));
|
||||||
mControllers.add(new NotificationsOffPreferenceController(context));
|
mControllers.add(new NotificationsOffPreferenceController(context));
|
||||||
|
@@ -18,13 +18,16 @@ package com.android.settings.notification;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
|
import android.support.v7.preference.PreferenceScreen;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
import com.android.internal.widget.LockPatternUtils;
|
import com.android.internal.widget.LockPatternUtils;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.applications.AppInfoBase;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -38,6 +41,19 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
|
|||||||
return MetricsEvent.NOTIFICATION_TOPIC_NOTIFICATION;
|
return MetricsEvent.NOTIFICATION_TOPIC_NOTIFICATION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
final PreferenceScreen screen = getPreferenceScreen();
|
||||||
|
Bundle args = getArguments();
|
||||||
|
// If linking to this screen from an external app, expand settings
|
||||||
|
if (screen != null && args != null) {
|
||||||
|
if (!args.getBoolean(ARG_FROM_SETTINGS, false)) {
|
||||||
|
screen.setInitialExpandedChildrenCount(Integer.MAX_VALUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
@@ -92,7 +108,7 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
|
|||||||
mBackend));
|
mBackend));
|
||||||
mControllers.add(new LightsPreferenceController(context, mBackend));
|
mControllers.add(new LightsPreferenceController(context, mBackend));
|
||||||
mControllers.add(new BadgePreferenceController(context, mBackend));
|
mControllers.add(new BadgePreferenceController(context, mBackend));
|
||||||
mControllers.add(new DndPreferenceController(context, getLifecycle(), mBackend));
|
mControllers.add(new DndPreferenceController(context, mBackend));
|
||||||
mControllers.add(new NotificationsOffPreferenceController(context));
|
mControllers.add(new NotificationsOffPreferenceController(context));
|
||||||
return new ArrayList<>(mControllers);
|
return new ArrayList<>(mControllers);
|
||||||
}
|
}
|
||||||
|
@@ -28,17 +28,12 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
|||||||
import com.android.settingslib.core.lifecycle.events.OnResume;
|
import com.android.settingslib.core.lifecycle.events.OnResume;
|
||||||
|
|
||||||
public class DndPreferenceController extends NotificationPreferenceController
|
public class DndPreferenceController extends NotificationPreferenceController
|
||||||
implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener,
|
implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
|
||||||
LifecycleObserver {
|
|
||||||
|
|
||||||
private static final String KEY_BYPASS_DND = "bypass_dnd";
|
private static final String KEY_BYPASS_DND = "bypass_dnd";
|
||||||
|
|
||||||
public DndPreferenceController(Context context, Lifecycle lifecycle,
|
public DndPreferenceController(Context context, NotificationBackend backend) {
|
||||||
NotificationBackend backend) {
|
|
||||||
super(context, backend);
|
super(context, backend);
|
||||||
if (lifecycle != null) {
|
|
||||||
lifecycle.addObserver(this);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -58,6 +58,7 @@ import java.util.List;
|
|||||||
abstract public class NotificationSettingsBase extends DashboardFragment {
|
abstract public class NotificationSettingsBase extends DashboardFragment {
|
||||||
private static final String TAG = "NotifiSettingsBase";
|
private static final String TAG = "NotifiSettingsBase";
|
||||||
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||||
|
protected static final String ARG_FROM_SETTINGS = "fromSettings";
|
||||||
|
|
||||||
protected PackageManager mPm;
|
protected PackageManager mPm;
|
||||||
protected NotificationBackend mBackend = new NotificationBackend();
|
protected NotificationBackend mBackend = new NotificationBackend();
|
||||||
@@ -249,6 +250,7 @@ abstract public class NotificationSettingsBase extends DashboardFragment {
|
|||||||
channelArgs.putInt(AppInfoBase.ARG_PACKAGE_UID, mUid);
|
channelArgs.putInt(AppInfoBase.ARG_PACKAGE_UID, mUid);
|
||||||
channelArgs.putString(AppInfoBase.ARG_PACKAGE_NAME, mPkg);
|
channelArgs.putString(AppInfoBase.ARG_PACKAGE_NAME, mPkg);
|
||||||
channelArgs.putString(Settings.EXTRA_CHANNEL_ID, channel.getId());
|
channelArgs.putString(Settings.EXTRA_CHANNEL_ID, channel.getId());
|
||||||
|
channelArgs.putBoolean(ARG_FROM_SETTINGS, true);
|
||||||
channelPref.setIntent(new SubSettingLauncher(getActivity())
|
channelPref.setIntent(new SubSettingLauncher(getActivity())
|
||||||
.setDestination(ChannelNotificationSettings.class.getName())
|
.setDestination(ChannelNotificationSettings.class.getName())
|
||||||
.setArguments(channelArgs)
|
.setArguments(channelArgs)
|
||||||
|
@@ -64,8 +64,6 @@ public class DndPreferenceControllerTest {
|
|||||||
private UserManager mUm;
|
private UserManager mUm;
|
||||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||||
private PreferenceScreen mScreen;
|
private PreferenceScreen mScreen;
|
||||||
@Mock
|
|
||||||
private Lifecycle mLifecycle;
|
|
||||||
|
|
||||||
private DndPreferenceController mController;
|
private DndPreferenceController mController;
|
||||||
|
|
||||||
@@ -76,7 +74,7 @@ public class DndPreferenceControllerTest {
|
|||||||
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
|
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
|
||||||
shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
|
shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
|
||||||
mContext = RuntimeEnvironment.application;
|
mContext = RuntimeEnvironment.application;
|
||||||
mController = spy(new DndPreferenceController(mContext, mLifecycle, mBackend));
|
mController = spy(new DndPreferenceController(mContext, mBackend));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user