Merge "Twilight mode tile when location is off" into rvc-dev am: b866719a1d

Change-Id: I08cf079947e15e1894468809b671de51e466b947
This commit is contained in:
Jay Aliomer
2020-04-13 19:00:16 +00:00
committed by Automerger Merge Worker
2 changed files with 11 additions and 3 deletions

View File

@@ -38,6 +38,7 @@ import com.android.systemui.R;
import com.android.systemui.plugins.qs.QSTile.BooleanState; import com.android.systemui.plugins.qs.QSTile.BooleanState;
import com.android.systemui.qs.QSHost; import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.statusbar.policy.LocationController;
import java.text.DateFormat; import java.text.DateFormat;
import java.time.LocalTime; import java.time.LocalTime;
@@ -60,12 +61,14 @@ public class NightDisplayTile extends QSTileImpl<BooleanState> implements
private static final String PATTERN_HOUR_NINUTE_24 = "HH:mm"; private static final String PATTERN_HOUR_NINUTE_24 = "HH:mm";
private final ColorDisplayManager mManager; private final ColorDisplayManager mManager;
private final LocationController mLocationController;
private NightDisplayListener mListener; private NightDisplayListener mListener;
private boolean mIsListening; private boolean mIsListening;
@Inject @Inject
public NightDisplayTile(QSHost host) { public NightDisplayTile(QSHost host, LocationController locationController) {
super(host); super(host);
mLocationController = locationController;
mManager = mContext.getSystemService(ColorDisplayManager.class); mManager = mContext.getSystemService(ColorDisplayManager.class);
mListener = new NightDisplayListener(mContext, new Handler(Looper.myLooper())); mListener = new NightDisplayListener(mContext, new Handler(Looper.myLooper()));
} }
@@ -132,6 +135,7 @@ public class NightDisplayTile extends QSTileImpl<BooleanState> implements
private String getSecondaryLabel(boolean isNightLightActivated) { private String getSecondaryLabel(boolean isNightLightActivated) {
switch (mManager.getNightDisplayAutoMode()) { switch (mManager.getNightDisplayAutoMode()) {
case ColorDisplayManager.AUTO_MODE_TWILIGHT: case ColorDisplayManager.AUTO_MODE_TWILIGHT:
if (!mLocationController.isLocationEnabled()) return null;
// Auto mode related to sunrise & sunset. If the light is on, it's guaranteed to be // Auto mode related to sunrise & sunset. If the light is on, it's guaranteed to be
// turned off at sunrise. If it's off, it's guaranteed to be turned on at sunset. // turned off at sunrise. If it's off, it's guaranteed to be turned on at sunset.
return isNightLightActivated return isNightLightActivated

View File

@@ -31,6 +31,7 @@ import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.LocationController;
import java.time.LocalTime; import java.time.LocalTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
@@ -51,13 +52,15 @@ public class UiModeNightTile extends QSTileImpl<QSTile.BooleanState> implements
com.android.internal.R.drawable.ic_qs_ui_mode_night); com.android.internal.R.drawable.ic_qs_ui_mode_night);
private final UiModeManager mUiModeManager; private final UiModeManager mUiModeManager;
private final BatteryController mBatteryController; private final BatteryController mBatteryController;
private final LocationController mLocationController;
@Inject @Inject
public UiModeNightTile(QSHost host, ConfigurationController configurationController, public UiModeNightTile(QSHost host, ConfigurationController configurationController,
BatteryController batteryController) { BatteryController batteryController, LocationController locationController) {
super(host); super(host);
mBatteryController = batteryController; mBatteryController = batteryController;
mUiModeManager = mContext.getSystemService(UiModeManager.class); mUiModeManager = mContext.getSystemService(UiModeManager.class);
mLocationController = locationController;
configurationController.observe(getLifecycle(), this); configurationController.observe(getLifecycle(), this);
batteryController.observe(getLifecycle(), this); batteryController.observe(getLifecycle(), this);
} }
@@ -97,7 +100,8 @@ public class UiModeNightTile extends QSTileImpl<QSTile.BooleanState> implements
if (powerSave) { if (powerSave) {
state.secondaryLabel = mContext.getResources().getString( state.secondaryLabel = mContext.getResources().getString(
R.string.quick_settings_dark_mode_secondary_label_battery_saver); R.string.quick_settings_dark_mode_secondary_label_battery_saver);
} else if (uiMode == UiModeManager.MODE_NIGHT_AUTO) { } else if (uiMode == UiModeManager.MODE_NIGHT_AUTO
&& mLocationController.isLocationEnabled()) {
state.secondaryLabel = mContext.getResources().getString(nightMode state.secondaryLabel = mContext.getResources().getString(nightMode
? R.string.quick_settings_dark_mode_secondary_label_until_sunrise ? R.string.quick_settings_dark_mode_secondary_label_until_sunrise
: R.string.quick_settings_dark_mode_secondary_label_on_at_sunset); : R.string.quick_settings_dark_mode_secondary_label_on_at_sunset);