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

Merge branch 'develop'

parents eb09a2b1 1e4317f3
No related branches found
No related tags found
No related merge requests found
Pipeline #
Showing
with 740 additions and 56 deletions
Loading
Loading
@@ -3,6 +3,7 @@ package com.commit451.gitlab.data;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.annotation.IntDef;
import android.text.TextUtils;
 
import com.commit451.gitlab.BuildConfig;
Loading
Loading
@@ -10,6 +11,8 @@ import com.commit451.gitlab.model.Account;
import com.commit451.gitlab.provider.GsonProvider;
import com.google.gson.reflect.TypeToken;
 
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.List;
 
Loading
Loading
@@ -20,6 +23,15 @@ public class Prefs {
 
private static final String KEY_ACCOUNTS = "accounts";
private static final String KEY_VERSION = "current_version";
private static final String KEY_STARTING_VIEW = "starting_view";
public static final int STARTING_VIEW_PROJECTS = 0;
public static final int STARTING_VIEW_GROUPS = 1;
public static final int STARTING_VIEW_ACTIVITY = 2;
@Retention(RetentionPolicy.SOURCE)
@IntDef({STARTING_VIEW_PROJECTS, STARTING_VIEW_GROUPS, STARTING_VIEW_ACTIVITY})
public @interface StartingView {}
 
private static SharedPreferences getSharedPrefs(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context);
Loading
Loading
@@ -70,4 +82,15 @@ public class Prefs {
.putInt(KEY_VERSION, BuildConfig.VERSION_CODE)
.commit();
}
public static int getStartingView(Context context) {
return getSharedPrefs(context).getInt(KEY_STARTING_VIEW, STARTING_VIEW_PROJECTS);
}
public static void setStartingView(Context context, int startingView) {
getSharedPrefs(context)
.edit()
.putInt(KEY_STARTING_VIEW, startingView)
.commit();
}
}
package com.commit451.gitlab.dialog;
 
import com.commit451.gitlab.R;
import android.content.Context;
import android.support.v7.app.AppCompatDialog;
import android.view.View;
Loading
Loading
@@ -9,16 +7,18 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
 
import butterknife.Bind;
import com.commit451.gitlab.R;
import butterknife.BindView;
import butterknife.ButterKnife;
 
public class HttpLoginDialog extends AppCompatDialog {
 
@Bind(R.id.message_text) TextView mMessageTextView;
@Bind(R.id.login_username) EditText mUsernameView;
@Bind(R.id.login_password) EditText mPasswordView;
@Bind(R.id.ok_button) Button mOkButton;
@Bind(R.id.cancel_button) Button mCancelButton;
@BindView(R.id.message_text) TextView mMessageTextView;
@BindView(R.id.login_username) EditText mUsernameView;
@BindView(R.id.login_password) EditText mPasswordView;
@BindView(R.id.ok_button) Button mOkButton;
@BindView(R.id.cancel_button) Button mCancelButton;
 
public HttpLoginDialog(Context context, String realm, final LoginListener loginListener) {
super(context);
Loading
Loading
package com.commit451.gitlab.event;
import com.commit451.gitlab.model.api.Build;
/**
* A build changed
*/
public class BuildChangedEvent {
public final Build build;
public BuildChangedEvent(Build build) {
this.build = build;
}
}
Loading
Loading
@@ -2,7 +2,6 @@ package com.commit451.gitlab.event;
 
/**
* Close the drawer!
* Created by Jawn on 7/28/2015.
*/
public class CloseDrawerEvent {
}
Loading
Loading
@@ -4,7 +4,6 @@ import com.commit451.gitlab.model.api.Issue;
 
/**
* Event indicating that an issue has changed
* Created by Jawnnypoo on 10/19/2015.
*/
public class IssueChangedEvent {
public final Issue mIssue;
Loading
Loading
Loading
Loading
@@ -4,7 +4,6 @@ import com.commit451.gitlab.model.api.Issue;
 
/**
* Oh no! An Issue!
* Created by Jawn on 7/31/2015.
*/
public class IssueCreatedEvent {
public final Issue mIssue;
Loading
Loading
Loading
Loading
@@ -4,7 +4,6 @@ import com.commit451.gitlab.model.Account;
 
/**
* Called when a user logs in
* Created by John on 12/23/15.
*/
public class LoginEvent {
public Account account;
Loading
Loading
package com.commit451.gitlab.event;
/**
* Created by Jawn on 8/21/2015.
*/
public class LogoutEvent {
}
Loading
Loading
@@ -4,7 +4,6 @@ import com.commit451.gitlab.model.api.Member;
 
/**
* Indicates that a user was added
* Created by Jawn on 9/17/2015.
*/
public class MemberAddedEvent {
public final Member mMember;
Loading
Loading
package com.commit451.gitlab.event;
import com.commit451.gitlab.model.api.MergeRequest;
/**
* The merge request changed
*/
public class MergeRequestChangedEvent {
public final MergeRequest mergeRequest;
public MergeRequestChangedEvent(MergeRequest mergeRequest) {
this.mergeRequest = mergeRequest;
}
}
Loading
Loading
@@ -4,7 +4,6 @@ import com.commit451.gitlab.model.api.Project;
 
/**
* Signifies that either a project or its branch has changed and there needs to be a reload
* Created by Jawn on 9/22/2015.
*/
public class ProjectReloadEvent {
public final Project mProject;
Loading
Loading
Loading
Loading
@@ -2,7 +2,6 @@ package com.commit451.gitlab.event;
 
/**
* Signifies that the fragments should reload their data
* Created by Jawn on 9/1/2015.
*/
public class ReloadDataEvent {
}
package com.commit451.gitlab.fragment;
 
import com.afollestad.appthemeengine.ATE;
import com.commit451.gitlab.LabCoatApp;
import com.commit451.gitlab.event.ReloadDataEvent;
import com.commit451.gitlab.util.AppThemeUtil;
import com.squareup.otto.Subscribe;
 
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.View;
 
import com.commit451.gitlab.LabCoatApp;
import com.commit451.gitlab.event.ReloadDataEvent;
import com.squareup.otto.Subscribe;
public class BaseFragment extends Fragment{
 
private EventReceiver mBaseEventReceiever;
Loading
Loading
package com.commit451.gitlab.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.commit451.gitlab.LabCoatApp;
import com.commit451.gitlab.R;
import com.commit451.gitlab.adapter.BuildArtifactsAdapter;
import com.commit451.gitlab.adapter.DividerItemDecoration;
import com.commit451.gitlab.api.EasyCallback;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.event.BuildChangedEvent;
import com.commit451.gitlab.model.api.Artifact;
import com.commit451.gitlab.model.api.Build;
import com.commit451.gitlab.model.api.Project;
import com.squareup.otto.Subscribe;
import org.parceler.Parcels;
import java.util.List;
import butterknife.BindView;
import timber.log.Timber;
/**
* Shows the build artifacts
*/
public class BuildArtifactsFragment extends ButterKnifeFragment {
private static final String KEY_PROJECT = "project";
private static final String KEY_BUILD = "build";
public static BuildArtifactsFragment newInstance(Project project, Build build) {
BuildArtifactsFragment fragment = new BuildArtifactsFragment();
Bundle args = new Bundle();
args.putParcelable(KEY_PROJECT, Parcels.wrap(project));
args.putParcelable(KEY_BUILD, Parcels.wrap(build));
fragment.setArguments(args);
return fragment;
}
@BindView(R.id.swipe_layout) SwipeRefreshLayout mSwipeRefreshLayout;
@BindView(R.id.list) RecyclerView mCommitsListView;
@BindView(R.id.message_text) TextView mMessageView;
private Project mProject;
private Build mBuild;
private BuildArtifactsAdapter mArtifactsAdapter;
EventReceiver mEventReceiver;
private final EasyCallback<List<Artifact>> mCommitsCallback = new EasyCallback<List<Artifact>>() {
@Override
public void onResponse(@NonNull List<Artifact> response) {
if (getView() == null) {
return;
}
mSwipeRefreshLayout.setRefreshing(false);
if (!response.isEmpty()) {
mMessageView.setVisibility(View.GONE);
} else {
mMessageView.setVisibility(View.VISIBLE);
mMessageView.setText(R.string.no_commits_found);
}
mArtifactsAdapter.setData(response);
}
@Override
public void onAllFailure(Throwable t) {
Timber.e(t, null);
if (getView() == null) {
return;
}
mSwipeRefreshLayout.setRefreshing(false);
mMessageView.setVisibility(View.VISIBLE);
mMessageView.setText(R.string.no_build_artifacts_found);
mArtifactsAdapter.setData(null);
}
};
private final BuildArtifactsAdapter.Listener mAdapterListener = new BuildArtifactsAdapter.Listener() {
@Override
public void onFolderClicked(Artifact treeItem) {
}
@Override
public void onFileClicked(Artifact treeItem) {
}
@Override
public void onCopyClicked(Artifact treeItem) {
}
@Override
public void onShareClicked(Artifact treeItem) {
}
@Override
public void onOpenInBrowserClicked(Artifact treeItem) {
}
};
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mProject = Parcels.unwrap(getArguments().getParcelable(KEY_PROJECT));
mBuild = Parcels.unwrap(getArguments().getParcelable(KEY_BUILD));
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_build_artifacts, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mArtifactsAdapter = new BuildArtifactsAdapter(mAdapterListener);
mCommitsListView.setLayoutManager(new LinearLayoutManager(getActivity()));
mCommitsListView.addItemDecoration(new DividerItemDecoration(getActivity()));
mCommitsListView.setAdapter(mArtifactsAdapter);
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
loadData();
}
});
loadData();
mEventReceiver = new EventReceiver();
LabCoatApp.bus().register(mEventReceiver);
}
@Override
public void onDestroyView() {
super.onDestroyView();
LabCoatApp.bus().unregister(mEventReceiver);
}
@Override
protected void loadData() {
if (getView() == null) {
return;
}
mSwipeRefreshLayout.post(new Runnable() {
@Override
public void run() {
if (mSwipeRefreshLayout != null) {
mSwipeRefreshLayout.setRefreshing(true);
}
}
});
GitLabClient.instance().getBuildArtifacts(mProject.getId(), mBuild.getId()).enqueue(mCommitsCallback);
}
private class EventReceiver {
@Subscribe
public void onBuildChanged(BuildChangedEvent event) {
if (mBuild.getId() == event.build.getId()) {
mBuild = event.build;
loadData();
}
}
}
}
\ No newline at end of file
package com.commit451.gitlab.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.Snackbar;
import android.support.v4.widget.SwipeRefreshLayout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.commit451.gitlab.LabCoatApp;
import com.commit451.gitlab.R;
import com.commit451.gitlab.api.EasyCallback;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.event.BuildChangedEvent;
import com.commit451.gitlab.model.api.Build;
import com.commit451.gitlab.model.api.Project;
import com.commit451.gitlab.model.api.RepositoryCommit;
import com.commit451.gitlab.model.api.Runner;
import com.commit451.gitlab.util.DateUtils;
import com.squareup.otto.Subscribe;
import org.parceler.Parcels;
import java.util.Date;
import butterknife.BindView;
import timber.log.Timber;
/**
* Shows the details of a build
*/
public class BuildDescriptionFragment extends ButterKnifeFragment {
private static final String KEY_PROJECT = "project";
private static final String KEY_BUILD = "build";
public static BuildDescriptionFragment newInstance(Project project, Build build) {
BuildDescriptionFragment fragment = new BuildDescriptionFragment();
Bundle args = new Bundle();
args.putParcelable(KEY_PROJECT, Parcels.wrap(project));
args.putParcelable(KEY_BUILD, Parcels.wrap(build));
fragment.setArguments(args);
return fragment;
}
@BindView(R.id.root)
ViewGroup mRoot;
@BindView(R.id.swipe_layout)
SwipeRefreshLayout mSwipeRefreshLayout;
@BindView(R.id.text_duration)
TextView mTextDuration;
@BindView(R.id.text_created)
TextView mTextCreated;
@BindView(R.id.text_finished)
TextView mTextFinished;
@BindView(R.id.text_runner)
TextView mTextRunner;
@BindView(R.id.text_author)
TextView mTextAuthor;
@BindView(R.id.text_message)
TextView mTextMessage;
Project mProject;
Build mBuild;
EventReceiver mEventReceiver;
private final EasyCallback<Build> mLoadBuildCallback = new EasyCallback<Build>() {
@Override
public void onResponse(@NonNull Build response) {
mSwipeRefreshLayout.setRefreshing(false);
mBuild = response;
bindBuild(response);
LabCoatApp.bus().post(new BuildChangedEvent(response));
}
@Override
public void onAllFailure(Throwable t) {
Timber.e(t, null);
Snackbar.make(mRoot, R.string.unable_to_load_build, Snackbar.LENGTH_LONG)
.show();
}
};
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mProject = Parcels.unwrap(getArguments().getParcelable(KEY_PROJECT));
mBuild = Parcels.unwrap(getArguments().getParcelable(KEY_BUILD));
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_build_description, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
load();
}
});
bindBuild(mBuild);
mEventReceiver = new EventReceiver();
LabCoatApp.bus().register(mEventReceiver);
}
private void load() {
GitLabClient.instance().getBuild(mProject.getId(), mBuild.getId()).enqueue(mLoadBuildCallback);
}
private void bindBuild(Build build) {
Date finishedTime = build.getFinishedAt();
if (finishedTime == null) {
finishedTime = new Date();
}
String timeTaken = DateUtils.getTimeTaken(build.getStartedAt(), finishedTime);
String duration = String.format(getString(R.string.build_duration), timeTaken);
mTextDuration.setText(duration);
String created = String.format(getString(R.string.build_created), DateUtils.getRelativeTimeSpanString(getActivity(), build.getCreatedAt()));
mTextCreated.setText(created);
if (build.getFinishedAt() != null) {
String finished = String.format(getString(R.string.build_finished), DateUtils.getRelativeTimeSpanString(getActivity(), build.getFinishedAt()));
mTextFinished.setText(finished);
mTextFinished.setVisibility(View.VISIBLE);
} else {
mTextFinished.setVisibility(View.GONE);
}
bindRunner(build.getRunner());
bindCommit(build.getCommit());
}
private void bindRunner(Runner runner) {
String runnerNum = String.format(getString(R.string.runner_number), String.valueOf(runner.getId()));
mTextRunner.setText(runnerNum);
}
private void bindCommit(RepositoryCommit commit) {
String authorText = String.format(getString(R.string.build_commit_author), commit.getAuthorName());
mTextAuthor.setText(authorText);
String messageText = String.format(getString(R.string.build_commit_message), commit.getMessage());
mTextMessage.setText(messageText);
}
@Override
public void onDestroyView() {
super.onDestroyView();
LabCoatApp.bus().unregister(mEventReceiver);
}
private class EventReceiver {
@Subscribe
public void onBuildChangedEvent(BuildChangedEvent event) {
if (mBuild.getId() == event.build.getId()) {
mBuild = event.build;
bindBuild(mBuild);
}
}
}
}
package com.commit451.gitlab.fragment;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.Snackbar;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import com.commit451.gitlab.LabCoatApp;
import com.commit451.gitlab.R;
import com.commit451.gitlab.activity.ProjectActivity;
import com.commit451.gitlab.adapter.BuildsAdapter;
import com.commit451.gitlab.adapter.DividerItemDecoration;
import com.commit451.gitlab.api.EasyCallback;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.event.BuildChangedEvent;
import com.commit451.gitlab.event.ProjectReloadEvent;
import com.commit451.gitlab.model.api.Build;
import com.commit451.gitlab.model.api.Project;
import com.commit451.gitlab.navigation.NavigationManager;
import com.commit451.gitlab.util.PaginationUtil;
import com.squareup.otto.Subscribe;
import java.util.List;
import butterknife.BindView;
import timber.log.Timber;
/**
* Shows the builds of a project
*/
public class BuildsFragment extends ButterKnifeFragment {
public static BuildsFragment newInstance() {
return new BuildsFragment();
}
@BindView(R.id.root)
ViewGroup mRoot;
@BindView(R.id.swipe_layout)
SwipeRefreshLayout mSwipeRefreshLayout;
@BindView(R.id.list)
RecyclerView mListBuilds;
@BindView(R.id.message_text)
TextView mMessageView;
@BindView(R.id.issue_spinner)
Spinner mSpinner;
private Project mProject;
private BuildsAdapter mBuildsAdapter;
private LinearLayoutManager mLayoutManagerBuilds;
private EventReceiver mEventReceiver;
String mScope;
private String[] mScopes;
private Uri mNextPageUrl;
private boolean mLoading = false;
private final RecyclerView.OnScrollListener mOnScrollListener = new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int visibleItemCount = mLayoutManagerBuilds.getChildCount();
int totalItemCount = mLayoutManagerBuilds.getItemCount();
int firstVisibleItem = mLayoutManagerBuilds.findFirstVisibleItemPosition();
if (firstVisibleItem + visibleItemCount >= totalItemCount && !mLoading && mNextPageUrl != null) {
loadMore();
}
}
};
private final BuildsAdapter.Listener mAdapterListener = new BuildsAdapter.Listener() {
@Override
public void onBuildClicked(Build build) {
if (mProject != null) {
NavigationManager.navigateToBuild(getActivity(), mProject, build);
} else {
Snackbar.make(mRoot, getString(R.string.wait_for_project_to_load), Snackbar.LENGTH_SHORT)
.show();
}
}
};
private final AdapterView.OnItemSelectedListener mSpinnerItemSelectedListener = new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
mScope = mScopes[position];
loadData();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
};
private final EasyCallback<List<Build>> mLoadCallback = new EasyCallback<List<Build>>() {
@Override
public void onResponse(@NonNull List<Build> response) {
mLoading = false;
if (getView() == null) {
return;
}
mSwipeRefreshLayout.setRefreshing(false);
if (response.isEmpty()) {
mMessageView.setVisibility(View.VISIBLE);
mMessageView.setText(R.string.no_builds);
}
mBuildsAdapter.setValues(response);
mNextPageUrl = PaginationUtil.parse(getResponse()).getNext();
Timber.d("Next page url %s", mNextPageUrl);
}
@Override
public void onAllFailure(Throwable t) {
mLoading = false;
Timber.e(t, null);
if (getView() == null) {
return;
}
mSwipeRefreshLayout.setRefreshing(false);
mMessageView.setVisibility(View.VISIBLE);
mMessageView.setText(R.string.connection_error_issues);
mBuildsAdapter.setValues(null);
mNextPageUrl = null;
}
};
private final EasyCallback<List<Build>> mMoreCallback = new EasyCallback<List<Build>>() {
@Override
public void onResponse(@NonNull List<Build> response) {
mLoading = false;
mBuildsAdapter.setLoading(false);
mNextPageUrl = PaginationUtil.parse(getResponse()).getNext();
mBuildsAdapter.addValues(response);
}
@Override
public void onAllFailure(Throwable t) {
Timber.e(t, null);
mLoading = false;
mBuildsAdapter.setLoading(false);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mScopes = getResources().getStringArray(R.array.build_scope_values);
mScope = mScopes[0];
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_builds, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mEventReceiver = new EventReceiver();
LabCoatApp.bus().register(mEventReceiver);
mBuildsAdapter = new BuildsAdapter(mAdapterListener);
mLayoutManagerBuilds = new LinearLayoutManager(getActivity());
mListBuilds.setLayoutManager(mLayoutManagerBuilds);
mListBuilds.addItemDecoration(new DividerItemDecoration(getActivity()));
mListBuilds.setAdapter(mBuildsAdapter);
mListBuilds.addOnScrollListener(mOnScrollListener);
mSpinner.setAdapter(new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1,
android.R.id.text1, getResources().getStringArray(R.array.build_scope_names)));
mSpinner.setOnItemSelectedListener(mSpinnerItemSelectedListener);
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
loadData();
}
});
if (getActivity() instanceof ProjectActivity) {
mProject = ((ProjectActivity) getActivity()).getProject();
loadData();
} else {
throw new IllegalStateException("Incorrect parent activity");
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
LabCoatApp.bus().unregister(mEventReceiver);
}
@Override
protected void loadData() {
if (getView() == null) {
return;
}
if (mProject == null) {
mSwipeRefreshLayout.setRefreshing(false);
return;
}
mMessageView.setVisibility(View.GONE);
mSwipeRefreshLayout.post(new Runnable() {
@Override
public void run() {
if (mSwipeRefreshLayout != null) {
mSwipeRefreshLayout.setRefreshing(true);
}
}
});
mNextPageUrl = null;
mLoading = true;
GitLabClient.instance().getBuilds(mProject.getId(), mScope).enqueue(mLoadCallback);
}
private void loadMore() {
if (getView() == null) {
return;
}
if (mNextPageUrl == null) {
return;
}
mBuildsAdapter.setLoading(true);
mLoading = true;
Timber.d("loadMore called for %s", mNextPageUrl);
GitLabClient.instance().getBuilds(mNextPageUrl.toString(), mScope).enqueue(mMoreCallback);
}
private class EventReceiver {
@Subscribe
public void onProjectReload(ProjectReloadEvent event) {
mProject = event.mProject;
loadData();
}
@Subscribe
public void onBuildChangedEvent(BuildChangedEvent event) {
mBuildsAdapter.updateBuild(event.build);
}
}
}
\ No newline at end of file
package com.commit451.gitlab.fragment;
import android.os.Bundle;
import android.view.View;
import butterknife.ButterKnife;
import butterknife.Unbinder;
/**
* Takes care of binding and unbinding
*/
public class ButterKnifeFragment extends BaseFragment {
private Unbinder mUnbinder;
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mUnbinder = ButterKnife.bind(this, view);
}
@Override
public void onDestroyView() {
mUnbinder.unbind();
super.onDestroyView();
}
}
Loading
Loading
@@ -21,24 +21,23 @@ import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.event.ProjectReloadEvent;
import com.commit451.gitlab.model.api.Project;
import com.commit451.gitlab.model.api.RepositoryCommit;
import com.commit451.gitlab.util.NavigationManager;
import com.commit451.gitlab.navigation.NavigationManager;
import com.squareup.otto.Subscribe;
 
import java.util.List;
 
import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.BindView;
import timber.log.Timber;
 
public class CommitsFragment extends BaseFragment {
public class CommitsFragment extends ButterKnifeFragment {
 
public static CommitsFragment newInstance() {
return new CommitsFragment();
}
 
@Bind(R.id.swipe_layout) SwipeRefreshLayout mSwipeRefreshLayout;
@Bind(R.id.list) RecyclerView mCommitsListView;
@Bind(R.id.message_text) TextView mMessageView;
@BindView(R.id.swipe_layout) SwipeRefreshLayout mSwipeRefreshLayout;
@BindView(R.id.list) RecyclerView mCommitsListView;
@BindView(R.id.message_text) TextView mMessageView;
 
private Project mProject;
private String mBranchName;
Loading
Loading
@@ -100,6 +99,9 @@ public class CommitsFragment extends BaseFragment {
@Override
public void onResponse(@NonNull List<RepositoryCommit> response) {
mLoading = false;
if (getView() == null) {
return;
}
mCommitsAdapter.setLoading(false);
if (response.isEmpty()) {
mPage = -1;
Loading
Loading
@@ -112,6 +114,9 @@ public class CommitsFragment extends BaseFragment {
public void onAllFailure(Throwable t) {
mLoading = false;
Timber.e(t, null);
if (getView() == null) {
return;
}
mCommitsAdapter.setLoading(false);
}
};
Loading
Loading
@@ -131,7 +136,6 @@ public class CommitsFragment extends BaseFragment {
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ButterKnife.bind(this, view);
 
mEventReceiver = new EventReceiver();
LabCoatApp.bus().register(mEventReceiver);
Loading
Loading
@@ -162,7 +166,6 @@ public class CommitsFragment extends BaseFragment {
@Override
public void onDestroyView() {
super.onDestroyView();
ButterKnife.unbind(this);
LabCoatApp.bus().unregister(mEventReceiver);
}
 
Loading
Loading
Loading
Loading
@@ -19,13 +19,16 @@ import com.commit451.gitlab.api.EasyCallback;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.rss.Entry;
import com.commit451.gitlab.model.rss.Feed;
import com.commit451.gitlab.util.NavigationManager;
import com.commit451.gitlab.navigation.NavigationManager;
import com.novoda.simplechromecustomtabs.SimpleChromeCustomTabs;
 
import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.BindView;
import timber.log.Timber;
 
public class FeedFragment extends BaseFragment {
/**
* Takes an RSS feed url and shows the feed
*/
public class FeedFragment extends ButterKnifeFragment {
 
private static final String EXTRA_FEED_URL = "extra_feed_url";
 
Loading
Loading
@@ -38,11 +41,11 @@ public class FeedFragment extends BaseFragment {
return fragment;
}
 
@Bind(R.id.swipe_layout)
@BindView(R.id.swipe_layout)
SwipeRefreshLayout mSwipeRefreshLayout;
@Bind(R.id.list)
@BindView(R.id.list)
RecyclerView mEntryListView;
@Bind(R.id.message_text)
@BindView(R.id.message_text)
TextView mMessageView;
 
private Uri mFeedUrl;
Loading
Loading
@@ -100,7 +103,6 @@ public class FeedFragment extends BaseFragment {
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ButterKnife.bind(this, view);
 
mEventReceiver = new EventReceiver();
LabCoatApp.bus().register(mEventReceiver);
Loading
Loading
@@ -120,10 +122,23 @@ public class FeedFragment extends BaseFragment {
loadData();
}
 
@Override
public void onResume() {
super.onResume();
SimpleChromeCustomTabs.getInstance().connectTo(getActivity());
}
@Override
public void onPause() {
if (SimpleChromeCustomTabs.getInstance().isConnected()) {
SimpleChromeCustomTabs.getInstance().disconnectFrom(getActivity());
}
super.onPause();
}
@Override
public void onDestroyView() {
super.onDestroyView();
ButterKnife.unbind(this);
LabCoatApp.bus().unregister(mEventReceiver);
}
 
Loading
Loading
Loading
Loading
@@ -26,28 +26,27 @@ import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.event.ProjectReloadEvent;
import com.commit451.gitlab.model.api.Project;
import com.commit451.gitlab.model.api.RepositoryTreeObject;
import com.commit451.gitlab.navigation.NavigationManager;
import com.commit451.gitlab.util.IntentUtil;
import com.commit451.gitlab.util.NavigationManager;
import com.squareup.otto.Subscribe;
 
import java.util.ArrayList;
import java.util.List;
 
import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.BindView;
import timber.log.Timber;
 
public class FilesFragment extends BaseFragment {
public class FilesFragment extends ButterKnifeFragment {
 
public static FilesFragment newInstance() {
return new FilesFragment();
}
 
@Bind(R.id.root) View mRoot;
@Bind(R.id.swipe_layout) SwipeRefreshLayout mSwipeRefreshLayout;
@Bind(R.id.list) RecyclerView mFilesListView;
@Bind(R.id.breadcrumb) RecyclerView mBreadcrumbListView;
@Bind(R.id.message_text) TextView mMessageView;
@BindView(R.id.root) View mRoot;
@BindView(R.id.swipe_layout) SwipeRefreshLayout mSwipeRefreshLayout;
@BindView(R.id.list) RecyclerView mFilesListView;
@BindView(R.id.breadcrumb) RecyclerView mBreadcrumbListView;
@BindView(R.id.message_text) TextView mMessageView;
 
private Project mProject;
private String mBranchName;
Loading
Loading
@@ -140,7 +139,6 @@ public class FilesFragment extends BaseFragment {
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ButterKnife.bind(this, view);
 
mEventReceiver = new EventReceiver();
LabCoatApp.bus().register(mEventReceiver);
Loading
Loading
@@ -173,7 +171,6 @@ public class FilesFragment extends BaseFragment {
@Override
public void onDestroyView() {
super.onDestroyView();
ButterKnife.unbind(this);
LabCoatApp.bus().unregister(mEventReceiver);
}
 
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