From 9dde00ce54e829d1064d2fccc161303670adc75f Mon Sep 17 00:00:00 2001 From: Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com> Date: Fri, 4 Jul 2025 18:48:47 -0400 Subject: [PATCH] Use getOnBackPressedDispatcher().addCallback in PostGalleryActivity. --- .../activities/PostGalleryActivity.java | 56 ++++++++----------- 1 file changed, 23 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostGalleryActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostGalleryActivity.java index 3ad7913f..6a74a9cb 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostGalleryActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostGalleryActivity.java @@ -11,7 +11,6 @@ import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Rect; import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.os.Handler; @@ -21,6 +20,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.FileProvider; @@ -55,12 +55,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.post.RedditGalleryPayload; -import ml.docilealligator.infinityforreddit.thing.SelectThingReturnKey; import ml.docilealligator.infinityforreddit.account.Account; import ml.docilealligator.infinityforreddit.adapters.MarkdownBottomBarRecyclerViewAdapter; import ml.docilealligator.infinityforreddit.adapters.RedditGallerySubmissionRecyclerViewAdapter; @@ -73,7 +70,10 @@ import ml.docilealligator.infinityforreddit.customviews.LinearLayoutManagerBugFi import ml.docilealligator.infinityforreddit.databinding.ActivityPostGalleryBinding; import ml.docilealligator.infinityforreddit.events.SubmitGalleryPostEvent; import ml.docilealligator.infinityforreddit.events.SwitchAccountEvent; +import ml.docilealligator.infinityforreddit.post.RedditGalleryPayload; import ml.docilealligator.infinityforreddit.services.SubmitPostService; +import ml.docilealligator.infinityforreddit.subreddit.Flair; +import ml.docilealligator.infinityforreddit.thing.SelectThingReturnKey; import ml.docilealligator.infinityforreddit.utils.JSONUtils; import ml.docilealligator.infinityforreddit.utils.UploadImageUtils; import ml.docilealligator.infinityforreddit.utils.Utils; @@ -399,6 +399,24 @@ public class PostGalleryActivity extends BaseActivity implements FlairBottomShee binding.markdownBottomBarRecyclerViewPostGalleryActivity.setLayoutManager(new LinearLayoutManagerBugFixed(this, LinearLayoutManager.HORIZONTAL, true).setStackFromEndAndReturnCurrentObject()); binding.markdownBottomBarRecyclerViewPostGalleryActivity.setAdapter(adapter); + + 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 { + redditGalleryImageInfoList = PostGalleryActivity.this.adapter.getRedditGalleryImageInfoList(); + if (!binding.postTitleEditTextPostGalleryActivity.getText().toString().isEmpty() + || !binding.postContentEditTextPostGalleryActivity.getText().toString().isEmpty() + || redditGalleryImageInfoList != null) { + promptAlertDialog(R.string.discard, R.string.discard_detail); + } else { + finish(); + } + } + } + }); } private void loadCurrentAccount() { @@ -576,19 +594,7 @@ public class PostGalleryActivity extends BaseActivity implements FlairBottomShee 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 { - redditGalleryImageInfoList = adapter.getRedditGalleryImageInfoList(); - if (!binding.postTitleEditTextPostGalleryActivity.getText().toString().isEmpty() - || !binding.postContentEditTextPostGalleryActivity.getText().toString().isEmpty() - || redditGalleryImageInfoList != null) { - promptAlertDialog(R.string.discard, R.string.discard_detail); - return true; - } - } - finish(); + triggerBackPress(); return true; } else if (itemId == R.id.action_send_post_gallery_activity) { if (!subredditSelected) { @@ -667,22 +673,6 @@ public class PostGalleryActivity extends BaseActivity implements FlairBottomShee return false; } - @Override - public void onBackPressed() { - if (isPosting) { - promptAlertDialog(R.string.exit_when_submit, R.string.exit_when_submit_post_detail); - } else { - redditGalleryImageInfoList = adapter.getRedditGalleryImageInfoList(); - if (!binding.postTitleEditTextPostGalleryActivity.getText().toString().isEmpty() - || !binding.postContentEditTextPostGalleryActivity.getText().toString().isEmpty() - || redditGalleryImageInfoList != null) { - promptAlertDialog(R.string.discard, R.string.discard_detail); - } else { - finish(); - } - } - } - @Override protected void onSaveInstanceState(@NonNull Bundle outState) { super.onSaveInstanceState(outState);