Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8aa8f34b authored by Julia Reynolds's avatar Julia Reynolds Committed by android-build-merger
Browse files

Expand channel settings if coming from app am: f3290eaf

am: 520fde65

Change-Id: I056fa1ed816ec1ef0b898ab18471f5dfe6c9613f
parents 07b361c4 520fde65
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -125,7 +125,7 @@ public class AppNotificationSettings extends NotificationSettingsBase {
        mControllers.add(new VibrationPreferenceController(context, mBackend));
        mControllers.add(new VisibilityPreferenceController(context, new LockPatternUtils(context),
                mBackend));
        mControllers.add(new DndPreferenceController(context, getLifecycle(), mBackend));
        mControllers.add(new DndPreferenceController(context, mBackend));
        mControllers.add(new AppLinkPreferenceController(context));
        mControllers.add(new DescriptionPreferenceController(context));
        mControllers.add(new NotificationsOffPreferenceController(context));
+17 −1
Original line number Diff line number Diff line
@@ -18,13 +18,16 @@ package com.android.settings.notification;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils;
import android.util.Log;

import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R;
import com.android.settings.applications.AppInfoBase;
import com.android.settingslib.core.AbstractPreferenceController;

import java.util.ArrayList;
@@ -38,6 +41,19 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
        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
    public void onResume() {
        super.onResume();
@@ -92,7 +108,7 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
                mBackend));
        mControllers.add(new LightsPreferenceController(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));
        return new ArrayList<>(mControllers);
    }
+2 −7
Original line number Diff line number Diff line
@@ -28,17 +28,12 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnResume;

public class DndPreferenceController extends NotificationPreferenceController
        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener,
        LifecycleObserver {
        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {

    private static final String KEY_BYPASS_DND = "bypass_dnd";

    public DndPreferenceController(Context context, Lifecycle lifecycle,
            NotificationBackend backend) {
    public DndPreferenceController(Context context, NotificationBackend backend) {
        super(context, backend);
        if (lifecycle != null) {
            lifecycle.addObserver(this);
        }
    }

    @Override
+2 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ import java.util.List;
abstract public class NotificationSettingsBase extends DashboardFragment {
    private static final String TAG = "NotifiSettingsBase";
    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
    protected static final String ARG_FROM_SETTINGS = "fromSettings";

    protected PackageManager mPm;
    protected NotificationBackend mBackend = new NotificationBackend();
@@ -249,6 +250,7 @@ abstract public class NotificationSettingsBase extends DashboardFragment {
        channelArgs.putInt(AppInfoBase.ARG_PACKAGE_UID, mUid);
        channelArgs.putString(AppInfoBase.ARG_PACKAGE_NAME, mPkg);
        channelArgs.putString(Settings.EXTRA_CHANNEL_ID, channel.getId());
        channelArgs.putBoolean(ARG_FROM_SETTINGS, true);
        channelPref.setIntent(new SubSettingLauncher(getActivity())
                .setDestination(ChannelNotificationSettings.class.getName())
                .setArguments(channelArgs)
+1 −3
Original line number Diff line number Diff line
@@ -64,8 +64,6 @@ public class DndPreferenceControllerTest {
    private UserManager mUm;
    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
    private PreferenceScreen mScreen;
    @Mock
    private Lifecycle mLifecycle;

    private DndPreferenceController mController;

@@ -76,7 +74,7 @@ public class DndPreferenceControllerTest {
        shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
        shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
        mContext = RuntimeEnvironment.application;
        mController = spy(new DndPreferenceController(mContext, mLifecycle, mBackend));
        mController = spy(new DndPreferenceController(mContext, mBackend));
    }

    @Test