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

Commit 48e57c9a authored by Adrian Roos's avatar Adrian Roos Committed by Android (Google) Code Review
Browse files

Merge "Fix flakey KeyguardIndicationControllerTest"

parents 95e8afbb af45b60e
Loading
Loading
Loading
Loading
+16 −6
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ import android.os.BatteryManager;
import android.os.BatteryStats;
import android.os.Handler;
import android.os.Message;
import android.os.PowerManager;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserHandle;
@@ -95,12 +94,20 @@ public class KeyguardIndicationController {
    private final DevicePolicyManager mDevicePolicyManager;
    private boolean mDozing;

    /**
     * Creates a new KeyguardIndicationController and registers callbacks.
     */
    public KeyguardIndicationController(Context context, ViewGroup indicationArea,
            LockIcon lockIcon) {
        this(context, indicationArea, lockIcon,
                WakeLock.createPartial(context, "Doze:KeyguardIndication"));

        registerCallbacks(KeyguardUpdateMonitor.getInstance(context));
    }

    /**
     * Creates a new KeyguardIndicationController for testing. Does *not* register callbacks.
     */
    @VisibleForTesting
    KeyguardIndicationController(Context context, ViewGroup indicationArea, LockIcon lockIcon,
                WakeLock wakeLock) {
@@ -124,12 +131,15 @@ public class KeyguardIndicationController {
        mDevicePolicyManager = (DevicePolicyManager) context.getSystemService(
                Context.DEVICE_POLICY_SERVICE);

        KeyguardUpdateMonitor.getInstance(context).registerCallback(getKeyguardCallback());
        context.registerReceiverAsUser(mTickReceiver, UserHandle.SYSTEM,
        updateDisclosure();
    }

    private void registerCallbacks(KeyguardUpdateMonitor monitor) {
        monitor.registerCallback(getKeyguardCallback());

        mContext.registerReceiverAsUser(mTickReceiver, UserHandle.SYSTEM,
                new IntentFilter(Intent.ACTION_TIME_TICK), null,
                Dependency.get(Dependency.TIME_TICK_HANDLER));

        updateDisclosure();
    }

    /**
@@ -331,7 +341,7 @@ public class KeyguardIndicationController {
        mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
    }

    BroadcastReceiver mTickReceiver = new BroadcastReceiver() {
    private final BroadcastReceiver mTickReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            mHandler.post(() -> {
+4 −11
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.systemui.statusbar;

import static android.support.test.internal.runner.junit4.statement.UiThreadStatement.runOnUiThread;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
@@ -34,19 +32,17 @@ import android.hardware.fingerprint.FingerprintManager;
import android.os.Looper;
import android.support.test.InstrumentationRegistry;
import android.support.test.filters.SmallTest;
import android.support.test.internal.runner.junit4.statement.UiThreadStatement;
import android.support.test.runner.AndroidJUnit4;
import android.view.View;
import android.view.ViewGroup;

import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.statusbar.phone.KeyguardIndicationTextView;
import com.android.systemui.util.wakelock.WakeLockFake;

import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;

@@ -125,7 +121,7 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
        when(mDevicePolicyManager.isDeviceManaged()).thenReturn(false);
        createController();

        final KeyguardUpdateMonitor monitor = KeyguardUpdateMonitor.getInstance(mContext);
        final KeyguardUpdateMonitorCallback monitor = mController.getKeyguardCallback();
        reset(mDisclosure);

        when(mDevicePolicyManager.isDeviceManaged()).thenReturn(true);
@@ -176,7 +172,6 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
        assertFalse(mWakeLock.isHeld());
    }

    @Ignore("Flaky")
    @Test
    public void transientIndication_releasesWakeLock_afterHidingDelayed() throws Throwable {
        mInstrumentation.runOnMainSync(() -> {
@@ -188,12 +183,10 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
        });
        mInstrumentation.waitForIdleSync();

        boolean[] held = new boolean[2];
        Boolean[] held = new Boolean[1];
        mInstrumentation.runOnMainSync(() -> {
            held[0] = mWakeLock.isHeld();
            held[1] = true;
        });
        assertFalse("wake lock still held", held[0]);
        assertTrue("held was not written yet", held[1]);
        assertFalse("WakeLock expected: RELEASED, was: HELD", held[0]);
    }
}