From 634b014e98ddef082dc28c820b2e8084c998fd85 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Fri, 2 Oct 2020 12:25:51 -0500 Subject: [PATCH] Disable hidden toggles for notifications filter --- .../org/tasks/filters/NotificationsFilter.kt | 41 +++++++++++++++++++ .../org/tasks/notifications/Notification.kt | 4 +- .../notifications/NotificationManager.kt | 11 +---- 3 files changed, 45 insertions(+), 11 deletions(-) create mode 100644 app/src/main/java/org/tasks/filters/NotificationsFilter.kt diff --git a/app/src/main/java/org/tasks/filters/NotificationsFilter.kt b/app/src/main/java/org/tasks/filters/NotificationsFilter.kt new file mode 100644 index 000000000..905d1e2b3 --- /dev/null +++ b/app/src/main/java/org/tasks/filters/NotificationsFilter.kt @@ -0,0 +1,41 @@ +package org.tasks.filters + +import android.content.Context +import android.os.Parcel +import android.os.Parcelable +import com.todoroo.andlib.sql.Join +import com.todoroo.andlib.sql.QueryTemplate +import com.todoroo.astrid.api.Filter +import com.todoroo.astrid.data.Task +import org.tasks.R +import org.tasks.notifications.Notification + +class NotificationsFilter : Filter { + constructor(context: Context) : super(context.getString(R.string.notifications), queryTemplate) + + private constructor() + + override fun supportsHiddenTasks(): Boolean { + return false + } + + companion object { + @JvmField val CREATOR: Parcelable.Creator = object : Parcelable.Creator { + /** {@inheritDoc} */ + override fun createFromParcel(source: Parcel): NotificationsFilter { + val item = NotificationsFilter() + item.readFromParcel(source) + return item + } + + /** {@inheritDoc} */ + override fun newArray(size: Int): Array { + return arrayOfNulls(size) + } + } + + private val queryTemplate: QueryTemplate + get() = QueryTemplate() + .join(Join.inner(Notification.TABLE, Task.ID.eq(Notification.TASK))) + } +} \ No newline at end of file diff --git a/app/src/main/java/org/tasks/notifications/Notification.kt b/app/src/main/java/org/tasks/notifications/Notification.kt index 47269b3f1..9475660e3 100644 --- a/app/src/main/java/org/tasks/notifications/Notification.kt +++ b/app/src/main/java/org/tasks/notifications/Notification.kt @@ -30,7 +30,7 @@ class Notification { companion object { const val TABLE_NAME = "notification" - @JvmField val TABLE = Table(TABLE_NAME) - @JvmField val TASK = TABLE.column("task") + val TABLE = Table(TABLE_NAME) + val TASK = TABLE.column("task") } } \ No newline at end of file diff --git a/app/src/main/java/org/tasks/notifications/NotificationManager.kt b/app/src/main/java/org/tasks/notifications/NotificationManager.kt index e6db6bad9..70c408673 100644 --- a/app/src/main/java/org/tasks/notifications/NotificationManager.kt +++ b/app/src/main/java/org/tasks/notifications/NotificationManager.kt @@ -6,12 +6,8 @@ import android.content.Context import android.content.Intent import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat -import com.todoroo.andlib.sql.Join.Companion.inner -import com.todoroo.andlib.sql.QueryTemplate import com.todoroo.andlib.utility.AndroidUtilities import com.todoroo.andlib.utility.DateUtilities -import com.todoroo.astrid.api.Filter -import com.todoroo.astrid.data.Task import com.todoroo.astrid.reminders.ReminderService import dagger.hilt.android.qualifiers.ApplicationContext import org.tasks.LocalBroadcastManager @@ -19,6 +15,7 @@ import org.tasks.R import org.tasks.Strings.isNullOrEmpty import org.tasks.data.LocationDao import org.tasks.data.TaskDao +import org.tasks.filters.NotificationsFilter import org.tasks.intents.TaskIntents import org.tasks.preferences.Preferences import org.tasks.receivers.CompleteTaskReceiver @@ -220,10 +217,6 @@ class NotificationManager @Inject constructor( return } val taskIds = tasks.map { it.id } - val filter = Filter( - context.getString(R.string.notifications), - QueryTemplate() - .join(inner(Notification.TABLE, Task.ID.eq(Notification.TASK)))) var maxPriority = 3 val summaryTitle = context.resources.getQuantityString(R.plurals.task_count, taskCount, taskCount) val style = NotificationCompat.InboxStyle().setBigContentTitle(summaryTitle) @@ -251,7 +244,7 @@ class NotificationManager @Inject constructor( PendingIntent.getActivity( context, 0, - TaskIntents.getTaskListIntent(context, filter), + TaskIntents.getTaskListIntent(context, NotificationsFilter(context)), PendingIntent.FLAG_UPDATE_CURRENT)) .setGroupSummary(true) .setGroup(GROUP_KEY)