Merge "Twilight mode tile when location is off" into rvc-dev am: b866719a1d
Change-Id: I08cf079947e15e1894468809b671de51e466b947
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user