removed 2 more Activity.onBackPressed() calls
This commit is contained in:
parent
12b9f9f75a
commit
c2e2971395
3 changed files with 23 additions and 26 deletions
|
|
@ -39,6 +39,24 @@ import io.github.sspanak.tt9.util.Logger;
|
|||
import io.github.sspanak.tt9.util.SystemSettings;
|
||||
|
||||
public class PreferencesActivity extends ActivityWithNavigation implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback {
|
||||
/**
|
||||
* onBackPressed() is deprecated, so calling the onBackPressed() on the Fragments is now more complicated.
|
||||
*/
|
||||
@NonNull public OnBackPressedCallback onBackPressedCallback = new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
Fragment previousFragment = getSupportFragmentManager().findFragmentById(R.id.preferences_container);
|
||||
if (previousFragment instanceof BaseScreenFragment) {
|
||||
((BaseScreenFragment) previousFragment).onBackPressed();
|
||||
}
|
||||
|
||||
setEnabled(false);
|
||||
getOnBackPressedDispatcher().onBackPressed();
|
||||
setEnabled(true);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
getSettings();
|
||||
|
|
@ -53,7 +71,9 @@ public class PreferencesActivity extends ActivityWithNavigation implements Prefe
|
|||
validateFunctionKeys();
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
setOnBackPressed();
|
||||
|
||||
// On API >= 33, this requires android:enableOnBackInvokedCallback="true" in the manifest
|
||||
getOnBackPressedDispatcher().addCallback(this, onBackPressedCallback);
|
||||
|
||||
// changing the theme causes onCreate(), which displays the MainSettingsScreen,
|
||||
// but leaves the old "back" history, which is no longer valid,
|
||||
|
|
@ -100,29 +120,6 @@ public class PreferencesActivity extends ActivityWithNavigation implements Prefe
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* onBackPressed() is deprecated, so calling the onBackPressed() on the Fragments is now more complicated.
|
||||
*/
|
||||
private void setOnBackPressed() {
|
||||
OnBackPressedCallback onBackPressedCallback = new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
Fragment previousFragment = getSupportFragmentManager().findFragmentById(R.id.preferences_container);
|
||||
if (previousFragment instanceof BaseScreenFragment) {
|
||||
((BaseScreenFragment) previousFragment).onBackPressed();
|
||||
}
|
||||
|
||||
setEnabled(false);
|
||||
getOnBackPressedDispatcher().onBackPressed();
|
||||
setEnabled(true);
|
||||
}
|
||||
};
|
||||
|
||||
// On API >= 33, this requires android:enableOnBackInvokedCallback="true" in the manifest
|
||||
getOnBackPressedDispatcher().addCallback(this, onBackPressedCallback);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void selectOption(int position, boolean click) {
|
||||
// for convenience, scroll to the bottom on 0-key click
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ abstract public class BaseScreenFragment extends PreferenceFragmentCompat {
|
|||
@Override
|
||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
||||
if (item.getItemId() == android.R.id.home && activity != null && !super.onOptionsItemSelected(item)) {
|
||||
activity.onBackPressed();
|
||||
activity.onBackPressedCallback.handleOnBackPressed();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ class ItemDemoMode extends ItemClickable {
|
|||
@Override
|
||||
protected boolean onClick(Preference p) {
|
||||
activity.getSettings().setDemoMode(((SwitchPreferenceCompat) p).isChecked());
|
||||
activity.onBackPressed();
|
||||
activity.onBackPressedCallback.handleOnBackPressed();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue