Loading core/api/test-current.txt +4 −4 Original line number Diff line number Diff line Loading @@ -496,15 +496,15 @@ package android.app { method public int compareTo(android.app.WindowConfiguration); method public int describeContents(); method public int getActivityType(); method public android.graphics.Rect getAppBounds(); method public android.graphics.Rect getBounds(); method @Nullable public android.graphics.Rect getAppBounds(); method @NonNull public android.graphics.Rect getBounds(); method @NonNull public android.graphics.Rect getMaxBounds(); method public int getRotation(); method public int getWindowingMode(); method public static boolean isFloating(int); method public void setActivityType(int); method public void setAppBounds(android.graphics.Rect); method public void setBounds(android.graphics.Rect); method public void setAppBounds(@Nullable android.graphics.Rect); method public void setBounds(@Nullable android.graphics.Rect); method public void setMaxBounds(@Nullable android.graphics.Rect); method public void setRotation(int); method public void setTo(android.app.WindowConfiguration); Loading core/java/android/app/ActivityThread.java +6 −0 Original line number Diff line number Diff line Loading @@ -3580,6 +3580,12 @@ public final class ActivityThread extends ClientTransactionHandler return mActivities.get(token); } @Nullable @Override public Context getWindowContext(@NonNull IBinder clientToken) { return WindowTokenClientController.getInstance().getWindowContext(clientToken); } @VisibleForTesting(visibility = PACKAGE) public Configuration getConfiguration() { return mConfigurationController.getConfiguration(); Loading core/java/android/app/ClientTransactionHandler.java +7 −0 Original line number Diff line number Diff line Loading @@ -16,11 +16,13 @@ package android.app; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityThread.ActivityClientRecord; import android.app.servertransaction.ClientTransaction; import android.app.servertransaction.ClientTransactionItem; import android.app.servertransaction.PendingTransactionActions; import android.app.servertransaction.TransactionExecutor; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.res.Configuration; Loading @@ -28,6 +30,7 @@ import android.os.IBinder; import android.util.MergedConfiguration; import android.view.SurfaceControl; import android.window.SplashScreenView.SplashScreenViewParcelable; import android.window.WindowContext; import android.window.WindowContextInfo; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -85,6 +88,10 @@ public abstract class ClientTransactionHandler { /** Get activity instance for the token. */ public abstract Activity getActivity(IBinder token); /** Gets the {@link WindowContext} instance for the token. */ @Nullable public abstract Context getWindowContext(@NonNull IBinder clientToken); // Prepare phase related logic and handlers. Methods that inform about about pending changes or // do other internal bookkeeping. Loading core/java/android/app/WindowConfiguration.java +23 −2 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.os.Parcelable; import android.util.proto.ProtoInputStream; import android.util.proto.ProtoOutputStream; import android.util.proto.WireTypeMismatchException; import android.view.Display; import android.view.DisplayInfo; import android.view.Surface; import android.view.WindowManager; Loading Loading @@ -66,6 +67,7 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu * the display level. Lower levels can override these values to provide custom bounds to enforce * features such as a max aspect ratio. */ @Nullable private Rect mAppBounds; /** Loading Loading @@ -269,7 +271,7 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu * Sets the bounds to the provided {@link Rect}. * @param rect the new bounds value. */ public void setBounds(Rect rect) { public void setBounds(@Nullable Rect rect) { if (rect == null) { mBounds.setEmpty(); return; Loading @@ -283,7 +285,7 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu * @param rect The rect value to set {@link #mAppBounds} to. * @see #getAppBounds() */ public void setAppBounds(Rect rect) { public void setAppBounds(@Nullable Rect rect) { if (rect == null) { mAppBounds = null; return; Loading Loading @@ -356,11 +358,13 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu } /** @see #setAppBounds(Rect) */ @Nullable public Rect getAppBounds() { return mAppBounds; } /** @see #setBounds(Rect) */ @NonNull public Rect getBounds() { return mBounds; } Loading Loading @@ -905,6 +909,23 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu return activityType != ACTIVITY_TYPE_ASSISTANT && activityType != ACTIVITY_TYPE_DREAM; } /** * Checks if the two {@link Configuration}s are equal to each other for the fields that are read * by {@link Display}. * @hide */ public static boolean areConfigurationsEqualForDisplay(@NonNull Configuration newConfig, @NonNull Configuration oldConfig) { // Only report different if max bounds and display rotation is changed, so that it will not // report on Task resizing. if (!newConfig.windowConfiguration.getMaxBounds().equals( oldConfig.windowConfiguration.getMaxBounds())) { return false; } return newConfig.windowConfiguration.getDisplayRotation() == oldConfig.windowConfiguration.getDisplayRotation(); } /** @hide */ public static String windowingModeToString(@WindowingMode int windowingMode) { switch (windowingMode) { Loading core/java/android/app/servertransaction/ActivityConfigurationChangeItem.java +11 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityThread.ActivityClientRecord; import android.app.ClientTransactionHandler; import android.content.Context; import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.os.IBinder; Loading @@ -40,7 +41,7 @@ public class ActivityConfigurationChangeItem extends ActivityTransactionItem { private Configuration mConfiguration; @Override public void preExecute(android.app.ClientTransactionHandler client, IBinder token) { public void preExecute(@NonNull ClientTransactionHandler client, @Nullable IBinder token) { CompatibilityInfo.applyOverrideScaleIfNeeded(mConfiguration); // Notify the client of an upcoming change in the token configuration. This ensures that // batches of config change items only process the newest configuration. Loading @@ -48,14 +49,21 @@ public class ActivityConfigurationChangeItem extends ActivityTransactionItem { } @Override public void execute(ClientTransactionHandler client, ActivityClientRecord r, PendingTransactionActions pendingActions) { public void execute(@NonNull ClientTransactionHandler client, @Nullable ActivityClientRecord r, @NonNull 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(r, mConfiguration, INVALID_DISPLAY); Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER); } @Nullable @Override public Context getContextToUpdate(@NonNull ClientTransactionHandler client, @Nullable IBinder token) { // TODO(b/260873529): Update ClientTransaction to bundle multiple activity config updates. return client.getActivity(token); } // ObjectPoolItem implementation Loading Loading
core/api/test-current.txt +4 −4 Original line number Diff line number Diff line Loading @@ -496,15 +496,15 @@ package android.app { method public int compareTo(android.app.WindowConfiguration); method public int describeContents(); method public int getActivityType(); method public android.graphics.Rect getAppBounds(); method public android.graphics.Rect getBounds(); method @Nullable public android.graphics.Rect getAppBounds(); method @NonNull public android.graphics.Rect getBounds(); method @NonNull public android.graphics.Rect getMaxBounds(); method public int getRotation(); method public int getWindowingMode(); method public static boolean isFloating(int); method public void setActivityType(int); method public void setAppBounds(android.graphics.Rect); method public void setBounds(android.graphics.Rect); method public void setAppBounds(@Nullable android.graphics.Rect); method public void setBounds(@Nullable android.graphics.Rect); method public void setMaxBounds(@Nullable android.graphics.Rect); method public void setRotation(int); method public void setTo(android.app.WindowConfiguration); Loading
core/java/android/app/ActivityThread.java +6 −0 Original line number Diff line number Diff line Loading @@ -3580,6 +3580,12 @@ public final class ActivityThread extends ClientTransactionHandler return mActivities.get(token); } @Nullable @Override public Context getWindowContext(@NonNull IBinder clientToken) { return WindowTokenClientController.getInstance().getWindowContext(clientToken); } @VisibleForTesting(visibility = PACKAGE) public Configuration getConfiguration() { return mConfigurationController.getConfiguration(); Loading
core/java/android/app/ClientTransactionHandler.java +7 −0 Original line number Diff line number Diff line Loading @@ -16,11 +16,13 @@ package android.app; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityThread.ActivityClientRecord; import android.app.servertransaction.ClientTransaction; import android.app.servertransaction.ClientTransactionItem; import android.app.servertransaction.PendingTransactionActions; import android.app.servertransaction.TransactionExecutor; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.res.Configuration; Loading @@ -28,6 +30,7 @@ import android.os.IBinder; import android.util.MergedConfiguration; import android.view.SurfaceControl; import android.window.SplashScreenView.SplashScreenViewParcelable; import android.window.WindowContext; import android.window.WindowContextInfo; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -85,6 +88,10 @@ public abstract class ClientTransactionHandler { /** Get activity instance for the token. */ public abstract Activity getActivity(IBinder token); /** Gets the {@link WindowContext} instance for the token. */ @Nullable public abstract Context getWindowContext(@NonNull IBinder clientToken); // Prepare phase related logic and handlers. Methods that inform about about pending changes or // do other internal bookkeeping. Loading
core/java/android/app/WindowConfiguration.java +23 −2 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.os.Parcelable; import android.util.proto.ProtoInputStream; import android.util.proto.ProtoOutputStream; import android.util.proto.WireTypeMismatchException; import android.view.Display; import android.view.DisplayInfo; import android.view.Surface; import android.view.WindowManager; Loading Loading @@ -66,6 +67,7 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu * the display level. Lower levels can override these values to provide custom bounds to enforce * features such as a max aspect ratio. */ @Nullable private Rect mAppBounds; /** Loading Loading @@ -269,7 +271,7 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu * Sets the bounds to the provided {@link Rect}. * @param rect the new bounds value. */ public void setBounds(Rect rect) { public void setBounds(@Nullable Rect rect) { if (rect == null) { mBounds.setEmpty(); return; Loading @@ -283,7 +285,7 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu * @param rect The rect value to set {@link #mAppBounds} to. * @see #getAppBounds() */ public void setAppBounds(Rect rect) { public void setAppBounds(@Nullable Rect rect) { if (rect == null) { mAppBounds = null; return; Loading Loading @@ -356,11 +358,13 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu } /** @see #setAppBounds(Rect) */ @Nullable public Rect getAppBounds() { return mAppBounds; } /** @see #setBounds(Rect) */ @NonNull public Rect getBounds() { return mBounds; } Loading Loading @@ -905,6 +909,23 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu return activityType != ACTIVITY_TYPE_ASSISTANT && activityType != ACTIVITY_TYPE_DREAM; } /** * Checks if the two {@link Configuration}s are equal to each other for the fields that are read * by {@link Display}. * @hide */ public static boolean areConfigurationsEqualForDisplay(@NonNull Configuration newConfig, @NonNull Configuration oldConfig) { // Only report different if max bounds and display rotation is changed, so that it will not // report on Task resizing. if (!newConfig.windowConfiguration.getMaxBounds().equals( oldConfig.windowConfiguration.getMaxBounds())) { return false; } return newConfig.windowConfiguration.getDisplayRotation() == oldConfig.windowConfiguration.getDisplayRotation(); } /** @hide */ public static String windowingModeToString(@WindowingMode int windowingMode) { switch (windowingMode) { Loading
core/java/android/app/servertransaction/ActivityConfigurationChangeItem.java +11 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityThread.ActivityClientRecord; import android.app.ClientTransactionHandler; import android.content.Context; import android.content.res.CompatibilityInfo; import android.content.res.Configuration; import android.os.IBinder; Loading @@ -40,7 +41,7 @@ public class ActivityConfigurationChangeItem extends ActivityTransactionItem { private Configuration mConfiguration; @Override public void preExecute(android.app.ClientTransactionHandler client, IBinder token) { public void preExecute(@NonNull ClientTransactionHandler client, @Nullable IBinder token) { CompatibilityInfo.applyOverrideScaleIfNeeded(mConfiguration); // Notify the client of an upcoming change in the token configuration. This ensures that // batches of config change items only process the newest configuration. Loading @@ -48,14 +49,21 @@ public class ActivityConfigurationChangeItem extends ActivityTransactionItem { } @Override public void execute(ClientTransactionHandler client, ActivityClientRecord r, PendingTransactionActions pendingActions) { public void execute(@NonNull ClientTransactionHandler client, @Nullable ActivityClientRecord r, @NonNull 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(r, mConfiguration, INVALID_DISPLAY); Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER); } @Nullable @Override public Context getContextToUpdate(@NonNull ClientTransactionHandler client, @Nullable IBinder token) { // TODO(b/260873529): Update ClientTransaction to bundle multiple activity config updates. return client.getActivity(token); } // ObjectPoolItem implementation Loading