Merge "Support showing alignment hint based on aligniment state of dock" into qt-qpr1-dev
This commit is contained in:
@@ -968,6 +968,12 @@
|
|||||||
<!-- Message shown when face authentication fails and the pin pad is visible. [CHAR LIMIT=60] -->
|
<!-- Message shown when face authentication fails and the pin pad is visible. [CHAR LIMIT=60] -->
|
||||||
<string name="keyguard_retry">Swipe up to try again</string>
|
<string name="keyguard_retry">Swipe up to try again</string>
|
||||||
|
|
||||||
|
<!-- Indication when device is slow charging due to misalignment on the dock. [CHAR LIMIT=60] -->
|
||||||
|
<string name="dock_alignment_slow_charging" product="default">Realign phone for faster charging</string>
|
||||||
|
|
||||||
|
<!-- Indication when device is not charging due to bad placement on the dock. [CHAR LIMIT=60] -->
|
||||||
|
<string name="dock_alignment_not_charging" product="default">Realign phone to charge wirelessly</string>
|
||||||
|
|
||||||
<!-- Text on keyguard screen and in Quick Settings footer indicating that the device is enterprise-managed by a Device Owner [CHAR LIMIT=60] -->
|
<!-- Text on keyguard screen and in Quick Settings footer indicating that the device is enterprise-managed by a Device Owner [CHAR LIMIT=60] -->
|
||||||
<string name="do_disclosure_generic">This device is managed by your organization</string>
|
<string name="do_disclosure_generic">This device is managed by your organization</string>
|
||||||
|
|
||||||
|
|||||||
@@ -17,12 +17,12 @@
|
|||||||
package com.android.systemui.dock;
|
package com.android.systemui.dock;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows an app to handle dock events
|
* Allows an app to handle dock events.
|
||||||
*/
|
*/
|
||||||
public interface DockManager {
|
public interface DockManager {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Uninitialized / undocking dock states
|
* Uninitialized / undocking dock states.
|
||||||
*/
|
*/
|
||||||
int STATE_NONE = 0;
|
int STATE_NONE = 0;
|
||||||
/**
|
/**
|
||||||
@@ -30,34 +30,75 @@ public interface DockManager {
|
|||||||
*/
|
*/
|
||||||
int STATE_DOCKED = 1;
|
int STATE_DOCKED = 1;
|
||||||
/**
|
/**
|
||||||
* The state for docking without showing UI
|
* The state for docking without showing UI.
|
||||||
*/
|
*/
|
||||||
int STATE_DOCKED_HIDE = 2;
|
int STATE_DOCKED_HIDE = 2;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a dock event listener into manager
|
* Indicates there's no alignment issue.
|
||||||
|
*/
|
||||||
|
int ALIGN_STATE_GOOD = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates it's slightly not aligned with dock. Normally combines with slow charging issue.
|
||||||
|
*/
|
||||||
|
int ALIGN_STATE_POOR = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates it's not aligned with dock. Normally combines with not charging issue.
|
||||||
|
*/
|
||||||
|
int ALIGN_STATE_TERRIBLE = 2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a dock event listener into manager.
|
||||||
*
|
*
|
||||||
* @param callback A {@link DockEventListener} which want to add
|
* @param callback A {@link DockEventListener} which want to add
|
||||||
*/
|
*/
|
||||||
void addListener(DockEventListener callback);
|
void addListener(DockEventListener callback);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove the added listener from dock manager
|
* Removes the added listener from dock manager
|
||||||
*
|
*
|
||||||
* @param callback A {@link DockEventListener} which want to remove
|
* @param callback A {@link DockEventListener} which want to remove
|
||||||
*/
|
*/
|
||||||
void removeListener(DockEventListener callback);
|
void removeListener(DockEventListener callback);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a alignment listener into manager.
|
||||||
|
*
|
||||||
|
* @param listener A {@link AlignmentStateListener} which want to add
|
||||||
|
*/
|
||||||
|
void addAlignmentStateListener(AlignmentStateListener listener);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the added alignment listener from dock manager.
|
||||||
|
*
|
||||||
|
* @param listener A {@link AlignmentStateListener} which want to remove
|
||||||
|
*/
|
||||||
|
void removeAlignmentStateListener(AlignmentStateListener listener);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if the device is in docking state.
|
* Returns true if the device is in docking state.
|
||||||
*/
|
*/
|
||||||
boolean isDocked();
|
boolean isDocked();
|
||||||
|
|
||||||
/** Callback for receiving dock events */
|
/**
|
||||||
|
* Listens to dock events.
|
||||||
|
*/
|
||||||
interface DockEventListener {
|
interface DockEventListener {
|
||||||
/**
|
/**
|
||||||
* Override to handle dock events
|
* Override to handle dock events.
|
||||||
*/
|
*/
|
||||||
void onEvent(int event);
|
void onEvent(int event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Listens to dock alignment state changed.
|
||||||
|
*/
|
||||||
|
interface AlignmentStateListener {
|
||||||
|
/**
|
||||||
|
* Override to handle alignment state changes.
|
||||||
|
*/
|
||||||
|
void onAlignmentStateChanged(int alignState);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,14 @@ public class DockManagerImpl implements DockManager {
|
|||||||
public void removeListener(DockEventListener callback) {
|
public void removeListener(DockEventListener callback) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addAlignmentStateListener(AlignmentStateListener listener) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeAlignmentStateListener(AlignmentStateListener listener) {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isDocked() {
|
public boolean isDocked() {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ import com.android.settingslib.Utils;
|
|||||||
import com.android.systemui.Dependency;
|
import com.android.systemui.Dependency;
|
||||||
import com.android.systemui.Interpolators;
|
import com.android.systemui.Interpolators;
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
|
import com.android.systemui.dock.DockManager;
|
||||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||||
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
|
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
|
||||||
import com.android.systemui.statusbar.phone.KeyguardIndicationTextView;
|
import com.android.systemui.statusbar.phone.KeyguardIndicationTextView;
|
||||||
@@ -96,6 +97,7 @@ public class KeyguardIndicationController implements StateListener,
|
|||||||
private final IBatteryStats mBatteryInfo;
|
private final IBatteryStats mBatteryInfo;
|
||||||
private final SettableWakeLock mWakeLock;
|
private final SettableWakeLock mWakeLock;
|
||||||
private final LockPatternUtils mLockPatternUtils;
|
private final LockPatternUtils mLockPatternUtils;
|
||||||
|
private final DockManager mDockManager;
|
||||||
|
|
||||||
private final int mSlowThreshold;
|
private final int mSlowThreshold;
|
||||||
private final int mFastThreshold;
|
private final int mFastThreshold;
|
||||||
@@ -104,6 +106,7 @@ public class KeyguardIndicationController implements StateListener,
|
|||||||
private LockscreenGestureLogger mLockscreenGestureLogger = new LockscreenGestureLogger();
|
private LockscreenGestureLogger mLockscreenGestureLogger = new LockscreenGestureLogger();
|
||||||
|
|
||||||
private String mRestingIndication;
|
private String mRestingIndication;
|
||||||
|
private String mAlignmentIndication = "";
|
||||||
private CharSequence mTransientIndication;
|
private CharSequence mTransientIndication;
|
||||||
private ColorStateList mTransientTextColorState;
|
private ColorStateList mTransientTextColorState;
|
||||||
private ColorStateList mInitialTextColorState;
|
private ColorStateList mInitialTextColorState;
|
||||||
@@ -141,7 +144,8 @@ public class KeyguardIndicationController implements StateListener,
|
|||||||
Dependency.get(AccessibilityController.class),
|
Dependency.get(AccessibilityController.class),
|
||||||
UnlockMethodCache.getInstance(context),
|
UnlockMethodCache.getInstance(context),
|
||||||
Dependency.get(StatusBarStateController.class),
|
Dependency.get(StatusBarStateController.class),
|
||||||
KeyguardUpdateMonitor.getInstance(context));
|
Dependency.get(KeyguardUpdateMonitor.class),
|
||||||
|
Dependency.get(DockManager.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -152,7 +156,8 @@ public class KeyguardIndicationController implements StateListener,
|
|||||||
LockPatternUtils lockPatternUtils, WakeLock wakeLock, ShadeController shadeController,
|
LockPatternUtils lockPatternUtils, WakeLock wakeLock, ShadeController shadeController,
|
||||||
AccessibilityController accessibilityController, UnlockMethodCache unlockMethodCache,
|
AccessibilityController accessibilityController, UnlockMethodCache unlockMethodCache,
|
||||||
StatusBarStateController statusBarStateController,
|
StatusBarStateController statusBarStateController,
|
||||||
KeyguardUpdateMonitor keyguardUpdateMonitor) {
|
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
||||||
|
DockManager dockManager) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mLockIcon = lockIcon;
|
mLockIcon = lockIcon;
|
||||||
mShadeController = shadeController;
|
mShadeController = shadeController;
|
||||||
@@ -160,6 +165,8 @@ public class KeyguardIndicationController implements StateListener,
|
|||||||
mUnlockMethodCache = unlockMethodCache;
|
mUnlockMethodCache = unlockMethodCache;
|
||||||
mStatusBarStateController = statusBarStateController;
|
mStatusBarStateController = statusBarStateController;
|
||||||
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
||||||
|
mDockManager = dockManager;
|
||||||
|
mDockManager.addAlignmentStateListener(this::handleAlignStateChanged);
|
||||||
// lock icon is not used on all form factors.
|
// lock icon is not used on all form factors.
|
||||||
if (mLockIcon != null) {
|
if (mLockIcon != null) {
|
||||||
mLockIcon.setOnLongClickListener(this::handleLockLongClick);
|
mLockIcon.setOnLongClickListener(this::handleLockLongClick);
|
||||||
@@ -213,6 +220,21 @@ public class KeyguardIndicationController implements StateListener,
|
|||||||
mShadeController.animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE, true /* force */);
|
mShadeController.animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE, true /* force */);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void handleAlignStateChanged(int alignState) {
|
||||||
|
String alignmentIndication = "";
|
||||||
|
if (alignState == DockManager.ALIGN_STATE_POOR) {
|
||||||
|
alignmentIndication =
|
||||||
|
mContext.getResources().getString(R.string.dock_alignment_slow_charging);
|
||||||
|
} else if (alignState == DockManager.ALIGN_STATE_TERRIBLE) {
|
||||||
|
alignmentIndication =
|
||||||
|
mContext.getResources().getString(R.string.dock_alignment_not_charging);
|
||||||
|
}
|
||||||
|
if (!alignmentIndication.equals(mAlignmentIndication)) {
|
||||||
|
mAlignmentIndication = alignmentIndication;
|
||||||
|
updateIndication(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the {@link KeyguardUpdateMonitorCallback} instance associated with this
|
* Gets the {@link KeyguardUpdateMonitorCallback} instance associated with this
|
||||||
* {@link KeyguardIndicationController}.
|
* {@link KeyguardIndicationController}.
|
||||||
@@ -256,7 +278,7 @@ public class KeyguardIndicationController implements StateListener,
|
|||||||
if (visible) {
|
if (visible) {
|
||||||
// If this is called after an error message was already shown, we should not clear it.
|
// If this is called after an error message was already shown, we should not clear it.
|
||||||
// Otherwise the error message won't be shown
|
// Otherwise the error message won't be shown
|
||||||
if (!mHandler.hasMessages(MSG_HIDE_TRANSIENT)) {
|
if (!mHandler.hasMessages(MSG_HIDE_TRANSIENT)) {
|
||||||
hideTransientIndication();
|
hideTransientIndication();
|
||||||
}
|
}
|
||||||
updateIndication(false);
|
updateIndication(false);
|
||||||
@@ -367,6 +389,9 @@ public class KeyguardIndicationController implements StateListener,
|
|||||||
mTextView.setTextColor(Color.WHITE);
|
mTextView.setTextColor(Color.WHITE);
|
||||||
if (!TextUtils.isEmpty(mTransientIndication)) {
|
if (!TextUtils.isEmpty(mTransientIndication)) {
|
||||||
mTextView.switchIndication(mTransientIndication);
|
mTextView.switchIndication(mTransientIndication);
|
||||||
|
} else if (!TextUtils.isEmpty(mAlignmentIndication)) {
|
||||||
|
mTextView.switchIndication(mAlignmentIndication);
|
||||||
|
mTextView.setTextColor(Utils.getColorError(mContext));
|
||||||
} else if (mPowerPluggedIn) {
|
} else if (mPowerPluggedIn) {
|
||||||
String indication = computePowerIndication();
|
String indication = computePowerIndication();
|
||||||
if (animate) {
|
if (animate) {
|
||||||
@@ -395,6 +420,9 @@ public class KeyguardIndicationController implements StateListener,
|
|||||||
&& mKeyguardUpdateMonitor.getUserHasTrust(userId)) {
|
&& mKeyguardUpdateMonitor.getUserHasTrust(userId)) {
|
||||||
mTextView.switchIndication(trustGrantedIndication);
|
mTextView.switchIndication(trustGrantedIndication);
|
||||||
mTextView.setTextColor(mInitialTextColorState);
|
mTextView.setTextColor(mInitialTextColorState);
|
||||||
|
} else if (!TextUtils.isEmpty(mAlignmentIndication)) {
|
||||||
|
mTextView.switchIndication(mAlignmentIndication);
|
||||||
|
mTextView.setTextColor(Utils.getColorError(mContext));
|
||||||
} else if (mPowerPluggedIn) {
|
} else if (mPowerPluggedIn) {
|
||||||
String indication = computePowerIndication();
|
String indication = computePowerIndication();
|
||||||
if (DEBUG_CHARGING_SPEED) {
|
if (DEBUG_CHARGING_SPEED) {
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ package com.android.systemui.dock;
|
|||||||
*/
|
*/
|
||||||
public class DockManagerFake implements DockManager {
|
public class DockManagerFake implements DockManager {
|
||||||
DockEventListener mCallback;
|
DockEventListener mCallback;
|
||||||
|
AlignmentStateListener mAlignmentListener;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addListener(DockEventListener callback) {
|
public void addListener(DockEventListener callback) {
|
||||||
@@ -32,6 +33,16 @@ public class DockManagerFake implements DockManager {
|
|||||||
this.mCallback = null;
|
this.mCallback = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addAlignmentStateListener(AlignmentStateListener listener) {
|
||||||
|
mAlignmentListener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeAlignmentStateListener(AlignmentStateListener listener) {
|
||||||
|
mAlignmentListener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isDocked() {
|
public boolean isDocked() {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -50,8 +50,10 @@ import androidx.test.runner.AndroidJUnit4;
|
|||||||
import com.android.internal.widget.LockPatternUtils;
|
import com.android.internal.widget.LockPatternUtils;
|
||||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||||
import com.android.keyguard.KeyguardUpdateMonitorCallback;
|
import com.android.keyguard.KeyguardUpdateMonitorCallback;
|
||||||
|
import com.android.settingslib.Utils;
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
|
import com.android.systemui.dock.DockManager;
|
||||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||||
import com.android.systemui.statusbar.phone.KeyguardIndicationTextView;
|
import com.android.systemui.statusbar.phone.KeyguardIndicationTextView;
|
||||||
import com.android.systemui.statusbar.phone.LockIcon;
|
import com.android.systemui.statusbar.phone.LockIcon;
|
||||||
@@ -65,6 +67,7 @@ import org.junit.Before;
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.ArgumentCaptor;
|
import org.mockito.ArgumentCaptor;
|
||||||
|
import org.mockito.Captor;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
|
|
||||||
@@ -100,6 +103,10 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
|
|||||||
private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
|
private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
|
||||||
@Mock
|
@Mock
|
||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
|
@Mock
|
||||||
|
private DockManager mDockManager;
|
||||||
|
@Captor
|
||||||
|
private ArgumentCaptor<DockManager.AlignmentStateListener> mAlignmentListener;
|
||||||
private KeyguardIndicationTextView mTextView;
|
private KeyguardIndicationTextView mTextView;
|
||||||
|
|
||||||
private KeyguardIndicationController mController;
|
private KeyguardIndicationController mController;
|
||||||
@@ -135,7 +142,8 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
|
|||||||
}
|
}
|
||||||
mController = new KeyguardIndicationController(mContext, mIndicationArea, mLockIcon,
|
mController = new KeyguardIndicationController(mContext, mIndicationArea, mLockIcon,
|
||||||
mLockPatternUtils, mWakeLock, mShadeController, mAccessibilityController,
|
mLockPatternUtils, mWakeLock, mShadeController, mAccessibilityController,
|
||||||
mUnlockMethodCache, mStatusBarStateController, mKeyguardUpdateMonitor);
|
mUnlockMethodCache, mStatusBarStateController, mKeyguardUpdateMonitor,
|
||||||
|
mDockManager);
|
||||||
mController.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager);
|
mController.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,6 +213,74 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
|
|||||||
verifyNoMoreInteractions(mDisclosure);
|
verifyNoMoreInteractions(mDisclosure);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void createController_addsAlignmentListener() {
|
||||||
|
createController();
|
||||||
|
|
||||||
|
verify(mDockManager).addAlignmentStateListener(
|
||||||
|
any(DockManager.AlignmentStateListener.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onAlignmentStateChanged_showsSlowChargingIndication() {
|
||||||
|
createController();
|
||||||
|
verify(mDockManager).addAlignmentStateListener(mAlignmentListener.capture());
|
||||||
|
mController.setVisible(true);
|
||||||
|
|
||||||
|
mAlignmentListener.getValue().onAlignmentStateChanged(
|
||||||
|
DockManager.ALIGN_STATE_POOR);
|
||||||
|
|
||||||
|
assertThat(mTextView.getText()).isEqualTo(
|
||||||
|
mContext.getResources().getString(R.string.dock_alignment_slow_charging));
|
||||||
|
assertThat(mTextView.getCurrentTextColor()).isEqualTo(
|
||||||
|
Utils.getColorError(mContext).getDefaultColor());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onAlignmentStateChanged_showsNotChargingIndication() {
|
||||||
|
createController();
|
||||||
|
verify(mDockManager).addAlignmentStateListener(mAlignmentListener.capture());
|
||||||
|
mController.setVisible(true);
|
||||||
|
|
||||||
|
mAlignmentListener.getValue().onAlignmentStateChanged(DockManager.ALIGN_STATE_TERRIBLE);
|
||||||
|
|
||||||
|
assertThat(mTextView.getText()).isEqualTo(
|
||||||
|
mContext.getResources().getString(R.string.dock_alignment_not_charging));
|
||||||
|
assertThat(mTextView.getCurrentTextColor()).isEqualTo(
|
||||||
|
Utils.getColorError(mContext).getDefaultColor());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onAlignmentStateChanged_whileDozing_showsSlowChargingIndication() {
|
||||||
|
createController();
|
||||||
|
verify(mDockManager).addAlignmentStateListener(mAlignmentListener.capture());
|
||||||
|
mController.setVisible(true);
|
||||||
|
mController.setDozing(true);
|
||||||
|
|
||||||
|
mAlignmentListener.getValue().onAlignmentStateChanged(
|
||||||
|
DockManager.ALIGN_STATE_POOR);
|
||||||
|
|
||||||
|
assertThat(mTextView.getText()).isEqualTo(
|
||||||
|
mContext.getResources().getString(R.string.dock_alignment_slow_charging));
|
||||||
|
assertThat(mTextView.getCurrentTextColor()).isEqualTo(
|
||||||
|
Utils.getColorError(mContext).getDefaultColor());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onAlignmentStateChanged_whileDozing_showsNotChargingIndication() {
|
||||||
|
createController();
|
||||||
|
verify(mDockManager).addAlignmentStateListener(mAlignmentListener.capture());
|
||||||
|
mController.setVisible(true);
|
||||||
|
mController.setDozing(true);
|
||||||
|
|
||||||
|
mAlignmentListener.getValue().onAlignmentStateChanged(DockManager.ALIGN_STATE_TERRIBLE);
|
||||||
|
|
||||||
|
assertThat(mTextView.getText()).isEqualTo(
|
||||||
|
mContext.getResources().getString(R.string.dock_alignment_not_charging));
|
||||||
|
assertThat(mTextView.getCurrentTextColor()).isEqualTo(
|
||||||
|
Utils.getColorError(mContext).getDefaultColor());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void transientIndication_holdsWakeLock_whenDozing() {
|
public void transientIndication_holdsWakeLock_whenDozing() {
|
||||||
createController();
|
createController();
|
||||||
|
|||||||
Reference in New Issue
Block a user