Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc9139ce authored by Chris Li's avatar Chris Li Committed by Android (Google) Code Review
Browse files

Merge "Add ActiviyWindowInfo into ActivityConfiguraionChangeItem" into main

parents d128063a 2434731b
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import java.util.Objects;
public class ActivityConfigurationChangeItem extends ActivityTransactionItem {

    private Configuration mConfiguration;
    private ActivityWindowInfo mActivityWindowInfo;

    @Override
    public void preExecute(@NonNull ClientTransactionHandler client) {
@@ -55,8 +56,7 @@ public class ActivityConfigurationChangeItem extends ActivityTransactionItem {
        // TODO(lifecycler): detect if PIP or multi-window mode changed and report it here.
        Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "activityConfigChanged");
        client.handleActivityConfigurationChanged(r, mConfiguration, INVALID_DISPLAY,
                // TODO(b/287582673): add ActivityWindowInfo
                new ActivityWindowInfo());
                mActivityWindowInfo);
        Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
    }

@@ -73,7 +73,7 @@ public class ActivityConfigurationChangeItem extends ActivityTransactionItem {
    /** Obtain an instance initialized with provided params. */
    @NonNull
    public static ActivityConfigurationChangeItem obtain(@NonNull IBinder activityToken,
            @NonNull Configuration config) {
            @NonNull Configuration config, @NonNull ActivityWindowInfo activityWindowInfo) {
        ActivityConfigurationChangeItem instance =
                ObjectPool.obtain(ActivityConfigurationChangeItem.class);
        if (instance == null) {
@@ -81,6 +81,7 @@ public class ActivityConfigurationChangeItem extends ActivityTransactionItem {
        }
        instance.setActivityToken(activityToken);
        instance.mConfiguration = new Configuration(config);
        instance.mActivityWindowInfo = new ActivityWindowInfo(activityWindowInfo);

        return instance;
    }
@@ -89,6 +90,7 @@ public class ActivityConfigurationChangeItem extends ActivityTransactionItem {
    public void recycle() {
        super.recycle();
        mConfiguration = null;
        mActivityWindowInfo = null;
        ObjectPool.recycle(this);
    }

@@ -100,12 +102,14 @@ public class ActivityConfigurationChangeItem extends ActivityTransactionItem {
    public void writeToParcel(@NonNull Parcel dest, int flags) {
        super.writeToParcel(dest, flags);
        dest.writeTypedObject(mConfiguration, flags);
        dest.writeTypedObject(mActivityWindowInfo, flags);
    }

    /** Read from Parcel. */
    private ActivityConfigurationChangeItem(@NonNull Parcel in) {
        super(in);
        mConfiguration = in.readTypedObject(Configuration.CREATOR);
        mActivityWindowInfo = in.readTypedObject(ActivityWindowInfo.CREATOR);
    }

    public static final @NonNull Creator<ActivityConfigurationChangeItem> CREATOR =
@@ -128,7 +132,8 @@ public class ActivityConfigurationChangeItem extends ActivityTransactionItem {
            return false;
        }
        final ActivityConfigurationChangeItem other = (ActivityConfigurationChangeItem) o;
        return Objects.equals(mConfiguration, other.mConfiguration);
        return Objects.equals(mConfiguration, other.mConfiguration)
                && Objects.equals(mActivityWindowInfo, other.mActivityWindowInfo);
    }

    @Override
@@ -136,12 +141,14 @@ public class ActivityConfigurationChangeItem extends ActivityTransactionItem {
        int result = 17;
        result = 31 * result + super.hashCode();
        result = 31 * result + Objects.hashCode(mConfiguration);
        result = 31 * result + Objects.hashCode(mActivityWindowInfo);
        return result;
    }

    @Override
    public String toString() {
        return "ActivityConfigurationChange{" + super.toString()
                + ",config=" + mConfiguration + "}";
                + ",config=" + mConfiguration
                + ",activityWindowInfo=" + mActivityWindowInfo + "}";
    }
}
+4 −4
Original line number Diff line number Diff line
@@ -247,7 +247,7 @@ public class ActivityThreadTest {
            newConfig.smallestScreenWidthDp++;
            transaction = newTransaction(activityThread);
            transaction.addTransactionItem(ActivityConfigurationChangeItem.obtain(
                    activity.getActivityToken(), newConfig));
                    activity.getActivityToken(), newConfig, new ActivityWindowInfo()));
            appThread.scheduleTransaction(transaction);
            InstrumentationRegistry.getInstrumentation().waitForIdleSync();

@@ -455,11 +455,11 @@ public class ActivityThreadTest {

        transaction = newTransaction(activityThread);
        transaction.addTransactionItem(ActivityConfigurationChangeItem.obtain(
                activity.getActivityToken(), activityConfigLandscape));
                activity.getActivityToken(), activityConfigLandscape, new ActivityWindowInfo()));
        transaction.addTransactionItem(ConfigurationChangeItem.obtain(
                processConfigPortrait, DEVICE_ID_INVALID));
        transaction.addTransactionItem(ActivityConfigurationChangeItem.obtain(
                activity.getActivityToken(), activityConfigPortrait));
                activity.getActivityToken(), activityConfigPortrait, new ActivityWindowInfo()));
        appThread.scheduleTransaction(transaction);

        activity.mTestLatch.await(TIMEOUT_SEC, TimeUnit.SECONDS);
@@ -883,7 +883,7 @@ public class ActivityThreadTest {
    private static ClientTransaction newActivityConfigTransaction(@NonNull Activity activity,
            @NonNull Configuration config) {
        final ActivityConfigurationChangeItem item = ActivityConfigurationChangeItem.obtain(
                activity.getActivityToken(), config);
                activity.getActivityToken(), config, new ActivityWindowInfo());

        final ClientTransaction transaction = newTransaction(activity);
        transaction.addTransactionItem(item);
+1 −1
Original line number Diff line number Diff line
@@ -107,7 +107,7 @@ public class ClientTransactionItemTest {
    @Test
    public void testActivityConfigurationChangeItem_getContextToUpdate() {
        final ActivityConfigurationChangeItem item = ActivityConfigurationChangeItem
                .obtain(mActivityToken, mConfiguration);
                .obtain(mActivityToken, mConfiguration, new ActivityWindowInfo());
        final Context context = item.getContextToUpdate(mHandler);

        assertEquals(mActivity, context);
+2 −1
Original line number Diff line number Diff line
@@ -82,7 +82,8 @@ public class ObjectPoolTests {

    @Test
    public void testRecycleActivityConfigurationChangeItem() {
        testRecycle(() -> ActivityConfigurationChangeItem.obtain(mActivityToken, config()));
        testRecycle(() -> ActivityConfigurationChangeItem.obtain(mActivityToken, config(),
                new ActivityWindowInfo()));
    }

    @Test
+6 −3
Original line number Diff line number Diff line
@@ -95,8 +95,11 @@ public class TransactionParcelTests {
    @Test
    public void testActivityConfigChange() {
        // Write to parcel
        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(
                mActivityToken, config());
                mActivityToken, config(), activityWindowInfo);
        writeAndPrepareForReading(item);

        // Read from parcel and assert
@@ -300,7 +303,7 @@ public class TransactionParcelTests {
        // Write to parcel
        NewIntentItem callback1 = NewIntentItem.obtain(mActivityToken, new ArrayList<>(), true);
        ActivityConfigurationChangeItem callback2 = ActivityConfigurationChangeItem.obtain(
                mActivityToken, config());
                mActivityToken, config(), new ActivityWindowInfo());

        StopActivityItem lifecycleRequest = StopActivityItem.obtain(mActivityToken,
                78 /* configChanges */);
@@ -327,7 +330,7 @@ public class TransactionParcelTests {
        // Write to parcel
        NewIntentItem callback1 = NewIntentItem.obtain(mActivityToken, new ArrayList<>(), true);
        ActivityConfigurationChangeItem callback2 = ActivityConfigurationChangeItem.obtain(
                mActivityToken, config());
                mActivityToken, config(), new ActivityWindowInfo());

        ClientTransaction transaction = ClientTransaction.obtain(null /* client */);
        transaction.addTransactionItem(callback1);
Loading