Merge "Fix issue #5348948: Third Party app "Byki Turkish" shows..."

This commit is contained in:
Dianne Hackborn
2011-10-05 11:15:13 -07:00
committed by Android (Google) Code Review
2 changed files with 19 additions and 12 deletions

View File

@@ -1478,7 +1478,7 @@ public final class ActivityThread {
} }
//Slog.i(TAG, "Resource: key=" + key + ", display metrics=" + metrics); //Slog.i(TAG, "Resource: key=" + key + ", display metrics=" + metrics);
DisplayMetrics metrics = getDisplayMetricsLocked(compInfo, false); DisplayMetrics metrics = getDisplayMetricsLocked(null, false);
r = new Resources(assets, metrics, getConfiguration(), compInfo); r = new Resources(assets, metrics, getConfiguration(), compInfo);
if (false) { if (false) {
Slog.i(TAG, "Created app resources " + resDir + " " + r + ": " Slog.i(TAG, "Created app resources " + resDir + " " + r + ": "
@@ -3476,7 +3476,7 @@ public final class ActivityThread {
return false; return false;
} }
int changes = mResConfiguration.updateFrom(config); int changes = mResConfiguration.updateFrom(config);
DisplayMetrics dm = getDisplayMetricsLocked(compat, true); DisplayMetrics dm = getDisplayMetricsLocked(null, true);
if (compat != null && (mResCompatibilityInfo == null || if (compat != null && (mResCompatibilityInfo == null ||
!mResCompatibilityInfo.equals(compat))) { !mResCompatibilityInfo.equals(compat))) {
@@ -3517,7 +3517,20 @@ public final class ActivityThread {
return changes != 0; return changes != 0;
} }
final Configuration applyCompatConfiguration() {
Configuration config = mConfiguration;
if (mCompatConfiguration == null) {
mCompatConfiguration = new Configuration();
}
mCompatConfiguration.setTo(mConfiguration);
if (mResCompatibilityInfo != null && !mResCompatibilityInfo.supportsScreen()) {
mResCompatibilityInfo.applyToConfiguration(mCompatConfiguration);
config = mCompatConfiguration;
}
return config;
}
final void handleConfigurationChanged(Configuration config, CompatibilityInfo compat) { final void handleConfigurationChanged(Configuration config, CompatibilityInfo compat) {
ArrayList<ComponentCallbacks2> callbacks = null; ArrayList<ComponentCallbacks2> callbacks = null;
@@ -3546,14 +3559,7 @@ public final class ActivityThread {
return; return;
} }
mConfiguration.updateFrom(config); mConfiguration.updateFrom(config);
if (mCompatConfiguration == null) { config = applyCompatConfiguration();
mCompatConfiguration = new Configuration();
}
mCompatConfiguration.setTo(mConfiguration);
if (mResCompatibilityInfo != null && !mResCompatibilityInfo.supportsScreen()) {
mResCompatibilityInfo.applyToConfiguration(mCompatConfiguration);
config = mCompatConfiguration;
}
callbacks = collectComponentCallbacksLocked(false, config); callbacks = collectComponentCallbacksLocked(false, config);
} }
@@ -3752,6 +3758,7 @@ public final class ActivityThread {
* in AppBindData can be safely assumed to be up to date * in AppBindData can be safely assumed to be up to date
*/ */
applyConfigurationToResourcesLocked(data.config, data.compatInfo); applyConfigurationToResourcesLocked(data.config, data.compatInfo);
applyCompatConfiguration();
data.info = getPackageInfoNoCheck(data.appInfo, data.compatInfo); data.info = getPackageInfoNoCheck(data.appInfo, data.compatInfo);

View File

@@ -30,7 +30,7 @@ import android.util.Slog;
*/ */
public class Display { public class Display {
static final String TAG = "Display"; static final String TAG = "Display";
static final boolean DEBUG_DISPLAY_SIZE = false; static final boolean DEBUG_DISPLAY_SIZE = true;
/** /**
* The default Display id. * The default Display id.