Fix retrofit rxjava

This commit is contained in:
Mieszko Wrzeszczyński 2018-11-27 11:45:50 +01:00
parent 2b19229552
commit 6dbe50761a
2 changed files with 111 additions and 113 deletions

View File

@ -1,16 +1,10 @@
package com.uam.wmi.findmytutor.activity; package com.uam.wmi.findmytutor.activity;
import android.os.Bundle; import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button; import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
@ -26,22 +20,16 @@ import com.uam.wmi.findmytutor.service.UserService;
import com.uam.wmi.findmytutor.utils.PrefUtils; import com.uam.wmi.findmytutor.utils.PrefUtils;
import com.uam.wmi.findmytutor.utils.RestApiHelper; import com.uam.wmi.findmytutor.utils.RestApiHelper;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;
import io.reactivex.Single;
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.disposables.Disposable;
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;
import retrofit2.Response; import retrofit2.Response;
import static com.mapbox.mapboxsdk.Mapbox.getApplicationContext;
public class TutorTab extends AppCompatActivity { public class TutorTab extends AppCompatActivity {
private TutorTabApi tutorTabService; private TutorTabApi tutorTabService;
private UserService userService; private UserService userService;
@ -53,6 +41,7 @@ public class TutorTab extends AppCompatActivity {
private TextView userEmail; private TextView userEmail;
private TextView department; private TextView department;
private Button saveButon; private Button saveButon;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -79,13 +68,13 @@ public class TutorTab extends AppCompatActivity {
public void onSuccess(TutorTabViewModel tutorTabViewModel) { public void onSuccess(TutorTabViewModel tutorTabViewModel) {
List<String> dutyHoursList = Stream.of(tutorTabViewModel.getDutyHours()) List<String> dutyHoursList = Stream.of(tutorTabViewModel.getDutyHours())
.map(DutyHourViewModel::getSummary).toList(); .map(DutyHourViewModel::getSummary).toList();
Log.d("TUTORTAB",Arrays.toString(dutyHoursList.toArray())); Log.d("TUTORTAB", Arrays.toString(dutyHoursList.toArray()));
userRoom.setText(String.format("%s: %s", getString(R.string.userRoom), tutorTabViewModel.getRoom())); userRoom.setText(String.format("%s: %s", getString(R.string.userRoom), tutorTabViewModel.getRoom()));
userEmail.setText(String.format("%s: %s", getString(R.string.userEmail), tutorTabViewModel.getEmailTutorTab())); userEmail.setText(String.format("%s: %s", getString(R.string.userEmail), tutorTabViewModel.getEmailTutorTab()));
if (!tutorTabViewModel.getNote().equals("")) { if (!tutorTabViewModel.getNote().equals("")) {
userNote.setText(String.format("%s", tutorTabViewModel.getNote())); userNote.setText(String.format("%s", tutorTabViewModel.getNote()));
} }
userDutyHours.setText(String.format("%s: %s", getString(R.string.userDutyHoursHeader),Arrays.toString(dutyHoursList.toArray()))); userDutyHours.setText(String.format("%s: %s", getString(R.string.userDutyHoursHeader), Arrays.toString(dutyHoursList.toArray())));
} }
@ -100,11 +89,11 @@ public class TutorTab extends AppCompatActivity {
userService.getUserById(PrefUtils.getUserId(getApplicationContext())) userService.getUserById(PrefUtils.getUserId(getApplicationContext()))
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new DisposableSingleObserver <User>() { .subscribeWith(new DisposableSingleObserver<User>() {
@Override @Override
public void onSuccess(User user) { public void onSuccess(User user) {
department.setText(user.getDepartment()); department.setText(user.getDepartment());
Log.d("TUTORTAB",(user.getDepartment())); Log.d("TUTORTAB", (user.getDepartment()));
} }
@ -115,22 +104,30 @@ public class TutorTab extends AppCompatActivity {
})); }));
// setUpSaveListener(); // setUpSaveListener();
} }
/* private void setUpSaveListener(){
private void setUpSaveListener() {
saveButon.setOnClickListener(new View.OnClickListener() { saveButon.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
TutorTabViewModel newTab = new TutorTabViewModel(); TutorTabViewModel newTab = new TutorTabViewModel();
disposable.add(tutorTabService.apiUsersTutorTabByTutorIdPut(PrefUtils.getUserId(getApplicationContext()),newTab) putUserTab(newTab);
}
});
}
private void putUserTab(TutorTabViewModel tutorTabViewModel) {
disposable.add(tutorTabService.apiUsersTutorTabByTutorIdPut(PrefUtils.getUserId(getApplicationContext()), tutorTabViewModel)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(this::handleResponse, this::handleError)); .subscribe(this::handleResponse, this::handleError));
} }
});
}*/ private void handleResponse(TutorTabViewModel tutorTabViewModel) {
private void handleResponse(Response<Void> resp) {
Toast.makeText(getApplicationContext(), getApplicationContext().getString(R.string.modal_feedback_thankyou), Toast.LENGTH_SHORT).show(); Toast.makeText(getApplicationContext(), getApplicationContext().getString(R.string.modal_feedback_thankyou), Toast.LENGTH_SHORT).show();
} }
private void handleError(Throwable error) { private void handleError(Throwable error) {
if (error instanceof HttpException) { if (error instanceof HttpException) {
@ -141,22 +138,23 @@ public class TutorTab extends AppCompatActivity {
} else { } else {
Toast.makeText(getApplicationContext(), Toast.makeText(getApplicationContext(),
"Network error " + error.getMessage(), Toast.LENGTH_SHORT).show(); "Network error " + error.getMessage(), Toast.LENGTH_SHORT).show();
Log.d("FEEDBACK",error.getMessage()); Log.d("FEEDBACK", error.getMessage());
} }
} }
private void showError(Throwable e) { private void showError(Throwable e) {
String message; String message;
if (e instanceof HttpException) { if (e instanceof HttpException) {
ResponseBody responseBody = ((HttpException) e).response().errorBody(); ResponseBody responseBody = ((HttpException) e).response().errorBody();
message = RestApiHelper.getErrorMessage(responseBody); message = RestApiHelper.getErrorMessage(responseBody);
}else{ } else {
message = "Network Error !"; message = "Network Error !";
} }
// Snackbar.make(coordinatorLayout, message, Snackbar.LENGTH_LONG) // Snackbar.make(coordinatorLayout, message, Snackbar.LENGTH_LONG)
// .show(); // .show();
Toast.makeText(getApplicationContext(),message,Toast.LENGTH_SHORT).show(); Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
} }
} }

View File

@ -51,7 +51,7 @@ public interface TutorTabApi {
"Content-Type:application/json" "Content-Type:application/json"
}) })
@PUT("api/users/tutorTab/{tutorId}") @PUT("api/users/tutorTab/{tutorId}")
Observable<Void> apiUsersTutorTabByTutorIdPut( Observable<TutorTabViewModel> apiUsersTutorTabByTutorIdPut(
@retrofit2.http.Path("tutorId") String tutorId, @retrofit2.http.Body TutorTabViewModel tutorTab @retrofit2.http.Path("tutorId") String tutorId, @retrofit2.http.Body TutorTabViewModel tutorTab
); );