diff options
author | 2016-11-22 11:55:21 +0000 | |
---|---|---|
committer | 2016-11-22 11:55:27 +0000 | |
commit | 3dfca02da4d1a324fded26ab4bb2251b6fe7a27f (patch) | |
tree | 58a465d1d7144ac4950096cfefae1563e3d255f3 | |
parent | d4f9d37424752a0774cdf9190dc12887c70daec2 (diff) | |
parent | b7146fec0d864fc8d107ff42c863f999d1129c84 (diff) |
Merge "Change EXTRA_TIME_PREF_24_HOUR_FORMAT from boolean to int"
-rw-r--r-- | core/java/android/app/ActivityThread.java | 15 | ||||
-rw-r--r-- | core/java/android/app/IApplicationThread.aidl | 4 | ||||
-rw-r--r-- | core/java/android/content/Intent.java | 12 | ||||
-rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 32 |
4 files changed, 47 insertions, 16 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 1aa13a9348a9..f052bf7fb717 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -1309,8 +1309,19 @@ public final class ActivityThread { } @Override - public final void updateTimePrefs(boolean is24Hour) { - DateFormat.set24HourTimePref(is24Hour); + public final void updateTimePrefs(int timeFormatPreference) { + final Boolean timeFormatPreferenceBool; + // For convenience we are using the Intent extra values. + if (timeFormatPreference == Intent.EXTRA_TIME_PREF_VALUE_USE_12_HOUR) { + timeFormatPreferenceBool = Boolean.FALSE; + } else if (timeFormatPreference == Intent.EXTRA_TIME_PREF_VALUE_USE_24_HOUR) { + timeFormatPreferenceBool = Boolean.TRUE; + } else { + // timeFormatPreference == Intent.EXTRA_TIME_PREF_VALUE_USE_LOCALE_DEFAULT + // (or unknown). + timeFormatPreferenceBool = null; + } + DateFormat.set24HourTimePref(timeFormatPreferenceBool); } @Override diff --git a/core/java/android/app/IApplicationThread.aidl b/core/java/android/app/IApplicationThread.aidl index 8c9837b6ed4d..6b962b92a66d 100644 --- a/core/java/android/app/IApplicationThread.aidl +++ b/core/java/android/app/IApplicationThread.aidl @@ -138,7 +138,7 @@ oneway interface IApplicationThread { void scheduleTranslucentConversionComplete(IBinder token, boolean timeout); void setProcessState(int state); void scheduleInstallProvider(in ProviderInfo provider); - void updateTimePrefs(boolean is24Hour); + void updateTimePrefs(int timeFormatPreference); void scheduleCancelVisibleBehind(IBinder token); void scheduleBackgroundVisibleBehindChanged(IBinder token, boolean enabled); void scheduleEnterAnimationComplete(IBinder token); @@ -152,4 +152,4 @@ oneway interface IApplicationThread { IVoiceInteractor voiceInteractor); void handleTrustStorageUpdate(); void attachAgent(String path); -}
\ No newline at end of file +} diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index c87de9ade034..50589fea233b 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -4186,13 +4186,21 @@ public class Intent implements Parcelable, Cloneable { = "android.intent.extra.SHUTDOWN_USERSPACE_ONLY"; /** - * Optional boolean extra for {@link #ACTION_TIME_CHANGED} that indicates the - * user has set their time format preferences to the 24 hour format. + * Optional int extra for {@link #ACTION_TIME_CHANGED} that indicates the + * user has set their time format preference. See {@link #EXTRA_TIME_PREF_VALUE_USE_12_HOUR}, + * {@link #EXTRA_TIME_PREF_VALUE_USE_24_HOUR} and + * {@link #EXTRA_TIME_PREF_VALUE_USE_LOCALE_DEFAULT}. The value must not be negative. * * @hide for internal use only. */ public static final String EXTRA_TIME_PREF_24_HOUR_FORMAT = "android.intent.extra.TIME_PREF_24_HOUR_FORMAT"; + /** @hide */ + public static final int EXTRA_TIME_PREF_VALUE_USE_12_HOUR = 0; + /** @hide */ + public static final int EXTRA_TIME_PREF_VALUE_USE_24_HOUR = 1; + /** @hide */ + public static final int EXTRA_TIME_PREF_VALUE_USE_LOCALE_DEFAULT = 2; /** {@hide} */ public static final String EXTRA_REASON = "android.intent.extra.REASON"; diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 8bd75067bb94..c8ed872932c7 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -1520,7 +1520,7 @@ public class ActivityManagerService extends IActivityManager.Stub static final int PERSIST_URI_GRANTS_MSG = 38; static final int REQUEST_ALL_PSS_MSG = 39; static final int START_PROFILES_MSG = 40; - static final int UPDATE_TIME = 41; + static final int UPDATE_TIME_PREFERENCE_MSG = 41; static final int SYSTEM_USER_START_MSG = 42; static final int SYSTEM_USER_CURRENT_MSG = 43; static final int ENTER_ANIMATION_COMPLETE_MSG = 44; @@ -2026,15 +2026,18 @@ public class ActivityManagerService extends IActivityManager.Stub } break; } - case UPDATE_TIME: { + case UPDATE_TIME_PREFERENCE_MSG: { + // The user's time format preference might have changed. + // For convenience we re-use the Intent extra values. synchronized (ActivityManagerService.this) { - for (int i = mLruProcesses.size() - 1 ; i >= 0 ; i--) { + for (int i = mLruProcesses.size() - 1; i >= 0; i--) { ProcessRecord r = mLruProcesses.get(i); if (r.thread != null) { try { - r.thread.updateTimePrefs(msg.arg1 == 0 ? false : true); + r.thread.updateTimePrefs(msg.arg1); } catch (RemoteException ex) { - Slog.w(TAG, "Failed to update preferences for: " + r.info.processName); + Slog.w(TAG, "Failed to update preferences for: " + + r.info.processName); } } } @@ -18169,11 +18172,20 @@ public class ActivityManagerService extends IActivityManager.Stub mHandler.sendEmptyMessage(UPDATE_TIME_ZONE); break; case Intent.ACTION_TIME_CHANGED: - // If the user set the time, let all running processes know. - final int is24Hour = - intent.getBooleanExtra(Intent.EXTRA_TIME_PREF_24_HOUR_FORMAT, false) ? 1 - : 0; - mHandler.sendMessage(mHandler.obtainMessage(UPDATE_TIME, is24Hour, 0)); + // EXTRA_TIME_PREF_24_HOUR_FORMAT is optional so we must distinguish between + // the tri-state value it may contain and "unknown". + // For convenience we re-use the Intent extra values. + final int NO_EXTRA_VALUE_FOUND = -1; + final int timeFormatPreferenceMsgValue = intent.getIntExtra( + Intent.EXTRA_TIME_PREF_24_HOUR_FORMAT, + NO_EXTRA_VALUE_FOUND /* defaultValue */); + // Only send a message if the time preference is available. + if (timeFormatPreferenceMsgValue != NO_EXTRA_VALUE_FOUND) { + Message updateTimePreferenceMsg = + mHandler.obtainMessage(UPDATE_TIME_PREFERENCE_MSG, + timeFormatPreferenceMsgValue, 0); + mHandler.sendMessage(updateTimePreferenceMsg); + } BatteryStatsImpl stats = mBatteryStatsService.getActiveStatistics(); synchronized (stats) { stats.noteCurrentTimeChangedLocked(); |