vtm-android: dont force MapView to use MapActivity context

This commit is contained in:
Hannes Janetzek 2014-01-19 22:39:25 +01:00
parent 35d7d2c0b5
commit 350f6394fd
7 changed files with 12 additions and 49 deletions

@ -1 +1 @@
Subproject commit 6093f28947a9188f58c6a362d196920dfd5d02c8 Subproject commit 2173ae1f3f4349c44908a8be97d93fdce6734094

View File

@ -28,7 +28,7 @@ import android.view.Menu;
public class BaseMapActivity extends MapActivity { public class BaseMapActivity extends MapActivity {
private final static boolean USE_CACHE = false; private final static boolean USE_CACHE = true;
MapView mMapView; MapView mMapView;
VectorTileLayer mBaseLayer; VectorTileLayer mBaseLayer;
@ -42,6 +42,7 @@ public class BaseMapActivity extends MapActivity {
setContentView(R.layout.activity_map); setContentView(R.layout.activity_map);
mMapView = (MapView) findViewById(R.id.mapView); mMapView = (MapView) findViewById(R.id.mapView);
registerMapView(mMapView);
mTileSource = new OSciMap4TileSource(); mTileSource = new OSciMap4TileSource();
mTileSource.setOption("url", "http://opensciencemap.org/tiles/vtm"); mTileSource.setOption("url", "http://opensciencemap.org/tiles/vtm");

View File

@ -43,6 +43,7 @@ public class MarkerOverlayActivity extends MapActivity implements OnItemGestureL
setContentView(R.layout.activity_map); setContentView(R.layout.activity_map);
mMapView = (MapView) findViewById(R.id.mapView); mMapView = (MapView) findViewById(R.id.mapView);
registerMapView(mMapView);
MarkerSymbol symbol = AndroidGraphics.makeMarker(getResources(), MarkerSymbol symbol = AndroidGraphics.makeMarker(getResources(),
R.drawable.marker_poi, R.drawable.marker_poi,

View File

@ -37,6 +37,7 @@ public class PathOverlayActivity extends MapActivity {
setContentView(R.layout.activity_map); setContentView(R.layout.activity_map);
mMapView = (MapView) findViewById(R.id.mapView); mMapView = (MapView) findViewById(R.id.mapView);
registerMapView(mMapView);
for (double lon = -180; lon < 180; lon += 5) { for (double lon = -180; lon < 180; lon += 5) {
List<GeoPoint> pts = new ArrayList<GeoPoint>(); List<GeoPoint> pts = new ArrayList<GeoPoint>();

View File

@ -50,9 +50,9 @@ public class Compass {
private final SensorManager mSensorManager; private final SensorManager mSensorManager;
private final Sensor mSensor; private final Sensor mSensor;
public Compass(MapActivity mapActivity, Map map) { public Compass(Context context, Map map) {
mMap = map; mMap = map;
mSensorManager = (SensorManager) mapActivity mSensorManager = (SensorManager) context
.getSystemService(Context.SENSOR_SERVICE); .getSystemService(Context.SENSOR_SERVICE);
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION); mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);

View File

@ -45,8 +45,6 @@ public abstract class MapActivity extends Activity {
private static final String PREFERENCES_FILE = "MapActivity"; private static final String PREFERENCES_FILE = "MapActivity";
//private static final String KEY_THEME = "Theme";
private static boolean containsViewport(SharedPreferences sharedPreferences) { private static boolean containsViewport(SharedPreferences sharedPreferences) {
return sharedPreferences.contains(KEY_LATITUDE) return sharedPreferences.contains(KEY_LATITUDE)
&& sharedPreferences.contains(KEY_LONGITUDE) && sharedPreferences.contains(KEY_LONGITUDE)
@ -100,8 +98,8 @@ public abstract class MapActivity extends Activity {
* @param map * @param map
* the calling MapView. * the calling MapView.
*/ */
public final void registerMapView(Map map) { public final void registerMapView(MapView map) {
mMap = map; mMap = map.getMap();
SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCES_FILE, SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCES_FILE,
MODE_PRIVATE); MODE_PRIVATE);

View File

@ -35,7 +35,6 @@ import android.util.DisplayMetrics;
import android.view.GestureDetector; import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener; import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
/** /**
@ -91,9 +90,6 @@ public class MapView extends RelativeLayout {
public MapView(Context context, AttributeSet attributeSet) { public MapView(Context context, AttributeSet attributeSet) {
super(context, attributeSet); super(context, attributeSet);
if (!(context instanceof MapActivity))
throw new IllegalArgumentException("context is not an instance of MapActivity");
CanvasAdapter.g = AndroidGraphics.INSTANCE; CanvasAdapter.g = AndroidGraphics.INSTANCE;
AssetAdapter.g = new AndroidAssetAdapter(context); AssetAdapter.g = new AndroidAssetAdapter(context);
GLAdapter.g = new AndroidGL(); GLAdapter.g = new AndroidGL();
@ -108,13 +104,8 @@ public class MapView extends RelativeLayout {
// TODO make this dpi dependent // TODO make this dpi dependent
Tile.SIZE = 400; Tile.SIZE = 400;
MapActivity mapActivity = (MapActivity) context;
mMap = new AndroidMap(this); mMap = new AndroidMap(this);
mCompass = new Compass(context, mMap);
mCompass = new Compass(mapActivity, mMap);
mapActivity.registerMapView(mMap);
mMap.clearMap(); mMap.clearMap();
mMap.updateMap(false); mMap.updateMap(false);
@ -122,9 +113,7 @@ public class MapView extends RelativeLayout {
mGestureDetector = new GestureDetector(context, new OnGestureListener() { mGestureDetector = new GestureDetector(context, new OnGestureListener() {
@Override @Override
public boolean onSingleTapUp(MotionEvent e) { public boolean onSingleTapUp(MotionEvent e) {
boolean handled = mMap.handleGesture(Gesture.TAP, mMotionEvent.wrap(e)); return mMap.handleGesture(Gesture.TAP, mMotionEvent.wrap(e));
mMotionEvent.wrap(null);
return handled;
} }
@Override @Override
@ -139,7 +128,6 @@ public class MapView extends RelativeLayout {
@Override @Override
public void onLongPress(MotionEvent e) { public void onLongPress(MotionEvent e) {
mMap.handleGesture(Gesture.LONG_PRESS, mMotionEvent.wrap(e)); mMap.handleGesture(Gesture.LONG_PRESS, mMotionEvent.wrap(e));
mMotionEvent.wrap(null);
} }
@Override @Override
@ -149,34 +137,9 @@ public class MapView extends RelativeLayout {
@Override @Override
public boolean onDown(MotionEvent e) { public boolean onDown(MotionEvent e) {
boolean handled = mMap.handleGesture(Gesture.PRESS, mMotionEvent.wrap(e)); return mMap.handleGesture(Gesture.PRESS, mMotionEvent.wrap(e));
mMotionEvent.wrap(null);
return handled;
} }
}); });
//mGestureDetector.setOnDoubleTapListener(new OnDoubleTapListener() {
//
// @Override
// public boolean onSingleTapConfirmed(MotionEvent e) {
// return false;
// }
//
// @Override
// public boolean onDoubleTapEvent(MotionEvent e) {
// return false;
// }
//
// @Override
// public boolean onDoubleTap(MotionEvent e) {
// return false;
// }
//});
}
View getView() {
return this;
} }
public Map getMap() { public Map getMap() {
@ -220,7 +183,6 @@ public class MapView extends RelativeLayout {
return true; return true;
} }
// synchronized ???
@Override @Override
protected void onSizeChanged(int width, int height, protected void onSizeChanged(int width, int height,
int oldWidth, int oldHeight) { int oldWidth, int oldHeight) {