Loading packages/SystemUI/src/com/android/systemui/Dependency.java +4 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.power.EnhancedEstimates; import com.android.systemui.power.PowerUI; import com.android.systemui.privacy.PrivacyItemController; import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.recents.Recents; import com.android.systemui.screenrecord.RecordingController; Loading Loading @@ -246,6 +247,7 @@ public class Dependency { @Inject Lazy<KeyguardUpdateMonitor> mKeyguardUpdateMonitor; @Inject Lazy<BatteryController> mBatteryController; @Inject Lazy<NightDisplayListener> mNightDisplayListener; @Inject Lazy<ReduceBrightColorsController> mReduceBrightColorsController; @Inject Lazy<ManagedProfileController> mManagedProfileController; @Inject Lazy<NextAlarmController> mNextAlarmController; @Inject Lazy<DataSaverController> mDataSaverController; Loading Loading @@ -393,6 +395,8 @@ public class Dependency { mProviders.put(NightDisplayListener.class, mNightDisplayListener::get); mProviders.put(ReduceBrightColorsController.class, mReduceBrightColorsController::get); mProviders.put(ManagedProfileController.class, mManagedProfileController::get); mProviders.put(NextAlarmController.class, mNextAlarmController::get); Loading packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java +12 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.content.Context; import android.content.SharedPreferences; import android.content.om.OverlayManager; import android.hardware.display.AmbientDisplayConfiguration; import android.hardware.display.ColorDisplayManager; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; Loading Loading @@ -60,6 +61,7 @@ import com.android.systemui.navigationbar.NavigationBarOverlayController; import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.plugins.PluginInitializerImpl; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.recents.Recents; import com.android.systemui.settings.UserTracker; Loading @@ -82,6 +84,7 @@ import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.theme.ThemeOverlayApplier; import com.android.systemui.util.leak.LeakDetector; import com.android.systemui.util.settings.SecureSettings; import com.android.wm.shell.legacysplitscreen.LegacySplitScreen; import com.android.wm.shell.pip.Pip; Loading Loading @@ -266,6 +269,15 @@ public class DependencyProvider { } /** */ @SysUISingleton @Provides public ReduceBrightColorsController provideReduceBrightColorsListener( @Background Handler bgHandler, UserTracker userTracker, ColorDisplayManager colorDisplayManager, SecureSettings secureSettings) { return new ReduceBrightColorsController(userTracker, bgHandler, colorDisplayManager, secureSettings); } @Provides @SysUISingleton public ActivityManagerWrapper provideActivityManagerWrapper() { Loading packages/SystemUI/src/com/android/systemui/qs/ReduceBrightColorsController.java 0 → 100644 +140 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.qs; import android.content.Context; import android.database.ContentObserver; import android.hardware.display.ColorDisplayManager; import android.net.Uri; import android.os.Handler; import android.os.HandlerExecutor; import android.provider.Settings; import androidx.annotation.NonNull; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.policy.CallbackController; import com.android.systemui.util.settings.SecureSettings; import java.util.ArrayList; import javax.inject.Inject; /** * @hide */ public class ReduceBrightColorsController implements CallbackController<ReduceBrightColorsController.Listener> { private final ColorDisplayManager mManager; private final UserTracker mUserTracker; private UserTracker.Callback mCurrentUserTrackerCallback; private final Handler mHandler; private final ContentObserver mContentObserver; private final SecureSettings mSecureSettings; private final ArrayList<ReduceBrightColorsController.Listener> mListeners = new ArrayList<>(); @Inject public ReduceBrightColorsController(UserTracker userTracker, @Background Handler handler, ColorDisplayManager colorDisplayManager, SecureSettings secureSettings) { mManager = colorDisplayManager; mUserTracker = userTracker; mHandler = handler; mSecureSettings = secureSettings; mContentObserver = new ContentObserver(mHandler) { @Override public void onChange(boolean selfChange, Uri uri) { super.onChange(selfChange, uri); final String setting = uri == null ? null : uri.getLastPathSegment(); synchronized (mListeners) { if (setting != null && mListeners.size() != 0) { if (setting.equals(Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED)) { for (Listener listener : mListeners) { listener.onActivated(mManager.isReduceBrightColorsActivated()); } } } } } }; mCurrentUserTrackerCallback = new UserTracker.Callback() { @Override public void onUserChanged(int newUser, Context userContext) { synchronized (mListeners) { if (mListeners.size() > 0) { mSecureSettings.unregisterContentObserver(mContentObserver); mSecureSettings.registerContentObserverForUser( Settings.Secure.getUriFor( Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED), false, mContentObserver, newUser); } } } }; mUserTracker.addCallback(mCurrentUserTrackerCallback, new HandlerExecutor(handler)); } @Override public void addCallback(@NonNull Listener listener) { synchronized (mListeners) { if (!mListeners.contains(listener)) { mListeners.add(listener); if (mListeners.size() == 1) { mSecureSettings.registerContentObserverForUser( Settings.Secure.getUriFor( Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED), false, mContentObserver, mUserTracker.getUserId()); } } } } @Override public void removeCallback(@androidx.annotation.NonNull Listener listener) { synchronized (mListeners) { if (mListeners.remove(listener) && mListeners.size() == 0) { mSecureSettings.unregisterContentObserver(mContentObserver); } } } /** Returns {@code true} if Reduce Bright Colors is activated */ public boolean isReduceBrightColorsActivated() { return mManager.isReduceBrightColorsActivated(); } /** Sets the activation state of Reduce Bright Colors */ public void setReduceBrightColorsActivated(boolean activated) { mManager.setReduceBrightColorsActivated(activated); } /** * Listener invoked whenever the Reduce Bright Colors settings are changed. */ public interface Listener { /** * Listener invoked when the activated state changes. * * @param activated {@code true} if Reduce Bright Colors is activated. */ default void onActivated(boolean activated) { } } } packages/SystemUI/src/com/android/systemui/qs/dagger/QSModule.java +11 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.qs.dagger; import static com.android.systemui.qs.dagger.QSFlagsModule.RBC_AVAILABLE; import android.content.Context; import android.hardware.display.NightDisplayListener; import android.os.Handler; Loading @@ -25,6 +27,7 @@ import com.android.systemui.media.dagger.MediaModule; import com.android.systemui.qs.AutoAddTracker; import com.android.systemui.qs.QSHost; import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.statusbar.phone.AutoTileManager; import com.android.systemui.statusbar.phone.ManagedProfileController; import com.android.systemui.statusbar.policy.CastController; Loading @@ -32,6 +35,8 @@ import com.android.systemui.statusbar.policy.DataSaverController; import com.android.systemui.statusbar.policy.HotspotController; import com.android.systemui.util.settings.SecureSettings; import javax.inject.Named; import dagger.Binds; import dagger.Module; import dagger.Provides; Loading @@ -54,7 +59,9 @@ public interface QSModule { DataSaverController dataSaverController, ManagedProfileController managedProfileController, NightDisplayListener nightDisplayListener, CastController castController) { CastController castController, ReduceBrightColorsController reduceBrightColorsController, @Named(RBC_AVAILABLE) boolean isReduceBrightColorsAvailable) { AutoTileManager manager = new AutoTileManager( context, autoAddTrackerBuilder, Loading @@ -65,7 +72,9 @@ public interface QSModule { dataSaverController, managedProfileController, nightDisplayListener, castController castController, reduceBrightColorsController, isReduceBrightColorsAvailable ); manager.init(); return manager; Loading packages/SystemUI/src/com/android/systemui/qs/tiles/ReduceBrightColorsTile.java +16 −31 Original line number Diff line number Diff line Loading @@ -33,46 +33,39 @@ import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.qs.QSHost; import com.android.systemui.qs.SecureSetting; import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.settings.UserTracker; import com.android.systemui.util.settings.SecureSettings; import javax.inject.Inject; import javax.inject.Named; /** Quick settings tile: Reduce Bright Colors **/ public class ReduceBrightColorsTile extends QSTileImpl<QSTile.BooleanState> { public class ReduceBrightColorsTile extends QSTileImpl<QSTile.BooleanState> implements ReduceBrightColorsController.Listener{ //TODO(b/170973645): get icon drawable private final Icon mIcon = null; private final SecureSetting mActivatedSetting; private final boolean mIsAvailable; private final ReduceBrightColorsController mReduceBrightColorsController; private boolean mIsListening; @Inject public ReduceBrightColorsTile( @Named(RBC_AVAILABLE) boolean isAvailable, ReduceBrightColorsController reduceBrightColorsController, QSHost host, @Background Looper backgroundLooper, @Main Handler mainHandler, MetricsLogger metricsLogger, StatusBarStateController statusBarStateController, ActivityStarter activityStarter, QSLogger qsLogger, UserTracker userTracker, SecureSettings secureSettings QSLogger qsLogger ) { super(host, backgroundLooper, mainHandler, metricsLogger, statusBarStateController, activityStarter, qsLogger); mActivatedSetting = new SecureSetting(secureSettings, mainHandler, Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, userTracker.getUserId()) { @Override protected void handleValueChanged(int value, boolean observedChange) { refreshState(); } }; mReduceBrightColorsController = reduceBrightColorsController; mReduceBrightColorsController.observe(getLifecycle(), this); mIsAvailable = isAvailable; } Loading @@ -84,7 +77,6 @@ public class ReduceBrightColorsTile extends QSTileImpl<QSTile.BooleanState> { @Override protected void handleDestroy() { super.handleDestroy(); mActivatedSetting.setListening(false); } @Override Loading @@ -92,18 +84,6 @@ public class ReduceBrightColorsTile extends QSTileImpl<QSTile.BooleanState> { return new BooleanState(); } @Override public void handleSetListening(boolean listening) { super.handleSetListening(listening); mActivatedSetting.setListening(listening); } @Override protected void handleUserSwitch(int newUserId) { mActivatedSetting.setUserId(newUserId); refreshState(); } @Override public Intent getLongClickIntent() { return new Intent(Settings.ACTION_REDUCE_BRIGHT_COLORS_SETTINGS); Loading @@ -111,7 +91,7 @@ public class ReduceBrightColorsTile extends QSTileImpl<QSTile.BooleanState> { @Override protected void handleClick() { mActivatedSetting.setValue(mState.value ? 0 : 1); mReduceBrightColorsController.setReduceBrightColorsActivated(!mState.value); } @Override Loading @@ -121,7 +101,7 @@ public class ReduceBrightColorsTile extends QSTileImpl<QSTile.BooleanState> { @Override protected void handleUpdateState(BooleanState state, Object arg) { state.value = mActivatedSetting.getValue() == 1; state.value = mReduceBrightColorsController.isReduceBrightColorsActivated(); state.state = state.value ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE; state.label = mContext.getString(R.string.quick_settings_reduce_bright_colors_label); state.expandedAccessibilityClassName = Switch.class.getName(); Loading @@ -132,4 +112,9 @@ public class ReduceBrightColorsTile extends QSTileImpl<QSTile.BooleanState> { public int getMetricsCategory() { return 0; } @Override public void onActivated(boolean activated) { refreshState(); } } Loading
packages/SystemUI/src/com/android/systemui/Dependency.java +4 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.power.EnhancedEstimates; import com.android.systemui.power.PowerUI; import com.android.systemui.privacy.PrivacyItemController; import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.recents.Recents; import com.android.systemui.screenrecord.RecordingController; Loading Loading @@ -246,6 +247,7 @@ public class Dependency { @Inject Lazy<KeyguardUpdateMonitor> mKeyguardUpdateMonitor; @Inject Lazy<BatteryController> mBatteryController; @Inject Lazy<NightDisplayListener> mNightDisplayListener; @Inject Lazy<ReduceBrightColorsController> mReduceBrightColorsController; @Inject Lazy<ManagedProfileController> mManagedProfileController; @Inject Lazy<NextAlarmController> mNextAlarmController; @Inject Lazy<DataSaverController> mDataSaverController; Loading Loading @@ -393,6 +395,8 @@ public class Dependency { mProviders.put(NightDisplayListener.class, mNightDisplayListener::get); mProviders.put(ReduceBrightColorsController.class, mReduceBrightColorsController::get); mProviders.put(ManagedProfileController.class, mManagedProfileController::get); mProviders.put(NextAlarmController.class, mNextAlarmController::get); Loading
packages/SystemUI/src/com/android/systemui/dagger/DependencyProvider.java +12 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.content.Context; import android.content.SharedPreferences; import android.content.om.OverlayManager; import android.hardware.display.AmbientDisplayConfiguration; import android.hardware.display.ColorDisplayManager; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; Loading Loading @@ -60,6 +61,7 @@ import com.android.systemui.navigationbar.NavigationBarOverlayController; import com.android.systemui.navigationbar.NavigationModeController; import com.android.systemui.plugins.PluginInitializerImpl; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.recents.Recents; import com.android.systemui.settings.UserTracker; Loading @@ -82,6 +84,7 @@ import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.theme.ThemeOverlayApplier; import com.android.systemui.util.leak.LeakDetector; import com.android.systemui.util.settings.SecureSettings; import com.android.wm.shell.legacysplitscreen.LegacySplitScreen; import com.android.wm.shell.pip.Pip; Loading Loading @@ -266,6 +269,15 @@ public class DependencyProvider { } /** */ @SysUISingleton @Provides public ReduceBrightColorsController provideReduceBrightColorsListener( @Background Handler bgHandler, UserTracker userTracker, ColorDisplayManager colorDisplayManager, SecureSettings secureSettings) { return new ReduceBrightColorsController(userTracker, bgHandler, colorDisplayManager, secureSettings); } @Provides @SysUISingleton public ActivityManagerWrapper provideActivityManagerWrapper() { Loading
packages/SystemUI/src/com/android/systemui/qs/ReduceBrightColorsController.java 0 → 100644 +140 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.qs; import android.content.Context; import android.database.ContentObserver; import android.hardware.display.ColorDisplayManager; import android.net.Uri; import android.os.Handler; import android.os.HandlerExecutor; import android.provider.Settings; import androidx.annotation.NonNull; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.policy.CallbackController; import com.android.systemui.util.settings.SecureSettings; import java.util.ArrayList; import javax.inject.Inject; /** * @hide */ public class ReduceBrightColorsController implements CallbackController<ReduceBrightColorsController.Listener> { private final ColorDisplayManager mManager; private final UserTracker mUserTracker; private UserTracker.Callback mCurrentUserTrackerCallback; private final Handler mHandler; private final ContentObserver mContentObserver; private final SecureSettings mSecureSettings; private final ArrayList<ReduceBrightColorsController.Listener> mListeners = new ArrayList<>(); @Inject public ReduceBrightColorsController(UserTracker userTracker, @Background Handler handler, ColorDisplayManager colorDisplayManager, SecureSettings secureSettings) { mManager = colorDisplayManager; mUserTracker = userTracker; mHandler = handler; mSecureSettings = secureSettings; mContentObserver = new ContentObserver(mHandler) { @Override public void onChange(boolean selfChange, Uri uri) { super.onChange(selfChange, uri); final String setting = uri == null ? null : uri.getLastPathSegment(); synchronized (mListeners) { if (setting != null && mListeners.size() != 0) { if (setting.equals(Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED)) { for (Listener listener : mListeners) { listener.onActivated(mManager.isReduceBrightColorsActivated()); } } } } } }; mCurrentUserTrackerCallback = new UserTracker.Callback() { @Override public void onUserChanged(int newUser, Context userContext) { synchronized (mListeners) { if (mListeners.size() > 0) { mSecureSettings.unregisterContentObserver(mContentObserver); mSecureSettings.registerContentObserverForUser( Settings.Secure.getUriFor( Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED), false, mContentObserver, newUser); } } } }; mUserTracker.addCallback(mCurrentUserTrackerCallback, new HandlerExecutor(handler)); } @Override public void addCallback(@NonNull Listener listener) { synchronized (mListeners) { if (!mListeners.contains(listener)) { mListeners.add(listener); if (mListeners.size() == 1) { mSecureSettings.registerContentObserverForUser( Settings.Secure.getUriFor( Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED), false, mContentObserver, mUserTracker.getUserId()); } } } } @Override public void removeCallback(@androidx.annotation.NonNull Listener listener) { synchronized (mListeners) { if (mListeners.remove(listener) && mListeners.size() == 0) { mSecureSettings.unregisterContentObserver(mContentObserver); } } } /** Returns {@code true} if Reduce Bright Colors is activated */ public boolean isReduceBrightColorsActivated() { return mManager.isReduceBrightColorsActivated(); } /** Sets the activation state of Reduce Bright Colors */ public void setReduceBrightColorsActivated(boolean activated) { mManager.setReduceBrightColorsActivated(activated); } /** * Listener invoked whenever the Reduce Bright Colors settings are changed. */ public interface Listener { /** * Listener invoked when the activated state changes. * * @param activated {@code true} if Reduce Bright Colors is activated. */ default void onActivated(boolean activated) { } } }
packages/SystemUI/src/com/android/systemui/qs/dagger/QSModule.java +11 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.qs.dagger; import static com.android.systemui.qs.dagger.QSFlagsModule.RBC_AVAILABLE; import android.content.Context; import android.hardware.display.NightDisplayListener; import android.os.Handler; Loading @@ -25,6 +27,7 @@ import com.android.systemui.media.dagger.MediaModule; import com.android.systemui.qs.AutoAddTracker; import com.android.systemui.qs.QSHost; import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.statusbar.phone.AutoTileManager; import com.android.systemui.statusbar.phone.ManagedProfileController; import com.android.systemui.statusbar.policy.CastController; Loading @@ -32,6 +35,8 @@ import com.android.systemui.statusbar.policy.DataSaverController; import com.android.systemui.statusbar.policy.HotspotController; import com.android.systemui.util.settings.SecureSettings; import javax.inject.Named; import dagger.Binds; import dagger.Module; import dagger.Provides; Loading @@ -54,7 +59,9 @@ public interface QSModule { DataSaverController dataSaverController, ManagedProfileController managedProfileController, NightDisplayListener nightDisplayListener, CastController castController) { CastController castController, ReduceBrightColorsController reduceBrightColorsController, @Named(RBC_AVAILABLE) boolean isReduceBrightColorsAvailable) { AutoTileManager manager = new AutoTileManager( context, autoAddTrackerBuilder, Loading @@ -65,7 +72,9 @@ public interface QSModule { dataSaverController, managedProfileController, nightDisplayListener, castController castController, reduceBrightColorsController, isReduceBrightColorsAvailable ); manager.init(); return manager; Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/ReduceBrightColorsTile.java +16 −31 Original line number Diff line number Diff line Loading @@ -33,46 +33,39 @@ import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.qs.QSHost; import com.android.systemui.qs.SecureSetting; import com.android.systemui.qs.ReduceBrightColorsController; import com.android.systemui.qs.logging.QSLogger; import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.settings.UserTracker; import com.android.systemui.util.settings.SecureSettings; import javax.inject.Inject; import javax.inject.Named; /** Quick settings tile: Reduce Bright Colors **/ public class ReduceBrightColorsTile extends QSTileImpl<QSTile.BooleanState> { public class ReduceBrightColorsTile extends QSTileImpl<QSTile.BooleanState> implements ReduceBrightColorsController.Listener{ //TODO(b/170973645): get icon drawable private final Icon mIcon = null; private final SecureSetting mActivatedSetting; private final boolean mIsAvailable; private final ReduceBrightColorsController mReduceBrightColorsController; private boolean mIsListening; @Inject public ReduceBrightColorsTile( @Named(RBC_AVAILABLE) boolean isAvailable, ReduceBrightColorsController reduceBrightColorsController, QSHost host, @Background Looper backgroundLooper, @Main Handler mainHandler, MetricsLogger metricsLogger, StatusBarStateController statusBarStateController, ActivityStarter activityStarter, QSLogger qsLogger, UserTracker userTracker, SecureSettings secureSettings QSLogger qsLogger ) { super(host, backgroundLooper, mainHandler, metricsLogger, statusBarStateController, activityStarter, qsLogger); mActivatedSetting = new SecureSetting(secureSettings, mainHandler, Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, userTracker.getUserId()) { @Override protected void handleValueChanged(int value, boolean observedChange) { refreshState(); } }; mReduceBrightColorsController = reduceBrightColorsController; mReduceBrightColorsController.observe(getLifecycle(), this); mIsAvailable = isAvailable; } Loading @@ -84,7 +77,6 @@ public class ReduceBrightColorsTile extends QSTileImpl<QSTile.BooleanState> { @Override protected void handleDestroy() { super.handleDestroy(); mActivatedSetting.setListening(false); } @Override Loading @@ -92,18 +84,6 @@ public class ReduceBrightColorsTile extends QSTileImpl<QSTile.BooleanState> { return new BooleanState(); } @Override public void handleSetListening(boolean listening) { super.handleSetListening(listening); mActivatedSetting.setListening(listening); } @Override protected void handleUserSwitch(int newUserId) { mActivatedSetting.setUserId(newUserId); refreshState(); } @Override public Intent getLongClickIntent() { return new Intent(Settings.ACTION_REDUCE_BRIGHT_COLORS_SETTINGS); Loading @@ -111,7 +91,7 @@ public class ReduceBrightColorsTile extends QSTileImpl<QSTile.BooleanState> { @Override protected void handleClick() { mActivatedSetting.setValue(mState.value ? 0 : 1); mReduceBrightColorsController.setReduceBrightColorsActivated(!mState.value); } @Override Loading @@ -121,7 +101,7 @@ public class ReduceBrightColorsTile extends QSTileImpl<QSTile.BooleanState> { @Override protected void handleUpdateState(BooleanState state, Object arg) { state.value = mActivatedSetting.getValue() == 1; state.value = mReduceBrightColorsController.isReduceBrightColorsActivated(); state.state = state.value ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE; state.label = mContext.getString(R.string.quick_settings_reduce_bright_colors_label); state.expandedAccessibilityClassName = Switch.class.getName(); Loading @@ -132,4 +112,9 @@ public class ReduceBrightColorsTile extends QSTileImpl<QSTile.BooleanState> { public int getMetricsCategory() { return 0; } @Override public void onActivated(boolean activated) { refreshState(); } }