From 3e40307d0f6416ddb6cc208e184f5f7ad2271b64 Mon Sep 17 00:00:00 2001
From: Hampus Rosenquist <hamro777@student.liu.se>
Date: Fri, 7 Oct 2022 16:51:07 +0200
Subject: [PATCH] Osmdroid working partly

---
 .../android/app/AircraftMapView.java          | 303 ++++++++++++++----
 .../android/app/AircraftMapViewOld.java       | 279 ----------------
 2 files changed, 242 insertions(+), 340 deletions(-)
 delete mode 100644 drip-android-observer-master/Android/app/src/main/java/org/dripdronescanner/android/app/AircraftMapViewOld.java

diff --git a/drip-android-observer-master/Android/app/src/main/java/org/dripdronescanner/android/app/AircraftMapView.java b/drip-android-observer-master/Android/app/src/main/java/org/dripdronescanner/android/app/AircraftMapView.java
index c6588fa..ea8cff4 100644
--- a/drip-android-observer-master/Android/app/src/main/java/org/dripdronescanner/android/app/AircraftMapView.java
+++ b/drip-android-observer-master/Android/app/src/main/java/org/dripdronescanner/android/app/AircraftMapView.java
@@ -9,67 +9,105 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
-import androidx.appcompat.app.AppCompatActivity;
 import androidx.core.app.ActivityCompat;
 import androidx.core.content.ContextCompat;
-
-import com.google.android.gms.maps.OnMapReadyCallback;
-import com.google.android.gms.maps.SupportMapFragment;
+import androidx.fragment.app.Fragment;
 
 import org.dripdronescanner.android.R;
+import org.dripdronescanner.android.data.AircraftObject;
 import org.osmdroid.config.Configuration;
 import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
 import org.osmdroid.views.MapView;
 
 import java.util.ArrayList;
+import java.util.HashMap;
+
+import android.Manifest;
+import android.content.pm.PackageManager;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.util.Log;
+import android.util.Pair;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.Nullable;
+import androidx.core.app.ActivityCompat;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProviders;
+
+import com.google.android.gms.internal.maps.zzt;
+import com.google.android.gms.maps.CameraUpdateFactory;
+import com.google.android.gms.maps.GoogleMap;
+import com.google.android.gms.maps.OnMapReadyCallback;
+import com.google.android.gms.maps.SupportMapFragment;
+import com.google.android.gms.maps.model.BitmapDescriptorFactory;
+import com.google.android.gms.maps.model.CameraPosition;
+import com.google.android.gms.maps.model.LatLng;
+import com.google.android.gms.maps.model.Marker;
+import com.google.android.gms.maps.model.MarkerOptions;
+import com.google.android.gms.maps.model.Polyline;
+import com.google.android.gms.maps.model.PolylineOptions;
+
+import org.dripdronescanner.android.data.AircraftObject;
+import org.dripdronescanner.android.data.LocationData;
+import org.dripdronescanner.android.data.SystemData;
+import org.dripdronescanner.android.data.Util;
+
+import java.util.Collection;
+import java.util.HashMap;
 
-public class AircraftMapView extends SupportMapFragment implements OnMapReadyCallback {
-    private final int REQUEST_PERMISSIONS_REQUEST_CODE = 1;
+public class AircraftMapView extends SupportMapFragment {
     private MapView map = null;
+    private static final String TAG = "AircraftMapView";
+    private AircraftViewModel model;
+    private final HashMap<AircraftObject, MapObserver> aircraftObservers = new HashMap<>();
 
-    @Override
-    public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
-        View view = super.onCreateView(layoutInflater, viewGroup, bundle);
-        getMapAsync(this);
-        return view;
-    }
+    private final Util.DiffObserver<AircraftObject> allAircraftObserver = new Util.DiffObserver<AircraftObject>() {
+        @Override
+        public void onAdded(Collection<AircraftObject> added) {
+            for (AircraftObject aircraftObject : added) {
+                trackAircraft(aircraftObject);
+            }
+        }
 
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
+        @Override
+        public void onRemoved(Collection<AircraftObject> removed) {
+            for (AircraftObject aircraftObject : removed) {
+                stopTrackingAircraft(aircraftObject);
+            }
+        }
+    };
+
+    private void trackAircraft(AircraftObject aircraftObject) {
+        MapObserver observer = new MapObserver(aircraftObject);
+        aircraftObservers.put(aircraftObject, observer);
+    }
 
-        //handle permissions first, before map is created. not depicted here
+    private void stopTrackingAircraft(AircraftObject aircraftObject) {
+        MapObserver observer = aircraftObservers.remove(aircraftObject);
+        if (observer == null) return;
+        observer.stop();
+    }
 
-        //load/initialize the osmdroid configuration, this can be done 
-        Context ctx = getApplicationContext();
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+        Context ctx = getContext();
         Configuration.getInstance().load(ctx, PreferenceManager.getDefaultSharedPreferences(ctx));
-        //setting this before the layout is inflated is a good idea
-        //it 'should' ensure that the map has a writable location for the map cache, even without permissions
-        //if no tiles are displayed, you can try overriding the cache path using Configuration.getInstance().setCachePath
-        //see also StorageUtils
-        //note, the load method also sets the HTTP User Agent to your application's package name, abusing osm's
-        //tile servers will get you banned based on this string
-
-        //inflate and create the map
-        setContentView(R.layout.activity_main);
 
-        map = (MapView) findViewById(R.id.map_view);
+        View v = inflater.inflate(R.layout.activity_main, null);
+        map = v.findViewById(R.id.map_view);
         map.setTileSource(TileSourceFactory.MAPNIK);
-
-        requestPermissionsIfNecessary(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}
-                //arrayOf(
-                // if you need to show the current location, uncomment the line below
-                // Manifest.permission.ACCESS_FINE_LOCATION,
-                // WRITE_EXTERNAL_STORAGE is required in order to show the map
-                //Manifest.permission.WRITE_EXTERNAL_STORAGE
-        );
+        return v;
     }
 
     @Override
     public void onResume() {
         super.onResume();
         //this will refresh the osmdroid configuration on resuming.
-        //if you make changes to the configuration, use 
+        //if you make changes to the configuration, use
         //SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
         //Configuration.getInstance().load(this, PreferenceManager.getDefaultSharedPreferences(this));
         map.onResume(); //needed for compass, my location overlays, v6.0.0 and up
@@ -79,40 +117,183 @@ public class AircraftMapView extends SupportMapFragment implements OnMapReadyCal
     public void onPause() {
         super.onPause();
         //this will refresh the osmdroid configuration on resuming.
-        //if you make changes to the configuration, use 
+        //if you make changes to the configuration, use
         //SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
         //Configuration.getInstance().save(this, prefs);
         map.onPause();  //needed for compass, my location overlays, v6.0.0 and up
     }
 
     @Override
-    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
-        ArrayList<String> permissionsToRequest = new ArrayList<>();
-        for (int i = 0; i < grantResults.length; i++) {
-            permissionsToRequest.add(permissions[i]);
-        }
-        if (permissionsToRequest.size() > 0) {
-            ActivityCompat.requestPermissions(
-                    this,
-                    permissionsToRequest.toArray(new String[0]),
-                    REQUEST_PERMISSIONS_REQUEST_CODE);
-        }
+    public void onActivityCreated(Bundle bundle) {
+        super.onActivityCreated(bundle);
+        setupModel();
+    }
+
+    private static final int DESIRED_ZOOM = 17;
+    private static final int ALLOWED_ZOOM_MARGIN = 2;
+
+    private void setupModel() {
+        if (getActivity() == null)
+            return;
+
+        model = ViewModelProviders.of(getActivity()).get(AircraftViewModel.class);
+
+        model.getAllAircraft().observe(getViewLifecycleOwner(), allAircraftObserver);
+        model.getActiveAircraft().observe(getViewLifecycleOwner(), new Observer<AircraftObject>() {
+            MapObserver last = null;
+
+            @Override
+            public void onChanged(@Nullable AircraftObject object) {
+                if (object == null || object.getLocation() == null || map == null)
+                    return;
+                MapObserver observer = aircraftObservers.get(object);
+                if (observer == null)
+                    return;
+
+                if (object.getLocation().getLatitude() == 0.0 && object.getLocation().getLongitude() == 0.0)
+                    return;
+
+                LatLng ll = new LatLng(object.getLocation().getLatitude(), object.getLocation().getLongitude());
+                Log.i(TAG, "centering on " + object + " at " + ll);
+
+                if (last != null && last.marker != null) {
+                    last.marker.setAlpha(0.5f);
+                    if (last.markerPilot != null)
+                        last.markerPilot.setAlpha(0.5f);
+                }
+                if (observer.marker != null)
+                    observer.marker.setAlpha(1.0f);
+                if (observer.markerPilot != null)
+                    observer.markerPilot.setAlpha(1.0f);
+
+                last = observer;
+
+                /*CameraPosition position = googleMap.getCameraPosition();
+                if (position.zoom < DESIRED_ZOOM - ALLOWED_ZOOM_MARGIN || position.zoom > DESIRED_ZOOM + ALLOWED_ZOOM_MARGIN)
+                    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(ll, DESIRED_ZOOM));
+                else
+                    googleMap.moveCamera(CameraUpdateFactory.newLatLng(ll));
+                */
+            }
+        });
     }
 
-    private void requestPermissionsIfNecessary(String[] permissions) {
-        ArrayList<String> permissionsToRequest = new ArrayList<>();
-        for (String permission : permissions) {
-            if (ContextCompat.checkSelfPermission(this, permission)
-                    != PackageManager.PERMISSION_GRANTED) {
-                // Permission is not granted
-                permissionsToRequest.add(permission);
+    class MapObserver implements Observer<LocationData> {
+        private Marker marker;
+        private Marker markerPilot;
+        private Polyline polyline;
+        private PolylineOptions polylineOptions;
+
+        private final AircraftObject aircraft;
+
+        MapObserver(AircraftObject active) {
+            aircraft = active;
+            aircraft.location.observe(AircraftMapView.this, this);
+            aircraft.system.observe(AircraftMapView.this, systemObserver);
+            polylineOptions = new PolylineOptions()
+                    .color(Color.RED)
+                    .clickable(true);
+        }
+
+        void stop() {
+            aircraft.location.removeObserver(this);
+            aircraft.system.removeObserver(systemObserver);
+            if (marker != null) {
+                marker.remove();
+                marker = null;
+            }
+            if (markerPilot != null) {
+                markerPilot.remove();
+                markerPilot = null;
+            }
+            if (polyline != null) {
+                polyline.remove();
+                polyline = null;
             }
+            polylineOptions = null;
         }
-        if (permissionsToRequest.size() > 0) {
-            ActivityCompat.requestPermissions(
-                    this,
-                    permissionsToRequest.toArray(new String[0]),
-                    REQUEST_PERMISSIONS_REQUEST_CODE);
+
+        private final Observer<SystemData> systemObserver = new Observer<SystemData>() {
+            @Override
+            public void onChanged(@Nullable SystemData ignore) {
+                SystemData sys = aircraft.getSystem();
+                if (sys == null || map == null)
+                    return;
+
+                // filter out zero data
+                if (sys.getOperatorLatitude() == 0.0 && sys.getOperatorLongitude() == 0.0)
+                    return;
+
+                LatLng latLng = new LatLng(sys.getOperatorLatitude(), sys.getOperatorLongitude());
+                if (markerPilot == null) {
+                    String id = "ID missing";
+                    if (aircraft.getIdentification() != null)
+                        id = aircraft.getIdentification().getUasIdAsString();
+
+                    Marker pilotMarker = new Marker((zzt) map);
+                    pilotMarker.setPosition(latLng);
+                    pilotMarker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE));
+                    pilotMarker.setTitle("pilot " + id);
+                    pilotMarker.setAlpha(0.5f);
+                    markerPilot = pilotMarker;
+
+                            /*googleMap.addMarker(
+                            new MarkerOptions()
+                                    .alpha(0.5f)
+                                    .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))
+                                    .position(latLng)
+                                    .title("pilot " + id));*/
+                    markerPilot.setTag(new Pair<>(aircraft, this));
+                }
+                markerPilot.setPosition(latLng); // duplicate?
+            }
+        };
+
+        @Override
+        public void onChanged(@Nullable LocationData ignore) {
+            boolean zoom = false;
+            LocationData loc = aircraft.getLocation();
+            if (loc == null || map == null || polylineOptions == null)
+                return;
+
+            // filter out zero data
+            if (loc.getLatitude() == 0.0 && loc.getLongitude() == 0.0)
+                return;
+
+            LatLng latLng = new LatLng(loc.getLatitude(), loc.getLongitude());
+            if (marker == null) {
+                String id = "ID missing";
+                if (aircraft.getIdentification() != null)
+                    id = aircraft.getIdentification().getUasIdAsString();
+
+                Marker aircraftMarker = new Marker((zzt) map);
+                aircraftMarker.setPosition(latLng);
+                aircraftMarker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE));
+                aircraftMarker.setTitle("aircraft " + id);
+                aircraftMarker.setAlpha(0.5f);
+                marker = aircraftMarker;
+
+                        /*googleMap.addMarker(
+                        new MarkerOptions()
+                                .alpha(0.5f)
+                                .position(latLng)
+                                .title("aircraft " + id));*/
+                marker.setTag(aircraft);
+                zoom = true;
+            }
+
+            polylineOptions.add(latLng);
+            if (polyline != null) {
+                polyline.remove();
+                polyline = null;
+            }
+            //polyline = googleMap.addPolyline(polylineOptions);
+            map.getOverlayManager().add((Overlay) polyline);
+
+            marker.setPosition(latLng);
+            if (zoom) {
+                googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
+            }
         }
     }
 }
\ No newline at end of file
diff --git a/drip-android-observer-master/Android/app/src/main/java/org/dripdronescanner/android/app/AircraftMapViewOld.java b/drip-android-observer-master/Android/app/src/main/java/org/dripdronescanner/android/app/AircraftMapViewOld.java
deleted file mode 100644
index db4db20..0000000
--- a/drip-android-observer-master/Android/app/src/main/java/org/dripdronescanner/android/app/AircraftMapViewOld.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Copyright (C) 2019 Intel Corporation
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- */
-package org.dripdronescanner.android.app;
-
-import android.Manifest;
-import android.content.pm.PackageManager;
-import android.graphics.Color;
-import android.os.Bundle;
-import android.util.Log;
-import android.util.Pair;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.Nullable;
-import androidx.core.app.ActivityCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProviders;
-
-import com.google.android.gms.maps.CameraUpdateFactory;
-import com.google.android.gms.maps.GoogleMap;
-import com.google.android.gms.maps.OnMapReadyCallback;
-import com.google.android.gms.maps.SupportMapFragment;
-import com.google.android.gms.maps.model.BitmapDescriptorFactory;
-import com.google.android.gms.maps.model.CameraPosition;
-import com.google.android.gms.maps.model.LatLng;
-import com.google.android.gms.maps.model.Marker;
-import com.google.android.gms.maps.model.MarkerOptions;
-import com.google.android.gms.maps.model.Polyline;
-import com.google.android.gms.maps.model.PolylineOptions;
-
-import org.dripdronescanner.android.data.AircraftObject;
-import org.dripdronescanner.android.data.LocationData;
-import org.dripdronescanner.android.data.SystemData;
-import org.dripdronescanner.android.data.Util;
-
-import java.util.Collection;
-import java.util.HashMap;
-
-public class AircraftMapViewOld extends SupportMapFragment implements OnMapReadyCallback, GoogleMap.OnMarkerClickListener {
-    private static final String TAG = "AircraftMapView";
-    private GoogleMap googleMap;
-    private AircraftViewModel model;
-
-    private final HashMap<AircraftObject, MapObserver> aircraftObservers = new HashMap<>();
-
-    private final Util.DiffObserver<AircraftObject> allAircraftObserver = new Util.DiffObserver<AircraftObject>() {
-        @Override
-        public void onAdded(Collection<AircraftObject> added) {
-            for (AircraftObject aircraftObject : added) {
-                trackAircraft(aircraftObject);
-            }
-        }
-
-        @Override
-        public void onRemoved(Collection<AircraftObject> removed) {
-            for (AircraftObject aircraftObject : removed) {
-                stopTrackingAircraft(aircraftObject);
-            }
-        }
-    };
-
-    private void trackAircraft(AircraftObject aircraftObject) {
-        MapObserver observer = new MapObserver(aircraftObject);
-        aircraftObservers.put(aircraftObject, observer);
-    }
-
-    private void stopTrackingAircraft(AircraftObject aircraftObject) {
-        MapObserver observer = aircraftObservers.remove(aircraftObject);
-        if (observer == null) return;
-        observer.stop();
-    }
-
-    private static final int DESIRED_ZOOM = 17;
-    private static final int ALLOWED_ZOOM_MARGIN = 2;
-
-    private void setupModel() {
-        if (getActivity() == null)
-            return;
-
-        model = ViewModelProviders.of(getActivity()).get(AircraftViewModel.class);
-
-        model.getAllAircraft().observe(getViewLifecycleOwner(), allAircraftObserver);
-        model.getActiveAircraft().observe(getViewLifecycleOwner(), new Observer<AircraftObject>() {
-            MapObserver last = null;
-
-            @Override
-            public void onChanged(@Nullable AircraftObject object) {
-                if (object == null || object.getLocation() == null || googleMap == null)
-                    return;
-                MapObserver observer = aircraftObservers.get(object);
-                if (observer == null)
-                    return;
-
-                if (object.getLocation().getLatitude() == 0.0 && object.getLocation().getLongitude() == 0.0)
-                    return;
-
-                LatLng ll = new LatLng(object.getLocation().getLatitude(), object.getLocation().getLongitude());
-                Log.i(TAG, "centering on " + object + " at " + ll);
-
-                if (last != null && last.marker != null) {
-                    last.marker.setAlpha(0.5f);
-                    if (last.markerPilot != null)
-                        last.markerPilot.setAlpha(0.5f);
-                }
-                if (observer.marker != null)
-                    observer.marker.setAlpha(1.0f);
-                if (observer.markerPilot != null)
-                    observer.markerPilot.setAlpha(1.0f);
-
-                last = observer;
-
-                CameraPosition position = googleMap.getCameraPosition();
-                if (position.zoom < DESIRED_ZOOM - ALLOWED_ZOOM_MARGIN || position.zoom > DESIRED_ZOOM + ALLOWED_ZOOM_MARGIN)
-                    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(ll, DESIRED_ZOOM));
-                else
-                    googleMap.moveCamera(CameraUpdateFactory.newLatLng(ll));
-            }
-        });
-    }
-
-    @Override
-    public boolean onMarkerClick(Marker marker) {
-
-        if (marker != null) {
-            Object tag = marker.getTag();
-            if (tag instanceof AircraftObject) {
-                model.setActiveAircraft((AircraftObject) tag);
-                return true;
-            }
-        }
-        return false;
-    }
-
-    class MapObserver implements Observer<LocationData> {
-        private Marker marker;
-        private Marker markerPilot;
-        private Polyline polyline;
-        private PolylineOptions polylineOptions;
-
-        private final AircraftObject aircraft;
-
-        MapObserver(AircraftObject active) {
-            aircraft = active;
-            aircraft.location.observe(AircraftMapViewOld.this, this);
-            aircraft.system.observe(AircraftMapViewOld.this, systemObserver);
-            polylineOptions = new PolylineOptions()
-                    .color(Color.RED)
-                    .clickable(true);
-        }
-
-        void stop() {
-            aircraft.location.removeObserver(this);
-            aircraft.system.removeObserver(systemObserver);
-            if (marker != null) {
-                marker.remove();
-                marker = null;
-            }
-            if (markerPilot != null) {
-                markerPilot.remove();
-                markerPilot = null;
-            }
-            if (polyline != null) {
-                polyline.remove();
-                polyline = null;
-            }
-            polylineOptions = null;
-        }
-
-        private final Observer<SystemData> systemObserver = new Observer<SystemData>() {
-            @Override
-            public void onChanged(@Nullable SystemData ignore) {
-                SystemData sys = aircraft.getSystem();
-                if (sys == null || googleMap == null)
-                    return;
-
-                // filter out zero data
-                if (sys.getOperatorLatitude() == 0.0 && sys.getOperatorLongitude() == 0.0)
-                    return;
-
-                LatLng latLng = new LatLng(sys.getOperatorLatitude(), sys.getOperatorLongitude());
-                if (markerPilot == null) {
-                    String id = "ID missing";
-                    if (aircraft.getIdentification() != null)
-                        id = aircraft.getIdentification().getUasIdAsString();
-                    markerPilot = googleMap.addMarker(
-                            new MarkerOptions()
-                                    .alpha(0.5f)
-                                    .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))
-                                    .position(latLng)
-                                    .title("pilot " + id));
-                    markerPilot.setTag(new Pair<>(aircraft, this));
-                }
-                markerPilot.setPosition(latLng);
-            }
-        };
-
-        @Override
-        public void onChanged(@Nullable LocationData ignore) {
-            boolean zoom = false;
-            LocationData loc = aircraft.getLocation();
-            if (loc == null || googleMap == null || polylineOptions == null)
-                return;
-
-            // filter out zero data
-            if (loc.getLatitude() == 0.0 && loc.getLongitude() == 0.0)
-                return;
-
-            LatLng latLng = new LatLng(loc.getLatitude(), loc.getLongitude());
-            if (marker == null) {
-                String id = "ID missing";
-                if (aircraft.getIdentification() != null)
-                    id = aircraft.getIdentification().getUasIdAsString();
-                marker = googleMap.addMarker(
-                        new MarkerOptions()
-                                .alpha(0.5f)
-                                .position(latLng)
-                                .title("aircraft " + id));
-                marker.setTag(aircraft);
-                zoom = true;
-            }
-
-            polylineOptions.add(latLng);
-            if (polyline != null) {
-                polyline.remove();
-                polyline = null;
-            }
-            polyline = googleMap.addPolyline(polylineOptions);
-
-            marker.setPosition(latLng);
-            if (zoom) {
-                googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
-            }
-        }
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
-        View view = super.onCreateView(layoutInflater, viewGroup, bundle);
-        getMapAsync(this);
-        return view;
-    }
-
-    @Override
-    public void onActivityCreated(Bundle bundle) {
-        super.onActivityCreated(bundle);
-        setupModel();
-    }
-
-    @Override
-    public void onMapReady(GoogleMap googleMap) {
-        if (getActivity() == null)
-            return;
-
-        this.googleMap = googleMap;
-
-        if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
-            ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
-            // TODO: Consider calling ActivityCompat#requestPermissions
-            // to request the missing permissions, and then overriding
-            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
-            //                                          int[] grantResults)
-            // to handle the case where the user grants the permission. See the documentation
-            // for ActivityCompat#requestPermissions for more details.
-            Log.e("XX", "##################### can't make the right permissions");
-            return;
-        }
-
-        googleMap.getUiSettings().setMyLocationButtonEnabled(true);
-        googleMap.getUiSettings().setMapToolbarEnabled(false);
-        googleMap.setMyLocationEnabled(true);
-        googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
-        googleMap.setOnMarkerClickListener(this);
-    }
-}
-- 
GitLab