Skip to content

Commit f9b15ca

Browse files
tobiasKaminskyAlvaroBrey
authored andcommitted
Switch all notification to V2
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
1 parent 9f5ca72 commit f9b15ca

7 files changed

Lines changed: 55 additions & 58 deletions

File tree

app/src/main/java/com/nextcloud/client/jobs/NotificationWork.kt

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,16 @@ import com.google.gson.Gson
4141
import com.nextcloud.client.account.User
4242
import com.nextcloud.client.account.UserAccountManager
4343
import com.nextcloud.client.integrations.deck.DeckApi
44+
import com.nextcloud.common.NextcloudClient
45+
import com.nextcloud.common.OkHttpMethodBase
46+
import com.nextcloud.operations.DeleteMethod
47+
import com.nextcloud.operations.GetMethod
48+
import com.nextcloud.operations.PutMethod
49+
import com.nextcloud.operations.Utf8PostMethod
4450
import com.owncloud.android.R
4551
import com.owncloud.android.datamodel.DecryptedPushMessage
46-
import com.owncloud.android.lib.common.OwnCloudClient
4752
import com.owncloud.android.lib.common.OwnCloudClientManagerFactory
48-
import com.owncloud.android.lib.common.operations.RemoteOperation
53+
import com.owncloud.android.lib.common.operations.RemoteOperationResult
4954
import com.owncloud.android.lib.common.utils.Log_OC
5055
import com.owncloud.android.lib.resources.notifications.DeleteNotificationRemoteOperation
5156
import com.owncloud.android.lib.resources.notifications.GetNotificationRemoteOperation
@@ -56,12 +61,7 @@ import com.owncloud.android.ui.notifications.NotificationUtils
5661
import com.owncloud.android.utils.PushUtils
5762
import com.owncloud.android.utils.theme.ViewThemeUtils
5863
import dagger.android.AndroidInjection
59-
import org.apache.commons.httpclient.HttpMethod
6064
import org.apache.commons.httpclient.HttpStatus
61-
import org.apache.commons.httpclient.methods.DeleteMethod
62-
import org.apache.commons.httpclient.methods.GetMethod
63-
import org.apache.commons.httpclient.methods.PutMethod
64-
import org.apache.commons.httpclient.methods.Utf8PostMethod
6565
import java.io.IOException
6666
import java.security.GeneralSecurityException
6767
import java.security.PrivateKey
@@ -251,12 +251,11 @@ class NotificationWork constructor(
251251
val user = optionalUser.get()
252252
try {
253253
val client = OwnCloudClientManagerFactory.getDefaultSingleton()
254-
.getClientFor(user.toOwnCloudAccount(), context)
255-
val result = GetNotificationRemoteOperation(decryptedPushMessage.nid)
256-
.execute(client)
254+
.getNextcloudClientFor(user.toOwnCloudAccount(), context)
255+
val result: RemoteOperationResult<Notification> =
256+
GetNotificationRemoteOperation(decryptedPushMessage.nid).execute(client)
257257
if (result.isSuccess) {
258-
val notification = result.notificationData[0]
259-
sendNotification(notification, account)
258+
sendNotification(result.resultData, account)
260259
}
261260
} catch (e: Exception) {
262261
Log_OC.e(this, "Error creating account", e)
@@ -300,7 +299,7 @@ class NotificationWork constructor(
300299
if (optionalUser.isPresent) {
301300
val user = optionalUser.get()
302301
val client = OwnCloudClientManagerFactory.getDefaultSingleton()
303-
.getClientFor(user.toOwnCloudAccount(), context)
302+
.getNextcloudClientFor(user.toOwnCloudAccount(), context)
304303
val actionType = intent.getStringExtra(KEY_NOTIFICATION_ACTION_TYPE)
305304
val actionLink = intent.getStringExtra(KEY_NOTIFICATION_ACTION_LINK)
306305
val success: Boolean = if (!actionType.isNullOrEmpty() && !actionLink.isNullOrEmpty()) {
@@ -331,18 +330,17 @@ class NotificationWork constructor(
331330
}
332331

333332
@Suppress("ReturnCount") // legacy code
334-
private fun executeAction(actionType: String, actionLink: String, client: OwnCloudClient): Int {
335-
val method: HttpMethod
333+
private fun executeAction(actionType: String, actionLink: String, client: NextcloudClient): Int {
334+
val method: OkHttpMethodBase
336335
method = when (actionType) {
337-
"GET" -> GetMethod(actionLink)
338-
"POST" -> Utf8PostMethod(actionLink)
339-
"DELETE" -> DeleteMethod(actionLink)
340-
"PUT" -> PutMethod(actionLink)
336+
"GET" -> GetMethod(actionLink, true)
337+
"POST" -> Utf8PostMethod(actionLink, true, null)
338+
"DELETE" -> DeleteMethod(actionLink, true)
339+
"PUT" -> PutMethod(actionLink, true, null)
341340
else -> return 0 // do nothing
342341
}
343-
method.setRequestHeader(RemoteOperation.OCS_API_HEADER, RemoteOperation.OCS_API_HEADER_VALUE)
344342
try {
345-
return client.executeMethod(method)
343+
return client.execute(method)
346344
} catch (e: IOException) {
347345
Log_OC.e(TAG, "Execution of notification action failed: $e")
348346
}

app/src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,12 @@
3434
import com.nextcloud.client.account.UserAccountManager;
3535
import com.nextcloud.client.jobs.NotificationWork;
3636
import com.nextcloud.client.network.ClientFactory;
37+
import com.nextcloud.common.NextcloudClient;
3738
import com.nextcloud.java.util.Optional;
3839
import com.owncloud.android.R;
3940
import com.owncloud.android.databinding.NotificationsLayoutBinding;
4041
import com.owncloud.android.datamodel.ArbitraryDataProvider;
4142
import com.owncloud.android.datamodel.ArbitraryDataProviderImpl;
42-
import com.owncloud.android.lib.common.OwnCloudClient;
43-
import com.owncloud.android.lib.common.operations.RemoteOperation;
4443
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
4544
import com.owncloud.android.lib.common.utils.Log_OC;
4645
import com.owncloud.android.lib.resources.notifications.GetNotificationsRemoteOperation;
@@ -68,7 +67,7 @@ public class NotificationsActivity extends DrawerActivity implements Notificatio
6867
private NotificationsLayoutBinding binding;
6968
private NotificationListAdapter adapter;
7069
private Snackbar snackbar;
71-
private OwnCloudClient client;
70+
private NextcloudClient client;
7271
private Optional<User> optionalUser;
7372

7473
@Inject ClientFactory clientFactory;
@@ -226,13 +225,11 @@ private void fetchAndSetData() {
226225
Thread t = new Thread(() -> {
227226
initializeAdapter();
228227

229-
RemoteOperation getRemoteNotificationOperation = new GetNotificationsRemoteOperation();
230-
final RemoteOperationResult result = getRemoteNotificationOperation.execute(client);
228+
GetNotificationsRemoteOperation getRemoteNotificationOperation = new GetNotificationsRemoteOperation();
229+
final RemoteOperationResult<List<? extends Notification>> result = getRemoteNotificationOperation.execute(client);
231230

232-
if (result.isSuccess() && result.getNotificationData() != null) {
233-
final List<Notification> notifications = result.getNotificationData();
234-
235-
runOnUiThread(() -> populateList(notifications));
231+
if (result.isSuccess() && result.getResultData() != null) {
232+
runOnUiThread(() -> populateList((List<Notification>) result.getResultData()));
236233
} else {
237234
Log_OC.d(TAG, result.getLogMessage());
238235
// show error
@@ -249,7 +246,7 @@ private void initializeClient() {
249246
if (client == null && optionalUser.isPresent()) {
250247
try {
251248
User user = optionalUser.get();
252-
client = clientFactory.create(user);
249+
client = clientFactory.createNextcloudClient(user);
253250
} catch (ClientFactory.CreationException e) {
254251
Log_OC.e(TAG, "Error initializing client", e);
255252
}

app/src/main/java/com/owncloud/android/ui/adapter/NotificationListAdapter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@
4646
import com.bumptech.glide.load.resource.file.FileToStreamDecoder;
4747
import com.caverock.androidsvg.SVG;
4848
import com.google.android.material.button.MaterialButton;
49+
import com.nextcloud.common.NextcloudClient;
4950
import com.owncloud.android.R;
5051
import com.owncloud.android.databinding.NotificationListItemBinding;
51-
import com.owncloud.android.lib.common.OwnCloudClient;
5252
import com.owncloud.android.lib.resources.notifications.models.Action;
5353
import com.owncloud.android.lib.resources.notifications.models.Notification;
5454
import com.owncloud.android.lib.resources.notifications.models.RichObject;
@@ -80,11 +80,11 @@ public class NotificationListAdapter extends RecyclerView.Adapter<NotificationLi
8080
private final ForegroundColorSpan foregroundColorSpanBlack;
8181

8282
private final List<Notification> notificationsList;
83-
private final OwnCloudClient client;
83+
private final NextcloudClient client;
8484
private final NotificationsActivity notificationsActivity;
8585
private final ViewThemeUtils viewThemeUtils;
8686

87-
public NotificationListAdapter(OwnCloudClient client,
87+
public NotificationListAdapter(NextcloudClient client,
8888
NotificationsActivity notificationsActivity,
8989
ViewThemeUtils viewThemeUtils) {
9090
this.notificationsList = new ArrayList<>();

app/src/main/java/com/owncloud/android/ui/asynctasks/DeleteAllNotificationsTask.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,18 @@
2323

2424
import android.os.AsyncTask;
2525

26-
import com.owncloud.android.lib.common.OwnCloudClient;
26+
import com.nextcloud.common.NextcloudClient;
2727
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
2828
import com.owncloud.android.lib.resources.notifications.DeleteAllNotificationsRemoteOperation;
2929
import com.owncloud.android.lib.resources.notifications.models.Action;
3030
import com.owncloud.android.ui.activity.NotificationsActivity;
3131
import com.owncloud.android.ui.notifications.NotificationsContract;
3232

3333
public class DeleteAllNotificationsTask extends AsyncTask<Action, Void, Boolean> {
34-
private OwnCloudClient client;
34+
private NextcloudClient client;
3535
private NotificationsContract.View notificationsActivity;
3636

37-
public DeleteAllNotificationsTask(OwnCloudClient client, NotificationsActivity notificationsActivity) {
37+
public DeleteAllNotificationsTask(NextcloudClient client, NotificationsActivity notificationsActivity) {
3838
this.client = client;
3939
this.notificationsActivity = notificationsActivity;
4040
}

app/src/main/java/com/owncloud/android/ui/asynctasks/DeleteNotificationTask.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
import android.os.AsyncTask;
2525

26-
import com.owncloud.android.lib.common.OwnCloudClient;
26+
import com.nextcloud.common.NextcloudClient;
2727
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
2828
import com.owncloud.android.lib.resources.notifications.DeleteNotificationRemoteOperation;
2929
import com.owncloud.android.lib.resources.notifications.models.Action;
@@ -35,10 +35,10 @@
3535
public class DeleteNotificationTask extends AsyncTask<Action, Void, Boolean> {
3636
private Notification notification;
3737
private NotificationListAdapter.NotificationViewHolder holder;
38-
private OwnCloudClient client;
38+
private NextcloudClient client;
3939
private NotificationsContract.View notificationsActivity;
4040

41-
public DeleteNotificationTask(OwnCloudClient client, Notification notification,
41+
public DeleteNotificationTask(NextcloudClient client, Notification notification,
4242
NotificationListAdapter.NotificationViewHolder holder,
4343
NotificationsActivity notificationsActivity) {
4444
this.client = client;

app/src/main/java/com/owncloud/android/ui/asynctasks/NotificationExecuteActionTask.java

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,30 @@
22

33
import android.os.AsyncTask;
44

5-
import com.owncloud.android.lib.common.OwnCloudClient;
6-
import com.owncloud.android.lib.common.operations.RemoteOperation;
5+
import com.nextcloud.common.NextcloudClient;
6+
import com.nextcloud.common.OkHttpMethodBase;
7+
import com.nextcloud.operations.DeleteMethod;
8+
import com.nextcloud.operations.GetMethod;
9+
import com.nextcloud.operations.PutMethod;
10+
import com.nextcloud.operations.Utf8PostMethod;
711
import com.owncloud.android.lib.common.utils.Log_OC;
812
import com.owncloud.android.lib.resources.notifications.models.Action;
913
import com.owncloud.android.lib.resources.notifications.models.Notification;
1014
import com.owncloud.android.ui.activity.NotificationsActivity;
1115
import com.owncloud.android.ui.adapter.NotificationListAdapter;
1216

13-
import org.apache.commons.httpclient.HttpMethod;
1417
import org.apache.commons.httpclient.HttpStatus;
15-
import org.apache.commons.httpclient.methods.DeleteMethod;
16-
import org.apache.commons.httpclient.methods.GetMethod;
17-
import org.apache.commons.httpclient.methods.PutMethod;
18-
import org.apache.commons.httpclient.methods.Utf8PostMethod;
1918

2019
import java.io.IOException;
2120

2221
public class NotificationExecuteActionTask extends AsyncTask<Action, Void, Boolean> {
2322

2423
private NotificationListAdapter.NotificationViewHolder holder;
25-
private OwnCloudClient client;
24+
private NextcloudClient client;
2625
private Notification notification;
2726
private NotificationsActivity notificationsActivity;
2827

29-
public NotificationExecuteActionTask(OwnCloudClient client,
28+
public NotificationExecuteActionTask(NextcloudClient client,
3029
NotificationListAdapter.NotificationViewHolder holder,
3130
Notification notification,
3231
NotificationsActivity notificationsActivity) {
@@ -38,36 +37,39 @@ public NotificationExecuteActionTask(OwnCloudClient client,
3837

3938
@Override
4039
protected Boolean doInBackground(Action... actions) {
41-
HttpMethod method;
40+
OkHttpMethodBase method;
4241
Action action = actions[0];
4342

43+
if (action.link == null) {
44+
Log_OC.e(this, "Link is empty!");
45+
return Boolean.FALSE;
46+
}
47+
4448
switch (action.type) {
4549
case "GET":
46-
method = new GetMethod(action.link);
50+
method = new GetMethod(action.link, true);
4751
break;
4852

4953
case "POST":
50-
method = new Utf8PostMethod(action.link);
54+
method = new Utf8PostMethod(action.link, true, null);
5155
break;
5256

5357
case "DELETE":
54-
method = new DeleteMethod(action.link);
58+
method = new DeleteMethod(action.link, true);
5559
break;
5660

5761
case "PUT":
58-
method = new PutMethod(action.link);
62+
method = new PutMethod(action.link, true, null);
5963
break;
6064

6165
default:
6266
// do nothing
6367
return Boolean.FALSE;
6468
}
6569

66-
method.setRequestHeader(RemoteOperation.OCS_API_HEADER, RemoteOperation.OCS_API_HEADER_VALUE);
67-
6870
int status;
6971
try {
70-
status = client.executeMethod(method);
72+
status = client.execute(method);
7173
} catch (IOException e) {
7274
Log_OC.e(this, "Execution of notification action failed: " + e);
7375
return Boolean.FALSE;

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ buildscript {
66
daggerVersion = "2.44.2"
77
markwonVersion = "4.6.2"
88
prismVersion = "2.0.0"
9-
androidLibraryVersion = "master-SNAPSHOT"
9+
androidLibraryVersion = "notificationV2-SNAPSHOT"
1010
mockitoVersion = "4.9.0"
1111
mockitoKotlinVersion = "4.1.0"
1212
mockkVersion = "1.13.3"

0 commit comments

Comments
 (0)