#1369 Notification alerts. Skip old stories

This commit is contained in:
sictiru 2020-10-04 12:29:23 -07:00
parent f118e21936
commit 506666e5f1
2 changed files with 18 additions and 6 deletions

View file

@ -9,6 +9,7 @@ import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.os.Build;
import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;
@ -44,6 +45,11 @@ public class NotificationUtils {
nm.cancel(story.hashCode());
continue;
}
if (StoryUtils.hasOldTimestamp(story.timestamp)) {
FeedUtils.dbHelper.putStoryDismissed(story.storyHash);
nm.cancel(story.hashCode());
continue;
}
if (count < MAX_CONCUR_NOTIFY) {
Notification n = buildStoryNotification(story, storiesFocus, context, iconCache);
nm.notify(story.hashCode(), n);
@ -63,6 +69,11 @@ public class NotificationUtils {
nm.cancel(story.hashCode());
continue;
}
if (StoryUtils.hasOldTimestamp(story.timestamp)) {
FeedUtils.dbHelper.putStoryDismissed(story.storyHash);
nm.cancel(story.hashCode());
continue;
}
if (count < MAX_CONCUR_NOTIFY) {
Notification n = buildStoryNotification(story, storiesUnread, context, iconCache);
nm.notify(story.hashCode(), n);
@ -131,15 +142,14 @@ public class NotificationUtils {
.setContentIntent(pendingIntent)
.setDeleteIntent(dismissPendingIntent)
.setAutoCancel(true)
.setOnlyAlertOnce(true)
.setWhen(story.timestamp)
.addAction(0, "Save", savePendingIntent)
.addAction(0, "Mark Read", markreadPendingIntent);
.addAction(0, "Mark Read", markreadPendingIntent)
.setColor(NOTIFY_COLOUR);
if (feedIcon != null) {
nb.setLargeIcon(feedIcon);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
nb.setColor(NOTIFY_COLOUR);
}
return nb.build();
}
@ -153,6 +163,4 @@ public class NotificationUtils {
NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
nm.cancel(nid);
}
}

View file

@ -189,4 +189,8 @@ public class StoryUtils {
return shortDateFormat.get().format(storyDate) +", " + timeFormat.format(storyDate);
}
}
public static boolean hasOldTimestamp(long storyTimestamp) {
return (System.currentTimeMillis() - storyTimestamp) > (2 * DateUtils.DAY_IN_MILLIS);
}
}