Merge changes Ib458941e,I7a49fa4e,Icc9ec34f into main
* changes:
Remove ActivityConfigurationChangeItem pool (8/n).
Remove PauseActivityItem object pooling (7/n).
Remove Start/StopActivityItem obj pooling (6/n).
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 8696e0f..75f2c4b 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -4614,7 +4614,7 @@
private void schedulePauseWithUserLeavingHint(ActivityClientRecord r) {
final ClientTransaction transaction = new ClientTransaction(mAppThread);
- final PauseActivityItem pauseActivityItem = PauseActivityItem.obtain(r.token,
+ final PauseActivityItem pauseActivityItem = new PauseActivityItem(r.token,
r.activity.isFinishing(), /* userLeaving */ true,
/* dontReport */ false, /* autoEnteringPip */ false);
transaction.addTransactionItem(pauseActivityItem);
diff --git a/core/java/android/app/servertransaction/ActivityConfigurationChangeItem.java b/core/java/android/app/servertransaction/ActivityConfigurationChangeItem.java
index 11d7ff8..2b52681 100644
--- a/core/java/android/app/servertransaction/ActivityConfigurationChangeItem.java
+++ b/core/java/android/app/servertransaction/ActivityConfigurationChangeItem.java
@@ -19,6 +19,8 @@
import static android.os.Trace.TRACE_TAG_ACTIVITY_MANAGER;
import static android.view.Display.INVALID_DISPLAY;
+import static java.util.Objects.requireNonNull;
+
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.ActivityThread.ActivityClientRecord;
@@ -34,12 +36,23 @@
/**
* Activity configuration changed callback.
+ *
* @hide
*/
public class ActivityConfigurationChangeItem extends ActivityTransactionItem {
- private Configuration mConfiguration;
- private ActivityWindowInfo mActivityWindowInfo;
+ @NonNull
+ private final Configuration mConfiguration;
+
+ @NonNull
+ private final ActivityWindowInfo mActivityWindowInfo;
+
+ public ActivityConfigurationChangeItem(@NonNull IBinder activityToken,
+ @NonNull Configuration config, @NonNull ActivityWindowInfo activityWindowInfo) {
+ super(activityToken);
+ mConfiguration = new Configuration(config);
+ mActivityWindowInfo = new ActivityWindowInfo(activityWindowInfo);
+ }
@Override
public void preExecute(@NonNull ClientTransactionHandler client) {
@@ -59,38 +72,9 @@
Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
}
- // ObjectPoolItem implementation
-
- private ActivityConfigurationChangeItem() {}
-
- /** Obtain an instance initialized with provided params. */
- @NonNull
- public static ActivityConfigurationChangeItem obtain(@NonNull IBinder activityToken,
- @NonNull Configuration config, @NonNull ActivityWindowInfo activityWindowInfo) {
- ActivityConfigurationChangeItem instance =
- ObjectPool.obtain(ActivityConfigurationChangeItem.class);
- if (instance == null) {
- instance = new ActivityConfigurationChangeItem();
- }
- instance.setActivityToken(activityToken);
- instance.mConfiguration = new Configuration(config);
- instance.mActivityWindowInfo = new ActivityWindowInfo(activityWindowInfo);
-
- return instance;
- }
-
- @Override
- public void recycle() {
- super.recycle();
- mConfiguration = null;
- mActivityWindowInfo = null;
- ObjectPool.recycle(this);
- }
-
-
// Parcelable implementation
- /** Write to Parcel. */
+ /** Writes to Parcel. */
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
super.writeToParcel(dest, flags);
@@ -98,11 +82,11 @@
dest.writeTypedObject(mActivityWindowInfo, flags);
}
- /** Read from Parcel. */
+ /** Reads from Parcel. */
private ActivityConfigurationChangeItem(@NonNull Parcel in) {
super(in);
- mConfiguration = in.readTypedObject(Configuration.CREATOR);
- mActivityWindowInfo = in.readTypedObject(ActivityWindowInfo.CREATOR);
+ mConfiguration = requireNonNull(in.readTypedObject(Configuration.CREATOR));
+ mActivityWindowInfo = requireNonNull(in.readTypedObject(ActivityWindowInfo.CREATOR));
}
public static final @NonNull Creator<ActivityConfigurationChangeItem> CREATOR =
diff --git a/core/java/android/app/servertransaction/ActivityLifecycleItem.java b/core/java/android/app/servertransaction/ActivityLifecycleItem.java
index d07ad46..778f134 100644
--- a/core/java/android/app/servertransaction/ActivityLifecycleItem.java
+++ b/core/java/android/app/servertransaction/ActivityLifecycleItem.java
@@ -58,12 +58,6 @@
super(activityToken);
}
- // TODO(b/311089192): Remove this method once no subclasses obtain from the object pool.
- @Deprecated
- ActivityLifecycleItem() {
- super();
- }
-
// Parcelable implementation
/** Reads from Parcel. */
diff --git a/core/java/android/app/servertransaction/PauseActivityItem.java b/core/java/android/app/servertransaction/PauseActivityItem.java
index d230284..09fc51b 100644
--- a/core/java/android/app/servertransaction/PauseActivityItem.java
+++ b/core/java/android/app/servertransaction/PauseActivityItem.java
@@ -29,16 +29,29 @@
/**
* Request to move an activity to paused state.
+ *
* @hide
*/
public class PauseActivityItem extends ActivityLifecycleItem {
- private static final String TAG = "PauseActivityItem";
+ private final boolean mFinished;
+ private final boolean mUserLeaving;
+ private final boolean mDontReport;
+ private final boolean mAutoEnteringPip;
- private boolean mFinished;
- private boolean mUserLeaving;
- private boolean mDontReport;
- private boolean mAutoEnteringPip;
+ public PauseActivityItem(@NonNull IBinder activityToken) {
+ this(activityToken, false /* finished */, false /* userLeaving */,
+ true /* dontReport */, false /* autoEnteringPip*/);
+ }
+
+ public PauseActivityItem(@NonNull IBinder activityToken, boolean finished,
+ boolean userLeaving, boolean dontReport, boolean autoEnteringPip) {
+ super(activityToken);
+ mFinished = finished;
+ mUserLeaving = userLeaving;
+ mDontReport = dontReport;
+ mAutoEnteringPip = autoEnteringPip;
+ }
@Override
public void execute(@NonNull ClientTransactionHandler client, @NonNull ActivityClientRecord r,
@@ -64,47 +77,9 @@
ActivityClient.getInstance().activityPaused(getActivityToken());
}
- // ObjectPoolItem implementation
-
- private PauseActivityItem() {}
-
- /** Obtain an instance initialized with provided params. */
- @NonNull
- public static PauseActivityItem obtain(@NonNull IBinder activityToken, boolean finished,
- boolean userLeaving, boolean dontReport, boolean autoEnteringPip) {
- PauseActivityItem instance = ObjectPool.obtain(PauseActivityItem.class);
- if (instance == null) {
- instance = new PauseActivityItem();
- }
- instance.setActivityToken(activityToken);
- instance.mFinished = finished;
- instance.mUserLeaving = userLeaving;
- instance.mDontReport = dontReport;
- instance.mAutoEnteringPip = autoEnteringPip;
-
- return instance;
- }
-
- /** Obtain an instance initialized with default params. */
- @NonNull
- public static PauseActivityItem obtain(@NonNull IBinder activityToken) {
- return obtain(activityToken, false /* finished */, false /* userLeaving */,
- true /* dontReport */, false /* autoEnteringPip*/);
- }
-
- @Override
- public void recycle() {
- super.recycle();
- mFinished = false;
- mUserLeaving = false;
- mDontReport = false;
- mAutoEnteringPip = false;
- ObjectPool.recycle(this);
- }
-
// Parcelable implementation
- /** Write to Parcel. */
+ /** Writes to Parcel. */
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
super.writeToParcel(dest, flags);
@@ -114,7 +89,7 @@
dest.writeBoolean(mAutoEnteringPip);
}
- /** Read from Parcel. */
+ /** Reads from Parcel. */
private PauseActivityItem(@NonNull Parcel in) {
super(in);
mFinished = in.readBoolean();
diff --git a/core/java/android/app/servertransaction/StartActivityItem.java b/core/java/android/app/servertransaction/StartActivityItem.java
index a0f93ce..6bae92b 100644
--- a/core/java/android/app/servertransaction/StartActivityItem.java
+++ b/core/java/android/app/servertransaction/StartActivityItem.java
@@ -29,13 +29,19 @@
/**
* Request to move an activity to started and visible state.
+ *
* @hide
*/
public class StartActivityItem extends ActivityLifecycleItem {
- private static final String TAG = "StartActivityItem";
+ @Nullable
+ private final SceneTransitionInfo mSceneTransitionInfo;
- private SceneTransitionInfo mSceneTransitionInfo;
+ public StartActivityItem(@NonNull IBinder activityToken,
+ @Nullable SceneTransitionInfo sceneTransitionInfo) {
+ super(activityToken);
+ mSceneTransitionInfo = sceneTransitionInfo;
+ }
@Override
public void execute(@NonNull ClientTransactionHandler client, @NonNull ActivityClientRecord r,
@@ -50,41 +56,16 @@
return ON_START;
}
- // ObjectPoolItem implementation
-
- private StartActivityItem() {}
-
- /** Obtain an instance initialized with provided params. */
- @NonNull
- public static StartActivityItem obtain(@NonNull IBinder activityToken,
- @Nullable SceneTransitionInfo sceneTransitionInfo) {
- StartActivityItem instance = ObjectPool.obtain(StartActivityItem.class);
- if (instance == null) {
- instance = new StartActivityItem();
- }
- instance.setActivityToken(activityToken);
- instance.mSceneTransitionInfo = sceneTransitionInfo;
-
- return instance;
- }
-
- @Override
- public void recycle() {
- super.recycle();
- mSceneTransitionInfo = null;
- ObjectPool.recycle(this);
- }
-
// Parcelable implementation
- /** Write to Parcel. */
+ /** Writes to Parcel. */
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
super.writeToParcel(dest, flags);
dest.writeTypedObject(mSceneTransitionInfo, flags);
}
- /** Read from Parcel. */
+ /** Reads from Parcel. */
private StartActivityItem(@NonNull Parcel in) {
super(in);
mSceneTransitionInfo = in.readTypedObject(SceneTransitionInfo.CREATOR);
diff --git a/core/java/android/app/servertransaction/StopActivityItem.java b/core/java/android/app/servertransaction/StopActivityItem.java
index def7b3f..012b82e 100644
--- a/core/java/android/app/servertransaction/StopActivityItem.java
+++ b/core/java/android/app/servertransaction/StopActivityItem.java
@@ -27,11 +27,14 @@
/**
* Request to move an activity to stopped state.
+ *
* @hide
*/
public class StopActivityItem extends ActivityLifecycleItem {
- private static final String TAG = "StopActivityItem";
+ public StopActivityItem(@NonNull IBinder activityToken) {
+ super(activityToken);
+ }
@Override
public void execute(@NonNull ClientTransactionHandler client, @NonNull ActivityClientRecord r,
@@ -53,34 +56,9 @@
return ON_STOP;
}
- // ObjectPoolItem implementation
-
- private StopActivityItem() {}
-
- /**
- * Obtain an instance initialized with provided params.
- * @param activityToken the activity that stops.
- */
- @NonNull
- public static StopActivityItem obtain(@NonNull IBinder activityToken) {
- StopActivityItem instance = ObjectPool.obtain(StopActivityItem.class);
- if (instance == null) {
- instance = new StopActivityItem();
- }
- instance.setActivityToken(activityToken);
-
- return instance;
- }
-
- @Override
- public void recycle() {
- super.recycle();
- ObjectPool.recycle(this);
- }
-
// Parcelable implementation
- /** Read from Parcel. */
+ /** Reads from Parcel. */
private StopActivityItem(@NonNull Parcel in) {
super(in);
}
diff --git a/core/java/android/app/servertransaction/TransactionExecutorHelper.java b/core/java/android/app/servertransaction/TransactionExecutorHelper.java
index 8ba9076..c44ada7 100644
--- a/core/java/android/app/servertransaction/TransactionExecutorHelper.java
+++ b/core/java/android/app/servertransaction/TransactionExecutorHelper.java
@@ -198,10 +198,10 @@
// Fall through to return the PAUSE item to ensure the activity is properly
// resumed while relaunching.
case ON_PAUSE:
- lifecycleItem = PauseActivityItem.obtain(r.token);
+ lifecycleItem = new PauseActivityItem(r.token);
break;
case ON_STOP:
- lifecycleItem = StopActivityItem.obtain(r.token);
+ lifecycleItem = new StopActivityItem(r.token);
break;
default:
lifecycleItem = new ResumeActivityItem(r.token, false /* isForward */,
diff --git a/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java b/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java
index 4f5107a..c51c3a5 100644
--- a/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java
+++ b/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java
@@ -271,7 +271,7 @@
newConfig.seq++;
newConfig.smallestScreenWidthDp++;
transaction = newTransaction(activityThread);
- transaction.addTransactionItem(ActivityConfigurationChangeItem.obtain(
+ transaction.addTransactionItem(new ActivityConfigurationChangeItem(
activity.getActivityToken(), newConfig, new ActivityWindowInfo()));
appThread.scheduleTransaction(transaction);
InstrumentationRegistry.getInstrumentation().waitForIdleSync();
@@ -479,11 +479,11 @@
appThread.scheduleTransaction(transaction);
transaction = newTransaction(activityThread);
- transaction.addTransactionItem(ActivityConfigurationChangeItem.obtain(
+ transaction.addTransactionItem(new ActivityConfigurationChangeItem(
activity.getActivityToken(), activityConfigLandscape, new ActivityWindowInfo()));
transaction.addTransactionItem(ConfigurationChangeItem.obtain(
processConfigPortrait, DEVICE_ID_INVALID));
- transaction.addTransactionItem(ActivityConfigurationChangeItem.obtain(
+ transaction.addTransactionItem(new ActivityConfigurationChangeItem(
activity.getActivityToken(), activityConfigPortrait, new ActivityWindowInfo()));
appThread.scheduleTransaction(transaction);
@@ -881,7 +881,7 @@
final ActivityWindowInfo activityWindowInfo = new ActivityWindowInfo();
activityWindowInfo.set(true /* isEmbedded */, taskBounds, taskFragmentBounds);
final ActivityConfigurationChangeItem activityConfigurationChangeItem =
- ActivityConfigurationChangeItem.obtain(
+ new ActivityConfigurationChangeItem(
activity.getActivityToken(), config, activityWindowInfo);
final ClientTransaction transaction = newTransaction(activity);
transaction.addTransactionItem(activityConfigurationChangeItem);
@@ -898,7 +898,7 @@
new ActivityWindowInfo(activityWindowInfo);
config.seq++;
final ActivityConfigurationChangeItem activityConfigurationChangeItem2 =
- ActivityConfigurationChangeItem.obtain(
+ new ActivityConfigurationChangeItem(
activity.getActivityToken(), config, activityWindowInfo2);
final ClientTransaction transaction2 = newTransaction(activity);
transaction2.addTransactionItem(activityConfigurationChangeItem2);
@@ -1007,8 +1007,7 @@
@NonNull
private static ClientTransaction newStopTransaction(@NonNull Activity activity) {
- final StopActivityItem stopStateRequest = StopActivityItem.obtain(
- activity.getActivityToken());
+ final StopActivityItem stopStateRequest = new StopActivityItem(activity.getActivityToken());
final ClientTransaction transaction = newTransaction(activity);
transaction.addTransactionItem(stopStateRequest);
@@ -1019,7 +1018,7 @@
@NonNull
private static ClientTransaction newActivityConfigTransaction(@NonNull Activity activity,
@NonNull Configuration config) {
- final ActivityConfigurationChangeItem item = ActivityConfigurationChangeItem.obtain(
+ final ActivityConfigurationChangeItem item = new ActivityConfigurationChangeItem(
activity.getActivityToken(), config, new ActivityWindowInfo());
final ClientTransaction transaction = newTransaction(activity);
diff --git a/core/tests/coretests/src/android/app/servertransaction/ObjectPoolTests.java b/core/tests/coretests/src/android/app/servertransaction/ObjectPoolTests.java
index 1817b87..d389b78d 100644
--- a/core/tests/coretests/src/android/app/servertransaction/ObjectPoolTests.java
+++ b/core/tests/coretests/src/android/app/servertransaction/ObjectPoolTests.java
@@ -24,7 +24,6 @@
import static org.junit.Assert.assertNotSame;
import android.annotation.NonNull;
-import android.app.ActivityOptions;
import android.app.servertransaction.TestUtils.LaunchActivityItemBuilder;
import android.content.Intent;
import android.content.pm.ActivityInfo;
@@ -74,12 +73,6 @@
// 3. Check if the same object is obtained from pool after recycling.
@Test
- public void testRecycleActivityConfigurationChangeItem() {
- testRecycle(() -> ActivityConfigurationChangeItem.obtain(mActivityToken, config(),
- new ActivityWindowInfo()));
- }
-
- @Test
public void testRecycleActivityResultItem() {
testRecycle(() -> ActivityResultItem.obtain(mActivityToken, resultInfoList()));
}
@@ -155,22 +148,6 @@
testRecycle(() -> NewIntentItem.obtain(mActivityToken, referrerIntentList(), false));
}
- @Test
- public void testRecyclePauseActivityItemItem() {
- testRecycle(() -> PauseActivityItem.obtain(mActivityToken, true, true, true, true));
- }
-
- @Test
- public void testRecycleStartActivityItem() {
- testRecycle(() -> StartActivityItem.obtain(mActivityToken,
- new ActivityOptions.SceneTransitionInfo()));
- }
-
- @Test
- public void testRecycleStopItem() {
- testRecycle(() -> StopActivityItem.obtain(mActivityToken));
- }
-
private void testRecycle(@NonNull Supplier<? extends ObjectPoolItem> obtain) {
// Reuse the same object after recycle.
final ObjectPoolItem item = obtain.get();
diff --git a/core/tests/coretests/src/android/app/servertransaction/TransactionParcelTests.java b/core/tests/coretests/src/android/app/servertransaction/TransactionParcelTests.java
index dde6ab1..1e434bd 100644
--- a/core/tests/coretests/src/android/app/servertransaction/TransactionParcelTests.java
+++ b/core/tests/coretests/src/android/app/servertransaction/TransactionParcelTests.java
@@ -90,7 +90,7 @@
final ActivityWindowInfo activityWindowInfo = new ActivityWindowInfo();
activityWindowInfo.set(true /* isEmbedded */, new Rect(0, 0, 500, 1000),
new Rect(0, 0, 500, 500));
- ActivityConfigurationChangeItem item = ActivityConfigurationChangeItem.obtain(
+ final ActivityConfigurationChangeItem item = new ActivityConfigurationChangeItem(
mActivityToken, config(), activityWindowInfo);
writeAndPrepareForReading(item);
@@ -235,12 +235,12 @@
@Test
public void testPause() {
// Write to parcel
- PauseActivityItem item = PauseActivityItem.obtain(mActivityToken, true /* finished */,
+ final PauseActivityItem item = new PauseActivityItem(mActivityToken, true /* finished */,
true /* userLeaving */, true /* dontReport */, true /* autoEnteringPip */);
writeAndPrepareForReading(item);
// Read from parcel and assert
- PauseActivityItem result = PauseActivityItem.CREATOR.createFromParcel(mParcel);
+ final PauseActivityItem result = PauseActivityItem.CREATOR.createFromParcel(mParcel);
assertEquals(item.hashCode(), result.hashCode());
assertEquals(item, result);
@@ -263,11 +263,11 @@
@Test
public void testStop() {
// Write to parcel
- StopActivityItem item = StopActivityItem.obtain(mActivityToken);
+ final StopActivityItem item = new StopActivityItem(mActivityToken);
writeAndPrepareForReading(item);
// Read from parcel and assert
- StopActivityItem result = StopActivityItem.CREATOR.createFromParcel(mParcel);
+ final StopActivityItem result = StopActivityItem.CREATOR.createFromParcel(mParcel);
assertEquals(item.hashCode(), result.hashCode());
assertEquals(item, result);
@@ -276,12 +276,12 @@
@Test
public void testStart() {
// Write to parcel
- StartActivityItem item = StartActivityItem.obtain(mActivityToken,
+ final StartActivityItem item = new StartActivityItem(mActivityToken,
new ActivityOptions.SceneTransitionInfo());
writeAndPrepareForReading(item);
// Read from parcel and assert
- StartActivityItem result = StartActivityItem.CREATOR.createFromParcel(mParcel);
+ final StartActivityItem result = StartActivityItem.CREATOR.createFromParcel(mParcel);
assertEquals(item.hashCode(), result.hashCode());
assertEquals(item, result);
@@ -290,11 +290,12 @@
@Test
public void testClientTransaction() {
// Write to parcel
- NewIntentItem callback1 = NewIntentItem.obtain(mActivityToken, new ArrayList<>(), true);
- ActivityConfigurationChangeItem callback2 = ActivityConfigurationChangeItem.obtain(
+ final NewIntentItem callback1 = NewIntentItem.obtain(
+ mActivityToken, new ArrayList<>(), true);
+ final ActivityConfigurationChangeItem callback2 = new ActivityConfigurationChangeItem(
mActivityToken, config(), new ActivityWindowInfo());
- StopActivityItem lifecycleRequest = StopActivityItem.obtain(mActivityToken);
+ final StopActivityItem lifecycleRequest = new StopActivityItem(mActivityToken);
final ClientTransaction transaction = new ClientTransaction();
transaction.addTransactionItem(callback1);
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index f31280e..072b1c7 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -1485,8 +1485,9 @@
ProtoLog.v(WM_DEBUG_CONFIGURATION, "Sending new config to %s, "
+ "config: %s", this, config);
- mAtmService.getLifecycleManager().scheduleTransactionItem(app.getThread(),
- ActivityConfigurationChangeItem.obtain(token, config, activityWindowInfo));
+ final ActivityConfigurationChangeItem item =
+ new ActivityConfigurationChangeItem(token, config, activityWindowInfo);
+ mAtmService.getLifecycleManager().scheduleTransactionItem(app.getThread(), item);
} catch (RemoteException e) {
// If process died, whatever.
}
@@ -5050,13 +5051,13 @@
private ActivityLifecycleItem getLifecycleItemForCurrentStateForResult() {
switch (mState) {
case STARTED:
- return StartActivityItem.obtain(token, null);
+ return new StartActivityItem(token, null);
case PAUSING:
case PAUSED:
- return PauseActivityItem.obtain(token);
+ return new PauseActivityItem(token);
case STOPPING:
case STOPPED:
- return StopActivityItem.obtain(token);
+ return new StopActivityItem(token);
default:
// Do not send a result immediately if the activity is in state INITIALIZING,
// RESTARTING_PROCESS, FINISHING, DESTROYING, or DESTROYED.
@@ -6344,9 +6345,9 @@
EventLogTags.writeWmPauseActivity(mUserId, System.identityHashCode(this),
shortComponentName, "userLeaving=false", "make-active");
try {
- mAtmService.getLifecycleManager().scheduleTransactionItem(app.getThread(),
- PauseActivityItem.obtain(token, finishing, false /* userLeaving */,
- false /* dontReport */, mAutoEnteringPip));
+ final PauseActivityItem item = new PauseActivityItem(token, finishing,
+ false /* userLeaving */, false /* dontReport */, mAutoEnteringPip);
+ mAtmService.getLifecycleManager().scheduleTransactionItem(app.getThread(), item);
} catch (Exception e) {
Slog.w(TAG, "Exception thrown sending pause: " + intent.getComponent(), e);
}
@@ -6358,7 +6359,7 @@
try {
mAtmService.getLifecycleManager().scheduleTransactionItem(app.getThread(),
- StartActivityItem.obtain(token, takeSceneTransitionInfo()));
+ new StartActivityItem(token, takeSceneTransitionInfo()));
} catch (Exception e) {
Slog.w(TAG, "Exception thrown sending start: " + intent.getComponent(), e);
}
@@ -6655,7 +6656,7 @@
EventLogTags.writeWmStopActivity(
mUserId, System.identityHashCode(this), shortComponentName);
mAtmService.getLifecycleManager().scheduleTransactionItem(app.getThread(),
- StopActivityItem.obtain(token));
+ new StopActivityItem(token));
mAtmService.mH.postDelayed(mStopTimeoutRunnable, STOP_TIMEOUT);
} catch (Exception e) {
@@ -10000,7 +10001,7 @@
lifecycleItem = new ResumeActivityItem(token, isTransitionForward(),
shouldSendCompatFakeFocus());
} else {
- lifecycleItem = PauseActivityItem.obtain(token);
+ lifecycleItem = new PauseActivityItem(token);
}
mAtmService.getLifecycleManager().scheduleTransactionAndLifecycleItems(
app.getThread(), callbackItem, lifecycleItem);
@@ -10092,7 +10093,7 @@
// {@link ActivityTaskManagerService.activityStopped}).
try {
mAtmService.getLifecycleManager().scheduleTransactionItem(app.getThread(),
- StopActivityItem.obtain(token));
+ new StopActivityItem(token));
} catch (RemoteException e) {
Slog.w(TAG, "Exception thrown during restart " + this, e);
}
diff --git a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
index 021caaf..bc7ed65 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
@@ -945,9 +945,9 @@
lifecycleItem = new ResumeActivityItem(r.token, isTransitionForward,
r.shouldSendCompatFakeFocus());
} else if (r.isVisibleRequested()) {
- lifecycleItem = PauseActivityItem.obtain(r.token);
+ lifecycleItem = new PauseActivityItem(r.token);
} else {
- lifecycleItem = StopActivityItem.obtain(r.token);
+ lifecycleItem = new StopActivityItem(r.token);
}
// Schedule transaction.
diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java
index 0b8b51b..5820a1e 100644
--- a/services/core/java/com/android/server/wm/TaskFragment.java
+++ b/services/core/java/com/android/server/wm/TaskFragment.java
@@ -1881,9 +1881,9 @@
EventLogTags.writeWmPauseActivity(prev.mUserId, System.identityHashCode(prev),
prev.shortComponentName, "userLeaving=" + userLeaving, reason);
- mAtmService.getLifecycleManager().scheduleTransactionItem(prev.app.getThread(),
- PauseActivityItem.obtain(prev.token, prev.finishing, userLeaving,
- pauseImmediately, autoEnteringPip));
+ final PauseActivityItem item = new PauseActivityItem(prev.token, prev.finishing,
+ userLeaving, pauseImmediately, autoEnteringPip);
+ mAtmService.getLifecycleManager().scheduleTransactionItem(prev.app.getThread(), item);
} catch (Exception e) {
// Ignore exception, if process died other code will cleanup.
Slog.w(TAG, "Exception thrown during pause", e);
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
index 421bbae..faaa80f 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java
@@ -523,9 +523,8 @@
assertEquals(newConfig.uiMode, activityConfig.uiMode);
// The configuration change is still sent to the activity, even if it doesn't relaunch.
- final ActivityConfigurationChangeItem expected =
- ActivityConfigurationChangeItem.obtain(activity.token, activityConfig,
- activity.getActivityWindowInfo());
+ final ActivityConfigurationChangeItem expected = new ActivityConfigurationChangeItem(
+ activity.token, activityConfig, activity.getActivityWindowInfo());
verify(mClientLifecycleManager).scheduleTransactionItem(
eq(activity.app.getThread()), eq(expected));
}
@@ -596,9 +595,8 @@
final Configuration currentConfig = activity.getConfiguration();
assertEquals(expectedOrientation, currentConfig.orientation);
- final ActivityConfigurationChangeItem expected =
- ActivityConfigurationChangeItem.obtain(activity.token, currentConfig,
- activity.getActivityWindowInfo());
+ final ActivityConfigurationChangeItem expected = new ActivityConfigurationChangeItem(
+ activity.token, currentConfig, activity.getActivityWindowInfo());
verify(mClientLifecycleManager).scheduleTransactionItem(activity.app.getThread(), expected);
verify(displayRotation).onSetRequestedOrientation();
}
@@ -817,9 +815,8 @@
activity.ensureActivityConfiguration(true /* ignoreVisibility */);
- final ActivityConfigurationChangeItem expected =
- ActivityConfigurationChangeItem.obtain(activity.token,
- activity.getConfiguration(), activity.getActivityWindowInfo());
+ final ActivityConfigurationChangeItem expected = new ActivityConfigurationChangeItem(
+ activity.token, activity.getConfiguration(), activity.getActivityWindowInfo());
verify(mClientLifecycleManager).scheduleTransactionItem(
activity.app.getThread(), expected);
} finally {