From 9162c7fd34ff9d425a1214e823ab4f6f4bd7d498 Mon Sep 17 00:00:00 2001 From: Domagalski Date: Thu, 18 Oct 2018 01:46:36 +0200 Subject: [PATCH] animacja markera, + stary zostaje --- app/src/main/AndroidManifest.xml | 2 +- .../wmi/findmytutor/activity/MapActivity.java | 43 +++++++++++++++++++ .../activity/NotificationsActivity.java | 9 +++- 3 files changed, 51 insertions(+), 3 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e7eae35..ce8be37 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,7 @@ android:theme="@style/AppTheme"> diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java index 67dfc45..3451344 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java @@ -1,17 +1,27 @@ package com.uam.wmi.findmytutor.activity; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.os.Build; import android.os.Bundle; +import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; +import android.widget.Toast; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.uam.wmi.findmytutor.R; +import com.uam.wmi.findmytutor.service.BackgroundLocalizationService; +import com.uam.wmi.findmytutor.utils.PrefUtils; public class MapActivity extends BaseActivity { private MapView mapView; String tag = "LifeCycleEvents"; + private static final int REQUEST_PERMISSIONS = 100; + private boolean isTutor; @Override protected void onCreate(Bundle savedInstanceState) { @@ -20,6 +30,11 @@ public class MapActivity extends BaseActivity { mapView = findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); + isTutor = PrefUtils.getIsTutor(getApplicationContext()); + if (isTutor) { + fn_permission(); + } + mapView.getMapAsync(new OnMapReadyCallback() { @Override public void onMapReady(MapboxMap mapboxMap) { @@ -75,6 +90,34 @@ public class MapActivity extends BaseActivity { mapView.onSaveInstanceState(outState); } + private void fn_permission() { + if ((ContextCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED)) { + + if ((ActivityCompat.shouldShowRequestPermissionRationale(MapActivity.this, android.Manifest.permission.ACCESS_FINE_LOCATION))) { + + } else { + ActivityCompat.requestPermissions(MapActivity.this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION + + }, + REQUEST_PERMISSIONS); + } + } else { + + if (isTutor) { + Intent intent = new Intent(getApplicationContext(), BackgroundLocalizationService.class); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(intent); + } else { + startService(intent); + } + + } else { + Toast.makeText(getApplicationContext(), "Please enable the gps", Toast.LENGTH_SHORT).show(); + } + } + } + @Override protected int getContentViewId() { return R.layout.activity_map; diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/NotificationsActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/NotificationsActivity.java index 07efefb..6af733e 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/NotificationsActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/NotificationsActivity.java @@ -158,11 +158,16 @@ public class NotificationsActivity extends BaseActivity implements for (Coordinate element : coordsList) { String id = element.getUserId(); Coordinate cord = coordsMap.get(id); + + + Log.d("mapper", "a " + mapboxMap.getMarkerViewManager()); + Log.d("mapper", "b " + coordsMap.size()); if (cord != null) { if (!cord.getLongitude().equals(element.getLongitude()) ) { Log.d("mapper", " cos sie zienilo "); Marker marker = mapboxMap.addMarker(new MarkerViewOptions() + .title(cord.getUserId()) .position(new LatLng(cord.getLatitude(),cord.getLongitude()))); ValueAnimator markerAnimator = ObjectAnimator.ofObject(marker, "position", @@ -170,12 +175,12 @@ public class NotificationsActivity extends BaseActivity implements markerAnimator.setDuration(2000); markerAnimator.start(); - coordsMap.put(id,element); + coordsMap.replace(id,element); } else if (!cord.getTimeStamp().equals(element.getTimeStamp())){ Log.d("mapper", "update"); Log.d("mapper", " "+cord.getTimeStamp()); Log.d("mapper", " "+element.getTimeStamp()); - coordsMap.put(id,element); + coordsMap.replace(id,element); } } else { coordsMap.put(id,element);