Skip to content

Commit

Permalink
Add private token to all requests going to the GitLab server. Fixes #42
Browse files Browse the repository at this point in the history
  • Loading branch information
mpotthoff committed Dec 4, 2015
1 parent 3416950 commit 4108625
Show file tree
Hide file tree
Showing 19 changed files with 63 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import com.jawnnypoo.physicslayout.Physics;
import com.jawnnypoo.physicslayout.PhysicsConfig;
import com.jawnnypoo.physicslayout.PhysicsFrameLayout;
import com.squareup.picasso.Picasso;

import org.jbox2d.common.Vec2;

Expand Down Expand Up @@ -160,7 +159,7 @@ private void addContributors(List<Contributor> contributors) {
}

Uri url = ImageUtil.getAvatarUrl(contributor.getEmail(), imageSize);
Picasso.with(this)
GitLabClient.getPicasso()
.load(url)
.into(imageView);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ public void onClick(View v) {
onBackPressed();
}
});
Picasso.with(this)
GitLabClient.getPicasso()
.load(mGroup.getAvatarUrl())
.into(mImageLoadTarget);
mProjectsRecyclerView.setLayoutManager(new LinearLayoutManager(this));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ public void onClick(View v) {
});
mToolbar.setTitle(mUser.getUsername());
Uri url = ImageUtil.getAvatarUrl(mUser, getResources().getDimensionPixelSize(R.dimen.user_header_image_size));
Picasso.with(this)
GitLabClient.getPicasso()
.load(url)
.into(mImageLoadTarget);
mActivityRecyclerView.setLayoutManager(new LinearLayoutManager(this));
Expand Down
21 changes: 21 additions & 0 deletions app/src/main/java/com/commit451/gitlab/api/GitLabClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.picasso.OkHttpDownloader;
import com.squareup.picasso.Picasso;

import org.joda.time.format.ISODateTimeFormat;
import org.simpleframework.xml.core.Persister;
Expand All @@ -32,6 +34,7 @@ public class GitLabClient {

private static GitLab sGitLab;
private static GitLabRss sGitLabRss;
private static Picasso sPicasso;
private static CustomTrustManager sCustomTrustManager = new CustomTrustManager();

public static GitLab instance() {
Expand Down Expand Up @@ -85,9 +88,27 @@ public static GitLabRss rssInstance() {
return sGitLabRss;
}

public static Picasso getPicasso() {
if (sPicasso == null) {
OkHttpClient client = new OkHttpClient();
client.setSslSocketFactory(sCustomTrustManager.getSSLSocketFactory());
client.interceptors().add(new PrivateTokenRequestInterceptor(false));
if (BuildConfig.DEBUG) {
client.networkInterceptors().add(new TimberRequestInterceptor());
}

sPicasso = new Picasso.Builder(GitLabApp.instance())
.downloader(new OkHttpDownloader(client))
.build();
}

return sPicasso;
}

public static void reset() {
sGitLab = null;
sGitLabRss = null;
sPicasso = null;
}

public static void setTrustedCertificate(String trustedCertificate) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ public PrivateTokenRequestInterceptor(boolean header) {
//TODO change this to where it does not read from prefs every time (inefficient)
@Override
public Response intercept(Chain chain) throws IOException {
HttpUrl url = chain.request().httpUrl();
HttpUrl serverUrl = HttpUrl.parse(Prefs.getServerUrl(GitLabApp.instance()));
if (!url.toString().startsWith(serverUrl.toString())) {
return chain.proceed(chain.request());
}

String privateToken = Prefs.getPrivateToken(GitLabApp.instance());
if (privateToken == null) {
throw new IllegalStateException("The private token was null");
Expand All @@ -37,7 +43,7 @@ public Response intercept(Chain chain) throws IOException {
if (mHeader) {
builder.header(PRIVATE_TOKEN_HEADER_FIELD, privateToken);
} else {
HttpUrl url = chain.request().httpUrl().newBuilder()
url = url.newBuilder()
.addQueryParameter(PRIVATE_TOKEN_GET_PARAMETER, privateToken)
.build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import com.commit451.gitlab.model.TreeItem;
import com.commit451.gitlab.tools.PicassoImageGetter;
import com.squareup.otto.Subscribe;
import com.squareup.picasso.Picasso;

import java.nio.charset.Charset;
import java.util.List;
Expand Down Expand Up @@ -105,7 +104,7 @@ public void onResponse(Response<FileResponse> response, Retrofit retrofit) {

String text = new String(Base64.decode(response.body().getContent(), Base64.DEFAULT), Charset.forName("UTF-8"));
mOverview.setText(mBypass.markdownToSpannable(text,
new PicassoImageGetter(mOverview, getResources(), Picasso.with(getActivity()))));
new PicassoImageGetter(mOverview, getResources(), GitLabClient.getPicasso())));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,13 @@
import android.widget.TextView;

import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.DiffLine;
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;

/**
* Files, yay!
Expand All @@ -42,7 +41,7 @@ public CommitViewHolder(View view) {

public void bind(DiffLine commit) {
Uri url = ImageUtil.getAvatarUrl(commit.getAuthorEmail(), itemView.getResources().getDimensionPixelSize(R.dimen.image_size));
Picasso.with(itemView.getContext())
GitLabClient.getPicasso()
.load(url)
.into(image);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
import android.widget.TextView;

import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.rss.Entry;
import com.squareup.picasso.Picasso;

import butterknife.Bind;
import butterknife.ButterKnife;
Expand All @@ -37,7 +37,7 @@ public FeedEntryViewHolder(View view) {
}

public void bind(Entry entry) {
Picasso.with(itemView.getContext())
GitLabClient.getPicasso()
.load(entry.getThumbnail().getUrl())
.into(image);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
import android.widget.TextView;

import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.Group;
import com.squareup.picasso.Picasso;

import butterknife.Bind;
import butterknife.ButterKnife;
Expand All @@ -36,7 +36,7 @@ public GroupViewHolder(View view) {

public void bind(Group group) {
name.setText(group.getName());
Picasso.with(itemView.getContext())
GitLabClient.getPicasso()
.load(group.getAvatarUrl())
.into(image);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
import android.widget.TextView;

import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.Issue;
import com.commit451.gitlab.tools.DateUtils;
import com.commit451.gitlab.tools.ImageUtil;
import com.squareup.picasso.Picasso;

import butterknife.Bind;
import butterknife.ButterKnife;
Expand Down Expand Up @@ -51,7 +51,7 @@ public void bind(Issue issue) {
}

if (issue.getAuthor() != null) {
Picasso.with(itemView.getContext())
GitLabClient.getPicasso()
.load(ImageUtil.getAvatarUrl(issue.getAuthor(), itemView.getResources().getDimensionPixelSize(R.dimen.image_size)))
.into(authorImage);
author.setText(issue.getAuthor().getName() + " "
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,13 @@
import android.widget.TextView;

import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.Issue;
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;

/**
* issues, yay!
Expand Down Expand Up @@ -51,6 +50,8 @@ public void bind(Issue issue) {
creator.setText(String.format(itemView.getContext().getString(R.string.created_time), time, issue.getAuthor().getUsername()));

Uri url = ImageUtil.getAvatarUrl(issue.getAssignee(), itemView.getResources().getDimensionPixelSize(R.dimen.image_size));
Picasso.with(itemView.getContext()).load(url).into(image);
GitLabClient.getPicasso()
.load(url)
.into(image);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,12 @@
import android.widget.TextView;

import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.User;
import com.commit451.gitlab.tools.ImageUtil;
import com.squareup.picasso.Picasso;

import butterknife.Bind;
import butterknife.ButterKnife;
import fr.tkeunebr.gravatar.Gravatar;

/**
* Users, yay!
Expand Down Expand Up @@ -53,7 +52,7 @@ public void bind(User user) {
}

Uri url = ImageUtil.getAvatarUrl(user, itemView.getResources().getDimensionPixelSize(R.dimen.image_size));
Picasso.with(itemView.getContext())
GitLabClient.getPicasso()
.load(url)
.into(image);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
import android.widget.TextView;

import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.MergeRequestComment;
import com.commit451.gitlab.tools.ImageUtil;
import com.squareup.picasso.Picasso;

import butterknife.Bind;
import butterknife.ButterKnife;
Expand Down Expand Up @@ -53,6 +53,8 @@ public void bind(MergeRequestComment comment) {
summary.setMovementMethod(LinkMovementMethod.getInstance());

Uri imageUrl = ImageUtil.getAvatarUrl(comment.getAuthor(), itemView.getResources().getDimensionPixelSize(R.dimen.image_size));
Picasso.with(itemView.getContext()).load(imageUrl).into(icon);
GitLabClient.getPicasso()
.load(imageUrl)
.into(icon);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
import android.widget.TextView;

import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
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;
Expand Down Expand Up @@ -54,7 +54,7 @@ public void bind(MergeRequest mergeRequest) {
}

if (mergeRequest.getAuthor() != null) {
Picasso.with(itemView.getContext())
GitLabClient.getPicasso()
.load(ImageUtil.getAvatarUrl(mergeRequest.getAuthor(), itemView.getResources().getDimensionPixelSize(R.dimen.image_size)))
.into(authorImage);
author.setText(mergeRequest.getAuthor().getName() + " "
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
import android.widget.TextView;

import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.MergeRequest;
import com.commit451.gitlab.tools.ImageUtil;
import com.squareup.picasso.Picasso;

import butterknife.Bind;
import butterknife.ButterKnife;
Expand All @@ -37,7 +37,7 @@ public MergeRequestViewHolder(View view) {
}

public void bind(MergeRequest item) {
Picasso.with(itemView.getContext())
GitLabClient.getPicasso()
.load(ImageUtil.getAvatarUrl(item.getAuthor(), itemView.getResources().getDimensionPixelSize(R.dimen.image_size)))
.into(image);
if (item.getAuthor() != null && item.getAuthor().getUsername() != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
import android.widget.TextView;

import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
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;
Expand Down Expand Up @@ -58,6 +58,8 @@ public void bind(Note note) {
summary.setMovementMethod(LinkMovementMethod.getInstance());

Uri imageUrl = ImageUtil.getAvatarUrl(note.getAuthor(), itemView.getResources().getDimensionPixelSize(R.dimen.image_size));
Picasso.with(itemView.getContext()).load(imageUrl).into(icon);
GitLabClient.getPicasso()
.load(imageUrl)
.into(icon);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
import android.widget.TextView;

import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.Project;
import com.github.ivbaranov.mli.MaterialLetterIcon;
import com.squareup.picasso.Picasso;

import butterknife.Bind;
import butterknife.ButterKnife;
Expand Down Expand Up @@ -52,7 +52,7 @@ public void bind(Project project, int color) {
} else {
image.setVisibility(View.VISIBLE);
icon.setVisibility(View.GONE);
Picasso.with(itemView.getContext())
GitLabClient.getPicasso()
.load(project.getAvatarUrl())
.into(image);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
import android.widget.TextView;

import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.User;
import com.commit451.gitlab.tools.ImageUtil;
import com.squareup.picasso.Picasso;

import butterknife.Bind;
import butterknife.ButterKnife;
Expand Down Expand Up @@ -39,7 +39,7 @@ public UserViewHolder(View view) {
public void bind(User user) {
username.setText(user.getUsername());
Uri url = ImageUtil.getAvatarUrl(user, itemView.getResources().getDimensionPixelSize(R.dimen.user_list_image_size));
Picasso.with(itemView.getContext())
GitLabClient.getPicasso()
.load(url)
.into(image);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import com.commit451.gitlab.model.User;
import com.commit451.gitlab.tools.ImageUtil;
import com.commit451.gitlab.tools.NavigationManager;
import com.squareup.picasso.Picasso;

import butterknife.Bind;
import butterknife.ButterKnife;
Expand Down Expand Up @@ -150,7 +149,7 @@ private void bindUser(User user) {
userEmail.setText(user.getEmail());
}
Uri url = ImageUtil.getAvatarUrl(user, getResources().getDimensionPixelSize(R.dimen.larger_image_size));
Picasso.with(getContext())
GitLabClient.getPicasso()
.load(url)
.into(profileImage);
}
Expand Down

0 comments on commit 4108625

Please sign in to comment.