mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 779366 - Part 2: Move DisplayMetrics to ConfigurationUtils. r=sriram
This commit is contained in:
parent
4251f0fb5a
commit
84fdc2c235
@ -13,6 +13,7 @@ import org.mozilla.gecko.gfx.LayerView;
|
||||
import org.mozilla.gecko.gfx.PluginLayer;
|
||||
import org.mozilla.gecko.gfx.PointUtils;
|
||||
import org.mozilla.gecko.ui.PanZoomController;
|
||||
import org.mozilla.gecko.util.ConfigurationUtils;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
@ -476,8 +477,7 @@ 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);
|
||||
DisplayMetrics metrics = ConfigurationUtils.getDisplayMetrics(mAppContext);
|
||||
|
||||
// heightPixels changes during rotation.
|
||||
int restrictedHeightSpec = MeasureSpec.makeMeasureSpec((int) (0.75 * metrics.heightPixels), MeasureSpec.AT_MOST);
|
||||
@ -605,12 +605,6 @@ 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;
|
||||
|
@ -14,6 +14,7 @@ import org.mozilla.gecko.gfx.LayerController;
|
||||
import org.mozilla.gecko.gfx.LayerView;
|
||||
import org.mozilla.gecko.gfx.RectUtils;
|
||||
import org.mozilla.gecko.gfx.ScreenshotLayer;
|
||||
import org.mozilla.gecko.util.ConfigurationUtils;
|
||||
import org.mozilla.gecko.util.FloatUtils;
|
||||
|
||||
import org.json.JSONObject;
|
||||
@ -524,7 +525,7 @@ public class GeckoAppShell
|
||||
if (restoreMode != RESTORE_NONE)
|
||||
combinedArgs += " -restoremode " + restoreMode;
|
||||
|
||||
DisplayMetrics metrics = GeckoApp.mAppContext.getDisplayMetrics();
|
||||
DisplayMetrics metrics = ConfigurationUtils.getDisplayMetrics(GeckoApp.mAppContext);
|
||||
combinedArgs += " -width " + metrics.widthPixels + " -height " + metrics.heightPixels;
|
||||
|
||||
GeckoApp.mAppContext.runOnUiThread(new Runnable() {
|
||||
@ -1395,7 +1396,7 @@ public class GeckoAppShell
|
||||
|
||||
public static int getDpi() {
|
||||
if (sDensityDpi == 0) {
|
||||
sDensityDpi = GeckoApp.mAppContext.getDisplayMetrics().densityDpi;
|
||||
sDensityDpi = ConfigurationUtils.getDisplayMetrics(GeckoApp.mAppContext).densityDpi;
|
||||
}
|
||||
|
||||
return sDensityDpi;
|
||||
|
@ -7,6 +7,7 @@ package org.mozilla.gecko;
|
||||
|
||||
import org.mozilla.gecko.gfx.DisplayPortMetrics;
|
||||
import org.mozilla.gecko.gfx.ViewportMetrics;
|
||||
import org.mozilla.gecko.util.ConfigurationUtils;
|
||||
|
||||
import android.graphics.Point;
|
||||
import android.graphics.PointF;
|
||||
@ -256,7 +257,7 @@ public class GeckoEvent {
|
||||
}
|
||||
} else {
|
||||
float size = event.getSize(eventIndex);
|
||||
DisplayMetrics displaymetrics = GeckoApp.mAppContext.getDisplayMetrics();
|
||||
DisplayMetrics displaymetrics = ConfigurationUtils.getDisplayMetrics(GeckoApp.mAppContext);
|
||||
size = size*Math.min(displaymetrics.heightPixels, displaymetrics.widthPixels);
|
||||
mPointRadii[index] = new Point((int)size,(int)size);
|
||||
mOrientations[index] = 0;
|
||||
|
@ -7,6 +7,7 @@ package org.mozilla.gecko;
|
||||
|
||||
import org.mozilla.gecko.gfx.InputConnectionHandler;
|
||||
import org.mozilla.gecko.gfx.LayerController;
|
||||
import org.mozilla.gecko.util.ConfigurationUtils;
|
||||
|
||||
import android.R;
|
||||
import android.content.Context;
|
||||
@ -839,8 +840,8 @@ public class GeckoInputConnection
|
||||
else if (mIMEActionHint != null && mIMEActionHint.length() != 0)
|
||||
outAttrs.actionLabel = mIMEActionHint;
|
||||
|
||||
GeckoApp app = GeckoApp.mAppContext;
|
||||
DisplayMetrics metrics = app.getDisplayMetrics();
|
||||
GeckoApp context = GeckoApp.mAppContext;
|
||||
DisplayMetrics metrics = ConfigurationUtils.getDisplayMetrics(context);
|
||||
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)
|
||||
@ -856,11 +857,11 @@ public class GeckoInputConnection
|
||||
}
|
||||
|
||||
String prevInputMethod = mCurrentInputMethod;
|
||||
mCurrentInputMethod = InputMethods.getCurrentInputMethod(app);
|
||||
mCurrentInputMethod = InputMethods.getCurrentInputMethod(context);
|
||||
|
||||
// If the user has changed IMEs, then notify input method observers.
|
||||
if (mCurrentInputMethod != prevInputMethod) {
|
||||
FormAssistPopup popup = app.mFormAssistPopup;
|
||||
FormAssistPopup popup = context.mFormAssistPopup;
|
||||
if (popup != null) {
|
||||
popup.onInputMethodChanged(mCurrentInputMethod);
|
||||
}
|
||||
|
@ -4,6 +4,8 @@
|
||||
|
||||
package org.mozilla.gecko;
|
||||
|
||||
import org.mozilla.gecko.util.ConfigurationUtils;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.util.Log;
|
||||
@ -103,7 +105,7 @@ public class GeckoScreenOrientationListener
|
||||
// NOTE: this is public so OrientationEventListenerImpl can access it.
|
||||
// Unfortunately, Java doesn't know about friendship.
|
||||
public void updateScreenOrientation() {
|
||||
int rotation = GeckoApp.mAppContext.getWindowManager().getDefaultDisplay().getRotation();
|
||||
int rotation = ConfigurationUtils.getDefaultDisplay(GeckoApp.mAppContext).getRotation();
|
||||
short previousOrientation = mOrientation;
|
||||
|
||||
if (rotation == Surface.ROTATION_0) {
|
||||
|
@ -28,6 +28,7 @@ import org.mozilla.gecko.GeckoApp;
|
||||
import org.mozilla.gecko.GeckoProfile;
|
||||
import org.mozilla.gecko.R;
|
||||
import org.mozilla.gecko.WebAppAllocator;
|
||||
import org.mozilla.gecko.util.ConfigurationUtils;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
@ -94,8 +95,7 @@ public class LauncherShortcuts extends Activity {
|
||||
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, title);
|
||||
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutintent);
|
||||
|
||||
DisplayMetrics dm = new DisplayMetrics();
|
||||
getWindowManager().getDefaultDisplay().getMetrics(dm);
|
||||
DisplayMetrics dm = ConfigurationUtils.getDisplayMetrics(this);
|
||||
int size;
|
||||
switch (dm.densityDpi) {
|
||||
case DisplayMetrics.DENSITY_MEDIUM:
|
||||
|
@ -17,6 +17,7 @@ DIST_FILES = package-name.txt
|
||||
include $(topsrcdir)/mobile/android/base/android-sync-files.mk
|
||||
|
||||
UTIL_JAVA_FILES := \
|
||||
util/ConfigurationUtils.java \
|
||||
util/FloatUtils.java \
|
||||
$(NULL)
|
||||
|
||||
|
@ -7,6 +7,7 @@ package org.mozilla.gecko.gfx;
|
||||
|
||||
import org.mozilla.gecko.ui.PanZoomController;
|
||||
import org.mozilla.gecko.ui.SimpleScaleGestureDetector;
|
||||
import org.mozilla.gecko.util.ConfigurationUtils;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
@ -15,6 +16,7 @@ import android.graphics.BitmapFactory;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.PointF;
|
||||
import android.graphics.RectF;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.GestureDetector;
|
||||
|
||||
/**
|
||||
@ -67,7 +69,8 @@ public class LayerController {
|
||||
mContext = context;
|
||||
|
||||
mForceRedraw = true;
|
||||
mViewportMetrics = new ImmutableViewportMetrics(new ViewportMetrics());
|
||||
DisplayMetrics metrics = ConfigurationUtils.getDisplayMetrics(context);
|
||||
mViewportMetrics = new ImmutableViewportMetrics(new ViewportMetrics(metrics));
|
||||
mPanZoomController = new PanZoomController(this);
|
||||
mCheckerboardShouldShowChecks = true;
|
||||
}
|
||||
|
@ -5,7 +5,6 @@
|
||||
|
||||
package org.mozilla.gecko.gfx;
|
||||
|
||||
import org.mozilla.gecko.GeckoApp;
|
||||
import org.mozilla.gecko.util.FloatUtils;
|
||||
|
||||
import org.json.JSONException;
|
||||
@ -19,7 +18,7 @@ import android.util.DisplayMetrics;
|
||||
* ViewportMetrics manages state and contains some utility functions related to
|
||||
* the page viewport for the Gecko layer client to use.
|
||||
*/
|
||||
public class ViewportMetrics {
|
||||
public final class ViewportMetrics {
|
||||
private static final String LOGTAG = "GeckoViewportMetrics";
|
||||
|
||||
private RectF mPageRect;
|
||||
@ -27,9 +26,7 @@ public class ViewportMetrics {
|
||||
private RectF mViewportRect;
|
||||
private float mZoomFactor;
|
||||
|
||||
public ViewportMetrics() {
|
||||
DisplayMetrics metrics = GeckoApp.mAppContext.getDisplayMetrics();
|
||||
|
||||
public ViewportMetrics(DisplayMetrics metrics) {
|
||||
mPageRect = new RectF(0, 0, metrics.widthPixels, metrics.heightPixels);
|
||||
mCssPageRect = new RectF(0, 0, metrics.widthPixels, metrics.heightPixels);
|
||||
mViewportRect = new RectF(0, 0, metrics.widthPixels, metrics.heightPixels);
|
||||
@ -59,7 +56,6 @@ public class ViewportMetrics {
|
||||
mZoomFactor = viewport.zoomFactor;
|
||||
}
|
||||
|
||||
|
||||
public ViewportMetrics(JSONObject json) throws JSONException {
|
||||
float x = (float)json.getDouble("x");
|
||||
float y = (float)json.getDouble("y");
|
||||
@ -81,6 +77,9 @@ public class ViewportMetrics {
|
||||
mZoomFactor = zoom;
|
||||
}
|
||||
|
||||
private ViewportMetrics() {
|
||||
}
|
||||
|
||||
public PointF getOrigin() {
|
||||
return new PointF(mViewportRect.left, mViewportRect.top);
|
||||
}
|
||||
@ -227,4 +226,3 @@ public class ViewportMetrics {
|
||||
return buff.toString();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -10,8 +10,8 @@ import org.mozilla.gecko.GeckoAppShell;
|
||||
import org.mozilla.gecko.GeckoEvent;
|
||||
import org.mozilla.gecko.GeckoEventListener;
|
||||
import org.mozilla.gecko.gfx.LayerController;
|
||||
import org.mozilla.gecko.gfx.ViewportMetrics;
|
||||
import org.mozilla.gecko.gfx.PointUtils;
|
||||
import org.mozilla.gecko.gfx.ViewportMetrics;
|
||||
import org.mozilla.gecko.util.FloatUtils;
|
||||
|
||||
import org.json.JSONArray;
|
||||
|
33
mobile/android/base/util/ConfigurationUtils.java
Normal file
33
mobile/android/base/util/ConfigurationUtils.java
Normal file
@ -0,0 +1,33 @@
|
||||
/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package org.mozilla.gecko.util;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.Display;
|
||||
import android.view.WindowManager;
|
||||
|
||||
public final class ConfigurationUtils {
|
||||
private ConfigurationUtils() {}
|
||||
|
||||
public static DisplayMetrics getDisplayMetrics(Context context) {
|
||||
DisplayMetrics metrics = new DisplayMetrics();
|
||||
getDefaultDisplay(context).getMetrics(metrics);
|
||||
return metrics;
|
||||
}
|
||||
|
||||
public static int getDisplayRotation(Context context) {
|
||||
return getDefaultDisplay(context).getRotation();
|
||||
}
|
||||
|
||||
public static Display getDefaultDisplay(Context context) {
|
||||
return getWindowManager(context).getDefaultDisplay();
|
||||
}
|
||||
|
||||
private static WindowManager getWindowManager(Context context) {
|
||||
return (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user