summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobrun <tobrun@mapbox.com>2016-05-10 16:41:34 +0200
committerTobrun <tobrun@mapbox.com>2016-05-20 12:00:03 +0200
commit8e57b455c5206cc12f6650051a61351f55ee85d1 (patch)
tree88ed2172c25d63a441e7e05c15d4e2f39f1b43f7
parentbdff43ba955d9340e0e05fd657ee34aa42e4b9a2 (diff)
downloadqtlocation-mapboxgl-8e57b455c5206cc12f6650051a61351f55ee85d1.tar.gz
[android] #3276 - only update thumb Icon when needed, disabled background task for now, added view pool counter
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java35
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java12
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java17
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml7
4 files changed, 48 insertions, 23 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
index 74b850f7dd..da487190ca 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
@@ -250,8 +250,6 @@ public class MapView extends FrameLayout {
if (!context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH)) {
mMapboxMap.getUiSettings().setZoomControlsEnabled(true);
}
-
-
}
private void setInitialState(MapboxMapOptions options) {
@@ -479,19 +477,19 @@ public class MapView extends FrameLayout {
}
mViewMarkerBoundsUpdateTime = currentTime + 300;
- new ViewMarkerInBoundsTask().execute();
- }
-
- public class ViewMarkerInBoundsTask extends AsyncTask<Void, Void, ViewMarkerInBoundsTask.Result> {
+// new ViewMarkerInBoundsTask().execute();
+// }
- @Override
- protected void onPreExecute() {
- super.onPreExecute();
+// public class ViewMarkerInBoundsTask extends AsyncTask<Void, Void, ViewMarkerInBoundsTask.Result> {
+//
+// @Override
+// protected void onPreExecute() {
+// super.onPreExecute();
mViewMarkersUpdateRunning = true;
- }
+// }
- @Override
- protected Result doInBackground(Void... params) {
+// @Override
+// protected Result doInBackground(Void... params) {
List<Marker> inBounds = new ArrayList<>();
Map<Marker, View> outBounds = new HashMap<>();
@@ -544,13 +542,14 @@ public class MapView extends FrameLayout {
}
}
}
+ Result result = new Result(inBounds, outBounds);
- return new Result(inBounds, outBounds);
- }
+// return new Result(inBounds, outBounds);
+// }
- @Override
- protected void onPostExecute(Result result) {
- super.onPostExecute(result);
+// @Override
+// protected void onPostExecute(Result result) {
+// super.onPostExecute(result);
mMapboxMap.setViewMarkersBoundsTaskResult(result);
mViewMarkersUpdateRunning = false;
Log.v(MapboxConstants.TAG, "Amount of child views " + getChildCount());
@@ -573,7 +572,7 @@ public class MapView extends FrameLayout {
return outBounds;
}
}
- }
+// }
/**
* You must call this method from the parent's {@link android.app.Activity#onSaveInstanceState(Bundle)}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java
index f5c5a5702b..8189731ebe 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java
@@ -638,7 +638,7 @@ public class MapboxMap {
// Annotations
//
- void setViewMarkersBoundsTaskResult(MapView.ViewMarkerInBoundsTask.Result result) {
+ void setViewMarkersBoundsTaskResult(MapView.Result result) {
Map<Marker, View> outBoundsMarker = result.getOutBounds();
View convertView;
@@ -660,11 +660,13 @@ public class MapboxMap {
if (adaptedView != null) {
// hack to hide old marker, todo replace with visibility
Icon icon = marker.getIcon();
- if(mViewMarkerBitmap==null){
- Bitmap.Config conf = Bitmap.Config.ARGB_8888;
- mViewMarkerBitmap = Bitmap.createBitmap(icon.getBitmap().getWidth(), icon.getBitmap().getHeight(), conf);
+ if(!icon.getBitmap().equals(mViewMarkerBitmap)) {
+ if (mViewMarkerBitmap == null) {
+ Bitmap.Config conf = Bitmap.Config.ARGB_8888;
+ mViewMarkerBitmap = Bitmap.createBitmap(icon.getBitmap().getWidth(), icon.getBitmap().getHeight(), conf);
+ }
+ marker.setIcon(IconFactory.recreate(icon.getId(), mViewMarkerBitmap));
}
- marker.setIcon(IconFactory.recreate(icon.getId(), mViewMarkerBitmap));
adaptedView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java
index e0ea8d5ed0..34b34f62ce 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java
@@ -74,6 +74,7 @@ public class BulkMarkerActivity extends AppCompatActivity implements AdapterView
});
final View fab = findViewById(R.id.fab);
+ final TextView viewCountView = (TextView) findViewById(R.id.countView);
if (fab != null) {
fab.setOnClickListener(new View.OnClickListener() {
@Override
@@ -81,6 +82,22 @@ public class BulkMarkerActivity extends AppCompatActivity implements AdapterView
if (mMapboxMap != null) {
fab.animate().alpha(0).start();
mMapboxMap.setMarkerViewAdapter(new TextAdapter(BulkMarkerActivity.this));
+ mMapView.addOnMapChangedListener(new MapView.OnMapChangedListener() {
+ @Override
+ public void onMapChanged(@MapView.MapChange int change) {
+ if (change == MapView.REGION_IS_CHANGING || change == MapView.REGION_DID_CHANGE) {
+ if (mMapboxMap.getMarkerViewAdapter() != null) {
+ viewCountView.setText("ViewCache size " + (mMapView.getChildCount()-5));
+ }
+ }
+ }
+ });
+ mMapboxMap.setOnMarkerViewClickListener(new MapboxMap.OnMarkerViewClickListener() {
+ @Override
+ public void onMarkerClick(@NonNull Marker marker, @NonNull View view) {
+ mMapboxMap.selectMarker(marker);
+ }
+ });
}
}
});
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml
index 868aac5f6f..42179aa03d 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml
@@ -28,6 +28,13 @@
app:style_url="@string/style_mapbox_streets"
app:zoom="10" />
+ <TextView
+ android:id="@+id/countView"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/toolbar"
+ android:padding="16dp"
+ android:textSize="20sp"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"