refactor: properly use OnBackPressedDispatcher
This commit is contained in:
parent
964059e0da
commit
7c9e563d96
2 changed files with 11 additions and 15 deletions
|
@ -13,6 +13,7 @@ import android.view.Menu
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import android.view.MenuItem.OnActionExpandListener
|
import android.view.MenuItem.OnActionExpandListener
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
|
import androidx.activity.addCallback
|
||||||
import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
|
import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
|
||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
import androidx.appcompat.widget.SearchView
|
import androidx.appcompat.widget.SearchView
|
||||||
|
@ -214,6 +215,9 @@ class PasswordStore : BaseGitActivity() {
|
||||||
override fun onStart() {
|
override fun onStart() {
|
||||||
super.onStart()
|
super.onStart()
|
||||||
refreshPasswordList()
|
refreshPasswordList()
|
||||||
|
onBackPressedDispatcher.addCallback {
|
||||||
|
isEnabled = getPasswordFragment()?.onBackPressedInActivity() == true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
|
@ -315,20 +319,12 @@ class PasswordStore : BaseGitActivity() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
R.id.refresh -> refreshPasswordList()
|
R.id.refresh -> refreshPasswordList()
|
||||||
android.R.id.home -> {
|
android.R.id.home -> onBackPressedDispatcher.onBackPressed()
|
||||||
@Suppress("DEPRECATION") onBackPressed()
|
|
||||||
}
|
|
||||||
else -> return super.onOptionsItemSelected(item)
|
else -> return super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated("Deprecated in Java")
|
|
||||||
@Suppress("DEPRECATION")
|
|
||||||
override fun onBackPressed() {
|
|
||||||
if (getPasswordFragment()?.onBackPressedInActivity() != true) super.onBackPressed()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun getPasswordFragment(): PasswordFragment? {
|
private fun getPasswordFragment(): PasswordFragment? {
|
||||||
return supportFragmentManager.findFragmentByTag(PASSWORD_FRAGMENT_TAG) as? PasswordFragment
|
return supportFragmentManager.findFragmentByTag(PASSWORD_FRAGMENT_TAG) as? PasswordFragment
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ package app.passwordstore.ui.settings
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
|
import androidx.activity.addCallback
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.os.BundleCompat
|
import androidx.core.os.BundleCompat
|
||||||
import app.passwordstore.R
|
import app.passwordstore.R
|
||||||
|
@ -95,6 +96,11 @@ class SettingsActivity : AppCompatActivity() {
|
||||||
binding.preferenceRecyclerView.adapter = adapter
|
binding.preferenceRecyclerView.adapter = adapter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onStart() {
|
||||||
|
super.onStart()
|
||||||
|
onBackPressedDispatcher.addCallback { isEnabled = !preferencesAdapter.goBack() }
|
||||||
|
}
|
||||||
|
|
||||||
override fun onSaveInstanceState(outState: Bundle) {
|
override fun onSaveInstanceState(outState: Bundle) {
|
||||||
super.onSaveInstanceState(outState)
|
super.onSaveInstanceState(outState)
|
||||||
outState.putParcelable("adapter", preferencesAdapter.getSavedState())
|
outState.putParcelable("adapter", preferencesAdapter.getSavedState())
|
||||||
|
@ -111,10 +117,4 @@ class SettingsActivity : AppCompatActivity() {
|
||||||
else -> super.onOptionsItemSelected(item)
|
else -> super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated("Deprecated in Java")
|
|
||||||
@Suppress("DEPRECATION")
|
|
||||||
override fun onBackPressed() {
|
|
||||||
if (!preferencesAdapter.goBack()) super.onBackPressed()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue