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

Commit 312d6c49 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "ZenPreferences observe zen changes from USER_ALL"

parents f7540b42 71a191c2
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -22,10 +22,12 @@ import android.content.Context;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
import android.os.UserHandle;
import android.provider.Settings;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;

import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -37,7 +39,8 @@ abstract public class AbstractZenModePreferenceController extends
        AbstractPreferenceController implements PreferenceControllerMixin, LifecycleObserver,
        OnResume, OnPause {

    private SettingObserver mSettingObserver;
    @VisibleForTesting
    protected SettingObserver mSettingObserver;
    private final String KEY;
    final private NotificationManager mNotificationManager;

@@ -94,8 +97,8 @@ abstract public class AbstractZenModePreferenceController extends
        }

        public void register(ContentResolver cr) {
            cr.registerContentObserver(ZEN_MODE_URI, false, this);
            cr.registerContentObserver(ZEN_MODE_CONFIG_ETAG_URI, false, this);
            cr.registerContentObserver(ZEN_MODE_URI, false, this, UserHandle.USER_ALL);
            cr.registerContentObserver(ZEN_MODE_CONFIG_ETAG_URI, false, this, UserHandle.USER_ALL);
        }

        public void unregister(ContentResolver cr) {
+17 −0
Original line number Diff line number Diff line
@@ -130,4 +130,21 @@ public class ZenModeButtonPreferenceControllerTest {
        verify(mZenButtonOn).setVisibility(View.VISIBLE);
        verify(mZenButtonOff).setVisibility(View.GONE);
    }

    @Test
    public void updateState_otherUserChangedZen() {
        final Preference mockPref = mock(Preference.class);
        Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_OFF);
        mController.updateState(mockPref);
        verify(mZenButtonOn).setVisibility(View.VISIBLE);
        verify(mZenButtonOff).setVisibility(View.GONE);

        Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
        final int GUEST_USER_ID = 10;
        mController.mSettingObserver.onChange(false,
                Settings.Global.getUriFor(Settings.Global.ZEN_MODE), GUEST_USER_ID);

        verify(mZenButtonOn).setVisibility(View.GONE);
        verify(mZenButtonOff).setVisibility(View.VISIBLE);
    }
}
 No newline at end of file