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

Commit 99408951 authored by Kweku Adams's avatar Kweku Adams Committed by Android Build Coastguard Worker
Browse files

Use an exact alarm for location timeout.

Use an exact alarm for the location timeout to avoid keeping the GPS
active for too long.

Bug: 194385761
Test: atest DeviceIdleTest
Test: atest FrameworksMockingServicesTests:DeviceIdleControllerTest
Change-Id: I52b7ec6d993705ee605e3780a29a484c0d48e633
(cherry picked from commit a7cb583f)
parent 4561da22
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -3941,6 +3941,10 @@ public class DeviceIdleController extends SystemService
        if (idleUntil) {
            mAlarmManager.setIdleUntil(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                    mNextAlarmTime, "DeviceIdleController.deep", mDeepAlarmListener, mHandler);
        } else if (mState == STATE_LOCATING) {
            // Use setExact so we don't keep the GPS active for too long.
            mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                    mNextAlarmTime, "DeviceIdleController.deep", mDeepAlarmListener, mHandler);
        } else {
            if (mConstants.USE_WINDOW_ALARMS) {
                mAlarmManager.setWindow(AlarmManager.ELAPSED_REALTIME_WAKEUP,
+1 −0
Original line number Diff line number Diff line
@@ -323,6 +323,7 @@ public class DeviceIdleControllerTest {
        when(mPowerManager.newWakeLock(anyInt(), anyString())).thenReturn(mWakeLock);
        doNothing().when(mWakeLock).acquire();
        doNothing().when(mAlarmManager).set(anyInt(), anyLong(), anyString(), any(), any());
        doNothing().when(mAlarmManager).setExact(anyInt(), anyLong(), anyString(), any(), any());
        doNothing().when(mAlarmManager)
                .setWindow(anyInt(), anyLong(), anyLong(), anyString(), any(), any());
        doReturn(mock(Sensor.class)).when(mSensorManager)