Loading core/java/android/app/Activity.java +11 −3 Original line number Diff line number Diff line Loading @@ -7070,7 +7070,13 @@ public class Activity extends ContextThemeWrapper mActivityTransitionState.enterReady(this); } final void performRestart() { /** * Restart the activity. * @param start Indicates whether the activity should also be started after restart. * The option to not start immediately is needed in case a transaction with * multiple lifecycle transitions is in progress. */ final void performRestart(boolean start) { mCanEnterPictureInPicture = true; mFragments.noteStateNotSaved(); Loading Loading @@ -7108,12 +7114,14 @@ public class Activity extends ContextThemeWrapper "Activity " + mComponent.toShortString() + " did not call through to super.onRestart()"); } if (start) { performStart(); } } } final void performResume() { performRestart(); performRestart(true /* start */); mFragments.execPendingActions(); Loading core/java/android/app/ActivityThread.java +244 −251 File changed.Preview size limit exceeded, changes collapsed. Show changes core/java/android/app/ClientTransactionHandler.java +28 −18 Original line number Diff line number Diff line Loading @@ -16,15 +16,12 @@ package android.app; import android.app.servertransaction.ClientTransaction; import android.content.Intent; import android.content.pm.ActivityInfo; import android.app.servertransaction.PendingTransactionActions; import android.content.pm.ApplicationInfo; import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.os.Bundle; import android.os.IBinder; import android.os.PersistableBundle; import com.android.internal.app.IVoiceInteractor; import com.android.internal.content.ReferrerIntent; import java.util.List; Loading @@ -40,7 +37,7 @@ public abstract class ClientTransactionHandler { /** Prepare and schedule transaction for execution. */ void scheduleTransaction(ClientTransaction transaction) { transaction.prepare(this); transaction.preExecute(this); sendMessage(ActivityThread.H.EXECUTE_TRANSACTION, transaction); } Loading @@ -50,9 +47,6 @@ public abstract class ClientTransactionHandler { // Prepare phase related logic and handlers. Methods that inform about about pending changes or // do other internal bookkeeping. /** Get current lifecycle request number to maintain correct ordering. */ public abstract int getLifecycleSeq(); /** Set pending config in case it will be updated by other transaction item. */ public abstract void updatePendingConfiguration(Configuration config); Loading @@ -69,15 +63,21 @@ public abstract class ClientTransactionHandler { /** Pause the activity. */ public abstract void handlePauseActivity(IBinder token, boolean finished, boolean userLeaving, int configChanges, boolean dontReport, int seq); int configChanges, boolean dontReport, PendingTransactionActions pendingActions); /** Resume the activity. */ public abstract void handleResumeActivity(IBinder token, boolean clearHide, boolean isForward, boolean reallyResume, int seq, String reason); String reason); /** Stop the activity. */ public abstract void handleStopActivity(IBinder token, boolean show, int configChanges, int seq); PendingTransactionActions pendingActions); /** Report that activity was stopped to server. */ public abstract void reportStop(PendingTransactionActions pendingActions); /** Restart the activity after it was stopped. */ public abstract void performRestartActivity(IBinder token, boolean start); /** Deliver activity (override) configuration change. */ public abstract void handleActivityConfigurationChanged(IBinder activityToken, Loading @@ -102,13 +102,23 @@ public abstract class ClientTransactionHandler { public abstract void handleWindowVisibility(IBinder token, boolean show); /** Perform activity launch. */ public abstract void handleLaunchActivity(IBinder token, Intent intent, int ident, ActivityInfo info, Configuration overrideConfig, CompatibilityInfo compatInfo, String referrer, IVoiceInteractor voiceInteractor, Bundle state, PersistableBundle persistentState, List<ResultInfo> pendingResults, List<ReferrerIntent> pendingNewIntents, boolean notResumed, boolean isForward, ProfilerInfo profilerInfo); public abstract Activity handleLaunchActivity(ActivityThread.ActivityClientRecord r, PendingTransactionActions pendingActions); /** Perform activity start. */ public abstract void handleStartActivity(ActivityThread.ActivityClientRecord r, PendingTransactionActions pendingActions); /** Get package info. */ public abstract LoadedApk getPackageInfoNoCheck(ApplicationInfo ai, CompatibilityInfo compatInfo); /** Deliver app configuration change notification. */ public abstract void handleConfigurationChanged(Configuration config); /** * Get {@link android.app.ActivityThread.ActivityClientRecord} instance that corresponds to the * provided token. */ public abstract ActivityThread.ActivityClientRecord getActivityClient(IBinder token); } core/java/android/app/LocalActivityManager.java +8 −5 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.os.Binder; import android.os.Bundle; import android.util.Log; import android.view.Window; import com.android.internal.content.ReferrerIntent; import java.util.ArrayList; Loading Loading @@ -161,12 +162,12 @@ public class LocalActivityManager { case CREATED: if (desiredState == STARTED) { if (localLOGV) Log.v(TAG, r.id + ": restarting"); mActivityThread.performRestartActivity(r); mActivityThread.performRestartActivity(r, true /* start */); r.curState = STARTED; } if (desiredState == RESUMED) { if (localLOGV) Log.v(TAG, r.id + ": restarting and resuming"); mActivityThread.performRestartActivity(r); mActivityThread.performRestartActivity(r, true /* start */); mActivityThread.performResumeActivity(r, true, "moveToState-CREATED"); r.curState = RESUMED; } Loading Loading @@ -207,7 +208,7 @@ public class LocalActivityManager { private void performPause(LocalActivityRecord r, boolean finishing) { final boolean needState = r.instanceState == null; final Bundle instanceState = mActivityThread.performPauseActivity( r, finishing, needState, "performPause"); r, finishing, needState, "performPause", null /* pendingActions */); if (needState) { r.instanceState = instanceState; } Loading Loading @@ -361,7 +362,8 @@ public class LocalActivityManager { performPause(r, finish); } if (localLOGV) Log.v(TAG, r.id + ": destroying"); mActivityThread.performDestroyActivity(r, finish); mActivityThread.performDestroyActivity(r, finish, 0 /* configChanges */, false /* getNonConfigInstance */); r.activity = null; r.window = null; if (finish) { Loading Loading @@ -625,7 +627,8 @@ public class LocalActivityManager { for (int i=0; i<N; i++) { LocalActivityRecord r = mActivityArray.get(i); if (localLOGV) Log.v(TAG, r.id + ": destroying"); mActivityThread.performDestroyActivity(r, finishing); mActivityThread.performDestroyActivity(r, finishing, 0 /* configChanges */, false /* getNonConfigInstance */); } mActivities.clear(); mActivityArray.clear(); Loading core/java/android/app/servertransaction/ActivityConfigurationChangeItem.java +8 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.app.servertransaction; import static android.os.Trace.TRACE_TAG_ACTIVITY_MANAGER; import static android.view.Display.INVALID_DISPLAY; import android.app.ClientTransactionHandler; import android.content.res.Configuration; import android.os.IBinder; import android.os.Parcel; Loading @@ -37,7 +38,8 @@ public class ActivityConfigurationChangeItem extends ClientTransactionItem { } @Override public void execute(android.app.ClientTransactionHandler client, IBinder token) { public void execute(ClientTransactionHandler client, IBinder token, PendingTransactionActions pendingActions) { // TODO(lifecycler): detect if PIP or multi-window mode changed and report it here. Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "activityConfigChanged"); client.handleActivityConfigurationChanged(token, mConfiguration, INVALID_DISPLAY); Loading Loading @@ -85,4 +87,9 @@ public class ActivityConfigurationChangeItem extends ClientTransactionItem { public int hashCode() { return mConfiguration.hashCode(); } @Override public String toString() { return "ActivityConfigurationChange{config=" + mConfiguration + "}"; } } Loading
core/java/android/app/Activity.java +11 −3 Original line number Diff line number Diff line Loading @@ -7070,7 +7070,13 @@ public class Activity extends ContextThemeWrapper mActivityTransitionState.enterReady(this); } final void performRestart() { /** * Restart the activity. * @param start Indicates whether the activity should also be started after restart. * The option to not start immediately is needed in case a transaction with * multiple lifecycle transitions is in progress. */ final void performRestart(boolean start) { mCanEnterPictureInPicture = true; mFragments.noteStateNotSaved(); Loading Loading @@ -7108,12 +7114,14 @@ public class Activity extends ContextThemeWrapper "Activity " + mComponent.toShortString() + " did not call through to super.onRestart()"); } if (start) { performStart(); } } } final void performResume() { performRestart(); performRestart(true /* start */); mFragments.execPendingActions(); Loading
core/java/android/app/ActivityThread.java +244 −251 File changed.Preview size limit exceeded, changes collapsed. Show changes
core/java/android/app/ClientTransactionHandler.java +28 −18 Original line number Diff line number Diff line Loading @@ -16,15 +16,12 @@ package android.app; import android.app.servertransaction.ClientTransaction; import android.content.Intent; import android.content.pm.ActivityInfo; import android.app.servertransaction.PendingTransactionActions; import android.content.pm.ApplicationInfo; import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.os.Bundle; import android.os.IBinder; import android.os.PersistableBundle; import com.android.internal.app.IVoiceInteractor; import com.android.internal.content.ReferrerIntent; import java.util.List; Loading @@ -40,7 +37,7 @@ public abstract class ClientTransactionHandler { /** Prepare and schedule transaction for execution. */ void scheduleTransaction(ClientTransaction transaction) { transaction.prepare(this); transaction.preExecute(this); sendMessage(ActivityThread.H.EXECUTE_TRANSACTION, transaction); } Loading @@ -50,9 +47,6 @@ public abstract class ClientTransactionHandler { // Prepare phase related logic and handlers. Methods that inform about about pending changes or // do other internal bookkeeping. /** Get current lifecycle request number to maintain correct ordering. */ public abstract int getLifecycleSeq(); /** Set pending config in case it will be updated by other transaction item. */ public abstract void updatePendingConfiguration(Configuration config); Loading @@ -69,15 +63,21 @@ public abstract class ClientTransactionHandler { /** Pause the activity. */ public abstract void handlePauseActivity(IBinder token, boolean finished, boolean userLeaving, int configChanges, boolean dontReport, int seq); int configChanges, boolean dontReport, PendingTransactionActions pendingActions); /** Resume the activity. */ public abstract void handleResumeActivity(IBinder token, boolean clearHide, boolean isForward, boolean reallyResume, int seq, String reason); String reason); /** Stop the activity. */ public abstract void handleStopActivity(IBinder token, boolean show, int configChanges, int seq); PendingTransactionActions pendingActions); /** Report that activity was stopped to server. */ public abstract void reportStop(PendingTransactionActions pendingActions); /** Restart the activity after it was stopped. */ public abstract void performRestartActivity(IBinder token, boolean start); /** Deliver activity (override) configuration change. */ public abstract void handleActivityConfigurationChanged(IBinder activityToken, Loading @@ -102,13 +102,23 @@ public abstract class ClientTransactionHandler { public abstract void handleWindowVisibility(IBinder token, boolean show); /** Perform activity launch. */ public abstract void handleLaunchActivity(IBinder token, Intent intent, int ident, ActivityInfo info, Configuration overrideConfig, CompatibilityInfo compatInfo, String referrer, IVoiceInteractor voiceInteractor, Bundle state, PersistableBundle persistentState, List<ResultInfo> pendingResults, List<ReferrerIntent> pendingNewIntents, boolean notResumed, boolean isForward, ProfilerInfo profilerInfo); public abstract Activity handleLaunchActivity(ActivityThread.ActivityClientRecord r, PendingTransactionActions pendingActions); /** Perform activity start. */ public abstract void handleStartActivity(ActivityThread.ActivityClientRecord r, PendingTransactionActions pendingActions); /** Get package info. */ public abstract LoadedApk getPackageInfoNoCheck(ApplicationInfo ai, CompatibilityInfo compatInfo); /** Deliver app configuration change notification. */ public abstract void handleConfigurationChanged(Configuration config); /** * Get {@link android.app.ActivityThread.ActivityClientRecord} instance that corresponds to the * provided token. */ public abstract ActivityThread.ActivityClientRecord getActivityClient(IBinder token); }
core/java/android/app/LocalActivityManager.java +8 −5 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.os.Binder; import android.os.Bundle; import android.util.Log; import android.view.Window; import com.android.internal.content.ReferrerIntent; import java.util.ArrayList; Loading Loading @@ -161,12 +162,12 @@ public class LocalActivityManager { case CREATED: if (desiredState == STARTED) { if (localLOGV) Log.v(TAG, r.id + ": restarting"); mActivityThread.performRestartActivity(r); mActivityThread.performRestartActivity(r, true /* start */); r.curState = STARTED; } if (desiredState == RESUMED) { if (localLOGV) Log.v(TAG, r.id + ": restarting and resuming"); mActivityThread.performRestartActivity(r); mActivityThread.performRestartActivity(r, true /* start */); mActivityThread.performResumeActivity(r, true, "moveToState-CREATED"); r.curState = RESUMED; } Loading Loading @@ -207,7 +208,7 @@ public class LocalActivityManager { private void performPause(LocalActivityRecord r, boolean finishing) { final boolean needState = r.instanceState == null; final Bundle instanceState = mActivityThread.performPauseActivity( r, finishing, needState, "performPause"); r, finishing, needState, "performPause", null /* pendingActions */); if (needState) { r.instanceState = instanceState; } Loading Loading @@ -361,7 +362,8 @@ public class LocalActivityManager { performPause(r, finish); } if (localLOGV) Log.v(TAG, r.id + ": destroying"); mActivityThread.performDestroyActivity(r, finish); mActivityThread.performDestroyActivity(r, finish, 0 /* configChanges */, false /* getNonConfigInstance */); r.activity = null; r.window = null; if (finish) { Loading Loading @@ -625,7 +627,8 @@ public class LocalActivityManager { for (int i=0; i<N; i++) { LocalActivityRecord r = mActivityArray.get(i); if (localLOGV) Log.v(TAG, r.id + ": destroying"); mActivityThread.performDestroyActivity(r, finishing); mActivityThread.performDestroyActivity(r, finishing, 0 /* configChanges */, false /* getNonConfigInstance */); } mActivities.clear(); mActivityArray.clear(); Loading
core/java/android/app/servertransaction/ActivityConfigurationChangeItem.java +8 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.app.servertransaction; import static android.os.Trace.TRACE_TAG_ACTIVITY_MANAGER; import static android.view.Display.INVALID_DISPLAY; import android.app.ClientTransactionHandler; import android.content.res.Configuration; import android.os.IBinder; import android.os.Parcel; Loading @@ -37,7 +38,8 @@ public class ActivityConfigurationChangeItem extends ClientTransactionItem { } @Override public void execute(android.app.ClientTransactionHandler client, IBinder token) { public void execute(ClientTransactionHandler client, IBinder token, PendingTransactionActions pendingActions) { // TODO(lifecycler): detect if PIP or multi-window mode changed and report it here. Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "activityConfigChanged"); client.handleActivityConfigurationChanged(token, mConfiguration, INVALID_DISPLAY); Loading Loading @@ -85,4 +87,9 @@ public class ActivityConfigurationChangeItem extends ClientTransactionItem { public int hashCode() { return mConfiguration.hashCode(); } @Override public String toString() { return "ActivityConfigurationChange{config=" + mConfiguration + "}"; } }