Skip to content

Commit 5c49940

Browse files
VougJo23Profpatsch
authored andcommitted
fix: support RTL usernames in comment header
1 parent 48e826e commit 5c49940

2 files changed

Lines changed: 11 additions & 4 deletions

File tree

app/src/main/java/org/schabi/newpipe/info_list/holder/CommentInfoItemHolder.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import androidx.annotation.NonNull;
1919
import androidx.fragment.app.FragmentActivity;
20+
import androidx.core.text.BidiFormatter;
2021

2122
import org.schabi.newpipe.R;
2223
import org.schabi.newpipe.extractor.InfoItem;
@@ -101,14 +102,16 @@ public void updateFromItem(final InfoItem infoItem,
101102
}
102103
itemThumbnailView.setOnClickListener(view -> openCommentAuthor(item));
103104

104-
105105
// setup the top row, with pinned icon, author name and comment date
106106
itemPinnedView.setVisibility(item.isPinned() ? View.VISIBLE : View.GONE);
107-
itemTitleView.setText(Localization.concatenateStrings(item.getUploaderName(),
108-
Localization.relativeTimeOrTextual(itemBuilder.getContext(), item.getUploadDate(),
107+
final String uploaderName = BidiFormatter.getInstance().unicodeWrap(item.getUploaderName());
108+
itemTitleView.setText(Localization.concatenateStrings(
109+
uploaderName,
110+
Localization.relativeTimeOrTextual(
111+
itemBuilder.getContext(),
112+
item.getUploadDate(),
109113
item.getTextualUploadDate())));
110114

111-
112115
// setup bottom row, with likes, heart and replies button
113116
itemLikesCountView.setText(
114117
Localization.likeCount(itemBuilder.getContext(), item.getLikeCount()));

app/src/main/java/org/schabi/newpipe/util/Localization.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import android.os.Build;
1212
import android.text.TextUtils;
1313
import android.text.format.DateUtils;
14+
import android.text.BidiFormatter;
1415
import android.util.DisplayMetrics;
1516
import android.util.Log;
1617

@@ -78,10 +79,13 @@ public static String concatenateStrings(final String... strings) {
7879
return concatenateStrings(DOT_SEPARATOR, Arrays.asList(strings));
7980
}
8081

82+
// Use of BidiFormater to fix text direction automatically
8183
@NonNull
8284
public static String concatenateStrings(final String delimiter, final List<String> strings) {
85+
final BidiFormatter bidi = BidiFormatter.getInstance();
8386
return strings.stream()
8487
.filter(string -> !TextUtils.isEmpty(string))
88+
.map((s) -> strings.indexOf(s) == 0 ? bidi.unicodeWrap(s) : s) // only wrap username
8589
.collect(Collectors.joining(delimiter));
8690
}
8791

0 commit comments

Comments
 (0)