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

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

Merge "Prevent multiple registration of ProximitySensor" into rvc-dev am: a48ee0fc am: e92183ee

Change-Id: Ie071672ac7b2a3a261738e1d3ac57efef586db18
parents 827d5ffb e92183ee
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -170,7 +170,11 @@ public class ProximitySensor {
            return false;
        }

        if (mListeners.contains(listener)) {
            Log.d(TAG, "ProxListener registered multiple times: " + listener);
        } else {
            mListeners.add(listener);
        }
        registerInternal();

        return true;
+24 −0
Original line number Diff line number Diff line
@@ -103,6 +103,30 @@ public class ProximitySensorTest extends SysuiTestCase {
        waitForSensorManager();
    }

    @Test
    public void testDuplicateListener() {
        TestableListener listenerA = new TestableListener();

        assertFalse(mProximitySensor.isRegistered());

        mProximitySensor.register(listenerA);
        waitForSensorManager();
        assertTrue(mProximitySensor.isRegistered());
        mProximitySensor.register(listenerA);
        waitForSensorManager();
        assertTrue(mProximitySensor.isRegistered());
        assertNull(listenerA.mLastEvent);

        mFakeProximitySensor.sendProximityResult(true);
        assertFalse(listenerA.mLastEvent.getNear());
        assertEquals(listenerA.mCallCount, 1);
        mFakeProximitySensor.sendProximityResult(false);
        assertTrue(listenerA.mLastEvent.getNear());
        assertEquals(listenerA.mCallCount, 2);

        mProximitySensor.unregister(listenerA);
        waitForSensorManager();
    }
    @Test
    public void testUnregister() {
        TestableListener listener = new TestableListener();