Merge "Fix issue with overridden configuration in onConfigurationChanged" into nyc-dev
am: a149c42
* commit 'a149c42071197a7759a652accb399bc58ed62bcd':
Fix issue with overridden configuration in onConfigurationChanged
Change-Id: I034e9ad42bf8e94ca97fd536ba1498fe19f01118
This commit is contained in:
@@ -91,6 +91,7 @@ import android.util.PrintWriterPrinter;
|
|||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
import android.util.SparseIntArray;
|
import android.util.SparseIntArray;
|
||||||
import android.util.SuperNotCalledException;
|
import android.util.SuperNotCalledException;
|
||||||
|
import android.view.ContextThemeWrapper;
|
||||||
import android.view.Display;
|
import android.view.Display;
|
||||||
import android.view.ThreadedRenderer;
|
import android.view.ThreadedRenderer;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -4632,7 +4633,21 @@ public final class ActivityThread {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (reportToActivity) {
|
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) {
|
if (activity != null) {
|
||||||
|
|||||||
@@ -101,6 +101,15 @@ public class ContextThemeWrapper extends ContextWrapper {
|
|||||||
mOverrideConfiguration = new Configuration(overrideConfiguration);
|
mOverrideConfiguration = new Configuration(overrideConfiguration);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used by ActivityThread to apply the overridden configuration to onConfigurationChange
|
||||||
|
* callbacks.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public Configuration getOverrideConfiguration() {
|
||||||
|
return mOverrideConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AssetManager getAssets() {
|
public AssetManager getAssets() {
|
||||||
// Ensure we're returning assets with the correct configuration.
|
// Ensure we're returning assets with the correct configuration.
|
||||||
|
|||||||
Reference in New Issue
Block a user