From 9861696306fb9a4e33d644adf4a989abea91b4fb Mon Sep 17 00:00:00 2001 From: Neil Fuller Date: Sat, 23 Nov 2019 11:42:39 +0000 Subject: [PATCH] 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 --- .../settings/datetime/DatePreferenceController.java | 8 ++++++-- .../settings/datetime/TimePreferenceController.java | 8 ++++++-- .../settings/datetime/DatePreferenceControllerTest.java | 6 +++--- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/com/android/settings/datetime/DatePreferenceController.java b/src/com/android/settings/datetime/DatePreferenceController.java index 1704bd6febd..ace24f6c7e9 100644 --- a/src/com/android/settings/datetime/DatePreferenceController.java +++ b/src/com/android/settings/datetime/DatePreferenceController.java @@ -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); } } } diff --git a/src/com/android/settings/datetime/TimePreferenceController.java b/src/com/android/settings/datetime/TimePreferenceController.java index 3ca26bc8a74..582234efaeb 100644 --- a/src/com/android/settings/datetime/TimePreferenceController.java +++ b/src/com/android/settings/datetime/TimePreferenceController.java @@ -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); } } } diff --git a/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java index e0770aa8c57..f4d46664480 100644 --- a/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java @@ -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); }