diff --git a/MapboxAndroidDemo/build.gradle b/MapboxAndroidDemo/build.gradle
index eeed78c1d..9c2e74bc0 100644
--- a/MapboxAndroidDemo/build.gradle
+++ b/MapboxAndroidDemo/build.gradle
@@ -1,5 +1,6 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
+apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.google.firebase.firebase-perf'
apply plugin: 'com.github.triplet.play'
apply from: "$project.rootDir/gradle/script-git-version.gradle"
diff --git a/MapboxAndroidDemo/src/main/AndroidManifest.xml b/MapboxAndroidDemo/src/main/AndroidManifest.xml
index 2ca74d140..5ac270c7e 100644
--- a/MapboxAndroidDemo/src/main/AndroidManifest.xml
+++ b/MapboxAndroidDemo/src/main/AndroidManifest.xml
@@ -147,6 +147,13 @@
android:name="android.support.PARENT_ACTIVITY"
android:value="com.mapbox.mapboxandroiddemo.MainActivity" />
+
+
+
diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/MainActivity.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/MainActivity.java
index f673a1fb9..a218a2a3f 100644
--- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/MainActivity.java
+++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/MainActivity.java
@@ -15,16 +15,14 @@
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
-import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Switch;
+import android.widget.TextView;
-import com.afollestad.materialdialogs.DialogAction;
-import com.afollestad.materialdialogs.MaterialDialog;
import com.github.javiersantos.materialstyleddialogs.MaterialStyledDialog;
import com.google.firebase.perf.metrics.AddTrace;
import com.mapbox.mapboxandroiddemo.adapter.ExampleAdapter;
@@ -49,6 +47,7 @@
import com.mapbox.mapboxandroiddemo.examples.dds.ChoroplethZoomChangeActivity;
import com.mapbox.mapboxandroiddemo.examples.dds.CircleLayerClusteringActivity;
import com.mapbox.mapboxandroiddemo.examples.dds.CreateHotspotsActivity;
+import com.mapbox.mapboxandroiddemo.examples.dds.ExpressionIntegrationActivity;
import com.mapbox.mapboxandroiddemo.examples.dds.HeatmapActivity;
import com.mapbox.mapboxandroiddemo.examples.dds.ImageClusteringActivity;
import com.mapbox.mapboxandroiddemo.examples.dds.InfoWindowSymbolLayerActivity;
@@ -57,7 +56,6 @@
import com.mapbox.mapboxandroiddemo.examples.dds.MultipleHeatmapStylingActivity;
import com.mapbox.mapboxandroiddemo.examples.dds.StyleCirclesCategoricallyActivity;
import com.mapbox.mapboxandroiddemo.examples.dds.StyleLineIdentityPropertyActivity;
-import com.mapbox.mapboxandroiddemo.examples.dds.ExpressionIntegrationActivity;
import com.mapbox.mapboxandroiddemo.examples.extrusions.AdjustExtrusionLightActivity;
import com.mapbox.mapboxandroiddemo.examples.extrusions.Indoor3DMapActivity;
import com.mapbox.mapboxandroiddemo.examples.extrusions.MarathonExtrusionActivity;
@@ -71,13 +69,14 @@
import com.mapbox.mapboxandroiddemo.examples.javaservices.SimplifyPolylineActivity;
import com.mapbox.mapboxandroiddemo.examples.javaservices.StaticImageActivity;
import com.mapbox.mapboxandroiddemo.examples.labs.AnimatedImageGifActivity;
+import com.mapbox.mapboxandroiddemo.examples.labs.CalendarIntegrationActivity;
import com.mapbox.mapboxandroiddemo.examples.labs.DashedLineDirectionsPickerActivity;
import com.mapbox.mapboxandroiddemo.examples.labs.IndoorMapActivity;
import com.mapbox.mapboxandroiddemo.examples.labs.InsetMapActivity;
import com.mapbox.mapboxandroiddemo.examples.labs.LocationPickerActivity;
-import com.mapbox.mapboxandroiddemo.examples.labs.PulsingLayerOpacityColorActivity;
import com.mapbox.mapboxandroiddemo.examples.labs.MarkerFollowingRouteActivity;
import com.mapbox.mapboxandroiddemo.examples.labs.PictureInPictureActivity;
+import com.mapbox.mapboxandroiddemo.examples.labs.PulsingLayerOpacityColorActivity;
import com.mapbox.mapboxandroiddemo.examples.labs.RecyclerViewOnMapActivity;
import com.mapbox.mapboxandroiddemo.examples.labs.SnakingDirectionsRouteActivity;
import com.mapbox.mapboxandroiddemo.examples.labs.SpaceStationLocationActivity;
@@ -85,6 +84,7 @@
import com.mapbox.mapboxandroiddemo.examples.offline.OfflineManagerActivity;
import com.mapbox.mapboxandroiddemo.examples.offline.SimpleOfflineMapActivity;
import com.mapbox.mapboxandroiddemo.examples.plugins.BuildingPluginActivity;
+import com.mapbox.mapboxandroiddemo.examples.plugins.KotlinLocationPluginActivity;
import com.mapbox.mapboxandroiddemo.examples.plugins.LocalizationPluginActivity;
import com.mapbox.mapboxandroiddemo.examples.plugins.LocationPluginActivity;
import com.mapbox.mapboxandroiddemo.examples.plugins.LocationPluginFragmentActivity;
@@ -118,13 +118,14 @@
import com.mapbox.mapboxandroiddemo.examples.styles.TransparentBackgroundActivity;
import com.mapbox.mapboxandroiddemo.examples.styles.VectorSourceActivity;
import com.mapbox.mapboxandroiddemo.examples.styles.ZoomDependentFillColorActivity;
-import com.mapbox.mapboxandroiddemo.examples.labs.CalendarIntegrationActivity;
import com.mapbox.mapboxandroiddemo.model.ExampleItemModel;
import com.mapbox.mapboxandroiddemo.utils.ItemClickSupport;
import com.mapbox.mapboxandroiddemo.utils.SettingsDialogView;
import java.util.ArrayList;
-import java.util.Iterator;
+import java.util.List;
+
+import timber.log.Timber;
import static com.mapbox.mapboxandroiddemo.commons.AnalyticsTracker.CLICKED_ON_INFO_DIALOG_NOT_NOW;
import static com.mapbox.mapboxandroiddemo.commons.AnalyticsTracker.CLICKED_ON_INFO_DIALOG_START_LEARNING;
@@ -137,46 +138,54 @@
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
// Used to track internal navigation to the Snapshotter section
- public static String EXTRA_NAV = "EXTRA_NAV";
+ private static final String EXTRA_NAV = "EXTRA_NAV";
+ private static final String STATE_CURRENT_CATEGORY = "STATE_CURRENT_CATEGORY";
+ private static final String STATE_TOOLBAR_TITLE = "STATE_TOOLBAR_TITLE";
+ private static final String STATE_SHOW_JAVA = "STATE_SHOW_JAVA";
+
+ private final ArrayList exampleItemModels = new ArrayList<>();
- private ArrayList exampleItemModels;
- private ExampleAdapter adapter;
- private int currentCategory = R.id.nav_basics;
- private RecyclerView recyclerView;
- private Switch analyticsOptOutSwitch;
- private boolean loggedIn;
private Toolbar toolbar;
private String categoryTitleForToolbar;
+
private AnalyticsTracker analytics;
+ private ExampleAdapter adapter;
+ private RecyclerView recyclerView;
+ private TextView noExamplesTv;
+
+ private boolean loggedIn;
+ private int currentCategory = R.id.nav_basics;
+ private boolean showJavaExamples = true;
+
@Override
@AddTrace(name = "onCreateMainActivity")
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
- toolbar = (Toolbar) findViewById(R.id.toolbar);
+ toolbar = findViewById(R.id.toolbar);
+ setSupportActionBar(toolbar);
- if (savedInstanceState == null) {
- setSupportActionBar(toolbar);
- }
+ noExamplesTv = findViewById(R.id.no_examples_tv);
analytics = AnalyticsTracker.getInstance(this, false);
- exampleItemModels = new ArrayList<>();
+ initializeModels();
// Create the adapter to convert the array to views
- adapter = new ExampleAdapter(this, exampleItemModels);
+ adapter = new ExampleAdapter(this);
// Attach the adapter to a ListView
- recyclerView = (RecyclerView) findViewById(R.id.details_list);
+ recyclerView = findViewById(R.id.details_list);
if (recyclerView != null) {
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
}
if (savedInstanceState != null) {
- currentCategory = savedInstanceState.getInt("CURRENT_CATEGORY");
- categoryTitleForToolbar = savedInstanceState.getString("CURRENT_CATEGORY_TOOLBAR_TITLE");
+ currentCategory = savedInstanceState.getInt(STATE_CURRENT_CATEGORY);
+ categoryTitleForToolbar = savedInstanceState.getString(STATE_TOOLBAR_TITLE);
+ showJavaExamples = savedInstanceState.getBoolean(STATE_SHOW_JAVA);
toolbar.setTitle(categoryTitleForToolbar);
listItems(currentCategory);
} else if (getIntent().getIntExtra(EXTRA_NAV, -1) == R.id.nav_snapshot_image_generator) {
@@ -186,26 +195,24 @@ protected void onCreate(Bundle savedInstanceState) {
listItems(R.id.nav_basics);
}
- ItemClickSupport.addTo(recyclerView).setOnItemClickListener(new ItemClickSupport.OnItemClickListener() {
- @Override
- @AddTrace(name = "onItemClicked")
- public void onItemClicked(RecyclerView recyclerView, int position, View view) {
- if (currentCategory == R.id.nav_lab && position == 0) {
- return;
- } else if (currentCategory == R.id.nav_java_services && position == 0) {
- return;
- } else if (currentCategory == R.id.nav_query_map && position == 0) {
- return;
+ // Item click listener
+ ItemClickSupport.addTo(recyclerView).setOnItemClickListener((recyclerView, position, view) -> {
+ ExampleItemModel model = adapter.getItemAt(position);
+
+ // in case it's an info tile
+ if (model != null) {
+ if (showJavaExamples) {
+ startActivity(model.getJavaActivity());
+ } else {
+ startActivity(model.getKotlinActivity());
}
- startActivity(exampleItemModels.get(position).getActivity());
- analytics.clickedOnIndividualExample(getString(exampleItemModels.get(position).getTitle()), loggedIn);
- analytics.viewedScreen(getString(exampleItemModels.get(position)
- .getTitle()), loggedIn);
+ analytics.clickedOnIndividualExample(getString(model.getTitle()), loggedIn);
+ analytics.viewedScreen(getString(model.getTitle()), loggedIn);
}
});
- DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
+ DrawerLayout drawer = findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
if (drawer != null) {
@@ -213,7 +220,7 @@ public void onItemClicked(RecyclerView recyclerView, int position, View view) {
}
toggle.syncState();
- NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
+ NavigationView navigationView = findViewById(R.id.nav_view);
if (navigationView != null) {
navigationView.setNavigationItemSelectedListener(this);
navigationView.setCheckedItem(R.id.nav_basics);
@@ -227,7 +234,7 @@ public void onItemClicked(RecyclerView recyclerView, int position, View view) {
analytics.viewedScreen(MainActivity.class.getSimpleName(), loggedIn);
checkForFirstTimeOpen();
} else {
- analytics.trackEvent(SKIPPED_ACCOUNT_CREATION, loggedIn);
+ analytics.trackEvent(SKIPPED_ACCOUNT_CREATION, false);
PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit()
.putBoolean(SKIPPED_KEY, true)
.apply();
@@ -237,7 +244,7 @@ public void onItemClicked(RecyclerView recyclerView, int position, View view) {
@Override
public void onBackPressed() {
- DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
+ DrawerLayout drawer = findViewById(R.id.drawer_layout);
if (drawer != null) {
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
@@ -261,13 +268,15 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) {
}
if (id != currentCategory && id != R.id.settings_in_nav_drawer) {
+ currentCategory = id;
listItems(id);
categoryTitleForToolbar = item.getTitle().toString();
toolbar.setTitle(categoryTitleForToolbar);
analytics.clickedOnNavDrawerSection(
item.getTitle().toString(), loggedIn);
}
- DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
+
+ DrawerLayout drawer = findViewById(R.id.drawer_layout);
if (drawer != null) {
drawer.closeDrawer(GravityCompat.START);
}
@@ -276,607 +285,27 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) {
@AddTrace(name = "listItems")
private void listItems(int id) {
- exampleItemModels.clear();
- switch (id) {
- case R.id.nav_styles:
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_default_title,
- R.string.activity_styles_default_description,
- new Intent(MainActivity.this, DefaultStyleActivity.class),
- R.string.activity_styles_default_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_basic_symbol_layer_title,
- R.string.activity_styles_basic_symbol_layer_description,
- new Intent(MainActivity.this, BasicSymbolLayerActivity.class),
- R.string.activity_styles_symbol_layer_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_line_layer_title,
- R.string.activity_styles_line_layer_description,
- new Intent(MainActivity.this, LineLayerActivity.class),
- R.string.activity_styles_line_layer_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_color_switcher_title,
- R.string.activity_styles_color_switcher_description,
- new Intent(MainActivity.this, ColorSwitcherActivity.class),
- R.string.activity_styles_color_switcher_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_vector_source_title,
- R.string.activity_styles_vector_source_description,
- new Intent(MainActivity.this, VectorSourceActivity.class),
- R.string.activity_styles_vector_source_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_add_wms_source_title,
- R.string.activity_styles_add_wms_source_description,
- new Intent(MainActivity.this, AddWmsSourceActivity.class),
- R.string.activity_styles_add_wms_source_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_geojson_layer_in_stack_title,
- R.string.activity_styles_geojson_layer_in_stack_description,
- new Intent(MainActivity.this, GeojsonLayerInStackActivity.class),
- R.string.activity_styles_geojson_layer_in_stack_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_adjust_layer_opacity_title,
- R.string.activity_styles_adjust_layer_opacity_description,
- new Intent(MainActivity.this, AdjustLayerOpacityActivity.class),
- R.string.activity_styles_adjust_layer_opacity_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_zoom_dependent_fill_color_title,
- R.string.activity_styles_zoom_dependent_fill_color_description,
- new Intent(MainActivity.this, ZoomDependentFillColorActivity.class),
- R.string.activity_styles_zoom_dependent_fill_color_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_language_switch_title,
- R.string.activity_styles_language_switch_description,
- new Intent(MainActivity.this, LanguageSwitchActivity.class),
- R.string.activity_styles_language_switch_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_show_hide_layer_title,
- R.string.activity_styles_show_hide_layer_description,
- new Intent(MainActivity.this, ShowHideLayersActivity.class),
- R.string.activity_styles_show_hide_layer_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_mapbox_studio_title,
- R.string.activity_styles_mapbox_studio_description,
- new Intent(MainActivity.this, MapboxStudioStyleActivity.class),
- R.string.activity_styles_mapbox_studio_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_local_style_or_raster_source_title,
- R.string.activity_styles_local_style_or_raster_source_description,
- new Intent(MainActivity.this, LocalStyleSourceActivity.class),
- R.string.activity_styles_local_style_or_raster_source_url, false, BuildConfig.MIN_SDK_VERSION
- ));
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_style_image_source_title,
- R.string.activity_style_image_source_description,
- new Intent(MainActivity.this, ImageSourceActivity.class),
- R.string.activity_style_image_source_url, false, BuildConfig.MIN_SDK_VERSION
- ));
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_style_image_source_time_lapse_title,
- R.string.activity_style_image_source_time_lapse_description,
- new Intent(MainActivity.this, ImageSourceTimeLapseActivity.class),
- R.string.activity_style_image_source_time_lapse_url, false, BuildConfig.MIN_SDK_VERSION
- ));
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_hillshade_title,
- R.string.activity_style_hillshade_description,
- new Intent(MainActivity.this, HillShadeActivity.class),
- R.string.activity_style_hillshade_url, false, BuildConfig.MIN_SDK_VERSION
- ));
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_fade_switch_title,
- R.string.activity_styles_fade_switch_description,
- new Intent(MainActivity.this, StyleFadeSwitchActivity.class),
- R.string.activity_styles_fade_switch_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_transparent_background_title,
- R.string.activity_styles_transparent_background_description,
- new Intent(MainActivity.this, TransparentBackgroundActivity.class),
- R.string.activity_styles_transparent_background_url, false, BuildConfig.MIN_SDK_VERSION));
-
- currentCategory = R.id.nav_styles;
- break;
- case R.id.nav_extrusions:
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_extrusions_population_density_extrusions_title,
- R.string.activity_extrusions_population_density_extrusions_description,
- new Intent(MainActivity.this, PopulationDensityExtrusionActivity.class),
- R.string.activity_extrusions_population_density_extrusions_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_extrusions_catalina_marathon_extrusions_title,
- R.string.activity_extrusions_catalina_marathon_extrusions_description,
- new Intent(MainActivity.this, MarathonExtrusionActivity.class),
- R.string.activity_extrusions_catalina_marathon_extrusions_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_extrusions_adjust_extrusions_title,
- R.string.activity_extrusions_adjust_extrusions_description,
- new Intent(MainActivity.this, AdjustExtrusionLightActivity.class),
- R.string.activity_extrusions_adjust_extrusions_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_extrusions_indoor_3d_title,
- R.string.activity_extrusions_indoor_3d_description,
- new Intent(MainActivity.this, Indoor3DMapActivity.class),
- R.string.activity_extrusions_indoor_3d_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_extrusions_rotate_extrusions_title,
- R.string.activity_extrusions_rotate_extrusions_description,
- new Intent(MainActivity.this, RotationExtrusionActivity.class),
- R.string.activity_extrusions_rotate_extrusions_url, false, BuildConfig.MIN_SDK_VERSION));
-
- currentCategory = R.id.nav_extrusions;
- break;
-
- case R.id.nav_plugins:
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_plugins_traffic_plugin_title,
- R.string.activity_plugins_traffic_plugin_description,
- new Intent(MainActivity.this, TrafficPluginActivity.class),
- R.string.activity_plugins_traffic_plugin_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_plugins_building_plugin_title,
- R.string.activity_plugins_building_plugin_description,
- new Intent(MainActivity.this, BuildingPluginActivity.class),
- R.string.activity_plugins_building_plugin_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_plugins_location_plugin_title,
- R.string.activity_plugins_location_plugin_description,
- new Intent(MainActivity.this, LocationPluginActivity.class),
- R.string.activity_plugins_location_plugin_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_plugins_places_plugin_title, R.string.activity_plugins_places_plugin_description,
- new Intent(MainActivity.this, PlacesPluginActivity.class),
- R.string.activity_plugins_places_plugin_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_plugins_localization_plugin_title,
- R.string.activity_plugins_localization_plugin_description,
- new Intent(MainActivity.this, LocalizationPluginActivity.class),
- R.string.activity_plugins_localization_plugin_url, false, BuildConfig.MIN_SDK_VERSION)
- );
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_plugins_place_picker_plugin_title,
- R.string.activity_plugins_place_picker_plugin_description,
- new Intent(MainActivity.this, PlaceSelectionPluginActivity.class),
- R.string.activity_plugins_place_picker_plugin_url, false, BuildConfig.MIN_SDK_VERSION)
- );
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_user_location_map_frag_title,
- R.string.activity_user_location_map_frag_plugin_description,
- new Intent(MainActivity.this, LocationPluginFragmentActivity.class),
- R.string.activity_user_location_fragment_plugin_url, false, BuildConfig.MIN_SDK_VERSION)
- );
-
- currentCategory = R.id.nav_plugins;
- break;
-
- case R.id.nav_annotations:
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_annotation_marker_title,
- R.string.activity_annotation_custom_marker_description,
- new Intent(MainActivity.this, DrawMarkerActivity.class),
- R.string.activity_annotation_marker_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_annotation_custom_marker_title,
- R.string.activity_annotation_custom_marker_description,
- new Intent(MainActivity.this, DrawCustomMarkerActivity.class),
- R.string.activity_annotation_custom_marker_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_annotation_geojson_line_title,
- R.string.activity_annotation_geojson_line_description,
- new Intent(MainActivity.this, DrawGeojsonLineActivity.class),
- R.string.activity_annotation_geojson_line_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_annotation_polygon_title,
- R.string.activity_annotation_polygon_description,
- new Intent(MainActivity.this, DrawPolygonActivity.class),
- R.string.activity_annotation_polygon_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_annotation_polygon_holes_title,
- R.string.activity_annotation_polygon_holes_description,
- new Intent(MainActivity.this, PolygonHolesActivity.class),
- R.string.activity_annotation_polygon_holes_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_annotation_animated_marker_title,
- R.string.activity_annotation_animated_marker_description,
- new Intent(MainActivity.this, AnimatedMarkerActivity.class),
- R.string.activity_annotation_animated_marker_url, false, BuildConfig.MIN_SDK_VERSION));
-
- currentCategory = R.id.nav_annotations;
- break;
-
- case R.id.nav_camera:
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_camera_animate_title,
- R.string.activity_camera_animate_description,
- new Intent(MainActivity.this, AnimateMapCameraActivity.class),
- R.string.activity_camera_animate_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_camera_bounding_box_title,
- R.string.activity_camera_bounding_box_description,
- new Intent(MainActivity.this, BoundingBoxCameraActivity.class),
- R.string.activity_camera_bounding_box_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_camera_restrict_title,
- R.string.activity_camera_restrict_description,
- new Intent(MainActivity.this, RestrictCameraActivity.class),
- R.string.activity_camera_restrict_url, false, BuildConfig.MIN_SDK_VERSION));
-
- currentCategory = R.id.nav_camera;
- break;
- case R.id.nav_offline:
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_offline_simple_title,
- R.string.activity_offline_simple_description,
- new Intent(MainActivity.this, SimpleOfflineMapActivity.class),
- R.string.activity_offline_simple_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_offline_manager_title,
- R.string.activity_offline_manager_description,
- new Intent(MainActivity.this, OfflineManagerActivity.class),
- R.string.activity_offline_manager_url, false, BuildConfig.MIN_SDK_VERSION));
-
- currentCategory = R.id.nav_offline;
- break;
- case R.id.nav_query_map:
- exampleItemModels.add(null);
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_query_select_building_title,
- R.string.activity_query_select_building_description,
- new Intent(MainActivity.this, SelectBuildingActivity.class),
- R.string.activity_query_select_building_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_query_feature_count_title,
- R.string.activity_query_feature_count_description,
- new Intent(MainActivity.this, FeatureCountActivity.class),
- R.string.activity_query_feature_count_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_query_feature_title,
- R.string.activity_query_feature_description,
- new Intent(MainActivity.this, QueryFeatureActivity.class),
- R.string.activity_query_feature_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_query_click_on_layer_title,
- R.string.activity_query_click_on_layer_description,
- new Intent(MainActivity.this, ClickOnLayerActivity.class),
- R.string.activity_query_click_on_layer_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_query_redo_search_in_area_title,
- R.string.activity_query_redo_search_in_area_description,
- new Intent(MainActivity.this, RedoSearchInAreaActivity.class),
- R.string.activity_query_redo_search_in_area_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_query_building_outline_title,
- R.string.activity_query_building_outline_description,
- new Intent(MainActivity.this, BuildingOutlineActivity.class),
- R.string.activity_query_building_outline_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_query_highlighted_line_title,
- R.string.activity_query_highlighted_line_description,
- new Intent(MainActivity.this, HighlightedLineActivity.class),
- R.string.activity_query_highlighted_line_url, false, BuildConfig.MIN_SDK_VERSION));
-
- currentCategory = R.id.nav_query_map;
- break;
- case R.id.nav_java_services:
- exampleItemModels.add(null);
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_java_services_simplify_polyline_title,
- R.string.activity_java_services_simplify_polyline_description,
- new Intent(MainActivity.this, SimplifyPolylineActivity.class),
- R.string.activity_java_services_simplify_polyline_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_java_services_map_matching_title,
- R.string.activity_java_services_map_matching_description,
- new Intent(MainActivity.this, MapMatchingActivity.class),
- R.string.activity_java_services_map_matching_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_java_services_directions_title,
- R.string.activity_java_services_directions_description,
- new Intent(MainActivity.this, DirectionsActivity.class),
- R.string.activity_java_services_directions_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_java_services_optimization_title,
- R.string.activity_java_services_optimization_description,
- new Intent(MainActivity.this, OptimizationActivity.class),
- R.string.activity_java_services_optimization_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_java_services_static_image_title,
- R.string.activity_java_services_static_image_description,
- new Intent(MainActivity.this, StaticImageActivity.class),
- R.string.activity_java_services_static_image_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_java_services_maxtrix_api_title,
- R.string.activity_java_services_matrix_api_description,
- new Intent(MainActivity.this, MatrixApiActivity.class),
- R.string.activity_java_services_matrix_url));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_java_services_geocoding_title,
- R.string.activity_java_services_geocoding_description,
- new Intent(MainActivity.this, GeocodingActivity.class),
- R.string.activity_java_services_geocoding_url));
-
- currentCategory = R.id.nav_java_services;
- break;
- case R.id.nav_snapshot_image_generator:
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_image_generator_snapshot_notification_title,
- R.string.activity_image_generator_snapshot_notification_description,
- new Intent(MainActivity.this, SnapshotNotificationActivity.class),
- R.string.activity_image_generator_snapshot_notification_url
- ));
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_image_generator_snapshot_share_title,
- R.string.activity_image_generator_snapshot_share_description,
- new Intent(MainActivity.this, SnapshotShareActivity.class),
- R.string.activity_image_generator_snapshot_share_url
- ));
- currentCategory = R.id.nav_snapshot_image_generator;
- break;
- case R.id.nav_lab:
- exampleItemModels.add(null);
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_lab_symbol_layer_and_mapillary_on_map_title,
- R.string.activity_lab_symbol_layer_and_mapillary_on_map_description,
- new Intent(MainActivity.this, SymbolLayerMapillaryActivity.class),
- R.string.activity_lab_symbol_layer_on_map_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_lab_pulsing_layer_opacity_color_title,
- R.string.activity_lab_pulsing_layer_opacity_color_description,
- new Intent(MainActivity.this, PulsingLayerOpacityColorActivity.class),
- R.string.activity_lab_pulsing_layer_opacity_color_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_lab_indoor_map_title,
- R.string.activity_lab_indoor_map_description,
- new Intent(MainActivity.this, IndoorMapActivity.class),
- R.string.activity_lab_indoor_map_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_lab_location_picker_title,
- R.string.activity_lab_location_picker_description,
- new Intent(MainActivity.this, LocationPickerActivity.class),
- R.string.activity_lab_location_picker_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_lab_marker_following_route_title,
- R.string.activity_lab_marker_following_route_description,
- new Intent(MainActivity.this, MarkerFollowingRouteActivity.class),
- R.string.activity_lab_marker_following_route_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_lab_space_station_location_title,
- R.string.activity_lab_space_station_location_description,
- new Intent(MainActivity.this, SpaceStationLocationActivity.class),
- R.string.activity_lab_space_station_location_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_lab_picture_in_picture_title,
- R.string.activity_lab_picture_in_picture_description,
- new Intent(MainActivity.this, PictureInPictureActivity.class),
- R.string.activity_lab_picture_in_picture_url, false, Build.VERSION_CODES.O));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_lab_rv_on_map_title,
- R.string.activity_lab_rv_on_map_description,
- new Intent(MainActivity.this, RecyclerViewOnMapActivity.class),
- R.string.activity_lab_rv_on_map_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_labs_inset_map_title,
- R.string.activity_labs_inset_map_description,
- new Intent(MainActivity.this, InsetMapActivity.class),
- R.string.activity_labs_inset_map_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_labs_gif_on_map_title,
- R.string.activity_labs_gif_on_map_description,
- new Intent(MainActivity.this, AnimatedImageGifActivity.class),
- R.string.activity_labs_gif_on_map_url, false, BuildConfig.MIN_SDK_VERSION
- ));
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_labs_snaking_directions_route_title,
- R.string.activity_labs_snaking_directions_route_description,
- new Intent(MainActivity.this, SnakingDirectionsRouteActivity.class),
- R.string.activity_labs_snaking_directions_route_url, false, BuildConfig.MIN_SDK_VERSION
- ));
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_dashed_line_directions_picker_title,
- R.string.activity_dashed_line_directions_picker_description,
- new Intent(MainActivity.this, DashedLineDirectionsPickerActivity.class),
- R.string.activity_dashed_line_directions_picker_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_lab_calendar_integration_title,
- R.string.activity_lab_calendar_integration_description,
- new Intent(MainActivity.this, CalendarIntegrationActivity.class),
- R.string.activity_lab_calendar_integration_url, false, BuildConfig.MIN_SDK_VERSION));
- currentCategory = R.id.nav_lab;
- break;
- case R.id.nav_dds:
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_dds_heatmap_title,
- R.string.activity_dds_heatmap_description,
- new Intent(MainActivity.this, HeatmapActivity.class),
- R.string.activity_dds_heatmap_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_dds_multiple_heatmap_styling_title,
- R.string.activity_dds_multiple_heatmap_styling_description,
- new Intent(MainActivity.this, MultipleHeatmapStylingActivity.class),
- R.string.activity_dds_multiple_heatmap_styling_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_dds_bathymetry_title,
- R.string.activity_dds_bathymetry_description,
- new Intent(MainActivity.this, BathymetryActivity.class),
- R.string.activity_dds_bathymetry_url, false, BuildConfig.MIN_SDK_VERSION
- ));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_styles_dds_geojson_circle_layer_clusters_title,
- R.string.activity_styles_dds_geojson_circle_layer_clusters_description,
- new Intent(MainActivity.this, CircleLayerClusteringActivity.class),
- R.string.activity_styles_dds_geojson_circle_layer_clusters_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_dds_image_clustering_title,
- R.string.activity_dds_image_clustering_description,
- new Intent(MainActivity.this, ImageClusteringActivity.class),
- R.string.activity_dds_image_clustering_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_dds_style_circle_categorically_title,
- R.string.activity_dds_style_circle_categorically_description,
- new Intent(MainActivity.this, StyleCirclesCategoricallyActivity.class),
- R.string.activity_dds_style_circle_categorically_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_dds_choropleth_zoom_change_title,
- R.string.activity_dds_choropleth_zoom_change_description,
- new Intent(MainActivity.this, ChoroplethZoomChangeActivity.class),
- R.string.activity_dds_choropleth_zoom_change_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_dds_style_line_identity_property_title,
- R.string.activity_dds_style_line_identity_property_description,
- new Intent(MainActivity.this, StyleLineIdentityPropertyActivity.class),
- R.string.activity_dds_style_line_identity_property_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_dds_create_hotspots_points_title,
- R.string.activity_dds_create_hotspots_points_description,
- new Intent(MainActivity.this, CreateHotspotsActivity.class),
- R.string.activity_dds_create_hotspots_points_url
- ));
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_dds_json_vector_mix_title,
- R.string.activity_dds_json_vector_mix_description,
- new Intent(MainActivity.this, ChoroplethJsonVectorMixActivity.class),
- R.string.activity_dds_json_vector_mix_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_dds_multiple_geometries_title,
- R.string.activity_dds_multiple_geometries_description,
- new Intent(MainActivity.this, MultipleGeometriesActivity.class),
- R.string.activity_dds_multiple_geometries_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_dds_info_window_symbol_layer_title,
- R.string.activity_dds_info_window_symbol_layer_description,
- new Intent(MainActivity.this, InfoWindowSymbolLayerActivity.class),
- R.string.activity_dds_info_window_symbol_layer_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_dds_time_lapse_rainfall_points_title,
- R.string.activity_dds_time_lapse_rainfall_points_description,
- new Intent(MainActivity.this, AddRainFallStyleActivity.class),
- R.string.activity_dds_time_lapse_rainfall_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_dds_expression_integration_title,
- R.string.activity_dds_expression_integration_description,
- new Intent(MainActivity.this, ExpressionIntegrationActivity.class),
- R.string.activity_dds_expression_integration_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_dds_style_kotlin_circle_categorically_title,
- R.string.activity_dds_kotlin_style_circle_categorically_description,
- new Intent(MainActivity.this, KotlinStyleCirclesCategoricallyActivity.class),
- R.string.activity_dds_style_circle_categorically_url, false, BuildConfig.MIN_SDK_VERSION));
-
- currentCategory = R.id.nav_dds;
- break;
- default:
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_basic_simple_mapview_title,
- R.string.activity_basic_simple_mapview_description,
- new Intent(MainActivity.this, SimpleMapViewActivity.class),
- R.string.activity_basic_simple_mapview_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_basic_support_map_frag_title,
- R.string.activity_basic_support_map_frag_description,
- new Intent(MainActivity.this, SupportMapFragmentActivity.class),
- R.string.activity_basic_support_map_frag_url, false, BuildConfig.MIN_SDK_VERSION));
-
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_basic_mapbox_options_title,
- R.string.activity_basic_mapbox_options_description,
- new Intent(MainActivity.this, MapboxMapOptionActivity.class),
- R.string.activity_basic_mapbox_options_url, false, BuildConfig.MIN_SDK_VERSION));
- exampleItemModels.add(new ExampleItemModel(
- R.string.activity_basic_mapbox_kotlin_title,
- R.string.activity_basic_mapbox_kotlin_description,
- new Intent(MainActivity.this, SimpleMapViewActivityKotlin.class),
- R.string.activity_basic_mapbox_kotlin_url, true, BuildConfig.MIN_SDK_VERSION));
-
- currentCategory = R.id.nav_basics;
- break;
+ List models = new ArrayList<>();
+ for (ExampleItemModel model : exampleItemModels) {
+ if (model.getCategoryId() == id && verifySdkVersion(model)) {
+ if ((showJavaExamples && model.getJavaActivity() != null)
+ || !showJavaExamples && model.getKotlinActivity() != null) {
+ models.add(model);
+ }
+ }
}
- verifySdkVersion();
- adapter.notifyDataSetChanged();
+ adapter.updateDataSet(models, currentCategory);
// Scrolls recycler view back to top.
LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
layoutManager.scrollToPositionWithOffset(0, 0);
- }
- private void verifySdkVersion() {
- for (Iterator iterator = exampleItemModels.iterator(); iterator.hasNext(); ) {
- ExampleItemModel model = iterator.next();
- if (model != null && Build.VERSION.SDK_INT < model.getMinSdkVersion()) {
- iterator.remove();
- }
- }
+ noExamplesTv.setVisibility(models.size() == 0 ? View.VISIBLE : View.GONE);
}
- public int getCurrentCategory() {
- return currentCategory;
+ private boolean verifySdkVersion(ExampleItemModel model) {
+ return model == null || Build.VERSION.SDK_INT >= model.getMinSdkVersion();
}
@Override
@@ -886,6 +315,17 @@ public boolean onCreateOptionsMenu(Menu menu) {
return true;
}
+ @Override
+ public boolean onPrepareOptionsMenu(Menu menu) {
+ MenuItem item = menu.findItem(R.id.action_show_other_language);
+ if (showJavaExamples) {
+ item.setTitle(R.string.examples_language_kotlin);
+ } else {
+ item.setTitle(R.string.examples_language_java);
+ }
+ return super.onPrepareOptionsMenu(menu);
+ }
+
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
@@ -898,33 +338,31 @@ public boolean onOptionsItemSelected(MenuItem item) {
.setHeaderColor(R.color.mapboxBlue)
.withDivider(true)
.setPositiveText(getString(R.string.info_dialog_positive_button_text))
- .onPositive(new MaterialDialog.SingleButtonCallback() {
- @Override
- public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
- analytics.trackEvent(CLICKED_ON_INFO_DIALOG_START_LEARNING, false);
- Intent intent = new Intent(Intent.ACTION_VIEW);
- intent.setData(Uri.parse("https://mapbox.com/android-sdk"));
- startActivity(intent);
- }
+ .onPositive((dialog, which) -> {
+ analytics.trackEvent(CLICKED_ON_INFO_DIALOG_START_LEARNING, false);
+ Intent intent = new Intent(Intent.ACTION_VIEW);
+ intent.setData(Uri.parse("https://mapbox.com/android-sdk"));
+ startActivity(intent);
})
.setNegativeText(getString(R.string.info_dialog_negative_button_text))
- .onNegative(new MaterialDialog.SingleButtonCallback() {
- @Override
- public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
- analytics.trackEvent(CLICKED_ON_INFO_DIALOG_NOT_NOW, loggedIn);
- }
- })
+ .onNegative((dialog, which) -> analytics.trackEvent(CLICKED_ON_INFO_DIALOG_NOT_NOW, loggedIn))
.show();
return true;
+ } else if (id == R.id.action_show_other_language) {
+ if (showJavaExamples) {
+ setExamplesLanguage(false);
+ item.setTitle(R.string.examples_language_java);
+ } else {
+ setExamplesLanguage(true);
+ item.setTitle(R.string.examples_language_kotlin);
+ }
}
return super.onOptionsItemSelected(item);
}
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putInt("CURRENT_CATEGORY", currentCategory);
- outState.putString("CURRENT_CATEGORY_TOOLBAR_TITLE", categoryTitleForToolbar);
+ private void setExamplesLanguage(boolean showJava) {
+ showJavaExamples = showJava;
+ listItems(currentCategory);
}
private void checkForFirstTimeOpen() {
@@ -939,7 +377,7 @@ private void buildSettingsDialog() {
analytics.trackEvent(CLICKED_ON_SETTINGS_IN_NAV_DRAWER, loggedIn);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View customView = inflater.inflate(R.layout.settings_dialog_layout, null);
- analyticsOptOutSwitch = (Switch) customView.findViewById(R.id.analytics_opt_out_switch);
+ Switch analyticsOptOutSwitch = customView.findViewById(R.id.analytics_opt_out_switch);
analyticsOptOutSwitch.setChecked(!analytics.isAnalyticsEnabled());
final SettingsDialogView dialogView = new SettingsDialogView(customView,
@@ -947,17 +385,12 @@ private void buildSettingsDialog() {
dialogView.buildDialog();
- Button logOutOfMapboxAccountButton = (Button) customView.findViewById(R.id.log_out_of_account_button);
+ Button logOutOfMapboxAccountButton = customView.findViewById(R.id.log_out_of_account_button);
if (!loggedIn) {
logOutOfMapboxAccountButton.setVisibility(View.GONE);
} else {
- logOutOfMapboxAccountButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- dialogView.logOut(loggedIn);
- }
- });
+ logOutOfMapboxAccountButton.setOnClickListener(view -> dialogView.logOut(loggedIn));
}
}
@@ -969,7 +402,737 @@ private void shareApp() {
intent.putExtra(Intent.EXTRA_TEXT, getString(R.string.share_app_text));
startActivity(Intent.createChooser(intent, getString(R.string.share_app_choose_one_instruction)));
} catch (Exception exception) {
- Log.d("MainActivity", "shareApp: exception = " + exception);
+ Timber.d(exception, "shareApp: exception = %s", exception.getMessage());
}
}
+
+ @Override
+ protected void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putInt(STATE_CURRENT_CATEGORY, currentCategory);
+ outState.putString(STATE_TOOLBAR_TITLE, categoryTitleForToolbar);
+ outState.putBoolean(STATE_SHOW_JAVA, showJavaExamples);
+ }
+
+ private void initializeModels() {
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_default_title,
+ R.string.activity_styles_default_description,
+ new Intent(MainActivity.this, DefaultStyleActivity.class),
+ null,
+ R.string.activity_styles_default_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_basic_symbol_layer_title,
+ R.string.activity_styles_basic_symbol_layer_description,
+ new Intent(MainActivity.this, BasicSymbolLayerActivity.class),
+ null,
+ R.string.activity_styles_symbol_layer_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_line_layer_title,
+ R.string.activity_styles_line_layer_description,
+ new Intent(MainActivity.this, LineLayerActivity.class),
+ null,
+ R.string.activity_styles_line_layer_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_color_switcher_title,
+ R.string.activity_styles_color_switcher_description,
+ new Intent(MainActivity.this, ColorSwitcherActivity.class),
+ null,
+ R.string.activity_styles_color_switcher_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_vector_source_title,
+ R.string.activity_styles_vector_source_description,
+ new Intent(MainActivity.this, VectorSourceActivity.class),
+ null,
+ R.string.activity_styles_vector_source_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_add_wms_source_title,
+ R.string.activity_styles_add_wms_source_description,
+ new Intent(MainActivity.this, AddWmsSourceActivity.class),
+ null,
+ R.string.activity_styles_add_wms_source_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_geojson_layer_in_stack_title,
+ R.string.activity_styles_geojson_layer_in_stack_description,
+ new Intent(MainActivity.this, GeojsonLayerInStackActivity.class),
+ null,
+ R.string.activity_styles_geojson_layer_in_stack_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_adjust_layer_opacity_title,
+ R.string.activity_styles_adjust_layer_opacity_description,
+ new Intent(MainActivity.this, AdjustLayerOpacityActivity.class),
+ null,
+ R.string.activity_styles_adjust_layer_opacity_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_zoom_dependent_fill_color_title,
+ R.string.activity_styles_zoom_dependent_fill_color_description,
+ new Intent(MainActivity.this, ZoomDependentFillColorActivity.class),
+ null,
+ R.string.activity_styles_zoom_dependent_fill_color_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_language_switch_title,
+ R.string.activity_styles_language_switch_description,
+ new Intent(MainActivity.this, LanguageSwitchActivity.class),
+ null,
+ R.string.activity_styles_language_switch_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_show_hide_layer_title,
+ R.string.activity_styles_show_hide_layer_description,
+ new Intent(MainActivity.this, ShowHideLayersActivity.class),
+ null,
+ R.string.activity_styles_show_hide_layer_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_mapbox_studio_title,
+ R.string.activity_styles_mapbox_studio_description,
+ new Intent(MainActivity.this, MapboxStudioStyleActivity.class),
+ null,
+ R.string.activity_styles_mapbox_studio_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_local_style_or_raster_source_title,
+ R.string.activity_styles_local_style_or_raster_source_description,
+ new Intent(MainActivity.this, LocalStyleSourceActivity.class),
+ null,
+ R.string.activity_styles_local_style_or_raster_source_url, false, BuildConfig.MIN_SDK_VERSION
+ ));
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_style_image_source_title,
+ R.string.activity_style_image_source_description,
+ new Intent(MainActivity.this, ImageSourceActivity.class),
+ null,
+ R.string.activity_style_image_source_url, false, BuildConfig.MIN_SDK_VERSION
+ ));
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_style_image_source_time_lapse_title,
+ R.string.activity_style_image_source_time_lapse_description,
+ new Intent(MainActivity.this, ImageSourceTimeLapseActivity.class),
+ null,
+ R.string.activity_style_image_source_time_lapse_url, false, BuildConfig.MIN_SDK_VERSION
+ ));
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_hillshade_title,
+ R.string.activity_style_hillshade_description,
+ new Intent(MainActivity.this, HillShadeActivity.class),
+ null,
+ R.string.activity_style_hillshade_url, false, BuildConfig.MIN_SDK_VERSION
+ ));
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_fade_switch_title,
+ R.string.activity_styles_fade_switch_description,
+ new Intent(MainActivity.this, StyleFadeSwitchActivity.class),
+ null,
+ R.string.activity_styles_fade_switch_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_styles,
+ R.string.activity_styles_transparent_background_title,
+ R.string.activity_styles_transparent_background_description,
+ new Intent(MainActivity.this, TransparentBackgroundActivity.class),
+ null,
+ R.string.activity_styles_transparent_background_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_extrusions,
+ R.string.activity_extrusions_population_density_extrusions_title,
+ R.string.activity_extrusions_population_density_extrusions_description,
+ new Intent(MainActivity.this, PopulationDensityExtrusionActivity.class),
+ null,
+ R.string.activity_extrusions_population_density_extrusions_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_extrusions,
+ R.string.activity_extrusions_catalina_marathon_extrusions_title,
+ R.string.activity_extrusions_catalina_marathon_extrusions_description,
+ new Intent(MainActivity.this, MarathonExtrusionActivity.class),
+ null,
+ R.string.activity_extrusions_catalina_marathon_extrusions_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_extrusions,
+ R.string.activity_extrusions_adjust_extrusions_title,
+ R.string.activity_extrusions_adjust_extrusions_description,
+ new Intent(MainActivity.this, AdjustExtrusionLightActivity.class),
+ null,
+ R.string.activity_extrusions_adjust_extrusions_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_extrusions,
+ R.string.activity_extrusions_indoor_3d_title,
+ R.string.activity_extrusions_indoor_3d_description,
+ new Intent(MainActivity.this, Indoor3DMapActivity.class),
+ null,
+ R.string.activity_extrusions_indoor_3d_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_extrusions,
+ R.string.activity_extrusions_rotate_extrusions_title,
+ R.string.activity_extrusions_rotate_extrusions_description,
+ new Intent(MainActivity.this, RotationExtrusionActivity.class),
+ null,
+ R.string.activity_extrusions_rotate_extrusions_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_plugins,
+ R.string.activity_plugins_traffic_plugin_title,
+ R.string.activity_plugins_traffic_plugin_description,
+ new Intent(MainActivity.this, TrafficPluginActivity.class),
+ null,
+ R.string.activity_plugins_traffic_plugin_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_plugins,
+ R.string.activity_plugins_building_plugin_title,
+ R.string.activity_plugins_building_plugin_description,
+ new Intent(MainActivity.this, BuildingPluginActivity.class),
+ null,
+ R.string.activity_plugins_building_plugin_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_plugins,
+ R.string.activity_plugins_location_plugin_title,
+ R.string.activity_plugins_location_plugin_description,
+ new Intent(MainActivity.this, LocationPluginActivity.class),
+ new Intent(MainActivity.this, KotlinLocationPluginActivity.class),
+ R.string.activity_plugins_location_plugin_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_plugins,
+ R.string.activity_plugins_places_plugin_title, R.string.activity_plugins_places_plugin_description,
+ new Intent(MainActivity.this, PlacesPluginActivity.class),
+ null,
+ R.string.activity_plugins_places_plugin_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_plugins,
+ R.string.activity_plugins_localization_plugin_title,
+ R.string.activity_plugins_localization_plugin_description,
+ new Intent(MainActivity.this, LocalizationPluginActivity.class),
+ null,
+ R.string.activity_plugins_localization_plugin_url, false, BuildConfig.MIN_SDK_VERSION)
+ );
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_plugins,
+ R.string.activity_plugins_place_picker_plugin_title,
+ R.string.activity_plugins_place_picker_plugin_description,
+ new Intent(MainActivity.this, PlaceSelectionPluginActivity.class),
+ null,
+ R.string.activity_plugins_place_picker_plugin_url, false, BuildConfig.MIN_SDK_VERSION)
+ );
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_plugins,
+ R.string.activity_user_location_map_frag_title,
+ R.string.activity_user_location_map_frag_plugin_description,
+ new Intent(MainActivity.this, LocationPluginFragmentActivity.class),
+ null,
+ R.string.activity_user_location_fragment_plugin_url, false, BuildConfig.MIN_SDK_VERSION)
+ );
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_annotations,
+ R.string.activity_annotation_marker_title,
+ R.string.activity_annotation_custom_marker_description,
+ new Intent(MainActivity.this, DrawMarkerActivity.class),
+ null,
+ R.string.activity_annotation_marker_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_annotations,
+ R.string.activity_annotation_custom_marker_title,
+ R.string.activity_annotation_custom_marker_description,
+ new Intent(MainActivity.this, DrawCustomMarkerActivity.class),
+ null,
+ R.string.activity_annotation_custom_marker_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_annotations,
+ R.string.activity_annotation_geojson_line_title,
+ R.string.activity_annotation_geojson_line_description,
+ new Intent(MainActivity.this, DrawGeojsonLineActivity.class),
+ null,
+ R.string.activity_annotation_geojson_line_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_annotations,
+ R.string.activity_annotation_polygon_title,
+ R.string.activity_annotation_polygon_description,
+ new Intent(MainActivity.this, DrawPolygonActivity.class),
+ null,
+ R.string.activity_annotation_polygon_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_annotations,
+ R.string.activity_annotation_polygon_holes_title,
+ R.string.activity_annotation_polygon_holes_description,
+ new Intent(MainActivity.this, PolygonHolesActivity.class),
+ null,
+ R.string.activity_annotation_polygon_holes_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_annotations,
+ R.string.activity_annotation_animated_marker_title,
+ R.string.activity_annotation_animated_marker_description,
+ new Intent(MainActivity.this, AnimatedMarkerActivity.class),
+ null,
+ R.string.activity_annotation_animated_marker_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_camera,
+ R.string.activity_camera_animate_title,
+ R.string.activity_camera_animate_description,
+ new Intent(MainActivity.this, AnimateMapCameraActivity.class),
+ null,
+ R.string.activity_camera_animate_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_camera,
+ R.string.activity_camera_bounding_box_title,
+ R.string.activity_camera_bounding_box_description,
+ new Intent(MainActivity.this, BoundingBoxCameraActivity.class),
+ null,
+ R.string.activity_camera_bounding_box_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_camera,
+ R.string.activity_camera_restrict_title,
+ R.string.activity_camera_restrict_description,
+ new Intent(MainActivity.this, RestrictCameraActivity.class),
+ null,
+ R.string.activity_camera_restrict_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_offline,
+ R.string.activity_offline_simple_title,
+ R.string.activity_offline_simple_description,
+ new Intent(MainActivity.this, SimpleOfflineMapActivity.class),
+ null,
+ R.string.activity_offline_simple_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_offline,
+ R.string.activity_offline_manager_title,
+ R.string.activity_offline_manager_description,
+ new Intent(MainActivity.this, OfflineManagerActivity.class),
+ null,
+ R.string.activity_offline_manager_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_query_map,
+ R.string.activity_query_select_building_title,
+ R.string.activity_query_select_building_description,
+ new Intent(MainActivity.this, SelectBuildingActivity.class),
+ null,
+ R.string.activity_query_select_building_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_query_map,
+ R.string.activity_query_feature_count_title,
+ R.string.activity_query_feature_count_description,
+ new Intent(MainActivity.this, FeatureCountActivity.class),
+ null,
+ R.string.activity_query_feature_count_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_query_map,
+ R.string.activity_query_feature_title,
+ R.string.activity_query_feature_description,
+ new Intent(MainActivity.this, QueryFeatureActivity.class),
+ null,
+ R.string.activity_query_feature_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_query_map,
+ R.string.activity_query_click_on_layer_title,
+ R.string.activity_query_click_on_layer_description,
+ new Intent(MainActivity.this, ClickOnLayerActivity.class),
+ null,
+ R.string.activity_query_click_on_layer_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_query_map,
+ R.string.activity_query_redo_search_in_area_title,
+ R.string.activity_query_redo_search_in_area_description,
+ new Intent(MainActivity.this, RedoSearchInAreaActivity.class),
+ null,
+ R.string.activity_query_redo_search_in_area_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_query_map,
+ R.string.activity_query_building_outline_title,
+ R.string.activity_query_building_outline_description,
+ new Intent(MainActivity.this, BuildingOutlineActivity.class),
+ null,
+ R.string.activity_query_building_outline_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_query_map,
+ R.string.activity_query_highlighted_line_title,
+ R.string.activity_query_highlighted_line_description,
+ new Intent(MainActivity.this, HighlightedLineActivity.class),
+ null,
+ R.string.activity_query_highlighted_line_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_java_services,
+ R.string.activity_java_services_simplify_polyline_title,
+ R.string.activity_java_services_simplify_polyline_description,
+ new Intent(MainActivity.this, SimplifyPolylineActivity.class),
+ null,
+ R.string.activity_java_services_simplify_polyline_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_java_services,
+ R.string.activity_java_services_map_matching_title,
+ R.string.activity_java_services_map_matching_description,
+ new Intent(MainActivity.this, MapMatchingActivity.class),
+ null,
+ R.string.activity_java_services_map_matching_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_java_services,
+ R.string.activity_java_services_directions_title,
+ R.string.activity_java_services_directions_description,
+ new Intent(MainActivity.this, DirectionsActivity.class),
+ null,
+ R.string.activity_java_services_directions_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_java_services,
+ R.string.activity_java_services_optimization_title,
+ R.string.activity_java_services_optimization_description,
+ new Intent(MainActivity.this, OptimizationActivity.class),
+ null,
+ R.string.activity_java_services_optimization_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_java_services,
+ R.string.activity_java_services_static_image_title,
+ R.string.activity_java_services_static_image_description,
+ new Intent(MainActivity.this, StaticImageActivity.class),
+ null,
+ R.string.activity_java_services_static_image_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_java_services,
+ R.string.activity_java_services_maxtrix_api_title,
+ R.string.activity_java_services_matrix_api_description,
+ new Intent(MainActivity.this, MatrixApiActivity.class),
+ null,
+ R.string.activity_java_services_matrix_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_java_services,
+ R.string.activity_java_services_geocoding_title,
+ R.string.activity_java_services_geocoding_description,
+ new Intent(MainActivity.this, GeocodingActivity.class),
+ null,
+ R.string.activity_java_services_geocoding_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_snapshot_image_generator,
+ R.string.activity_image_generator_snapshot_notification_title,
+ R.string.activity_image_generator_snapshot_notification_description,
+ new Intent(MainActivity.this, SnapshotNotificationActivity.class),
+ null,
+ R.string.activity_image_generator_snapshot_notification_url, false, BuildConfig.MIN_SDK_VERSION
+ ));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_snapshot_image_generator,
+ R.string.activity_image_generator_snapshot_share_title,
+ R.string.activity_image_generator_snapshot_share_description,
+ new Intent(MainActivity.this, SnapshotShareActivity.class),
+ null,
+ R.string.activity_image_generator_snapshot_share_url, false, BuildConfig.MIN_SDK_VERSION
+ ));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_lab,
+ R.string.activity_lab_symbol_layer_and_mapillary_on_map_title,
+ R.string.activity_lab_symbol_layer_and_mapillary_on_map_description,
+ new Intent(MainActivity.this, SymbolLayerMapillaryActivity.class),
+ null,
+ R.string.activity_lab_symbol_layer_on_map_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_lab,
+ R.string.activity_lab_pulsing_layer_opacity_color_title,
+ R.string.activity_lab_pulsing_layer_opacity_color_description,
+ new Intent(MainActivity.this, PulsingLayerOpacityColorActivity.class),
+ null,
+ R.string.activity_lab_pulsing_layer_opacity_color_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_lab,
+ R.string.activity_lab_indoor_map_title,
+ R.string.activity_lab_indoor_map_description,
+ new Intent(MainActivity.this, IndoorMapActivity.class),
+ null,
+ R.string.activity_lab_indoor_map_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_lab,
+ R.string.activity_lab_location_picker_title,
+ R.string.activity_lab_location_picker_description,
+ new Intent(MainActivity.this, LocationPickerActivity.class),
+ null,
+ R.string.activity_lab_location_picker_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_lab,
+ R.string.activity_lab_marker_following_route_title,
+ R.string.activity_lab_marker_following_route_description,
+ new Intent(MainActivity.this, MarkerFollowingRouteActivity.class),
+ null,
+ R.string.activity_lab_marker_following_route_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_lab,
+ R.string.activity_lab_space_station_location_title,
+ R.string.activity_lab_space_station_location_description,
+ new Intent(MainActivity.this, SpaceStationLocationActivity.class),
+ null,
+ R.string.activity_lab_space_station_location_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_lab,
+ R.string.activity_lab_picture_in_picture_title,
+ R.string.activity_lab_picture_in_picture_description,
+ new Intent(MainActivity.this, PictureInPictureActivity.class),
+ null,
+ R.string.activity_lab_picture_in_picture_url, false, Build.VERSION_CODES.O));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_lab,
+ R.string.activity_lab_rv_on_map_title,
+ R.string.activity_lab_rv_on_map_description,
+ new Intent(MainActivity.this, RecyclerViewOnMapActivity.class),
+ null,
+ R.string.activity_lab_rv_on_map_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_lab,
+ R.string.activity_labs_inset_map_title,
+ R.string.activity_labs_inset_map_description,
+ new Intent(MainActivity.this, InsetMapActivity.class),
+ null,
+ R.string.activity_labs_inset_map_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_lab,
+ R.string.activity_labs_gif_on_map_title,
+ R.string.activity_labs_gif_on_map_description,
+ new Intent(MainActivity.this, AnimatedImageGifActivity.class),
+ null,
+ R.string.activity_labs_gif_on_map_url, false, BuildConfig.MIN_SDK_VERSION
+ ));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_lab,
+ R.string.activity_labs_snaking_directions_route_title,
+ R.string.activity_labs_snaking_directions_route_description,
+ new Intent(MainActivity.this, SnakingDirectionsRouteActivity.class),
+ null,
+ R.string.activity_labs_snaking_directions_route_url, false, BuildConfig.MIN_SDK_VERSION
+ ));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_lab,
+ R.string.activity_dashed_line_directions_picker_title,
+ R.string.activity_dashed_line_directions_picker_description,
+ new Intent(MainActivity.this, DashedLineDirectionsPickerActivity.class),
+ null,
+ R.string.activity_dashed_line_directions_picker_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_lab,
+ R.string.activity_lab_calendar_integration_title,
+ R.string.activity_lab_calendar_integration_description,
+ new Intent(MainActivity.this, CalendarIntegrationActivity.class),
+ null,
+ R.string.activity_lab_calendar_integration_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_dds,
+ R.string.activity_dds_heatmap_title,
+ R.string.activity_dds_heatmap_description,
+ new Intent(MainActivity.this, HeatmapActivity.class),
+ null,
+ R.string.activity_dds_heatmap_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_dds,
+ R.string.activity_dds_multiple_heatmap_styling_title,
+ R.string.activity_dds_multiple_heatmap_styling_description,
+ new Intent(MainActivity.this, MultipleHeatmapStylingActivity.class),
+ null,
+ R.string.activity_dds_multiple_heatmap_styling_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_dds,
+ R.string.activity_dds_bathymetry_title,
+ R.string.activity_dds_bathymetry_description,
+ new Intent(MainActivity.this, BathymetryActivity.class),
+ null,
+ R.string.activity_dds_bathymetry_url, false, BuildConfig.MIN_SDK_VERSION
+ ));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_dds,
+ R.string.activity_styles_dds_geojson_circle_layer_clusters_title,
+ R.string.activity_styles_dds_geojson_circle_layer_clusters_description,
+ new Intent(MainActivity.this, CircleLayerClusteringActivity.class),
+ null,
+ R.string.activity_styles_dds_geojson_circle_layer_clusters_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_dds,
+ R.string.activity_dds_image_clustering_title,
+ R.string.activity_dds_image_clustering_description,
+ new Intent(MainActivity.this, ImageClusteringActivity.class),
+ null,
+ R.string.activity_dds_image_clustering_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_dds,
+ R.string.activity_dds_style_circle_categorically_title,
+ R.string.activity_dds_style_circle_categorically_description,
+ new Intent(MainActivity.this, StyleCirclesCategoricallyActivity.class),
+ null,
+ R.string.activity_dds_style_circle_categorically_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_dds,
+ R.string.activity_dds_choropleth_zoom_change_title,
+ R.string.activity_dds_choropleth_zoom_change_description,
+ new Intent(MainActivity.this, ChoroplethZoomChangeActivity.class),
+ null,
+ R.string.activity_dds_choropleth_zoom_change_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_dds,
+ R.string.activity_dds_style_line_identity_property_title,
+ R.string.activity_dds_style_line_identity_property_description,
+ new Intent(MainActivity.this, StyleLineIdentityPropertyActivity.class),
+ null,
+ R.string.activity_dds_style_line_identity_property_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_dds,
+ R.string.activity_dds_create_hotspots_points_title,
+ R.string.activity_dds_create_hotspots_points_description,
+ new Intent(MainActivity.this, CreateHotspotsActivity.class),
+ null,
+ R.string.activity_dds_create_hotspots_points_url, false, BuildConfig.MIN_SDK_VERSION
+ ));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_dds,
+ R.string.activity_dds_json_vector_mix_title,
+ R.string.activity_dds_json_vector_mix_description,
+ new Intent(MainActivity.this, ChoroplethJsonVectorMixActivity.class),
+ null,
+ R.string.activity_dds_json_vector_mix_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_dds,
+ R.string.activity_dds_multiple_geometries_title,
+ R.string.activity_dds_multiple_geometries_description,
+ new Intent(MainActivity.this, MultipleGeometriesActivity.class),
+ null,
+ R.string.activity_dds_multiple_geometries_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_dds,
+ R.string.activity_dds_info_window_symbol_layer_title,
+ R.string.activity_dds_info_window_symbol_layer_description,
+ new Intent(MainActivity.this, InfoWindowSymbolLayerActivity.class),
+ null,
+ R.string.activity_dds_info_window_symbol_layer_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_dds,
+ R.string.activity_dds_time_lapse_rainfall_points_title,
+ R.string.activity_dds_time_lapse_rainfall_points_description,
+ new Intent(MainActivity.this, AddRainFallStyleActivity.class),
+ null,
+ R.string.activity_dds_time_lapse_rainfall_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_dds,
+ R.string.activity_dds_expression_integration_title,
+ R.string.activity_dds_expression_integration_description,
+ new Intent(MainActivity.this, ExpressionIntegrationActivity.class),
+ null,
+ R.string.activity_dds_expression_integration_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_dds,
+ R.string.activity_dds_style_kotlin_circle_categorically_title,
+ R.string.activity_dds_kotlin_style_circle_categorically_description,
+ null,
+ new Intent(MainActivity.this, KotlinStyleCirclesCategoricallyActivity.class),
+ R.string.activity_dds_style_circle_categorically_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_basics,
+ R.string.activity_basic_simple_mapview_title,
+ R.string.activity_basic_simple_mapview_description,
+ new Intent(MainActivity.this, SimpleMapViewActivity.class),
+ null,
+ R.string.activity_basic_simple_mapview_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_basics,
+ R.string.activity_basic_support_map_frag_title,
+ R.string.activity_basic_support_map_frag_description,
+ new Intent(MainActivity.this, SupportMapFragmentActivity.class),
+ null,
+ R.string.activity_basic_support_map_frag_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_basics,
+ R.string.activity_basic_mapbox_options_title,
+ R.string.activity_basic_mapbox_options_description,
+ new Intent(MainActivity.this, MapboxMapOptionActivity.class),
+ null,
+ R.string.activity_basic_mapbox_options_url, false, BuildConfig.MIN_SDK_VERSION));
+
+ exampleItemModels.add(new ExampleItemModel(
+ R.id.nav_basics,
+ R.string.activity_basic_mapbox_kotlin_title,
+ R.string.activity_basic_mapbox_kotlin_description,
+ new Intent(MainActivity.this, SimpleMapViewActivityKotlin.class),
+ null,
+ R.string.activity_basic_mapbox_kotlin_url, true, BuildConfig.MIN_SDK_VERSION));
+ }
}
diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/adapter/ExampleAdapter.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/adapter/ExampleAdapter.java
index d574a42b0..79b5709bb 100644
--- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/adapter/ExampleAdapter.java
+++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/adapter/ExampleAdapter.java
@@ -1,6 +1,8 @@
package com.mapbox.mapboxandroiddemo.adapter;
import android.content.Context;
+import android.support.annotation.IdRes;
+import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
@@ -9,61 +11,55 @@
import android.widget.ImageView;
import android.widget.TextView;
-import com.mapbox.mapboxandroiddemo.MainActivity;
import com.mapbox.mapboxandroiddemo.R;
import com.mapbox.mapboxandroiddemo.model.ExampleItemModel;
import com.squareup.picasso.Picasso;
+import java.util.ArrayList;
import java.util.List;
public class ExampleAdapter extends RecyclerView.Adapter {
- private List dataSource;
- private Context context;
+ private final List dataSource = new ArrayList<>();
+ private final Context context;
+ private int viewType;
- public ExampleAdapter(Context context, List dataSource) {
- this.dataSource = dataSource;
+ public ExampleAdapter(Context context) {
this.context = context;
}
+ @NonNull
@Override
- public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-
+ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
// create a new view
- View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
- View view1 = LayoutInflater.from(parent.getContext()).inflate(
- R.layout.layout_description_item, parent, false);
- View view2 = LayoutInflater.from(parent.getContext()).inflate(
- R.layout.layout_javaservices_description_card, parent, false);
- View view3 = LayoutInflater.from(parent.getContext()).inflate(
- R.layout.layout_query_description_card, parent, false);
-
+ View view;
switch (viewType) {
case 1:
- return new ViewHolderDescription(view1);
+ view = LayoutInflater.from(parent.getContext()).inflate(
+ R.layout.layout_description_item, parent, false);
+ break;
case 2:
- return new ViewHolderDescription(view2);
+ view = LayoutInflater.from(parent.getContext()).inflate(
+ R.layout.layout_javaservices_description_card, parent, false);
+ break;
case 3:
- return new ViewHolderDescription(view3);
+ view = LayoutInflater.from(parent.getContext()).inflate(
+ R.layout.layout_query_description_card, parent, false);
+ break;
default:
- return new ViewHolder(view);
+ view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
}
+
+ return new ViewHolder(view);
}
@Override
public int getItemViewType(int position) {
- if (((MainActivity) context).getCurrentCategory() == R.id.nav_lab && position == 0) {
- return 1;
- } else if (((MainActivity) context).getCurrentCategory() == R.id.nav_java_services && position == 0) {
- return 2;
- } else if (((MainActivity) context).getCurrentCategory() == R.id.nav_query_map && position == 0) {
- return 3;
- }
- return 0;
+ return position == 0 ? viewType : 0;
}
@Override
- public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
+ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
if (holder.getItemViewType() != 0) {
return;
}
@@ -93,30 +89,51 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
@Override
public int getItemCount() {
- return (null != dataSource ? dataSource.size() : 0);
+ return dataSource.size();
}
- public static class ViewHolder extends RecyclerView.ViewHolder {
+ public void updateDataSet(List examples, @IdRes int categoryId) {
+ dataSource.clear();
+ dataSource.addAll(examples);
- public TextView titleTextView;
- public TextView descriptionTextView;
- public ImageView imageView;
- public ImageView newIconImageView;
+ viewType = getViewType(categoryId);
+ if (viewType > 0) {
+ dataSource.add(0, null);
+ }
- public ViewHolder(final View itemView) {
- super(itemView);
+ notifyDataSetChanged();
+ }
+
+ public ExampleItemModel getItemAt(int position) {
+ return dataSource.get(position);
+ }
- imageView = (ImageView) itemView.findViewById(R.id.example_image);
- titleTextView = (TextView) itemView.findViewById(R.id.example_title);
- descriptionTextView = (TextView) itemView.findViewById(R.id.example_description);
- newIconImageView = (ImageView) itemView.findViewById(R.id.new_icon_image_view);
+ private int getViewType(@IdRes int categoryId) {
+ if (categoryId == R.id.nav_lab) {
+ return 1;
+ } else if (categoryId == R.id.nav_java_services) {
+ return 2;
+ } else if (categoryId == R.id.nav_query_map) {
+ return 3;
}
+
+ return 0;
}
- public static class ViewHolderDescription extends RecyclerView.ViewHolder {
+ static class ViewHolder extends RecyclerView.ViewHolder {
- public ViewHolderDescription(final View itemView) {
+ TextView titleTextView;
+ TextView descriptionTextView;
+ ImageView imageView;
+ ImageView newIconImageView;
+
+ ViewHolder(final View itemView) {
super(itemView);
+
+ imageView = itemView.findViewById(R.id.example_image);
+ titleTextView = itemView.findViewById(R.id.example_title);
+ descriptionTextView = itemView.findViewById(R.id.example_description);
+ newIconImageView = itemView.findViewById(R.id.new_icon_image_view);
}
}
}
\ No newline at end of file
diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/KotlinLocationPluginActivity.kt b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/KotlinLocationPluginActivity.kt
new file mode 100644
index 000000000..650b3b4b6
--- /dev/null
+++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/examples/plugins/KotlinLocationPluginActivity.kt
@@ -0,0 +1,111 @@
+package com.mapbox.mapboxandroiddemo.examples.plugins
+
+import android.os.Bundle
+import android.support.v7.app.AppCompatActivity
+import android.widget.Toast
+
+import com.mapbox.android.core.permissions.PermissionsListener
+import com.mapbox.android.core.permissions.PermissionsManager
+import com.mapbox.mapboxandroiddemo.R
+import com.mapbox.mapboxsdk.Mapbox
+import com.mapbox.mapboxsdk.maps.MapboxMap
+import com.mapbox.mapboxsdk.maps.OnMapReadyCallback
+import com.mapbox.mapboxsdk.plugins.locationlayer.LocationLayerPlugin
+import com.mapbox.mapboxsdk.plugins.locationlayer.modes.CameraMode
+import kotlinx.android.synthetic.main.activity_location_plugin.*
+
+/**
+ * Use the Location Layer plugin to easily add a device location "puck" to a Mapbox map.
+ */
+class KotlinLocationPluginActivity : AppCompatActivity(), OnMapReadyCallback, PermissionsListener {
+
+ private val permissionsManager: PermissionsManager = PermissionsManager(this)
+ private lateinit var mapboxMap: MapboxMap
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ // Mapbox access token is configured here. This needs to be called either in your application
+ // object or in the same activity which contains the mapview.
+ Mapbox.getInstance(this, getString(R.string.access_token))
+
+ // This contains the MapView in XML and needs to be called after the access token is configured.
+ setContentView(R.layout.activity_location_plugin)
+
+ mapView.onCreate(savedInstanceState)
+ mapView.getMapAsync(this)
+ }
+
+ override fun onMapReady(mapboxMap: MapboxMap) {
+ this.mapboxMap = mapboxMap
+ enableLocationPlugin()
+ }
+
+ private fun enableLocationPlugin() {
+ // Check if permissions are enabled and if not request
+ if (PermissionsManager.areLocationPermissionsGranted(this)) {
+
+ // Create an instance of the plugin. Adding in LocationLayerOptions is also an optional
+ // parameter
+ val locationLayerPlugin = LocationLayerPlugin(mapView, mapboxMap)
+
+ // Set the plugin's camera mode
+ locationLayerPlugin.cameraMode = CameraMode.TRACKING
+ lifecycle.addObserver(locationLayerPlugin)
+ } else {
+ permissionsManager.requestLocationPermissions(this)
+ }
+ }
+
+ override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) {
+ permissionsManager.onRequestPermissionsResult(requestCode, permissions, grantResults)
+ }
+
+ override fun onExplanationNeeded(permissionsToExplain: List) {
+ Toast.makeText(this, R.string.user_location_permission_explanation, Toast.LENGTH_LONG).show()
+ }
+
+ override fun onPermissionResult(granted: Boolean) {
+ if (granted) {
+ enableLocationPlugin()
+ } else {
+ Toast.makeText(this, R.string.user_location_permission_not_granted, Toast.LENGTH_LONG).show()
+ finish()
+ }
+ }
+
+ override fun onStart() {
+ super.onStart()
+ mapView.onStart()
+ }
+
+ override fun onResume() {
+ super.onResume()
+ mapView.onResume()
+ }
+
+ override fun onPause() {
+ super.onPause()
+ mapView.onPause()
+ }
+
+ override fun onStop() {
+ super.onStop()
+ mapView.onStop()
+ }
+
+ override fun onSaveInstanceState(outState: Bundle) {
+ super.onSaveInstanceState(outState)
+ mapView.onSaveInstanceState(outState)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ mapView.onDestroy()
+ }
+
+ override fun onLowMemory() {
+ super.onLowMemory()
+ mapView.onLowMemory()
+ }
+}
\ No newline at end of file
diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/model/ExampleItemModel.java b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/model/ExampleItemModel.java
deleted file mode 100644
index 4815504c1..000000000
--- a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/model/ExampleItemModel.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package com.mapbox.mapboxandroiddemo.model;
-
-import android.content.Intent;
-
-import com.mapbox.mapboxandroiddemo.BuildConfig;
-
-public class ExampleItemModel {
- // Just a model for the detailed item recycler
-
- public int title;
- public int description;
- public int imageUrl;
- public Intent activity;
- public boolean showNewIcon;
- public int minSdkVersion;
-
-
- public int getTitle() {
- return title;
- }
-
- public void setTitle(int title) {
- this.title = title;
- }
-
- public int getDescription() {
- return description;
- }
-
- public void setDescription(int description) {
- this.description = description;
- }
-
- public int getImageUrl() {
- return imageUrl;
- }
-
- public void setImageUrl(int imageUrl) {
- this.imageUrl = imageUrl;
- }
-
- public Intent getActivity() {
- return activity;
- }
-
- public void setActivity(Intent activity) {
- this.activity = activity;
- }
-
- public boolean getShowNewIcon() {
- return showNewIcon;
- }
-
- public void setShowNewIcon(boolean showNewIcon) {
- this.showNewIcon = showNewIcon;
- }
-
- public int getMinSdkVersion() {
- return minSdkVersion;
- }
-
- public ExampleItemModel(int title, int description, Intent activity, int imageUrl,
- boolean showNewIcon, int minSdkVersion) {
- this.title = title;
- this.description = description;
- this.imageUrl = imageUrl;
- this.activity = activity;
- this.showNewIcon = showNewIcon;
- this.minSdkVersion = minSdkVersion;
- }
-
- public ExampleItemModel(int title, int description, Intent activity, int imageUrl) {
- this.title = title;
- this.description = description;
- this.imageUrl = imageUrl;
- this.activity = activity;
- this.showNewIcon = false;
- this.minSdkVersion = BuildConfig.MIN_SDK_VERSION;
- }
-}
\ No newline at end of file
diff --git a/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/model/ExampleItemModel.kt b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/model/ExampleItemModel.kt
new file mode 100644
index 000000000..1496cff07
--- /dev/null
+++ b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/model/ExampleItemModel.kt
@@ -0,0 +1,8 @@
+package com.mapbox.mapboxandroiddemo.model
+
+import android.content.Intent
+
+// Just a model for the detailed item recycler
+class ExampleItemModel(val categoryId: Int, val title: Int, val description: Int, val javaActivity: Intent?,
+ val kotlinActivity: Intent?, val imageUrl: Int, val showNewIcon: Boolean,
+ val minSdkVersion: Int)
\ No newline at end of file
diff --git a/MapboxAndroidDemo/src/main/res/layout-land/content_main.xml b/MapboxAndroidDemo/src/main/res/layout-land/content_main.xml
index b799833ec..24a110bef 100644
--- a/MapboxAndroidDemo/src/main/res/layout-land/content_main.xml
+++ b/MapboxAndroidDemo/src/main/res/layout-land/content_main.xml
@@ -1,6 +1,5 @@
-
+ android:paddingTop="6dp" />
-
+
+
+
diff --git a/MapboxAndroidDemo/src/main/res/layout/content_main.xml b/MapboxAndroidDemo/src/main/res/layout/content_main.xml
index 3ce55da41..9988d1b7f 100644
--- a/MapboxAndroidDemo/src/main/res/layout/content_main.xml
+++ b/MapboxAndroidDemo/src/main/res/layout/content_main.xml
@@ -1,6 +1,5 @@
-
+ android:paddingTop="6dp" />
-
+
+
+
diff --git a/MapboxAndroidDemo/src/main/res/menu/menu_activity_main.xml b/MapboxAndroidDemo/src/main/res/menu/menu_activity_main.xml
index f65a0ff8f..97ec5ed45 100644
--- a/MapboxAndroidDemo/src/main/res/menu/menu_activity_main.xml
+++ b/MapboxAndroidDemo/src/main/res/menu/menu_activity_main.xml
@@ -1,11 +1,15 @@
-
diff --git a/MapboxAndroidDemo/src/main/res/values/strings.xml b/MapboxAndroidDemo/src/main/res/values/strings.xml
index 7abc06d3b..76146e01a 100644
--- a/MapboxAndroidDemo/src/main/res/values/strings.xml
+++ b/MapboxAndroidDemo/src/main/res/values/strings.xml
@@ -1 +1,5 @@
-
+
+ No examples in the\nchosen programming language
+ To Kotlin
+ To Java
+