Use correct flags on ACTION_TIME_CHANGED broadcast

When Settings changes the display format for 12/24 hour time, it fakes
an ACTION_TIME_CHANGED broadcast to provoke apps to update their display.
It needs to use the right flags on that broadcast to match the way the
OS sends it when the time actually changes.

Bug: 67881917
Test: calendar widget, Deskclock, QCT timeservice
Change-Id: I46ce261c36d9c7180f6b8eae806ef9fbf271fa53
This commit is contained in:
Christopher Tate
2017-10-17 14:39:24 -07:00
parent db60997f2a
commit 020ff8a390
2 changed files with 5 additions and 2 deletions

View File

@@ -103,6 +103,7 @@ public class TimeFormatPreferenceController extends AbstractPreferenceController
static void timeUpdated(Context context, Boolean is24Hour) {
Intent timeChanged = new Intent(Intent.ACTION_TIME_CHANGED);
timeChanged.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
int timeFormatPreference;
if (is24Hour == null) {
timeFormatPreference = Intent.EXTRA_TIME_PREF_VALUE_USE_LOCALE_DEFAULT;

View File

@@ -66,7 +66,8 @@ public class TimeChangeListenerMixinTest {
public void onResume_shouldRegisterIntentFilter() {
mMixin.onResume();
mContext.sendBroadcast(new Intent(Intent.ACTION_TIME_TICK));
mContext.sendBroadcast(new Intent(Intent.ACTION_TIME_CHANGED));
mContext.sendBroadcast(new Intent(Intent.ACTION_TIME_CHANGED)
.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND));
mContext.sendBroadcast(new Intent(Intent.ACTION_TIMEZONE_CHANGED));
verify(mCallback, times(3)).updateTimeAndDateDisplay(mContext);
@@ -77,7 +78,8 @@ public class TimeChangeListenerMixinTest {
mMixin.onResume();
mMixin.onPause();
mContext.sendBroadcast(new Intent(Intent.ACTION_TIME_TICK));
mContext.sendBroadcast(new Intent(Intent.ACTION_TIME_CHANGED));
mContext.sendBroadcast(new Intent(Intent.ACTION_TIME_CHANGED)
.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND));
mContext.sendBroadcast(new Intent(Intent.ACTION_TIMEZONE_CHANGED));
verify(mCallback, never()).updateTimeAndDateDisplay(mContext);