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

Commit ea0186c2 authored by Adam Lesinski's avatar Adam Lesinski Committed by android-build-merger
Browse files

Merge "Fix issue with overridden configuration in onConfigurationChanged" into nyc-dev

am: a149c420

* commit 'a149c420':
  Fix issue with overridden configuration in onConfigurationChanged

Change-Id: I034e9ad42bf8e94ca97fd536ba1498fe19f01118
parents f7f98442 a149c420
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ import android.util.PrintWriterPrinter;
import android.util.Slog;
import android.util.SparseIntArray;
import android.util.SuperNotCalledException;
import android.view.ContextThemeWrapper;
import android.view.Display;
import android.view.ThreadedRenderer;
import android.view.View;
@@ -4632,7 +4633,21 @@ public final class ActivityThread {
            }

            if (reportToActivity) {
                cb.onConfigurationChanged(newConfig);
                Configuration configToReport = newConfig;

                if (cb instanceof ContextThemeWrapper) {
                    // ContextThemeWrappers may override the configuration for that context.
                    // We must check and apply any overrides defined.
                    ContextThemeWrapper contextThemeWrapper = (ContextThemeWrapper) cb;
                    final Configuration localOverrideConfig =
                            contextThemeWrapper.getOverrideConfiguration();
                    if (localOverrideConfig != null) {
                        configToReport = new Configuration(newConfig);
                        configToReport.updateFrom(localOverrideConfig);
                    }
                }

                cb.onConfigurationChanged(configToReport);
            }

            if (activity != null) {
+9 −0
Original line number Diff line number Diff line
@@ -101,6 +101,15 @@ public class ContextThemeWrapper extends ContextWrapper {
        mOverrideConfiguration = new Configuration(overrideConfiguration);
    }

    /**
     * Used by ActivityThread to apply the overridden configuration to onConfigurationChange
     * callbacks.
     * @hide
     */
    public Configuration getOverrideConfiguration() {
        return mOverrideConfiguration;
    }

    @Override
    public AssetManager getAssets() {
        // Ensure we're returning assets with the correct configuration.