Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2024-01-16 12:12:18 +0300
committerStefan Niedermann <info@niedermann.it>2024-01-16 12:12:18 +0300
commitd2755483160ff4da85adbb7e9a6981556d6b8080 (patch)
treeb97921519b8aa0f90a0ef98d8ecf9415df245636
parent420a62a0630b6957d843ce0cb0f61cd300732a06 (diff)
chore(sync): Minor code refactoring
Signed-off-by: Stefan Niedermann <info@niedermann.it>
-rw-r--r--app/build.gradle3
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/remote/api/ApiProvider.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/remote/api/RequestHelper.java39
3 files changed, 24 insertions, 23 deletions
diff --git a/app/build.gradle b/app/build.gradle
index aa3e7efe4..fa82a387e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -129,9 +129,6 @@ dependencies {
// Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
- // ReactiveX
- implementation 'io.reactivex.rxjava2:rxjava:2.2.21'
-
// Zoom Layout
implementation("com.otaliastudios:zoomlayout:1.9.0")
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/ApiProvider.java b/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/ApiProvider.java
index cad3457a8..cee04e2dc 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/ApiProvider.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/ApiProvider.java
@@ -36,6 +36,11 @@ public class ApiProvider {
}
}
+ @NonNull
+ public Context getContext() {
+ return this.context;
+ }
+
public DeckAPI getDeckAPI() {
return deckAPI;
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/RequestHelper.java b/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/RequestHelper.java
index d760f5a79..4106c73a3 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/RequestHelper.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/RequestHelper.java
@@ -1,9 +1,13 @@
package it.niedermann.nextcloud.deck.remote.api;
+import android.content.Context;
+
import androidx.annotation.NonNull;
import com.nextcloud.android.sso.exceptions.NextcloudHttpRequestFailedException;
+import java.util.function.Supplier;
+
import it.niedermann.nextcloud.deck.DeckLog;
import it.niedermann.nextcloud.deck.util.ExecutorServiceProvider;
import okhttp3.Request;
@@ -14,45 +18,40 @@ import retrofit2.Response;
public class RequestHelper {
-// static {
-// RxJavaPlugins.setErrorHandler(DeckLog::logError);
-// }
-
- public static <T> void request(@NonNull final ApiProvider provider, @NonNull final ObservableProvider<T> call, @NonNull final ResponseCallback<T> callback) {
+ public static <T> void request(@NonNull final ApiProvider provider,
+ @NonNull final Supplier<Call<T>> callProvider,
+ @NonNull final ResponseCallback<T> callback) {
if (provider.getDeckAPI() == null) {
provider.initSsoApi(callback::onError);
}
- final ResponseConsumer<T> cb = new ResponseConsumer<>(callback);
- ExecutorServiceProvider.getLinkedBlockingQueueExecutor().submit(() -> call.getObservableFromCall().enqueue(cb));
-// .subscribeOn(Schedulers.from(ExecutorServiceProvider.getExecutorService()))
-// .subscribe(cb, cb.getExceptionConsumer());
- }
-
- public interface ObservableProvider<T> {
- Call<T> getObservableFromCall();
+ final ResponseConsumer<T> cb = new ResponseConsumer<>(provider.getContext(), callback);
+ ExecutorServiceProvider.getLinkedBlockingQueueExecutor().submit(() -> callProvider.get().enqueue(cb));
}
private static class ResponseConsumer<T> implements Callback<T> {
@NonNull
+ private final Context context;
+ @NonNull
private final ResponseCallback<T> callback;
- private ResponseConsumer(@NonNull ResponseCallback<T> callback) {
+ private ResponseConsumer(@NonNull Context context, @NonNull ResponseCallback<T> callback) {
+ this.context = context;
this.callback = callback;
}
@Override
public void onResponse(@NonNull Call<T> call, Response<T> response) {
- if(response.isSuccessful()) {
+ if (response.isSuccessful()) {
T responseObject = response.body();
callback.fillAccountIDs(responseObject);
callback.onResponseWithHeaders(responseObject, response.headers());
} else {
- onFailure(call, new NextcloudHttpRequestFailedException(response.code(), buildCause(response)));
+ onFailure(call, new NextcloudHttpRequestFailedException(context, response.code(), buildCause(response)));
}
}
- private RuntimeException buildCause(Response<T> response){
+ private RuntimeException buildCause(Response<T> response) {
Request request = response.raw().request();
String url = request.url().toString();
String method = request.method();
@@ -60,10 +59,10 @@ public class RequestHelper {
String responseBody = "<empty>";
try (ResponseBody body = response.errorBody()) {
if (body != null) {
- responseBody = response.errorBody().string() ;
+ responseBody = response.errorBody().string();
}
} catch (Exception e) {
- responseBody = "<unable to build response body: "+e.getMessage()+">";
+ responseBody = "<unable to build response body: " + e.getMessage() + ">";
}
return new RuntimeException("HTTP StatusCode wasn't 2xx:\n" +
"Got [HTTP " + code + "] for Call [" + method + " " + url + "] with Message:\n" +
@@ -71,7 +70,7 @@ public class RequestHelper {
}
@Override
- public void onFailure(@NonNull Call<T> call, Throwable t) {
+ public void onFailure(@NonNull Call<T> call, @NonNull Throwable t) {
DeckLog.logError(t);
callback.onError(ServerCommunicationErrorHandler.translateError(t));
}