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.java75
1 files changed, 47 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..146f9bd06 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
@@ -14,6 +14,8 @@ package app.fedilab.android.mastodon.activities;
* You should have received a copy of the GNU General Public License along with Fedilab; if not,
* see <http://www.gnu.org/licenses>. */
+import static app.fedilab.android.BaseMainActivity.currentAccount;
+
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
@@ -36,6 +38,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 +73,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, currentAccount, 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 +152,6 @@ public class ReportActivity extends BaseBarActivity {
});
}
-
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
@@ -222,21 +234,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, currentAccount, 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 +264,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, currentAccount, 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) {