Advertisement
Guest User

Untitled

a guest
Feb 14th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.66 KB | None | 0 0
  1. package com.mygdx.game.retrofit;
  2.  
  3. import com.google.gson.Gson;
  4. import com.mygdx.game.AndroidInterface;
  5. import com.mygdx.game.AuthToken;
  6. import com.mygdx.game.FileFromServer;
  7. import com.mygdx.game.ModelBody;
  8. import com.mygdx.game.RegistrationBody;
  9.  
  10. import io.reactivex.Observable;
  11. import io.reactivex.ObservableSource;
  12. import io.reactivex.functions.Function;
  13. import io.reactivex.schedulers.Schedulers;
  14. import okhttp3.MediaType;
  15. import okhttp3.RequestBody;
  16. import okhttp3.ResponseBody;
  17. import retrofit2.Retrofit;
  18. import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
  19.  
  20. public class RetrofitRequests {
  21.  
  22. private final static String LOG_TAG = RetrofitRequests.class.getSimpleName();
  23. private final static String SD_HD = "SD/HD";
  24. private final static String APPLICATION_JSON = "application/json";
  25. private final static String USERNAME = "figuro5";
  26. private final static String PASSWORD = "figuro5pass1";
  27.  
  28. private LoadingService loadingService;
  29. private FiguromoApiService figuromoApiService;
  30. private String authToken;
  31. private Gson gson;
  32.  
  33. public RetrofitRequests() {
  34.  
  35. Retrofit retrofit = new Retrofit.Builder()
  36. .baseUrl("https://colorcloud.figuromomodels.com/")
  37. .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
  38. .build();
  39.  
  40. figuromoApiService = retrofit.create(FiguromoApiService.class);
  41.  
  42. Retrofit retrofit = new Retrofit.Builder()
  43. .baseUrl("http://models.figuromomodels.com")
  44. .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
  45. .build();
  46.  
  47.  
  48. loadingService = retrofit.create(LoadingService.class);
  49. }
  50.  
  51. public Observable<FileFromServer> loadAtlas(final String fileName, boolean isHd){
  52.  
  53. if (isHd) {
  54. return loadingService
  55. .loadHDAtlas(fileName)
  56. .subscribeOn(Schedulers.io())
  57. .map(new Function<ResponseBody, FileFromServer>() {
  58. @Override
  59. public FileFromServer apply(ResponseBody responseBody) throws Exception {
  60. return new FileFromServer(responseBody, fileName);
  61. }
  62. });
  63. } else {
  64. return loadingService
  65. .loadSDAtlas(fileName)
  66. .subscribeOn(Schedulers.io())
  67. .map(new Function<ResponseBody, FileFromServer>() {
  68. @Override
  69. public FileFromServer apply(ResponseBody responseBody) throws Exception {
  70. return new FileFromServer(responseBody, fileName);
  71. }
  72. });
  73. }
  74. }
  75.  
  76. public Observable<FileFromServer> loadFile(final String fileName) {
  77.  
  78. return loadingService
  79. .loadRegularFile(fileName)
  80. .subscribeOn(Schedulers.io())
  81. .map(new Function<ResponseBody, FileFromServer>() {
  82. @Override
  83. public FileFromServer apply(ResponseBody responseBody) throws Exception {
  84. return new FileFromServer(responseBody, fileName);
  85. }
  86. });
  87. }
  88.  
  89. public Observable<ResponseBody> uploadSelectedModelJson(final String modelName, String json) {
  90.  
  91. ModelBody modelBody = new ModelBody(modelName, json);
  92. gson = new Gson();
  93. String createPrintsBodyString = gson.toJson(modelBody);
  94. final RequestBody requestBody = RequestBody.create(MediaType.parse(APPLICATION_JSON), createPrintsBodyString);
  95.  
  96. if (authToken != null) {
  97. return figuromoApiService.uploadJson(authToken, APPLICATION_JSON, requestBody);
  98. }
  99.  
  100. return getAuthToken().flatMap(new Function<ResponseBody, ObservableSource<ResponseBody>>() {
  101. @Override
  102. public ObservableSource<ResponseBody> apply(ResponseBody responseBody) throws Exception {
  103.  
  104. String token = gson.fromJson(responseBody.string(), AuthToken.class).getToken();
  105. authToken = "Token " + token;
  106. return figuromoApiService.uploadJson(authToken, APPLICATION_JSON, requestBody);
  107. }
  108. });
  109. }
  110.  
  111. private Observable<ResponseBody> getAuthToken(){
  112.  
  113. RegistrationBody registrationBody = new RegistrationBody(USERNAME, PASSWORD);
  114. String registrationBodyString = gson.toJson(registrationBody);
  115.  
  116. RequestBody requestBody = RequestBody.create(MediaType.parse(APPLICATION_JSON), registrationBodyString);
  117. return figuromoApiService.getAuthToken(requestBody);
  118. }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement