diff --git a/android/app/src/main/java/com/github/quarck/calnotify/Consts.kt b/android/app/src/main/java/com/github/quarck/calnotify/Consts.kt index 7fc1fde5..90d72772 100644 --- a/android/app/src/main/java/com/github/quarck/calnotify/Consts.kt +++ b/android/app/src/main/java/com/github/quarck/calnotify/Consts.kt @@ -66,6 +66,7 @@ object Consts { const val INTENT_SNOOZE_FROM_MAIN_ACTIVITY = "snooze_by_main_activity" const val INTENT_SNOOZE_PRESET = "snooze_preset" const val INTENT_SNOOZE_ALL_KEY = "snooze_all" + const val INTENT_SEARCH_QUERY = "search_query" const val INTENT_SNOOZE_ALL_COLLAPSED_KEY = "snooze_all_collapsed" const val INTENT_DISMISS_ALL_KEY = "dismiss_all" diff --git a/android/app/src/main/java/com/github/quarck/calnotify/app/ApplicationController.kt b/android/app/src/main/java/com/github/quarck/calnotify/app/ApplicationController.kt index 8f0d82d2..15837b59 100644 --- a/android/app/src/main/java/com/github/quarck/calnotify/app/ApplicationController.kt +++ b/android/app/src/main/java/com/github/quarck/calnotify/app/ApplicationController.kt @@ -778,8 +778,13 @@ object ApplicationController : EventMovedHandler { return snoozeEvents(context, { it.displayStatus == EventDisplayStatus.DisplayedCollapsed }, snoozeDelay, isChange, onlySnoozeVisible) } - fun snoozeAllEvents(context: Context, snoozeDelay: Long, isChange: Boolean, onlySnoozeVisible: Boolean): SnoozeResult? { - return snoozeEvents(context, { true }, snoozeDelay, isChange, onlySnoozeVisible) + fun snoozeAllEvents(context: Context, snoozeDelay: Long, isChange: Boolean, onlySnoozeVisible: Boolean, searchQuery: String?): SnoozeResult? { + return snoozeEvents(context, { event -> + searchQuery?.let { query -> + event.title.contains(query, ignoreCase = true) || + event.desc.contains(query, ignoreCase = true) + } ?: true + }, snoozeDelay, isChange, onlySnoozeVisible) } fun fireEventReminder( diff --git a/android/app/src/main/java/com/github/quarck/calnotify/ui/EventListAdapter.kt b/android/app/src/main/java/com/github/quarck/calnotify/ui/EventListAdapter.kt index 334b539e..4a059f34 100644 --- a/android/app/src/main/java/com/github/quarck/calnotify/ui/EventListAdapter.kt +++ b/android/app/src/main/java/com/github/quarck/calnotify/ui/EventListAdapter.kt @@ -129,7 +129,7 @@ class EventListAdapter( private val primaryColor: Int private val changeString: String private val snoozeString: String - private var searchString: String? = null + private var currentSearchString: String? = null private var currentScrollPosition: Int = 0 @@ -141,6 +141,9 @@ class EventListAdapter( val scrollPosition: Int get() = currentScrollPosition + val searchString: String? + get() = currentSearchString + init { primaryColor = ContextCompat.getColor(context, R.color.primary) changeString = context.resources.getString(R.string.card_view_btn_change); @@ -378,7 +381,7 @@ class EventListAdapter( get() = events.any { it.snoozedUntil == 0L } fun setSearchText(query: String?) { - searchString = query + currentSearchString = query setEventsToDisplay() } @@ -389,8 +392,13 @@ class EventListAdapter( events = newEvents; } - if (!searchString.isNullOrEmpty()){ - events = allEvents.filter { ev -> searchString?.let { ev.title.lowercase().contains(it.lowercase()) } == true }.toTypedArray() + if (!currentSearchString.isNullOrEmpty()){ + events = allEvents.filter { ev -> + currentSearchString?.let { query -> + ev.title.lowercase().contains(query.lowercase()) || + ev.desc.lowercase().contains(query.lowercase()) + } == true + }.toTypedArray() } else { events = allEvents } diff --git a/android/app/src/main/java/com/github/quarck/calnotify/ui/MainActivity.kt b/android/app/src/main/java/com/github/quarck/calnotify/ui/MainActivity.kt index b1b77abc..9d2e347e 100644 --- a/android/app/src/main/java/com/github/quarck/calnotify/ui/MainActivity.kt +++ b/android/app/src/main/java/com/github/quarck/calnotify/ui/MainActivity.kt @@ -479,6 +479,7 @@ class MainActivity : AppCompatActivity(), EventListCallback { Intent(this, SnoozeAllActivity::class.java) .putExtra(Consts.INTENT_SNOOZE_ALL_IS_CHANGE, !adapter.hasActiveEvents) .putExtra(Consts.INTENT_SNOOZE_FROM_MAIN_ACTIVITY, true) + .putExtra(Consts.INTENT_SEARCH_QUERY, adapter.searchString) .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) R.id.action_mute_all -> diff --git a/android/app/src/main/java/com/github/quarck/calnotify/ui/SnoozeAllActivity.kt b/android/app/src/main/java/com/github/quarck/calnotify/ui/SnoozeAllActivity.kt index 83a89f38..6eabfe09 100644 --- a/android/app/src/main/java/com/github/quarck/calnotify/ui/SnoozeAllActivity.kt +++ b/android/app/src/main/java/com/github/quarck/calnotify/ui/SnoozeAllActivity.kt @@ -120,6 +120,8 @@ open class SnoozeAllActivity : AppCompatActivity() { snoozeFromMainActivity = intent.getBooleanExtra(Consts.INTENT_SNOOZE_FROM_MAIN_ACTIVITY, false) + val searchQuery = intent.getStringExtra(Consts.INTENT_SEARCH_QUERY) + val toolbar = find(R.id.toolbar) setSupportActionBar(toolbar) supportActionBar?.setDisplayHomeAsUpEnabled(true) diff --git a/android/app/src/main/res/layout/activity_snooze_all.xml b/android/app/src/main/res/layout/activity_snooze_all.xml index d7bf1678..70c1e6de 100644 --- a/android/app/src/main/res/layout/activity_snooze_all.xml +++ b/android/app/src/main/res/layout/activity_snooze_all.xml @@ -79,7 +79,7 @@ android:paddingRight="@dimen/snooze_view_padding_end" android:paddingStart="@dimen/snooze_view_padding_start" android:paddingTop="@dimen/snooze_view_in_text_vert_padding" - android:text="@string/snooze_event_for" + android:text="@string/snooze_all_events_for" android:textAppearance="?android:textAppearanceMedium" android:textColor="@color/primary_text" /> diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 23442e14..90ffd2aa 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -20,6 +20,7 @@ (No title) Snooze event for: + Snooze all event(s) for: 15 minutes 1 hour