diff options
Diffstat (limited to 'app/src/main/java/app/fedilab/android/mastodon/activities/MastodonListActivity.java')
-rw-r--r-- | app/src/main/java/app/fedilab/android/mastodon/activities/MastodonListActivity.java | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/MastodonListActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/MastodonListActivity.java index 4b2fa6cc9..5d9f3ac94 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/activities/MastodonListActivity.java +++ b/app/src/main/java/app/fedilab/android/mastodon/activities/MastodonListActivity.java @@ -15,6 +15,7 @@ package app.fedilab.android.mastodon.activities; * see <http://www.gnu.org/licenses>. */ +import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.text.Editable; @@ -25,6 +26,7 @@ import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; +import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.FragmentManager; @@ -39,6 +41,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Objects; import app.fedilab.android.BaseMainActivity; import app.fedilab.android.BuildConfig; @@ -127,6 +130,22 @@ public class MastodonListActivity extends BaseBarActivity implements MastodonLis } }); }); + + getOnBackPressedDispatcher().addCallback(new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + if (canGoBack) { + canGoBack = false; + ThemeHelper.slideViewsToRight(binding.fragmentContainer, binding.recyclerView, () -> { + if (fragmentMastodonTimeline != null) { + fragmentMastodonTimeline.onDestroyView(); + } + }); + setTitle(R.string.action_lists); + invalidateOptionsMenu(); + } + } + }); } @@ -142,10 +161,11 @@ public class MastodonListActivity extends BaseBarActivity implements MastodonLis invalidateOptionsMenu(); } + @SuppressLint("ClickableViewAccessibility") @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { - onBackPressed(); + getOnBackPressedDispatcher().onBackPressed(); return true; } else if (item.getItemId() == R.id.action_user_mute_home) { AlertDialog.Builder dialogBuilder = new MaterialAlertDialogBuilder(MastodonListActivity.this); @@ -344,7 +364,7 @@ public class MastodonListActivity extends BaseBarActivity implements MastodonLis dialogBuilder.setView(popupAddListBinding.getRoot()); popupAddListBinding.addList.setFilters(new InputFilter[]{new InputFilter.LengthFilter(255)}); popupAddListBinding.addList.setText(mastodonList.title); - popupAddListBinding.addList.setSelection(popupAddListBinding.addList.getText().length()); + popupAddListBinding.addList.setSelection(Objects.requireNonNull(popupAddListBinding.addList.getText()).length()); dialogBuilder.setPositiveButton(R.string.validate, (dialog, id) -> { if (popupAddListBinding.addList.getText() != null && popupAddListBinding.addList.getText().toString().trim().length() > 0) { timelinesVM.updateList( @@ -459,20 +479,4 @@ public class MastodonListActivity extends BaseBarActivity implements MastodonLis } return true; } - - @Override - public void onBackPressed() { - if (canGoBack) { - canGoBack = false; - ThemeHelper.slideViewsToRight(binding.fragmentContainer, binding.recyclerView, () -> { - if (fragmentMastodonTimeline != null) { - fragmentMastodonTimeline.onDestroyView(); - } - }); - setTitle(R.string.action_lists); - invalidateOptionsMenu(); - } else { - super.onBackPressed(); - } - } } |