Loading core/java/android/app/ActivityThread.java +13 −0 Original line number Original line Diff line number Diff line Loading @@ -68,6 +68,7 @@ import android.os.SystemClock; import android.os.SystemProperties; import android.os.SystemProperties; import android.os.Trace; import android.os.Trace; import android.os.UserHandle; import android.os.UserHandle; import android.provider.Settings; import android.util.AndroidRuntimeException; import android.util.AndroidRuntimeException; import android.util.ArrayMap; import android.util.ArrayMap; import android.util.DisplayMetrics; import android.util.DisplayMetrics; Loading Loading @@ -106,6 +107,7 @@ import java.io.PrintWriter; import java.lang.ref.WeakReference; import java.lang.ref.WeakReference; import java.net.InetAddress; import java.net.InetAddress; import java.security.Security; import java.security.Security; import java.text.DateFormat; import java.util.ArrayList; import java.util.ArrayList; import java.util.List; import java.util.List; import java.util.Locale; import java.util.Locale; Loading Loading @@ -1095,6 +1097,11 @@ public final class ActivityThread { public void scheduleInstallProvider(ProviderInfo provider) { public void scheduleInstallProvider(ProviderInfo provider) { sendMessage(H.INSTALL_PROVIDER, provider); sendMessage(H.INSTALL_PROVIDER, provider); } } @Override public final void updateTimePrefs(boolean is24Hour) { DateFormat.set24HourTimePref(is24Hour); } } } private class H extends Handler { private class H extends Handler { Loading Loading @@ -1144,6 +1151,7 @@ public final class ActivityThread { public static final int REQUEST_ASSIST_CONTEXT_EXTRAS = 143; public static final int REQUEST_ASSIST_CONTEXT_EXTRAS = 143; public static final int TRANSLUCENT_CONVERSION_COMPLETE = 144; public static final int TRANSLUCENT_CONVERSION_COMPLETE = 144; public static final int INSTALL_PROVIDER = 145; public static final int INSTALL_PROVIDER = 145; String codeToString(int code) { String codeToString(int code) { if (DEBUG_MESSAGES) { if (DEBUG_MESSAGES) { switch (code) { switch (code) { Loading Loading @@ -4189,6 +4197,11 @@ public final class ActivityThread { Log.e(TAG, "Unable to setupGraphicsSupport due to missing cache directory"); Log.e(TAG, "Unable to setupGraphicsSupport due to missing cache directory"); } } } } final boolean is24Hr = "24".equals(mCoreSettings.getString(Settings.System.TIME_12_24)); DateFormat.set24HourTimePref(is24Hr); /** /** * For system applications on userdebug/eng builds, log stack * For system applications on userdebug/eng builds, log stack * traces of disk and network access to dropbox for analysis. * traces of disk and network access to dropbox for analysis. Loading core/java/android/app/ApplicationThreadNative.java +18 −0 Original line number Original line Diff line number Diff line Loading @@ -627,6 +627,15 @@ public abstract class ApplicationThreadNative extends Binder reply.writeNoException(); reply.writeNoException(); return true; return true; } } case UPDATE_TIME_PREFS_TRANSACTION: { data.enforceInterface(IApplicationThread.descriptor); byte is24Hour = data.readByte(); updateTimePrefs(is24Hour == (byte) 1); reply.writeNoException(); return true; } } } return super.onTransact(code, data, reply, flags); return super.onTransact(code, data, reply, flags); Loading Loading @@ -1266,4 +1275,13 @@ class ApplicationThreadProxy implements IApplicationThread { mRemote.transact(SCHEDULE_INSTALL_PROVIDER_TRANSACTION, data, null, IBinder.FLAG_ONEWAY); mRemote.transact(SCHEDULE_INSTALL_PROVIDER_TRANSACTION, data, null, IBinder.FLAG_ONEWAY); data.recycle(); data.recycle(); } } @Override public void updateTimePrefs(boolean is24Hour) throws RemoteException { Parcel data = Parcel.obtain(); data.writeInterfaceToken(IApplicationThread.descriptor); data.writeByte(is24Hour ? (byte) 1 : (byte) 0); mRemote.transact(UPDATE_TIME_PREFS_TRANSACTION, data, null, IBinder.FLAG_ONEWAY); data.recycle(); } } } core/java/android/app/IApplicationThread.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -138,6 +138,7 @@ public interface IApplicationThread extends IInterface { throws RemoteException; throws RemoteException; void setProcessState(int state) throws RemoteException; void setProcessState(int state) throws RemoteException; void scheduleInstallProvider(ProviderInfo provider) throws RemoteException; void scheduleInstallProvider(ProviderInfo provider) throws RemoteException; void updateTimePrefs(boolean is24Hour) throws RemoteException; String descriptor = "android.app.IApplicationThread"; String descriptor = "android.app.IApplicationThread"; Loading Loading @@ -191,4 +192,5 @@ public interface IApplicationThread extends IInterface { int SCHEDULE_TRANSLUCENT_CONVERSION_COMPLETE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+48; int SCHEDULE_TRANSLUCENT_CONVERSION_COMPLETE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+48; int SET_PROCESS_STATE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+49; int SET_PROCESS_STATE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+49; int SCHEDULE_INSTALL_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+50; int SCHEDULE_INSTALL_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+50; int UPDATE_TIME_PREFS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+51; } } core/java/android/content/Intent.java +9 −0 Original line number Original line Diff line number Diff line Loading @@ -3331,6 +3331,15 @@ public class Intent implements Parcelable, Cloneable { public static final String EXTRA_SHUTDOWN_USERSPACE_ONLY public static final String EXTRA_SHUTDOWN_USERSPACE_ONLY = "android.intent.extra.SHUTDOWN_USERSPACE_ONLY"; = "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. * * @hide for internal use only. */ public static final String EXTRA_TIME_PREF_24_HOUR_FORMAT = "android.intent.extra.TIME_PREF_24_HOUR_FORMAT"; // --------------------------------------------------------------------- // --------------------------------------------------------------------- // --------------------------------------------------------------------- // --------------------------------------------------------------------- // Intent flags (see mFlags variable). // Intent flags (see mFlags variable). Loading services/java/com/android/server/am/ActivityManagerService.java +28 −2 Original line number Original line Diff line number Diff line Loading @@ -1058,6 +1058,7 @@ public final class ActivityManagerService extends ActivityManagerNative static final int IMMERSIVE_MODE_LOCK_MSG = 37; static final int IMMERSIVE_MODE_LOCK_MSG = 37; static final int PERSIST_URI_GRANTS_MSG = 38; static final int PERSIST_URI_GRANTS_MSG = 38; static final int REQUEST_ALL_PSS_MSG = 39; static final int REQUEST_ALL_PSS_MSG = 39; static final int UPDATE_TIME = 40; static final int FIRST_ACTIVITY_STACK_MSG = 100; static final int FIRST_ACTIVITY_STACK_MSG = 100; static final int FIRST_BROADCAST_QUEUE_MSG = 200; static final int FIRST_BROADCAST_QUEUE_MSG = 200; Loading Loading @@ -1668,6 +1669,22 @@ public final class ActivityManagerService extends ActivityManagerNative requestPssAllProcsLocked(SystemClock.uptimeMillis(), true, false); requestPssAllProcsLocked(SystemClock.uptimeMillis(), true, false); break; break; } } case UPDATE_TIME: { synchronized (ActivityManagerService.this) { 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); } catch (RemoteException ex) { Slog.w(TAG, "Failed to update preferences for: " + r.info.processName); } } } } break; } } } } } }; }; Loading Loading @@ -13438,11 +13455,20 @@ public final class ActivityManagerService extends ActivityManagerNative * of all currently running processes. This message will get queued up before the broadcast * of all currently running processes. This message will get queued up before the broadcast * happens. * happens. */ */ if (intent.ACTION_TIMEZONE_CHANGED.equals(intent.getAction())) { if (Intent.ACTION_TIMEZONE_CHANGED.equals(intent.getAction())) { mHandler.sendEmptyMessage(UPDATE_TIME_ZONE); mHandler.sendEmptyMessage(UPDATE_TIME_ZONE); } } if (intent.ACTION_CLEAR_DNS_CACHE.equals(intent.getAction())) { /* * If the user set the time, let all running processes know. */ if (Intent.ACTION_TIME_CHANGED.equals(intent.getAction())) { final int is24Hour = intent.getBooleanExtra( Intent.EXTRA_TIME_PREF_24_HOUR_FORMAT, false) ? 1 : 0; mHandler.sendMessage(mHandler.obtainMessage(UPDATE_TIME, is24Hour, 0)); } if (Intent.ACTION_CLEAR_DNS_CACHE.equals(intent.getAction())) { mHandler.sendEmptyMessage(CLEAR_DNS_CACHE_MSG); mHandler.sendEmptyMessage(CLEAR_DNS_CACHE_MSG); } } Loading
core/java/android/app/ActivityThread.java +13 −0 Original line number Original line Diff line number Diff line Loading @@ -68,6 +68,7 @@ import android.os.SystemClock; import android.os.SystemProperties; import android.os.SystemProperties; import android.os.Trace; import android.os.Trace; import android.os.UserHandle; import android.os.UserHandle; import android.provider.Settings; import android.util.AndroidRuntimeException; import android.util.AndroidRuntimeException; import android.util.ArrayMap; import android.util.ArrayMap; import android.util.DisplayMetrics; import android.util.DisplayMetrics; Loading Loading @@ -106,6 +107,7 @@ import java.io.PrintWriter; import java.lang.ref.WeakReference; import java.lang.ref.WeakReference; import java.net.InetAddress; import java.net.InetAddress; import java.security.Security; import java.security.Security; import java.text.DateFormat; import java.util.ArrayList; import java.util.ArrayList; import java.util.List; import java.util.List; import java.util.Locale; import java.util.Locale; Loading Loading @@ -1095,6 +1097,11 @@ public final class ActivityThread { public void scheduleInstallProvider(ProviderInfo provider) { public void scheduleInstallProvider(ProviderInfo provider) { sendMessage(H.INSTALL_PROVIDER, provider); sendMessage(H.INSTALL_PROVIDER, provider); } } @Override public final void updateTimePrefs(boolean is24Hour) { DateFormat.set24HourTimePref(is24Hour); } } } private class H extends Handler { private class H extends Handler { Loading Loading @@ -1144,6 +1151,7 @@ public final class ActivityThread { public static final int REQUEST_ASSIST_CONTEXT_EXTRAS = 143; public static final int REQUEST_ASSIST_CONTEXT_EXTRAS = 143; public static final int TRANSLUCENT_CONVERSION_COMPLETE = 144; public static final int TRANSLUCENT_CONVERSION_COMPLETE = 144; public static final int INSTALL_PROVIDER = 145; public static final int INSTALL_PROVIDER = 145; String codeToString(int code) { String codeToString(int code) { if (DEBUG_MESSAGES) { if (DEBUG_MESSAGES) { switch (code) { switch (code) { Loading Loading @@ -4189,6 +4197,11 @@ public final class ActivityThread { Log.e(TAG, "Unable to setupGraphicsSupport due to missing cache directory"); Log.e(TAG, "Unable to setupGraphicsSupport due to missing cache directory"); } } } } final boolean is24Hr = "24".equals(mCoreSettings.getString(Settings.System.TIME_12_24)); DateFormat.set24HourTimePref(is24Hr); /** /** * For system applications on userdebug/eng builds, log stack * For system applications on userdebug/eng builds, log stack * traces of disk and network access to dropbox for analysis. * traces of disk and network access to dropbox for analysis. Loading
core/java/android/app/ApplicationThreadNative.java +18 −0 Original line number Original line Diff line number Diff line Loading @@ -627,6 +627,15 @@ public abstract class ApplicationThreadNative extends Binder reply.writeNoException(); reply.writeNoException(); return true; return true; } } case UPDATE_TIME_PREFS_TRANSACTION: { data.enforceInterface(IApplicationThread.descriptor); byte is24Hour = data.readByte(); updateTimePrefs(is24Hour == (byte) 1); reply.writeNoException(); return true; } } } return super.onTransact(code, data, reply, flags); return super.onTransact(code, data, reply, flags); Loading Loading @@ -1266,4 +1275,13 @@ class ApplicationThreadProxy implements IApplicationThread { mRemote.transact(SCHEDULE_INSTALL_PROVIDER_TRANSACTION, data, null, IBinder.FLAG_ONEWAY); mRemote.transact(SCHEDULE_INSTALL_PROVIDER_TRANSACTION, data, null, IBinder.FLAG_ONEWAY); data.recycle(); data.recycle(); } } @Override public void updateTimePrefs(boolean is24Hour) throws RemoteException { Parcel data = Parcel.obtain(); data.writeInterfaceToken(IApplicationThread.descriptor); data.writeByte(is24Hour ? (byte) 1 : (byte) 0); mRemote.transact(UPDATE_TIME_PREFS_TRANSACTION, data, null, IBinder.FLAG_ONEWAY); data.recycle(); } } }
core/java/android/app/IApplicationThread.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -138,6 +138,7 @@ public interface IApplicationThread extends IInterface { throws RemoteException; throws RemoteException; void setProcessState(int state) throws RemoteException; void setProcessState(int state) throws RemoteException; void scheduleInstallProvider(ProviderInfo provider) throws RemoteException; void scheduleInstallProvider(ProviderInfo provider) throws RemoteException; void updateTimePrefs(boolean is24Hour) throws RemoteException; String descriptor = "android.app.IApplicationThread"; String descriptor = "android.app.IApplicationThread"; Loading Loading @@ -191,4 +192,5 @@ public interface IApplicationThread extends IInterface { int SCHEDULE_TRANSLUCENT_CONVERSION_COMPLETE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+48; int SCHEDULE_TRANSLUCENT_CONVERSION_COMPLETE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+48; int SET_PROCESS_STATE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+49; int SET_PROCESS_STATE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+49; int SCHEDULE_INSTALL_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+50; int SCHEDULE_INSTALL_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+50; int UPDATE_TIME_PREFS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+51; } }
core/java/android/content/Intent.java +9 −0 Original line number Original line Diff line number Diff line Loading @@ -3331,6 +3331,15 @@ public class Intent implements Parcelable, Cloneable { public static final String EXTRA_SHUTDOWN_USERSPACE_ONLY public static final String EXTRA_SHUTDOWN_USERSPACE_ONLY = "android.intent.extra.SHUTDOWN_USERSPACE_ONLY"; = "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. * * @hide for internal use only. */ public static final String EXTRA_TIME_PREF_24_HOUR_FORMAT = "android.intent.extra.TIME_PREF_24_HOUR_FORMAT"; // --------------------------------------------------------------------- // --------------------------------------------------------------------- // --------------------------------------------------------------------- // --------------------------------------------------------------------- // Intent flags (see mFlags variable). // Intent flags (see mFlags variable). Loading
services/java/com/android/server/am/ActivityManagerService.java +28 −2 Original line number Original line Diff line number Diff line Loading @@ -1058,6 +1058,7 @@ public final class ActivityManagerService extends ActivityManagerNative static final int IMMERSIVE_MODE_LOCK_MSG = 37; static final int IMMERSIVE_MODE_LOCK_MSG = 37; static final int PERSIST_URI_GRANTS_MSG = 38; static final int PERSIST_URI_GRANTS_MSG = 38; static final int REQUEST_ALL_PSS_MSG = 39; static final int REQUEST_ALL_PSS_MSG = 39; static final int UPDATE_TIME = 40; static final int FIRST_ACTIVITY_STACK_MSG = 100; static final int FIRST_ACTIVITY_STACK_MSG = 100; static final int FIRST_BROADCAST_QUEUE_MSG = 200; static final int FIRST_BROADCAST_QUEUE_MSG = 200; Loading Loading @@ -1668,6 +1669,22 @@ public final class ActivityManagerService extends ActivityManagerNative requestPssAllProcsLocked(SystemClock.uptimeMillis(), true, false); requestPssAllProcsLocked(SystemClock.uptimeMillis(), true, false); break; break; } } case UPDATE_TIME: { synchronized (ActivityManagerService.this) { 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); } catch (RemoteException ex) { Slog.w(TAG, "Failed to update preferences for: " + r.info.processName); } } } } break; } } } } } }; }; Loading Loading @@ -13438,11 +13455,20 @@ public final class ActivityManagerService extends ActivityManagerNative * of all currently running processes. This message will get queued up before the broadcast * of all currently running processes. This message will get queued up before the broadcast * happens. * happens. */ */ if (intent.ACTION_TIMEZONE_CHANGED.equals(intent.getAction())) { if (Intent.ACTION_TIMEZONE_CHANGED.equals(intent.getAction())) { mHandler.sendEmptyMessage(UPDATE_TIME_ZONE); mHandler.sendEmptyMessage(UPDATE_TIME_ZONE); } } if (intent.ACTION_CLEAR_DNS_CACHE.equals(intent.getAction())) { /* * If the user set the time, let all running processes know. */ if (Intent.ACTION_TIME_CHANGED.equals(intent.getAction())) { final int is24Hour = intent.getBooleanExtra( Intent.EXTRA_TIME_PREF_24_HOUR_FORMAT, false) ? 1 : 0; mHandler.sendMessage(mHandler.obtainMessage(UPDATE_TIME, is24Hour, 0)); } if (Intent.ACTION_CLEAR_DNS_CACHE.equals(intent.getAction())) { mHandler.sendEmptyMessage(CLEAR_DNS_CACHE_MSG); mHandler.sendEmptyMessage(CLEAR_DNS_CACHE_MSG); } }