Remove MainActivity.onBackPressed

pull/2536/head
Alex Baker 9 months ago
parent db66a66578
commit 84ab8d0517

@ -393,23 +393,6 @@ class MainActivity : AppCompatActivity(), TaskListFragmentCallbackHandler, Timer
newNavigationDrawer(filter).show(supportFragmentManager, FRAG_TAG_NAV_DRAWER)
}
override fun onBackPressed() {
taskEditFragment?.let {
if (preferences.backButtonSavesTask()) {
lifecycleScope.launch {
it.save()
}
} else {
it.discardButtonClick()
}
return@onBackPressed
}
if (taskListFragment?.collapseSearchView() == true) {
return
}
finish()
}
private val taskListFragment: TaskListFragment?
get() = supportFragmentManager.findFragmentByTag(FRAG_TAG_TASK_LIST) as TaskListFragment?

@ -17,6 +17,7 @@ import android.view.View
import android.view.ViewGroup
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
import androidx.activity.addCallback
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.content.res.AppCompatResources
import androidx.appcompat.widget.Toolbar
@ -141,6 +142,16 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
requireActivity().onBackPressedDispatcher.addCallback(owner = viewLifecycleOwner) {
if (preferences.backButtonSavesTask()) {
lifecycleScope.launch {
save()
}
} else {
discardButtonClick()
}
}
binding = FragmentTaskEditBinding.inflate(inflater)
val view: View = binding.root
val model = editViewModel.task
@ -385,7 +396,7 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener {
suspend fun save(remove: Boolean = true) = editViewModel.save(remove)
fun discardButtonClick() {
private fun discardButtonClick() {
if (editViewModel.hasChanges()) {
dialogBuilder
.newDialog(R.string.discard_confirmation)

@ -18,6 +18,7 @@ import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import androidx.activity.OnBackPressedCallback
import androidx.annotation.StringRes
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.view.ActionMode
@ -172,6 +173,11 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
lateinit var themeColor: ThemeColor
private lateinit var callbacks: TaskListFragmentCallbackHandler
private lateinit var binding: FragmentTaskListBinding
private val onBackPressed = object : OnBackPressedCallback(false) {
override fun handleOnBackPressed() {
search.collapseActionView()
}
}
private fun process(event: TaskListEvent) = when (event) {
is TaskListEvent.TaskCreated ->
@ -229,6 +235,12 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
.launchIn(viewLifecycleOwner.lifecycleScope)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requireActivity().onBackPressedDispatcher.addCallback(onBackPressed)
}
@OptIn(ExperimentalAnimationApi::class)
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
@ -571,11 +583,6 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
localBroadcastManager.unregisterReceiver(refreshReceiver)
}
fun collapseSearchView(): Boolean {
return (search.isActionViewExpanded
&& (search.collapseActionView() || !search.isActionViewExpanded))
}
private fun refresh() {
setSyncOngoing()
}
@ -658,6 +665,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
}
override fun onMenuItemActionExpand(item: MenuItem): Boolean {
onBackPressed.isEnabled = true
search.setOnQueryTextListener(this)
if (searchQuery == null) {
searchByQuery("")
@ -669,6 +677,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
}
override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
onBackPressed.isEnabled = false
search.setOnQueryTextListener(null)
listViewModel.setFilter(filter)
searchJob?.cancel()

Loading…
Cancel
Save