From 1e281b3ea54c10a8dc295cd3b151ea8a4688c613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mieszko=20Wrzeszczy=C5=84ski?= Date: Fri, 26 Oct 2018 23:29:45 +0200 Subject: [PATCH] Add status of particular user --- app/build.gradle | 1 + .../activity/UsersListActivity.java | 26 ++++++++++++++++--- .../wmi/findmytutor/view/TutorsAdapter.java | 12 --------- app/src/main/res/layout/tutor_list_row.xml | 18 ++++++------- 4 files changed, 33 insertions(+), 24 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 595676b..72c08c7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,5 +56,6 @@ dependencies { implementation "com.squareup.okhttp3:logging-interceptor:3.11.0" implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1' implementation 'com.auth0.android:jwtdecode:1.1.1' + implementation 'com.annimon:stream:1.2.1' } diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/UsersListActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/UsersListActivity.java index 321d76b..cde7804 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/UsersListActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/UsersListActivity.java @@ -1,7 +1,9 @@ package com.uam.wmi.findmytutor.activity; import android.graphics.Color; +import android.os.Build; import android.os.Bundle; +import android.support.annotation.RequiresApi; import android.support.design.widget.CoordinatorLayout; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; @@ -12,6 +14,7 @@ import android.view.MenuItem; import android.view.View; import android.widget.TextView; +import com.annimon.stream.Stream; import com.jakewharton.retrofit2.adapter.rxjava2.HttpException; import com.uam.wmi.findmytutor.R; @@ -28,6 +31,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; import butterknife.BindView; import butterknife.ButterKnife; @@ -54,6 +58,7 @@ public class UsersListActivity extends BaseActivity { @BindView(R.id.txt_empty_notes_view) TextView noNotesView; + @RequiresApi(api = Build.VERSION_CODES.N) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -87,6 +92,7 @@ public class UsersListActivity extends BaseActivity { } + private void fetchAllTutors() { disposable.add( apiService.apiUsersGet() @@ -94,9 +100,23 @@ public class UsersListActivity extends BaseActivity { .observeOn(AndroidSchedulers.mainThread()) .map(tutors -> { List tutorsList = new ArrayList<>(tutors.getTutors()); - Collections.sort(tutorsList, (t1, t2) -> t2.isIsOnline().compareTo(t1.isIsOnline())); - return tutorsList; + List onlineTutors = Stream.of(tutorsList).filter(User::isIsOnline).toList(); + List activeNotOnlineTutors = Stream.of(tutorsList) + .filter(t -> t.isIsActive() && !onlineTutors.contains(t)).toList();; + + List notActiveTutors = Stream.of(tutorsList) + .filterNot(User::isIsActive).toList();; + + Collections.sort(onlineTutors, (t1, t2) -> t1.getFirstName().compareTo(t2.getFirstName())); + Collections.sort(activeNotOnlineTutors, (t1, t2) -> t1.getFirstName().compareTo(t2.getFirstName())); + Collections.sort(notActiveTutors, (t1, t2) -> t1.getFirstName().compareTo(t2.getFirstName())); + + List sortedUserList = new ArrayList<>(onlineTutors); + sortedUserList.addAll(activeNotOnlineTutors); + sortedUserList.addAll(notActiveTutors); + + return sortedUserList; }) .subscribeWith(new DisposableSingleObserver >() { @Override @@ -117,7 +137,7 @@ public class UsersListActivity extends BaseActivity { } private void showError(Throwable e) { - String message = "Something went wrong!"; + String message = e.toString(); if (e instanceof HttpException) { ResponseBody responseBody = ((HttpException) e).response().errorBody(); diff --git a/app/src/main/java/com/uam/wmi/findmytutor/view/TutorsAdapter.java b/app/src/main/java/com/uam/wmi/findmytutor/view/TutorsAdapter.java index 6d79212..3b623e3 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/view/TutorsAdapter.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/view/TutorsAdapter.java @@ -94,17 +94,5 @@ public class TutorsAdapter extends RecyclerView.Adapter