Skip to content
Snippets Groups Projects
Commit 6ec7e30b authored by Jawnnypoo's avatar Jawnnypoo
Browse files

Merge branch 'develop'

parents 6c016a2d c7245825
No related branches found
No related tags found
No related merge requests found
Pipeline #
Showing
with 257 additions and 161 deletions
Loading
Loading
@@ -7,6 +7,7 @@ import com.commit451.gitlab.model.User;
import fr.tkeunebr.gravatar.Gravatar;
 
/**
* Utility for doing various image related things
* Created by Jawn on 9/20/2015.
*/
public class ImageUtil {
Loading
Loading
Loading
Loading
@@ -6,6 +6,7 @@ import android.view.View;
import android.view.inputmethod.InputMethodManager;
 
/**
* Keyboard functions
* Created by Jawn on 8/21/2015.
*/
public class KeyboardUtil {
Loading
Loading
package com.commit451.gitlab.tools;
import com.squareup.okhttp.Headers;
/**
* Gets the next page link from a link header
* http://www.w3.org/wiki/LinkHeader
* Created by Jawnnypoo on 11/5/2015.
*/
public class LinkHeaderResolver {
private static final String NEXT_PAGE_PREFIX = "rel=\"next\"";
public static String getNextPageUrl(Headers headers) {
if (headers != null && headers.get("Link") != null && headers.get("Link").contains(NEXT_PAGE_PREFIX)) {
String linkHeader = headers.get("Link");
String[] links = linkHeader.split(",");
for (String link : links) {
if (link.contains(NEXT_PAGE_PREFIX)) {
return extractUrlFromLink(link);
}
}
}
return null;
}
private static String extractUrlFromLink(String link) {
int indexOfBracket = link.indexOf('<');
int indexOfLastBracket = link.indexOf('>');
return link.substring(indexOfBracket+1, indexOfLastBracket);
}
}
Loading
Loading
@@ -2,16 +2,25 @@ package com.commit451.gitlab.tools;
 
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.support.v4.app.ActivityOptionsCompat;
import android.widget.ImageView;
 
import com.commit451.gitlab.R;
import com.commit451.gitlab.activities.AboutActivity;
import com.commit451.gitlab.activities.GroupActivity;
import com.commit451.gitlab.activities.GroupsActivity;
import com.commit451.gitlab.activities.IssueActivity;
import com.commit451.gitlab.activities.LoginActivity;
import com.commit451.gitlab.activities.MergeRequestActivity;
import com.commit451.gitlab.activities.ProjectActivity;
import com.commit451.gitlab.activities.ProjectsActivity;
import com.commit451.gitlab.activities.SearchActivity;
import com.commit451.gitlab.activities.UserActivity;
import com.commit451.gitlab.model.Group;
import com.commit451.gitlab.model.Issue;
import com.commit451.gitlab.model.MergeRequest;
import com.commit451.gitlab.model.Project;
import com.commit451.gitlab.model.User;
 
Loading
Loading
@@ -45,11 +54,34 @@ public class NavigationManager {
activity.startActivity(SearchActivity.newInstance(activity));
}
 
public static void navigateToUser(Activity activity, User user) {
activity.startActivity(UserActivity.newInstance(activity, user));
public static void navigateToUser(Activity activity, ImageView profileImage, User user) {
Intent intent = UserActivity.newInstance(activity, user);
if (Build.VERSION.SDK_INT >= 21) {
ActivityOptionsCompat options = ActivityOptionsCompat.
makeSceneTransitionAnimation(activity, profileImage, activity.getString(R.string.transition_user));
activity.startActivity(intent, options.toBundle());
} else {
activity.startActivity(intent);
}
}
 
public static void navigateToGroup(Activity activity, Group group) {
activity.startActivity(GroupActivity.newInstance(activity, group));
public static void navigateToGroup(Activity activity, ImageView profileImage, Group group) {
Intent intent = GroupActivity.newInstance(activity, group);
if (Build.VERSION.SDK_INT >= 21) {
ActivityOptionsCompat options = ActivityOptionsCompat.
makeSceneTransitionAnimation(activity, profileImage, activity.getString(R.string.transition_group));
activity.startActivity(intent, options.toBundle());
} else {
activity.startActivity(intent);
}
}
public static void navigateToIssue(Activity activity, Project project, Issue issue) {
activity.startActivity(IssueActivity.newInstance(activity, project, issue));
}
public static void navigateToMergeRequest(Activity activity, Project project, MergeRequest mergeRequest) {
Intent intent = MergeRequestActivity.newInstance(activity, project, mergeRequest);
activity.startActivity(intent);
}
}
package com.commit451.gitlab.tools;
import com.commit451.gitlab.model.Branch;
import com.commit451.gitlab.model.Group;
import com.commit451.gitlab.model.Project;
import com.commit451.gitlab.model.User;
import java.util.ArrayList;
public class Repository {
public static ArrayList<Project> projects;
public static ArrayList<Branch> branches;
public static ArrayList<Group> groups;
public static ArrayList<User> users;
public static void init() {
projects = null;
branches = null;
groups = null;
users = null;
}
}
package com.commit451.gitlab.viewHolders;
 
import android.support.v7.widget.RecyclerView;
import android.text.format.DateUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
Loading
Loading
@@ -10,6 +9,7 @@ import android.widget.TextView;
 
import com.commit451.gitlab.R;
import com.commit451.gitlab.model.DiffLine;
import com.commit451.gitlab.tools.DateUtils;
import com.squareup.picasso.Picasso;
 
import butterknife.Bind;
Loading
Loading
@@ -50,6 +50,6 @@ public class CommitViewHolder extends RecyclerView.ViewHolder {
 
message.setText(commit.getTitle());
author.setText(commit.getAuthorName());
time.setText(DateUtils.getRelativeTimeSpanString(commit.getCreatedAt().getTime()));
time.setText(DateUtils.getRelativeTimeSpanString(itemView.getContext(), commit.getCreatedAt()));
}
}
Loading
Loading
@@ -2,7 +2,6 @@ package com.commit451.gitlab.viewHolders;
 
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.text.format.DateUtils;
import android.text.method.LinkMovementMethod;
import android.view.LayoutInflater;
import android.view.View;
Loading
Loading
@@ -12,6 +11,7 @@ import android.widget.TextView;
 
import com.commit451.gitlab.R;
import com.commit451.gitlab.model.Issue;
import com.commit451.gitlab.tools.DateUtils;
import com.commit451.gitlab.tools.ImageUtil;
import com.squareup.picasso.Picasso;
 
Loading
Loading
@@ -24,9 +24,9 @@ import in.uncod.android.bypass.Bypass;
*/
public class IssueHeaderViewHolder extends RecyclerView.ViewHolder {
 
public static IssueHeaderViewHolder create(ViewGroup parent) {
public static IssueHeaderViewHolder newInstance(ViewGroup parent) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_header_issue, parent, false);
.inflate(R.layout.header_issue, parent, false);
return new IssueHeaderViewHolder(view);
}
 
Loading
Loading
@@ -56,10 +56,10 @@ public class IssueHeaderViewHolder extends RecyclerView.ViewHolder {
.into(authorImage);
author.setText(issue.getAuthor().getName() + " "
+ itemView.getResources().getString(R.string.created_issue) + " "
+ DateUtils.getRelativeTimeSpanString(issue.getCreatedAt().getTime()));
+ DateUtils.getRelativeTimeSpanString(itemView.getContext(), issue.getCreatedAt()));
}
if (issue.getCreatedAt() != null) {
DateUtils.getRelativeTimeSpanString(issue.getCreatedAt().getTime());
DateUtils.getRelativeTimeSpanString(itemView.getContext(), issue.getCreatedAt());
}
}
}
\ No newline at end of file
Loading
Loading
@@ -9,6 +9,7 @@ import android.widget.TextView;
 
import com.commit451.gitlab.R;
import com.commit451.gitlab.model.Issue;
import com.commit451.gitlab.tools.DateUtils;
import com.squareup.picasso.Picasso;
 
import butterknife.Bind;
Loading
Loading
@@ -30,7 +31,6 @@ public class IssueViewHolder extends RecyclerView.ViewHolder {
@Bind(R.id.issue_image) ImageView image;
@Bind(R.id.issue_message) TextView message;
@Bind(R.id.issue_creator) TextView creator;
@Bind(R.id.issue_state) TextView stateView;
 
public IssueViewHolder(View view) {
super(view);
Loading
Loading
@@ -45,9 +45,6 @@ public class IssueViewHolder extends RecyclerView.ViewHolder {
 
message.setText("#" + tempId + ": " + issue.getTitle());
 
String state = issue.getState();
stateView.setText(state);
int size = itemView.getResources().getDimensionPixelSize(R.dimen.image_size);
 
//TODO why is this hard coded? Urg
Loading
Loading
@@ -57,16 +54,19 @@ public class IssueViewHolder extends RecyclerView.ViewHolder {
if(issue.getAssignee() != null) {
assigneeName = issue.getAssignee().getName();
 
if(issue.getAssignee().getEmail() != null)
if(issue.getAssignee().getEmail() != null) {
assigneeAvatarUrl = Gravatar.init()
.with(issue.getAssignee().getEmail())
.size(itemView.getResources().getDimensionPixelSize(R.dimen.image_size))
.build();
else if(issue.getAssignee().getAvatarUrl() != null)
}
else if(issue.getAssignee().getAvatarUrl() != null) {
assigneeAvatarUrl = issue.getAssignee().getAvatarUrl() + "&s=" + size;
}
}
 
creator.setText(assigneeName);
CharSequence time = DateUtils.getRelativeTimeSpanString(itemView.getContext(), issue.getCreatedAt());
creator.setText(String.format(itemView.getContext().getString(R.string.created_time), time, issue.getAuthor().getUsername()));
Picasso.with(itemView.getContext()).load(assigneeAvatarUrl).into(image);
}
}
Loading
Loading
@@ -27,10 +27,10 @@ public class MemberViewHolder extends RecyclerView.ViewHolder {
return new MemberViewHolder(view);
}
 
@Bind(R.id.user_name) TextView name;
@Bind(R.id.user_username) TextView username;
@Bind(R.id.user_role) TextView role;
@Bind(R.id.user_image) ImageView image;
@Bind(R.id.user_name) public TextView name;
@Bind(R.id.user_username) public TextView username;
@Bind(R.id.user_role) public TextView role;
@Bind(R.id.user_image) public ImageView image;
 
public MemberViewHolder(View view) {
super(view);
Loading
Loading
package com.commit451.gitlab.viewHolders;
import android.support.v7.widget.RecyclerView;
import android.text.method.LinkMovementMethod;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.commit451.gitlab.R;
import com.commit451.gitlab.model.MergeRequestComment;
import com.commit451.gitlab.tools.ImageUtil;
import com.squareup.picasso.Picasso;
import butterknife.Bind;
import butterknife.ButterKnife;
import in.uncod.android.bypass.Bypass;
/**
* Notes, aka comments
* Created by Jawn on 8/6/2015.
*/
public class MergeRequestCommentViewHolder extends RecyclerView.ViewHolder{
public static MergeRequestCommentViewHolder newInstance(ViewGroup parent) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_note, parent, false);
return new MergeRequestCommentViewHolder(view);
}
@Bind(R.id.title) public TextView title;
@Bind(R.id.summary) public TextView summary;
@Bind(R.id.icon) public ImageView icon;
public MergeRequestCommentViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
public void bind(MergeRequestComment comment) {
if(comment.getAuthor() != null) {
title.setText(comment.getAuthor().getUsername());
}
String temp = "";
if(comment.getComment() != null) {
temp = comment.getComment();
}
Bypass bypass = new Bypass(itemView.getContext());
summary.setText(bypass.markdownToSpannable(temp));
summary.setMovementMethod(LinkMovementMethod.getInstance());
String imageUrl = ImageUtil.getGravatarUrl(comment.getAuthor(), itemView.getResources().getDimensionPixelSize(R.dimen.image_size));
Picasso.with(itemView.getContext()).load(imageUrl).into(icon);
}
}
\ No newline at end of file
package com.commit451.gitlab.viewHolders;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.commit451.gitlab.R;
import com.commit451.gitlab.model.MergeRequest;
import com.commit451.gitlab.tools.DateUtils;
import com.commit451.gitlab.tools.ImageUtil;
import com.squareup.picasso.Picasso;
import butterknife.Bind;
import butterknife.ButterKnife;
import in.uncod.android.bypass.Bypass;
/**
* Adapter for merge request detail
* Created by John on 11/16/15.
*/
public class MergeRequestHeaderViewHolder extends RecyclerView.ViewHolder {
public static MergeRequestHeaderViewHolder newInstance(ViewGroup parent) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.header_merge_request, parent, false);
return new MergeRequestHeaderViewHolder(view);
}
@Bind(R.id.description)
TextView description;
@Bind(R.id.author_image)
ImageView authorImage;
@Bind(R.id.author) TextView author;
Bypass mBypass;
public MergeRequestHeaderViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
mBypass = new Bypass(view.getContext());
}
public void bind(MergeRequest mergeRequest) {
if (TextUtils.isEmpty(mergeRequest.getDescription())) {
description.setVisibility(View.GONE);
} else {
description.setVisibility(View.VISIBLE);
description.setText(mBypass.markdownToSpannable(mergeRequest.getDescription()));
description.setMovementMethod(LinkMovementMethod.getInstance());
}
if (mergeRequest.getAuthor() != null) {
Picasso.with(itemView.getContext())
.load(ImageUtil.getGravatarUrl(mergeRequest.getAuthor(), itemView.getResources().getDimensionPixelSize(R.dimen.image_size)))
.into(authorImage);
author.setText(mergeRequest.getAuthor().getName() + " "
+ itemView.getResources().getString(R.string.created_issue) + " "
+ DateUtils.getRelativeTimeSpanString(itemView.getContext(), mergeRequest.getCreatedAt()));
}
if (mergeRequest.getCreatedAt() != null) {
DateUtils.getRelativeTimeSpanString(itemView.getContext(), mergeRequest.getCreatedAt());
}
}
}
Loading
Loading
@@ -30,7 +30,6 @@ public class MergeRequestViewHolder extends RecyclerView.ViewHolder {
@Bind(R.id.request_image) ImageView image;
@Bind(R.id.request_title) TextView title;
@Bind(R.id.request_author) TextView author;
@Bind(R.id.request_state) TextView state;
 
public MergeRequestViewHolder(View view) {
super(view);
Loading
Loading
@@ -51,10 +50,5 @@ public class MergeRequestViewHolder extends RecyclerView.ViewHolder {
} else {
title.setText("");
}
if (item.getState() != null) {
state.setText(item.getState());
} else {
state.setText("");
}
}
}
package com.commit451.gitlab.viewHolders;
 
import android.support.v7.widget.RecyclerView;
import android.text.format.DateUtils;
import android.text.method.LinkMovementMethod;
import android.view.LayoutInflater;
import android.view.View;
Loading
Loading
@@ -11,14 +10,16 @@ import android.widget.TextView;
 
import com.commit451.gitlab.R;
import com.commit451.gitlab.model.Note;
import com.commit451.gitlab.tools.DateUtils;
import com.commit451.gitlab.tools.ImageUtil;
import com.squareup.picasso.Picasso;
 
import butterknife.Bind;
import butterknife.ButterKnife;
import fr.tkeunebr.gravatar.Gravatar;
import in.uncod.android.bypass.Bypass;
 
/**
* Notes, aka comments
* Created by Jawn on 8/6/2015.
*/
public class NoteViewHolder extends RecyclerView.ViewHolder{
Loading
Loading
@@ -41,31 +42,21 @@ public class NoteViewHolder extends RecyclerView.ViewHolder{
 
public void bind(Note note) {
if(note.getCreatedAt() != null) {
custom.setText(DateUtils.getRelativeTimeSpanString(note.getCreatedAt().getTime()));
custom.setText(DateUtils.getRelativeTimeSpanString(itemView.getContext(), note.getCreatedAt()));
}
if(note.getAuthor() != null) {
title.setText(note.getAuthor().getName());
title.setText(note.getAuthor().getUsername());
}
 
String temp = "";
if(note.getBody() != null) {
temp = note.getBody();
}
Bypass bypass = new Bypass();
Bypass bypass = new Bypass(itemView.getContext());
summary.setText(bypass.markdownToSpannable(temp));
summary.setMovementMethod(LinkMovementMethod.getInstance());
 
int size = itemView.getResources().getDimensionPixelSize(R.dimen.image_size);
String url = "http://www.gravatar.com/avatar/00000000000000000000000000000000?s=" + size;
if(note.getAuthor().getEmail() != null) {
url = Gravatar.init().with(note.getAuthor().getEmail()).size(size).build();
}
else if(note.getAuthor().getAvatarUrl() != null) {
url = note.getAuthor().getAvatarUrl() + "&s=" + size;
}
Picasso.with(itemView.getContext()).load(url).into(icon);
String imageUrl = ImageUtil.getGravatarUrl(note.getAuthor(), itemView.getResources().getDimensionPixelSize(R.dimen.image_size));
Picasso.with(itemView.getContext()).load(imageUrl).into(icon);
}
}
Loading
Loading
@@ -27,9 +27,9 @@ public class UserViewHolder extends RecyclerView.ViewHolder {
return new UserViewHolder(view);
}
 
@Bind(R.id.user_name) TextView name;
@Bind(R.id.user_username) TextView username;
@Bind(R.id.user_image) ImageView image;
@Bind(R.id.user_name) public TextView name;
@Bind(R.id.user_username) public TextView username;
@Bind(R.id.user_image) public ImageView image;
 
public UserViewHolder(View view) {
super(view);
Loading
Loading
Loading
Loading
@@ -2,18 +2,10 @@ package com.commit451.gitlab.views;
 
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.support.design.widget.NavigationView;
import android.support.v4.view.ViewCompat;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
Loading
Loading
@@ -49,10 +41,6 @@ public class GitLabNavigationView extends NavigationView {
@Bind(R.id.profile_email) TextView userEmail;
@Bind(R.id.drawer_header) FrameLayout header;
 
private Drawable mInsetForeground;
private Rect mInsets;
private Rect mTempRect = new Rect();
private final OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
Loading
Loading
@@ -125,9 +113,8 @@ public class GitLabNavigationView extends NavigationView {
private void init() {
setNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
inflateMenu(R.menu.navigation);
View header = inflateHeaderView(R.layout.nav_drawer);
View header = inflateHeaderView(R.layout.header_nav_drawer);
ButterKnife.bind(this, header);
mInsetForeground = new ColorDrawable(Color.parseColor("#44000000"));
setSelectedNavigationItem();
loadCurrentUser();
}
Loading
Loading
@@ -158,78 +145,12 @@ public class GitLabNavigationView extends NavigationView {
if (user.getUsername() != null) {
userName.setText(user.getUsername());
}
if (user.getEmail() != null) {
userEmail.setText(user.getEmail());
}
String url = ImageUtil.getGravatarUrl(user, getResources().getDimensionPixelSize(R.dimen.larger_image_size));
Picasso.with(getContext())
.load(url)
.into(profileImage);
}
@Override
protected boolean fitSystemWindows(Rect insets) {
mInsets = new Rect(insets);
setWillNotDraw(mInsetForeground == null);
ViewCompat.postInvalidateOnAnimation(this);
int headerHeight = getResources().getDimensionPixelSize(R.dimen.navigation_drawer_header_height);
ViewGroup.LayoutParams lp2 = header.getLayoutParams();
lp2.height = headerHeight + insets.top;
header.setLayoutParams(lp2);
MarginLayoutParams params = (MarginLayoutParams) profileImage.getLayoutParams();
params.topMargin = (int) (insets.top + TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, getResources().getDisplayMetrics()));
profileImage.setLayoutParams(params);
return true; // consume insets
}
@Override
public void draw(Canvas canvas) {
super.draw(canvas);
int width = getWidth();
int height = getHeight();
if (mInsets != null && mInsetForeground != null) {
int sc = canvas.save();
canvas.translate(getScrollX(), getScrollY());
// Top
mTempRect.set(0, 0, width, mInsets.top);
mInsetForeground.setBounds(mTempRect);
mInsetForeground.draw(canvas);
// Bottom
mTempRect.set(0, height - mInsets.bottom, width, height);
mInsetForeground.setBounds(mTempRect);
mInsetForeground.draw(canvas);
// Left
mTempRect.set(0, mInsets.top, mInsets.left, height - mInsets.bottom);
mInsetForeground.setBounds(mTempRect);
mInsetForeground.draw(canvas);
// Right
mTempRect.set(width - mInsets.right, mInsets.top, width, height - mInsets.bottom);
mInsetForeground.setBounds(mTempRect);
mInsetForeground.draw(canvas);
canvas.restoreToCount(sc);
}
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
if (mInsetForeground != null) {
mInsetForeground.setCallback(this);
}
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
if (mInsetForeground != null) {
mInsetForeground.setCallback(null);
}
}
}
Loading
Loading
@@ -37,8 +37,11 @@ public class MessageView extends LinearLayout {
innerView.setOrientation(LinearLayout.VERTICAL);
 
ArrayList<DiffLine.Line> lines = (ArrayList<DiffLine.Line>) diffLine.getLines();
for(DiffLine.Line line : lines)
innerView.addView(generateRow(line));
if (lines != null) {
for (DiffLine.Line line : lines) {
innerView.addView(generateRow(line));
}
}
}
 
private LinearLayout generateRow(DiffLine.Line line) {
Loading
Loading
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M15,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zm-9,-2V7H4v3H1v2h3v3h2v-3h3v-2H6zm9,4c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"/>
</vector>
Loading
Loading
@@ -30,6 +30,7 @@
android:scaleType="centerCrop"
android:fitsSystemWindows="true"
app:layout_collapseMode="parallax"
android:transitionName="@string/transition_group"
android:contentDescription="@null"/>
 
<android.support.v7.widget.Toolbar
Loading
Loading
@@ -69,4 +70,13 @@
 
</FrameLayout>
 
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab_add_user"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:src="@drawable/ic_person_add_24dp"
app:layout_anchor="@id/appbar"
app:layout_anchorGravity="bottom|right|end"/>
</android.support.design.widget.CoordinatorLayout>
\ No newline at end of file
Loading
Loading
@@ -4,9 +4,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".IssueActivity" >
android:layout_height="match_parent">
 
<LinearLayout
android:layout_width="match_parent"
Loading
Loading
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
Loading
Loading
@@ -108,7 +109,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="@string/normal_link"
android:text="@string/token_link"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="?attr/colorAccent"
android:gravity="center_horizontal"
Loading
Loading
@@ -116,7 +117,7 @@
 
</LinearLayout>
 
<TextView
<com.devspark.robototextview.widget.RobotoTextView
android:id="@+id/login_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
Loading
Loading
@@ -126,6 +127,7 @@
android:textColor="?attr/colorAccent"
android:text="@string/login_button"
android:textAllCaps="true"
app:typeface="roboto_medium"
android:background="?attr/selectableItemBackground"/>
 
<include layout="@layout/progress_fullscreen"/>
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment