From 4724c922e734ebfff9e94bc2a0ff4a369277ec4d Mon Sep 17 00:00:00 2001 From: Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com> Date: Fri, 4 Jul 2025 19:04:08 -0400 Subject: [PATCH] Use getOnBackPressedDispatcher().addCallback in SubmitCrosspostActivity. --- .../activities/SubmitCrosspostActivity.java | 46 ++++++++----------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SubmitCrosspostActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SubmitCrosspostActivity.java index 140401ad..f9ecc08f 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SubmitCrosspostActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SubmitCrosspostActivity.java @@ -10,7 +10,6 @@ import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; -import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.PersistableBundle; @@ -18,6 +17,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; +import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; @@ -45,11 +45,9 @@ import javax.inject.Inject; import javax.inject.Named; import jp.wasabeef.glide.transformations.RoundedCornersTransformation; -import ml.docilealligator.infinityforreddit.subreddit.Flair; import ml.docilealligator.infinityforreddit.Infinity; import ml.docilealligator.infinityforreddit.R; import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase; -import ml.docilealligator.infinityforreddit.thing.SelectThingReturnKey; import ml.docilealligator.infinityforreddit.account.Account; import ml.docilealligator.infinityforreddit.asynctasks.LoadSubredditIcon; import ml.docilealligator.infinityforreddit.bottomsheetfragments.AccountChooserBottomSheetFragment; @@ -60,6 +58,8 @@ import ml.docilealligator.infinityforreddit.events.SubmitCrosspostEvent; import ml.docilealligator.infinityforreddit.events.SwitchAccountEvent; import ml.docilealligator.infinityforreddit.post.Post; import ml.docilealligator.infinityforreddit.services.SubmitPostService; +import ml.docilealligator.infinityforreddit.subreddit.Flair; +import ml.docilealligator.infinityforreddit.thing.SelectThingReturnKey; import ml.docilealligator.infinityforreddit.utils.APIUtils; import retrofit2.Retrofit; @@ -370,6 +370,22 @@ public class SubmitCrosspostActivity extends BaseActivity implements FlairBottom binding.receivePostReplyNotificationsLinearLayoutSubmitCrosspostActivity.setOnClickListener(view -> { binding.receivePostReplyNotificationsSwitchMaterialSubmitCrosspostActivity.performClick(); }); + + getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + if (isPosting) { + promptAlertDialog(R.string.exit_when_submit, R.string.exit_when_submit_post_detail); + } else { + if (!binding.postTitleEditTextSubmitCrosspostActivity.getText().toString().equals("")) { + promptAlertDialog(R.string.discard, R.string.discard_detail); + } else { + setEnabled(false); + triggerBackPress(); + } + } + } + }); } private void loadCurrentAccount() { @@ -511,16 +527,7 @@ public class SubmitCrosspostActivity extends BaseActivity implements FlairBottom public boolean onOptionsItemSelected(@NonNull MenuItem item) { int itemId = item.getItemId(); if (itemId == android.R.id.home) { - if (isPosting) { - promptAlertDialog(R.string.exit_when_submit, R.string.exit_when_submit_post_detail); - return true; - } else { - if (!binding.postTitleEditTextSubmitCrosspostActivity.getText().toString().equals("")) { - promptAlertDialog(R.string.discard, R.string.discard_detail); - return true; - } - } - finish(); + triggerBackPress(); return true; } else if (itemId == R.id.action_send_submit_crosspost_activity) { if (!subredditSelected) { @@ -596,19 +603,6 @@ public class SubmitCrosspostActivity extends BaseActivity implements FlairBottom return false; } - @Override - public void onBackPressed() { - if (isPosting) { - promptAlertDialog(R.string.exit_when_submit, R.string.exit_when_submit_post_detail); - } else { - if (!binding.postTitleEditTextSubmitCrosspostActivity.getText().toString().equals("")) { - promptAlertDialog(R.string.discard, R.string.discard_detail); - } else { - finish(); - } - } - } - @Override protected void onSaveInstanceState(@NonNull Bundle outState) { super.onSaveInstanceState(outState);