From d4aa5b526119ff123f0f209219006e0f25cc1ba6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mieszko=20Wrzeszczy=C5=84ski?= Date: Sun, 28 Oct 2018 17:40:16 +0100 Subject: [PATCH] Refactor & don't show user information when tutor tab does not exist --- .../activity/UsersListActivity.java | 63 ++----- .../wmi/findmytutor/model/ReturnedTutors.java | 161 ++++++++---------- .../wmi/findmytutor/service/UserService.java | 2 +- app/src/main/res/layout/note_dialog.xml | 3 +- app/src/main/res/values/strings.xml | 1 + 5 files changed, 95 insertions(+), 135 deletions(-) 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 cfce872..525ee06 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,6 @@ package com.uam.wmi.findmytutor.activity; import android.annotation.SuppressLint; -import android.content.DialogInterface; import android.graphics.Color; import android.os.Build; import android.os.Bundle; @@ -20,10 +19,8 @@ import android.widget.ListView; import android.widget.TextView; import com.annimon.stream.Stream; -import com.facebook.shimmer.ShimmerFrameLayout; import com.jakewharton.retrofit2.adapter.rxjava2.HttpException; import com.uam.wmi.findmytutor.R; -import com.uam.wmi.findmytutor.model.DutyHour; import com.uam.wmi.findmytutor.model.DutyHourViewModel; import com.uam.wmi.findmytutor.model.TutorTabViewModel; import com.uam.wmi.findmytutor.model.User; @@ -47,8 +44,6 @@ import io.reactivex.observers.DisposableSingleObserver; import io.reactivex.schedulers.Schedulers; import okhttp3.ResponseBody; -import static java.util.stream.Collectors.toList; - public class UsersListActivity extends BaseActivity { private static final String TAG = UsersListActivity.class.getSimpleName(); @BindView(R.id.coordinator_layout) @@ -67,7 +62,6 @@ public class UsersListActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.users_list); ButterKnife.bind(this); @@ -95,29 +89,10 @@ public class UsersListActivity extends BaseActivity { @Override public void onLongClick(View view, int position) { - //showActionsDialog(position); - - //showNoteDialog(true, tutorsList.get(position), position); } })); } - - private void showActionsDialog(final int position) { - CharSequence colors[] = new CharSequence[]{"Edit", "Delete"}; - - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle("Choose option"); - builder.setItems(colors, (dialog, which) -> { - if (which == 0) { - showNoteDialog(true, tutorsList.get(position), position); - } else { - //deleteNote(tutorsList.get(position).getId(), position); - } - }); - builder.show(); - } - private void showNoteDialog(final boolean shouldUpdate, final User user, final int position) { LayoutInflater layoutInflaterAndroid = LayoutInflater.from(getApplicationContext()); View view = layoutInflaterAndroid.inflate(R.layout.note_dialog, null); @@ -135,7 +110,7 @@ public class UsersListActivity extends BaseActivity { TextView userRoom = view.findViewById(R.id.userRoom); TextView userEmail = view.findViewById(R.id.userEmail); - userName.setText(user.getFirstName() + " " + user.getLastName()); + userName.setText(String.format("%s %s", user.getFirstName(), user.getLastName())); disposable.add( tutorTabService.apiUsersTutorTabByTutorIdGet(user.getId()) @@ -145,21 +120,19 @@ public class UsersListActivity extends BaseActivity { @SuppressLint("SetTextI18n") @Override public void onSuccess(TutorTabViewModel tutorTabViewModel) { - Log.e("TUTOR_TAB",tutorTabViewModel.toString()); - + final AlertDialog alertDialog = alertDialogBuilderUserInput.create(); List dutyHoursList = Stream.of(tutorTabViewModel.getDutyHours()) .map(DutyHourViewModel::getSummary).toList(); - userRoom.setText(getString(R.string.userRoom) + ": " + tutorTabViewModel.getRoom()); - userEmail.setText(getString(R.string.userEmail) + ": " + tutorTabViewModel.getEmailTutorTab()); - userNote.setText(getString(R.string.userNote) + ": " + tutorTabViewModel.getNote()); + userRoom.setText(String.format("%s: %s", getString(R.string.userRoom), tutorTabViewModel.getRoom())); + userEmail.setText(String.format("%s: %s", getString(R.string.userEmail), tutorTabViewModel.getEmailTutorTab())); + userNote.setText(String.format("%s: %s", getString(R.string.userNote), tutorTabViewModel.getNote())); - final ArrayAdapter arrayAdapter = new ArrayAdapter(UsersListActivity.this, - android.R.layout.simple_list_item_activated_1,dutyHoursList); + final ArrayAdapter arrayAdapter = new ArrayAdapter<>(UsersListActivity.this, + android.R.layout.simple_list_item_activated_1, dutyHoursList); userDutyHours.setAdapter(arrayAdapter); - - + alertDialog.show(); } @Override @@ -167,11 +140,7 @@ public class UsersListActivity extends BaseActivity { showError(e); } })); - - - final AlertDialog alertDialog = alertDialogBuilderUserInput.create(); - alertDialog.show(); - } + } private void fetchAllTutors() { @@ -180,7 +149,7 @@ public class UsersListActivity extends BaseActivity { .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .map(tutors -> { - List tutorsList = new ArrayList<>(tutors.getTutors()); + List tutorsList = new ArrayList<>(tutors); List onlineTutors = Stream.of(tutorsList).filter(User::isIsOnline).toList(); @@ -190,9 +159,9 @@ public class UsersListActivity extends BaseActivity { 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())); + Collections.sort(onlineTutors, this::sortByUserName); + Collections.sort(activeNotOnlineTutors, this::sortByUserName); + Collections.sort(notActiveTutors, this::sortByUserName); List sortedUserList = new ArrayList<>(onlineTutors); sortedUserList.addAll(activeNotOnlineTutors); @@ -216,6 +185,11 @@ public class UsersListActivity extends BaseActivity { })); } + + private int sortByUserName(User t1, User t2) { + return t1.getFirstName().compareTo(t2.getFirstName()); + } + private void showError(Throwable e) { String message = e.toString(); @@ -237,7 +211,6 @@ public class UsersListActivity extends BaseActivity { } else { noNotesView.setVisibility(View.VISIBLE); } - } @Override diff --git a/app/src/main/java/com/uam/wmi/findmytutor/model/ReturnedTutors.java b/app/src/main/java/com/uam/wmi/findmytutor/model/ReturnedTutors.java index 23a897a..d336ddd 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/model/ReturnedTutors.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/model/ReturnedTutors.java @@ -1,121 +1,108 @@ package com.uam.wmi.findmytutor.model; -import java.util.Objects; - import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; -import io.swagger.annotations.ApiModelProperty; -import java.util.ArrayList; -import java.util.List; +public class ReturnedTutors { -/** - * ReturnedTutors - */ - -public class ReturnedTutors extends User{ - @SerializedName("tutors") + @SerializedName("id") @Expose - private List tutors = null; - - @SerializedName("blacklistersTutors") + private String id; + @SerializedName("isOnline") @Expose - private List blacklistersTutors = null; + private Boolean isOnline; + @SerializedName("title") + @Expose + private String title; + @SerializedName("firstName") + @Expose + private String firstName; + @SerializedName("lastName") + @Expose + private String lastName; + @SerializedName("department") + @Expose + private String department; + @SerializedName("userName") + @Expose + private String userName; + @SerializedName("email") + @Expose + private String email; + @SerializedName("isActive") + @Expose + private Boolean isActive; - public ReturnedTutors tutors(List tutors) { - this.tutors = tutors; - return this; + public String getId() { + return id; } - public List getTutors() { - return tutors; + public void setId(String id) { + this.id = id; } - public ReturnedTutors addTutorsItem(User tutorsItem) { - if (this.tutors == null) { - this.tutors = new ArrayList(); - } - this.tutors.add(tutorsItem); - return this; + public Boolean getIsOnline() { + return isOnline; } - /** - * Get tutors - * @return tutors - **/ - - - public void setTutors(List tutors) { - this.tutors = tutors; + public void setIsOnline(Boolean isOnline) { + this.isOnline = isOnline; } - public ReturnedTutors blacklistersTutors(List blacklistersTutors) { - this.blacklistersTutors = blacklistersTutors; - return this; + public String getTitle() { + return title; } - public ReturnedTutors addBlacklistersTutorsItem(User blacklistersTutorsItem) { - if (this.blacklistersTutors == null) { - this.blacklistersTutors = new ArrayList(); - } - this.blacklistersTutors.add(blacklistersTutorsItem); - return this; + public void setTitle(String title) { + this.title = title; } - /** - * Get blacklistersTutors - * @return blacklistersTutors - **/ - @ApiModelProperty(value = "") - public List getBlacklistersTutors() { - return blacklistersTutors; + public String getFirstName() { + return firstName; } - public void setBlacklistersTutors(List blacklistersTutors) { - this.blacklistersTutors = blacklistersTutors; + public void setFirstName(String firstName) { + this.firstName = firstName; } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ReturnedTutors returnedTutors = (ReturnedTutors) o; - return Objects.equals(this.tutors, returnedTutors.tutors) && - Objects.equals(this.blacklistersTutors, returnedTutors.blacklistersTutors); + public String getLastName() { + return lastName; } - @Override - public int hashCode() { - return Objects.hash(tutors, blacklistersTutors); + public void setLastName(String lastName) { + this.lastName = lastName; } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ReturnedTutors {\n"); - - sb.append(" tutors: ").append(toIndentedString(tutors)).append("\n"); - sb.append(" blacklistersTutors: ").append(toIndentedString(blacklistersTutors)).append("\n"); - sb.append("}"); - return sb.toString(); + public String getDepartment() { + return department; } - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); + public void setDepartment(String department) { + this.department = department; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Boolean getIsActive() { + return isActive; + } + + public void setIsActive(Boolean isActive) { + this.isActive = isActive; } } - 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 e4a80ec..19152bf 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 @@ -25,7 +25,7 @@ public interface UserService { Single > getAllUsers(); @GET("api/users") - Single apiUsersGet(); + Single > apiUsersGet(); @POST("api/users") Completable createUser(@Body User user); diff --git a/app/src/main/res/layout/note_dialog.xml b/app/src/main/res/layout/note_dialog.xml index 8b0ae93..e0ed238 100644 --- a/app/src/main/res/layout/note_dialog.xml +++ b/app/src/main/res/layout/note_dialog.xml @@ -8,7 +8,6 @@ android:paddingRight="@dimen/activity_margin" android:paddingTop="@dimen/activity_margin"> - + tools:text="@string/dutyHours" /> Email Notatka Dyżury: + Dyżury: