Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 103d8b43 authored by William Leshner's avatar William Leshner Committed by Android (Google) Code Review
Browse files

Merge "Update charging string to match keyguard." into main

parents 12489af1 a03acf9d
Loading
Loading
Loading
Loading
+17 −2
Original line number Diff line number Diff line
@@ -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;
@@ -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;

@@ -53,6 +56,8 @@ public class ChargingStatusProvider {
    // callback being GC'd.
    private ChargingStatusCallback mChargingStatusCallback;

    private final KeyguardIndicationController mKeyguardIndicationController;

    private Callback mCallback;

    @Inject
@@ -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;
    }

    /**
@@ -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();
        }
    }

+4 −0
Original line number Diff line number Diff line
@@ -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) {
+25 −3
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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
@@ -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);
@@ -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);
@@ -169,6 +181,7 @@ public class ChargingStatusProviderTest extends SysuiTestCase {
    }

    @Test
    @DisableFlags(Flags.FLAG_DREAMS_V2)
    public void testChargingStatusReportsPluggedInWhenDockedAndChargingTimeUnknown() throws
            RemoteException {
        ArgumentCaptor<KeyguardUpdateMonitorCallback> keyguardUpdateMonitorCallbackArgumentCaptor =
@@ -185,6 +198,7 @@ public class ChargingStatusProviderTest extends SysuiTestCase {
    }

    @Test
    @DisableFlags(Flags.FLAG_DREAMS_V2)
    public void testChargingStatusReportsTimeRemainingWhenDockedAndCharging() throws
            RemoteException {
        ArgumentCaptor<KeyguardUpdateMonitorCallback> keyguardUpdateMonitorCallbackArgumentCaptor =
@@ -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,