Skip to content
Snippets Groups Projects
Commit 87e05ac6 authored by Jawn's avatar Jawn
Browse files

Refactor some sillyness

parent 09d7a2df
No related branches found
No related tags found
No related merge requests found
Showing
with 233 additions and 224 deletions
Loading
Loading
@@ -7,6 +7,7 @@ import android.view.MenuItem;
import android.view.View;
import android.widget.LinearLayout;
 
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.Diff;
import com.commit451.gitlab.model.DiffLine;
import com.commit451.gitlab.tools.Repository;
Loading
Loading
@@ -62,8 +63,8 @@ public class DiffActivity extends BaseActivity {
}
});
 
Repository.getService().getCommit(Repository.selectedProject.getId(), Repository.selectedCommit.getId(), commitCallback);
Repository.getService().getCommitDiff(Repository.selectedProject.getId(), Repository.selectedCommit.getId(), diffCallback);
GitLabClient.instance().getCommit(Repository.selectedProject.getId(), Repository.selectedCommit.getId(), commitCallback);
GitLabClient.instance().getCommitDiff(Repository.selectedProject.getId(), Repository.selectedCommit.getId(), diffCallback);
}
 
private Callback<DiffLine> commitCallback = new Callback<DiffLine>() {
Loading
Loading
Loading
Loading
@@ -12,6 +12,7 @@ import android.view.View;
import android.webkit.MimeTypeMap;
import android.webkit.WebView;
 
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.tools.Repository;
import com.commit451.gitlab.tools.RetrofitHelper;
 
Loading
Loading
@@ -43,8 +44,8 @@ public class FileActivity extends BaseActivity {
if(Repository.selectedFile != null) {
setupUI();
Repository.getService().getBlob(Repository.selectedProject.getId(), Repository.newestCommit.getId(), getIntent().getExtras().getString("path") + Repository.selectedFile.getName(), blobCallback);
GitLabClient.instance().getBlob(Repository.selectedProject.getId(), Repository.newestCommit.getId(), getIntent().getExtras().getString("path") + Repository.selectedFile.getName(), blobCallback);
}
}
Loading
Loading
Loading
Loading
@@ -23,9 +23,15 @@ public class GitLabApp extends Application {
return bus;
}
 
private static GitLabApp instance;
public static GitLabApp instance() {
return instance;
}
@Override
public void onCreate() {
super.onCreate();
instance = this;
if (BuildConfig.DEBUG) {
Timber.plant(new Timber.DebugTree());
}
Loading
Loading
Loading
Loading
@@ -19,6 +19,7 @@ import android.widget.TextView;
import com.commit451.gitlab.adapter.MilestonesAdapter;
import com.commit451.gitlab.adapter.NoteAdapter;
import com.commit451.gitlab.adapter.UserAdapter;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.Issue;
import com.commit451.gitlab.model.Milestone;
import com.commit451.gitlab.model.Note;
Loading
Loading
@@ -137,15 +138,15 @@ public class IssueActivity extends BaseActivity {
assigneeSpinner.setAdapter(new UserAdapter(this, temp));
}
 
Repository.getService().getUsersFallback(Repository.selectedProject.getId(), usersCallback);
GitLabClient.instance().getUsersFallback(Repository.selectedProject.getId(), usersCallback);
ArrayList<Milestone> temp2 = new ArrayList<Milestone>();
if(Repository.selectedIssue.getMilestone() != null) {
temp2.add(Repository.selectedIssue.getMilestone());
}
milestoneSpinner.setAdapter(new MilestonesAdapter(this, temp2));
Repository.getService().getMilestones(Repository.selectedProject.getId(), milestonesCallback);
GitLabClient.instance().getMilestones(Repository.selectedProject.getId(), milestonesCallback);
Bypass bypass = new Bypass();
String desc = Repository.selectedIssue.getDescription();
Loading
Loading
@@ -160,7 +161,7 @@ public class IssueActivity extends BaseActivity {
private void loadNotes() {
progressBar.setVisibility(View.VISIBLE);
Repository.getService().getIssueNotes(Repository.selectedProject.getId(), Repository.selectedIssue.getId(), notesCallback);
GitLabClient.instance().getIssueNotes(Repository.selectedProject.getId(), Repository.selectedIssue.getId(), notesCallback);
}
 
private void changeStatus() {
Loading
Loading
@@ -173,7 +174,7 @@ public class IssueActivity extends BaseActivity {
value = "reopen";
}
 
Repository.getService().editIssue(
GitLabClient.instance().editIssue(
Repository.selectedProject.getId(),
Repository.selectedIssue.getId(),
value,
Loading
Loading
@@ -216,8 +217,8 @@ public class IssueActivity extends BaseActivity {
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(newNoteEdit.getWindowToken(), 0);
newNoteEdit.setText("");
Repository.getService().postIssueNote(Repository.selectedProject.getId(), Repository.selectedIssue.getId(), body, "", noteCallback);
GitLabClient.instance().postIssueNote(Repository.selectedProject.getId(), Repository.selectedIssue.getId(), body, "", noteCallback);
}
private Callback<Note> noteCallback = new Callback<Note>() {
Loading
Loading
@@ -261,8 +262,8 @@ public class IssueActivity extends BaseActivity {
value = "close";
if((selection.equals("reopened") || selection.equals("opened")) && Repository.selectedIssue.getState().equals("closed"))
value = "reopen";
Repository.getService().editIssue(
GitLabClient.instance().editIssue(
Repository.selectedProject.getId(),
Repository.selectedIssue.getId(),
value,
Loading
Loading
Loading
Loading
@@ -12,9 +12,10 @@ import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
 
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.Project;
import com.commit451.gitlab.model.Session;
import com.commit451.gitlab.tools.Repository;
import com.commit451.gitlab.tools.Prefs;
import com.commit451.gitlab.tools.RetrofitHelper;
 
import java.util.List;
Loading
Loading
@@ -71,7 +72,7 @@ public class LoginActivity extends BaseActivity {
@OnClick(R.id.login_button)
public void onLoginClick() {
Repository.resetService();
GitLabClient.reset();
String url = urlInput.getText().toString();
Loading
Loading
@@ -113,9 +114,9 @@ public class LoginActivity extends BaseActivity {
private void connect(boolean byAuth) {
pd = ProgressDialog.show(LoginActivity.this, "", getResources().getString(R.string.login_progress_dialog), true);
Repository.setServerUrl("");
Repository.setPrivateToken("");
Repository.setLoggedIn(false);
Prefs.setServerUrl(this, "");
Prefs.setPrivateToken(this, "");
Prefs.setLoggedIn(this, false);
 
String serverURL = urlInput.getText().toString();
Loading
Loading
@@ -124,7 +125,7 @@ public class LoginActivity extends BaseActivity {
else
serverURL = serverURL.trim();
Repository.setServerUrl(serverURL);
Prefs.setServerUrl(this, serverURL);
if(byAuth)
connectByAuth();
Loading
Loading
@@ -134,9 +135,9 @@ public class LoginActivity extends BaseActivity {
private void connectByAuth() {
if(userInput.getText().toString().contains("@"))
Repository.getService().getSessionByEmail(userInput.getText().toString(), passwordInput.getText().toString(), "", sessionCallback);
GitLabClient.instance().getSessionByEmail(userInput.getText().toString(), passwordInput.getText().toString(), "", sessionCallback);
else
Repository.getService().getSessionByUsername(userInput.getText().toString(), passwordInput.getText().toString(), "", sessionCallback);
GitLabClient.instance().getSessionByUsername(userInput.getText().toString(), passwordInput.getText().toString(), "", sessionCallback);
}
private Callback<Session> sessionCallback = new Callback<Session>() {
Loading
Loading
@@ -146,8 +147,8 @@ public class LoginActivity extends BaseActivity {
if(pd != null && pd.isShowing())
pd.cancel();
Repository.setLoggedIn(true);
Repository.setPrivateToken(session.private_token);
Prefs.setLoggedIn(LoginActivity.this, true);
Prefs.setPrivateToken(LoginActivity.this, session.private_token);
Intent i = new Intent(LoginActivity.this, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Loading
Loading
@@ -161,8 +162,8 @@ public class LoginActivity extends BaseActivity {
};
private void connectByToken() {
Repository.setPrivateToken(tokenInput.getText().toString());
Repository.getService().getProjects(tokenCallback);
Prefs.setPrivateToken(this, tokenInput.getText().toString());
GitLabClient.instance().getProjects(tokenCallback);
}
private Callback<List<Project>> tokenCallback = new Callback<List<Project>>() {
Loading
Loading
@@ -172,7 +173,7 @@ public class LoginActivity extends BaseActivity {
if(pd != null && pd.isShowing())
pd.cancel();
Repository.setLoggedIn(true);
Prefs.setLoggedIn(LoginActivity.this, true);
Intent i = new Intent(LoginActivity.this, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Loading
Loading
Loading
Loading
@@ -21,6 +21,7 @@ import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
 
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.events.CloseDrawerEvent;
import com.commit451.gitlab.events.ProjectChangedEvent;
import com.commit451.gitlab.fragments.CommitsFragment;
Loading
Loading
@@ -31,6 +32,7 @@ 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 com.commit451.gitlab.tools.Prefs;
import com.commit451.gitlab.tools.Repository;
import com.commit451.gitlab.tools.RetrofitHelper;
import com.commit451.gitlab.views.GitLabNavigationView;
Loading
Loading
@@ -60,7 +62,7 @@ public class MainActivity extends BaseActivity {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Repository.selectedBranch = Repository.branches.get(position);
Repository.setLastBranch(Repository.selectedBranch.getName());
Prefs.setLastBranch(MainActivity.this, Repository.selectedBranch.getName());
loadData();
}
 
Loading
Loading
@@ -92,7 +94,7 @@ public class MainActivity extends BaseActivity {
public boolean onMenuItemClick(MenuItem item) {
switch(item.getItemId()) {
case R.id.action_logout:
Repository.setLoggedIn(false);
Prefs.setLoggedIn(MainActivity.this, false);
startActivity(new Intent(MainActivity.this, LoginActivity.class));
return true;
default:
Loading
Loading
@@ -114,10 +116,12 @@ public class MainActivity extends BaseActivity {
ex.printStackTrace();
}
if(!Repository.isLoggedIn())
startActivity(new Intent(this, LoginActivity.class));
else
connect();
if(!Prefs.isLoggedIn(this)) {
startActivity(new Intent(this, LoginActivity.class));
}
else {
connect();
}
 
Point size = new Point();
getWindowManager().getDefaultDisplay().getSize(size);
Loading
Loading
@@ -248,7 +252,7 @@ public class MainActivity extends BaseActivity {
private void connect() {
pd = ProgressDialog.show(MainActivity.this, "", getResources().getString(R.string.main_progress_dialog), true);
Repository.getService().getGroups(groupsCallback);
GitLabClient.instance().getGroups(groupsCallback);
}
private Callback<List<Group>> groupsCallback = new Callback<List<Group>>() {
Loading
Loading
@@ -256,14 +260,14 @@ public class MainActivity extends BaseActivity {
@Override
public void success(List<Group> groups, Response resp) {
Repository.groups = new ArrayList<>(groups);
Repository.getService().getUsers(usersCallback);
GitLabClient.instance().getUsers(usersCallback);
}
@Override
public void failure(RetrofitError e) {
RetrofitHelper.printDebugInfo(MainActivity.this, e);
Repository.getService().getUsers(usersCallback);
GitLabClient.instance().getUsers(usersCallback);
}
};
Loading
Loading
@@ -272,8 +276,8 @@ public class MainActivity extends BaseActivity {
@Override
public void success(List<User> users, Response resp) {
Repository.users = new ArrayList<>(users);
Repository.getService().getProjects(projectsCallback);
GitLabClient.instance().getProjects(projectsCallback);
}
@Override
Loading
Loading
@@ -295,10 +299,10 @@ public class MainActivity extends BaseActivity {
Repository.projects = new ArrayList<>(projects);
 
if(Repository.projects.size() != 0) {
if(Repository.getLastProject().length() == 0)
if(Prefs.getLastProject(MainActivity.this).length() == 0)
Repository.selectedProject = Repository.projects.get(0);
else if(Repository.projects.size() > 0) {
String lastProject = Repository.getLastProject();
String lastProject = Prefs.getLastProject(MainActivity.this);
 
for(Project p : Repository.projects) {
if(p.toString().equals(lastProject))
Loading
Loading
@@ -311,7 +315,7 @@ public class MainActivity extends BaseActivity {
}
if(Repository.selectedProject != null)
Repository.getService().getBranches(Repository.selectedProject.getId(), branchesCallback);
GitLabClient.instance().getBranches(Repository.selectedProject.getId(), branchesCallback);
else {
if (pd != null && pd.isShowing()) {
pd.cancel();
Loading
Loading
@@ -346,7 +350,7 @@ public class MainActivity extends BaseActivity {
{
spinnerData[i] = Repository.branches.get(i);
 
if(Repository.getLastBranch().equals(spinnerData[i].getName()))
if(Prefs.getLastBranch(MainActivity.this).equals(spinnerData[i].getName()))
selectedBranchIndex = i;
else if(selectedBranchIndex == -1 && Repository.selectedProject != null && spinnerData[i].getName().equals(Repository.selectedProject.getDefaultBranch()))
selectedBranchIndex = i;
Loading
Loading
@@ -391,7 +395,7 @@ public class MainActivity extends BaseActivity {
 
@Subscribe
public void onProjectChanged(ProjectChangedEvent event) {
Repository.getService().getBranches(Repository.selectedProject.getId(), branchesCallback);
GitLabClient.instance().getBranches(Repository.selectedProject.getId(), branchesCallback);
}
}
}
Loading
Loading
@@ -9,6 +9,7 @@ import com.commit451.gitlab.R;
import com.commit451.gitlab.events.CloseDrawerEvent;
import com.commit451.gitlab.events.ProjectChangedEvent;
import com.commit451.gitlab.model.Project;
import com.commit451.gitlab.tools.Prefs;
import com.commit451.gitlab.tools.Repository;
import com.commit451.gitlab.viewHolders.ProjectViewHolder;
 
Loading
Loading
@@ -36,7 +37,7 @@ public class ProjectsAdapter extends RecyclerView.Adapter<ProjectViewHolder> {
if(Repository.selectedProject == null || !Repository.selectedProject.equals(Repository.projects.get(position))) {
//TODO make the event bus control most of this. NO MORE STATIC UI
Repository.selectedProject = Repository.projects.get(position);
Repository.setLastProject(Repository.selectedProject.toString());
Prefs.setLastProject(v.getContext(), Repository.selectedProject.toString());
Repository.issueAdapter = null;
Repository.userAdapter = null;
notifyDataSetChanged();
Loading
Loading
package com.commit451.gitlab.tools;
package com.commit451.gitlab.api;
 
import com.commit451.gitlab.model.Branch;
import com.commit451.gitlab.model.DeleteResponse;
Loading
Loading
@@ -25,7 +25,7 @@ import retrofit.http.PUT;
import retrofit.http.Path;
import retrofit.http.Query;
 
public interface GitLabAPI {
public interface GitLab {
/* --- LOGIN --- */
Loading
Loading
package com.commit451.gitlab.api;
import com.commit451.gitlab.BuildConfig;
import com.commit451.gitlab.GitLabApp;
import com.commit451.gitlab.tools.Prefs;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import org.joda.time.format.ISODateTimeFormat;
import java.lang.reflect.Type;
import java.util.Date;
import retrofit.RestAdapter;
import retrofit.converter.GsonConverter;
/**
* Created by Jawn on 7/28/2015.
*/
public class GitLabClient {
private static GitLab gitLab;
public static GitLab instance() {
if(gitLab == null) {
// Configure Gson to handle dates correctly
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
@Override
public Date deserialize(JsonElement json, Type type, JsonDeserializationContext context) throws JsonParseException {
return ISODateTimeFormat.dateTimeParser().parseDateTime(json.getAsString()).toDate();
}
});
Gson gson = gsonBuilder.create();
RestAdapter restAdapter = new RestAdapter.Builder()
.setRequestInterceptor(new GitLabInterceptor())
.setLogLevel(BuildConfig.DEBUG ? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.BASIC)
.setConverter(new GsonConverter(gson))
.setEndpoint(Prefs.getServerUrl(GitLabApp.instance()) + "/api/v3")
.build();
gitLab = restAdapter.create(GitLab.class);
}
return gitLab;
}
public static void reset() {
gitLab = null;
}
}
package com.commit451.gitlab.tools;
package com.commit451.gitlab.api;
import com.commit451.gitlab.GitLabApp;
import com.commit451.gitlab.tools.Prefs;
 
import retrofit.RequestInterceptor;
 
Loading
Loading
@@ -6,6 +9,6 @@ public class GitLabInterceptor implements RequestInterceptor {
@Override
public void intercept(RequestFacade req) {
req.addHeader("PRIVATE-TOKEN", Repository.getPrivateToken());
req.addHeader("PRIVATE-TOKEN", Prefs.getPrivateToken(GitLabApp.instance()));
}
}
Loading
Loading
@@ -12,6 +12,7 @@ import android.widget.Toast;
 
import com.commit451.gitlab.IssueActivity;
import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.Issue;
import com.commit451.gitlab.tools.Repository;
import com.commit451.gitlab.tools.RetrofitHelper;
Loading
Loading
@@ -59,7 +60,7 @@ public class AddIssueDialogFragment extends DialogFragment {
public void onSaveClick() {
if(titleInput.getText().toString().trim().length() > 0) {
pd = ProgressDialog.show(AddIssueDialogFragment.this.getActivity(), "", getResources().getString(R.string.progress_dialog), true);
Repository.getService().postIssue(Repository.selectedProject.getId(), titleInput.getText().toString().trim(), descriptionInput.getText().toString().trim(), "", issueCallback);
GitLabClient.instance().postIssue(Repository.selectedProject.getId(), titleInput.getText().toString().trim(), descriptionInput.getText().toString().trim(), "", issueCallback);
}
else {
Toast.makeText(getActivity(), getString(R.string.connection_error), Toast.LENGTH_SHORT)
Loading
Loading
Loading
Loading
@@ -12,6 +12,7 @@ import android.widget.Toast;
 
import com.commit451.gitlab.R;
import com.commit451.gitlab.adapter.UserAdapter;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.User;
import com.commit451.gitlab.tools.Repository;
import com.commit451.gitlab.tools.RetrofitHelper;
Loading
Loading
@@ -70,8 +71,8 @@ public class AddUserDialogFragment extends DialogFragment {
long userId = ((User) userSpinner.getSelectedItem()).getId();
String accessLevel = getActivity().getResources().getStringArray(R.array.role_values)[roleSpinner.getSelectedItemPosition()];
Repository.getService().addGroupMember(Repository.selectedProject.getGroup().getId(), userId, accessLevel, "", userCallback);
GitLabClient.instance().addGroupMember(Repository.selectedProject.getGroup().getId(), userId, accessLevel, "", userCallback);
}
private Callback<User> userCallback = new Callback<User>() {
Loading
Loading
Loading
Loading
@@ -12,6 +12,7 @@ import android.view.ViewGroup;
 
import com.commit451.gitlab.R;
import com.commit451.gitlab.adapter.CommitsAdapter;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.DiffLine;
import com.commit451.gitlab.tools.Repository;
import com.commit451.gitlab.tools.RetrofitHelper;
Loading
Loading
@@ -76,8 +77,8 @@ public class CommitsFragment extends Fragment implements SwipeRefreshLayout.OnRe
if(swipeLayout != null && !swipeLayout.isRefreshing()) {
swipeLayout.setRefreshing(true);
}
Repository.getService().getCommits(Repository.selectedProject.getId(), Repository.selectedBranch.getName(), commitsCallback);
GitLabClient.instance().getCommits(Repository.selectedProject.getId(), Repository.selectedBranch.getName(), commitsCallback);
}
 
public boolean onBackPressed() {
Loading
Loading
Loading
Loading
@@ -14,6 +14,7 @@ import android.widget.TextView;
 
import com.commit451.gitlab.FileActivity;
import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.TreeItem;
import com.commit451.gitlab.tools.Repository;
import com.commit451.gitlab.tools.RetrofitHelper;
Loading
Loading
@@ -84,8 +85,8 @@ public class FilesFragment extends Fragment implements SwipeRefreshLayout.OnRefr
for(String p : path) {
currentPath += p;
}
Repository.getService().getTree(Repository.selectedProject.getId(), branch, currentPath, filesCallback);
GitLabClient.instance().getTree(Repository.selectedProject.getId(), branch, currentPath, filesCallback);
}
private Callback<List<TreeItem>> filesCallback = new Callback<List<TreeItem>>() {
Loading
Loading
Loading
Loading
@@ -14,6 +14,7 @@ import android.view.ViewGroup;
 
import com.commit451.gitlab.R;
import com.commit451.gitlab.adapter.IssuesAdapter;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.Issue;
import com.commit451.gitlab.tools.Repository;
import com.commit451.gitlab.tools.RetrofitHelper;
Loading
Loading
@@ -64,8 +65,8 @@ public class IssuesFragment extends Fragment implements SwipeRefreshLayout.OnRef
if(swipeLayout != null && !swipeLayout.isRefreshing()) {
swipeLayout.setRefreshing(true);
}
Repository.getService().getIssues(Repository.selectedProject.getId(), issuesCallback);
GitLabClient.instance().getIssues(Repository.selectedProject.getId(), issuesCallback);
}
private Callback<List<Issue>> issuesCallback = new Callback<List<Issue>>() {
Loading
Loading
Loading
Loading
@@ -15,6 +15,7 @@ import android.widget.TextView;
 
import com.commit451.gitlab.R;
import com.commit451.gitlab.adapter.NewUserAdapter;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.User;
import com.commit451.gitlab.tools.Repository;
import com.commit451.gitlab.tools.RetrofitHelper;
Loading
Loading
@@ -78,8 +79,8 @@ public class UsersFragment extends Fragment implements SwipeRefreshLayout.OnRefr
}
return;
}
Repository.getService().getGroupMembers(Repository.selectedProject.getGroup().getId(), usersCallback);
GitLabClient.instance().getGroupMembers(Repository.selectedProject.getGroup().getId(), usersCallback);
}
public Callback<List<User>> usersCallback = new Callback<List<User>>() {
Loading
Loading
package com.commit451.gitlab.tools;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
public class DebugDataHelper {
private static final String TITLE = "Server Error";
private static final String MESSAGE = "Your GitLab Server behaved unexpectedly.\nWould you like to send the developer information so he can fix it?";
private static final String POSITIVE_BUTTON = "OK";
private static final String NEGATIVE_BUTTON = "Cancel";
private static final String SUBJECT = "GitLab Server Error";
private static final String RECIPIENT = "benjamin.dengler@gmail.com";
public static void sendErrorReport(final Context context, final String errorMessage) {
new AlertDialog.Builder(context).setTitle(TITLE).setMessage(MESSAGE).setPositiveButton(POSITIVE_BUTTON, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
openEmail(context, errorMessage);
dialog.dismiss();
}
}).setNegativeButton(NEGATIVE_BUTTON, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).show();
}
private static void openEmail(Context context, String errorMessage) {
Intent sendIntent = new Intent(Intent.ACTION_SEND);
String subject = SUBJECT;
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {RECIPIENT});
sendIntent.putExtra(Intent.EXTRA_TEXT, errorMessage);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
sendIntent.setType("message/rfc822");
context.startActivity(Intent.createChooser(sendIntent, "Select email client"));
}
}
package com.commit451.gitlab.tools;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
/**
* Created by Jawn on 7/28/2015.
*/
public class Prefs {
private static final String LOGGED_IN = "logged_in";
private static final String SERVER_URL = "server_url";
private static final String PRIVATE_TOKEN = "private_token";
private static final String LAST_PROJECT = "last_project";
private static final String LAST_BRANCH = "last_branch";
private static SharedPreferences getSharedPrefs(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context);
}
public static boolean isLoggedIn(Context context) {
return getSharedPrefs(context).getBoolean(LOGGED_IN, false);
}
public static void setLoggedIn(Context context, boolean loggedIn) {
SharedPreferences.Editor editor = getSharedPrefs(context).edit();
editor.putBoolean(LOGGED_IN, loggedIn);
editor.commit();
}
public static void setServerUrl(Context context, String serverUrl) {
SharedPreferences.Editor editor = getSharedPrefs(context).edit();
editor.putString(SERVER_URL, serverUrl);
editor.commit();
}
public static String getServerUrl(Context context) {
return getSharedPrefs(context).getString(SERVER_URL, "");
}
public static void setPrivateToken(Context context, String privateToken) {
SharedPreferences.Editor editor = getSharedPrefs(context).edit();
editor.putString(PRIVATE_TOKEN, privateToken);
editor.commit();
}
public static String getPrivateToken(Context context) {
return getSharedPrefs(context).getString(PRIVATE_TOKEN, "");
}
public static void setLastProject(Context context, String lastProject) {
SharedPreferences.Editor editor = getSharedPrefs(context).edit();
editor.putString(LAST_PROJECT, lastProject);
editor.commit();
}
public static String getLastProject(Context context) {
return getSharedPrefs(context).getString(LAST_PROJECT, "");
}
public static void setLastBranch(Context context, String lastBranch) {
SharedPreferences.Editor editor = getSharedPrefs(context).edit();
editor.putString(LAST_BRANCH, lastBranch);
editor.commit();
}
public static String getLastBranch(Context context) {
return getSharedPrefs(context).getString(LAST_BRANCH, "");
}
}
package com.commit451.gitlab.tools;
 
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.view.View;
import android.view.View.MeasureSpec;
import android.view.ViewGroup;
Loading
Loading
@@ -18,21 +16,8 @@ import com.commit451.gitlab.model.Issue;
import com.commit451.gitlab.model.Project;
import com.commit451.gitlab.model.TreeItem;
import com.commit451.gitlab.model.User;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
 
import org.joda.time.format.ISODateTimeFormat;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Date;
import retrofit.RestAdapter;
import retrofit.converter.GsonConverter;
 
public class Repository {
Loading
Loading
@@ -55,17 +40,7 @@ public class Repository {
public static float displayWidth;
private static final String LOGGED_IN = "logged_in";
private static final String SERVER_URL = "server_url";
private static final String PRIVATE_TOKEN = "private_token";
private static final String LAST_PROJECT = "last_project";
private static final String LAST_BRANCH = "last_branch";
private static SharedPreferences preferences;
private static GitLabAPI service;
public static void init(Context context) {
preferences = PreferenceManager.getDefaultSharedPreferences(context);
projects = null;
branches = null;
Loading
Loading
@@ -83,88 +58,7 @@ public class Repository {
issueAdapter = null;
userAdapter = null;
}
public static GitLabAPI getService() {
if(getServerUrl().length() < 1) {
Repository.setLoggedIn(false);
Repository.setPrivateToken("");
Repository.setServerUrl("");
service = null;
return null;
}
if(service == null) {
// Configure Gson to handle dates correctly
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
@Override
public Date deserialize(JsonElement json, Type type, JsonDeserializationContext context) throws JsonParseException {
return ISODateTimeFormat.dateTimeParser().parseDateTime(json.getAsString()).toDate();
}
});
Gson gson = gsonBuilder.create();
RestAdapter restAdapter = new RestAdapter.Builder().setRequestInterceptor(new GitLabInterceptor()).setConverter(new GsonConverter(gson)).setEndpoint(getServerUrl() + "/api/v3").build();
service = restAdapter.create(GitLabAPI.class);
}
return service;
}
public static boolean isLoggedIn() {
return preferences.getBoolean(LOGGED_IN, false);
}
public static void setLoggedIn(boolean loggedIn) {
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean(LOGGED_IN, loggedIn);
editor.commit();
}
public static void setServerUrl(String serverUrl) {
SharedPreferences.Editor editor = preferences.edit();
editor.putString(SERVER_URL, serverUrl);
editor.commit();
 
service = null;
}
public static String getServerUrl() {
return preferences.getString(SERVER_URL, "");
}
public static void setPrivateToken(String privateToken) {
SharedPreferences.Editor editor = preferences.edit();
editor.putString(PRIVATE_TOKEN, privateToken);
editor.commit();
}
public static String getPrivateToken() {
return preferences.getString(PRIVATE_TOKEN, "");
}
public static void setLastProject(String lastProject) {
SharedPreferences.Editor editor = preferences.edit();
editor.putString(LAST_PROJECT, lastProject);
editor.commit();
}
public static String getLastProject() {
return preferences.getString(LAST_PROJECT, "");
}
public static void setLastBranch(String lastBranch) {
SharedPreferences.Editor editor = preferences.edit();
editor.putString(LAST_BRANCH, lastBranch);
editor.commit();
}
public static String getLastBranch() {
return preferences.getString(LAST_BRANCH, "");
}
public static void setListViewSize(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if(listAdapter == null)
Loading
Loading
@@ -185,8 +79,4 @@ public class Repository {
listView.setLayoutParams(params);
listView.requestLayout();
}
public static void resetService() {
service = null;
}
}
package com.commit451.gitlab.tools;
 
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.commit451.gitlab.GitLabApp;
import com.commit451.gitlab.LoginActivity;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.exception.ExceptionUtils;
import java.io.IOException;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.ArrayList;
 
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.exception.ExceptionUtils;
import javax.net.ssl.SSLHandshakeException;
 
import retrofit.RetrofitError;
import retrofit.client.Header;
 
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.commit451.gitlab.LoginActivity;
import javax.net.ssl.SSLHandshakeException;
public class RetrofitHelper {
private static final String TAG = "GITLAB-NETWORK-ERROR";
Loading
Loading
@@ -28,7 +29,7 @@ public class RetrofitHelper {
if(error == null)
return;
else if(error.getCause() instanceof SSLHandshakeException && context != null) {
Repository.setLoggedIn(false);
Prefs.setLoggedIn(GitLabApp.instance(), false);
context.startActivity(new Intent(context, LoginActivity.class));
return;
}
Loading
Loading
@@ -71,10 +72,8 @@ public class RetrofitHelper {
errorMessage += ExceptionUtils.getStackTrace(error);
error.printStackTrace();
 
if(error.getCause() instanceof SocketTimeoutException || error.getCause() instanceof UnknownHostException || error.getCause() instanceof ConnectException)
if(error.getCause() instanceof SocketTimeoutException || error.getCause() instanceof UnknownHostException || error.getCause() instanceof ConnectException) {
return;
//Ask user if he wants to send errorMessage
else if(context != null)
DebugDataHelper.sendErrorReport(context, errorMessage);
}
}
}
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