summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/app/fedilab/android/mastodon/activities/ReportActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/app/fedilab/android/mastodon/activities/ReportActivity.java')
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/activities/ReportActivity.java73
1 files changed, 45 insertions, 28 deletions
diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/ReportActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/ReportActivity.java
index fb718c08f..0f3c3e55b 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/activities/ReportActivity.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/activities/ReportActivity.java
@@ -36,6 +36,7 @@ import app.fedilab.android.databinding.ActivityReportBinding;
import app.fedilab.android.mastodon.client.entities.api.Account;
import app.fedilab.android.mastodon.client.entities.api.RelationShip;
import app.fedilab.android.mastodon.client.entities.api.Status;
+import app.fedilab.android.mastodon.client.entities.app.CachedBundle;
import app.fedilab.android.mastodon.client.entities.app.Timeline;
import app.fedilab.android.mastodon.helper.Helper;
import app.fedilab.android.mastodon.ui.drawer.RulesAdapter;
@@ -70,11 +71,21 @@ public class ReportActivity extends BaseBarActivity {
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
+ Bundle args = getIntent().getExtras();
+ if(args != null) {
+ long bundleId = args.getLong(Helper.ARG_INTENT_ID, -1);
+ if(bundleId != -1 ) {
+ new CachedBundle(ReportActivity.this).getBundle(bundleId, this::initializeAfterBundle);
+ } else {
+ initializeAfterBundle(args);
+ }
+ }
+ }
- Bundle b = getIntent().getExtras();
- if (b != null) {
- status = (Status) b.getSerializable(Helper.ARG_STATUS);
- account = (Account) b.getSerializable(Helper.ARG_ACCOUNT);
+ private void initializeAfterBundle(Bundle bundle) {
+ if (bundle != null) {
+ status = (Status) bundle.getSerializable(Helper.ARG_STATUS);
+ account = (Account) bundle.getSerializable(Helper.ARG_ACCOUNT);
}
if (account == null && status != null) {
account = status.account;
@@ -139,7 +150,6 @@ public class ReportActivity extends BaseBarActivity {
});
}
-
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
@@ -222,21 +232,25 @@ public class ReportActivity extends BaseBarActivity {
private void switchToSpam() {
fragment = new FragmentMastodonTimeline();
- Bundle bundle = new Bundle();
- bundle.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.ACCOUNT_TIMELINE);
- bundle.putSerializable(Helper.ARG_ACCOUNT, account);
+ Bundle args = new Bundle();
+ args.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.ACCOUNT_TIMELINE);
+ args.putSerializable(Helper.ARG_ACCOUNT, account);
//Set to display statuses with less options
- bundle.putBoolean(Helper.ARG_MINIFIED, true);
+ args.putBoolean(Helper.ARG_MINIFIED, true);
if (status != null) {
status.isChecked = true;
- bundle.putSerializable(Helper.ARG_STATUS_REPORT, status);
+ args.putSerializable(Helper.ARG_STATUS_REPORT, status);
}
- fragment.setArguments(bundle);
- FragmentManager fragmentManager = getSupportFragmentManager();
- FragmentTransaction fragmentTransaction =
- fragmentManager.beginTransaction();
- fragmentTransaction.replace(R.id.fram_spam_container, fragment);
- fragmentTransaction.commit();
+ new CachedBundle(ReportActivity.this).insertBundle(args, bundleId -> {
+ Bundle bundle = new Bundle();
+ bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
+ fragment.setArguments(bundle);
+ FragmentManager fragmentManager = getSupportFragmentManager();
+ FragmentTransaction fragmentTransaction =
+ fragmentManager.beginTransaction();
+ fragmentTransaction.replace(R.id.fram_spam_container, fragment);
+ fragmentTransaction.commit();
+ });
binding.actionButton.setText(R.string.next);
binding.actionButton.setOnClickListener(v -> {
@@ -248,22 +262,25 @@ public class ReportActivity extends BaseBarActivity {
private void switchToSomethingElse() {
fragment = new FragmentMastodonTimeline();
- Bundle bundle = new Bundle();
- bundle.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.ACCOUNT_TIMELINE);
- bundle.putSerializable(Helper.ARG_ACCOUNT, account);
+ Bundle args = new Bundle();
+ args.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.ACCOUNT_TIMELINE);
+ args.putSerializable(Helper.ARG_ACCOUNT, account);
//Set to display statuses with less options
- bundle.putBoolean(Helper.ARG_MINIFIED, true);
+ args.putBoolean(Helper.ARG_MINIFIED, true);
if (status != null) {
status.isChecked = true;
- bundle.putSerializable(Helper.ARG_STATUS_REPORT, status);
+ args.putSerializable(Helper.ARG_STATUS_REPORT, status);
}
- fragment.setArguments(bundle);
- FragmentManager fragmentManager = getSupportFragmentManager();
- FragmentTransaction fragmentTransaction =
- fragmentManager.beginTransaction();
- fragmentTransaction.replace(R.id.fram_se_container, fragment);
- fragmentTransaction.commit();
-
+ new CachedBundle(ReportActivity.this).insertBundle(args, bundleId -> {
+ Bundle bundle = new Bundle();
+ bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
+ fragment.setArguments(bundle);
+ FragmentManager fragmentManager = getSupportFragmentManager();
+ FragmentTransaction fragmentTransaction =
+ fragmentManager.beginTransaction();
+ fragmentTransaction.replace(R.id.fram_se_container, fragment);
+ fragmentTransaction.commit();
+ });
binding.actionButton.setText(R.string.next);
binding.actionButton.setOnClickListener(v -> {
if (category == null) {