implement local-only posting

This commit is contained in:
sk
2023-01-24 16:04:17 +01:00
parent cf61626901
commit 2358d3c602
10 changed files with 136 additions and 38 deletions

View File

@@ -319,17 +319,8 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
}
itemView.setPadding(itemView.getPaddingLeft(), itemView.getPaddingTop(), itemView.getPaddingRight(), item.needBottomPadding ? V.dp(16) : 0);
if(TextUtils.isEmpty(item.extraText)){
List<String> extraParts = new ArrayList<>();
if (item.status != null && item.status.localOnly)
extraParts.add(item.parentFragment.getString(R.string.sk_inline_local_only));
if (item.status != null && item.status.visibility.equals(StatusPrivacy.DIRECT))
extraParts.add(item.parentFragment.getString(R.string.sk_inline_direct));
if (!extraParts.isEmpty()) {
String sep = item.parentFragment.getString(R.string.sk_separator);
extraText.setText(String.join(" " + sep + " ", extraParts));
extraText.setVisibility(View.VISIBLE);
} else {
extraText.setVisibility(View.GONE);
if (item.status != null) {
UiUtils.setExtraTextInfo(item.parentFragment.getContext(), extraText, item.status.visibility, item.status.localOnly);
}
}else{
extraText.setVisibility(View.VISIBLE);

View File

@@ -73,13 +73,11 @@ import org.joinmastodon.android.events.StatusDeletedEvent;
import org.joinmastodon.android.events.StatusUnpinnedEvent;
import org.joinmastodon.android.fragments.ComposeFragment;
import org.joinmastodon.android.fragments.HashtagTimelineFragment;
import org.joinmastodon.android.fragments.ListTimelineFragment;
import org.joinmastodon.android.fragments.ProfileFragment;
import org.joinmastodon.android.fragments.ThreadFragment;
import org.joinmastodon.android.model.Account;
import org.joinmastodon.android.model.Emoji;
import org.joinmastodon.android.model.Instance;
import org.joinmastodon.android.model.ListTimeline;
import org.joinmastodon.android.model.Notification;
import org.joinmastodon.android.model.Relationship;
import org.joinmastodon.android.model.ScheduledStatus;
@@ -99,6 +97,7 @@ import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -912,6 +911,22 @@ public class UiUtils{
return back;
}
public static boolean setExtraTextInfo(Context ctx, TextView extraText, StatusPrivacy visibility, boolean localOnly) {
List<String> extraParts = new ArrayList<>();
if (localOnly) extraParts.add(ctx.getString(R.string.sk_inline_local_only));
if (visibility != null &&visibility.equals(StatusPrivacy.DIRECT))
extraParts.add(ctx.getString(R.string.sk_inline_direct));
if (!extraParts.isEmpty()) {
String sep = ctx.getString(R.string.sk_separator);
extraText.setText(String.join(" " + sep + " ", extraParts));
extraText.setVisibility(View.VISIBLE);
return true;
} else {
extraText.setVisibility(View.GONE);
return false;
}
}
@FunctionalInterface
public interface InteractionPerformer {
void interact(StatusInteractionController ic, Status status, Consumer<Status> resultConsumer);