Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion scripts/analysis/findbugs-results.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
434
424
19 changes: 10 additions & 9 deletions spotbugs-filter.xml
Original file line number Diff line number Diff line change
@@ -1,27 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>


<FindBugsFilter>
<Match>
<Class name="~.*\.Manifest\$.*"/>
<Class name="~.*\.Manifest\$.*" />
</Match>
<Match>
<Class name="~.*\.R\$.*" />
</Match>
<Match>
<Class name="~.*\.R\$.*"/>
<Class name="~.*\.R\$.*" />
</Match>
<Match>
<Class name="~.*\.R\$.*"/>
<Class name="~.*\$\$Parcelable.*" />
</Match>

<!-- Dagger code is autogenerated. Exclude it from Check. -->
<Match>
<Or>
<Class name="~.*\.Dagger.*"/>
<Class name="~com.nextcloud.client.di\..*_.*"/>
<Class name="~.*\.Dagger.*" />
<Class name="~com.nextcloud.client.di\..*_.*" />
</Or>
</Match>
<!-- Dagger generated code uses internal APIs -->
<Match>
<Class name="~.*\..*.*Factory"/>
<Class name="~.*\..*.*Factory" />
<Bug pattern="IICU_INCORRECT_INTERNAL_CLASS_USE" />
</Match>

Expand All @@ -30,5 +31,5 @@
<Bug pattern="BAS_BLOATED_ASSIGNMENT_SCOPE" />

<!-- This is unmanageable for now due to large amount of interconnected static state -->
<Bug pattern="FCCD_FIND_CLASS_CIRCULAR_DEPENDENCY"/>
<Bug pattern="FCCD_FIND_CLASS_CIRCULAR_DEPENDENCY" />
</FindBugsFilter>
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@

package com.owncloud.android.datamodel;

import com.google.gson.annotations.SerializedName;

import org.parceler.Parcel;

import lombok.AllArgsConstructor;
Expand All @@ -41,4 +43,7 @@ public class DecryptedPushMessage {
public String subject;
public String id;
public int nid;
public boolean delete;
@SerializedName("delete-all")
public boolean deleteAll;
}
13 changes: 8 additions & 5 deletions src/main/java/com/owncloud/android/jobs/NotificationJob.java
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,7 @@ public class NotificationJob extends Job {
private static final String KEY_NOTIFICATION_ACTION_TYPE = "KEY_NOTIFICATION_ACTION_TYPE";
private static final String PUSH_NOTIFICATION_ID = "PUSH_NOTIFICATION_ID";
private static final String NUMERIC_NOTIFICATION_ID = "NUMERIC_NOTIFICATION_ID";
private static final String APP_SPREED = "spreed";

private SecureRandom randomId = new SecureRandom();
private Context context;
private UserAccountManager accountManager;

Expand All @@ -110,6 +108,7 @@ public class NotificationJob extends Job {
@Override
protected Result onRunJob(@NonNull Params params) {
context = getContext();
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
PersistableBundleCompat persistableBundleCompat = getParams().getExtras();
String subject = persistableBundleCompat.getString(KEY_NOTIFICATION_SUBJECT, "");
String signature = persistableBundleCompat.getString(KEY_NOTIFICATION_SIGNATURE, "");
Expand All @@ -135,8 +134,11 @@ protected Result onRunJob(@NonNull Params params) {
DecryptedPushMessage decryptedPushMessage = gson.fromJson(new String(decryptedSubject),
DecryptedPushMessage.class);

// We ignore Spreed messages for now
if (!APP_SPREED.equals(decryptedPushMessage.getApp())) {
if (decryptedPushMessage.delete) {
notificationManager.cancel(decryptedPushMessage.nid);
} else if (decryptedPushMessage.deleteAll) {
notificationManager.cancelAll();
} else {
fetchCompleteNotification(signatureVerification.getAccount(), decryptedPushMessage);
}
}
Expand All @@ -152,6 +154,7 @@ protected Result onRunJob(@NonNull Params params) {
}

private void sendNotification(Notification notification, Account account) {
SecureRandom randomId = new SecureRandom();
RichObject file = notification.subjectRichParameters.get("file");

Intent intent;
Expand Down Expand Up @@ -234,7 +237,7 @@ private void sendNotification(Notification notification, Account account) {
.setContentIntent(pendingIntent).build());

NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
notificationManager.notify(pushNotificationId, notificationBuilder.build());
notificationManager.notify(notification.getNotificationId(), notificationBuilder.build());
}

private void fetchCompleteNotification(Account account, DecryptedPushMessage decryptedPushMessage) {
Expand Down