Loading packages/SystemUI/src/com/android/systemui/lowlightclock/ChargingStatusProvider.java +17 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.lowlightclock; import static android.service.dreams.Flags.dreamsV2; import android.content.Context; import android.content.res.Resources; import android.os.BatteryManager; Loading @@ -30,6 +32,7 @@ import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.settingslib.fuelgauge.BatteryStatus; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.res.R; import com.android.systemui.statusbar.KeyguardIndicationController; import java.text.NumberFormat; Loading @@ -53,6 +56,8 @@ public class ChargingStatusProvider { // callback being GC'd. private ChargingStatusCallback mChargingStatusCallback; private final KeyguardIndicationController mKeyguardIndicationController; private Callback mCallback; @Inject Loading @@ -60,11 +65,13 @@ public class ChargingStatusProvider { Context context, @Main Resources resources, IBatteryStats iBatteryStats, KeyguardUpdateMonitor keyguardUpdateMonitor) { KeyguardUpdateMonitor keyguardUpdateMonitor, KeyguardIndicationController keyguardIndicationController) { mContext = context; mResources = resources; mBatteryInfo = iBatteryStats; mKeyguardUpdateMonitor = keyguardUpdateMonitor; mKeyguardIndicationController = keyguardIndicationController; } /** Loading Loading @@ -157,7 +164,15 @@ public class ChargingStatusProvider { if (mCallback != null) { final boolean shouldShowStatus = mBatteryState.isPowerPluggedIn() || mBatteryState.isBatteryDefenderEnabled(); mCallback.onChargingStatusChanged(shouldShowStatus, computeChargingString()); mCallback.onChargingStatusChanged(shouldShowStatus, getChargingString()); } } private String getChargingString() { if (dreamsV2()) { return mKeyguardIndicationController.getPowerChargingString(); } else { return computeChargingString(); } } Loading packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java +4 −0 Original line number Diff line number Diff line Loading @@ -479,6 +479,10 @@ public class KeyguardIndicationController { mBroadcastDispatcher.unregisterReceiver(mBroadcastReceiver); } public String getPowerChargingString() { return computePowerChargingStringIndication(); } private void handleAlignStateChanged(int alignState) { String alignmentIndication = ""; if (alignState == DockManager.ALIGN_STATE_POOR) { Loading packages/SystemUI/tests/src/com/android/systemui/lowlightclock/ChargingStatusProviderTest.java +25 −3 Original line number Diff line number Diff line Loading @@ -26,8 +26,11 @@ import static org.mockito.Mockito.when; import android.content.res.Resources; import android.os.BatteryManager; import android.os.RemoteException; import android.testing.AndroidTestingRunner; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.service.dreams.Flags; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; import com.android.internal.app.IBatteryStats; Loading @@ -36,6 +39,7 @@ import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.settingslib.fuelgauge.BatteryStatus; import com.android.systemui.SysuiTestCase; import com.android.systemui.res.R; import com.android.systemui.statusbar.KeyguardIndicationController; import org.junit.Before; import org.junit.Test; Loading @@ -45,7 +49,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; @SmallTest @RunWith(AndroidTestingRunner.class) @RunWith(AndroidJUnit4.class) public class ChargingStatusProviderTest extends SysuiTestCase { @Mock private Resources mResources; Loading @@ -54,6 +58,8 @@ public class ChargingStatusProviderTest extends SysuiTestCase { @Mock private KeyguardUpdateMonitor mKeyguardUpdateMonitor; @Mock private KeyguardIndicationController mKeyguardIndicationController; @Mock private ChargingStatusProvider.Callback mCallback; private ChargingStatusProvider mProvider; Loading @@ -63,7 +69,11 @@ public class ChargingStatusProviderTest extends SysuiTestCase { MockitoAnnotations.initMocks(this); mProvider = new ChargingStatusProvider( mContext, mResources, mBatteryInfo, mKeyguardUpdateMonitor); mContext, mResources, mBatteryInfo, mKeyguardUpdateMonitor, mKeyguardIndicationController); } @Test Loading Loading @@ -143,6 +153,7 @@ public class ChargingStatusProviderTest extends SysuiTestCase { } @Test @DisableFlags(Flags.FLAG_DREAMS_V2) public void testChargingStatusReportsChargingLimitedWhenOverheated() { ArgumentCaptor<KeyguardUpdateMonitorCallback> keyguardUpdateMonitorCallbackArgumentCaptor = ArgumentCaptor.forClass(KeyguardUpdateMonitorCallback.class); Loading @@ -156,6 +167,7 @@ public class ChargingStatusProviderTest extends SysuiTestCase { } @Test @DisableFlags(Flags.FLAG_DREAMS_V2) public void testChargingStatusReportsChargedWhenCharged() { ArgumentCaptor<KeyguardUpdateMonitorCallback> keyguardUpdateMonitorCallbackArgumentCaptor = ArgumentCaptor.forClass(KeyguardUpdateMonitorCallback.class); Loading @@ -169,6 +181,7 @@ public class ChargingStatusProviderTest extends SysuiTestCase { } @Test @DisableFlags(Flags.FLAG_DREAMS_V2) public void testChargingStatusReportsPluggedInWhenDockedAndChargingTimeUnknown() throws RemoteException { ArgumentCaptor<KeyguardUpdateMonitorCallback> keyguardUpdateMonitorCallbackArgumentCaptor = Loading @@ -185,6 +198,7 @@ public class ChargingStatusProviderTest extends SysuiTestCase { } @Test @DisableFlags(Flags.FLAG_DREAMS_V2) public void testChargingStatusReportsTimeRemainingWhenDockedAndCharging() throws RemoteException { ArgumentCaptor<KeyguardUpdateMonitorCallback> keyguardUpdateMonitorCallbackArgumentCaptor = Loading @@ -200,6 +214,14 @@ public class ChargingStatusProviderTest extends SysuiTestCase { eq(R.string.keyguard_indication_charging_time_dock), any(), any()); } @Test @EnableFlags(Flags.FLAG_DREAMS_V2) public void testAsksKeyguardForChargingStatusInDreamsV2() { mProvider.startUsing(mCallback); verify(mCallback).onChargingStatusChanged(false, null); verify(mKeyguardIndicationController).getPowerChargingString(); } private BatteryStatus getUnpluggedBattery() { return new BatteryStatus(BatteryManager.BATTERY_STATUS_NOT_CHARGING, 80, BatteryManager.BATTERY_PLUGGED_ANY, BatteryManager.BATTERY_HEALTH_GOOD, Loading Loading
packages/SystemUI/src/com/android/systemui/lowlightclock/ChargingStatusProvider.java +17 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.lowlightclock; import static android.service.dreams.Flags.dreamsV2; import android.content.Context; import android.content.res.Resources; import android.os.BatteryManager; Loading @@ -30,6 +32,7 @@ import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.settingslib.fuelgauge.BatteryStatus; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.res.R; import com.android.systemui.statusbar.KeyguardIndicationController; import java.text.NumberFormat; Loading @@ -53,6 +56,8 @@ public class ChargingStatusProvider { // callback being GC'd. private ChargingStatusCallback mChargingStatusCallback; private final KeyguardIndicationController mKeyguardIndicationController; private Callback mCallback; @Inject Loading @@ -60,11 +65,13 @@ public class ChargingStatusProvider { Context context, @Main Resources resources, IBatteryStats iBatteryStats, KeyguardUpdateMonitor keyguardUpdateMonitor) { KeyguardUpdateMonitor keyguardUpdateMonitor, KeyguardIndicationController keyguardIndicationController) { mContext = context; mResources = resources; mBatteryInfo = iBatteryStats; mKeyguardUpdateMonitor = keyguardUpdateMonitor; mKeyguardIndicationController = keyguardIndicationController; } /** Loading Loading @@ -157,7 +164,15 @@ public class ChargingStatusProvider { if (mCallback != null) { final boolean shouldShowStatus = mBatteryState.isPowerPluggedIn() || mBatteryState.isBatteryDefenderEnabled(); mCallback.onChargingStatusChanged(shouldShowStatus, computeChargingString()); mCallback.onChargingStatusChanged(shouldShowStatus, getChargingString()); } } private String getChargingString() { if (dreamsV2()) { return mKeyguardIndicationController.getPowerChargingString(); } else { return computeChargingString(); } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java +4 −0 Original line number Diff line number Diff line Loading @@ -479,6 +479,10 @@ public class KeyguardIndicationController { mBroadcastDispatcher.unregisterReceiver(mBroadcastReceiver); } public String getPowerChargingString() { return computePowerChargingStringIndication(); } private void handleAlignStateChanged(int alignState) { String alignmentIndication = ""; if (alignState == DockManager.ALIGN_STATE_POOR) { Loading
packages/SystemUI/tests/src/com/android/systemui/lowlightclock/ChargingStatusProviderTest.java +25 −3 Original line number Diff line number Diff line Loading @@ -26,8 +26,11 @@ import static org.mockito.Mockito.when; import android.content.res.Resources; import android.os.BatteryManager; import android.os.RemoteException; import android.testing.AndroidTestingRunner; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.service.dreams.Flags; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; import com.android.internal.app.IBatteryStats; Loading @@ -36,6 +39,7 @@ import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.settingslib.fuelgauge.BatteryStatus; import com.android.systemui.SysuiTestCase; import com.android.systemui.res.R; import com.android.systemui.statusbar.KeyguardIndicationController; import org.junit.Before; import org.junit.Test; Loading @@ -45,7 +49,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; @SmallTest @RunWith(AndroidTestingRunner.class) @RunWith(AndroidJUnit4.class) public class ChargingStatusProviderTest extends SysuiTestCase { @Mock private Resources mResources; Loading @@ -54,6 +58,8 @@ public class ChargingStatusProviderTest extends SysuiTestCase { @Mock private KeyguardUpdateMonitor mKeyguardUpdateMonitor; @Mock private KeyguardIndicationController mKeyguardIndicationController; @Mock private ChargingStatusProvider.Callback mCallback; private ChargingStatusProvider mProvider; Loading @@ -63,7 +69,11 @@ public class ChargingStatusProviderTest extends SysuiTestCase { MockitoAnnotations.initMocks(this); mProvider = new ChargingStatusProvider( mContext, mResources, mBatteryInfo, mKeyguardUpdateMonitor); mContext, mResources, mBatteryInfo, mKeyguardUpdateMonitor, mKeyguardIndicationController); } @Test Loading Loading @@ -143,6 +153,7 @@ public class ChargingStatusProviderTest extends SysuiTestCase { } @Test @DisableFlags(Flags.FLAG_DREAMS_V2) public void testChargingStatusReportsChargingLimitedWhenOverheated() { ArgumentCaptor<KeyguardUpdateMonitorCallback> keyguardUpdateMonitorCallbackArgumentCaptor = ArgumentCaptor.forClass(KeyguardUpdateMonitorCallback.class); Loading @@ -156,6 +167,7 @@ public class ChargingStatusProviderTest extends SysuiTestCase { } @Test @DisableFlags(Flags.FLAG_DREAMS_V2) public void testChargingStatusReportsChargedWhenCharged() { ArgumentCaptor<KeyguardUpdateMonitorCallback> keyguardUpdateMonitorCallbackArgumentCaptor = ArgumentCaptor.forClass(KeyguardUpdateMonitorCallback.class); Loading @@ -169,6 +181,7 @@ public class ChargingStatusProviderTest extends SysuiTestCase { } @Test @DisableFlags(Flags.FLAG_DREAMS_V2) public void testChargingStatusReportsPluggedInWhenDockedAndChargingTimeUnknown() throws RemoteException { ArgumentCaptor<KeyguardUpdateMonitorCallback> keyguardUpdateMonitorCallbackArgumentCaptor = Loading @@ -185,6 +198,7 @@ public class ChargingStatusProviderTest extends SysuiTestCase { } @Test @DisableFlags(Flags.FLAG_DREAMS_V2) public void testChargingStatusReportsTimeRemainingWhenDockedAndCharging() throws RemoteException { ArgumentCaptor<KeyguardUpdateMonitorCallback> keyguardUpdateMonitorCallbackArgumentCaptor = Loading @@ -200,6 +214,14 @@ public class ChargingStatusProviderTest extends SysuiTestCase { eq(R.string.keyguard_indication_charging_time_dock), any(), any()); } @Test @EnableFlags(Flags.FLAG_DREAMS_V2) public void testAsksKeyguardForChargingStatusInDreamsV2() { mProvider.startUsing(mCallback); verify(mCallback).onChargingStatusChanged(false, null); verify(mKeyguardIndicationController).getPowerChargingString(); } private BatteryStatus getUnpluggedBattery() { return new BatteryStatus(BatteryManager.BATTERY_STATUS_NOT_CHARGING, 80, BatteryManager.BATTERY_PLUGGED_ANY, BatteryManager.BATTERY_HEALTH_GOOD, Loading