Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/news-android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid-Development <david-dev@live.de>2021-01-02 21:12:09 +0300
committerDavid Luhmer <david-dev@live.de>2021-01-02 21:12:09 +0300
commit6aa37c08e91bae33713c3a1840f1efbed4ff2c56 (patch)
treeed670b8ff2cb553a377696cbd3d52eaa6c37fd8e /News-Android-App/src/main/java
parent07e4525fa3c04116c01079264997e0ca6561e27e (diff)
Add notification action "Mark all as read" (#911) / Notifications should respect sorting setting #901
Signed-off-by: David Luhmer <david-dev@live.de>
Diffstat (limited to 'News-Android-App/src/main/java')
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/Constants.java3
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java8
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderDetailFragment.java3
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java8
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragmentActivity.java3
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/authentication/OwnCloudSyncAdapter.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java22
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/DatabaseUtils.java52
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NotificationActionReceiver.java24
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NotificationActionReceiverDownloadWebPage.java27
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/Search.java4
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/notification/NextcloudNotificationManager.java21
12 files changed, 125 insertions, 52 deletions
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/Constants.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/Constants.java
index 6fe1b75f..1d42285a 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/Constants.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/Constants.java
@@ -1,8 +1,6 @@
package de.luhmer.owncloudnewsreader;
-import android.content.Context;
import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -13,6 +11,7 @@ public class Constants {
public static final int maxItemsCount = 1500;
public static final String LAST_UPDATE_NEW_ITEMS_COUNT_STRING = "LAST_UPDATE_NEW_ITEMS_COUNT_STRING";
public static final String NOTIFICATION_ACTION_STOP_STRING = "NOTIFICATION_STOP";
+ public static final String NOTIFICATION_ACTION_MARK_ALL_AS_READ_STRING = "NOTIFICATION_MARK_ALL_AS_READ";
protected static final String NEWS_WEB_VERSION_NUMBER_STRING = "NewsWebVersionNumber";
protected static final int MIN_NEXTCLOUD_FILES_APP_VERSION_CODE = 30030052;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java
index 86878af3..34ace45c 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java
@@ -57,7 +57,6 @@ import javax.inject.Inject;
import butterknife.BindView;
import butterknife.ButterKnife;
import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm;
-import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm.SORT_DIRECTION;
import de.luhmer.owncloudnewsreader.database.model.RssItem;
import de.luhmer.owncloudnewsreader.helper.ThemeUtils;
import de.luhmer.owncloudnewsreader.model.PodcastItem;
@@ -310,13 +309,6 @@ public class NewsDetailActivity extends PodcastFragmentActivity {
@Override public void onPageScrollStateChanged(int arg0) { }
};
- public static SORT_DIRECTION getSortDirectionFromSettings(SharedPreferences prefs) {
- SORT_DIRECTION sDirection = SORT_DIRECTION.asc;
- String sortDirection = prefs.getString(SettingsActivity.SP_SORT_ORDER, "1");
- if ("1".equals(sortDirection))
- sDirection = SORT_DIRECTION.desc;
- return sDirection;
- }
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderDetailFragment.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderDetailFragment.java
index 4d31498b..63d30ce8 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderDetailFragment.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderDetailFragment.java
@@ -71,6 +71,7 @@ import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm.SORT_DIRECTIO
import de.luhmer.owncloudnewsreader.database.model.RssItem;
import de.luhmer.owncloudnewsreader.database.model.RssItemDao;
import de.luhmer.owncloudnewsreader.helper.AsyncTaskHelper;
+import de.luhmer.owncloudnewsreader.helper.DatabaseUtils;
import de.luhmer.owncloudnewsreader.helper.PostDelayHandler;
import de.luhmer.owncloudnewsreader.helper.Search;
import de.luhmer.owncloudnewsreader.helper.StopWatch;
@@ -164,7 +165,7 @@ public class NewsReaderDetailFragment extends Fragment {
public static SORT_DIRECTION getSortDirection(SharedPreferences prefs) {
- return NewsDetailActivity.getSortDirectionFromSettings(prefs);
+ return DatabaseUtils.getSortDirectionFromSettings(prefs);
}
/**
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java
index 3f7a2b19..2bc105d4 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java
@@ -484,13 +484,15 @@ public class NewsReaderListActivity extends PodcastFragmentActivity implements
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(SyncStartedEvent event) {
- updateButtonLayout();
+ Log.d(TAG, "onEventMainThread - SyncStartedEvent");
+ updateButtonLayout();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(SyncFinishedEvent event) {
- updateButtonLayout();
- syncFinishedHandler();
+ Log.d(TAG, "onEventMainThread - SyncFinishedEvent");
+ updateButtonLayout();
+ syncFinishedHandler();
}
/**
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragmentActivity.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragmentActivity.java
index d189ea7c..d6a02a15 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragmentActivity.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragmentActivity.java
@@ -23,7 +23,6 @@ import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.io.File;
-import java.lang.reflect.Proxy;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -162,7 +161,7 @@ public class PodcastFragmentActivity extends AppCompatActivity implements IPlayP
if (NextcloudNotificationManager.isUnreadRssCountNotificationVisible(this)) {
DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(this);
int count = Integer.parseInt(dbConn.getUnreadItemsCountForSpecificFolder(SubscriptionExpandableListAdapter.SPECIAL_FOLDERS.ALL_UNREAD_ITEMS));
- NextcloudNotificationManager.showUnreadRssItemsNotification(this, count);
+ NextcloudNotificationManager.showUnreadRssItemsNotification(this, count, mPrefs);
if (count == 0) {
NextcloudNotificationManager.removeRssItemsNotification(this);
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/authentication/OwnCloudSyncAdapter.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/authentication/OwnCloudSyncAdapter.java
index 48e6fb99..0ad3dde7 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/authentication/OwnCloudSyncAdapter.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/authentication/OwnCloudSyncAdapter.java
@@ -236,7 +236,7 @@ public class OwnCloudSyncAdapter extends AbstractThreadedSyncAdapter {
boolean showNotificationOnNewArticles = mPrefs.getBoolean(SettingsActivity.CB_SHOW_NOTIFICATION_NEW_ARTICLES_STRING, true);
// If another app is opened show a notification
if (!ForegroundListener.isInForeground() && showNotificationOnNewArticles) {
- NextcloudNotificationManager.showUnreadRssItemsNotification(getContext(), newItemsCount);
+ NextcloudNotificationManager.showUnreadRssItemsNotification(getContext(), newItemsCount, mPrefs);
}
}
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java
index 987be4d1..a0d28db4 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java
@@ -17,6 +17,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import de.greenrobot.dao.query.LazyList;
+import de.greenrobot.dao.query.QueryBuilder;
import de.greenrobot.dao.query.WhereCondition;
import de.luhmer.owncloudnewsreader.Constants;
import de.luhmer.owncloudnewsreader.NewsReaderApplication;
@@ -353,8 +354,25 @@ public class DatabaseConnectionOrm {
return daoSession.getRssItemDao().queryBuilder().where(RssItemDao.Properties.Read_temp.eq(false)).limit(100).orderDesc(RssItemDao.Properties.PubDate).listLazy();
}
- public LazyList<RssItem> getAllUnreadRssItemsForNotification() {
- return daoSession.getRssItemDao().queryBuilder().where(RssItemDao.Properties.Read_temp.eq(false)).limit(6).orderDesc(RssItemDao.Properties.PubDate).listLazy();
+ public LazyList<RssItem> getAllUnreadRssItemsForNotification(SORT_DIRECTION sortDirection) {
+ QueryBuilder<RssItem> qb = daoSession.getRssItemDao().queryBuilder().where(RssItemDao.Properties.Read_temp.eq(false)).limit(6);
+ if (sortDirection == SORT_DIRECTION.asc) {
+ qb = qb.orderAsc(RssItemDao.Properties.PubDate);
+ } else {
+ qb = qb.orderDesc(RssItemDao.Properties.PubDate);
+ }
+ return qb.listLazy();
+ }
+
+ public void markAllItemsAsRead() {
+ StopWatch sw = new StopWatch();
+ sw.start();
+
+ String sql = "UPDATE " + RssItemDao.TABLENAME + " SET " + RssItemDao.Properties.Read_temp.columnName + " = 1 WHERE " + RssItemDao.Properties.Read_temp.columnName + " = 0";
+ daoSession.getDatabase().execSQL(sql);
+
+ sw.stop();
+ Log.v(TAG, "Time needed for marking all unread items as read: " + sw.toString());
}
public LazyList<RssItem> getAllUnreadRssItemsForDownloadWebPageService() {
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/DatabaseUtils.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/DatabaseUtils.java
index 2958524f..ea73cf04 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/DatabaseUtils.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/DatabaseUtils.java
@@ -22,37 +22,47 @@
package de.luhmer.owncloudnewsreader.helper;
import android.content.Context;
+import android.content.SharedPreferences;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
+import de.luhmer.owncloudnewsreader.SettingsActivity;
+import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm;
+
public class DatabaseUtils {
- public static final String DATABASE_NAME = "OwncloudNewsReader.db";
+ public static final String DATABASE_NAME = "OwncloudNewsReader.db";
- public static boolean CopyDatabaseToSdCard(Context context)
- {
+ public static boolean CopyDatabaseToSdCard(Context context) {
String path = context.getDatabasePath(DATABASE_NAME).getPath();
- File db = new File(path);
- File backupDb = GetPath(context);
- if (db.exists()) {
- try
- {
- File parentFolder = backupDb.getParentFile();
- parentFolder.mkdirs();
-
- NewsFileUtils.copyFile(new FileInputStream(db), new FileOutputStream(backupDb));
- return true;
- } catch(Exception ex) {
- ex.printStackTrace();
- }
- }
- return false;
+ File db = new File(path);
+ File backupDb = GetPath(context);
+ if (db.exists()) {
+ try {
+ File parentFolder = backupDb.getParentFile();
+ parentFolder.mkdirs();
+
+ NewsFileUtils.copyFile(new FileInputStream(db), new FileOutputStream(backupDb));
+ return true;
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ return false;
}
- public static File GetPath(Context context) {
- return new File(NewsFileUtils.getCacheDirPath(context) + "/dbBackup/" + DATABASE_NAME);
- }
+ public static File GetPath(Context context) {
+ return new File(NewsFileUtils.getCacheDirPath(context) + "/dbBackup/" + DATABASE_NAME);
+ }
+
+ public static DatabaseConnectionOrm.SORT_DIRECTION getSortDirectionFromSettings(SharedPreferences prefs) {
+ DatabaseConnectionOrm.SORT_DIRECTION sDirection = DatabaseConnectionOrm.SORT_DIRECTION.asc;
+ String sortDirection = prefs.getString(SettingsActivity.SP_SORT_ORDER, "1");
+ if ("1".equals(sortDirection))
+ sDirection = DatabaseConnectionOrm.SORT_DIRECTION.desc;
+ return sDirection;
+ }
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NotificationActionReceiver.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NotificationActionReceiver.java
index 237a65e1..43672dc9 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NotificationActionReceiver.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NotificationActionReceiver.java
@@ -1,22 +1,38 @@
package de.luhmer.owncloudnewsreader.helper;
+import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import android.util.Log;
import org.greenrobot.eventbus.EventBus;
-import de.luhmer.owncloudnewsreader.services.events.StopWebArchiveDownloadEvent;
+import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm;
+import de.luhmer.owncloudnewsreader.services.events.SyncFinishedEvent;
-import static de.luhmer.owncloudnewsreader.Constants.NOTIFICATION_ACTION_STOP_STRING;
+import static android.app.Notification.EXTRA_NOTIFICATION_ID;
+import static de.luhmer.owncloudnewsreader.Constants.NOTIFICATION_ACTION_MARK_ALL_AS_READ_STRING;
public class NotificationActionReceiver extends BroadcastReceiver {
+ private static final String TAG = NotificationActionReceiver.class.getCanonicalName();
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
- if (NOTIFICATION_ACTION_STOP_STRING.equals(action)) {
- EventBus.getDefault().post(new StopWebArchiveDownloadEvent());
+ if (NOTIFICATION_ACTION_MARK_ALL_AS_READ_STRING.equals(action)) {
+ DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(context);
+ Log.d(TAG, "NOTIFICATION_ACTION_MARK_ALL_AS_READ_STRING");
+ dbConn.markAllItemsAsRead();
+ EventBus.getDefault().post(new SyncFinishedEvent());
+
+ Integer notificationId = intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1);
+ if (notificationId != -1) {
+ NotificationManager nMgr = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+ nMgr.cancel(notificationId);
+ }
+ } else {
+ Log.d(TAG, action);
}
}
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NotificationActionReceiverDownloadWebPage.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NotificationActionReceiverDownloadWebPage.java
new file mode 100644
index 00000000..3a6ad407
--- /dev/null
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NotificationActionReceiverDownloadWebPage.java
@@ -0,0 +1,27 @@
+package de.luhmer.owncloudnewsreader.helper;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+import org.greenrobot.eventbus.EventBus;
+
+import de.luhmer.owncloudnewsreader.services.events.StopWebArchiveDownloadEvent;
+
+import static de.luhmer.owncloudnewsreader.Constants.NOTIFICATION_ACTION_STOP_STRING;
+
+public class NotificationActionReceiverDownloadWebPage extends BroadcastReceiver {
+ private static final String TAG = NotificationActionReceiver.class.getCanonicalName();
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (NOTIFICATION_ACTION_STOP_STRING.equals(action)) {
+ Log.d(TAG, "NOTIFICATION_ACTION_STOP_STRING");
+ EventBus.getDefault().post(new StopWebArchiveDownloadEvent());
+ } else {
+ Log.d(TAG, action);
+ }
+ }
+}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/Search.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/Search.java
index 38a751a9..e5646a11 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/Search.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/Search.java
@@ -2,12 +2,10 @@ package de.luhmer.owncloudnewsreader.helper;
import android.content.Context;
import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
import java.util.ArrayList;
import java.util.List;
-import de.luhmer.owncloudnewsreader.NewsDetailActivity;
import de.luhmer.owncloudnewsreader.SettingsActivity;
import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm;
import de.luhmer.owncloudnewsreader.database.model.RssItem;
@@ -19,7 +17,7 @@ public class Search {
private static final String SEARCH_IN_BODY = "1";
public static List<RssItem> PerformSearch(Context context, Long idFolder, Long idFeed, String searchString, SharedPreferences mPrefs) {
- DatabaseConnectionOrm.SORT_DIRECTION sortDirection = NewsDetailActivity.getSortDirectionFromSettings(mPrefs);
+ DatabaseConnectionOrm.SORT_DIRECTION sortDirection = DatabaseUtils.getSortDirectionFromSettings(mPrefs);
DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(context);
String sqlSelectStatement = null;
if (idFeed != null) {
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/notification/NextcloudNotificationManager.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/notification/NextcloudNotificationManager.java
index 105f5059..1671a6fe 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/notification/NextcloudNotificationManager.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/notification/NextcloudNotificationManager.java
@@ -6,6 +6,7 @@ import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -36,6 +37,11 @@ import de.luhmer.owncloudnewsreader.NewsReaderListActivity;
import de.luhmer.owncloudnewsreader.R;
import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm;
import de.luhmer.owncloudnewsreader.database.model.RssItem;
+import de.luhmer.owncloudnewsreader.helper.DatabaseUtils;
+import de.luhmer.owncloudnewsreader.helper.NotificationActionReceiver;
+
+import static android.app.Notification.EXTRA_NOTIFICATION_ID;
+import static de.luhmer.owncloudnewsreader.Constants.NOTIFICATION_ACTION_MARK_ALL_AS_READ_STRING;
public class NextcloudNotificationManager {
@@ -251,9 +257,7 @@ public class NextcloudNotificationManager {
}
-
-
- public static void showUnreadRssItemsNotification(Context context, int newItemsCount) {
+ public static void showUnreadRssItemsNotification(Context context, int newItemsCount, SharedPreferences mPrefs) {
Resources res = context.getResources();
String tickerMessage = res.getQuantityString(R.plurals.notification_new_items_ticker, newItemsCount, newItemsCount);
String contentText = res.getQuantityString(R.plurals.notification_new_items_text, newItemsCount, newItemsCount);
@@ -262,21 +266,28 @@ public class NextcloudNotificationManager {
NotificationManager notificationManager = getNotificationManagerAndCreateChannel(context, channelId);
DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(context);
- List<RssItem> items = dbConn.getAllUnreadRssItemsForNotification();
+ DatabaseConnectionOrm.SORT_DIRECTION sortDirection = DatabaseUtils.getSortDirectionFromSettings(mPrefs);
+ List<RssItem> items = dbConn.getAllUnreadRssItemsForNotification(sortDirection);
List<String> previewLines = new ArrayList<>();
- for(RssItem item : items) {
+ for (RssItem item : items) {
// • = \u2022, ● = \u25CF, ○ = \u25CB, ▪ = \u25AA, ■ = \u25A0, □ = \u25A1, ► = \u25BA
previewLines.add("\u2022 " + item.getTitle().trim());
}
String previewText = TextUtils.join("\n", previewLines);
+ Intent markAllAsReadIntent = new Intent(context, NotificationActionReceiver.class);
+ markAllAsReadIntent.setAction(NOTIFICATION_ACTION_MARK_ALL_AS_READ_STRING);
+ markAllAsReadIntent.putExtra(EXTRA_NOTIFICATION_ID, UNREAD_RSS_ITEMS_NOTIFICATION_ID);
+ PendingIntent markAllAsReadPendingIntent = PendingIntent.getBroadcast(context, 0, markAllAsReadIntent, PendingIntent.FLAG_ONE_SHOT);
+
NotificationCompat.Builder builder =
new NotificationCompat.Builder(context, channelId)
.setSmallIcon(R.drawable.ic_notification)
.setContentTitle(tickerMessage)
.setStyle(new NotificationCompat.BigTextStyle().bigText(previewText))
//.setDefaults(Notification.DEFAULT_ALL)
+ .addAction(R.drawable.ic_check_box_white, context.getString(R.string.menu_markAllAsRead), markAllAsReadPendingIntent)
.setAutoCancel(true)
.setNumber(newItemsCount)
.setContentText(contentText);