Loading core/java/android/app/servertransaction/ActivityLifecycleItem.java +14 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.app.servertransaction; import android.annotation.IntDef; import android.annotation.NonNull; import android.os.IBinder; import android.os.Parcel; import java.lang.annotation.Retention; Loading @@ -25,6 +26,7 @@ import java.lang.annotation.RetentionPolicy; /** * Request for lifecycle state that an activity should reach. * * @hide */ public abstract class ActivityLifecycleItem extends ActivityTransactionItem { Loading Loading @@ -52,8 +54,19 @@ public abstract class ActivityLifecycleItem extends ActivityTransactionItem { public static final int ON_DESTROY = 6; public static final int ON_RESTART = 7; ActivityLifecycleItem() {} ActivityLifecycleItem(@NonNull IBinder activityToken) { super(activityToken); } // TODO(b/311089192): Remove this method once no subclasses obtain from the object pool. @Deprecated ActivityLifecycleItem() { super(); } // Parcelable implementation /** Reads from Parcel. */ ActivityLifecycleItem(@NonNull Parcel in) { super(in); } Loading core/java/android/app/servertransaction/ActivityTransactionItem.java +26 −14 Original line number Diff line number Diff line Loading @@ -49,9 +49,29 @@ import java.util.Objects; public abstract class ActivityTransactionItem extends ClientTransactionItem { /** Target client activity. */ // TODO(b/311089192): Mark this with @NonNull and final. private IBinder mActivityToken; ActivityTransactionItem() {} public ActivityTransactionItem(@NonNull IBinder activityToken) { mActivityToken = requireNonNull(activityToken); } // TODO(b/311089192): Remove this method once no subclasses obtain from the object pool. @Deprecated ActivityTransactionItem() { } /** * Sets the activity token after the instance is obtained from the object pool. * * @deprecated This method is deprecated. The object pool is no longer used. * Instead, directly create a new object with the activity token. * TODO(b/311089192): Remove this method once no subclasses obtain from the object pool. */ @Deprecated void setActivityToken(@NonNull IBinder activityToken) { mActivityToken = requireNonNull(activityToken); } @Override public final void execute(@NonNull ClientTransactionHandler client, Loading Loading @@ -94,26 +114,18 @@ public abstract class ActivityTransactionItem extends ClientTransactionItem { return mActivityToken; } void setActivityToken(@NonNull IBinder activityToken) { mActivityToken = requireNonNull(activityToken); } // To be overridden ActivityTransactionItem(@NonNull Parcel in) { mActivityToken = in.readStrongBinder(); } // Parcelable implementation /** Writes to Parcel. */ @CallSuper @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeStrongBinder(mActivityToken); } @CallSuper @Override public void recycle() { mActivityToken = null; /** Reads from Parcel. */ ActivityTransactionItem(@NonNull Parcel in) { this(in.readStrongBinder()); } @Override Loading core/java/android/app/servertransaction/DestroyActivityItem.java +9 −27 Original line number Diff line number Diff line Loading @@ -28,11 +28,17 @@ import android.os.Trace; /** * Request to destroy an activity. * * @hide */ public class DestroyActivityItem extends ActivityLifecycleItem { private boolean mFinished; private final boolean mFinished; public DestroyActivityItem(@NonNull IBinder activityToken, boolean finished) { super(activityToken); mFinished = finished; } @Override public void preExecute(@NonNull ClientTransactionHandler client) { Loading Loading @@ -60,40 +66,16 @@ public class DestroyActivityItem extends ActivityLifecycleItem { return ON_DESTROY; } // ObjectPoolItem implementation private DestroyActivityItem() {} /** Obtain an instance initialized with provided params. */ @NonNull public static DestroyActivityItem obtain(@NonNull IBinder activityToken, boolean finished) { DestroyActivityItem instance = ObjectPool.obtain(DestroyActivityItem.class); if (instance == null) { instance = new DestroyActivityItem(); } instance.setActivityToken(activityToken); instance.mFinished = finished; return instance; } @Override public void recycle() { super.recycle(); mFinished = 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); dest.writeBoolean(mFinished); } /** Read from Parcel. */ /** Reads from Parcel. */ private DestroyActivityItem(@NonNull Parcel in) { super(in); mFinished = in.readBoolean(); Loading core/tests/coretests/src/android/app/servertransaction/ClientTransactionItemTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -102,8 +102,8 @@ public class ClientTransactionItemTest { @Test public void testDestroyActivityItem_preExecute() { final DestroyActivityItem item = DestroyActivityItem .obtain(mActivityToken, false /* finished */); final DestroyActivityItem item = new DestroyActivityItem(mActivityToken, false /* finished */); item.preExecute(mHandler); Loading @@ -113,8 +113,8 @@ public class ClientTransactionItemTest { @Test public void testDestroyActivityItem_postExecute() { final DestroyActivityItem item = DestroyActivityItem .obtain(mActivityToken, false /* finished */); final DestroyActivityItem item = new DestroyActivityItem(mActivityToken, false /* finished */); item.preExecute(mHandler); item.postExecute(mHandler, mPendingActions); Loading @@ -124,8 +124,8 @@ public class ClientTransactionItemTest { @Test public void testDestroyActivityItem_execute() { final DestroyActivityItem item = DestroyActivityItem .obtain(mActivityToken, false /* finished */); final DestroyActivityItem item = new DestroyActivityItem(mActivityToken, false /* finished */); item.execute(mHandler, mActivityClientRecord, mPendingActions); Loading core/tests/coretests/src/android/app/servertransaction/ObjectPoolTests.java +0 −5 Original line number Diff line number Diff line Loading @@ -89,11 +89,6 @@ public class ObjectPoolTests { testRecycle(() -> ConfigurationChangeItem.obtain(config(), 1)); } @Test public void testRecycleDestroyActivityItem() { testRecycle(() -> DestroyActivityItem.obtain(mActivityToken, true)); } @Test public void testRecycleLaunchActivityItem() { final IBinder activityToken = new Binder(); Loading Loading
core/java/android/app/servertransaction/ActivityLifecycleItem.java +14 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.app.servertransaction; import android.annotation.IntDef; import android.annotation.NonNull; import android.os.IBinder; import android.os.Parcel; import java.lang.annotation.Retention; Loading @@ -25,6 +26,7 @@ import java.lang.annotation.RetentionPolicy; /** * Request for lifecycle state that an activity should reach. * * @hide */ public abstract class ActivityLifecycleItem extends ActivityTransactionItem { Loading Loading @@ -52,8 +54,19 @@ public abstract class ActivityLifecycleItem extends ActivityTransactionItem { public static final int ON_DESTROY = 6; public static final int ON_RESTART = 7; ActivityLifecycleItem() {} ActivityLifecycleItem(@NonNull IBinder activityToken) { super(activityToken); } // TODO(b/311089192): Remove this method once no subclasses obtain from the object pool. @Deprecated ActivityLifecycleItem() { super(); } // Parcelable implementation /** Reads from Parcel. */ ActivityLifecycleItem(@NonNull Parcel in) { super(in); } Loading
core/java/android/app/servertransaction/ActivityTransactionItem.java +26 −14 Original line number Diff line number Diff line Loading @@ -49,9 +49,29 @@ import java.util.Objects; public abstract class ActivityTransactionItem extends ClientTransactionItem { /** Target client activity. */ // TODO(b/311089192): Mark this with @NonNull and final. private IBinder mActivityToken; ActivityTransactionItem() {} public ActivityTransactionItem(@NonNull IBinder activityToken) { mActivityToken = requireNonNull(activityToken); } // TODO(b/311089192): Remove this method once no subclasses obtain from the object pool. @Deprecated ActivityTransactionItem() { } /** * Sets the activity token after the instance is obtained from the object pool. * * @deprecated This method is deprecated. The object pool is no longer used. * Instead, directly create a new object with the activity token. * TODO(b/311089192): Remove this method once no subclasses obtain from the object pool. */ @Deprecated void setActivityToken(@NonNull IBinder activityToken) { mActivityToken = requireNonNull(activityToken); } @Override public final void execute(@NonNull ClientTransactionHandler client, Loading Loading @@ -94,26 +114,18 @@ public abstract class ActivityTransactionItem extends ClientTransactionItem { return mActivityToken; } void setActivityToken(@NonNull IBinder activityToken) { mActivityToken = requireNonNull(activityToken); } // To be overridden ActivityTransactionItem(@NonNull Parcel in) { mActivityToken = in.readStrongBinder(); } // Parcelable implementation /** Writes to Parcel. */ @CallSuper @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeStrongBinder(mActivityToken); } @CallSuper @Override public void recycle() { mActivityToken = null; /** Reads from Parcel. */ ActivityTransactionItem(@NonNull Parcel in) { this(in.readStrongBinder()); } @Override Loading
core/java/android/app/servertransaction/DestroyActivityItem.java +9 −27 Original line number Diff line number Diff line Loading @@ -28,11 +28,17 @@ import android.os.Trace; /** * Request to destroy an activity. * * @hide */ public class DestroyActivityItem extends ActivityLifecycleItem { private boolean mFinished; private final boolean mFinished; public DestroyActivityItem(@NonNull IBinder activityToken, boolean finished) { super(activityToken); mFinished = finished; } @Override public void preExecute(@NonNull ClientTransactionHandler client) { Loading Loading @@ -60,40 +66,16 @@ public class DestroyActivityItem extends ActivityLifecycleItem { return ON_DESTROY; } // ObjectPoolItem implementation private DestroyActivityItem() {} /** Obtain an instance initialized with provided params. */ @NonNull public static DestroyActivityItem obtain(@NonNull IBinder activityToken, boolean finished) { DestroyActivityItem instance = ObjectPool.obtain(DestroyActivityItem.class); if (instance == null) { instance = new DestroyActivityItem(); } instance.setActivityToken(activityToken); instance.mFinished = finished; return instance; } @Override public void recycle() { super.recycle(); mFinished = 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); dest.writeBoolean(mFinished); } /** Read from Parcel. */ /** Reads from Parcel. */ private DestroyActivityItem(@NonNull Parcel in) { super(in); mFinished = in.readBoolean(); Loading
core/tests/coretests/src/android/app/servertransaction/ClientTransactionItemTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -102,8 +102,8 @@ public class ClientTransactionItemTest { @Test public void testDestroyActivityItem_preExecute() { final DestroyActivityItem item = DestroyActivityItem .obtain(mActivityToken, false /* finished */); final DestroyActivityItem item = new DestroyActivityItem(mActivityToken, false /* finished */); item.preExecute(mHandler); Loading @@ -113,8 +113,8 @@ public class ClientTransactionItemTest { @Test public void testDestroyActivityItem_postExecute() { final DestroyActivityItem item = DestroyActivityItem .obtain(mActivityToken, false /* finished */); final DestroyActivityItem item = new DestroyActivityItem(mActivityToken, false /* finished */); item.preExecute(mHandler); item.postExecute(mHandler, mPendingActions); Loading @@ -124,8 +124,8 @@ public class ClientTransactionItemTest { @Test public void testDestroyActivityItem_execute() { final DestroyActivityItem item = DestroyActivityItem .obtain(mActivityToken, false /* finished */); final DestroyActivityItem item = new DestroyActivityItem(mActivityToken, false /* finished */); item.execute(mHandler, mActivityClientRecord, mPendingActions); Loading
core/tests/coretests/src/android/app/servertransaction/ObjectPoolTests.java +0 −5 Original line number Diff line number Diff line Loading @@ -89,11 +89,6 @@ public class ObjectPoolTests { testRecycle(() -> ConfigurationChangeItem.obtain(config(), 1)); } @Test public void testRecycleDestroyActivityItem() { testRecycle(() -> DestroyActivityItem.obtain(mActivityToken, true)); } @Test public void testRecycleLaunchActivityItem() { final IBinder activityToken = new Binder(); Loading