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-20 22:02:39 +0300
committerStefan Niedermann <info@niedermann.it>2024-01-20 22:02:39 +0300
commitfb238e92e487e15d18aa3d742d7701a8f1de2c6d (patch)
tree1815032d365d145079ce3efcb1f87c1339b929ea
parentc11ea1be86066fb878d06d8b246ee9d5f467f4ec (diff)
refactor: Migrate RequestHelper from static methods to regular object
Signed-off-by: Stefan Niedermann <info@niedermann.it>
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/remote/adapters/ServerAdapter.java133
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/remote/api/RequestHelper.java34
2 files changed, 75 insertions, 92 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/remote/adapters/ServerAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/remote/adapters/ServerAdapter.java
index c33aaf5fa..261e03263 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/remote/adapters/ServerAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/remote/adapters/ServerAdapter.java
@@ -16,7 +16,6 @@ import java.io.File;
import java.util.List;
import it.niedermann.nextcloud.deck.R;
-import it.niedermann.nextcloud.deck.exceptions.OfflineException;
import it.niedermann.nextcloud.deck.model.AccessControl;
import it.niedermann.nextcloud.deck.model.Account;
import it.niedermann.nextcloud.deck.model.Attachment;
@@ -53,6 +52,7 @@ public class ServerAdapter {
private final String prefKeyEtags;
private final SharedPreferences sharedPreferences;
private final ApiProvider provider;
+ private final RequestHelper requestHelper;
public ServerAdapter(@NonNull Context context,
@NonNull SingleSignOnAccount ssoAccount,
@@ -63,10 +63,18 @@ public class ServerAdapter {
public ServerAdapter(@NonNull Context context,
@NonNull ApiProvider apiProvider,
@NonNull ConnectivityUtil connectivityUtil) {
+ this(context, apiProvider, connectivityUtil, new RequestHelper(apiProvider, connectivityUtil));
+ }
+
+ public ServerAdapter(@NonNull Context context,
+ @NonNull ApiProvider apiProvider,
+ @NonNull ConnectivityUtil connectivityUtil,
+ @NonNull RequestHelper requestHelper) {
this.prefKeyEtags = context.getResources().getString(R.string.pref_key_etags);
this.sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
this.connectivityUtil = connectivityUtil;
this.provider = apiProvider;
+ this.requestHelper = requestHelper;
}
@Deprecated()
@@ -74,13 +82,6 @@ public class ServerAdapter {
return connectivityUtil.hasInternetConnection();
}
- public void ensureInternetConnection() {
- final boolean isConnected = connectivityUtil.hasInternetConnection();
- if (!isConnected) {
- throw new OfflineException();
- }
- }
-
// TODO what is this?
private String getLastSyncDateFormatted(long accountId) {
return null;
@@ -94,7 +95,7 @@ public class ServerAdapter {
}
public void getBoards(@NonNull ResponseCallback<List<FullBoard>> responseCallback) {
- RequestHelper.request(provider, () -> isEtagsEnabled()
+ this.requestHelper.request(() -> isEtagsEnabled()
? provider.getDeckAPI().getBoards(true, getLastSyncDateFormatted(responseCallback.getAccount().getId()), responseCallback.getAccount().getBoardsEtag())
: provider.getDeckAPI().getBoards(true, getLastSyncDateFormatted(responseCallback.getAccount().getId())), responseCallback);
}
@@ -104,95 +105,77 @@ public class ServerAdapter {
}
public void getCapabilities(String eTag, @NonNull ResponseCallback<Capabilities> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getNextcloudAPI().getCapabilities(eTag), responseCallback);
+ this.requestHelper.request(() -> provider.getNextcloudAPI().getCapabilities(eTag), responseCallback);
}
public void getProjectsForCard(long remoteCardId, @NonNull ResponseCallback<OcsProjectList> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getNextcloudAPI().getProjectsForCard(remoteCardId), responseCallback);
+ this.requestHelper.request(() -> provider.getNextcloudAPI().getProjectsForCard(remoteCardId), responseCallback);
}
public void searchUser(String searchTerm, @NonNull ResponseCallback<OcsUserList> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getNextcloudAPI().searchUser(searchTerm), responseCallback);
+ this.requestHelper.request(() -> provider.getNextcloudAPI().searchUser(searchTerm), responseCallback);
}
public void getSingleUserData(String userUid, @NonNull ResponseCallback<OcsUser> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getNextcloudAPI().getSingleUserData(userUid), responseCallback);
+ this.requestHelper.request(() -> provider.getNextcloudAPI().getSingleUserData(userUid), responseCallback);
}
public void searchGroupMembers(String groupUID, @NonNull ResponseCallback<GroupMemberUIDs> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getNextcloudAPI().searchGroupMembers(groupUID), responseCallback);
+ this.requestHelper.request(() -> provider.getNextcloudAPI().searchGroupMembers(groupUID), responseCallback);
}
public void getActivitiesForCard(long cardId, @NonNull ResponseCallback<List<Activity>> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getNextcloudAPI().getActivitiesForCard(cardId), responseCallback);
+ this.requestHelper.request(() -> provider.getNextcloudAPI().getActivitiesForCard(cardId), responseCallback);
}
public void createBoard(Board board, @NonNull ResponseCallback<FullBoard> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().createBoard(board), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().createBoard(board), responseCallback);
}
public void deleteBoard(Board board, @NonNull ResponseCallback<Void> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().deleteBoard(board.getId()), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().deleteBoard(board.getId()), responseCallback);
}
public void updateBoard(Board board, @NonNull ResponseCallback<FullBoard> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().updateBoard(board.getId(), board), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().updateBoard(board.getId(), board), responseCallback);
}
public void createAccessControl(long remoteBoardId, AccessControl acl, @NonNull ResponseCallback<AccessControl> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().createAccessControl(remoteBoardId, acl), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().createAccessControl(remoteBoardId, acl), responseCallback);
}
public void updateAccessControl(long remoteBoardId, AccessControl acl, @NonNull ResponseCallback<AccessControl> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().updateAccessControl(remoteBoardId, acl.getId(), acl), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().updateAccessControl(remoteBoardId, acl.getId(), acl), responseCallback);
}
public void deleteAccessControl(long remoteBoardId, AccessControl acl, @NonNull ResponseCallback<Void> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().deleteAccessControl(remoteBoardId, acl.getId(), acl), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().deleteAccessControl(remoteBoardId, acl.getId(), acl), responseCallback);
}
public void getStacks(long boardId, @NonNull ResponseCallback<List<FullStack>> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().getStacks(boardId, getLastSyncDateFormatted(responseCallback.getAccount().getId())), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().getStacks(boardId, getLastSyncDateFormatted(responseCallback.getAccount().getId())), responseCallback);
}
public void getStack(long boardId, long stackId, @NonNull ResponseCallback<FullStack> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().getStack(boardId, stackId, getLastSyncDateFormatted(responseCallback.getAccount().getId())), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().getStack(boardId, stackId, getLastSyncDateFormatted(responseCallback.getAccount().getId())), responseCallback);
}
public void createStack(Board board, Stack stack, @NonNull ResponseCallback<FullStack> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().createStack(board.getId(), stack), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().createStack(board.getId(), stack), responseCallback);
}
public void deleteStack(Board board, Stack stack, @NonNull ResponseCallback<Void> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().deleteStack(board.getId(), stack.getId()), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().deleteStack(board.getId(), stack.getId()), responseCallback);
}
public void updateStack(Board board, Stack stack, @NonNull ResponseCallback<FullStack> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().updateStack(board.getId(), stack.getId(), stack), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().updateStack(board.getId(), stack.getId(), stack), responseCallback);
}
public void getCard(long boardId, long stackId, long cardId, @NonNull ResponseCallback<FullCard> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> {
+ this.requestHelper.request(() -> {
final Account account = responseCallback.getAccount();
if (account.getServerDeckVersionAsObject().supportsFileAttachments()) {
return provider.getDeckAPI().getCard_1_1(boardId, stackId, cardId, getLastSyncDateFormatted(responseCallback.getAccount().getId()));
@@ -202,75 +185,63 @@ public class ServerAdapter {
}
public void createCard(long boardId, long stackId, Card card, @NonNull ResponseCallback<FullCard> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().createCard(boardId, stackId, card), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().createCard(boardId, stackId, card), responseCallback);
}
public void deleteCard(long boardId, long stackId, Card card, @NonNull ResponseCallback<Void> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().deleteCard(boardId, stackId, card.getId()), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().deleteCard(boardId, stackId, card.getId()), responseCallback);
}
public void updateCard(long boardId, long stackId, CardUpdate card, @NonNull ResponseCallback<FullCard> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().updateCard(boardId, stackId, card.getId(), card), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().updateCard(boardId, stackId, card.getId(), card), responseCallback);
}
public void assignUserToCard(long boardId, long stackId, long cardId, String userUID, @NonNull ResponseCallback<Void> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().assignUserToCard(boardId, stackId, cardId, userUID), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().assignUserToCard(boardId, stackId, cardId, userUID), responseCallback);
}
public void unassignUserFromCard(long boardId, long stackId, long cardId, String userUID, @NonNull ResponseCallback<Void> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().unassignUserFromCard(boardId, stackId, cardId, userUID), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().unassignUserFromCard(boardId, stackId, cardId, userUID), responseCallback);
}
public void assignLabelToCard(long boardId, long stackId, long cardId, long labelId, @NonNull ResponseCallback<Void> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().assignLabelToCard(boardId, stackId, cardId, labelId), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().assignLabelToCard(boardId, stackId, cardId, labelId), responseCallback);
}
public void unassignLabelFromCard(long boardId, long stackId, long cardId, long labelId, @NonNull ResponseCallback<Void> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().unassignLabelFromCard(boardId, stackId, cardId, labelId), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().unassignLabelFromCard(boardId, stackId, cardId, labelId), responseCallback);
}
// Labels
public void createLabel(long boardId, Label label, @NonNull ResponseCallback<Label> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().createLabel(boardId, label), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().createLabel(boardId, label), responseCallback);
}
public void deleteLabel(long boardId, Label label, @NonNull ResponseCallback<Void> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().deleteLabel(boardId, label.getId()), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().deleteLabel(boardId, label.getId()), responseCallback);
}
public void updateLabel(long boardId, Label label, @NonNull ResponseCallback<Label> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().updateLabel(boardId, label.getId(), label), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().updateLabel(boardId, label.getId(), label), responseCallback);
}
public void reorder(long boardId, long currentStackId, long cardId, long newStackId, int newPosition, @NonNull ResponseCallback<List<FullCard>> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().moveCard(boardId, currentStackId, cardId, new Reorder(newPosition, (int) newStackId)), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().moveCard(boardId, currentStackId, cardId, new Reorder(newPosition, (int) newStackId)), responseCallback);
}
// Attachments
public void uploadAttachment(Long remoteBoardId, long remoteStackId, long remoteCardId, File attachment, @NonNull ResponseCallback<Attachment> responseCallback) {
- ensureInternetConnection();
final Account account = responseCallback.getAccount();
final String type = account.getServerDeckVersionAsObject().supportsFileAttachments()
? EAttachmentType.FILE.getValue()
: EAttachmentType.DECK_FILE.getValue();
final MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", attachment.getName(), RequestBody.create(MediaType.parse(getMimeType(attachment)), attachment));
final MultipartBody.Part typePart = MultipartBody.Part.createFormData("type", null, RequestBody.create(MediaType.parse(TEXT_PLAIN), type));
- RequestHelper.request(provider, () -> provider.getDeckAPI().uploadAttachment(remoteBoardId, remoteStackId, remoteCardId, typePart, filePart), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().uploadAttachment(remoteBoardId, remoteStackId, remoteCardId, typePart, filePart), responseCallback);
}
@NonNull
@@ -288,48 +259,40 @@ public class ServerAdapter {
}
public void updateAttachment(Long remoteBoardId, long remoteStackId, long remoteCardId, long remoteAttachmentId, String contentType, Uri attachmentUri, @NonNull ResponseCallback<Attachment> responseCallback) {
- ensureInternetConnection();
final File attachment = new File(attachmentUri.getPath());
final String type = responseCallback.getAccount().getServerDeckVersionAsObject().supportsFileAttachments()
? EAttachmentType.FILE.getValue()
: EAttachmentType.DECK_FILE.getValue();
final MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", attachment.getName(), RequestBody.create(MediaType.parse(contentType), attachment));
final MultipartBody.Part typePart = MultipartBody.Part.createFormData("type", attachment.getName(), RequestBody.create(MediaType.parse(TEXT_PLAIN), type));
- RequestHelper.request(provider, () -> provider.getDeckAPI().updateAttachment(remoteBoardId, remoteStackId, remoteCardId, remoteAttachmentId, typePart, filePart), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().updateAttachment(remoteBoardId, remoteStackId, remoteCardId, remoteAttachmentId, typePart, filePart), responseCallback);
}
public void downloadAttachment(Long remoteBoardId, long remoteStackId, long remoteCardId, long remoteAttachmentId, @NonNull ResponseCallback<ResponseBody> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().downloadAttachment(remoteBoardId, remoteStackId, remoteCardId, remoteAttachmentId), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().downloadAttachment(remoteBoardId, remoteStackId, remoteCardId, remoteAttachmentId), responseCallback);
}
public void deleteAttachment(Long remoteBoardId, long remoteStackId, long remoteCardId, long remoteAttachmentId, @NonNull ResponseCallback<Void> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().deleteAttachment(remoteBoardId, remoteStackId, remoteCardId, remoteAttachmentId), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().deleteAttachment(remoteBoardId, remoteStackId, remoteCardId, remoteAttachmentId), responseCallback);
}
public void restoreAttachment(Long remoteBoardId, long remoteStackId, long remoteCardId, long remoteAttachmentId, @NonNull ResponseCallback<Attachment> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getDeckAPI().restoreAttachment(remoteBoardId, remoteStackId, remoteCardId, remoteAttachmentId), responseCallback);
+ this.requestHelper.request(() -> provider.getDeckAPI().restoreAttachment(remoteBoardId, remoteStackId, remoteCardId, remoteAttachmentId), responseCallback);
}
public void getCommentsForRemoteCardId(Long remoteCardId, @NonNull ResponseCallback<OcsComment> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getNextcloudAPI().getCommentsForCard(remoteCardId), responseCallback);
+ this.requestHelper.request(() -> provider.getNextcloudAPI().getCommentsForCard(remoteCardId), responseCallback);
}
public void createCommentForCard(DeckComment comment, @NonNull ResponseCallback<OcsComment> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getNextcloudAPI().createCommentForCard(comment.getObjectId(), comment), responseCallback);
+ this.requestHelper.request(() -> provider.getNextcloudAPI().createCommentForCard(comment.getObjectId(), comment), responseCallback);
}
public void updateCommentForCard(DeckComment comment, @NonNull ResponseCallback<OcsComment> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getNextcloudAPI().updateCommentForCard(comment.getObjectId(), comment.getId(), comment), responseCallback);
+ this.requestHelper.request(() -> provider.getNextcloudAPI().updateCommentForCard(comment.getObjectId(), comment.getId(), comment), responseCallback);
}
public void deleteCommentForCard(DeckComment comment, @NonNull ResponseCallback<Void> responseCallback) {
- ensureInternetConnection();
- RequestHelper.request(provider, () -> provider.getNextcloudAPI().deleteCommentForCard(comment.getObjectId(), comment.getId()), responseCallback);
+ this.requestHelper.request(() -> provider.getNextcloudAPI().deleteCommentForCard(comment.getObjectId(), comment.getId()), responseCallback);
}
}
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 4106c73a3..d9aeee656 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
@@ -9,6 +9,8 @@ import com.nextcloud.android.sso.exceptions.NextcloudHttpRequestFailedException;
import java.util.function.Supplier;
import it.niedermann.nextcloud.deck.DeckLog;
+import it.niedermann.nextcloud.deck.exceptions.OfflineException;
+import it.niedermann.nextcloud.deck.remote.helpers.util.ConnectivityUtil;
import it.niedermann.nextcloud.deck.util.ExecutorServiceProvider;
import okhttp3.Request;
import okhttp3.ResponseBody;
@@ -18,14 +20,32 @@ import retrofit2.Response;
public class RequestHelper {
- 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);
+ @NonNull
+ private final ApiProvider apiProvider;
+
+ @NonNull
+ private final ConnectivityUtil connectivityUtil;
+
+ public RequestHelper(
+ @NonNull ApiProvider apiProvider,
+ @NonNull ConnectivityUtil connectivityUtil
+ ) {
+ this.apiProvider = apiProvider;
+ this.connectivityUtil = connectivityUtil;
+ }
+
+ public <T> void request(@NonNull final Supplier<Call<T>> callProvider,
+ @NonNull final ResponseCallback<T> callback) {
+
+ if (!connectivityUtil.hasInternetConnection()) {
+ throw new OfflineException();
+ }
+
+ if (this.apiProvider.getDeckAPI() == null) {
+ this.apiProvider.initSsoApi(callback::onError);
}
- final ResponseConsumer<T> cb = new ResponseConsumer<>(provider.getContext(), callback);
+ final var cb = new ResponseConsumer<>(this.apiProvider.getContext(), callback);
ExecutorServiceProvider.getLinkedBlockingQueueExecutor().submit(() -> callProvider.get().enqueue(cb));
}
@@ -59,7 +79,7 @@ public class RequestHelper {
String responseBody = "<empty>";
try (ResponseBody body = response.errorBody()) {
if (body != null) {
- responseBody = response.errorBody().string();
+ responseBody = body.string();
}
} catch (Exception e) {
responseBody = "<unable to build response body: " + e.getMessage() + ">";