Commit f1ed397a authored by 0xd9a's avatar 0xd9a
Browse files

Fix: "Open the original message" can open wrong status (fix #1294)

parent 0152d325
Loading
Loading
Loading
Loading
+17 −12
Original line number Diff line number Diff line
@@ -172,18 +172,7 @@ public class MediaActivity extends BaseBarActivity implements OnDownloadInterfac
        String description = attachments.get(mediaPosition - 1).description;
        handler = new Handler();
        if (attachments.get(mediaPosition - 1).status != null) {
            binding.originalMessage.setOnClickListener(v -> {
                Intent intentContext = new Intent(MediaActivity.this, ContextActivity.class);
                Bundle args = new Bundle();
                args.putSerializable(Helper.ARG_STATUS, attachments.get(mediaPosition - 1).status);
                new CachedBundle(MediaActivity.this).insertBundle(args, Helper.getCurrentAccount(MediaActivity.this), bundleId -> {
                    Bundle bundleCached = new Bundle();
                    bundleCached.putLong(Helper.ARG_INTENT_ID, bundleId);
                    intentContext.putExtras(bundleCached);
                    intentContext.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(intentContext);
                });
            });
            binding.originalMessage.setOnClickListener(v -> openOriginalMessage(mediaPosition - 1));
        }

        binding.mediaDescription.setMovementMethod(LinkMovementMethod.getInstance());
@@ -239,6 +228,9 @@ public class MediaActivity extends BaseBarActivity implements OnDownloadInterfac
                    mediaPosition = 1;
                }
                String description = attachments.get(position).description;
                if (attachments.get(position).status != null) {
                    binding.originalMessage.setOnClickListener(v -> openOriginalMessage(position));
                }
                if (handler != null) {
                    handler.removeCallbacksAndMessages(null);
                }
@@ -292,6 +284,19 @@ public class MediaActivity extends BaseBarActivity implements OnDownloadInterfac
        setFullscreen(true);
    }

    private void openOriginalMessage(int position) {
        Intent intentContext = new Intent(MediaActivity.this, ContextActivity.class);
        Bundle args = new Bundle();
        args.putSerializable(Helper.ARG_STATUS, attachments.get(position).status);
        new CachedBundle(MediaActivity.this).insertBundle(args, Helper.getCurrentAccount(MediaActivity.this), bundleId -> {
            Bundle bundleCached = new Bundle();
            bundleCached.putLong(Helper.ARG_INTENT_ID, bundleId);
            intentContext.putExtras(bundleCached);
            intentContext.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intentContext);
        });
    }

    public String getStatusLanguageForTranslation() {
        return status != null ? status.language : "en";
    }