diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644
index 646dfea..0000000
--- a/.idea/encodings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index ab8ae7e..87b98e5 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -57,6 +57,7 @@ dependencies {
implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
implementation 'com.auth0.android:jwtdecode:1.1.1'
implementation 'com.annimon:stream:1.2.1'
+ implementation 'com.google.android.gms:play-services-location:16.0.0'
// FloatingBarMenu
implementation 'com.getbase:floatingactionbutton:1.10.1'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5b1bc92..bb4aa0c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -50,6 +50,10 @@
android:name=".activity.SettingsActivity"
android:label="@string/title_activity_settings" />
+
+
coordsMap = new HashMap<>();
private HashMap markerHash = new HashMap<>();
+ private Set previousCoordsIds = new HashSet<>();
+
+
private int zoomParam = 17;
private int bearingParam = 180;
private int tiltParam = 30;
@@ -109,7 +101,6 @@ public class MapActivity extends BaseActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
-
final SharedPreferences sharedPref = getSharedPreferences("fmtPrefs", Context.MODE_PRIVATE);
@@ -137,8 +128,6 @@ public class MapActivity extends BaseActivity
//start background task
handleBackgroundTaskLifeCycle();
-
- currentLanguage = getIntent().getStringExtra(currentLang);
}
@@ -358,7 +347,38 @@ public class MapActivity extends BaseActivity
@Override
public void onSuccess(List coordsList) {
- Log.e(tag, "");
+ if(coordsList.isEmpty()) {
+ Log.e(tag, "200 empty []");
+ mapboxMap.clear();
+ return;
+ }
+
+
+ ArrayList tmp = new ArrayList<>();
+ for (Coordinate coordinate : coordsList) {
+ tmp.add(coordinate.getUserId());
+ }
+
+ Set currentCoordsIds = new HashSet<>(tmp);
+ if (previousCoordsIds.isEmpty()){
+ previousCoordsIds.addAll(currentCoordsIds);
+ } else {
+ // here we clear + it returns bool if smthing was removed
+ if (previousCoordsIds.removeAll(currentCoordsIds)) {
+ for (String toRemoveId: previousCoordsIds) {
+ Log.e(tag+ "delete: " , "removing: " + toRemoveId + ": " + markerHash.get(toRemoveId));
+ mapboxMap.removeMarker(markerHash.get(toRemoveId));
+ markerHash.remove(toRemoveId);
+ coordsMap.remove(toRemoveId);
+ }
+ } else {
+ // TODO double check when some markers api will change
+ Log.e(tag+ "delete: ","nothing to remove");
+ }
+ }
+
+
+
for (Coordinate element : coordsList) {
String id = element.getUserId();
@@ -411,19 +431,9 @@ public class MapActivity extends BaseActivity
coordsMap.get(id).setLabel(newLabel);
}
- /* for (Coordinate coordinate : coordsMap.values()) {
- // 300000 = 5mins
- if ((System.currentTimeMillis() - coordinate.getTimeStamp()) > (long) 300000) {
- String id = coordinate.getUserId();
- Marker markerToRemove = markerHash.get(id);
- markerHash.remove(id);
- coordsMap.remove(id);
- mapboxMap.removeMarker(markerToRemove);
- }
-
- }*/
-
-
+ // For next fetch
+ previousCoordsIds.clear();
+ previousCoordsIds.addAll(currentCoordsIds);
}
@SuppressLint("LongLogTag")
diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/SettingsActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/SettingsActivity.java
index a188c9a..1758057 100644
--- a/app/src/main/java/com/uam/wmi/findmytutor/activity/SettingsActivity.java
+++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/SettingsActivity.java
@@ -52,6 +52,13 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
addPreferencesFromResource(R.layout.pref_main);
Preference languagesList = findPreference(getResources().getString(R.string.key_language));
+ languagesList.setDefaultValue(0);
+
+ if(PrefUtils.getLocale(getActivity()).equals("pl")){
+ languagesList.setDefaultValue(1);
+ }
+
+
languagesList.setOnPreferenceChangeListener((preference, newValue) -> {
diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/StartupActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/StartupActivity.java
index 430311b..d0fd9dc 100644
--- a/app/src/main/java/com/uam/wmi/findmytutor/activity/StartupActivity.java
+++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/StartupActivity.java
@@ -46,8 +46,4 @@ public class StartupActivity extends AppCompatActivity {
finish();
}
-
-
-
-
}
diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/UsersListFragment.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/UsersListFragment.java
index ecc460a..82888b2 100644
--- a/app/src/main/java/com/uam/wmi/findmytutor/activity/UsersListFragment.java
+++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/UsersListFragment.java
@@ -105,7 +105,6 @@ public class UsersListFragment extends Fragment {
}
}));
-
}
public void searchUser(String textToSearch) {
@@ -217,11 +216,13 @@ public class UsersListFragment extends Fragment {
}
private void showError(Throwable e) {
- String message = e.toString();
+ String message;
if (e instanceof HttpException) {
ResponseBody responseBody = ((HttpException) e).response().errorBody();
message = RestApiHelper.getErrorMessage(responseBody);
+ }else{
+ message = "Network Error !";
}
Snackbar.make(coordinatorLayout, message, Snackbar.LENGTH_LONG)
diff --git a/app/src/main/java/com/uam/wmi/findmytutor/service/BackgroundLocalizationService.java b/app/src/main/java/com/uam/wmi/findmytutor/service/BackgroundLocalizationService.java
index 24ebc30..2b3ca3c 100644
--- a/app/src/main/java/com/uam/wmi/findmytutor/service/BackgroundLocalizationService.java
+++ b/app/src/main/java/com/uam/wmi/findmytutor/service/BackgroundLocalizationService.java
@@ -23,6 +23,9 @@ import android.support.v4.app.ActivityCompat;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
+import com.google.android.gms.location.FusedLocationProviderClient;
+import com.google.android.gms.location.LocationServices;
+import com.google.android.gms.tasks.OnSuccessListener;
import com.jakewharton.retrofit2.adapter.rxjava2.HttpException;
import com.uam.wmi.findmytutor.model.Coordinate;
import com.uam.wmi.findmytutor.network.ApiClient;
@@ -31,6 +34,7 @@ import com.uam.wmi.findmytutor.utils.RestApiHelper;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.Executor;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
@@ -58,6 +62,7 @@ public class BackgroundLocalizationService extends Service {
private Handler mHandler = new Handler();
private HandlerThread mHandlerThread = null;
private Runnable mStatusChecker;
+ private FusedLocationProviderClient mFusedLocationClient;
public BackgroundLocalizationService() {
providers.add(LocationManager.GPS_PROVIDER);
@@ -107,6 +112,9 @@ public class BackgroundLocalizationService extends Service {
startForeground(1001, notification);
}
+ mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
+
+
initializeLocationManager();
Integer providerIndex = 0;
@@ -194,8 +202,21 @@ public class BackgroundLocalizationService extends Service {
Log.e("Best localization:", String.valueOf(bestLocation));
- if (bestLocation != null)
+ /* if (bestLocation != null)
fn_update(bestLocation);
+*/
+
+ mFusedLocationClient.getLastLocation().addOnSuccessListener(
+ new OnSuccessListener() {
+ @Override
+ public void onSuccess(Location location) {
+ if (location != null) {
+ mLastLocation = location;
+ fn_update(location);
+ }
+ }
+
+ });
}
private void fn_update(Location location) {
@@ -321,7 +342,5 @@ public class BackgroundLocalizationService extends Service {
return null;
}
-
}
-
}
\ No newline at end of file
diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/PrefUtils.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/PrefUtils.java
index 193e29d..0982f5a 100644
--- a/app/src/main/java/com/uam/wmi/findmytutor/utils/PrefUtils.java
+++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/PrefUtils.java
@@ -20,7 +20,6 @@ public class PrefUtils {
return context.getSharedPreferences("com.uam.wmi.findmytutor_preferences", Context.MODE_PRIVATE);
}
-
public static void getAllKeys(Context context){
Map keys = getSharedPreferences(context).getAll();
@@ -35,9 +34,6 @@ public class PrefUtils {
editor.clear().apply();
}
-
-
-
public static void storeApiKey(Context context, String apiKey) {
SharedPreferences.Editor editor = getSharedPreferences(context).edit();
editor.putString("API_KEY", apiKey);
@@ -150,5 +146,4 @@ public class PrefUtils {
editor.putBoolean("BACKGROUND_SERVICE_STATUS", status);
editor.apply();
}
-
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_cancel.xml b/app/src/main/res/drawable/ic_cancel.xml
new file mode 100644
index 0000000..a8b409b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cancel.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_launch.xml b/app/src/main/res/drawable/ic_launch.xml
new file mode 100644
index 0000000..a8b409b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_launch.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 198b7f7..e4e9ea1 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -168,9 +168,9 @@
Main2Activity
- Hotels
- Parks
- Attractions
+ TODO
+ THIS
+ TOO
Select a location
This app needs location permissions in order to show its functionality.
You didn\'t grant location permissions.
@@ -189,5 +189,10 @@
Log in
Users list
Invalid login format.
+ Locale utils
+ Permission denied
+ permission should be granted
+
+