From 49691487b9924c610c16f42d3fbfdd3092def425 Mon Sep 17 00:00:00 2001 From: Yorke Lee Date: Fri, 4 Sep 2015 15:31:10 -0700 Subject: Disable AccelerometerListener when display is off Unregister the accelerometer listener when the screen is off to reduce power consumption. Slight refactor of component constructors to facilitate testing. Add test. Bug: 23498050 Change-Id: If1971a39e8a418253f6611116c855e3c6cf81b93 --- .../com/android/incallui/ProximitySensorTest.java | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 tests/src/com/android/incallui/ProximitySensorTest.java (limited to 'tests/src/com') diff --git a/tests/src/com/android/incallui/ProximitySensorTest.java b/tests/src/com/android/incallui/ProximitySensorTest.java new file mode 100644 index 00000000..d7b2f64b --- /dev/null +++ b/tests/src/com/android/incallui/ProximitySensorTest.java @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.incallui; + +import static org.mockito.Mockito.anyBoolean; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + +import android.test.InstrumentationTestCase; + +import com.android.incallui.InCallPresenter.InCallState; + +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; + +public class ProximitySensorTest extends InstrumentationTestCase { + @Mock private AccelerometerListener mAccelerometerListener; + private MockCallListWrapper mCallList; + + @Override + protected void setUp() throws Exception { + super.setUp(); + System.setProperty("dexmaker.dexcache", + getInstrumentation().getTargetContext().getCacheDir().getPath()); + MockitoAnnotations.initMocks(this); + mCallList = new MockCallListWrapper(); + } + + public void testAccelerometerBehaviorOnDisplayChange() { + final ProximitySensor proximitySensor = + new ProximitySensor( + getInstrumentation().getContext(), + new AudioModeProvider(), + mAccelerometerListener); + verify(mAccelerometerListener, never()).enable(anyBoolean()); + proximitySensor.onStateChange(null, InCallState.OUTGOING, mCallList.getCallList()); + verify(mAccelerometerListener).enable(true); + verify(mAccelerometerListener, never()).enable(false); + + proximitySensor.onDisplayStateChanged(false); + verify(mAccelerometerListener).enable(true); + verify(mAccelerometerListener).enable(false); + + proximitySensor.onDisplayStateChanged(true); + verify(mAccelerometerListener, times(2)).enable(true); + verify(mAccelerometerListener).enable(false); + } +} -- cgit v1.2.3