Bug 779366 - Part 2c: Query resources for DisplayMetrics, not the WindowManager. r=sriram

This commit is contained in:
Chris Peterson 2012-08-01 14:56:26 -07:00
parent 8ddeeaaf87
commit 237dc8079e
4 changed files with 8 additions and 14 deletions

View File

@ -476,10 +476,8 @@ abstract public class GeckoApp
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
DisplayMetrics metrics = new DisplayMetrics();
((Activity) GeckoApp.mAppContext).getWindowManager().getDefaultDisplay().getMetrics(metrics);
// heightPixels changes during rotation.
DisplayMetrics metrics = GeckoApp.mAppContext.getResources().getDisplayMetrics();
int restrictedHeightSpec = MeasureSpec.makeMeasureSpec((int) (0.75 * metrics.heightPixels), MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, restrictedHeightSpec);
@ -605,16 +603,10 @@ abstract public class GeckoApp
outState.putString(SAVED_STATE_TITLE, tab.getDisplayTitle());
}
public DisplayMetrics getDisplayMetrics() {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
return metrics;
}
public void getAndProcessThumbnailForTab(final Tab tab) {
boolean isSelectedTab = Tabs.getInstance().isSelectedTab(tab);
final Bitmap bitmap = isSelectedTab ? mLayerClient.getBitmap() : null;
if ("about:home".equals(tab.getURL())) {
tab.updateThumbnail(null);
return;

View File

@ -523,7 +523,7 @@ public class GeckoAppShell
if (restoreMode != RESTORE_NONE)
combinedArgs += " -restoremode " + restoreMode;
DisplayMetrics metrics = GeckoApp.mAppContext.getDisplayMetrics();
DisplayMetrics metrics = GeckoApp.mAppContext.getResources().getDisplayMetrics();
combinedArgs += " -width " + metrics.widthPixels + " -height " + metrics.heightPixels;
GeckoApp.mAppContext.runOnUiThread(new Runnable() {
@ -1394,7 +1394,7 @@ public class GeckoAppShell
public static int getDpi() {
if (sDensityDpi == 0) {
sDensityDpi = GeckoApp.mAppContext.getDisplayMetrics().densityDpi;
sDensityDpi = GeckoApp.mAppContext.getResources().getDisplayMetrics().densityDpi;
}
return sDensityDpi;

View File

@ -8,6 +8,7 @@ package org.mozilla.gecko;
import org.mozilla.gecko.gfx.DisplayPortMetrics;
import org.mozilla.gecko.gfx.ViewportMetrics;
import android.content.res.Resources;
import android.graphics.Point;
import android.graphics.PointF;
import android.graphics.Rect;
@ -256,7 +257,8 @@ public class GeckoEvent {
}
} else {
float size = event.getSize(eventIndex);
DisplayMetrics displaymetrics = GeckoApp.mAppContext.getDisplayMetrics();
Resources resources = GeckoApp.mAppContext.getResources();
DisplayMetrics displaymetrics = resources.getDisplayMetrics();
size = size*Math.min(displaymetrics.heightPixels, displaymetrics.widthPixels);
mPointRadii[index] = new Point((int)size,(int)size);
mOrientations[index] = 0;

View File

@ -840,7 +840,7 @@ public class GeckoInputConnection
outAttrs.actionLabel = mIMEActionHint;
GeckoApp app = GeckoApp.mAppContext;
DisplayMetrics metrics = app.getDisplayMetrics();
DisplayMetrics metrics = app.getResources().getDisplayMetrics();
if (Math.min(metrics.widthPixels, metrics.heightPixels) > INLINE_IME_MIN_DISPLAY_SIZE) {
// prevent showing full-screen keyboard only when the screen is tall enough
// to show some reasonable amount of the page (see bug 752709)