Fix issue #241 - Don't force message to the character limit

This commit is contained in:
Thomas 2022-07-25 17:25:05 +02:00
parent 4a5d98bde7
commit 16ef4513c6
1 changed files with 16 additions and 11 deletions

View File

@ -30,6 +30,7 @@ import android.content.SharedPreferences;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.res.ColorStateList; import android.content.res.ColorStateList;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
@ -152,6 +153,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
int charCount = MastodonHelper.countLength(composeViewHolder); int charCount = MastodonHelper.countLength(composeViewHolder);
composeViewHolder.binding.characterCount.setText(String.valueOf(charCount)); composeViewHolder.binding.characterCount.setText(String.valueOf(charCount));
composeViewHolder.binding.characterProgress.setProgress(charCount); composeViewHolder.binding.characterProgress.setProgress(charCount);
} }
public static StatusDraft prepareDraft(List<Status> statusList, ComposeAdapter composeAdapter, String instance, String user_id) { public static StatusDraft prepareDraft(List<Status> statusList, ComposeAdapter composeAdapter, String instance, String user_id) {
@ -196,7 +198,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
if (statusDraft.mentions != null && (statusDraft.text == null || statusDraft.text.length() == 0) && statusDraft.mentions.size() > 0) { if (statusDraft.mentions != null && (statusDraft.text == null || statusDraft.text.length() == 0) && statusDraft.mentions.size() > 0) {
//Retrieves mentioned accounts + OP and adds them at the beginin of the toot //Retrieves mentioned accounts + OP and adds them at the beginin of the toot
final SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context); final SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
Mention inReplyToUser = null; Mention inReplyToUser;
inReplyToUser = statusDraft.mentions.get(0); inReplyToUser = statusDraft.mentions.get(0);
if (statusDraft.text == null) { if (statusDraft.text == null) {
statusDraft.text = ""; statusDraft.text = "";
@ -481,9 +483,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
} }
} }
holder.binding.sensitiveMedia.setOnCheckedChangeListener((buttonView, isChecked) -> { holder.binding.sensitiveMedia.setOnCheckedChangeListener((buttonView, isChecked) -> statusList.get(position).sensitive = isChecked);
statusList.get(position).sensitive = isChecked;
});
int mediaPosition = 0; int mediaPosition = 0;
for (Attachment attachment : attachmentList) { for (Attachment attachment : attachmentList) {
ComposeAttachmentItemBinding composeAttachmentItemBinding = ComposeAttachmentItemBinding.inflate(LayoutInflater.from(context), holder.binding.attachmentsList, false); ComposeAttachmentItemBinding composeAttachmentItemBinding = ComposeAttachmentItemBinding.inflate(LayoutInflater.from(context), holder.binding.attachmentsList, false);
@ -658,8 +658,8 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
*/ */
private void buttonState(ComposeViewHolder holder) { private void buttonState(ComposeViewHolder holder) {
if (BaseMainActivity.software == null || BaseMainActivity.software.toUpperCase().compareTo("MASTODON") == 0) { if (BaseMainActivity.software == null || BaseMainActivity.software.toUpperCase().compareTo("MASTODON") == 0) {
if (holder.getAdapterPosition() > 0) { if (holder.getBindingAdapterPosition() > 0) {
Status statusDraft = statusList.get(holder.getAdapterPosition()); Status statusDraft = statusList.get(holder.getBindingAdapterPosition());
if (statusDraft.poll == null) { if (statusDraft.poll == null) {
holder.binding.buttonAttachImage.setEnabled(true); holder.binding.buttonAttachImage.setEnabled(true);
holder.binding.buttonAttachVideo.setEnabled(true); holder.binding.buttonAttachVideo.setEnabled(true);
@ -729,7 +729,12 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
int currentLength = MastodonHelper.countLength(holder); int currentLength = MastodonHelper.countLength(holder);
//Copy/past //Copy/past
int max_car = MastodonHelper.getInstanceMaxChars(context); int max_car = MastodonHelper.getInstanceMaxChars(context);
if (currentLength > max_car + 1) { if (currentLength > max_car) {
holder.binding.characterCount.setTextColor(Color.RED);
} else {
holder.binding.characterCount.setTextColor(holder.binding.content.getTextColors());
}
/*if (currentLength > max_car + 1) {
int from = max_car - holder.binding.contentSpoiler.getText().length(); int from = max_car - holder.binding.contentSpoiler.getText().length();
int to = (currentLength - holder.binding.contentSpoiler.getText().length()); int to = (currentLength - holder.binding.contentSpoiler.getText().length());
if (to <= s.length()) { if (to <= s.length()) {
@ -739,13 +744,13 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
if (cPosition + 1 <= s.length()) { if (cPosition + 1 <= s.length()) {
holder.binding.content.setText(s.delete(cPosition, cPosition + 1)); holder.binding.content.setText(s.delete(cPosition, cPosition + 1));
} }
} }*/
statusList.get(holder.getAdapterPosition()).text = s.toString(); statusList.get(holder.getBindingAdapterPosition()).text = s.toString();
if (s.toString().trim().length() < 2) { if (s.toString().trim().length() < 2) {
buttonVisibility(holder); buttonVisibility(holder);
} }
//Update cursor position //Update cursor position
statusList.get(holder.getAdapterPosition()).cursorPosition = holder.binding.content.getSelectionStart(); statusList.get(holder.getBindingAdapterPosition()).cursorPosition = holder.binding.content.getSelectionStart();
if (autocomplete) { if (autocomplete) {
holder.binding.content.removeTextChangedListener(this); holder.binding.content.removeTextChangedListener(this);
Thread thread = new Thread() { Thread thread = new Thread() {
@ -1300,7 +1305,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
buttonVisibility(holder); buttonVisibility(holder);
holder.binding.contentSpoiler.setText(s.delete(cPosition, cPosition + 1)); holder.binding.contentSpoiler.setText(s.delete(cPosition, cPosition + 1));
} }
statusList.get(holder.getAdapterPosition()).spoiler_text = s.toString(); statusList.get(holder.getBindingAdapterPosition()).spoiler_text = s.toString();
if (s.toString().trim().length() < 2) { if (s.toString().trim().length() < 2) {
buttonVisibility(holder); buttonVisibility(holder);
} }