From c2607b4ececbefd18f223fa89d1b1aac56516009 Mon Sep 17 00:00:00 2001 From: Wale Ogunwale Date: Sat, 7 Feb 2015 16:16:59 -0800 Subject: Include stack override configurations in onConfigurationChanged() call. Important for activities that handle configuration changes. Change-Id: I4d1612026f293fbb99e1abc17e663f0215658ae6 --- core/java/android/app/ApplicationThreadNative.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'core/java/android/app/ApplicationThreadNative.java') diff --git a/core/java/android/app/ApplicationThreadNative.java b/core/java/android/app/ApplicationThreadNative.java index 349b66dd51c7..b6989abfc578 100644 --- a/core/java/android/app/ApplicationThreadNative.java +++ b/core/java/android/app/ApplicationThreadNative.java @@ -409,7 +409,11 @@ public abstract class ApplicationThreadNative extends Binder { data.enforceInterface(IApplicationThread.descriptor); IBinder b = data.readStrongBinder(); - scheduleActivityConfigurationChanged(b); + Configuration overrideConfig = null; + if (data.readInt() != 0) { + overrideConfig = Configuration.CREATOR.createFromParcel(data); + } + scheduleActivityConfigurationChanged(b, overrideConfig); return true; } @@ -1116,6 +1120,7 @@ class ApplicationThreadProxy implements IApplicationThread { data.recycle(); } + @Override public final void scheduleLowMemory() throws RemoteException { Parcel data = Parcel.obtain(); data.writeInterfaceToken(IApplicationThread.descriptor); @@ -1124,15 +1129,24 @@ class ApplicationThreadProxy implements IApplicationThread { data.recycle(); } - public final void scheduleActivityConfigurationChanged(IBinder token) throws RemoteException { + @Override + public final void scheduleActivityConfigurationChanged( + IBinder token, Configuration overrideConfig) throws RemoteException { Parcel data = Parcel.obtain(); data.writeInterfaceToken(IApplicationThread.descriptor); data.writeStrongBinder(token); + if (overrideConfig != null) { + data.writeInt(1); + overrideConfig.writeToParcel(data, 0); + } else { + data.writeInt(0); + } mRemote.transact(SCHEDULE_ACTIVITY_CONFIGURATION_CHANGED_TRANSACTION, data, null, IBinder.FLAG_ONEWAY); data.recycle(); } + @Override public void profilerControl(boolean start, ProfilerInfo profilerInfo, int profileType) throws RemoteException { Parcel data = Parcel.obtain(); -- cgit v1.2.3