mirror of
https://codeberg.org/tom79/Fedilab.git
synced 2024-12-22 16:50:04 +02:00
Indicator with pronouns
This commit is contained in:
parent
773322b60a
commit
7ab24d900b
6 changed files with 82 additions and 8 deletions
|
@ -143,6 +143,8 @@ public class Status implements Serializable, Cloneable {
|
||||||
public transient MathJaxView mathJaxView;
|
public transient MathJaxView mathJaxView;
|
||||||
public String lemmy_post_id;
|
public String lemmy_post_id;
|
||||||
|
|
||||||
|
public transient String pronouns = null;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(@Nullable Object obj) {
|
public boolean equals(@Nullable Object obj) {
|
||||||
boolean same = false;
|
boolean same = false;
|
||||||
|
|
|
@ -113,6 +113,7 @@ 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.Attachment;
|
||||||
import app.fedilab.android.mastodon.client.entities.api.Emoji;
|
import app.fedilab.android.mastodon.client.entities.api.Emoji;
|
||||||
import app.fedilab.android.mastodon.client.entities.api.EmojiInstance;
|
import app.fedilab.android.mastodon.client.entities.api.EmojiInstance;
|
||||||
|
import app.fedilab.android.mastodon.client.entities.api.Field;
|
||||||
import app.fedilab.android.mastodon.client.entities.api.Mention;
|
import app.fedilab.android.mastodon.client.entities.api.Mention;
|
||||||
import app.fedilab.android.mastodon.client.entities.api.Poll;
|
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.Status;
|
||||||
|
@ -1358,6 +1359,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
|
||||||
if (getItemViewType(position) == TYPE_NORMAL) {
|
if (getItemViewType(position) == TYPE_NORMAL) {
|
||||||
Status status = statusList.get(position);
|
Status status = statusList.get(position);
|
||||||
StatusSimpleViewHolder holder = (StatusSimpleViewHolder) viewHolder;
|
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();
|
holder.binding.simpleMedia.removeAllViews();
|
||||||
List<Attachment> attachmentList = statusList.get(position).media_attachments;
|
List<Attachment> attachmentList = statusList.get(position).media_attachments;
|
||||||
|
@ -1421,13 +1423,30 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
|
||||||
|
|
||||||
} else if (getItemViewType(position) == TYPE_COMPOSE) {
|
} else if (getItemViewType(position) == TYPE_COMPOSE) {
|
||||||
Status statusDraft = statusList.get(position);
|
Status statusDraft = statusList.get(position);
|
||||||
|
if(position > 0 && getItemViewType(position -1 ) == TYPE_NORMAL) {
|
||||||
|
Status statusFromUser = statusList.get(position-1);
|
||||||
|
Account accountFromUser = statusFromUser.account;
|
||||||
|
statusFromUser.pronouns = null;
|
||||||
|
if(accountFromUser.fields != null && accountFromUser.fields.size() > 0) {
|
||||||
|
for(Field field: accountFromUser.fields) {
|
||||||
|
if(field.name.toLowerCase().startsWith("pronoun")) {
|
||||||
|
statusList.get(position).pronouns = field.value;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
ComposeViewHolder holder = (ComposeViewHolder) viewHolder;
|
ComposeViewHolder holder = (ComposeViewHolder) viewHolder;
|
||||||
boolean extraFeatures = sharedpreferences.getBoolean(context.getString(R.string.SET_EXTAND_EXTRA_FEATURES) + MainActivity.currentUserID + MainActivity.currentInstance, false);
|
boolean extraFeatures = sharedpreferences.getBoolean(context.getString(R.string.SET_EXTAND_EXTRA_FEATURES) + MainActivity.currentUserID + MainActivity.currentInstance, false);
|
||||||
boolean mathsComposer = sharedpreferences.getBoolean(context.getString(R.string.SET_MATHS_COMPOSER), true);
|
boolean mathsComposer = sharedpreferences.getBoolean(context.getString(R.string.SET_MATHS_COMPOSER), true);
|
||||||
boolean forwardTag = sharedpreferences.getBoolean(context.getString(R.string.SET_FORWARD_TAGS_IN_REPLY), false);
|
boolean forwardTag = sharedpreferences.getBoolean(context.getString(R.string.SET_FORWARD_TAGS_IN_REPLY), false);
|
||||||
|
|
||||||
|
if(statusDraft.pronouns != null) {
|
||||||
|
holder.binding.genders.setVisibility(View.VISIBLE);
|
||||||
|
holder.binding.pronouns.setText(statusDraft.pronouns);
|
||||||
|
} else {
|
||||||
|
holder.binding.genders.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
if (mathsComposer) {
|
if (mathsComposer) {
|
||||||
holder.binding.buttonMathsComposer.setVisibility(View.VISIBLE);
|
holder.binding.buttonMathsComposer.setVisibility(View.VISIBLE);
|
||||||
holder.binding.buttonMathsComposer.setOnClickListener(v -> {
|
holder.binding.buttonMathsComposer.setOnClickListener(v -> {
|
||||||
|
|
|
@ -58,7 +58,6 @@ import android.os.Looper;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
|
@ -148,6 +147,7 @@ import app.fedilab.android.mastodon.activities.StatusInfoActivity;
|
||||||
import app.fedilab.android.mastodon.activities.TimelineActivity;
|
import app.fedilab.android.mastodon.activities.TimelineActivity;
|
||||||
import app.fedilab.android.mastodon.activities.admin.AdminAccountActivity;
|
import app.fedilab.android.mastodon.activities.admin.AdminAccountActivity;
|
||||||
import app.fedilab.android.mastodon.client.entities.api.Attachment;
|
import app.fedilab.android.mastodon.client.entities.api.Attachment;
|
||||||
|
import app.fedilab.android.mastodon.client.entities.api.Field;
|
||||||
import app.fedilab.android.mastodon.client.entities.api.Poll;
|
import app.fedilab.android.mastodon.client.entities.api.Poll;
|
||||||
import app.fedilab.android.mastodon.client.entities.api.Reaction;
|
import app.fedilab.android.mastodon.client.entities.api.Reaction;
|
||||||
import app.fedilab.android.mastodon.client.entities.api.Status;
|
import app.fedilab.android.mastodon.client.entities.api.Status;
|
||||||
|
@ -482,7 +482,23 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
||||||
}
|
}
|
||||||
|
|
||||||
String loadMediaType = sharedpreferences.getString(context.getString(R.string.SET_LOAD_MEDIA_TYPE), "ALWAYS");
|
String loadMediaType = sharedpreferences.getString(context.getString(R.string.SET_LOAD_MEDIA_TYPE), "ALWAYS");
|
||||||
|
if(statusToDeal.pronouns == null && statusToDeal.account.fields != null && statusToDeal.account.fields.size() > 0) {
|
||||||
|
for(Field field: statusToDeal.account.fields) {
|
||||||
|
if(field.name.toLowerCase().startsWith("pronoun")) {
|
||||||
|
statusToDeal.pronouns = field.value;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(statusToDeal.pronouns == null) {
|
||||||
|
statusToDeal.pronouns = "none";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(statusToDeal.pronouns != null && !statusToDeal.pronouns.equalsIgnoreCase("none")) {
|
||||||
|
holder.binding.pronouns.setVisibility(View.VISIBLE);
|
||||||
|
holder.binding.pronouns.setText(statusToDeal.pronouns);
|
||||||
|
} else {
|
||||||
|
holder.binding.pronouns.setVisibility(View.INVISIBLE);
|
||||||
|
}
|
||||||
if (statusToDeal.quote != null && (statusToDeal.spoiler_text == null || statusToDeal.spoiler_text.trim().isEmpty() || statusToDeal.isExpended)) {
|
if (statusToDeal.quote != null && (statusToDeal.spoiler_text == null || statusToDeal.spoiler_text.trim().isEmpty() || statusToDeal.isExpended)) {
|
||||||
holder.binding.quotedMessage.cardviewContainer.setCardElevation((int) Helper.convertDpToPixel(5, context));
|
holder.binding.quotedMessage.cardviewContainer.setCardElevation((int) Helper.convertDpToPixel(5, context));
|
||||||
holder.binding.quotedMessage.dividerCard.setVisibility(View.GONE);
|
holder.binding.quotedMessage.dividerCard.setVisibility(View.GONE);
|
||||||
|
|
|
@ -163,13 +163,25 @@
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/display_name"
|
android:id="@+id/display_name"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="6dp"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:singleLine="true"
|
||||||
|
tools:text="@tools:sample/full_names" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/pronouns"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="6dp"
|
android:layout_marginStart="6dp"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
|
android:visibility="invisible"
|
||||||
|
tools:visibility="visible"
|
||||||
|
android:textColor="?colorPrimary"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
tools:text="@tools:sample/full_names" />
|
tools:text="He/Him" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:id="@+id/local_only"
|
android:id="@+id/local_only"
|
||||||
|
|
|
@ -42,8 +42,31 @@
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
</androidx.core.widget.NestedScrollView>
|
</androidx.core.widget.NestedScrollView>
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:id="@+id/genders"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/button_emoji"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/laTexView_container"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_marginStart="6dp"
|
||||||
|
>
|
||||||
|
<com.google.android.material.textview.MaterialTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/Pronouns"/>
|
||||||
|
<com.google.android.material.textview.MaterialTextView
|
||||||
|
android:layout_marginStart="10dp"
|
||||||
|
android:id="@+id/pronouns"
|
||||||
|
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
|
||||||
|
android:textColor="?colorPrimary"
|
||||||
|
tools:text="He/Him"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"/>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
<com.google.android.material.textfield.MaterialAutoCompleteTextView
|
<com.google.android.material.textfield.MaterialAutoCompleteTextView
|
||||||
android:id="@+id/content_spoiler"
|
android:id="@+id/content_spoiler"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
@ -57,7 +80,7 @@
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:layout_constraintEnd_toStartOf="@id/button_emoji"
|
app:layout_constraintEnd_toStartOf="@id/button_emoji"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/laTexView_container"
|
app:layout_constraintTop_toBottomOf="@+id/genders"
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
|
|
|
@ -638,6 +638,8 @@
|
||||||
<string name="followers_only">Followers only</string>
|
<string name="followers_only">Followers only</string>
|
||||||
<string name="other">Other</string>
|
<string name="other">Other</string>
|
||||||
<string name="eg_sensitive_content">Eg.: Sensitive Content</string>
|
<string name="eg_sensitive_content">Eg.: Sensitive Content</string>
|
||||||
|
<string name="Pronouns">Pronouns</string>
|
||||||
|
|
||||||
<string name="add_status">Add status</string>
|
<string name="add_status">Add status</string>
|
||||||
<string name="remove_status">Remove status</string>
|
<string name="remove_status">Remove status</string>
|
||||||
<string name="post_message">Posting message…</string>
|
<string name="post_message">Posting message…</string>
|
||||||
|
|
Loading…
Reference in a new issue