Browse Source

fix

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
tobiasKaminsky 11 months ago
parent
commit
ba40293689

+ 7 - 11
app/src/gplay/java/com/owncloud/android/utils/PushUtils.java

@@ -19,6 +19,7 @@ import com.google.gson.Gson;
 import com.nextcloud.client.account.UserAccountManager;
 import com.nextcloud.client.preferences.AppPreferences;
 import com.nextcloud.client.preferences.AppPreferencesImpl;
+import com.nextcloud.common.NextcloudClient;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.ArbitraryDataProvider;
@@ -26,9 +27,7 @@ import com.owncloud.android.datamodel.ArbitraryDataProviderImpl;
 import com.owncloud.android.datamodel.PushConfigurationState;
 import com.owncloud.android.datamodel.SignatureVerification;
 import com.owncloud.android.lib.common.OwnCloudAccount;
-import com.owncloud.android.lib.common.OwnCloudClient;
 import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
-import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.lib.resources.notifications.RegisterAccountDeviceForNotificationsOperation;
@@ -131,14 +130,11 @@ public final class PushUtils {
 
         try {
             ocAccount = new OwnCloudAccount(account, context);
-            OwnCloudClient mClient = OwnCloudClientManagerFactory.getDefaultSingleton().
-                    getClientFor(ocAccount, context);
+            NextcloudClient mClient = OwnCloudClientManagerFactory.getDefaultSingleton().
+                getNextcloudClientFor(ocAccount, context);
 
-            RemoteOperation unregisterAccountDeviceForNotificationsOperation = new
-                    UnregisterAccountDeviceForNotificationsOperation();
-
-            RemoteOperationResult remoteOperationResult = unregisterAccountDeviceForNotificationsOperation.
-                    execute(mClient);
+            RemoteOperationResult<Void> remoteOperationResult =
+                new UnregisterAccountDeviceForNotificationsOperation().execute(mClient);
 
             if (remoteOperationResult.getHttpCode() == HttpStatus.SC_ACCEPTED) {
                 String arbitraryValue;
@@ -201,8 +197,8 @@ public final class PushUtils {
                             TextUtils.isEmpty(providerValue)) {
                         try {
                             OwnCloudAccount ocAccount = new OwnCloudAccount(account, context);
-                            OwnCloudClient client = OwnCloudClientManagerFactory.getDefaultSingleton().
-                                    getClientFor(ocAccount, context);
+                            NextcloudClient client = OwnCloudClientManagerFactory.getDefaultSingleton().
+                                getNextcloudClientFor(ocAccount, context);
 
                             RemoteOperationResult<PushResponse> remoteOperationResult =
                                 new RegisterAccountDeviceForNotificationsOperation(pushTokenHash,

+ 9 - 3
app/src/main/java/com/owncloud/android/ui/asynctasks/NotificationExecuteActionTask.java

@@ -25,6 +25,8 @@ import org.apache.commons.httpclient.HttpStatus;
 
 import java.io.IOException;
 
+import okhttp3.RequestBody;
+
 public class NotificationExecuteActionTask extends AsyncTask<Action, Void, Boolean> {
 
     private final NotificationListAdapter.NotificationViewHolder holder;
@@ -47,14 +49,18 @@ public class NotificationExecuteActionTask extends AsyncTask<Action, Void, Boole
         OkHttpMethodBase method;
         Action action = actions[0];
 
+        if (action.type == null || action.link == null) {
+            return Boolean.FALSE;
+        }
+
         switch (action.type) {
             case "GET" -> method = new GetMethod(action.link, true);
-            case "POST" -> method = new PostMethod(action.link, true, null);
+            case "POST" -> method = new PostMethod(action.link, true, RequestBody.create("", null));
             case "DELETE" -> method = new DeleteMethod(action.link, true);
             case "PUT" -> method = new PutMethod(action.link, true, null);
             default -> {
                 // do nothing
-                return false;
+                return Boolean.FALSE;
             }
         }
 
@@ -65,7 +71,7 @@ public class NotificationExecuteActionTask extends AsyncTask<Action, Void, Boole
             status = client.execute(method);
         } catch (IOException e) {
             Log_OC.e(this, "Execution of notification action failed: " + e);
-            return false;
+            return Boolean.FALSE;
         } finally {
             method.releaseConnection();
         }