Merge "Fix NightDisplayListener in AutoTileManager" into udc-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
86e54c31ef
@@ -152,6 +152,7 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
|
|||||||
mQsFactories.add(defaultFactory);
|
mQsFactories.add(defaultFactory);
|
||||||
pluginManager.addPluginListener(this, QSFactory.class, true);
|
pluginManager.addPluginListener(this, QSFactory.class, true);
|
||||||
mUserTracker = userTracker;
|
mUserTracker = userTracker;
|
||||||
|
mCurrentUser = userTracker.getUserId();
|
||||||
mSecureSettings = secureSettings;
|
mSecureSettings = secureSettings;
|
||||||
mCustomTileStatePersister = customTileStatePersister;
|
mCustomTileStatePersister = customTileStatePersister;
|
||||||
|
|
||||||
@@ -274,6 +275,13 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
|
|||||||
if (!TILES_SETTING.equals(key)) {
|
if (!TILES_SETTING.equals(key)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
int currentUser = mUserTracker.getUserId();
|
||||||
|
if (currentUser != mCurrentUser) {
|
||||||
|
mUserContext = mUserTracker.getUserContext();
|
||||||
|
if (mAutoTiles != null) {
|
||||||
|
mAutoTiles.changeUser(UserHandle.of(currentUser));
|
||||||
|
}
|
||||||
|
}
|
||||||
// Do not process tiles if the flag is enabled.
|
// Do not process tiles if the flag is enabled.
|
||||||
if (mFeatureFlags.isEnabled(Flags.QS_PIPELINE_NEW_HOST)) {
|
if (mFeatureFlags.isEnabled(Flags.QS_PIPELINE_NEW_HOST)) {
|
||||||
return;
|
return;
|
||||||
@@ -282,13 +290,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, P
|
|||||||
newValue = mContext.getResources().getString(R.string.quick_settings_tiles_retail_mode);
|
newValue = mContext.getResources().getString(R.string.quick_settings_tiles_retail_mode);
|
||||||
}
|
}
|
||||||
final List<String> tileSpecs = loadTileSpecs(mContext, newValue);
|
final List<String> tileSpecs = loadTileSpecs(mContext, newValue);
|
||||||
int currentUser = mUserTracker.getUserId();
|
|
||||||
if (currentUser != mCurrentUser) {
|
|
||||||
mUserContext = mUserTracker.getUserContext();
|
|
||||||
if (mAutoTiles != null) {
|
|
||||||
mAutoTiles.changeUser(UserHandle.of(currentUser));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (tileSpecs.equals(mTileSpecs) && currentUser == mCurrentUser) return;
|
if (tileSpecs.equals(mTileSpecs) && currentUser == mCurrentUser) return;
|
||||||
Log.d(TAG, "Recreating tiles: " + tileSpecs);
|
Log.d(TAG, "Recreating tiles: " + tileSpecs);
|
||||||
mTiles.entrySet().stream().filter(tile -> !tileSpecs.contains(tile.getKey())).forEach(
|
mTiles.entrySet().stream().filter(tile -> !tileSpecs.contains(tile.getKey())).forEach(
|
||||||
|
|||||||
@@ -19,9 +19,9 @@ package com.android.systemui.qs.dagger;
|
|||||||
import static com.android.systemui.qs.dagger.QSFlagsModule.RBC_AVAILABLE;
|
import static com.android.systemui.qs.dagger.QSFlagsModule.RBC_AVAILABLE;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.hardware.display.NightDisplayListener;
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
|
||||||
|
import com.android.systemui.dagger.NightDisplayListenerModule;
|
||||||
import com.android.systemui.dagger.SysUISingleton;
|
import com.android.systemui.dagger.SysUISingleton;
|
||||||
import com.android.systemui.dagger.qualifiers.Background;
|
import com.android.systemui.dagger.qualifiers.Background;
|
||||||
import com.android.systemui.media.dagger.MediaModule;
|
import com.android.systemui.media.dagger.MediaModule;
|
||||||
@@ -41,14 +41,14 @@ import com.android.systemui.statusbar.policy.SafetyController;
|
|||||||
import com.android.systemui.statusbar.policy.WalletController;
|
import com.android.systemui.statusbar.policy.WalletController;
|
||||||
import com.android.systemui.util.settings.SecureSettings;
|
import com.android.systemui.util.settings.SecureSettings;
|
||||||
|
|
||||||
import dagger.Module;
|
|
||||||
import dagger.Provides;
|
|
||||||
import dagger.multibindings.Multibinds;
|
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
import dagger.multibindings.Multibinds;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Module for QS dependencies
|
* Module for QS dependencies
|
||||||
*/
|
*/
|
||||||
@@ -79,7 +79,7 @@ public interface QSModule {
|
|||||||
HotspotController hotspotController,
|
HotspotController hotspotController,
|
||||||
DataSaverController dataSaverController,
|
DataSaverController dataSaverController,
|
||||||
ManagedProfileController managedProfileController,
|
ManagedProfileController managedProfileController,
|
||||||
NightDisplayListener nightDisplayListener,
|
NightDisplayListenerModule.Builder nightDisplayListenerBuilder,
|
||||||
CastController castController,
|
CastController castController,
|
||||||
ReduceBrightColorsController reduceBrightColorsController,
|
ReduceBrightColorsController reduceBrightColorsController,
|
||||||
DeviceControlsController deviceControlsController,
|
DeviceControlsController deviceControlsController,
|
||||||
@@ -95,7 +95,7 @@ public interface QSModule {
|
|||||||
hotspotController,
|
hotspotController,
|
||||||
dataSaverController,
|
dataSaverController,
|
||||||
managedProfileController,
|
managedProfileController,
|
||||||
nightDisplayListener,
|
nightDisplayListenerBuilder,
|
||||||
castController,
|
castController,
|
||||||
reduceBrightColorsController,
|
reduceBrightColorsController,
|
||||||
deviceControlsController,
|
deviceControlsController,
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import android.annotation.Nullable;
|
|||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
import android.database.ContentObserver;
|
||||||
import android.hardware.display.ColorDisplayManager;
|
import android.hardware.display.ColorDisplayManager;
|
||||||
import android.hardware.display.NightDisplayListener;
|
import android.hardware.display.NightDisplayListener;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@@ -28,6 +29,7 @@ import android.util.Log;
|
|||||||
|
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
|
import com.android.systemui.dagger.NightDisplayListenerModule;
|
||||||
import com.android.systemui.dagger.qualifiers.Background;
|
import com.android.systemui.dagger.qualifiers.Background;
|
||||||
import com.android.systemui.plugins.qs.QSTile;
|
import com.android.systemui.plugins.qs.QSTile;
|
||||||
import com.android.systemui.qs.AutoAddTracker;
|
import com.android.systemui.qs.AutoAddTracker;
|
||||||
@@ -82,7 +84,8 @@ public class AutoTileManager implements UserAwareController {
|
|||||||
private final HotspotController mHotspotController;
|
private final HotspotController mHotspotController;
|
||||||
private final DataSaverController mDataSaverController;
|
private final DataSaverController mDataSaverController;
|
||||||
private final ManagedProfileController mManagedProfileController;
|
private final ManagedProfileController mManagedProfileController;
|
||||||
private final NightDisplayListener mNightDisplayListener;
|
private final NightDisplayListenerModule.Builder mNightDisplayListenerBuilder;
|
||||||
|
private NightDisplayListener mNightDisplayListener;
|
||||||
private final CastController mCastController;
|
private final CastController mCastController;
|
||||||
private final DeviceControlsController mDeviceControlsController;
|
private final DeviceControlsController mDeviceControlsController;
|
||||||
private final WalletController mWalletController;
|
private final WalletController mWalletController;
|
||||||
@@ -98,7 +101,7 @@ public class AutoTileManager implements UserAwareController {
|
|||||||
HotspotController hotspotController,
|
HotspotController hotspotController,
|
||||||
DataSaverController dataSaverController,
|
DataSaverController dataSaverController,
|
||||||
ManagedProfileController managedProfileController,
|
ManagedProfileController managedProfileController,
|
||||||
NightDisplayListener nightDisplayListener,
|
NightDisplayListenerModule.Builder nightDisplayListenerBuilder,
|
||||||
CastController castController,
|
CastController castController,
|
||||||
ReduceBrightColorsController reduceBrightColorsController,
|
ReduceBrightColorsController reduceBrightColorsController,
|
||||||
DeviceControlsController deviceControlsController,
|
DeviceControlsController deviceControlsController,
|
||||||
@@ -114,7 +117,7 @@ public class AutoTileManager implements UserAwareController {
|
|||||||
mHotspotController = hotspotController;
|
mHotspotController = hotspotController;
|
||||||
mDataSaverController = dataSaverController;
|
mDataSaverController = dataSaverController;
|
||||||
mManagedProfileController = managedProfileController;
|
mManagedProfileController = managedProfileController;
|
||||||
mNightDisplayListener = nightDisplayListener;
|
mNightDisplayListenerBuilder = nightDisplayListenerBuilder;
|
||||||
mCastController = castController;
|
mCastController = castController;
|
||||||
mReduceBrightColorsController = reduceBrightColorsController;
|
mReduceBrightColorsController = reduceBrightColorsController;
|
||||||
mIsReduceBrightColorsAvailable = isReduceBrightColorsAvailable;
|
mIsReduceBrightColorsAvailable = isReduceBrightColorsAvailable;
|
||||||
@@ -157,6 +160,10 @@ public class AutoTileManager implements UserAwareController {
|
|||||||
mDataSaverController.addCallback(mDataSaverListener);
|
mDataSaverController.addCallback(mDataSaverListener);
|
||||||
}
|
}
|
||||||
mManagedProfileController.addCallback(mProfileCallback);
|
mManagedProfileController.addCallback(mProfileCallback);
|
||||||
|
|
||||||
|
mNightDisplayListener = mNightDisplayListenerBuilder
|
||||||
|
.setUser(mCurrentUser.getIdentifier())
|
||||||
|
.build();
|
||||||
if (!mAutoTracker.isAdded(NIGHT)
|
if (!mAutoTracker.isAdded(NIGHT)
|
||||||
&& ColorDisplayManager.isNightDisplayAvailable(mContext)) {
|
&& ColorDisplayManager.isNightDisplayAvailable(mContext)) {
|
||||||
mNightDisplayListener.setCallback(mNightDisplayCallback);
|
mNightDisplayListener.setCallback(mNightDisplayCallback);
|
||||||
@@ -193,7 +200,8 @@ public class AutoTileManager implements UserAwareController {
|
|||||||
mHotspotController.removeCallback(mHotspotCallback);
|
mHotspotController.removeCallback(mHotspotCallback);
|
||||||
mDataSaverController.removeCallback(mDataSaverListener);
|
mDataSaverController.removeCallback(mDataSaverListener);
|
||||||
mManagedProfileController.removeCallback(mProfileCallback);
|
mManagedProfileController.removeCallback(mProfileCallback);
|
||||||
if (ColorDisplayManager.isNightDisplayAvailable(mContext)) {
|
if (ColorDisplayManager.isNightDisplayAvailable(mContext)
|
||||||
|
&& mNightDisplayListener != null) {
|
||||||
mNightDisplayListener.setCallback(null);
|
mNightDisplayListener.setCallback(null);
|
||||||
}
|
}
|
||||||
if (mIsReduceBrightColorsAvailable) {
|
if (mIsReduceBrightColorsAvailable) {
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import static org.mockito.ArgumentMatchers.any;
|
|||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
import static org.mockito.ArgumentMatchers.anyString;
|
||||||
import static org.mockito.ArgumentMatchers.isNull;
|
import static org.mockito.ArgumentMatchers.isNull;
|
||||||
|
import static org.mockito.Mockito.clearInvocations;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
@@ -107,7 +108,7 @@ public class QSTileHostTest extends SysuiTestCase {
|
|||||||
@Mock
|
@Mock
|
||||||
private TunerService mTunerService;
|
private TunerService mTunerService;
|
||||||
@Mock
|
@Mock
|
||||||
private Provider<AutoTileManager> mAutoTiles;
|
private AutoTileManager mAutoTiles;
|
||||||
@Mock
|
@Mock
|
||||||
private ShadeController mShadeController;
|
private ShadeController mShadeController;
|
||||||
@Mock
|
@Mock
|
||||||
@@ -161,9 +162,10 @@ public class QSTileHostTest extends SysuiTestCase {
|
|||||||
mSecureSettings = new FakeSettings();
|
mSecureSettings = new FakeSettings();
|
||||||
saveSetting("");
|
saveSetting("");
|
||||||
mQSTileHost = new TestQSTileHost(mContext, mDefaultFactory, mMainExecutor,
|
mQSTileHost = new TestQSTileHost(mContext, mDefaultFactory, mMainExecutor,
|
||||||
mPluginManager, mTunerService, mAutoTiles, mShadeController,
|
mPluginManager, mTunerService, () -> mAutoTiles, mShadeController,
|
||||||
mQSLogger, mUserTracker, mSecureSettings, mCustomTileStatePersister,
|
mQSLogger, mUserTracker, mSecureSettings, mCustomTileStatePersister,
|
||||||
mTileLifecycleManagerFactory, mUserFileManager, mFeatureFlags);
|
mTileLifecycleManagerFactory, mUserFileManager, mFeatureFlags);
|
||||||
|
mMainExecutor.runAllReady();
|
||||||
|
|
||||||
mSecureSettings.registerContentObserverForUser(SETTING, new ContentObserver(null) {
|
mSecureSettings.registerContentObserverForUser(SETTING, new ContentObserver(null) {
|
||||||
@Override
|
@Override
|
||||||
@@ -682,6 +684,17 @@ public class QSTileHostTest extends SysuiTestCase {
|
|||||||
assertEquals(CUSTOM_TILE.getClassName(), proto.tiles[1].getComponentName().className);
|
assertEquals(CUSTOM_TILE.getClassName(), proto.tiles[1].getComponentName().className);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUserChange_flagOn_autoTileManagerNotified() {
|
||||||
|
mFeatureFlags.set(Flags.QS_PIPELINE_NEW_HOST, true);
|
||||||
|
int currentUser = mUserTracker.getUserId();
|
||||||
|
clearInvocations(mAutoTiles);
|
||||||
|
when(mUserTracker.getUserId()).thenReturn(currentUser + 1);
|
||||||
|
|
||||||
|
mQSTileHost.onTuningChanged(SETTING, "a,b");
|
||||||
|
verify(mAutoTiles).changeUser(UserHandle.of(currentUser + 1));
|
||||||
|
}
|
||||||
|
|
||||||
private SharedPreferences getSharedPreferencesForUser(int user) {
|
private SharedPreferences getSharedPreferencesForUser(int user) {
|
||||||
return mUserFileManager.getSharedPreferences(QSTileHost.TILES, 0, user);
|
return mUserFileManager.getSharedPreferences(QSTileHost.TILES, 0, user);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ import static org.mockito.Mockito.mock;
|
|||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.times;
|
import static org.mockito.Mockito.times;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
@@ -51,6 +52,7 @@ import androidx.test.filters.SmallTest;
|
|||||||
|
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
|
import com.android.systemui.dagger.NightDisplayListenerModule;
|
||||||
import com.android.systemui.plugins.qs.QSTile;
|
import com.android.systemui.plugins.qs.QSTile;
|
||||||
import com.android.systemui.qs.AutoAddTracker;
|
import com.android.systemui.qs.AutoAddTracker;
|
||||||
import com.android.systemui.qs.QSHost;
|
import com.android.systemui.qs.QSHost;
|
||||||
@@ -111,6 +113,8 @@ public class AutoTileManagerTest extends SysuiTestCase {
|
|||||||
@Mock private DataSaverController mDataSaverController;
|
@Mock private DataSaverController mDataSaverController;
|
||||||
@Mock private ManagedProfileController mManagedProfileController;
|
@Mock private ManagedProfileController mManagedProfileController;
|
||||||
@Mock private NightDisplayListener mNightDisplayListener;
|
@Mock private NightDisplayListener mNightDisplayListener;
|
||||||
|
@Mock(answer = Answers.RETURNS_SELF)
|
||||||
|
private NightDisplayListenerModule.Builder mNightDisplayListenerBuilder;
|
||||||
@Mock private ReduceBrightColorsController mReduceBrightColorsController;
|
@Mock private ReduceBrightColorsController mReduceBrightColorsController;
|
||||||
@Mock private DeviceControlsController mDeviceControlsController;
|
@Mock private DeviceControlsController mDeviceControlsController;
|
||||||
@Mock private WalletController mWalletController;
|
@Mock private WalletController mWalletController;
|
||||||
@@ -151,6 +155,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
|
|||||||
.thenReturn(TEST_CUSTOM_SAFETY_PKG);
|
.thenReturn(TEST_CUSTOM_SAFETY_PKG);
|
||||||
Context context = Mockito.spy(mContext);
|
Context context = Mockito.spy(mContext);
|
||||||
when(context.getPackageManager()).thenReturn(mPackageManager);
|
when(context.getPackageManager()).thenReturn(mPackageManager);
|
||||||
|
when(mNightDisplayListenerBuilder.build()).thenReturn(mNightDisplayListener);
|
||||||
|
|
||||||
mAutoTileManager = createAutoTileManager(context);
|
mAutoTileManager = createAutoTileManager(context);
|
||||||
mAutoTileManager.init();
|
mAutoTileManager.init();
|
||||||
@@ -167,7 +172,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
|
|||||||
HotspotController hotspotController,
|
HotspotController hotspotController,
|
||||||
DataSaverController dataSaverController,
|
DataSaverController dataSaverController,
|
||||||
ManagedProfileController managedProfileController,
|
ManagedProfileController managedProfileController,
|
||||||
NightDisplayListener nightDisplayListener,
|
NightDisplayListenerModule.Builder nightDisplayListenerBuilder,
|
||||||
CastController castController,
|
CastController castController,
|
||||||
ReduceBrightColorsController reduceBrightColorsController,
|
ReduceBrightColorsController reduceBrightColorsController,
|
||||||
DeviceControlsController deviceControlsController,
|
DeviceControlsController deviceControlsController,
|
||||||
@@ -180,7 +185,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
|
|||||||
hotspotController,
|
hotspotController,
|
||||||
dataSaverController,
|
dataSaverController,
|
||||||
managedProfileController,
|
managedProfileController,
|
||||||
nightDisplayListener,
|
mNightDisplayListenerBuilder,
|
||||||
castController,
|
castController,
|
||||||
reduceBrightColorsController,
|
reduceBrightColorsController,
|
||||||
deviceControlsController,
|
deviceControlsController,
|
||||||
@@ -191,7 +196,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
|
|||||||
|
|
||||||
private AutoTileManager createAutoTileManager(Context context) {
|
private AutoTileManager createAutoTileManager(Context context) {
|
||||||
return createAutoTileManager(context, mAutoAddTrackerBuilder, mHotspotController,
|
return createAutoTileManager(context, mAutoAddTrackerBuilder, mHotspotController,
|
||||||
mDataSaverController, mManagedProfileController, mNightDisplayListener,
|
mDataSaverController, mManagedProfileController, mNightDisplayListenerBuilder,
|
||||||
mCastController, mReduceBrightColorsController, mDeviceControlsController,
|
mCastController, mReduceBrightColorsController, mDeviceControlsController,
|
||||||
mWalletController, mSafetyController, mIsReduceBrightColorsAvailable);
|
mWalletController, mSafetyController, mIsReduceBrightColorsAvailable);
|
||||||
}
|
}
|
||||||
@@ -204,7 +209,7 @@ public class AutoTileManagerTest extends SysuiTestCase {
|
|||||||
HotspotController hC = mock(HotspotController.class);
|
HotspotController hC = mock(HotspotController.class);
|
||||||
DataSaverController dSC = mock(DataSaverController.class);
|
DataSaverController dSC = mock(DataSaverController.class);
|
||||||
ManagedProfileController mPC = mock(ManagedProfileController.class);
|
ManagedProfileController mPC = mock(ManagedProfileController.class);
|
||||||
NightDisplayListener nDS = mock(NightDisplayListener.class);
|
NightDisplayListenerModule.Builder nDSB = mock(NightDisplayListenerModule.Builder.class);
|
||||||
CastController cC = mock(CastController.class);
|
CastController cC = mock(CastController.class);
|
||||||
ReduceBrightColorsController rBC = mock(ReduceBrightColorsController.class);
|
ReduceBrightColorsController rBC = mock(ReduceBrightColorsController.class);
|
||||||
DeviceControlsController dCC = mock(DeviceControlsController.class);
|
DeviceControlsController dCC = mock(DeviceControlsController.class);
|
||||||
@@ -212,14 +217,14 @@ public class AutoTileManagerTest extends SysuiTestCase {
|
|||||||
SafetyController sC = mock(SafetyController.class);
|
SafetyController sC = mock(SafetyController.class);
|
||||||
|
|
||||||
AutoTileManager manager =
|
AutoTileManager manager =
|
||||||
createAutoTileManager(mock(Context.class), builder, hC, dSC, mPC, nDS, cC, rBC,
|
createAutoTileManager(mock(Context.class), builder, hC, dSC, mPC, nDSB, cC, rBC,
|
||||||
dCC, wC, sC, true);
|
dCC, wC, sC, true);
|
||||||
|
|
||||||
verify(tracker, never()).initialize();
|
verify(tracker, never()).initialize();
|
||||||
verify(hC, never()).addCallback(any());
|
verify(hC, never()).addCallback(any());
|
||||||
verify(dSC, never()).addCallback(any());
|
verify(dSC, never()).addCallback(any());
|
||||||
verify(mPC, never()).addCallback(any());
|
verify(mPC, never()).addCallback(any());
|
||||||
verify(nDS, never()).setCallback(any());
|
verifyNoMoreInteractions(nDSB);
|
||||||
verify(cC, never()).addCallback(any());
|
verify(cC, never()).addCallback(any());
|
||||||
verify(rBC, never()).addCallback(any());
|
verify(rBC, never()).addCallback(any());
|
||||||
verify(dCC, never()).setCallback(any());
|
verify(dCC, never()).setCallback(any());
|
||||||
@@ -615,6 +620,15 @@ public class AutoTileManagerTest extends SysuiTestCase {
|
|||||||
createAutoTileManager(mContext).destroy();
|
createAutoTileManager(mContext).destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUserChange_newNightDisplayListenerCreated() {
|
||||||
|
UserHandle newUser = UserHandle.of(1000);
|
||||||
|
mAutoTileManager.changeUser(newUser);
|
||||||
|
InOrder inOrder = inOrder(mNightDisplayListenerBuilder);
|
||||||
|
inOrder.verify(mNightDisplayListenerBuilder).setUser(newUser.getIdentifier());
|
||||||
|
inOrder.verify(mNightDisplayListenerBuilder).build();
|
||||||
|
}
|
||||||
|
|
||||||
// Will only notify if it's listening
|
// Will only notify if it's listening
|
||||||
private void changeValue(String key, int value) {
|
private void changeValue(String key, int value) {
|
||||||
mSecureSettings.putIntForUser(key, value, USER);
|
mSecureSettings.putIntForUser(key, value, USER);
|
||||||
|
|||||||
Reference in New Issue
Block a user