Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@ Open Source Libraries
* [android-gif-drawable](https://github.com/koral--/android-gif-drawable)
* [AndroidSVG](https://github.com/BigBadaboom/androidsvg)
* [AndroidX](https://github.com/androidx/androidx)
* [emoji-java](https://github.com/vdurmont/emoji-java)
* [GitHubSdk](https://github.com/maniac103/GitHubSdk)
* [HoloColorPicker](https://github.com/LarsWerkman/HoloColorPicker)
* [JEmoji](https://github.com/felldo/JEmoji)
* [MarkdownEdit](https://github.com/Tunous/MarkdownEdit)
* [Material Design Icons](https://github.com/google/material-design-icons)
* [PrettyTime](https://github.com/ocpsoft/prettytime)
Expand Down
4 changes: 1 addition & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,7 @@ dependencies {
implementation 'com.github.castorflex.smoothprogressbar:library:1.3.0'
implementation 'org.ccil.cowan.tagsoup:tagsoup:1.2.1'
implementation 'com.github.pluscubed:recycler-fast-scroll:3de76812553a77bfd25d3aea0a0af4d96516c3e3@aar'
implementation('com.vdurmont:emoji-java:5.1.1') {
exclude group: 'org.json', module : 'json'
}
implementation 'net.fellbaum:jemoji:1.7.0'
implementation 'com.github.Tunous:MarkdownEdit:1.0.0'
implementation 'com.github.qoqa:traceur:2.2.12'
testImplementation 'junit:junit:4.13.2'
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/gh4a/activities/IssueEditActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@

import com.gh4a.adapter.ItemsWithDescriptionAdapter;
import com.gh4a.utils.ActivityResultHelpers;
import com.gh4a.utils.StringUtils;
import com.google.android.material.appbar.AppBarLayout;

import androidx.appcompat.view.ContextThemeWrapper;
Expand Down Expand Up @@ -75,7 +76,6 @@
import com.meisolsson.githubsdk.service.issues.IssueService;
import com.meisolsson.githubsdk.service.repositories.RepositoryCollaboratorService;
import com.meisolsson.githubsdk.service.repositories.RepositoryContentService;
import com.vdurmont.emoji.EmojiParser;

import java.net.HttpURLConnection;
import java.util.ArrayList;
Expand Down Expand Up @@ -991,7 +991,7 @@ public Dialog onCreateDialog(Bundle savedInstanceState) {
viewColor.setBackgroundColor(ApiHelpers.colorForLabel(label));

final TextView tvLabel = rowView.findViewById(R.id.tv_title);
tvLabel.setText(EmojiParser.parseToUnicode(label.name()));
tvLabel.setText(StringUtils.replaceEmojiAliases(label.name()));
tvLabel.setOnClickListener(clickListener);
tvLabel.setTag(label);

Expand Down
3 changes: 1 addition & 2 deletions app/src/main/java/com/gh4a/adapter/CommitAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
import com.meisolsson.githubsdk.model.Commit;
import com.meisolsson.githubsdk.model.User;
import com.meisolsson.githubsdk.model.git.GitUser;
import com.vdurmont.emoji.EmojiParser;

public class CommitAdapter extends RootAdapter<Commit, CommitAdapter.ViewHolder> {
public CommitAdapter(Context context) {
Expand Down Expand Up @@ -67,7 +66,7 @@ public void onBindViewHolder(ViewHolder holder, Commit commit) {
if (pos > 0) {
message = message.substring(0, pos);
}
message = EmojiParser.parseToUnicode(message);
message = StringUtils.replaceEmojiAliases(message);

holder.tvDesc.setText(message);
holder.tvSha.setText(commit.sha().substring(0, 10));
Expand Down
12 changes: 6 additions & 6 deletions app/src/main/java/com/gh4a/adapter/EventAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@
import com.meisolsson.githubsdk.model.payload.PushPayload;
import com.meisolsson.githubsdk.model.payload.ReleasePayload;
import com.meisolsson.githubsdk.model.payload.TeamAddPayload;
import com.vdurmont.emoji.EmojiParser;

import java.util.List;

Expand Down Expand Up @@ -138,7 +137,7 @@ private CharSequence formatDescription(GitHubEvent event) {
CommitCommentPayload payload = (CommitCommentPayload) event.payload();
GitComment comment = payload.comment();
if (comment != null) {
return EmojiParser.parseToUnicode(comment.body());
return StringUtils.replaceEmojiAliases(comment.body());
}
break;
}
Expand Down Expand Up @@ -186,7 +185,7 @@ private CharSequence formatDescription(GitHubEvent event) {
case IssueCommentEvent: {
IssueCommentPayload payload = (IssueCommentPayload) event.payload();
if (payload != null && payload.comment() != null) {
return EmojiParser.parseToUnicode(payload.comment().body());
return StringUtils.replaceEmojiAliases(payload.comment().body());
}
break;
}
Expand Down Expand Up @@ -216,7 +215,7 @@ private CharSequence formatDescription(GitHubEvent event) {
Review review = payload.review();
String body = review.body();
if (body != null) {
return EmojiParser.parseToUnicode(review.body());
return StringUtils.replaceEmojiAliases(review.body());
}
break;
}
Expand All @@ -225,7 +224,7 @@ private CharSequence formatDescription(GitHubEvent event) {
(PullRequestReviewCommentPayload) event.payload();
ReviewComment comment = payload.comment();
if (comment != null) {
return EmojiParser.parseToUnicode(comment.body());
return StringUtils.replaceEmojiAliases(comment.body());
}
break;
}
Expand Down Expand Up @@ -258,7 +257,8 @@ private CharSequence formatDescription(GitHubEvent event) {
ssb.length() - sha.length(), ssb.length(), 0);

ssb.append(" ");
ssb.append(StringUtils.getFirstLine(EmojiParser.parseToUnicode(commit.message())));
ssb.append(StringUtils.getFirstLine(
StringUtils.replaceEmojiAliases(commit.message())));
ssb.setSpan(new EllipsizeLineSpan(i == (count - 1) ? 0 : bottomMargin),
lastLength, ssb.length(), 0);
}
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/gh4a/adapter/IssueLabelAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@

import com.gh4a.ColorPickerDialog;
import com.gh4a.R;
import com.gh4a.utils.StringUtils;
import com.gh4a.utils.UiUtils;
import com.meisolsson.githubsdk.model.Label;
import com.vdurmont.emoji.EmojiParser;

public class IssueLabelAdapter extends
RootAdapter<IssueLabelAdapter.EditableLabel, IssueLabelAdapter.ViewHolder> {
Expand Down Expand Up @@ -149,7 +149,7 @@ public void onBindViewHolder(ViewHolder holder, EditableLabel label) {
}

assignColor(holder, label.editedColor != null ? label.editedColor : label.color());
holder.label.setText(EmojiParser.parseToUnicode(label.name()));
holder.label.setText(StringUtils.replaceEmojiAliases(label.name()));
holder.editor.setText(label.editedName != null ? label.editedName : label.name());
}

Expand Down
3 changes: 1 addition & 2 deletions app/src/main/java/com/gh4a/adapter/RepositoryAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import com.gh4a.utils.ApiHelpers;
import com.gh4a.utils.StringUtils;
import com.meisolsson.githubsdk.model.Repository;
import com.vdurmont.emoji.EmojiParser;

import java.util.Locale;

Expand All @@ -51,7 +50,7 @@ public void onBindViewHolder(ViewHolder holder, Repository repository) {

if (!StringUtils.isBlank(repository.description())) {
holder.tvDesc.setVisibility(View.VISIBLE);
holder.tvDesc.setText(EmojiParser.parseToUnicode(repository.description()));
holder.tvDesc.setText(StringUtils.replaceEmojiAliases(repository.description()));
} else {
holder.tvDesc.setVisibility(View.GONE);
}
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/gh4a/adapter/TrendAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

import com.gh4a.R;
import com.gh4a.model.Trend;
import com.vdurmont.emoji.EmojiParser;
import com.gh4a.utils.StringUtils;

public class TrendAdapter extends RootAdapter<Trend, TrendAdapter.ViewHolder> {
private final @StringRes int mStarsTemplate;
Expand All @@ -56,7 +56,7 @@ public void onBindViewHolder(ViewHolder holder, Trend trend) {
holder.tvTitle.setText(title);

String desc = trend.getDescription();
holder.tvDesc.setText(desc != null ? EmojiParser.parseToUnicode(desc) : null);
holder.tvDesc.setText(StringUtils.replaceEmojiAliases(desc));

String lang = trend.getLanguage();
if (TextUtils.isEmpty(lang)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import com.meisolsson.githubsdk.model.Label;
import com.meisolsson.githubsdk.model.Rename;
import com.meisolsson.githubsdk.model.User;
import com.vdurmont.emoji.EmojiParser;

import java.util.ArrayList;
import java.util.Date;
Expand Down Expand Up @@ -336,7 +335,7 @@ private void replaceCommitPlaceholder(SpannableStringBuilder text, String commit
private void replaceLabelPlaceholder(SpannableStringBuilder text, Label label) {
int pos = text.toString().indexOf("[label]");
if (label != null && pos >= 0) {
String labelName = EmojiParser.parseToUnicode(label.name());
String labelName = StringUtils.replaceEmojiAliases(label.name());
int length = labelName.length();
text.replace(pos, pos + 7, labelName);
text.setSpan(new IssueLabelSpan(mContext, label, false), pos, pos + length, 0);
Expand Down
11 changes: 4 additions & 7 deletions app/src/main/java/com/gh4a/fragment/CommitFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
import com.meisolsson.githubsdk.model.git.GitComment;
import com.meisolsson.githubsdk.model.git.GitCommit;
import com.meisolsson.githubsdk.model.git.GitUser;
import com.vdurmont.emoji.EmojiParser;

import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -138,16 +137,14 @@ private void fillHeader() {

String message = mCommit.commit().message();
int pos = message.indexOf('\n');
String title = pos > 0 ? message.substring(0, pos) : message;
title = EmojiParser.parseToUnicode(title);
String title = StringUtils.replaceEmojiAliases(
pos > 0 ? message.substring(0, pos) : message);
int length = message.length();
while (pos > 0 && pos < length && Character.isWhitespace(message.charAt(pos))) {
pos++;
}
message = pos > 0 && pos < length ? message.substring(pos) : null;
if (message != null) {
message = EmojiParser.parseToUnicode(message);
}
message = StringUtils.replaceEmojiAliases(
pos > 0 && pos < length ? message.substring(pos) : null);

tvTitle.setText(title);
tvMessage.setText(message);
Expand Down
3 changes: 1 addition & 2 deletions app/src/main/java/com/gh4a/fragment/RepositoryFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@
import com.meisolsson.githubsdk.service.repositories.RepositoryContentService;
import com.meisolsson.githubsdk.service.search.SearchService;
import com.gh4a.widget.OverviewRow;
import com.vdurmont.emoji.EmojiParser;

import java.net.HttpURLConnection;
import java.util.Locale;
Expand Down Expand Up @@ -321,7 +320,7 @@ private void fillTextView(int id, int stringId, String text) {
if (stringId != 0) {
view.setText(getString(stringId, text));
} else {
view.setText(EmojiParser.parseToUnicode(text));
view.setText(StringUtils.replaceEmojiAliases(text));
}
view.setVisibility(View.VISIBLE);
} else {
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/com/gh4a/fragment/SettingsFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -239,9 +239,9 @@ private static class OpenSourceComponentAdapter extends RecyclerView.Adapter<Ope
{ "android-gif-drawable", "https://github.com/koral--/android-gif-drawable" },
{ "AndroidSVG", "https://github.com/BigBadaboom/androidsvg" },
{ "AndroidX", "https://github.com/androidx/androidx" },
{ "emoji-java", "https://github.com/vdurmont/emoji-java" },
{ "GitHubSdk", "https://github.com/maniac103/GitHubSdk" },
{ "HoloColorPicker", "https://github.com/LarsWerkman/HoloColorPicker" },
{ "JEmoji", "https://github.com/felldo/JEmoji" },
{ "MarkdownEdit", "https://github.com/Tunous/MarkdownEdit" },
{ "Material Design Icons", "https://github.com/google/material-design-icons" },
{ "PrettyTime", "https://github.com/ocpsoft/prettytime" },
Expand Down
5 changes: 2 additions & 3 deletions app/src/main/java/com/gh4a/fragment/UserFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@
import com.meisolsson.githubsdk.service.organizations.OrganizationService;
import com.meisolsson.githubsdk.service.repositories.RepositoryService;
import com.meisolsson.githubsdk.service.users.UserFollowerService;
import com.vdurmont.emoji.EmojiParser;

import java.util.Collection;
import java.util.HashMap;
Expand Down Expand Up @@ -206,7 +205,7 @@ private void fillData() {
fillTextView(R.id.tv_website, mUser.blog());
fillTextView(R.id.tv_company, mUser.company());
fillTextView(R.id.tv_location, mUser.location());
fillTextView(R.id.tv_bio, mUser.bio() != null ? EmojiParser.parseToUnicode(mUser.bio()) : null);
fillTextView(R.id.tv_bio, StringUtils.replaceEmojiAliases(mUser.bio()));
}

private static int orZero(Integer count) {
Expand Down Expand Up @@ -275,7 +274,7 @@ private void fillTopRepos(Collection<Repository> topRepos) {
TextView tvDesc = rowView.findViewById(R.id.tv_desc);
if (!StringUtils.isBlank(repo.description())) {
tvDesc.setVisibility(View.VISIBLE);
tvDesc.setText(EmojiParser.parseToUnicode(repo.description()));
tvDesc.setText(StringUtils.replaceEmojiAliases(repo.description()));
} else {
tvDesc.setVisibility(View.GONE);
}
Expand Down
11 changes: 11 additions & 0 deletions app/src/main/java/com/gh4a/utils/StringUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@
import com.gh4a.Gh4Application;
import com.meisolsson.githubsdk.model.User;

import net.fellbaum.jemoji.Emoji;
import net.fellbaum.jemoji.EmojiManager;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
Expand Down Expand Up @@ -194,4 +197,12 @@ public static String unescapeCommonHtmlEntities(String sourceText) {
.replaceAll("&(ndash|#8211);", "–")
.replaceAll("&(mdash|#8212);", "—");
}

public static String replaceEmojiAliases(String input) {
return EmojiManager.replaceAliases(input, (alias, emojis) -> emojis.stream()
.filter(emoji -> emoji.getGithubAliases().contains(alias))
.findFirst()
.map(Emoji::getEmoji)
.orElse(alias));
}
}
3 changes: 1 addition & 2 deletions app/src/main/java/com/gh4a/utils/UiUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import com.gh4a.R;
import com.gh4a.widget.IssueLabelSpan;
import com.meisolsson.githubsdk.model.Label;
import com.vdurmont.emoji.EmojiParser;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
Expand Down Expand Up @@ -321,7 +320,7 @@ public static SpannableStringBuilder formatLabelList(Context context, List<Label
for (Label label : labels) {
int pos = builder.length();
IssueLabelSpan span = new IssueLabelSpan(context, label, true);
String labelName = EmojiParser.parseToUnicode(label.name());
String labelName = StringUtils.replaceEmojiAliases(label.name());
builder.append(labelName);
builder.setSpan(span, pos, pos + labelName.length(), 0);
}
Expand Down