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 9861696306)
This commit is contained in:
Neil Fuller
2019-11-23 11:42:39 +00:00
parent 60bd816476
commit 3c794261a5
3 changed files with 15 additions and 7 deletions

View File

@@ -17,8 +17,9 @@
package com.android.settings.datetime; package com.android.settings.datetime;
import android.app.Activity; import android.app.Activity;
import android.app.AlarmManager;
import android.app.DatePickerDialog; import android.app.DatePickerDialog;
import android.app.timedetector.ManualTimeSuggestion;
import android.app.timedetector.TimeDetector;
import android.content.Context; import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.format.DateFormat; import android.text.format.DateFormat;
@@ -119,7 +120,10 @@ public class DatePreferenceController extends AbstractPreferenceController
long when = Math.max(c.getTimeInMillis(), DatePreferenceHost.MIN_DATE); long when = Math.max(c.getTimeInMillis(), DatePreferenceHost.MIN_DATE);
if (when / 1000 < Integer.MAX_VALUE) { 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);
} }
} }
} }

View File

@@ -17,8 +17,9 @@
package com.android.settings.datetime; package com.android.settings.datetime;
import android.app.Activity; import android.app.Activity;
import android.app.AlarmManager;
import android.app.TimePickerDialog; import android.app.TimePickerDialog;
import android.app.timedetector.ManualTimeSuggestion;
import android.app.timedetector.TimeDetector;
import android.content.Context; import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.format.DateFormat; import android.text.format.DateFormat;
@@ -117,7 +118,10 @@ public class TimePreferenceController extends AbstractPreferenceController
long when = Math.max(c.getTimeInMillis(), TimePreferenceHost.MIN_DATE); long when = Math.max(c.getTimeInMillis(), TimePreferenceHost.MIN_DATE);
if (when / 1000 < Integer.MAX_VALUE) { 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);
} }
} }
} }

View File

@@ -21,7 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.app.AlarmManager; import android.app.timedetector.TimeDetector;
import android.content.Context; import android.content.Context;
import com.android.settingslib.RestrictedPreference; import com.android.settingslib.RestrictedPreference;
@@ -40,7 +40,7 @@ public class DatePreferenceControllerTest {
@Mock @Mock
private Context mContext; private Context mContext;
@Mock @Mock
private AlarmManager mAlarmManager; private TimeDetector mTimeDetector;
@Mock @Mock
private DatePreferenceController.DatePreferenceHost mHost; private DatePreferenceController.DatePreferenceHost mHost;
@Mock @Mock
@@ -52,7 +52,7 @@ public class DatePreferenceControllerTest {
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
when(mContext.getSystemService(Context.ALARM_SERVICE)).thenReturn(mAlarmManager); when(mContext.getSystemService(TimeDetector.class)).thenReturn(mTimeDetector);
mPreference = new RestrictedPreference(RuntimeEnvironment.application); mPreference = new RestrictedPreference(RuntimeEnvironment.application);
mController = new DatePreferenceController(mContext, mHost, mAutoTimePreferenceController); mController = new DatePreferenceController(mContext, mHost, mAutoTimePreferenceController);
} }