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

Commit eeca4329 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Show charging status in addition to trust granted" into rvc-dev am:...

Merge "Show charging status in addition to trust granted" into rvc-dev am: a5a27037 am: 8ba58831 am: a1064ceb

Change-Id: Ifb7b0b834fcc0e37d499f13513ae2361f5af4775
parents 66b50584 a1064ceb
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1425,6 +1425,9 @@
    <!-- Indication on the keyguard that appears when the user disables trust agents until the next time they unlock manually. [CHAR LIMIT=NONE] -->
    <string name="keyguard_indication_trust_disabled">Device will stay locked until you manually unlock</string>

    <!-- Indication on the keyguard that appears when trust agents unlocks the device and device is plugged in. [CHAR LIMIT=NONE] -->
    <string name="keyguard_indication_trust_unlocked_plugged_in"><xliff:g id="keyguard_indication" example="Kept unlocked by TrustAgent">%1$s</xliff:g>\n<xliff:g id="power_indication" example="Charging Slowly">%2$s</xliff:g></string>

    <!-- Title of notification educating the user about enabling notifications on the lockscreen. [CHAR LIMIT=40] -->
    <string name="hidden_notifications_title">Get notifications faster</string>

+35 −7
Original line number Diff line number Diff line
@@ -224,6 +224,14 @@ public class KeyguardIndicationController implements StateListener,
        return mContext.getString(R.string.keyguard_indication_trust_unlocked);
    }

    /**
     * Sets if the device is plugged in
     */
    @VisibleForTesting
    void setPowerPluggedIn(boolean plugged) {
        mPowerPluggedIn = plugged;
    }

    /**
     * Returns the indication text indicating that trust is currently being managed.
     *
@@ -322,29 +330,48 @@ public class KeyguardIndicationController implements StateListener,
            int userId = KeyguardUpdateMonitor.getCurrentUser();
            String trustGrantedIndication = getTrustGrantedIndication();
            String trustManagedIndication = getTrustManagedIndication();

            String powerIndication = null;
            if (mPowerPluggedIn) {
                powerIndication = computePowerIndication();
            }

            if (!mKeyguardUpdateMonitor.isUserUnlocked(userId)) {
                mTextView.switchIndication(com.android.internal.R.string.lockscreen_storage_locked);
                mTextView.setTextColor(mInitialTextColorState);
            } else if (!TextUtils.isEmpty(mTransientIndication)) {
                if (powerIndication != null) {
                    String indication = mContext.getResources().getString(
                            R.string.keyguard_indication_trust_unlocked_plugged_in,
                            mTransientIndication, powerIndication);
                    mTextView.switchIndication(indication);
                } else {
                    mTextView.switchIndication(mTransientIndication);
                }
                mTextView.setTextColor(mTransientTextColorState);
            } else if (!TextUtils.isEmpty(trustGrantedIndication)
                    && mKeyguardUpdateMonitor.getUserHasTrust(userId)) {
                if (powerIndication != null) {
                    String indication = mContext.getResources().getString(
                            R.string.keyguard_indication_trust_unlocked_plugged_in,
                            trustGrantedIndication, powerIndication);
                    mTextView.switchIndication(indication);
                } else {
                    mTextView.switchIndication(trustGrantedIndication);
                }
                mTextView.setTextColor(mInitialTextColorState);
            } else if (!TextUtils.isEmpty(mAlignmentIndication)) {
                mTextView.switchIndication(mAlignmentIndication);
                mTextView.setTextColor(Utils.getColorError(mContext));
            } else if (mPowerPluggedIn) {
                String indication = computePowerIndication();
                if (DEBUG_CHARGING_SPEED) {
                    indication += ",  " + (mChargingWattage / 1000) + " mW";
                    powerIndication += ",  " + (mChargingWattage / 1000) + " mW";
                }
                mTextView.setTextColor(mInitialTextColorState);
                if (animate) {
                    animateText(mTextView, indication);
                    animateText(mTextView, powerIndication);
                } else {
                    mTextView.switchIndication(indication);
                    mTextView.switchIndication(powerIndication);
                }
            } else if (!TextUtils.isEmpty(trustManagedIndication)
                    && mKeyguardUpdateMonitor.getUserTrustIsManaged(userId)
@@ -409,7 +436,8 @@ public class KeyguardIndicationController implements StateListener,
                });
    }

    private String computePowerIndication() {
    @VisibleForTesting
    String computePowerIndication() {
        if (mPowerCharged) {
            return mContext.getResources().getString(R.string.keyguard_charged);
        }
+14 −0
Original line number Diff line number Diff line
@@ -374,4 +374,18 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
        verify(mStatusBarStateController).addCallback(eq(mController));
        verify(mKeyguardUpdateMonitor, times(2)).registerCallback(any());
    }

    @Test
    public void unlockMethodCache_listenerUpdatesPluggedIndication() {
        createController();
        when(mKeyguardUpdateMonitor.getUserHasTrust(anyInt())).thenReturn(true);
        mController.setPowerPluggedIn(true);
        mController.setVisible(true);
        String powerIndication = mController.computePowerIndication();
        String pluggedIndication = mContext.getString(R.string.keyguard_indication_trust_unlocked);
        pluggedIndication = mContext.getString(
                R.string.keyguard_indication_trust_unlocked_plugged_in,
                pluggedIndication, powerIndication);
        assertThat(mTextView.getText()).isEqualTo(pluggedIndication);
    }
}