diff --git a/app/src/main/java/org/tasks/compose/FilterSelectionActivity.kt b/app/src/main/java/org/tasks/compose/FilterSelectionActivity.kt index b5121bd5a..b7e995a9f 100644 --- a/app/src/main/java/org/tasks/compose/FilterSelectionActivity.kt +++ b/app/src/main/java/org/tasks/compose/FilterSelectionActivity.kt @@ -121,7 +121,17 @@ class FilterSelectionActivity : AppCompatActivity() { } } - fun ComponentActivity.registerForListPickerResult(callback: (Filter) -> Unit): ActivityResultLauncher { + fun Fragment.registerForFilterPickerResult(callback: (Filter) -> Unit): ActivityResultLauncher { + return registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { + it.data?.let { intent -> + IntentCompat + .getParcelableExtra(intent, EXTRA_FILTER, Filter::class.java) + ?.let(callback) + } + } + } + + fun ComponentActivity.registerForFilterPickerResult(callback: (Filter) -> Unit): ActivityResultLauncher { return registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { it.data?.let { intent -> IntentCompat diff --git a/app/src/main/java/org/tasks/preferences/fragments/DashClock.kt b/app/src/main/java/org/tasks/preferences/fragments/DashClock.kt index b759e0e88..db5dbf5e1 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/DashClock.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/DashClock.kt @@ -7,7 +7,7 @@ import kotlinx.coroutines.launch import org.tasks.LocalBroadcastManager import org.tasks.R import org.tasks.compose.FilterSelectionActivity.Companion.launch -import org.tasks.compose.FilterSelectionActivity.Companion.registerForListPickerResult +import org.tasks.compose.FilterSelectionActivity.Companion.registerForFilterPickerResult import org.tasks.injection.InjectingPreferenceFragment import org.tasks.preferences.DefaultFilterProvider import javax.inject.Inject @@ -18,7 +18,7 @@ class DashClock : InjectingPreferenceFragment() { @Inject lateinit var defaultFilterProvider: DefaultFilterProvider @Inject lateinit var localBroadcastManager: LocalBroadcastManager - private val listPickerLauncher = registerForListPickerResult { + private val listPickerLauncher = registerForFilterPickerResult { defaultFilterProvider.dashclockFilter = it lifecycleScope.launch { refreshPreferences() diff --git a/app/src/main/java/org/tasks/preferences/fragments/LookAndFeel.kt b/app/src/main/java/org/tasks/preferences/fragments/LookAndFeel.kt index 34c6d2264..813ce1ffa 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/LookAndFeel.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/LookAndFeel.kt @@ -18,14 +18,13 @@ import org.tasks.R import org.tasks.billing.Inventory import org.tasks.billing.PurchaseActivity import org.tasks.compose.FilterSelectionActivity.Companion.launch -import org.tasks.compose.FilterSelectionActivity.Companion.registerForListPickerResult +import org.tasks.compose.FilterSelectionActivity.Companion.registerForFilterPickerResult import org.tasks.dialogs.ColorPalettePicker import org.tasks.dialogs.ColorPalettePicker.Companion.newColorPalette import org.tasks.dialogs.ColorPickerAdapter import org.tasks.dialogs.ColorWheelPicker import org.tasks.dialogs.ThemePickerDialog import org.tasks.dialogs.ThemePickerDialog.Companion.newThemePickerDialog -import org.tasks.extensions.Context.isNightMode import org.tasks.injection.InjectingPreferenceFragment import org.tasks.locale.LocalePickerDialog import org.tasks.preferences.DefaultFilterProvider @@ -51,7 +50,7 @@ class LookAndFeel : InjectingPreferenceFragment() { @Inject lateinit var inventory: Inventory @Inject lateinit var locale: Locale - private val listPickerLauncher = registerForListPickerResult { + private val listPickerLauncher = registerForFilterPickerResult { defaultFilterProvider.setDefaultOpenFilter(it) findPreference(R.string.p_default_open_filter).summary = it.title localBroadcastManager.broadcastRefresh() diff --git a/app/src/main/java/org/tasks/preferences/fragments/Notifications.kt b/app/src/main/java/org/tasks/preferences/fragments/Notifications.kt index ee98725f5..4e04d22f7 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/Notifications.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/Notifications.kt @@ -20,7 +20,7 @@ import kotlinx.coroutines.launch import org.tasks.LocalBroadcastManager import org.tasks.R import org.tasks.compose.FilterSelectionActivity.Companion.launch -import org.tasks.compose.FilterSelectionActivity.Companion.registerForListPickerResult +import org.tasks.compose.FilterSelectionActivity.Companion.registerForFilterPickerResult import org.tasks.dialogs.MyTimePickerDialog.Companion.newTimePicker import org.tasks.extensions.Context.getResourceUri import org.tasks.extensions.Context.openChannelNotificationSettings @@ -42,7 +42,7 @@ class Notifications : InjectingPreferenceFragment() { @Inject lateinit var localBroadcastManager: LocalBroadcastManager @Inject lateinit var voiceOutputAssistant: VoiceOutputAssistant - private val listPickerLauncher = registerForListPickerResult { + private val listPickerLauncher = registerForFilterPickerResult { defaultFilterProvider.setBadgeFilter(it) findPreference(R.string.p_badge_list).summary = it.title localBroadcastManager.broadcastRefresh() diff --git a/app/src/main/java/org/tasks/preferences/fragments/TaskDefaults.kt b/app/src/main/java/org/tasks/preferences/fragments/TaskDefaults.kt index 502d83b55..c844400fb 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/TaskDefaults.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/TaskDefaults.kt @@ -16,7 +16,6 @@ import org.tasks.compose.FilterSelectionActivity.Companion.launch import org.tasks.compose.FilterSelectionActivity.Companion.registerForListPickerResult import org.tasks.data.dao.LocationDao import org.tasks.data.dao.TagDataDao -import org.tasks.data.displayName import org.tasks.data.entity.CaldavAccount import org.tasks.data.entity.Place import org.tasks.data.entity.TagData diff --git a/app/src/main/java/org/tasks/preferences/fragments/TaskerListNotification.kt b/app/src/main/java/org/tasks/preferences/fragments/TaskerListNotification.kt index 275d1b137..4f22a57d4 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/TaskerListNotification.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/TaskerListNotification.kt @@ -4,7 +4,7 @@ import android.os.Bundle import dagger.hilt.android.AndroidEntryPoint import org.tasks.R import org.tasks.compose.FilterSelectionActivity.Companion.launch -import org.tasks.compose.FilterSelectionActivity.Companion.registerForListPickerResult +import org.tasks.compose.FilterSelectionActivity.Companion.registerForFilterPickerResult import org.tasks.filters.Filter import org.tasks.injection.InjectingPreferenceFragment import org.tasks.locale.bundle.ListNotificationBundle @@ -30,7 +30,7 @@ class TaskerListNotification : InjectingPreferenceFragment() { lateinit var filter: Filter var cancelled: Boolean = false - private val listPickerLauncher = registerForListPickerResult { + private val listPickerLauncher = registerForFilterPickerResult { filter = it refreshPreferences() } diff --git a/app/src/main/java/org/tasks/preferences/fragments/WidgetSettings.kt b/app/src/main/java/org/tasks/preferences/fragments/WidgetSettings.kt index 6af713a7e..455ad9097 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/WidgetSettings.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/WidgetSettings.kt @@ -22,7 +22,7 @@ import kotlinx.coroutines.launch import org.tasks.LocalBroadcastManager import org.tasks.R import org.tasks.compose.FilterSelectionActivity.Companion.launch -import org.tasks.compose.FilterSelectionActivity.Companion.registerForListPickerResult +import org.tasks.compose.FilterSelectionActivity.Companion.registerForFilterPickerResult import org.tasks.dialogs.ColorPalettePicker import org.tasks.dialogs.ColorPalettePicker.Companion.newColorPalette import org.tasks.dialogs.ColorPickerAdapter.Palette @@ -64,7 +64,7 @@ class WidgetSettings : InjectingPreferenceFragment() { private lateinit var widgetPreferences: WidgetPreferences private var appWidgetId = 0 - private val listPickerLauncher = registerForListPickerResult { + private val listPickerLauncher = registerForFilterPickerResult { widgetPreferences.setFilter(defaultFilterProvider.getFilterPreferenceValue(it)) updateFilter() } diff --git a/app/src/main/java/org/tasks/widget/ShortcutConfigActivity.kt b/app/src/main/java/org/tasks/widget/ShortcutConfigActivity.kt index b6ce7fcb9..6ac3d0e67 100644 --- a/app/src/main/java/org/tasks/widget/ShortcutConfigActivity.kt +++ b/app/src/main/java/org/tasks/widget/ShortcutConfigActivity.kt @@ -12,7 +12,7 @@ import dagger.hilt.android.AndroidEntryPoint import org.tasks.R import org.tasks.Strings.isNullOrEmpty import org.tasks.compose.FilterSelectionActivity.Companion.launch -import org.tasks.compose.FilterSelectionActivity.Companion.registerForListPickerResult +import org.tasks.compose.FilterSelectionActivity.Companion.registerForFilterPickerResult import org.tasks.data.UUIDHelper import org.tasks.databinding.ActivityWidgetShortcutLayoutBinding import org.tasks.dialogs.ColorPalettePicker @@ -38,7 +38,7 @@ class ShortcutConfigActivity : ThemedInjectingAppCompatActivity(), ColorPaletteP private var selectedFilter: Filter? = null private var selectedTheme = 0 - private val listPickerResult = registerForListPickerResult { + private val listPickerResult = registerForFilterPickerResult { if (selectedFilter != null && selectedFilter!!.title == getShortcutName()) { shortcutName.text = null }