[android] - expose MapView#setOfflineRegionDefinition

This commit is contained in:
tobrun
2018-05-16 16:24:18 +02:00
committed by Tobrun
parent 30376f3ce1
commit 4f2002b856
3 changed files with 64 additions and 6 deletions

View File

@@ -14,7 +14,7 @@ import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.mapbox.mapboxsdk.maps.MapView;
import com.mapbox.mapboxsdk.offline.OfflineManager;
import com.mapbox.mapboxsdk.offline.OfflineRegion;
import com.mapbox.mapboxsdk.testapp.R;
@@ -27,10 +27,13 @@ import java.util.List;
/**
* Test activity showing integration of updating metadata of an OfflineRegion.
*/
public class UpdateMetadataActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
public class UpdateMetadataActivity extends AppCompatActivity implements AdapterView.OnItemClickListener,
AdapterView.OnItemLongClickListener {
private OfflineRegionMetadataAdapter adapter;
private MapView mapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -40,6 +43,7 @@ public class UpdateMetadataActivity extends AppCompatActivity implements Adapter
listView.setAdapter(adapter = new OfflineRegionMetadataAdapter(this));
listView.setEmptyView(findViewById(android.R.id.empty));
listView.setOnItemClickListener(this);
listView.setOnItemLongClickListener(this);
}
@Override
@@ -64,6 +68,18 @@ public class UpdateMetadataActivity extends AppCompatActivity implements Adapter
builder.show();
}
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
ViewGroup container = (ViewGroup) findViewById(R.id.container);
container.removeAllViews();
container.addView(mapView = new MapView(view.getContext()));
mapView.setOfflineRegionDefinition(adapter.getItem(position).getDefinition());
mapView.onCreate(null);
mapView.onStart();
mapView.onResume();
return true;
}
private void updateMetadata(OfflineRegion region, byte[] metadata) {
region.updateMetadata(metadata, new OfflineRegion.OfflineRegionUpdateMetadataCallback() {
@Override
@@ -104,6 +120,16 @@ public class UpdateMetadataActivity extends AppCompatActivity implements Adapter
});
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mapView != null) {
mapView.onPause();
mapView.onStop();
mapView.onDestroy();
}
}
private static class OfflineRegionMetadataAdapter extends BaseAdapter {
private Context context;

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/container"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"