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

Commit 846a577c authored by Andrii Kulian's avatar Andrii Kulian Committed by android-build-merger
Browse files

Merge "Add Configuration param to onMovedToDisplay" into oc-dev

am: 36e24836

Change-Id: I4deb6bcfb5facad1e0f85e66a149af88cbab04c2
parents 9ed77572 36e24836
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -3673,7 +3673,7 @@ package android.app {
    method public void onLowMemory();
    method public boolean onMenuItemSelected(int, android.view.MenuItem);
    method public boolean onMenuOpened(int, android.view.Menu);
    method public void onMovedToDisplay(int);
    method public void onMovedToDisplay(int, android.content.res.Configuration);
    method public void onMultiWindowModeChanged(boolean);
    method public boolean onNavigateUp();
    method public boolean onNavigateUpFromChild(android.app.Activity);
@@ -45490,7 +45490,7 @@ package android.view {
    method public boolean onKeyUp(int, android.view.KeyEvent);
    method protected void onLayout(boolean, int, int, int, int);
    method protected void onMeasure(int, int);
    method public void onMovedToDisplay(int);
    method public void onMovedToDisplay(int, android.content.res.Configuration);
    method protected void onOverScrolled(int, int, boolean, boolean);
    method public void onPointerCaptureChange(boolean);
    method public void onPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
+2 −2
Original line number Diff line number Diff line
@@ -3799,7 +3799,7 @@ package android.app {
    method public void onLowMemory();
    method public boolean onMenuItemSelected(int, android.view.MenuItem);
    method public boolean onMenuOpened(int, android.view.Menu);
    method public void onMovedToDisplay(int);
    method public void onMovedToDisplay(int, android.content.res.Configuration);
    method public void onMultiWindowModeChanged(boolean);
    method public boolean onNavigateUp();
    method public boolean onNavigateUpFromChild(android.app.Activity);
@@ -48947,7 +48947,7 @@ package android.view {
    method public boolean onKeyUp(int, android.view.KeyEvent);
    method protected void onLayout(boolean, int, int, int, int);
    method protected void onMeasure(int, int);
    method public void onMovedToDisplay(int);
    method public void onMovedToDisplay(int, android.content.res.Configuration);
    method protected void onOverScrolled(int, int, boolean, boolean);
    method public void onPointerCaptureChange(boolean);
    method public void onPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
+2 −2
Original line number Diff line number Diff line
@@ -3675,7 +3675,7 @@ package android.app {
    method public void onLowMemory();
    method public boolean onMenuItemSelected(int, android.view.MenuItem);
    method public boolean onMenuOpened(int, android.view.Menu);
    method public void onMovedToDisplay(int);
    method public void onMovedToDisplay(int, android.content.res.Configuration);
    method public void onMultiWindowModeChanged(boolean);
    method public boolean onNavigateUp();
    method public boolean onNavigateUpFromChild(android.app.Activity);
@@ -45865,7 +45865,7 @@ package android.view {
    method public boolean onKeyUp(int, android.view.KeyEvent);
    method protected void onLayout(boolean, int, int, int, int);
    method protected void onMeasure(int, int);
    method public void onMovedToDisplay(int);
    method public void onMovedToDisplay(int, android.content.res.Configuration);
    method protected void onOverScrolled(int, int, boolean, boolean);
    method public void onPointerCaptureChange(boolean);
    method public void onPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
+11 −6
Original line number Diff line number Diff line
@@ -1990,27 +1990,32 @@ public class Activity extends ContextThemeWrapper
        }
    }

    void dispatchMovedToDisplay(int displayId) {
    void dispatchMovedToDisplay(int displayId, Configuration config) {
        updateDisplay(displayId);
        onMovedToDisplay(displayId);
        onMovedToDisplay(displayId, config);
    }

    /**
     * Called by the system when the activity is moved from one display to another without
     * recreation. This means that this activity is declared to handle all changes to configuration
     * that happened when it was switched to another display, so it wasn't destroyed and created
     * again. This call will be followed by {@link #onConfigurationChanged(Configuration)} if the
     * applied configuration actually changed.
     * again.
     *
     * <p>This call will be followed by {@link #onConfigurationChanged(Configuration)} if the
     * applied configuration actually changed. It is up to app developer to choose whether to handle
     * the change in this method or in the following {@link #onConfigurationChanged(Configuration)}
     * call.
     *
     * <p>Use this callback to track changes to the displays if some activity functionality relies
     * on an association with some display properties.
     *
     * @param displayId The id of the display to which activity was moved.
     * @param config Configuration of the activity resources on new display after move.
     *
     * @see #onConfigurationChanged(Configuration)
     * @see View#onMovedToDisplay(int)
     * @see View#onMovedToDisplay(int, Configuration)
     */
    public void onMovedToDisplay(int displayId) {
    public void onMovedToDisplay(int displayId, Configuration config) {
    }

    /**
+24 −18
Original line number Diff line number Diff line
@@ -4801,16 +4801,18 @@ public final class ActivityThread {
     *                      {@link ActivityClientRecord#overrideConfig}.
     * @param displayId The id of the display where the Activity currently resides.
     * @param movedToDifferentDisplay Indicates if the activity was moved to different display.
     * @return {@link Configuration} instance sent to client, null if not sent.
     */
    private void performConfigurationChangedForActivity(ActivityClientRecord r,
    private Configuration performConfigurationChangedForActivity(ActivityClientRecord r,
            Configuration newBaseConfig, int displayId, boolean movedToDifferentDisplay) {
        r.tmpConfig.setTo(newBaseConfig);
        if (r.overrideConfig != null) {
            r.tmpConfig.updateFrom(r.overrideConfig);
        }
        performActivityConfigurationChanged(r.activity, r.tmpConfig, r.overrideConfig, displayId,
                movedToDifferentDisplay);
        final Configuration reportedConfig = performActivityConfigurationChanged(r.activity,
                r.tmpConfig, r.overrideConfig, displayId, movedToDifferentDisplay);
        freeTextLayoutCachesIfNeeded(r.activity.mCurrentConfig.diff(r.tmpConfig));
        return reportedConfig;
    }

    /**
@@ -4864,9 +4866,11 @@ public final class ActivityThread {
     *                         ActivityManager.
     * @param displayId Id of the display where activity currently resides.
     * @param movedToDifferentDisplay Indicates if the activity was moved to different display.
     * @return Configuration sent to client, null if no changes and not moved to different display.
     */
    private void performActivityConfigurationChanged(Activity activity, Configuration newConfig,
            Configuration amOverrideConfig, int displayId, boolean movedToDifferentDisplay) {
    private Configuration performActivityConfigurationChanged(Activity activity,
            Configuration newConfig, Configuration amOverrideConfig, int displayId,
            boolean movedToDifferentDisplay) {
        if (activity == null) {
            throw new IllegalArgumentException("No activity provided.");
        }
@@ -4897,7 +4901,7 @@ public final class ActivityThread {
        }
        if (!shouldChangeConfig && !movedToDifferentDisplay) {
            // Nothing significant, don't proceed with updating and reporting.
            return;
            return null;
        }

        // Propagate the configuration change to ResourcesManager and Activity.
@@ -4920,22 +4924,22 @@ public final class ActivityThread {
        activity.mConfigChangeFlags = 0;
        activity.mCurrentConfig = new Configuration(newConfig);

        // Apply the ContextThemeWrapper override if necessary.
        // NOTE: Make sure the configurations are not modified, as they are treated as immutable
        // in many places.
        final Configuration configToReport = createNewConfigAndUpdateIfNotNull(newConfig,
                contextThemeWrapperOverrideConfig);

        if (!REPORT_TO_ACTIVITY) {
            // Not configured to report to activity.
            return;
            return configToReport;
        }

        if (movedToDifferentDisplay) {
            activity.dispatchMovedToDisplay(displayId);
            activity.dispatchMovedToDisplay(displayId, configToReport);
        }

        if (shouldChangeConfig) {
            // Apply the ContextThemeWrapper override if necessary.
            // NOTE: Make sure the configurations are not modified, as they are treated as immutable
            // in many places.
            final Configuration configToReport = createNewConfigAndUpdateIfNotNull(
                    newConfig, contextThemeWrapperOverrideConfig);

            activity.mCalled = false;
            activity.onConfigurationChanged(configToReport);
            if (!activity.mCalled) {
@@ -4943,6 +4947,8 @@ public final class ActivityThread {
                                " did not call through to super.onConfigurationChanged()");
            }
        }

        return configToReport;
    }

    public final void applyConfigurationToResources(Configuration config) {
@@ -5115,10 +5121,10 @@ public final class ActivityThread {
                    + r.activityInfo.name + ", displayId=" + displayId
                    + ", config=" + data.overrideConfig);

            performConfigurationChangedForActivity(r, mCompatConfiguration, displayId,
                    true /* movedToDifferentDisplay */);
            final Configuration reportedConfig = performConfigurationChangedForActivity(r,
                    mCompatConfiguration, displayId, true /* movedToDifferentDisplay */);
            if (viewRoot != null) {
                viewRoot.onMovedToDisplay(displayId);
                viewRoot.onMovedToDisplay(displayId, reportedConfig);
            }
        } else {
            if (DEBUG_CONFIGURATION) Slog.v(TAG, "Handle activity config changed: "
@@ -5128,7 +5134,7 @@ public final class ActivityThread {
        // Notify the ViewRootImpl instance about configuration changes. It may have initiated this
        // update to make sure that resources are updated before updating itself.
        if (viewRoot != null) {
            viewRoot.updateConfiguration();
            viewRoot.updateConfiguration(displayId);
        }
        mSomeActivitiesChanged = true;
    }
Loading