Use getOnBackPressedDispatcher().addCallback in PostGalleryActivity.

This commit is contained in:
Docile-Alligator 2025-07-04 18:48:47 -04:00
parent 822b050020
commit 9dde00ce54

View File

@ -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);