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>2019-12-06 20:22:47 +0300
committerstefan-niedermann <info@niedermann.it>2019-12-06 20:22:47 +0300
commit7cfd7921464afbb7ad4da15e7276027fcb655de3 (patch)
tree2e5b930934aa685f9b58fea8fd5431f44d0a7c83 /app/src/main
parent58aaa0d7806a6273bb34cc639c4f448d59dde343 (diff)
Allow SyncManager to be instanziated with only a Context
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/api/RequestHelper.java16
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java12
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java11
3 files changed, 26 insertions, 13 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/RequestHelper.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/RequestHelper.java
index fcbe31acb..b632b4501 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/api/RequestHelper.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/api/RequestHelper.java
@@ -2,6 +2,8 @@ package it.niedermann.nextcloud.deck.api;
import android.app.Activity;
+import androidx.annotation.Nullable;
+
import com.nextcloud.android.sso.api.NextcloudAPI;
import io.reactivex.Observable;
@@ -10,7 +12,7 @@ import io.reactivex.schedulers.Schedulers;
public class RequestHelper {
- public static <T> void request(final Activity sourceActivity, final ApiProvider provider, final ObservableProvider<T> call, final IResponseCallback<T> callback){
+ public static <T> void request(@Nullable final Activity sourceActivity, final ApiProvider provider, final ObservableProvider<T> call, final IResponseCallback<T> callback){
if (provider.getDeckAPI() == null){
provider.initSsoApi(new NextcloudAPI.ApiConnectedListener() {
@@ -25,7 +27,7 @@ public class RequestHelper {
runRequest(sourceActivity, call.getObservableFromCall(), callback);
}
- private static <T> void runRequest(final Activity sourceActivity, final Observable<T> request, final IResponseCallback<T> callback){
+ private static <T> void runRequest(@Nullable final Activity sourceActivity, final Observable<T> request, final IResponseCallback<T> callback){
ResponseConsumer<T> cb = new ResponseConsumer<>(sourceActivity, callback);
request.subscribeOn(Schedulers.newThread())
.subscribe(cb, cb.getExceptionConsumer());
@@ -38,16 +40,20 @@ public class RequestHelper {
public static class ResponseConsumer<T> implements Consumer<T> {
- private Activity sourceActivity;
+ @Nullable private Activity sourceActivity;
private IResponseCallback<T> callback;
private Consumer<Throwable> exceptionConsumer = new Consumer<Throwable>() {
@Override
public void accept(final Throwable throwable) {
- sourceActivity.runOnUiThread(() -> callback.onError(throwable) );
+ if(sourceActivity == null) {
+ callback.onError(throwable);
+ } else {
+ sourceActivity.runOnUiThread(() -> callback.onError(throwable));
+ }
}
};
- public ResponseConsumer(Activity sourceActivity, IResponseCallback<T> callback) {
+ public ResponseConsumer(@Nullable Activity sourceActivity, IResponseCallback<T> callback) {
this.sourceActivity = sourceActivity;
this.callback = callback;
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java
index 5902f2fa9..c9e630efb 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java
@@ -5,6 +5,7 @@ import android.content.Context;
import android.net.Uri;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
@@ -53,13 +54,20 @@ public class SyncManager {
private DataBaseAdapter dataBaseAdapter;
private ServerAdapter serverAdapter;
- public SyncManager(Activity sourceActivity) {
- Context applicationContext = sourceActivity.getApplicationContext();
+ public SyncManager(Context context, @Nullable Activity sourceActivity) {
+ if(context == null) {
+ throw new IllegalArgumentException("Provide a valid context.");
+ }
+ Context applicationContext = context.getApplicationContext();
LastSyncUtil.init(applicationContext);
dataBaseAdapter = new DataBaseAdapter(applicationContext);
this.serverAdapter = new ServerAdapter(applicationContext, sourceActivity);
}
+ public SyncManager(Activity sourceActivity) {
+ this(sourceActivity, sourceActivity);
+ }
+
private void doAsync(Runnable r) {
new Thread(r).start();
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java
index 45e007559..3eec356aa 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java
@@ -9,6 +9,8 @@ import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.preference.PreferenceManager;
+import androidx.annotation.Nullable;
+
import com.nextcloud.android.sso.exceptions.NextcloudFilesAppAccountNotFoundException;
import com.nextcloud.android.sso.exceptions.NoCurrentAccountSelectedException;
@@ -19,8 +21,6 @@ import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
-import butterknife.BindString;
-import butterknife.ButterKnife;
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.api.ApiProvider;
import it.niedermann.nextcloud.deck.api.IResponseCallback;
@@ -42,7 +42,6 @@ import it.niedermann.nextcloud.deck.util.DateUtil;
public class ServerAdapter {
- @BindString(R.string.pref_key_wifi_only)
String prefKeyWifiOnly;
private static final DateFormat API_FORMAT =
@@ -54,13 +53,13 @@ public class ServerAdapter {
private Context applicationContext;
private ApiProvider provider;
- private Activity sourceActivity;
+ @Nullable private Activity sourceActivity;
private SharedPreferences lastSyncPref;
- public ServerAdapter(Context applicationContext, Activity sourceActivity) {
+ public ServerAdapter(Context applicationContext, @Nullable Activity sourceActivity) {
this.applicationContext = applicationContext;
this.sourceActivity = sourceActivity;
- ButterKnife.bind(this, sourceActivity);
+ prefKeyWifiOnly = applicationContext.getResources().getString(R.string.pref_key_wifi_only);
provider = new ApiProvider(applicationContext);
lastSyncPref = applicationContext.getSharedPreferences(
applicationContext.getString(R.string.shared_preference_last_sync), Context.MODE_PRIVATE);