Minor refactoring

pull/2549/head
Alex Baker 9 months ago
parent b318b930a5
commit 6664defc16

@ -29,6 +29,7 @@ import androidx.appcompat.widget.Toolbar
import androidx.compose.animation.ExperimentalAnimationApi import androidx.compose.animation.ExperimentalAnimationApi
import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.app.ShareCompat import androidx.core.app.ShareCompat
import androidx.core.content.IntentCompat
import androidx.core.view.forEach import androidx.core.view.forEach
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.view.setMargins import androidx.core.view.setMargins
@ -182,6 +183,20 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
} }
} }
private val listSettingsRequest =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode != RESULT_OK) return@registerForActivityResult
val data = result.data ?: return@registerForActivityResult
when (data.action) {
ACTION_DELETED ->
openFilter(BuiltInFilterExposer.getMyTasksFilter(resources))
ACTION_RELOAD ->
IntentCompat.getParcelableExtra(data, MainActivity.OPEN_FILTER, Filter::class.java)?.let {
openFilter(it)
}
}
}
private fun process(event: TaskListEvent) = when (event) { private fun process(event: TaskListEvent) = when (event) {
is TaskListEvent.TaskCreated -> is TaskListEvent.TaskCreated ->
onTaskCreated(event.uuid) onTaskCreated(event.uuid)
@ -374,7 +389,10 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
menu.findItem(R.id.menu_expand_subtasks).isVisible = false menu.findItem(R.id.menu_expand_subtasks).isVisible = false
} }
menu.findItem(R.id.menu_voice_add).isVisible = device.voiceInputAvailable() && filter.isWritable menu.findItem(R.id.menu_voice_add).isVisible = device.voiceInputAvailable() && filter.isWritable
search = binding.toolbar.menu.findItem(R.id.menu_search).setOnActionExpandListener(this) search = binding.toolbar.menu.findItem(R.id.menu_search).also {
it.setOnActionExpandListener(this)
it.setOnQueryTextListener(this)
}
menu.findItem(R.id.menu_clear_completed).isVisible = filter.isWritable menu.findItem(R.id.menu_clear_completed).isVisible = filter.isWritable
} }
@ -436,40 +454,44 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
true true
} }
R.id.menu_filter_settings -> { R.id.menu_filter_settings -> {
val filterSettings = Intent(activity, FilterSettingsActivity::class.java) listSettingsRequest.launch(
filterSettings.putExtra(FilterSettingsActivity.TOKEN_FILTER, filter) Intent(activity, FilterSettingsActivity::class.java)
startActivityForResult(filterSettings, REQUEST_LIST_SETTINGS) .putExtra(FilterSettingsActivity.TOKEN_FILTER, filter)
)
true true
} }
R.id.menu_caldav_list_fragment -> { R.id.menu_caldav_list_fragment -> {
val calendar = (filter as CaldavFilter).calendar val calendar = (filter as CaldavFilter).calendar
lifecycleScope.launch { lifecycleScope.launch {
val account = caldavDao.getAccountByUuid(calendar.account!!) val account = caldavDao.getAccountByUuid(calendar.account!!)
val caldavSettings = Intent(activity, account!!.listSettingsClass()) listSettingsRequest.launch(
.putExtra(BaseCaldavCalendarSettingsActivity.EXTRA_CALDAV_ACCOUNT, account) Intent(activity, account!!.listSettingsClass())
.putExtra(BaseCaldavCalendarSettingsActivity.EXTRA_CALDAV_CALENDAR, calendar) .putExtra(BaseCaldavCalendarSettingsActivity.EXTRA_CALDAV_ACCOUNT, account)
startActivityForResult(caldavSettings, REQUEST_LIST_SETTINGS) .putExtra(BaseCaldavCalendarSettingsActivity.EXTRA_CALDAV_CALENDAR, calendar)
)
} }
true true
} }
R.id.menu_location_settings -> { R.id.menu_location_settings -> {
val place = (filter as PlaceFilter).place val place = (filter as PlaceFilter).place
val intent = Intent(activity, PlaceSettingsActivity::class.java) listSettingsRequest.launch(
intent.putExtra(PlaceSettingsActivity.EXTRA_PLACE, place as Parcelable) Intent(activity, PlaceSettingsActivity::class.java)
startActivityForResult(intent, REQUEST_LIST_SETTINGS) .putExtra(PlaceSettingsActivity.EXTRA_PLACE, place as Parcelable)
)
true true
} }
R.id.menu_gtasks_list_settings -> { R.id.menu_gtasks_list_settings -> {
val gtasksSettings = Intent(activity, GoogleTaskListSettingsActivity::class.java) listSettingsRequest.launch(
gtasksSettings.putExtra( Intent(activity, GoogleTaskListSettingsActivity::class.java)
GoogleTaskListSettingsActivity.EXTRA_STORE_DATA, (filter as GtasksFilter).list) .putExtra(GoogleTaskListSettingsActivity.EXTRA_STORE_DATA, (filter as GtasksFilter).list)
startActivityForResult(gtasksSettings, REQUEST_LIST_SETTINGS) )
true true
} }
R.id.menu_tag_settings -> { R.id.menu_tag_settings -> {
val tagSettings = Intent(activity, TagSettingsActivity::class.java) listSettingsRequest.launch(
tagSettings.putExtra(TagSettingsActivity.EXTRA_TAG_DATA, (filter as TagFilter).tagData) Intent(activity, TagSettingsActivity::class.java)
startActivityForResult(tagSettings, REQUEST_LIST_SETTINGS) .putExtra(TagSettingsActivity.EXTRA_TAG_DATA, (filter as TagFilter).tagData)
)
true true
} }
R.id.menu_expand_subtasks -> { R.id.menu_expand_subtasks -> {
@ -594,14 +616,6 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
} }
} }
} }
REQUEST_LIST_SETTINGS -> if (resultCode == RESULT_OK) {
val action = data!!.action
if (ACTION_DELETED == action) {
openFilter(BuiltInFilterExposer.getMyTasksFilter(resources))
} else if (ACTION_RELOAD == action) {
openFilter(data.getParcelableExtra(MainActivity.OPEN_FILTER))
}
}
REQUEST_TAG_TASKS -> if (resultCode == RESULT_OK) { REQUEST_TAG_TASKS -> if (resultCode == RESULT_OK) {
lifecycleScope.launch { lifecycleScope.launch {
val modified = tagDataDao.applyTags( val modified = tagDataDao.applyTags(
@ -619,17 +633,12 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
} }
} }
override fun onContextItemSelected(item: MenuItem): Boolean {
return onOptionsItemSelected(item)
}
private fun onTaskListItemClicked(task: Task?) = lifecycleScope.launch { private fun onTaskListItemClicked(task: Task?) = lifecycleScope.launch {
callbacks.onTaskListItemClicked(task) callbacks.onTaskListItemClicked(task)
} }
override fun onMenuItemActionExpand(item: MenuItem): Boolean { override fun onMenuItemActionExpand(item: MenuItem): Boolean {
onBackPressed.isEnabled = true onBackPressed.isEnabled = true
search.setOnQueryTextListener(this)
listViewModel.setSearchQuery("") listViewModel.setSearchQuery("")
if (preferences.isTopAppBar) { if (preferences.isTopAppBar) {
binding.toolbar.menu.forEach { it.isVisible = false } binding.toolbar.menu.forEach { it.isVisible = false }
@ -639,8 +648,6 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
override fun onMenuItemActionCollapse(item: MenuItem): Boolean { override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
onBackPressed.isEnabled = false onBackPressed.isEnabled = false
search.setOnQueryTextListener(null)
listViewModel.setFilter(filter)
listViewModel.setSearchQuery(null) listViewModel.setSearchQuery(null)
if (preferences.isTopAppBar) { if (preferences.isTopAppBar) {
setupMenu(binding.toolbar) setupMenu(binding.toolbar)
@ -964,7 +971,6 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
private const val FRAG_TAG_REMOTE_LIST_PICKER = "frag_tag_remote_list_picker" private const val FRAG_TAG_REMOTE_LIST_PICKER = "frag_tag_remote_list_picker"
private const val FRAG_TAG_DATE_TIME_PICKER = "frag_tag_date_time_picker" private const val FRAG_TAG_DATE_TIME_PICKER = "frag_tag_date_time_picker"
private const val FRAG_TAG_PRIORITY_PICKER = "frag_tag_priority_picker" private const val FRAG_TAG_PRIORITY_PICKER = "frag_tag_priority_picker"
private const val REQUEST_LIST_SETTINGS = 10101
private const val REQUEST_TAG_TASKS = 10106 private const val REQUEST_TAG_TASKS = 10106
fun newTaskListFragment(context: Context, filter: Filter?): TaskListFragment { fun newTaskListFragment(context: Context, filter: Filter?): TaskListFragment {
val fragment = TaskListFragment() val fragment = TaskListFragment()

Loading…
Cancel
Save