Merge "Re-add DO Disclosure text to lock screen; now faded." into rvc-dev
This commit is contained in:
@@ -129,7 +129,7 @@
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="TextAppearance.Keyguard.BottomArea">
|
<style name="TextAppearance.Keyguard.BottomArea">
|
||||||
<item name="android:textSize">16sp</item>
|
<item name="android:textSize">14sp</item>
|
||||||
<item name="android:maxLines">1</item>
|
<item name="android:maxLines">1</item>
|
||||||
<item name="android:textColor">?attr/wallpaperTextColor</item>
|
<item name="android:textColor">?attr/wallpaperTextColor</item>
|
||||||
<item name="android:shadowColor">@color/keyguard_shadow_color</item>
|
<item name="android:shadowColor">@color/keyguard_shadow_color</item>
|
||||||
|
|||||||
@@ -42,6 +42,17 @@
|
|||||||
android:textAppearance="@style/TextAppearance.Keyguard.BottomArea"
|
android:textAppearance="@style/TextAppearance.Keyguard.BottomArea"
|
||||||
android:accessibilityLiveRegion="polite"/>
|
android:accessibilityLiveRegion="polite"/>
|
||||||
|
|
||||||
|
<com.android.systemui.statusbar.phone.KeyguardIndicationTextView
|
||||||
|
android:id="@+id/keyguard_indication_enterprise_disclosure"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingStart="@dimen/keyguard_indication_text_padding"
|
||||||
|
android:paddingEnd="@dimen/keyguard_indication_text_padding"
|
||||||
|
android:textAppearance="@style/TextAppearance.Keyguard.BottomArea"
|
||||||
|
android:alpha=".54"
|
||||||
|
android:visibility="gone"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
|
|||||||
@@ -16,9 +16,15 @@
|
|||||||
|
|
||||||
package com.android.systemui.statusbar;
|
package com.android.systemui.statusbar;
|
||||||
|
|
||||||
|
import static com.android.systemui.DejankUtils.whitelistIpcs;
|
||||||
|
|
||||||
import android.animation.Animator;
|
import android.animation.Animator;
|
||||||
import android.animation.AnimatorListenerAdapter;
|
import android.animation.AnimatorListenerAdapter;
|
||||||
|
import android.app.admin.DevicePolicyManager;
|
||||||
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.IntentFilter;
|
||||||
import android.content.res.ColorStateList;
|
import android.content.res.ColorStateList;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.hardware.biometrics.BiometricSourceType;
|
import android.hardware.biometrics.BiometricSourceType;
|
||||||
@@ -43,6 +49,7 @@ import com.android.settingslib.Utils;
|
|||||||
import com.android.settingslib.fuelgauge.BatteryStatus;
|
import com.android.settingslib.fuelgauge.BatteryStatus;
|
||||||
import com.android.systemui.Interpolators;
|
import com.android.systemui.Interpolators;
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
|
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||||
import com.android.systemui.dock.DockManager;
|
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;
|
||||||
@@ -78,15 +85,19 @@ public class KeyguardIndicationController implements StateListener,
|
|||||||
private static final float BOUNCE_ANIMATION_FINAL_Y = 0f;
|
private static final float BOUNCE_ANIMATION_FINAL_Y = 0f;
|
||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
|
private final BroadcastDispatcher mBroadcastDispatcher;
|
||||||
private final KeyguardStateController mKeyguardStateController;
|
private final KeyguardStateController mKeyguardStateController;
|
||||||
private final StatusBarStateController mStatusBarStateController;
|
private final StatusBarStateController mStatusBarStateController;
|
||||||
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||||
private ViewGroup mIndicationArea;
|
private ViewGroup mIndicationArea;
|
||||||
private KeyguardIndicationTextView mTextView;
|
private KeyguardIndicationTextView mTextView;
|
||||||
|
private KeyguardIndicationTextView mDisclosure;
|
||||||
private final IBatteryStats mBatteryInfo;
|
private final IBatteryStats mBatteryInfo;
|
||||||
private final SettableWakeLock mWakeLock;
|
private final SettableWakeLock mWakeLock;
|
||||||
private final DockManager mDockManager;
|
private final DockManager mDockManager;
|
||||||
|
private final DevicePolicyManager mDevicePolicyManager;
|
||||||
|
|
||||||
|
private BroadcastReceiver mBroadcastReceiver;
|
||||||
private LockscreenLockIconController mLockIconController;
|
private LockscreenLockIconController mLockIconController;
|
||||||
private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
|
private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
|
||||||
|
|
||||||
@@ -105,6 +116,7 @@ public class KeyguardIndicationController implements StateListener,
|
|||||||
private int mChargingWattage;
|
private int mChargingWattage;
|
||||||
private int mBatteryLevel;
|
private int mBatteryLevel;
|
||||||
private long mChargingTimeRemaining;
|
private long mChargingTimeRemaining;
|
||||||
|
private float mDisclosureMaxAlpha;
|
||||||
private String mMessageToShowOnScreenOn;
|
private String mMessageToShowOnScreenOn;
|
||||||
|
|
||||||
private KeyguardUpdateMonitorCallback mUpdateMonitorCallback;
|
private KeyguardUpdateMonitorCallback mUpdateMonitorCallback;
|
||||||
@@ -128,8 +140,12 @@ public class KeyguardIndicationController implements StateListener,
|
|||||||
StatusBarStateController statusBarStateController,
|
StatusBarStateController statusBarStateController,
|
||||||
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
||||||
DockManager dockManager,
|
DockManager dockManager,
|
||||||
|
BroadcastDispatcher broadcastDispatcher,
|
||||||
|
DevicePolicyManager devicePolicyManager,
|
||||||
IBatteryStats iBatteryStats) {
|
IBatteryStats iBatteryStats) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
|
mBroadcastDispatcher = broadcastDispatcher;
|
||||||
|
mDevicePolicyManager = devicePolicyManager;
|
||||||
mKeyguardStateController = keyguardStateController;
|
mKeyguardStateController = keyguardStateController;
|
||||||
mStatusBarStateController = statusBarStateController;
|
mStatusBarStateController = statusBarStateController;
|
||||||
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
||||||
@@ -151,7 +167,22 @@ public class KeyguardIndicationController implements StateListener,
|
|||||||
mTextView = indicationArea.findViewById(R.id.keyguard_indication_text);
|
mTextView = indicationArea.findViewById(R.id.keyguard_indication_text);
|
||||||
mInitialTextColorState = mTextView != null ?
|
mInitialTextColorState = mTextView != null ?
|
||||||
mTextView.getTextColors() : ColorStateList.valueOf(Color.WHITE);
|
mTextView.getTextColors() : ColorStateList.valueOf(Color.WHITE);
|
||||||
|
mDisclosure = indicationArea.findViewById(R.id.keyguard_indication_enterprise_disclosure);
|
||||||
|
mDisclosureMaxAlpha = mDisclosure.getAlpha();
|
||||||
updateIndication(false /* animate */);
|
updateIndication(false /* animate */);
|
||||||
|
updateDisclosure();
|
||||||
|
|
||||||
|
if (mBroadcastReceiver == null) {
|
||||||
|
// Update the disclosure proactively to avoid IPC on the critical path.
|
||||||
|
mBroadcastReceiver = new BroadcastReceiver() {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
updateDisclosure();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
mBroadcastDispatcher.registerReceiver(mBroadcastReceiver, new IntentFilter(
|
||||||
|
DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLockIconController(LockscreenLockIconController lockIconController) {
|
public void setLockIconController(LockscreenLockIconController lockIconController) {
|
||||||
@@ -190,6 +221,23 @@ public class KeyguardIndicationController implements StateListener,
|
|||||||
return mUpdateMonitorCallback;
|
return mUpdateMonitorCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateDisclosure() {
|
||||||
|
// NOTE: Because this uses IPC, avoid calling updateDisclosure() on a critical path.
|
||||||
|
if (whitelistIpcs(mDevicePolicyManager::isDeviceManaged)) {
|
||||||
|
final CharSequence organizationName =
|
||||||
|
mDevicePolicyManager.getDeviceOwnerOrganizationName();
|
||||||
|
if (organizationName != null) {
|
||||||
|
mDisclosure.switchIndication(mContext.getResources().getString(
|
||||||
|
R.string.do_disclosure_with_name, organizationName));
|
||||||
|
} else {
|
||||||
|
mDisclosure.switchIndication(R.string.do_disclosure_generic);
|
||||||
|
}
|
||||||
|
mDisclosure.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
mDisclosure.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void setVisible(boolean visible) {
|
public void setVisible(boolean visible) {
|
||||||
mVisible = visible;
|
mVisible = visible;
|
||||||
mIndicationArea.setVisibility(visible ? View.VISIBLE : View.GONE);
|
mIndicationArea.setVisibility(visible ? View.VISIBLE : View.GONE);
|
||||||
@@ -573,6 +621,11 @@ public class KeyguardIndicationController implements StateListener,
|
|||||||
setDozing(isDozing);
|
setDozing(isDozing);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDozeAmountChanged(float linear, float eased) {
|
||||||
|
mDisclosure.setAlpha((1 - linear) * mDisclosureMaxAlpha);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUnlockedChanged() {
|
public void onUnlockedChanged() {
|
||||||
updateIndication(!mDozing);
|
updateIndication(!mDozing);
|
||||||
|
|||||||
@@ -125,6 +125,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
|
|||||||
private KeyguardAffordanceView mRightAffordanceView;
|
private KeyguardAffordanceView mRightAffordanceView;
|
||||||
private KeyguardAffordanceView mLeftAffordanceView;
|
private KeyguardAffordanceView mLeftAffordanceView;
|
||||||
private ViewGroup mIndicationArea;
|
private ViewGroup mIndicationArea;
|
||||||
|
private TextView mEnterpriseDisclosure;
|
||||||
private TextView mIndicationText;
|
private TextView mIndicationText;
|
||||||
private ViewGroup mPreviewContainer;
|
private ViewGroup mPreviewContainer;
|
||||||
private ViewGroup mOverlayContainer;
|
private ViewGroup mOverlayContainer;
|
||||||
@@ -238,6 +239,8 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
|
|||||||
mRightAffordanceView = findViewById(R.id.camera_button);
|
mRightAffordanceView = findViewById(R.id.camera_button);
|
||||||
mLeftAffordanceView = findViewById(R.id.left_button);
|
mLeftAffordanceView = findViewById(R.id.left_button);
|
||||||
mIndicationArea = findViewById(R.id.keyguard_indication_area);
|
mIndicationArea = findViewById(R.id.keyguard_indication_area);
|
||||||
|
mEnterpriseDisclosure = findViewById(
|
||||||
|
R.id.keyguard_indication_enterprise_disclosure);
|
||||||
mIndicationText = findViewById(R.id.keyguard_indication_text);
|
mIndicationText = findViewById(R.id.keyguard_indication_text);
|
||||||
mIndicationBottomMargin = getResources().getDimensionPixelSize(
|
mIndicationBottomMargin = getResources().getDimensionPixelSize(
|
||||||
R.dimen.keyguard_indication_margin_bottom);
|
R.dimen.keyguard_indication_margin_bottom);
|
||||||
@@ -315,6 +318,9 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Respect font size setting.
|
// Respect font size setting.
|
||||||
|
mEnterpriseDisclosure.setTextSize(TypedValue.COMPLEX_UNIT_PX,
|
||||||
|
getResources().getDimensionPixelSize(
|
||||||
|
com.android.internal.R.dimen.text_size_small_material));
|
||||||
mIndicationText.setTextSize(TypedValue.COMPLEX_UNIT_PX,
|
mIndicationText.setTextSize(TypedValue.COMPLEX_UNIT_PX,
|
||||||
getResources().getDimensionPixelSize(
|
getResources().getDimensionPixelSize(
|
||||||
com.android.internal.R.dimen.text_size_small_material));
|
com.android.internal.R.dimen.text_size_small_material));
|
||||||
|
|||||||
@@ -25,17 +25,21 @@ import static org.mockito.ArgumentMatchers.anyBoolean;
|
|||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.clearInvocations;
|
import static org.mockito.Mockito.clearInvocations;
|
||||||
|
import static org.mockito.Mockito.doNothing;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.reset;
|
import static org.mockito.Mockito.reset;
|
||||||
import static org.mockito.Mockito.times;
|
import static org.mockito.Mockito.times;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.app.Instrumentation;
|
import android.app.Instrumentation;
|
||||||
import android.app.admin.DevicePolicyManager;
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.app.trust.TrustManager;
|
import android.app.trust.TrustManager;
|
||||||
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.hardware.biometrics.BiometricSourceType;
|
import android.hardware.biometrics.BiometricSourceType;
|
||||||
import android.hardware.face.FaceManager;
|
import android.hardware.face.FaceManager;
|
||||||
@@ -44,6 +48,7 @@ import android.os.BatteryManager;
|
|||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import androidx.test.InstrumentationRegistry;
|
import androidx.test.InstrumentationRegistry;
|
||||||
@@ -52,13 +57,16 @@ import androidx.test.runner.AndroidJUnit4;
|
|||||||
|
|
||||||
import com.android.internal.app.IBatteryStats;
|
import com.android.internal.app.IBatteryStats;
|
||||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||||
|
import com.android.keyguard.KeyguardUpdateMonitorCallback;
|
||||||
import com.android.settingslib.Utils;
|
import com.android.settingslib.Utils;
|
||||||
import com.android.settingslib.fuelgauge.BatteryStatus;
|
import com.android.settingslib.fuelgauge.BatteryStatus;
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
|
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||||
import com.android.systemui.dock.DockManager;
|
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.StatusBarKeyguardViewManager;
|
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
|
||||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||||
import com.android.systemui.util.wakelock.WakeLockFake;
|
import com.android.systemui.util.wakelock.WakeLockFake;
|
||||||
@@ -75,6 +83,10 @@ import org.mockito.MockitoAnnotations;
|
|||||||
@RunWith(AndroidJUnit4.class)
|
@RunWith(AndroidJUnit4.class)
|
||||||
public class KeyguardIndicationControllerTest extends SysuiTestCase {
|
public class KeyguardIndicationControllerTest extends SysuiTestCase {
|
||||||
|
|
||||||
|
private static final String ORGANIZATION_NAME = "organization";
|
||||||
|
|
||||||
|
private String mDisclosureWithOrganization;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private DevicePolicyManager mDevicePolicyManager;
|
private DevicePolicyManager mDevicePolicyManager;
|
||||||
@Mock
|
@Mock
|
||||||
@@ -82,6 +94,12 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
|
|||||||
@Mock
|
@Mock
|
||||||
private KeyguardStateController mKeyguardStateController;
|
private KeyguardStateController mKeyguardStateController;
|
||||||
@Mock
|
@Mock
|
||||||
|
private KeyguardIndicationTextView mDisclosure;
|
||||||
|
@Mock
|
||||||
|
private BroadcastDispatcher mBroadcastDispatcher;
|
||||||
|
@Mock
|
||||||
|
private LockIcon mLockIcon;
|
||||||
|
@Mock
|
||||||
private StatusBarStateController mStatusBarStateController;
|
private StatusBarStateController mStatusBarStateController;
|
||||||
@Mock
|
@Mock
|
||||||
private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||||
@@ -112,11 +130,17 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
|
|||||||
mContext.addMockSystemService(UserManager.class, mUserManager);
|
mContext.addMockSystemService(UserManager.class, mUserManager);
|
||||||
mContext.addMockSystemService(Context.TRUST_SERVICE, mock(TrustManager.class));
|
mContext.addMockSystemService(Context.TRUST_SERVICE, mock(TrustManager.class));
|
||||||
mContext.addMockSystemService(Context.FINGERPRINT_SERVICE, mock(FingerprintManager.class));
|
mContext.addMockSystemService(Context.FINGERPRINT_SERVICE, mock(FingerprintManager.class));
|
||||||
|
mDisclosureWithOrganization = mContext.getString(R.string.do_disclosure_with_name,
|
||||||
|
ORGANIZATION_NAME);
|
||||||
|
|
||||||
when(mKeyguardUpdateMonitor.isUnlockingWithBiometricAllowed(anyBoolean())).thenReturn(true);
|
when(mKeyguardUpdateMonitor.isUnlockingWithBiometricAllowed(anyBoolean())).thenReturn(true);
|
||||||
when(mKeyguardUpdateMonitor.isScreenOn()).thenReturn(true);
|
when(mKeyguardUpdateMonitor.isScreenOn()).thenReturn(true);
|
||||||
when(mKeyguardUpdateMonitor.isUserUnlocked(anyInt())).thenReturn(true);
|
when(mKeyguardUpdateMonitor.isUserUnlocked(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
|
when(mIndicationArea.findViewById(R.id.keyguard_indication_enterprise_disclosure))
|
||||||
|
.thenReturn(mDisclosure);
|
||||||
when(mIndicationArea.findViewById(R.id.keyguard_indication_text)).thenReturn(mTextView);
|
when(mIndicationArea.findViewById(R.id.keyguard_indication_text)).thenReturn(mTextView);
|
||||||
|
when(mDisclosure.getAlpha()).thenReturn(1f);
|
||||||
|
|
||||||
mWakeLock = new WakeLockFake();
|
mWakeLock = new WakeLockFake();
|
||||||
mWakeLockBuilder = new WakeLockFake.Builder(mContext);
|
mWakeLockBuilder = new WakeLockFake.Builder(mContext);
|
||||||
@@ -130,10 +154,11 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
|
|||||||
|
|
||||||
mController = new KeyguardIndicationController(mContext, mWakeLockBuilder,
|
mController = new KeyguardIndicationController(mContext, mWakeLockBuilder,
|
||||||
mKeyguardStateController, mStatusBarStateController, mKeyguardUpdateMonitor,
|
mKeyguardStateController, mStatusBarStateController, mKeyguardUpdateMonitor,
|
||||||
mDockManager, mIBatteryStats);
|
mDockManager, mBroadcastDispatcher, mDevicePolicyManager, mIBatteryStats);
|
||||||
mController.setIndicationArea(mIndicationArea);
|
mController.setIndicationArea(mIndicationArea);
|
||||||
mController.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager);
|
mController.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager);
|
||||||
clearInvocations(mIBatteryStats);
|
clearInvocations(mIBatteryStats);
|
||||||
|
verify(mDisclosure).getAlpha();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -214,6 +239,106 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
|
|||||||
mContext.getColor(R.color.misalignment_text_color));
|
mContext.getColor(R.color.misalignment_text_color));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void disclosure_unmanaged() {
|
||||||
|
when(mDevicePolicyManager.isDeviceManaged()).thenReturn(false);
|
||||||
|
createController();
|
||||||
|
|
||||||
|
verify(mDisclosure).setVisibility(View.GONE);
|
||||||
|
verifyNoMoreInteractions(mDisclosure);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void disclosure_managedNoOwnerName() {
|
||||||
|
when(mDevicePolicyManager.isDeviceManaged()).thenReturn(true);
|
||||||
|
when(mDevicePolicyManager.getDeviceOwnerOrganizationName()).thenReturn(null);
|
||||||
|
createController();
|
||||||
|
|
||||||
|
verify(mDisclosure).setVisibility(View.VISIBLE);
|
||||||
|
verify(mDisclosure).switchIndication(R.string.do_disclosure_generic);
|
||||||
|
verifyNoMoreInteractions(mDisclosure);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void disclosure_hiddenWhenDozing() {
|
||||||
|
when(mDevicePolicyManager.isDeviceManaged()).thenReturn(true);
|
||||||
|
when(mDevicePolicyManager.getDeviceOwnerOrganizationName()).thenReturn(null);
|
||||||
|
createController();
|
||||||
|
|
||||||
|
mController.setVisible(true);
|
||||||
|
mController.onDozeAmountChanged(1, 1);
|
||||||
|
mController.setDozing(true);
|
||||||
|
|
||||||
|
verify(mDisclosure).setVisibility(View.VISIBLE);
|
||||||
|
verify(mDisclosure).setAlpha(0f);
|
||||||
|
verify(mDisclosure).switchIndication(R.string.do_disclosure_generic);
|
||||||
|
verifyNoMoreInteractions(mDisclosure);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void disclosure_visibleWhenDozing() {
|
||||||
|
when(mDevicePolicyManager.isDeviceManaged()).thenReturn(true);
|
||||||
|
when(mDevicePolicyManager.getDeviceOwnerOrganizationName()).thenReturn(null);
|
||||||
|
createController();
|
||||||
|
|
||||||
|
mController.setVisible(true);
|
||||||
|
mController.onDozeAmountChanged(0, 0);
|
||||||
|
mController.setDozing(false);
|
||||||
|
|
||||||
|
verify(mDisclosure).setVisibility(View.VISIBLE);
|
||||||
|
verify(mDisclosure).setAlpha(1f);
|
||||||
|
verify(mDisclosure).switchIndication(R.string.do_disclosure_generic);
|
||||||
|
verifyNoMoreInteractions(mDisclosure);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void disclosure_managedOwnerName() {
|
||||||
|
when(mDevicePolicyManager.isDeviceManaged()).thenReturn(true);
|
||||||
|
when(mDevicePolicyManager.getDeviceOwnerOrganizationName()).thenReturn(ORGANIZATION_NAME);
|
||||||
|
createController();
|
||||||
|
|
||||||
|
verify(mDisclosure).setVisibility(View.VISIBLE);
|
||||||
|
verify(mDisclosure).switchIndication(mDisclosureWithOrganization);
|
||||||
|
verifyNoMoreInteractions(mDisclosure);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void disclosure_updateOnTheFly() {
|
||||||
|
ArgumentCaptor<BroadcastReceiver> receiver = ArgumentCaptor.forClass(
|
||||||
|
BroadcastReceiver.class);
|
||||||
|
doNothing().when(mBroadcastDispatcher).registerReceiver(receiver.capture(), any());
|
||||||
|
|
||||||
|
when(mDevicePolicyManager.isDeviceManaged()).thenReturn(false);
|
||||||
|
createController();
|
||||||
|
|
||||||
|
final KeyguardUpdateMonitorCallback monitor = mController.getKeyguardCallback();
|
||||||
|
reset(mDisclosure);
|
||||||
|
|
||||||
|
when(mDevicePolicyManager.isDeviceManaged()).thenReturn(true);
|
||||||
|
when(mDevicePolicyManager.getDeviceOwnerOrganizationName()).thenReturn(null);
|
||||||
|
receiver.getValue().onReceive(mContext, new Intent());
|
||||||
|
|
||||||
|
verify(mDisclosure).setVisibility(View.VISIBLE);
|
||||||
|
verify(mDisclosure).switchIndication(R.string.do_disclosure_generic);
|
||||||
|
verifyNoMoreInteractions(mDisclosure);
|
||||||
|
reset(mDisclosure);
|
||||||
|
|
||||||
|
when(mDevicePolicyManager.isDeviceManaged()).thenReturn(true);
|
||||||
|
when(mDevicePolicyManager.getDeviceOwnerOrganizationName()).thenReturn(ORGANIZATION_NAME);
|
||||||
|
receiver.getValue().onReceive(mContext, new Intent());
|
||||||
|
|
||||||
|
verify(mDisclosure).setVisibility(View.VISIBLE);
|
||||||
|
verify(mDisclosure).switchIndication(mDisclosureWithOrganization);
|
||||||
|
verifyNoMoreInteractions(mDisclosure);
|
||||||
|
reset(mDisclosure);
|
||||||
|
|
||||||
|
when(mDevicePolicyManager.isDeviceManaged()).thenReturn(false);
|
||||||
|
receiver.getValue().onReceive(mContext, new Intent());
|
||||||
|
|
||||||
|
verify(mDisclosure).setVisibility(View.GONE);
|
||||||
|
verifyNoMoreInteractions(mDisclosure);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void transientIndication_holdsWakeLock_whenDozing() {
|
public void transientIndication_holdsWakeLock_whenDozing() {
|
||||||
createController();
|
createController();
|
||||||
|
|||||||
Reference in New Issue
Block a user