Add primitive modal about user
This commit is contained in:
parent
edd5fb76a3
commit
299e25d0f9
@ -1,6 +1,5 @@
|
|||||||
package com.uam.wmi.findmytutor.activity;
|
package com.uam.wmi.findmytutor.activity;
|
||||||
|
|
||||||
import android.content.DialogInterface;
|
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@ -8,25 +7,25 @@ import android.support.annotation.RequiresApi;
|
|||||||
import android.support.design.widget.CoordinatorLayout;
|
import android.support.design.widget.CoordinatorLayout;
|
||||||
import android.support.design.widget.Snackbar;
|
import android.support.design.widget.Snackbar;
|
||||||
import android.support.v7.app.AlertDialog;
|
import android.support.v7.app.AlertDialog;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
|
||||||
import android.support.v7.widget.DefaultItemAnimator;
|
import android.support.v7.widget.DefaultItemAnimator;
|
||||||
import android.support.v7.widget.LinearLayoutManager;
|
import android.support.v7.widget.LinearLayoutManager;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
import android.text.TextUtils;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.MenuItem;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.EditText;
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.ListView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
import com.jakewharton.retrofit2.adapter.rxjava2.HttpException;
|
import com.jakewharton.retrofit2.adapter.rxjava2.HttpException;
|
||||||
import com.uam.wmi.findmytutor.R;
|
import com.uam.wmi.findmytutor.R;
|
||||||
|
import com.uam.wmi.findmytutor.model.DutyHour;
|
||||||
import com.uam.wmi.findmytutor.model.ReturnedTutors;
|
import com.uam.wmi.findmytutor.model.DutyHourViewModel;
|
||||||
|
import com.uam.wmi.findmytutor.model.TutorTabViewModel;
|
||||||
import com.uam.wmi.findmytutor.model.User;
|
import com.uam.wmi.findmytutor.model.User;
|
||||||
import com.uam.wmi.findmytutor.network.ApiClient;
|
import com.uam.wmi.findmytutor.network.ApiClient;
|
||||||
|
import com.uam.wmi.findmytutor.service.TutorTabApi;
|
||||||
import com.uam.wmi.findmytutor.service.UserService;
|
import com.uam.wmi.findmytutor.service.UserService;
|
||||||
import com.uam.wmi.findmytutor.utils.MyDividerItemDecoration;
|
import com.uam.wmi.findmytutor.utils.MyDividerItemDecoration;
|
||||||
import com.uam.wmi.findmytutor.utils.RecyclerTouchListener;
|
import com.uam.wmi.findmytutor.utils.RecyclerTouchListener;
|
||||||
@ -35,34 +34,29 @@ import com.uam.wmi.findmytutor.view.TutorsAdapter;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
import io.reactivex.disposables.CompositeDisposable;
|
import io.reactivex.disposables.CompositeDisposable;
|
||||||
import io.reactivex.functions.Function;
|
|
||||||
import io.reactivex.observers.DisposableSingleObserver;
|
import io.reactivex.observers.DisposableSingleObserver;
|
||||||
import io.reactivex.schedulers.Schedulers;
|
import io.reactivex.schedulers.Schedulers;
|
||||||
import okhttp3.ResponseBody;
|
import okhttp3.ResponseBody;
|
||||||
|
|
||||||
public class UsersListActivity extends BaseActivity {
|
public class UsersListActivity extends BaseActivity {
|
||||||
private static final String TAG = UsersListActivity.class.getSimpleName();
|
private static final String TAG = UsersListActivity.class.getSimpleName();
|
||||||
private UserService apiService;
|
@BindView(R.id.coordinator_layout)
|
||||||
|
CoordinatorLayout coordinatorLayout;
|
||||||
|
@BindView(R.id.recycler_view)
|
||||||
|
RecyclerView recyclerView;
|
||||||
|
@BindView(R.id.txt_empty_notes_view)
|
||||||
|
TextView noNotesView;
|
||||||
|
private UserService userService;
|
||||||
|
private TutorTabApi tutorTabService;
|
||||||
private CompositeDisposable disposable = new CompositeDisposable();
|
private CompositeDisposable disposable = new CompositeDisposable();
|
||||||
private TutorsAdapter mAdapter;
|
private TutorsAdapter mAdapter;
|
||||||
private List<User> tutorsList = new ArrayList<>();
|
private List<User> tutorsList = new ArrayList<>();
|
||||||
@BindView(R.id.coordinator_layout)
|
|
||||||
CoordinatorLayout coordinatorLayout;
|
|
||||||
|
|
||||||
@BindView(R.id.recycler_view)
|
|
||||||
RecyclerView recyclerView;
|
|
||||||
|
|
||||||
|
|
||||||
@BindView(R.id.txt_empty_notes_view)
|
|
||||||
TextView noNotesView;
|
|
||||||
|
|
||||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||||
@Override
|
@Override
|
||||||
@ -72,9 +66,12 @@ public class UsersListActivity extends BaseActivity {
|
|||||||
setContentView(R.layout.users_list);
|
setContentView(R.layout.users_list);
|
||||||
ButterKnife.bind(this);
|
ButterKnife.bind(this);
|
||||||
|
|
||||||
apiService = ApiClient.getClient(getApplicationContext())
|
userService = ApiClient.getClient(getApplicationContext())
|
||||||
.create(UserService.class);
|
.create(UserService.class);
|
||||||
|
|
||||||
|
tutorTabService = ApiClient.getClient(getApplicationContext())
|
||||||
|
.create(TutorTabApi.class);
|
||||||
|
|
||||||
mAdapter = new TutorsAdapter(this, tutorsList);
|
mAdapter = new TutorsAdapter(this, tutorsList);
|
||||||
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
|
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
|
||||||
recyclerView.setLayoutManager(mLayoutManager);
|
recyclerView.setLayoutManager(mLayoutManager);
|
||||||
@ -94,7 +91,8 @@ public class UsersListActivity extends BaseActivity {
|
|||||||
@Override
|
@Override
|
||||||
public void onLongClick(View view, int position) {
|
public void onLongClick(View view, int position) {
|
||||||
//showActionsDialog(position);
|
//showActionsDialog(position);
|
||||||
showNoteDialog(true, tutorsList.get(position), position);
|
|
||||||
|
//showNoteDialog(true, tutorsList.get(position), position);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
@ -115,43 +113,70 @@ public class UsersListActivity extends BaseActivity {
|
|||||||
builder.show();
|
builder.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showNoteDialog(final boolean shouldUpdate, final User note, final int position) {
|
private void showNoteDialog(final boolean shouldUpdate, final User user, final int position) {
|
||||||
LayoutInflater layoutInflaterAndroid = LayoutInflater.from(getApplicationContext());
|
LayoutInflater layoutInflaterAndroid = LayoutInflater.from(getApplicationContext());
|
||||||
View view = layoutInflaterAndroid.inflate(R.layout.note_dialog, null);
|
View view = layoutInflaterAndroid.inflate(R.layout.note_dialog, null);
|
||||||
|
|
||||||
AlertDialog.Builder alertDialogBuilderUserInput = new AlertDialog.Builder(this);
|
AlertDialog.Builder alertDialogBuilderUserInput = new AlertDialog.Builder(this);
|
||||||
alertDialogBuilderUserInput.setView(view);
|
alertDialogBuilderUserInput.setView(view);
|
||||||
|
|
||||||
final TextView inputNote = view.findViewById(R.id.note);
|
TextView userName = view.findViewById(R.id.userName);
|
||||||
TextView dialogTitle = view.findViewById(R.id.dialog_title);
|
TextView userDutyHours = view.findViewById(R.id.userDutyHours);
|
||||||
dialogTitle.setText(note.getNormalizedUserName());
|
TextView userNote = view.findViewById(R.id.userNote);
|
||||||
|
TextView userRoom = view.findViewById(R.id.userRoom);
|
||||||
|
TextView userEmail = view.findViewById(R.id.userEmail);
|
||||||
|
|
||||||
|
userName.setText(user.getFirstName() + " " + user.getLastName());
|
||||||
|
|
||||||
|
disposable.add(
|
||||||
|
tutorTabService.apiUsersTutorTabByTutorIdGet(user.getId())
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribeWith(new DisposableSingleObserver<TutorTabViewModel>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(TutorTabViewModel tutorTabViewModel) {
|
||||||
|
Log.e("TUTOR_TAB",tutorTabViewModel.toString());
|
||||||
|
|
||||||
|
List<String> dutyHourslist = Stream.of(tutorTabViewModel.getDutyHours())
|
||||||
|
.map(DutyHourViewModel::toString).toList();
|
||||||
|
|
||||||
|
userRoom.setText(tutorTabViewModel.getRoom());
|
||||||
|
userEmail.setText(tutorTabViewModel.getEmailTutorTab());
|
||||||
|
userNote.setText(tutorTabViewModel.getNote());
|
||||||
|
|
||||||
|
if(dutyHourslist.size() > 0)
|
||||||
|
userDutyHours.setText(dutyHourslist.get(0));
|
||||||
|
|
||||||
|
|
||||||
inputNote.setText(note.getNormalizedUserName() + note.getTitle() + note.getDepartment());
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Throwable e) {
|
||||||
|
showError(e);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
|
||||||
final AlertDialog alertDialog = alertDialogBuilderUserInput.create();
|
final AlertDialog alertDialog = alertDialogBuilderUserInput.create();
|
||||||
alertDialog.show();
|
alertDialog.show();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void fetchAllTutors() {
|
private void fetchAllTutors() {
|
||||||
disposable.add(
|
disposable.add(
|
||||||
apiService.apiUsersGet()
|
userService.apiUsersGet()
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.map(tutors -> {
|
.map(tutors -> {
|
||||||
List<User> tutorsList = new ArrayList<>(tutors.getTutors());
|
List<User> tutorsList = new ArrayList<>(tutors.getTutors());
|
||||||
|
|
||||||
List<User> onlineTutors = Stream.of(tutorsList).filter(User::isIsOnline).toList();
|
List<User> onlineTutors = Stream.of(tutorsList).filter(User::isIsOnline).toList();
|
||||||
List<User> activeNotOnlineTutors = Stream.of(tutorsList)
|
|
||||||
.filter(t -> t.isIsActive() && !onlineTutors.contains(t)).toList();;
|
|
||||||
|
|
||||||
List<User> notActiveTutors = Stream.of(tutorsList)
|
List<User> activeNotOnlineTutors = Stream.of(tutorsList)
|
||||||
.filterNot(User::isIsActive).toList();;
|
.filter(t -> t.isIsActive() && !onlineTutors.contains(t)).toList();
|
||||||
|
|
||||||
|
List<User> notActiveTutors = Stream.of(tutorsList)
|
||||||
|
.filterNot(User::isIsActive).toList();
|
||||||
|
|
||||||
Collections.sort(onlineTutors, (t1, t2) -> t1.getFirstName().compareTo(t2.getFirstName()));
|
Collections.sort(onlineTutors, (t1, t2) -> t1.getFirstName().compareTo(t2.getFirstName()));
|
||||||
Collections.sort(activeNotOnlineTutors, (t1, t2) -> t1.getFirstName().compareTo(t2.getFirstName()));
|
Collections.sort(activeNotOnlineTutors, (t1, t2) -> t1.getFirstName().compareTo(t2.getFirstName()));
|
||||||
@ -163,7 +188,7 @@ public class UsersListActivity extends BaseActivity {
|
|||||||
|
|
||||||
return sortedUserList;
|
return sortedUserList;
|
||||||
})
|
})
|
||||||
.subscribeWith(new DisposableSingleObserver <List<User>>() {
|
.subscribeWith(new DisposableSingleObserver<List<User>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<User> users) {
|
public void onSuccess(List<User> users) {
|
||||||
tutorsList.clear();
|
tutorsList.clear();
|
||||||
|
@ -0,0 +1,122 @@
|
|||||||
|
package com.uam.wmi.findmytutor.model;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DutyHourViewModel
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class DutyHourViewModel {
|
||||||
|
@SerializedName("day")
|
||||||
|
private String day = null;
|
||||||
|
|
||||||
|
@SerializedName("start")
|
||||||
|
private String start = null;
|
||||||
|
|
||||||
|
@SerializedName("end")
|
||||||
|
private String end = null;
|
||||||
|
|
||||||
|
public DutyHourViewModel day(String day) {
|
||||||
|
this.day = day;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get day
|
||||||
|
* @return day
|
||||||
|
**/
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
public String getDay() {
|
||||||
|
return day;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDay(String day) {
|
||||||
|
this.day = day;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DutyHourViewModel start(String start) {
|
||||||
|
this.start = start;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get start
|
||||||
|
* @return start
|
||||||
|
**/
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
public String getStart() {
|
||||||
|
return start;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStart(String start) {
|
||||||
|
this.start = start;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DutyHourViewModel end(String end) {
|
||||||
|
this.end = end;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get end
|
||||||
|
* @return end
|
||||||
|
**/
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
public String getEnd() {
|
||||||
|
return end;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnd(String end) {
|
||||||
|
this.end = end;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(java.lang.Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
DutyHourViewModel dutyHourViewModel = (DutyHourViewModel) o;
|
||||||
|
return Objects.equals(this.day, dutyHourViewModel.day) &&
|
||||||
|
Objects.equals(this.start, dutyHourViewModel.start) &&
|
||||||
|
Objects.equals(this.end, dutyHourViewModel.end);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(day, start, end);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append("class DutyHourViewModel {\n");
|
||||||
|
|
||||||
|
sb.append(" day: ").append(toIndentedString(day)).append("\n");
|
||||||
|
sb.append(" start: ").append(toIndentedString(start)).append("\n");
|
||||||
|
sb.append(" end: ").append(toIndentedString(end)).append("\n");
|
||||||
|
sb.append("}");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 ");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,199 @@
|
|||||||
|
package com.uam.wmi.findmytutor.model;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TutorTabViewModel
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class TutorTabViewModel {
|
||||||
|
@SerializedName("tutorTabId")
|
||||||
|
private UUID tutorTabId = null;
|
||||||
|
|
||||||
|
@SerializedName("userId")
|
||||||
|
private String userId = null;
|
||||||
|
|
||||||
|
@SerializedName("room")
|
||||||
|
private String room = null;
|
||||||
|
|
||||||
|
@SerializedName("emailTutorTab")
|
||||||
|
private String emailTutorTab = null;
|
||||||
|
|
||||||
|
@SerializedName("note")
|
||||||
|
private String note = null;
|
||||||
|
|
||||||
|
@SerializedName("dutyHours")
|
||||||
|
private List<DutyHourViewModel> dutyHours = null;
|
||||||
|
|
||||||
|
public TutorTabViewModel tutorTabId(UUID tutorTabId) {
|
||||||
|
this.tutorTabId = tutorTabId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get tutorTabId
|
||||||
|
* @return tutorTabId
|
||||||
|
**/
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
public UUID getTutorTabId() {
|
||||||
|
return tutorTabId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTutorTabId(UUID tutorTabId) {
|
||||||
|
this.tutorTabId = tutorTabId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TutorTabViewModel userId(String userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get userId
|
||||||
|
* @return userId
|
||||||
|
**/
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
public String getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(String userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TutorTabViewModel room(String room) {
|
||||||
|
this.room = room;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get room
|
||||||
|
* @return room
|
||||||
|
**/
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
public String getRoom() {
|
||||||
|
return room;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRoom(String room) {
|
||||||
|
this.room = room;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TutorTabViewModel emailTutorTab(String emailTutorTab) {
|
||||||
|
this.emailTutorTab = emailTutorTab;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get emailTutorTab
|
||||||
|
* @return emailTutorTab
|
||||||
|
**/
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
public String getEmailTutorTab() {
|
||||||
|
return emailTutorTab;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEmailTutorTab(String emailTutorTab) {
|
||||||
|
this.emailTutorTab = emailTutorTab;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TutorTabViewModel note(String note) {
|
||||||
|
this.note = note;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getNote() {
|
||||||
|
return note;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNote(String note) {
|
||||||
|
this.note = note;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TutorTabViewModel dutyHours(List<DutyHourViewModel> dutyHours) {
|
||||||
|
this.dutyHours = dutyHours;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TutorTabViewModel addDutyHoursItem(DutyHourViewModel dutyHoursItem) {
|
||||||
|
if (this.dutyHours == null) {
|
||||||
|
this.dutyHours = new ArrayList<DutyHourViewModel>();
|
||||||
|
}
|
||||||
|
this.dutyHours.add(dutyHoursItem);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get dutyHours
|
||||||
|
* @return dutyHours
|
||||||
|
**/
|
||||||
|
@ApiModelProperty(value = "")
|
||||||
|
public List<DutyHourViewModel> getDutyHours() {
|
||||||
|
return dutyHours;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDutyHours(List<DutyHourViewModel> dutyHours) {
|
||||||
|
this.dutyHours = dutyHours;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(java.lang.Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
TutorTabViewModel tutorTabViewModel = (TutorTabViewModel) o;
|
||||||
|
return Objects.equals(this.tutorTabId, tutorTabViewModel.tutorTabId) &&
|
||||||
|
Objects.equals(this.userId, tutorTabViewModel.userId) &&
|
||||||
|
Objects.equals(this.room, tutorTabViewModel.room) &&
|
||||||
|
Objects.equals(this.emailTutorTab, tutorTabViewModel.emailTutorTab) &&
|
||||||
|
Objects.equals(this.note, tutorTabViewModel.note) &&
|
||||||
|
Objects.equals(this.dutyHours, tutorTabViewModel.dutyHours);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(tutorTabId, userId, room, emailTutorTab, note, dutyHours);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append("class TutorTabViewModel {\n");
|
||||||
|
|
||||||
|
sb.append(" tutorTabId: ").append(toIndentedString(tutorTabId)).append("\n");
|
||||||
|
sb.append(" userId: ").append(toIndentedString(userId)).append("\n");
|
||||||
|
sb.append(" room: ").append(toIndentedString(room)).append("\n");
|
||||||
|
sb.append(" emailTutorTab: ").append(toIndentedString(emailTutorTab)).append("\n");
|
||||||
|
sb.append(" note: ").append(toIndentedString(note)).append("\n");
|
||||||
|
sb.append(" dutyHours: ").append(toIndentedString(dutyHours)).append("\n");
|
||||||
|
sb.append("}");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 ");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,58 @@
|
|||||||
|
package com.uam.wmi.findmytutor.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.uam.wmi.findmytutor.model.TutorTabViewModel;
|
||||||
|
|
||||||
|
import io.reactivex.Observable;
|
||||||
|
import io.reactivex.Single;
|
||||||
|
import retrofit2.http.*;
|
||||||
|
|
||||||
|
|
||||||
|
public interface TutorTabApi {
|
||||||
|
/**
|
||||||
|
* Scrap all tutor tabs
|
||||||
|
* With this method, you can initialize tutor tabs scrapper. The effect will be: - all tutor tabs will be overwritten with data from the WMI source
|
||||||
|
* @param tutorId (required)
|
||||||
|
* @return Call<Void>
|
||||||
|
*/
|
||||||
|
@POST("api/users/scrapTutorTab/{tutorId}")
|
||||||
|
Observable<Void> apiUsersScrapTutorTabByTutorIdPost(
|
||||||
|
@retrofit2.http.Path("tutorId") String tutorId
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scrap all tutor tabs
|
||||||
|
* With this method, you can initialize tutor tabs scrapper. The effect will be: - all tutor tabs will be overwritten with data from the WMI source
|
||||||
|
* @return Call<Void>
|
||||||
|
*/
|
||||||
|
@POST("api/users/scrapTutorTab")
|
||||||
|
Observable<Void> apiUsersScrapTutorTabPost();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param tutorId (required)
|
||||||
|
* @return Call<TutorTabViewModel>
|
||||||
|
*/
|
||||||
|
@GET("api/users/tutorTab/{tutorId}")
|
||||||
|
Single<TutorTabViewModel> apiUsersTutorTabByTutorIdGet(
|
||||||
|
@retrofit2.http.Path("tutorId") String tutorId
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param tutorId (required)
|
||||||
|
* @param tutorTab (optional)
|
||||||
|
* @return Call<Void>
|
||||||
|
*/
|
||||||
|
@Headers({
|
||||||
|
"Content-Type:application/json"
|
||||||
|
})
|
||||||
|
@PUT("api/users/tutorTab/{tutorId}")
|
||||||
|
Observable<Void> apiUsersTutorTabByTutorIdPut(
|
||||||
|
@retrofit2.http.Path("tutorId") String tutorId, @retrofit2.http.Body TutorTabViewModel tutorTab
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
@ -7,27 +8,41 @@
|
|||||||
android:paddingRight="@dimen/activity_margin"
|
android:paddingRight="@dimen/activity_margin"
|
||||||
android:paddingTop="@dimen/activity_margin">
|
android:paddingTop="@dimen/activity_margin">
|
||||||
|
|
||||||
<TextView android:id="@+id/dialog_title"
|
<TextView android:id="@+id/userName"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="@dimen/dimen_10"
|
android:layout_marginBottom="@dimen/dimen_10"
|
||||||
android:fontFamily="sans-serif-medium"
|
android:fontFamily="sans-serif-medium"
|
||||||
android:lineSpacingExtra="8sp"
|
android:lineSpacingExtra="8sp"
|
||||||
android:text="@string/lbl_new_note_title"
|
android:text="@string/lbl_new_note_title"
|
||||||
android:textColor="@color/colorAccent"
|
android:textColor="@color/note_list_text"
|
||||||
android:textSize="@dimen/lbl_new_note_title"
|
android:textSize="@dimen/lbl_new_note_title"
|
||||||
android:textStyle="normal" />
|
android:textStyle="normal" />
|
||||||
|
|
||||||
<EditText
|
<TextView
|
||||||
android:id="@+id/note"
|
android:id="@+id/userRoom"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@android:color/transparent"
|
android:textColor="@color/note_list_text"
|
||||||
android:gravity="top"
|
/>
|
||||||
android:hint="@string/hint_enter_note"
|
|
||||||
android:inputType="textCapSentences|textMultiLine"
|
<TextView
|
||||||
android:lines="4"
|
android:id="@+id/userEmail"
|
||||||
android:textColorHint="@color/hint_enter_note"
|
android:layout_width="match_parent"
|
||||||
android:textSize="@dimen/input_new_note" />
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@color/note_list_text" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/userDutyHours"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@color/note_list_text" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/userNote"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@color/note_list_text" />
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="100dp"
|
android:layout_height="90dp"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:paddingLeft="@dimen/activity_margin"
|
android:paddingLeft="@dimen/activity_margin"
|
||||||
@ -13,24 +13,24 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/firstName"
|
android:id="@+id/firstName"
|
||||||
android:layout_width="271dp"
|
android:layout_width="271dp"
|
||||||
android:layout_height="30dp"
|
android:layout_height="22dp"
|
||||||
android:layout_alignParentStart="true"
|
android:layout_alignParentStart="true"
|
||||||
android:layout_alignParentTop="true"
|
android:layout_alignParentTop="true"
|
||||||
android:layout_marginStart="12dp"
|
android:layout_marginStart="12dp"
|
||||||
android:layout_marginTop="10dp"
|
android:layout_marginTop="10dp"
|
||||||
android:textColor="@color/note_list_text"
|
android:textColor="@color/note_list_text"
|
||||||
android:textSize="20sp" />
|
android:textSize="15sp" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/lastName"
|
android:id="@+id/lastName"
|
||||||
android:layout_width="270dp"
|
android:layout_width="270dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="22dp"
|
||||||
android:layout_below="@+id/firstName"
|
android:layout_below="@+id/firstName"
|
||||||
android:layout_alignEnd="@+id/firstName"
|
android:layout_alignEnd="@+id/firstName"
|
||||||
android:layout_marginTop="10dp"
|
android:layout_marginTop="10dp"
|
||||||
android:layout_marginEnd="0dp"
|
android:layout_marginEnd="0dp"
|
||||||
android:textColor="@color/note_list_text"
|
android:textColor="@color/note_list_text"
|
||||||
android:textSize="20sp" />
|
android:textSize="15sp" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
@ -38,7 +38,7 @@
|
|||||||
android:layout_width="48dp"
|
android:layout_width="48dp"
|
||||||
android:layout_height="30dp"
|
android:layout_height="30dp"
|
||||||
android:layout_below="@+id/firstName"
|
android:layout_below="@+id/firstName"
|
||||||
android:layout_marginStart="10dp"
|
android:layout_marginStart="7dp"
|
||||||
android:layout_marginTop="-10dp"
|
android:layout_marginTop="-10dp"
|
||||||
android:layout_toEndOf="@+id/firstName"
|
android:layout_toEndOf="@+id/firstName"
|
||||||
android:textColor="@color/note_list_text"
|
android:textColor="@color/note_list_text"
|
||||||
|
Loading…
Reference in New Issue
Block a user