diff options
Diffstat (limited to 'app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java')
-rw-r--r-- | app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java | 54 |
1 files changed, 32 insertions, 22 deletions
diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java index 97bd72f23..38fd8a43f 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java @@ -51,7 +51,6 @@ import android.view.inputmethod.InputMethodManager; import android.webkit.URLUtil; import android.widget.ArrayAdapter; import android.widget.Button; -import android.widget.GridView; import android.widget.LinearLayout; import android.widget.TextView; @@ -110,7 +109,6 @@ import app.fedilab.android.databinding.DrawerStatusComposeBinding; import app.fedilab.android.databinding.DrawerStatusSimpleBinding; import app.fedilab.android.mastodon.activities.ComposeActivity; import app.fedilab.android.mastodon.activities.MediaActivity; -import app.fedilab.android.mastodon.activities.SearchResultTabActivity; import app.fedilab.android.mastodon.client.entities.api.Account; import app.fedilab.android.mastodon.client.entities.api.Attachment; import app.fedilab.android.mastodon.client.entities.api.Emoji; @@ -120,6 +118,7 @@ import app.fedilab.android.mastodon.client.entities.api.Poll; import app.fedilab.android.mastodon.client.entities.api.Status; import app.fedilab.android.mastodon.client.entities.api.Tag; import app.fedilab.android.mastodon.client.entities.app.BaseAccount; +import app.fedilab.android.mastodon.client.entities.app.CachedBundle; import app.fedilab.android.mastodon.client.entities.app.CamelTag; import app.fedilab.android.mastodon.client.entities.app.Languages; import app.fedilab.android.mastodon.client.entities.app.Quotes; @@ -549,7 +548,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context); String defaultFormat = sharedpreferences.getString(context.getString(R.string.SET_THREAD_MESSAGE), context.getString(R.string.DEFAULT_THREAD_VALUE)); //User asked to be prompted for threading long messages - if(defaultFormat.compareToIgnoreCase("ASK") == 0 && !splitChoiceDone) { + if (defaultFormat.compareToIgnoreCase("ASK") == 0 && !splitChoiceDone) { splitChoiceDone = true; AlertDialog.Builder threadConfirm = new MaterialAlertDialogBuilder(context); threadConfirm.setTitle(context.getString(R.string.thread_long_this_message)); @@ -561,29 +560,29 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder holder.binding.content.setText(splitText.get(0)); int statusListSize = statusList.size(); int i = 0; - for(String message: splitText) { - if(i==0) { + for (String message : splitText) { + if (i == 0) { i++; continue; } - manageDrafts.onItemDraftAdded(statusListSize+(i-1), message); + manageDrafts.onItemDraftAdded(statusListSize + (i - 1), message); buttonVisibility(holder); i++; } dialog.dismiss(); }); threadConfirm.show(); - } else if(defaultFormat.compareToIgnoreCase("ENABLE") == 0) { //User wants to automatically thread long messages + } else if (defaultFormat.compareToIgnoreCase("ENABLE") == 0) { //User wants to automatically thread long messages proceedToSplit = true; ArrayList<String> splitText = ComposeHelper.splitToots(s.toString(), max_car); int statusListSize = statusList.size(); int i = 0; - for(String message: splitText) { - if(i==0) { + for (String message : splitText) { + if (i == 0) { i++; continue; } - manageDrafts.onItemDraftAdded(statusListSize+(i-1), message); + manageDrafts.onItemDraftAdded(statusListSize + (i - 1), message); buttonVisibility(holder); i++; } @@ -594,7 +593,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder @Override public void afterTextChanged(Editable s) { String contentString = s.toString(); - if(proceedToSplit) { + if (proceedToSplit) { int max_car = MastodonHelper.getInstanceMaxChars(context); ArrayList<String> splitText = ComposeHelper.splitToots(contentString, max_car); contentString = splitText.get(0); @@ -891,6 +890,13 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder Tag tag = new Tag(); tag.name = camelTag; if (!results.hashtags.contains(tag)) { + + for(Tag realTag: results.hashtags) { + if(realTag.name.equalsIgnoreCase(camelTag)) { + tag.history = realTag.history; + break; + } + } results.hashtags.add(0, tag); } } @@ -1352,30 +1358,34 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder if (getItemViewType(position) == TYPE_NORMAL) { Status status = statusList.get(position); StatusSimpleViewHolder holder = (StatusSimpleViewHolder) viewHolder; - if(status.media_attachments != null && status.media_attachments.size() > 0 ) { + if (status.media_attachments != null && status.media_attachments.size() > 0) { holder.binding.simpleMedia.removeAllViews(); List<Attachment> attachmentList = statusList.get(position).media_attachments; - for(Attachment attachment: attachmentList) { + for (Attachment attachment : attachmentList) { DrawerMediaListBinding drawerMediaListBinding = DrawerMediaListBinding.inflate(LayoutInflater.from(context), holder.binding.simpleMedia, false); Glide.with(drawerMediaListBinding.media.getContext()) .load(attachment.preview_url) .into(drawerMediaListBinding.media); - if(attachment.filename != null) { + if (attachment.filename != null) { drawerMediaListBinding.mediaName.setText(attachment.filename); - } else if (attachment.preview_url != null){ + } else if (attachment.preview_url != null) { drawerMediaListBinding.mediaName.setText(URLUtil.guessFileName(attachment.preview_url, null, null)); } - drawerMediaListBinding.getRoot().setOnClickListener(v->{ + drawerMediaListBinding.getRoot().setOnClickListener(v -> { Intent mediaIntent = new Intent(context, MediaActivity.class); - Bundle b = new Bundle(); + Bundle args = new Bundle(); ArrayList<Attachment> attachments = new ArrayList<>(); attachments.add(attachment); - b.putSerializable(Helper.ARG_MEDIA_ARRAY, attachments); - mediaIntent.putExtras(b); - ActivityOptionsCompat options = ActivityOptionsCompat - .makeSceneTransitionAnimation((Activity) context, drawerMediaListBinding.media, attachment.url); - context.startActivity(mediaIntent, options.toBundle()); + args.putSerializable(Helper.ARG_MEDIA_ARRAY, attachments); + new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> { + Bundle bundle = new Bundle(); + bundle.putLong(Helper.ARG_INTENT_ID, bundleId); + mediaIntent.putExtras(bundle); + ActivityOptionsCompat options = ActivityOptionsCompat + .makeSceneTransitionAnimation((Activity) context, drawerMediaListBinding.media, attachment.url); + context.startActivity(mediaIntent, options.toBundle()); + }); }); holder.binding.simpleMedia.addView(drawerMediaListBinding.getRoot()); |