Fix blank tiles on large windows and tilt (#522)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
/*
|
||||
* Copyright 2012 Hannes Janetzek
|
||||
* Copyright 2016-2017 devemux86
|
||||
* Copyright 2016-2018 devemux86
|
||||
* Copyright 2018 Gustl22
|
||||
*
|
||||
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
|
||||
*
|
||||
@@ -18,11 +19,16 @@
|
||||
package org.oscim.android;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.Context;
|
||||
import android.graphics.Point;
|
||||
import android.opengl.GLSurfaceView;
|
||||
import android.os.Build;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.Display;
|
||||
import android.view.GestureDetector;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import org.oscim.android.canvas.AndroidGraphics;
|
||||
import org.oscim.android.gl.AndroidGL;
|
||||
@@ -45,7 +51,7 @@ import javax.microedition.khronos.opengles.GL10;
|
||||
* <p/>
|
||||
* add it your App, have a map!
|
||||
* <p/>
|
||||
* Dont forget to call onPause / onResume!
|
||||
* Don't forget to call onPause / onResume!
|
||||
*/
|
||||
public class MapView extends GLSurfaceView {
|
||||
|
||||
@@ -160,14 +166,18 @@ public class MapView extends GLSurfaceView {
|
||||
static class AndroidMap extends Map {
|
||||
|
||||
private final MapView mMapView;
|
||||
private final WindowManager mWindowManager;
|
||||
|
||||
private boolean mRenderRequest;
|
||||
private boolean mRenderWait;
|
||||
private boolean mPausing;
|
||||
|
||||
private final Point mScreenSize = new Point();
|
||||
|
||||
public AndroidMap(MapView mapView) {
|
||||
super();
|
||||
mMapView = mapView;
|
||||
mWindowManager = (WindowManager) mMapView.getContext().getSystemService(Context.WINDOW_SERVICE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -180,6 +190,29 @@ public class MapView extends GLSurfaceView {
|
||||
return mMapView.getHeight();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getScreenWidth() {
|
||||
return getScreenSize().x;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getScreenHeight() {
|
||||
return getScreenSize().y;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
|
||||
private Point getScreenSize() {
|
||||
Display display = mWindowManager.getDefaultDisplay();
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2)
|
||||
display.getSize(mScreenSize);
|
||||
else {
|
||||
mScreenSize.x = display.getWidth();
|
||||
mScreenSize.y = display.getHeight();
|
||||
}
|
||||
return mScreenSize;
|
||||
}
|
||||
|
||||
private final Runnable mRedrawCb = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
@@ -208,7 +241,7 @@ public class MapView extends GLSurfaceView {
|
||||
if (mPausing)
|
||||
return;
|
||||
|
||||
/** TODO should not need to call prepareFrame in mRedrawCb */
|
||||
/* TODO should not need to call prepareFrame in mRedrawCb */
|
||||
updateMap(false);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user