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;
|
import io.github.sspanak.tt9.util.SystemSettings;
|
||||||
|
|
||||||
public class PreferencesActivity extends ActivityWithNavigation implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback {
|
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
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
getSettings();
|
getSettings();
|
||||||
|
|
@ -53,7 +71,9 @@ public class PreferencesActivity extends ActivityWithNavigation implements Prefe
|
||||||
validateFunctionKeys();
|
validateFunctionKeys();
|
||||||
|
|
||||||
super.onCreate(savedInstanceState);
|
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,
|
// changing the theme causes onCreate(), which displays the MainSettingsScreen,
|
||||||
// but leaves the old "back" history, which is no longer valid,
|
// 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
|
@Override
|
||||||
protected void selectOption(int position, boolean click) {
|
protected void selectOption(int position, boolean click) {
|
||||||
// for convenience, scroll to the bottom on 0-key click
|
// for convenience, scroll to the bottom on 0-key click
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ abstract public class BaseScreenFragment extends PreferenceFragmentCompat {
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
||||||
if (item.getItemId() == android.R.id.home && activity != null && !super.onOptionsItemSelected(item)) {
|
if (item.getItemId() == android.R.id.home && activity != null && !super.onOptionsItemSelected(item)) {
|
||||||
activity.onBackPressed();
|
activity.onBackPressedCallback.handleOnBackPressed();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ class ItemDemoMode extends ItemClickable {
|
||||||
@Override
|
@Override
|
||||||
protected boolean onClick(Preference p) {
|
protected boolean onClick(Preference p) {
|
||||||
activity.getSettings().setDemoMode(((SwitchPreferenceCompat) p).isChecked());
|
activity.getSettings().setDemoMode(((SwitchPreferenceCompat) p).isChecked());
|
||||||
activity.onBackPressed();
|
activity.onBackPressedCallback.handleOnBackPressed();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue