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

Commit 3c794261 authored by Neil Fuller's avatar Neil Fuller
Browse files

Switch settings to use TimeDetector

Switch settings to use TimeDetector when setting the system clock rather
than using AlarmManager directly.

Bug: 140712361
Test: treehugger
Test: manual
Test: make -j30 RunSettingsRoboTests ROBOTEST_FILTER=TimePreferenceControllerTest
Test: make -j30 RunSettingsRoboTests ROBOTEST_FILTER=DatePreferenceControllerTest
Change-Id: I671bf0e7e7364f64f1397d524c6277591eb4e22e
Merged-In: I671bf0e7e7364f64f1397d524c6277591eb4e22e
(cherry picked from commit 98616963)
parent 60bd8164
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -17,8 +17,9 @@
package com.android.settings.datetime;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.DatePickerDialog;
import android.app.timedetector.ManualTimeSuggestion;
import android.app.timedetector.TimeDetector;
import android.content.Context;
import android.text.TextUtils;
import android.text.format.DateFormat;
@@ -119,7 +120,10 @@ public class DatePreferenceController extends AbstractPreferenceController
        long when = Math.max(c.getTimeInMillis(), DatePreferenceHost.MIN_DATE);

        if (when / 1000 < Integer.MAX_VALUE) {
            ((AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE)).setTime(when);
            TimeDetector timeDetector = mContext.getSystemService(TimeDetector.class);
            ManualTimeSuggestion manualTimeSuggestion =
                    TimeDetector.createManualTimeSuggestion(when, "Settings: Set date");
            timeDetector.suggestManualTime(manualTimeSuggestion);
        }
    }
}
+6 −2
Original line number Diff line number Diff line
@@ -17,8 +17,9 @@
package com.android.settings.datetime;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.TimePickerDialog;
import android.app.timedetector.ManualTimeSuggestion;
import android.app.timedetector.TimeDetector;
import android.content.Context;
import android.text.TextUtils;
import android.text.format.DateFormat;
@@ -117,7 +118,10 @@ public class TimePreferenceController extends AbstractPreferenceController
        long when = Math.max(c.getTimeInMillis(), TimePreferenceHost.MIN_DATE);

        if (when / 1000 < Integer.MAX_VALUE) {
            ((AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE)).setTime(when);
            TimeDetector timeDetector = mContext.getSystemService(TimeDetector.class);
            ManualTimeSuggestion manualTimeSuggestion =
                    TimeDetector.createManualTimeSuggestion(when, "Settings: Set time");
            timeDetector.suggestManualTime(manualTimeSuggestion);
        }
    }
}
+3 −3
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.app.AlarmManager;
import android.app.timedetector.TimeDetector;
import android.content.Context;

import com.android.settingslib.RestrictedPreference;
@@ -40,7 +40,7 @@ public class DatePreferenceControllerTest {
    @Mock
    private Context mContext;
    @Mock
    private AlarmManager mAlarmManager;
    private TimeDetector mTimeDetector;
    @Mock
    private DatePreferenceController.DatePreferenceHost mHost;
    @Mock
@@ -52,7 +52,7 @@ public class DatePreferenceControllerTest {
    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        when(mContext.getSystemService(Context.ALARM_SERVICE)).thenReturn(mAlarmManager);
        when(mContext.getSystemService(TimeDetector.class)).thenReturn(mTimeDetector);
        mPreference = new RestrictedPreference(RuntimeEnvironment.application);
        mController = new DatePreferenceController(mContext, mHost, mAutoTimePreferenceController);
    }