use of com.meisolsson.githubsdk.model.User in project gh4a by slapperwan.
the class EventAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(EventViewHolder holder, GitHubEvent event) {
User actor = event.actor();
AvatarHandler.assignAvatar(holder.ivGravatar, actor);
holder.ivGravatar.setTag(actor);
holder.tvActor.setText(ApiHelpers.getUserLogin(mContext, actor));
StringUtils.applyBoldTagsAndSetText(holder.tvTitle, formatTitle(event));
holder.tvCreatedAt.setText(StringUtils.formatRelativeTime(mContext, event.createdAt(), false));
CharSequence content = formatDescription(event, holder.tvDesc.getTypefaceValue());
holder.tvDesc.setText(content);
holder.tvDesc.setVisibility(content != null ? View.VISIBLE : View.GONE);
}
use of com.meisolsson.githubsdk.model.User in project gh4a by slapperwan.
the class EventAdapter method formatDescription.
private CharSequence formatDescription(GitHubEvent event, int typefaceValue) {
GitHubEventType eventType = event.type();
GitHubEvent.RepoIdentifier eventRepo = event.repo();
if (hasInvalidPayload(event)) {
return eventType.toString();
}
Resources res = mContext.getResources();
switch(eventType) {
case CommitCommentEvent:
{
CommitCommentPayload payload = (CommitCommentPayload) event.payload();
GitComment comment = payload.comment();
if (comment != null) {
return EmojiParser.parseToUnicode(comment.body());
}
break;
}
case CreateEvent:
{
CreatePayload payload = (CreatePayload) event.payload();
if (payload.refType() == ReferenceType.Repository) {
return res.getString(R.string.event_create_repo_desc, eventRepo.repoWithUserName());
}
break;
}
case DownloadEvent:
{
DownloadPayload payload = (DownloadPayload) event.payload();
if (payload.download() != null) {
return payload.download().name();
}
break;
}
case FollowEvent:
{
FollowPayload payload = (FollowPayload) event.payload();
User target = payload.target();
if (target != null) {
return res.getString(R.string.event_follow_desc, target.login(), target.publicRepos(), target.followers());
}
break;
}
case ForkEvent:
{
ForkPayload payload = (ForkPayload) event.payload();
return res.getString(R.string.event_fork_desc, formatToRepoName(payload.forkee()));
}
case GollumEvent:
{
GollumPayload payload = (GollumPayload) event.payload();
List<GitHubWikiPage> pages = payload.pages();
if (pages != null && !pages.isEmpty()) {
return res.getString(R.string.event_gollum_desc, pages.get(0).pageName());
}
break;
}
case IssueCommentEvent:
{
IssueCommentPayload payload = (IssueCommentPayload) event.payload();
if (payload != null && payload.comment() != null) {
return EmojiParser.parseToUnicode(payload.comment().body());
}
break;
}
case IssuesEvent:
{
IssuesPayload payload = (IssuesPayload) event.payload();
return payload.issue().title();
}
case PublicEvent:
return null;
case PullRequestEvent:
{
PullRequestPayload payload = (PullRequestPayload) event.payload();
PullRequest pullRequest = payload.pullRequest();
if (!StringUtils.isBlank(pullRequest.title())) {
return res.getString(R.string.event_pull_request_desc, pullRequest.title(), pullRequest.commits(), pullRequest.additions(), pullRequest.deletions());
}
break;
}
case PullRequestReviewCommentEvent:
{
PullRequestReviewCommentPayload payload = (PullRequestReviewCommentPayload) event.payload();
ReviewComment comment = payload.comment();
if (comment != null) {
return EmojiParser.parseToUnicode(comment.body());
}
break;
}
case PushEvent:
{
PushPayload payload = (PushPayload) event.payload();
List<GitCommit> commits = payload.commits();
if (commits != null && !commits.isEmpty()) {
SpannableStringBuilder ssb = new SpannableStringBuilder();
float density = mContext.getResources().getDisplayMetrics().density;
int bottomMargin = Math.round(2 * /* dp */
density);
int count = payload.size();
int maxLines = mContext.getResources().getInteger(R.integer.event_description_max_lines);
int max = Math.min(count > maxLines ? maxLines - 1 : count, commits.size());
for (int i = 0; i < max; i++) {
GitCommit commit = commits.get(i);
if (i != 0) {
ssb.append("\n");
}
int lastLength = ssb.length();
String sha = commit.sha().substring(0, 7);
ssb.append(sha);
ssb.setSpan(new TextAppearanceSpan(mContext, R.style.small_highlighted_sha), ssb.length() - sha.length(), ssb.length(), 0);
ssb.append(" ");
ssb.append(getFirstLine(EmojiParser.parseToUnicode(commit.message())));
ssb.setSpan(new EllipsizeLineSpan(i == (count - 1) ? 0 : bottomMargin), lastLength, ssb.length(), 0);
}
if (count > maxLines) {
String text = res.getString(R.string.event_push_desc, count - max);
ssb.append("\n");
ssb.append(text);
ssb.setSpan(new CustomTypefaceSpan(typefaceValue, Typeface.ITALIC), ssb.length() - text.length(), ssb.length(), 0);
}
return ssb;
} else if (eventRepo == null) {
return mContext.getString(R.string.deleted);
}
break;
}
case ReleaseEvent:
{
ReleasePayload payload = (ReleasePayload) event.payload();
Release release = payload.release();
if (release != null) {
if (!TextUtils.isEmpty(release.name())) {
return release.name();
}
return release.tagName();
}
break;
}
case TeamAddEvent:
{
TeamAddPayload payload = (TeamAddPayload) event.payload();
Team team = payload.team();
if (team != null) {
return res.getString(R.string.event_team_add_desc, team.name(), team.membersCount(), team.reposCount());
}
break;
}
}
return null;
}
use of com.meisolsson.githubsdk.model.User in project gh4a by slapperwan.
the class GistAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(ViewHolder holder, Gist gist) {
User user = gist.owner();
boolean isSelf = user != null && TextUtils.equals(user.login(), mOwnerLogin);
if (isSelf) {
holder.tvCreator.setVisibility(View.GONE);
} else {
holder.tvCreator.setText(ApiHelpers.getUserLogin(mContext, user));
holder.tvCreator.setVisibility(View.VISIBLE);
}
holder.tvTimestamp.setText(StringUtils.formatRelativeTime(mContext, gist.createdAt(), false));
holder.tvTitle.setText(TextUtils.isEmpty(gist.description()) ? mContext.getString(R.string.gist_no_description) : gist.description());
holder.tvSha.setText(gist.id());
holder.tvFiles.setText(String.valueOf(gist.files().size()));
holder.tvPrivate.setVisibility(gist.isPublic() ? View.GONE : View.VISIBLE);
}
use of com.meisolsson.githubsdk.model.User in project gh4a by slapperwan.
the class NewsFeedFactory method onItemSelected.
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
User selectedOrganization = position != 0 ? mUserScopes.get(position - 1) : null;
boolean isSameUser = selectedOrganization == null || mSelectedOrganization == null ? selectedOrganization == mSelectedOrganization : selectedOrganization.equals(mSelectedOrganization);
if (!isSameUser) {
mSelectedOrganization = selectedOrganization;
mActivity.invalidateFragments();
}
}
use of com.meisolsson.githubsdk.model.User in project gh4a by slapperwan.
the class CommitAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(ViewHolder holder, Commit commit) {
User author = commit.author();
if (author != null && !TextUtils.isEmpty(author.login())) {
AvatarHandler.assignAvatar(holder.ivGravatar, author);
} else {
GitUser commitAuthor = commit.commit().author();
String userName = commitAuthor != null ? commitAuthor.name() : null;
String email = commitAuthor != null ? commitAuthor.email() : null;
holder.ivGravatar.setImageDrawable(new AvatarHandler.DefaultAvatarDrawable(userName, email));
}
holder.ivGravatar.setTag(commit);
String message = commit.commit().message();
int pos = message.indexOf('\n');
if (pos > 0) {
message = message.substring(0, pos);
}
message = EmojiParser.parseToUnicode(message);
holder.tvDesc.setText(message);
holder.tvSha.setText(commit.sha().substring(0, 10));
holder.ivDescriptionIndicator.setVisibility(pos > 0 ? View.VISIBLE : View.GONE);
int comments = commit.commit().commentCount();
if (comments > 0) {
holder.tvComments.setText(String.valueOf(comments));
holder.tvComments.setVisibility(View.VISIBLE);
} else {
holder.tvComments.setVisibility(View.GONE);
}
holder.tvExtra.setText(ApiHelpers.getAuthorName(mContext, commit));
holder.tvTimestamp.setText(StringUtils.formatRelativeTime(mContext, commit.commit().author().date(), false));
}
Aggregations