diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/BaseActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/BaseActivity.java index ab0acf7..3852766 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/BaseActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/BaseActivity.java @@ -126,17 +126,9 @@ public abstract class BaseActivity if(PrefUtils.isBackgroundLocationServiceRunning(getApplicationContext())) { stopBackgroundLocalizationTask(); } + logout(); - storeBackgroundLocationStatus(getApplication(), false); - PrefUtils.storeIsLoggedIn(getApplicationContext(), false); - Intent i = getBaseContext().getPackageManager() - .getLaunchIntentForPackage(getBaseContext().getPackageName()); - if (i != null) { - i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - } - startActivity(i); - finish(); } else if (itemName.equals(getResources().getString(R.string.navigation_item_feedback))) { feedbackUtils.showNoteDialog("FEEDBACK"); @@ -165,6 +157,20 @@ public abstract class BaseActivity } } + + protected void logout(){ + storeBackgroundLocationStatus(getApplication(), false); + PrefUtils.storeIsLoggedIn(getApplicationContext(), false); + + Intent i = getBaseContext().getPackageManager() + .getLaunchIntentForPackage(getBaseContext().getPackageName()); + if (i != null) { + i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + } + startActivity(i); + finish(); + } + protected void checkPermissions() { final List missingPermissions = new ArrayList(); 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 b9ab207..b321ad0 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 @@ -127,6 +127,7 @@ public class MapActivity extends BaseActivity mStatusChecker = () -> { try { if (shouldFetchNewCoords) { + checkIfUsesCanBeTutor(); fetchTopCoords(); } } finally { @@ -404,6 +405,30 @@ Log.e("LOCALE",PrefUtils.getLocale(getApplicationContext())); PrefUtils.putCurrentManualLocation(getApplicationContext(), resp.getPredefinedCoordinateId()); } + + private void checkIfUsesCanBeTutor(){ + disposable.add( + userService.getSelf(myId) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribeWith(new DisposableSingleObserver() { + @Override + public void onSuccess(User user) { + boolean tutorFromBackend = user.getTitle().equals("tutor"); + + if(tutorFromBackend != PrefUtils.getIsTutor(getApplicationContext())){ + logout(); + } + } + + @Override + public void onError(Throwable e) { + showError(e); + } + })); + + } + private void fetchTopCoords() { disposable.add( diff --git a/app/src/main/java/com/uam/wmi/findmytutor/service/UserService.java b/app/src/main/java/com/uam/wmi/findmytutor/service/UserService.java index f4092b4..afe0b2c 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/service/UserService.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/service/UserService.java @@ -39,6 +39,9 @@ public interface UserService { @GET("api/users/tutors/active") Single > getAllActiveTutors(); + + + @GET("api/users/tutors/offline") Single > getAllOfflineTutors(); @@ -60,6 +63,9 @@ public interface UserService { @GET("api/users/{id}") Single getUserById(@Path("id") String userID); + @GET("api/users/self/{id}") + Single getSelf(@Path("id") String userID); + @PUT("api/users/{id}") Completable updateUserByID(@Path("id") String userID, @Body User user);