Skip to content
Snippets Groups Projects
Commit bda83257 authored by John Carlson's avatar John Carlson
Browse files

Update code style for activities and models

parent 4088fe8f
No related branches found
No related tags found
No related merge requests found
Pipeline #
Showing
with 871 additions and 896 deletions
LabCoat @ dc969514
Subproject commit dc96951407803121714a9c55df413867d85dd832
Loading
Loading
@@ -70,13 +70,13 @@ ext.okHttpVersion = '3.5.0'
ext.butterknifeVersion = '8.4.0'
ext.loganSquareVersion = '1.3.7'
ext.parcelerVersion = '1.1.6'
ext.reptarVersion = '2.0.1'
ext.reptarVersion = '2.1.0'
ext.adapterLayout = '1.1.0'
ext.materialDialogsVersion = '0.9.1.0'
ext.materialDialogsVersion = '0.9.2.1'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
testCompile 'org.robolectric:robolectric:3.1.4'
testCompile 'org.robolectric:robolectric:3.2.1'
 
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
Loading
Loading
Loading
Loading
@@ -70,11 +70,13 @@
<activity android:name=".activity.SettingsActivity" />
<activity android:name=".activity.AddLabelActivity" />
<activity android:name=".activity.AddNewLabelActivity" />
<activity android:name=".activity.PickBranchOrTagActivity"
android:theme="@style/Activity.Translucent"/>
<activity
android:name=".activity.PickBranchOrTagActivity"
android:theme="@style/Activity.Translucent" />
<activity android:name=".activity.WebviewLoginActivity" />
<activity android:name=".activity.AttachActivity"
android:theme="@style/Activity.Translucent"/>
<activity
android:name=".activity.AttachActivity"
android:theme="@style/Activity.Translucent" />
<activity
android:name=".activity.RoutingActivity"
android:launchMode="singleTask"
Loading
Loading
@@ -103,7 +105,7 @@
</intent-filter>
</activity>
 
<activity android:name=".widget.ProjectFeedWidgetConfigureProjectActivity"/>
<activity android:name=".widget.ProjectFeedWidgetConfigureProjectActivity" />
 
<receiver
android:name=".widget.UserFeedWidgetProvider"
Loading
Loading
Loading
Loading
@@ -9,6 +9,7 @@ import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.Snackbar;
import android.support.v7.widget.Toolbar;
import android.view.View;
Loading
Loading
@@ -52,15 +53,19 @@ public class AboutActivity extends BaseActivity {
}
 
@BindView(R.id.root)
ViewGroup mRoot;
ViewGroup root;
@BindView(R.id.toolbar)
Toolbar mToolbar;
Toolbar toolbar;
@BindView(R.id.contributors)
TextView mContributors;
TextView textContributors;
@BindView(R.id.physics_layout)
PhysicsFlowLayout mPhysicsLayout;
PhysicsFlowLayout physicsLayout;
@BindView(R.id.progress)
View mProgress;
View progress;
SensorManager sensorManager;
Sensor gravitySensor;
Gimbal gimbal;
 
@OnClick(R.id.sauce)
void onSauceClick() {
Loading
Loading
@@ -71,17 +76,13 @@ public class AboutActivity extends BaseActivity {
}
}
 
SensorManager sensorManager;
Sensor gravitySensor;
Gimbal mGimbal;
private final SensorEventListener sensorEventListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_GRAVITY) {
if (mPhysicsLayout.getPhysics().getWorld() != null) {
mGimbal.normalizeGravityEvent(event);
mPhysicsLayout.getPhysics().getWorld().setGravity(new Vec2(-event.values[0], event.values[1]));
if (physicsLayout.getPhysics().getWorld() != null) {
gimbal.normalizeGravityEvent(event);
physicsLayout.getPhysics().getWorld().setGravity(new Vec2(-event.values[0], event.values[1]));
}
}
}
Loading
Loading
@@ -94,19 +95,19 @@ public class AboutActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mGimbal = new Gimbal(this);
mGimbal.lock();
gimbal = new Gimbal(this);
gimbal.lock();
setContentView(R.layout.activity_about);
ButterKnife.bind(this);
mToolbar.setNavigationIcon(R.drawable.ic_back_24dp);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
toolbar.setNavigationIcon(R.drawable.ic_back_24dp);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
mToolbar.setTitle(R.string.about);
mPhysicsLayout.getPhysics().enableFling();
toolbar.setTitle(R.string.about);
physicsLayout.getPhysics().enableFling();
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
gravitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);
App.get().getGitLab().getContributors(REPO_ID)
Loading
Loading
@@ -116,20 +117,20 @@ public class AboutActivity extends BaseActivity {
.subscribe(new CustomSingleObserver<List<Contributor>>() {
 
@Override
public void error(Throwable t) {
public void error(@NonNull Throwable t) {
Timber.e(t);
mProgress.setVisibility(View.GONE);
Snackbar.make(mRoot, R.string.failed_to_load_contributors, Snackbar.LENGTH_SHORT)
progress.setVisibility(View.GONE);
Snackbar.make(root, R.string.failed_to_load_contributors, Snackbar.LENGTH_SHORT)
.show();
}
 
@Override
public void success(List<Contributor> contributors) {
mProgress.setVisibility(View.GONE);
public void success(@NonNull List<Contributor> contributors) {
progress.setVisibility(View.GONE);
addContributors(Contributor.groupContributors(contributors));
}
});
mProgress.setVisibility(View.VISIBLE);
progress.setVisibility(View.VISIBLE);
}
 
@Override
Loading
Loading
@@ -149,7 +150,7 @@ public class AboutActivity extends BaseActivity {
config.shapeType = PhysicsConfig.SHAPE_TYPE_CIRCLE;
int borderSize = getResources().getDimensionPixelSize(R.dimen.border_size);
int imageSize = getResources().getDimensionPixelSize(R.dimen.circle_size);
for (int i=0; i<contributors.size(); i++) {
for (int i = 0; i < contributors.size(); i++) {
Contributor contributor = contributors.get(i);
CircleImageView imageView = new CircleImageView(this);
FlowLayout.LayoutParams llp = new FlowLayout.LayoutParams(
Loading
Loading
@@ -159,13 +160,13 @@ public class AboutActivity extends BaseActivity {
imageView.setBorderWidth(borderSize);
imageView.setBorderColor(Color.BLACK);
Physics.setPhysicsConfig(imageView, config);
mPhysicsLayout.addView(imageView);
physicsLayout.addView(imageView);
 
Uri url = ImageUtil.getAvatarUrl(contributor.getEmail(), imageSize);
App.get().getPicasso()
.load(url)
.into(imageView);
}
mPhysicsLayout.requestLayout();
physicsLayout.requestLayout();
}
}
Loading
Loading
@@ -32,10 +32,10 @@ public class ActivityActivity extends BaseActivity {
return intent;
}
 
@BindView(R.id.drawer_layout) DrawerLayout mDrawerLayout;
@BindView(R.id.toolbar) Toolbar mToolbar;
EventReceiver mEventReceiver;
@BindView(R.id.drawer_layout)
DrawerLayout mDrawerLayout;
@BindView(R.id.toolbar)
Toolbar mToolbar;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
Loading
Loading
@@ -43,8 +43,7 @@ public class ActivityActivity extends BaseActivity {
setContentView(R.layout.activity_activity);
ButterKnife.bind(this);
 
mEventReceiver = new EventReceiver();
App.bus().register(mEventReceiver);
App.bus().register(this);
 
mToolbar.setTitle(R.string.nav_activity);
mToolbar.setNavigationIcon(R.drawable.ic_menu_24dp);
Loading
Loading
@@ -75,14 +74,11 @@ public class ActivityActivity extends BaseActivity {
@Override
protected void onDestroy() {
super.onDestroy();
App.bus().unregister(mEventReceiver);
App.bus().unregister(this);
}
 
private class EventReceiver {
@Subscribe
public void onCloseDrawerEvent(CloseDrawerEvent event) {
mDrawerLayout.closeDrawers();
}
@Subscribe
public void onCloseDrawerEvent(CloseDrawerEvent event) {
mDrawerLayout.closeDrawers();
}
}
Loading
Loading
@@ -4,6 +4,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.Snackbar;
import android.support.design.widget.TextInputLayout;
Loading
Loading
@@ -70,44 +71,42 @@ public class AddIssueActivity extends MorphActivity {
}
 
@BindView(R.id.root)
FrameLayout mRoot;
FrameLayout root;
@BindView(R.id.toolbar)
Toolbar mToolbar;
Toolbar toolbar;
@BindView(R.id.title_text_input_layout)
TextInputLayout mTitleInputLayout;
@BindView(R.id.title)
EditText mTitleInput;
TextInputLayout textInputLayoutTitle;
@BindView(R.id.description)
EditText mDescriptionInput;
EditText textDescription;
@BindView(R.id.progress)
View mProgress;
View progress;
@BindView(R.id.assignee_progress)
View mAssigneeProgress;
View progressAssignee;
@BindView(R.id.assignee_spinner)
Spinner mAssigneeSpinner;
Spinner spinnerAssignee;
@BindView(R.id.milestone_progress)
View mMilestoneProgress;
View progressMilestone;
@BindView(R.id.milestone_spinner)
Spinner mMilestoneSpinner;
Spinner spinnerMilestone;
@BindView(R.id.label_label)
TextView mLabelLabel;
TextView textLabel;
@BindView(R.id.labels_progress)
View mLabelsProgress;
View progressLabels;
@BindView(R.id.root_add_labels)
ViewGroup mRootAddLabels;
ViewGroup rootAddLabels;
@BindView(R.id.list_labels)
AdapterFlowLayout mListLabels;
AdapterFlowLayout listLabels;
 
AddIssueLabelAdapter mLabelsAdapter;
Teleprinter mTeleprinter;
AddIssueLabelAdapter adapterLabels;
Teleprinter teleprinter;
 
Project mProject;
Issue mIssue;
HashSet<Member> mMembers;
Project project;
Issue issue;
HashSet<Member> members;
 
@OnClick(R.id.text_add_labels)
void onAddLabelClicked() {
Navigator.navigateToAddLabels(this, mProject, REQUEST_LABEL);
Navigator.navigateToAddLabels(this, project, REQUEST_LABEL);
}
 
@Override
Loading
Loading
@@ -115,13 +114,13 @@ public class AddIssueActivity extends MorphActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_issue);
ButterKnife.bind(this);
morph(mRoot);
mTeleprinter = new Teleprinter(this);
morph(root);
teleprinter = new Teleprinter(this);
 
mProject = Parcels.unwrap(getIntent().getParcelableExtra(KEY_PROJECT));
mIssue = Parcels.unwrap(getIntent().getParcelableExtra(KEY_ISSUE));
mMembers = new HashSet<>();
mLabelsAdapter = new AddIssueLabelAdapter(new AddIssueLabelAdapter.Listener() {
project = Parcels.unwrap(getIntent().getParcelableExtra(KEY_PROJECT));
issue = Parcels.unwrap(getIntent().getParcelableExtra(KEY_ISSUE));
members = new HashSet<>();
adapterLabels = new AddIssueLabelAdapter(new AddIssueLabelAdapter.Listener() {
@Override
public void onLabelLongClicked(final Label label) {
new AlertDialog.Builder(AddIssueActivity.this)
Loading
Loading
@@ -130,7 +129,7 @@ public class AddIssueActivity extends MorphActivity {
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mLabelsAdapter.removeLabel(label);
adapterLabels.removeLabel(label);
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
Loading
Loading
@@ -142,16 +141,16 @@ public class AddIssueActivity extends MorphActivity {
.show();
}
});
mListLabels.setAdapter(mLabelsAdapter);
listLabels.setAdapter(adapterLabels);
 
mToolbar.setNavigationIcon(R.drawable.ic_back_24dp);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
toolbar.setNavigationIcon(R.drawable.ic_back_24dp);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
Loading
Loading
@@ -164,17 +163,17 @@ public class AddIssueActivity extends MorphActivity {
}
});
 
if (mIssue != null) {
if (issue != null) {
bindIssue();
mToolbar.inflateMenu(R.menu.menu_edit_milestone);
toolbar.inflateMenu(R.menu.menu_edit_milestone);
} else {
mToolbar.inflateMenu(R.menu.menu_add_milestone);
toolbar.inflateMenu(R.menu.menu_add_milestone);
}
load();
}
 
private void load() {
App.get().getGitLab().getMilestones(mProject.getId(), getString(R.string.milestone_state_value_default))
App.get().getGitLab().getMilestones(project.getId(), getString(R.string.milestone_state_value_default))
.compose(this.<Response<List<Milestone>>>bindToLifecycle())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
Loading
Loading
@@ -183,22 +182,22 @@ public class AddIssueActivity extends MorphActivity {
@Override
public void error(Throwable t) {
Timber.e(t);
mMilestoneProgress.setVisibility(View.GONE);
mMilestoneSpinner.setVisibility(View.GONE);
progressMilestone.setVisibility(View.GONE);
spinnerMilestone.setVisibility(View.GONE);
}
 
@Override
public void responseSuccess(List<Milestone> milestones) {
mMilestoneProgress.setVisibility(View.GONE);
mMilestoneSpinner.setVisibility(View.VISIBLE);
progressMilestone.setVisibility(View.GONE);
spinnerMilestone.setVisibility(View.VISIBLE);
MilestoneSpinnerAdapter milestoneSpinnerAdapter = new MilestoneSpinnerAdapter(AddIssueActivity.this, milestones);
mMilestoneSpinner.setAdapter(milestoneSpinnerAdapter);
if (mIssue != null) {
mMilestoneSpinner.setSelection(milestoneSpinnerAdapter.getSelectedItemPosition(mIssue.getMilestone()));
spinnerMilestone.setAdapter(milestoneSpinnerAdapter);
if (issue != null) {
spinnerMilestone.setSelection(milestoneSpinnerAdapter.getSelectedItemPosition(issue.getMilestone()));
}
}
});
App.get().getGitLab().getProjectMembers(mProject.getId())
App.get().getGitLab().getProjectMembers(project.getId())
.compose(this.<Response<List<Member>>>bindToLifecycle())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
Loading
Loading
@@ -207,16 +206,16 @@ public class AddIssueActivity extends MorphActivity {
@Override
public void error(Throwable t) {
Timber.e(t);
mAssigneeSpinner.setVisibility(View.GONE);
mAssigneeProgress.setVisibility(View.GONE);
spinnerAssignee.setVisibility(View.GONE);
progressAssignee.setVisibility(View.GONE);
}
 
@Override
public void responseSuccess(List<Member> members) {
mMembers.addAll(members);
if (mProject.belongsToGroup()) {
AddIssueActivity.this.members.addAll(members);
if (project.belongsToGroup()) {
Timber.d("Project belongs to a group, loading those users too");
App.get().getGitLab().getGroupMembers(mProject.getNamespace().getId())
App.get().getGitLab().getGroupMembers(project.getNamespace().getId())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new CustomResponseSingleObserver<List<Member>>() {
Loading
Loading
@@ -224,13 +223,13 @@ public class AddIssueActivity extends MorphActivity {
@Override
public void error(Throwable t) {
Timber.e(t);
mAssigneeSpinner.setVisibility(View.GONE);
mAssigneeProgress.setVisibility(View.GONE);
spinnerAssignee.setVisibility(View.GONE);
progressAssignee.setVisibility(View.GONE);
}
 
@Override
public void responseSuccess(List<Member> members) {
mMembers.addAll(members);
AddIssueActivity.this.members.addAll(members);
setAssignees();
}
});
Loading
Loading
@@ -239,7 +238,7 @@ public class AddIssueActivity extends MorphActivity {
}
}
});
App.get().getGitLab().getLabels(mProject.getId())
App.get().getGitLab().getLabels(project.getId())
.compose(this.<List<Label>>bindToLifecycle())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
Loading
Loading
@@ -248,57 +247,57 @@ public class AddIssueActivity extends MorphActivity {
@Override
public void error(Throwable t) {
Timber.e(t);
mListLabels.setVisibility(View.GONE);
mLabelsProgress.setVisibility(View.GONE);
mLabelLabel.setVisibility(View.GONE);
listLabels.setVisibility(View.GONE);
progressLabels.setVisibility(View.GONE);
textLabel.setVisibility(View.GONE);
}
 
@Override
public void success(List<Label> labels) {
mLabelsProgress.setVisibility(View.GONE);
mRootAddLabels.setVisibility(View.VISIBLE);
progressLabels.setVisibility(View.GONE);
rootAddLabels.setVisibility(View.VISIBLE);
setLabels(labels);
}
});
}
 
private void showLoading() {
mProgress.setVisibility(View.VISIBLE);
mProgress.setAlpha(0.0f);
mProgress.animate().alpha(1.0f);
progress.setVisibility(View.VISIBLE);
progress.setAlpha(0.0f);
progress.animate().alpha(1.0f);
}
 
private void bindIssue() {
if (!TextUtils.isEmpty(mIssue.getTitle())) {
mTitleInput.setText(mIssue.getTitle());
if (!TextUtils.isEmpty(issue.getTitle())) {
textInputLayoutTitle.getEditText().setText(issue.getTitle());
}
if (!TextUtils.isEmpty(mIssue.getDescription())) {
mDescriptionInput.setText(mIssue.getDescription());
if (!TextUtils.isEmpty(issue.getDescription())) {
textDescription.setText(issue.getDescription());
}
}
 
private void setAssignees() {
mAssigneeProgress.setVisibility(View.GONE);
mAssigneeSpinner.setVisibility(View.VISIBLE);
AssigneeSpinnerAdapter assigneeSpinnerAdapter = new AssigneeSpinnerAdapter(this, new ArrayList<>(mMembers));
mAssigneeSpinner.setAdapter(assigneeSpinnerAdapter);
if (mIssue != null) {
mAssigneeSpinner.setSelection(assigneeSpinnerAdapter.getSelectedItemPosition(mIssue.getAssignee()));
progressAssignee.setVisibility(View.GONE);
spinnerAssignee.setVisibility(View.VISIBLE);
AssigneeSpinnerAdapter assigneeSpinnerAdapter = new AssigneeSpinnerAdapter(this, new ArrayList<>(members));
spinnerAssignee.setAdapter(assigneeSpinnerAdapter);
if (issue != null) {
spinnerAssignee.setSelection(assigneeSpinnerAdapter.getSelectedItemPosition(issue.getAssignee()));
}
}
 
private void setLabels(List<Label> projectLabels) {
if (projectLabels != null && !projectLabels.isEmpty() && mIssue != null && mIssue.getLabels() != null) {
if (projectLabels != null && !projectLabels.isEmpty() && issue != null && issue.getLabels() != null) {
ArrayList<Label> currentLabels = new ArrayList<>();
for (Label label : projectLabels) {
for (String labelName : mIssue.getLabels()) {
for (String labelName : issue.getLabels()) {
if (labelName.equals(label.getName())) {
currentLabels.add(label);
}
}
}
if (!currentLabels.isEmpty()) {
mLabelsAdapter.setLabels(currentLabels);
adapterLabels.setLabels(currentLabels);
}
}
}
Loading
Loading
@@ -310,11 +309,11 @@ public class AddIssueActivity extends MorphActivity {
case REQUEST_LABEL:
if (resultCode == RESULT_OK) {
Label label = Parcels.unwrap(data.getParcelableExtra(AddLabelActivity.KEY_LABEL));
if (mLabelsAdapter.containsLabel(label)) {
Snackbar.make(mRoot, R.string.label_already_added, Snackbar.LENGTH_SHORT)
if (adapterLabels.containsLabel(label)) {
Snackbar.make(root, R.string.label_already_added, Snackbar.LENGTH_SHORT)
.show();
} else {
mLabelsAdapter.addLabel(label);
adapterLabels.addLabel(label);
}
}
break;
Loading
Loading
@@ -342,14 +341,14 @@ public class AddIssueActivity extends MorphActivity {
}
 
private void save() {
if (!TextUtils.isEmpty(mTitleInput.getText())) {
mTeleprinter.hideKeyboard();
mTitleInputLayout.setError(null);
if (!TextUtils.isEmpty(textInputLayoutTitle.getEditText().getText())) {
teleprinter.hideKeyboard();
textInputLayoutTitle.setError(null);
showLoading();
Long assigneeId = null;
if (mAssigneeSpinner.getAdapter() != null) {
if (spinnerAssignee.getAdapter() != null) {
//the user did make a selection of some sort. So update it
Member member = (Member) mAssigneeSpinner.getSelectedItem();
Member member = (Member) spinnerAssignee.getSelectedItem();
if (member == null) {
//Removes the assignment
assigneeId = 0L;
Loading
Loading
@@ -359,9 +358,9 @@ public class AddIssueActivity extends MorphActivity {
}
 
Long milestoneId = null;
if (mMilestoneSpinner.getAdapter() != null) {
if (spinnerMilestone.getAdapter() != null) {
//the user did make a selection of some sort. So update it
Milestone milestone = (Milestone) mMilestoneSpinner.getSelectedItem();
Milestone milestone = (Milestone) spinnerMilestone.getSelectedItem();
if (milestone == null) {
//Removes the assignment
milestoneId = 0L;
Loading
Loading
@@ -369,30 +368,30 @@ public class AddIssueActivity extends MorphActivity {
milestoneId = milestone.getId();
}
}
String labelsCommaSeperated = mLabelsAdapter.getCommaSeperatedStringOfLabels();
createOrSaveIssue(mTitleInput.getText().toString(),
mDescriptionInput.getText().toString(),
String labelsCommaSeperated = adapterLabels.getCommaSeperatedStringOfLabels();
createOrSaveIssue(textInputLayoutTitle.getEditText().getText().toString(),
textDescription.getText().toString(),
assigneeId,
milestoneId,
labelsCommaSeperated);
} else {
mTitleInputLayout.setError(getString(R.string.required_field));
textInputLayoutTitle.setError(getString(R.string.required_field));
}
}
 
private void createOrSaveIssue(String title, String description, @Nullable Long assigneeId,
@Nullable Long milestoneId, @Nullable String labels) {
if (mIssue == null) {
if (issue == null) {
observeUpdate(App.get().getGitLab().createIssue(
mProject.getId(),
project.getId(),
title,
description,
assigneeId,
milestoneId,
labels));
} else {
observeUpdate(App.get().getGitLab().updateIssue(mProject.getId(),
mIssue.getId(),
observeUpdate(App.get().getGitLab().updateIssue(project.getId(),
issue.getId(),
title,
description,
assigneeId,
Loading
Loading
@@ -407,15 +406,15 @@ public class AddIssueActivity extends MorphActivity {
.subscribe(new CustomSingleObserver<Issue>() {
 
@Override
public void error(Throwable t) {
public void error(@NonNull Throwable t) {
Timber.e(t);
Snackbar.make(mRoot, getString(R.string.failed_to_create_issue), Snackbar.LENGTH_SHORT)
Snackbar.make(root, getString(R.string.failed_to_create_issue), Snackbar.LENGTH_SHORT)
.show();
}
 
@Override
public void success(Issue issue) {
if (mIssue == null) {
public void success(@NonNull Issue issue) {
if (AddIssueActivity.this.issue == null) {
App.bus().post(new IssueCreatedEvent(issue));
} else {
App.bus().post(new IssueChangedEvent(issue));
Loading
Loading
Loading
Loading
@@ -3,6 +3,7 @@ package com.commit451.gitlab.activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
Loading
Loading
@@ -49,18 +50,18 @@ public class AddLabelActivity extends BaseActivity {
}
 
@BindView(R.id.root)
ViewGroup mRoot;
ViewGroup root;
@BindView(R.id.toolbar)
Toolbar mToolbar;
Toolbar toolbar;
@BindView(R.id.swipe_layout)
SwipeRefreshLayout mSwipeRefreshLayout;
SwipeRefreshLayout swipeRefreshLayout;
@BindView(R.id.list)
RecyclerView mList;
LabelAdapter mLabelAdapter;
RecyclerView list;
LabelAdapter adapterLabel;
@BindView(R.id.message_text)
TextView mTextMessage;
TextView textMessage;
 
long mProjectId;
long projectId;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
Loading
Loading
@@ -68,27 +69,27 @@ public class AddLabelActivity extends BaseActivity {
setContentView(R.layout.activity_add_label);
ButterKnife.bind(this);
 
mProjectId = getIntent().getLongExtra(KEY_PROJECT_ID, -1);
mToolbar.setTitle(labels);
mToolbar.inflateMenu(R.menu.menu_add_label);
mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
projectId = getIntent().getLongExtra(KEY_PROJECT_ID, -1);
toolbar.setTitle(labels);
toolbar.inflateMenu(R.menu.menu_add_label);
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_add_label:
Navigator.navigateToAddNewLabel(AddLabelActivity.this, mProjectId, REQUEST_NEW_LABEL);
Navigator.navigateToAddNewLabel(AddLabelActivity.this, projectId, REQUEST_NEW_LABEL);
return true;
}
return false;
}
});
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
load();
}
});
mLabelAdapter = new LabelAdapter(new LabelAdapter.Listener() {
adapterLabel = new LabelAdapter(new LabelAdapter.Listener() {
@Override
public void onLabelClicked(Label label, LabelViewHolder viewHolder) {
Intent data = new Intent();
Loading
Loading
@@ -97,11 +98,11 @@ public class AddLabelActivity extends BaseActivity {
finish();
}
});
mList.setAdapter(mLabelAdapter);
mList.setLayoutManager(new LinearLayoutManager(this));
list.setAdapter(adapterLabel);
list.setLayoutManager(new LinearLayoutManager(this));
 
mToolbar.setNavigationIcon(R.drawable.ic_back_24dp);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
toolbar.setNavigationIcon(R.drawable.ic_back_24dp);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
Loading
Loading
@@ -112,35 +113,35 @@ public class AddLabelActivity extends BaseActivity {
}
 
private void load() {
mTextMessage.setVisibility(View.GONE);
mSwipeRefreshLayout.post(new Runnable() {
textMessage.setVisibility(View.GONE);
swipeRefreshLayout.post(new Runnable() {
@Override
public void run() {
if (mSwipeRefreshLayout != null) {
mSwipeRefreshLayout.setRefreshing(true);
if (swipeRefreshLayout != null) {
swipeRefreshLayout.setRefreshing(true);
}
}
});
App.get().getGitLab().getLabels(mProjectId)
App.get().getGitLab().getLabels(projectId)
.compose(this.<List<Label>>bindToLifecycle())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new CustomSingleObserver<List<Label>>() {
 
@Override
public void error(Throwable t) {
public void error(@NonNull Throwable t) {
Timber.e(t);
mSwipeRefreshLayout.setRefreshing(false);
mTextMessage.setVisibility(View.VISIBLE);
swipeRefreshLayout.setRefreshing(false);
textMessage.setVisibility(View.VISIBLE);
}
 
@Override
public void success(List<Label> labels) {
mSwipeRefreshLayout.setRefreshing(false);
public void success(@NonNull List<Label> labels) {
swipeRefreshLayout.setRefreshing(false);
if (labels.isEmpty()) {
mTextMessage.setVisibility(View.VISIBLE);
textMessage.setVisibility(View.VISIBLE);
}
mLabelAdapter.setItems(labels);
adapterLabel.setItems(labels);
}
});
}
Loading
Loading
@@ -152,7 +153,7 @@ public class AddLabelActivity extends BaseActivity {
case REQUEST_NEW_LABEL:
if (resultCode == RESULT_OK) {
Label newLabel = Parcels.unwrap(data.getParcelableExtra(AddNewLabelActivity.KEY_NEW_LABEL));
mLabelAdapter.addLabel(newLabel);
adapterLabel.addLabel(newLabel);
}
break;
}
Loading
Loading
Loading
Loading
@@ -4,6 +4,7 @@ package com.commit451.gitlab.activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.Snackbar;
import android.support.design.widget.TextInputLayout;
import android.support.v7.widget.Toolbar;
Loading
Loading
@@ -56,78 +57,77 @@ public class AddMilestoneActivity extends MorphActivity {
}
 
@BindView(R.id.root)
FrameLayout mRoot;
FrameLayout root;
@BindView(R.id.toolbar)
Toolbar mToolbar;
Toolbar toolbar;
@BindView(R.id.title_text_input_layout)
TextInputLayout mTitleTextInputLayout;
TextInputLayout textInputLayoutTitle;
@BindView(R.id.title)
EditText mTitle;
EditText textTitle;
@BindView(R.id.description)
EditText mDescription;
EditText textDescription;
@BindView(R.id.due_date)
Button mDueDate;
Button buttonDueDate;
@BindView(R.id.progress)
View mProgress;
View progress;
 
@OnClick(R.id.due_date)
void onDueDateClicked() {
Calendar now = Calendar.getInstance();
if (mCurrentDate != null) {
now.setTime(mCurrentDate);
}
DatePickerDialog dpd = DatePickerDialog.newInstance(
mOnDateSetListener,
now.get(Calendar.YEAR),
now.get(Calendar.MONTH),
now.get(Calendar.DAY_OF_MONTH)
);
dpd.setAccentColor(Easel.getThemeAttrColor(this, R.attr.colorAccent));
dpd.show(getFragmentManager(), "date_picker");
}
Teleprinter teleprinter;
 
long mProjectId;
Milestone mMilestone;
Date mCurrentDate;
Teleprinter mTeleprinter;
long projectId;
Milestone milestone;
Date currentDate;
 
private final DatePickerDialog.OnDateSetListener mOnDateSetListener = new DatePickerDialog.OnDateSetListener() {
private final DatePickerDialog.OnDateSetListener onDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, monthOfYear);
calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
mCurrentDate = calendar.getTime();
bind(mCurrentDate);
currentDate = calendar.getTime();
bind(currentDate);
}
};
 
private final View.OnClickListener mOnBackPressed = new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
@OnClick(R.id.due_date)
void onDueDateClicked() {
Calendar now = Calendar.getInstance();
if (currentDate != null) {
now.setTime(currentDate);
}
};
DatePickerDialog dpd = DatePickerDialog.newInstance(
onDateSetListener,
now.get(Calendar.YEAR),
now.get(Calendar.MONTH),
now.get(Calendar.DAY_OF_MONTH)
);
dpd.setAccentColor(Easel.getThemeAttrColor(this, R.attr.colorAccent));
dpd.show(getFragmentManager(), "date_picker");
}
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_milestone);
ButterKnife.bind(this);
morph(mRoot);
mTeleprinter = new Teleprinter(this);
mProjectId = getIntent().getLongExtra(KEY_PROJECT_ID, -1);
mMilestone = Parcels.unwrap(getIntent().getParcelableExtra(KEY_MILESTONE));
if (mMilestone != null) {
bind(mMilestone);
mToolbar.inflateMenu(R.menu.menu_edit_milestone);
morph(root);
teleprinter = new Teleprinter(this);
projectId = getIntent().getLongExtra(KEY_PROJECT_ID, -1);
milestone = Parcels.unwrap(getIntent().getParcelableExtra(KEY_MILESTONE));
if (milestone != null) {
bind(milestone);
toolbar.inflateMenu(R.menu.menu_edit_milestone);
} else {
mToolbar.inflateMenu(R.menu.menu_add_milestone);
toolbar.inflateMenu(R.menu.menu_add_milestone);
}
mToolbar.setNavigationIcon(R.drawable.ic_back_24dp);
mToolbar.setNavigationOnClickListener(mOnBackPressed);
mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
toolbar.setNavigationIcon(R.drawable.ic_back_24dp);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
Loading
Loading
@@ -142,28 +142,28 @@ public class AddMilestoneActivity extends MorphActivity {
}
 
private void createMilestone() {
mTeleprinter.hideKeyboard();
if (TextUtils.isEmpty(mTitle.getText())) {
mTitleTextInputLayout.setError(getString(R.string.required_field));
teleprinter.hideKeyboard();
if (TextUtils.isEmpty(textTitle.getText())) {
textInputLayoutTitle.setError(getString(R.string.required_field));
return;
}
 
mProgress.setVisibility(View.VISIBLE);
progress.setVisibility(View.VISIBLE);
String dueDate = null;
if (mCurrentDate != null) {
dueDate = Milestone.DUE_DATE_FORMAT.format(mCurrentDate);
if (currentDate != null) {
dueDate = Milestone.DUE_DATE_FORMAT.format(currentDate);
}
 
if (mMilestone == null) {
createOrEditMilestone(App.get().getGitLab().createMilestone(mProjectId,
mTitle.getText().toString(),
mDescription.getText().toString(),
if (milestone == null) {
createOrEditMilestone(App.get().getGitLab().createMilestone(projectId,
textTitle.getText().toString(),
textDescription.getText().toString(),
dueDate));
} else {
createOrEditMilestone(App.get().getGitLab().editMilestone(mProjectId,
mMilestone.getId(),
mTitle.getText().toString(),
mDescription.getText().toString(),
createOrEditMilestone(App.get().getGitLab().editMilestone(projectId,
milestone.getId(),
textTitle.getText().toString(),
textDescription.getText().toString(),
dueDate));
}
 
Loading
Loading
@@ -176,16 +176,16 @@ public class AddMilestoneActivity extends MorphActivity {
.subscribe(new CustomSingleObserver<Milestone>() {
 
@Override
public void error(Throwable t) {
public void error(@NonNull Throwable t) {
Timber.e(t);
mProgress.setVisibility(View.GONE);
progress.setVisibility(View.GONE);
showError();
}
 
@Override
public void success(Milestone milestone) {
mProgress.setVisibility(View.GONE);
if (mMilestone == null) {
public void success(@NonNull Milestone milestone) {
progress.setVisibility(View.GONE);
if (AddMilestoneActivity.this.milestone == null) {
App.bus().post(new MilestoneCreatedEvent(milestone));
} else {
App.bus().post(new MilestoneChangedEvent(milestone));
Loading
Loading
@@ -196,22 +196,22 @@ public class AddMilestoneActivity extends MorphActivity {
}
 
private void showError() {
Snackbar.make(mRoot, getString(R.string.failed_to_create_milestone), Snackbar.LENGTH_SHORT)
Snackbar.make(root, getString(R.string.failed_to_create_milestone), Snackbar.LENGTH_SHORT)
.show();
}
 
private void bind(Date date) {
mDueDate.setText(Milestone.DUE_DATE_FORMAT.format(date));
buttonDueDate.setText(Milestone.DUE_DATE_FORMAT.format(date));
}
 
private void bind(Milestone milestone) {
mTitle.setText(milestone.getTitle());
textTitle.setText(milestone.getTitle());
if (milestone.getDescription() != null) {
mDescription.setText(milestone.getDescription());
textDescription.setText(milestone.getDescription());
}
if (milestone.getDueDate() != null) {
mCurrentDate = milestone.getDueDate();
bind(mCurrentDate);
currentDate = milestone.getDueDate();
bind(currentDate);
}
}
}
Loading
Loading
@@ -52,25 +52,25 @@ public class AddNewLabelActivity extends BaseActivity implements ColorChooserDia
}
 
@BindView(R.id.root)
ViewGroup mRoot;
ViewGroup root;
@BindView(R.id.toolbar)
Toolbar mToolbar;
Toolbar toolbar;
@BindView(R.id.title_text_input_layout)
TextInputLayout mTextInputLayoutTitle;
TextInputLayout textInputLayoutTitle;
@BindView(R.id.description)
TextView mDescription;
TextView textDescription;
@BindView(R.id.image_color)
ImageView mImageColor;
ImageView imageColor;
@BindView(R.id.progress)
View mProgress;
View progress;
 
int mChosenColor = -1;
int chosenColor = -1;
 
@OnClick(R.id.root_color)
void onChooseColorClicked() {
// Pass AppCompatActivity which implements ColorCallback, along with the title of the dialog
new ColorChooserDialog.Builder(this, R.string.add_new_label_choose_color)
.preselect(mChosenColor)
.preselect(chosenColor)
.show();
}
 
Loading
Loading
@@ -80,16 +80,16 @@ public class AddNewLabelActivity extends BaseActivity implements ColorChooserDia
setContentView(R.layout.activity_add_new_label);
ButterKnife.bind(this);
 
mToolbar.setNavigationIcon(R.drawable.ic_back_24dp);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
toolbar.setNavigationIcon(R.drawable.ic_back_24dp);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onBackPressed();
}
});
 
mToolbar.inflateMenu(R.menu.menu_add_new_label);
mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
toolbar.inflateMenu(R.menu.menu_add_new_label);
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
Loading
Loading
@@ -104,8 +104,8 @@ public class AddNewLabelActivity extends BaseActivity implements ColorChooserDia
 
@Override
public void onColorSelection(@NonNull ColorChooserDialog dialog, @ColorInt int selectedColor) {
mChosenColor = selectedColor;
mImageColor.setImageDrawable(new ColorDrawable(selectedColor));
chosenColor = selectedColor;
imageColor.setImageDrawable(new ColorDrawable(selectedColor));
}
 
private long getProjectId() {
Loading
Loading
@@ -113,25 +113,25 @@ public class AddNewLabelActivity extends BaseActivity implements ColorChooserDia
}
 
private void createLabel() {
if (Validator.validateFieldsNotEmpty(getString(R.string.required_field), mTextInputLayoutTitle)) {
if (mChosenColor == -1) {
Snackbar.make(mRoot, R.string.add_new_label_color_is_required, Snackbar.LENGTH_SHORT)
if (Validator.validateFieldsNotEmpty(getString(R.string.required_field), textInputLayoutTitle)) {
if (chosenColor == -1) {
Snackbar.make(root, R.string.add_new_label_color_is_required, Snackbar.LENGTH_SHORT)
.show();
return;
}
String title = mTextInputLayoutTitle.getEditText().getText().toString();
String title = textInputLayoutTitle.getEditText().getText().toString();
String description = null;
if (!TextUtils.isEmpty(mDescription.getText())) {
description = mDescription.getText().toString();
if (!TextUtils.isEmpty(textDescription.getText())) {
description = textDescription.getText().toString();
}
String color = null;
if (mChosenColor != -1) {
color = ColorUtil.convertColorIntToString(mChosenColor);
if (chosenColor != -1) {
color = ColorUtil.convertColorIntToString(chosenColor);
Timber.d("Setting color to %s", color);
}
mProgress.setVisibility(View.VISIBLE);
mProgress.setAlpha(0.0f);
mProgress.animate().alpha(1.0f);
progress.setVisibility(View.VISIBLE);
progress.setAlpha(0.0f);
progress.animate().alpha(1.0f);
App.get().getGitLab().createLabel(getProjectId(), title, color, description)
.compose(this.<Response<Label>>bindToLifecycle())
.subscribeOn(Schedulers.io())
Loading
Loading
@@ -139,20 +139,20 @@ public class AddNewLabelActivity extends BaseActivity implements ColorChooserDia
.subscribe(new CustomResponseSingleObserver<Label>() {
 
@Override
public void error(Throwable e) {
public void error(@NonNull Throwable e) {
Timber.e(e);
mProgress.setVisibility(View.GONE);
progress.setVisibility(View.GONE);
if (e instanceof HttpException && ((HttpException) e).response().code() == 409) {
Snackbar.make(mRoot, R.string.label_already_exists, Snackbar.LENGTH_SHORT)
Snackbar.make(root, R.string.label_already_exists, Snackbar.LENGTH_SHORT)
.show();
} else {
Snackbar.make(mRoot, R.string.failed_to_create_label, Snackbar.LENGTH_SHORT)
Snackbar.make(root, R.string.failed_to_create_label, Snackbar.LENGTH_SHORT)
.show();
}
}
 
@Override
public void responseSuccess(Label label) {
public void responseSuccess(@NonNull Label label) {
Intent data = new Intent();
data.putExtra(KEY_NEW_LABEL, Parcels.wrap(label));
setResult(RESULT_OK, data);
Loading
Loading
Loading
Loading
@@ -4,24 +4,21 @@ import android.content.Context;
import android.content.Intent;
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.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
 
import com.commit451.alakazam.HideRunnable;
import com.commit451.gitlab.App;
import com.commit451.gitlab.R;
import com.commit451.gitlab.adapter.UsersAdapter;
import com.commit451.gitlab.animation.HideRunnable;
import com.commit451.gitlab.dialog.AccessDialog;
import com.commit451.gitlab.event.MemberAddedEvent;
import com.commit451.gitlab.model.api.Group;
Loading
Loading
@@ -40,6 +37,8 @@ import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import butterknife.OnEditorAction;
import butterknife.OnTextChanged;
import io.reactivex.Single;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
Loading
Loading
@@ -67,197 +66,175 @@ public class AddUserActivity extends MorphActivity {
}
 
@BindView(R.id.root)
ViewGroup mRoot;
ViewGroup root;
@BindView(R.id.toolbar)
Toolbar mToolbar;
Toolbar toolbar;
@BindView(R.id.search)
EditText mUserSearch;
EditText textSearch;
@BindView(R.id.swipe_layout)
SwipeRefreshLayout mSwipeRefreshLayout;
SwipeRefreshLayout swipeRefreshLayout;
@BindView(R.id.list)
RecyclerView mRecyclerView;
RecyclerView list;
@BindView(R.id.clear)
View mClearView;
GridLayoutManager mUserLinearLayoutManager;
View buttonClear;
GridLayoutManager layoutManager;
UsersAdapter adapter;
AccessDialog dialogAccess;
UserBasic selectedUser;
Teleprinter teleprinter;
long projectId;
Group group;
String query;
Uri nextPageUrl;
boolean loading = false;
 
@OnClick(R.id.clear)
void onClearClick() {
mClearView.animate().alpha(0.0f).withEndAction(new Runnable() {
buttonClear.animate().alpha(0.0f).withEndAction(new Runnable() {
@Override
public void run() {
mClearView.setVisibility(View.GONE);
mUserSearch.getText().clear();
mTeleprinter.showKeyboard(mUserSearch);
buttonClear.setVisibility(View.GONE);
textSearch.getText().clear();
teleprinter.showKeyboard(textSearch);
}
});
}
 
UsersAdapter mAdapter;
AccessDialog mAccessDialog;
UserBasic mSelectedUser;
long mProjectId;
Group mGroup;
String mSearchQuery;
Uri mNextPageUrl;
boolean mLoading = false;
Teleprinter mTeleprinter;
private final View.OnClickListener mOnBackPressed = new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
};
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 = mUserLinearLayoutManager.getChildCount();
int totalItemCount = mUserLinearLayoutManager.getItemCount();
int firstVisibleItem = mUserLinearLayoutManager.findFirstVisibleItemPosition();
if (firstVisibleItem + visibleItemCount >= totalItemCount && !mLoading && mNextPageUrl != null) {
loadMore();
}
@OnEditorAction(R.id.search)
boolean onEditorAction() {
if (!TextUtils.isEmpty(textSearch.getText())) {
query = textSearch.getText().toString();
loadData();
}
};
private final TextView.OnEditorActionListener mSearchEditorActionListener = new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (!TextUtils.isEmpty(mUserSearch.getText())) {
mSearchQuery = mUserSearch.getText().toString();
loadData();
}
return true;
}
};
private final TextWatcher mTextWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (TextUtils.isEmpty(s)) {
mClearView.animate()
.alpha(0.0f)
.withEndAction(new HideRunnable(mClearView));
} else {
mClearView.setVisibility(View.VISIBLE);
mClearView.animate().alpha(1.0f);
}
}
@Override
public void afterTextChanged(Editable s) {
}
};
private final UsersAdapter.Listener mUserClickListener = new UsersAdapter.Listener() {
@Override
public void onUserClicked(UserBasic user, UserViewHolder userViewHolder) {
mSelectedUser = user;
mAccessDialog.show();
}
};
private final AccessDialog.OnAccessAppliedListener mOnAccessAppliedListener = new AccessDialog.OnAccessAppliedListener() {
return true;
}
 
@Override
public void onAccessApplied(int accessLevel) {
mAccessDialog.showLoading();
if (mGroup == null) {
add(App.get().getGitLab().addProjectMember(mProjectId, mSelectedUser.getId(), accessLevel));
} else {
add(App.get().getGitLab().addGroupMember(mProjectId, mSelectedUser.getId(), accessLevel));
}
@OnTextChanged
void onTextChanged(CharSequence s, int start, int before, int count) {
if (TextUtils.isEmpty(s)) {
buttonClear.animate()
.alpha(0.0f)
.withEndAction(new HideRunnable(buttonClear));
} else {
buttonClear.setVisibility(View.VISIBLE);
buttonClear.animate().alpha(1.0f);
}
};
}
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_user);
ButterKnife.bind(this);
mTeleprinter = new Teleprinter(this);
mProjectId = getIntent().getLongExtra(KEY_PROJECT_ID, -1);
mGroup = Parcels.unwrap(getIntent().getParcelableExtra(KEY_GROUP));
mAccessDialog = new AccessDialog(this, mOnAccessAppliedListener);
mToolbar.setNavigationIcon(R.drawable.ic_back_24dp);
mToolbar.setNavigationOnClickListener(mOnBackPressed);
mUserSearch.setOnEditorActionListener(mSearchEditorActionListener);
mUserSearch.addTextChangedListener(mTextWatcher);
mAdapter = new UsersAdapter(mUserClickListener);
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
teleprinter = new Teleprinter(this);
projectId = getIntent().getLongExtra(KEY_PROJECT_ID, -1);
group = Parcels.unwrap(getIntent().getParcelableExtra(KEY_GROUP));
dialogAccess = new AccessDialog(this, new AccessDialog.Listener() {
@Override
public void onAccessApplied(int accessLevel) {
dialogAccess.showLoading();
if (group == null) {
add(App.get().getGitLab().addProjectMember(projectId, selectedUser.getId(), accessLevel));
} else {
add(App.get().getGitLab().addGroupMember(projectId, selectedUser.getId(), accessLevel));
}
}
});
toolbar.setNavigationIcon(R.drawable.ic_back_24dp);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
adapter = new UsersAdapter(new UsersAdapter.Listener() {
@Override
public void onUserClicked(UserBasic user, UserViewHolder userViewHolder) {
selectedUser = user;
dialogAccess.show();
}
});
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
loadData();
}
});
mRecyclerView.setAdapter(mAdapter);
mUserLinearLayoutManager = new GridLayoutManager(this, 2);
mUserLinearLayoutManager.setSpanSizeLookup(mAdapter.getSpanSizeLookup());
mRecyclerView.setLayoutManager(mUserLinearLayoutManager);
mRecyclerView.addOnScrollListener(mOnScrollListener);
list.setAdapter(adapter);
layoutManager = new GridLayoutManager(this, 2);
layoutManager.setSpanSizeLookup(adapter.getSpanSizeLookup());
list.setLayoutManager(layoutManager);
list.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int visibleItemCount = layoutManager.getChildCount();
int totalItemCount = layoutManager.getItemCount();
int firstVisibleItem = layoutManager.findFirstVisibleItemPosition();
if (firstVisibleItem + visibleItemCount >= totalItemCount && !loading && nextPageUrl != null) {
loadMore();
}
}
});
 
morph(mRoot);
morph(root);
}
 
private void loadData() {
mTeleprinter.hideKeyboard();
mSwipeRefreshLayout.setRefreshing(true);
mLoading = true;
App.get().getGitLab().searchUsers(mSearchQuery)
teleprinter.hideKeyboard();
swipeRefreshLayout.setRefreshing(true);
loading = true;
App.get().getGitLab().searchUsers(query)
.compose(this.<Response<List<UserBasic>>>bindToLifecycle())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new CustomResponseSingleObserver<List<UserBasic>>() {
 
@Override
public void error(Throwable t) {
public void error(@NonNull Throwable t) {
Timber.e(t);
mSwipeRefreshLayout.setRefreshing(false);
mLoading = false;
Snackbar.make(mRoot, getString(R.string.connection_error_users), Snackbar.LENGTH_SHORT)
swipeRefreshLayout.setRefreshing(false);
loading = false;
Snackbar.make(root, getString(R.string.connection_error_users), Snackbar.LENGTH_SHORT)
.show();
}
 
@Override
public void responseSuccess(List<UserBasic> users) {
mSwipeRefreshLayout.setRefreshing(false);
mLoading = false;
mAdapter.setData(users);
mNextPageUrl = LinkHeaderParser.parse(response()).getNext();
Timber.d("Next page url is %s", mNextPageUrl);
public void responseSuccess(@NonNull List<UserBasic> users) {
swipeRefreshLayout.setRefreshing(false);
loading = false;
adapter.setData(users);
nextPageUrl = LinkHeaderParser.parse(response()).getNext();
Timber.d("Next page url is %s", nextPageUrl);
}
});
}
 
private void loadMore() {
mLoading = true;
mAdapter.setLoading(true);
Timber.d("loadMore " + mNextPageUrl.toString() + " " + mSearchQuery);
App.get().getGitLab().searchUsers(mNextPageUrl.toString(), mSearchQuery)
loading = true;
adapter.setLoading(true);
Timber.d("loadMore " + nextPageUrl.toString() + " " + query);
App.get().getGitLab().searchUsers(nextPageUrl.toString(), query)
.compose(this.<Response<List<UserBasic>>>bindToLifecycle())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new CustomResponseSingleObserver<List<UserBasic>>() {
 
@Override
public void error(Throwable t) {
public void error(@NonNull Throwable t) {
Timber.e(t);
mAdapter.setLoading(false);
adapter.setLoading(false);
}
 
@Override
public void responseSuccess(List<UserBasic> users) {
mLoading = false;
mAdapter.setLoading(false);
mAdapter.addData(users);
mNextPageUrl = LinkHeaderParser.parse(response()).getNext();
public void responseSuccess(@NonNull List<UserBasic> users) {
loading = false;
adapter.setLoading(false);
adapter.addData(users);
nextPageUrl = LinkHeaderParser.parse(response()).getNext();
}
});
}
Loading
Loading
@@ -269,7 +246,7 @@ public class AddUserActivity extends MorphActivity {
.subscribe(new CustomResponseSingleObserver<Member>() {
 
@Override
public void error(Throwable t) {
public void error(@NonNull Throwable t) {
Timber.e(t);
String message = getString(R.string.error_failed_to_add_user);
if (t instanceof HttpException) {
Loading
Loading
@@ -278,15 +255,15 @@ public class AddUserActivity extends MorphActivity {
message = getString(R.string.error_user_conflict);
}
}
Snackbar.make(mRoot, message, Snackbar.LENGTH_SHORT)
Snackbar.make(root, message, Snackbar.LENGTH_SHORT)
.show();
}
 
@Override
public void responseSuccess(Member member) {
Snackbar.make(mRoot, R.string.user_added_successfully, Snackbar.LENGTH_SHORT)
public void responseSuccess(@NonNull Member member) {
Snackbar.make(root, R.string.user_added_successfully, Snackbar.LENGTH_SHORT)
.show();
mAccessDialog.dismiss();
dialogAccess.dismiss();
dismiss();
App.bus().post(new MemberAddedEvent(member));
}
Loading
Loading
Loading
Loading
@@ -51,13 +51,13 @@ public class AttachActivity extends BaseActivity {
}
 
@BindView(R.id.root_buttons)
ViewGroup mRootButtons;
ViewGroup rootButtons;
@BindView(R.id.progress)
View mProgress;
View progress;
@BindView(R.id.attachCard)
View mCard;
View card;
 
Project mProject;
Project project;
 
@OnClick(R.id.root)
void onRootClicked() {
Loading
Loading
@@ -86,22 +86,22 @@ public class AttachActivity extends BaseActivity {
ButterKnife.bind(this);
 
//Run the runnable after the view has been measured
mCard.post(new Runnable() {
card.post(new Runnable() {
@Override
public void run() {
//we need the radius of the animation circle, which is the diagonal of the view
float finalRadius = (float) Math.hypot(mCard.getWidth(), mCard.getHeight());
float finalRadius = (float) Math.hypot(card.getWidth(), card.getHeight());
 
//it's using a 3rd-party ViewAnimationUtils class for compat reasons (up to API 14)
Animator animator = ViewAnimationUtils
.createCircularReveal(mCard, 0, mCard.getHeight(), 0, finalRadius);
.createCircularReveal(card, 0, card.getHeight(), 0, finalRadius);
animator.setDuration(500);
animator.setInterpolator(new AccelerateDecelerateInterpolator());
animator.start();
}
});
 
mProject = Parcels.unwrap(getIntent().getParcelableExtra(KEY_PROJECT));
project = Parcels.unwrap(getIntent().getParcelableExtra(KEY_PROJECT));
}
 
@Override
Loading
Loading
@@ -138,13 +138,13 @@ public class AttachActivity extends BaseActivity {
}
 
private void onPhotoReturned(File photo) {
mProgress.setVisibility(View.VISIBLE);
mRootButtons.setVisibility(View.INVISIBLE);
progress.setVisibility(View.VISIBLE);
rootButtons.setVisibility(View.INVISIBLE);
FileObservableFactory.toPart(photo)
.flatMap(new Function<MultipartBody.Part, SingleSource<FileUploadResponse>>() {
@Override
public SingleSource<FileUploadResponse> apply(MultipartBody.Part part) throws Exception {
return App.get().getGitLab().uploadFile(mProject.getId(), part);
return App.get().getGitLab().uploadFile(project.getId(), part);
}
})
.compose(this.<FileUploadResponse>bindToLifecycle())
Loading
Loading
Loading
Loading
@@ -53,28 +53,28 @@ public class BuildActivity extends BaseActivity {
}
 
@BindView(R.id.root)
ViewGroup mRoot;
ViewGroup root;
@BindView(R.id.toolbar)
Toolbar mToolbar;
Toolbar toolbar;
@BindView(R.id.tabs)
TabLayout mTabLayout;
TabLayout tabLayout;
@BindView(R.id.pager)
ViewPager mViewPager;
ViewPager viewPager;
@BindView(R.id.progress)
View mProgress;
View progress;
 
MenuItem mMenuItemDownload;
MenuItem menuItemDownload;
 
Project mProject;
Build mBuild;
Project project;
Build build;
 
private final Toolbar.OnMenuItemClickListener mOnMenuItemClickListener = new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_retry:
mProgress.setVisibility(View.VISIBLE);
App.get().getGitLab().retryBuild(mProject.getId(), mBuild.getId())
progress.setVisibility(View.VISIBLE);
App.get().getGitLab().retryBuild(project.getId(), build.getId())
.compose(BuildActivity.this.<Build>bindToLifecycle())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
Loading
Loading
@@ -83,23 +83,23 @@ public class BuildActivity extends BaseActivity {
@Override
public void error(Throwable t) {
Timber.e(t);
mProgress.setVisibility(View.GONE);
Snackbar.make(mRoot, R.string.unable_to_retry_build, Snackbar.LENGTH_LONG)
progress.setVisibility(View.GONE);
Snackbar.make(root, R.string.unable_to_retry_build, Snackbar.LENGTH_LONG)
.show();
}
 
@Override
public void success(Build build) {
mProgress.setVisibility(View.GONE);
Snackbar.make(mRoot, R.string.build_started, Snackbar.LENGTH_LONG)
progress.setVisibility(View.GONE);
Snackbar.make(root, R.string.build_started, Snackbar.LENGTH_LONG)
.show();
App.bus().post(new BuildChangedEvent(build));
}
});
return true;
case R.id.action_erase:
mProgress.setVisibility(View.VISIBLE);
App.get().getGitLab().eraseBuild(mProject.getId(), mBuild.getId())
progress.setVisibility(View.VISIBLE);
App.get().getGitLab().eraseBuild(project.getId(), build.getId())
.compose(BuildActivity.this.<Build>bindToLifecycle())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
Loading
Loading
@@ -108,23 +108,23 @@ public class BuildActivity extends BaseActivity {
@Override
public void error(Throwable t) {
Timber.e(t);
mProgress.setVisibility(View.GONE);
Snackbar.make(mRoot, R.string.unable_to_erase_build, Snackbar.LENGTH_LONG)
progress.setVisibility(View.GONE);
Snackbar.make(root, R.string.unable_to_erase_build, Snackbar.LENGTH_LONG)
.show();
}
 
@Override
public void success(Build build) {
mProgress.setVisibility(View.GONE);
Snackbar.make(mRoot, R.string.build_erased, Snackbar.LENGTH_LONG)
progress.setVisibility(View.GONE);
Snackbar.make(root, R.string.build_erased, Snackbar.LENGTH_LONG)
.show();
App.bus().post(new BuildChangedEvent(build));
}
});
return true;
case R.id.action_cancel:
mProgress.setVisibility(View.VISIBLE);
App.get().getGitLab().cancelBuild(mProject.getId(), mBuild.getId())
progress.setVisibility(View.VISIBLE);
App.get().getGitLab().cancelBuild(project.getId(), build.getId())
.compose(BuildActivity.this.<Build>bindToLifecycle())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
Loading
Loading
@@ -133,15 +133,15 @@ public class BuildActivity extends BaseActivity {
@Override
public void error(Throwable t) {
Timber.e(t);
mProgress.setVisibility(View.GONE);
Snackbar.make(mRoot, R.string.unable_to_cancel_build, Snackbar.LENGTH_LONG)
progress.setVisibility(View.GONE);
Snackbar.make(root, R.string.unable_to_cancel_build, Snackbar.LENGTH_LONG)
.show();
}
 
@Override
public void success(Build build) {
mProgress.setVisibility(View.GONE);
Snackbar.make(mRoot, R.string.build_canceled, Snackbar.LENGTH_LONG)
progress.setVisibility(View.GONE);
Snackbar.make(root, R.string.build_canceled, Snackbar.LENGTH_LONG)
.show();
App.bus().post(new BuildChangedEvent(build));
}
Loading
Loading
@@ -161,22 +161,22 @@ public class BuildActivity extends BaseActivity {
setContentView(R.layout.activity_build);
ButterKnife.bind(this);
 
mProject = Parcels.unwrap(getIntent().getParcelableExtra(KEY_PROJECT));
mBuild = Parcels.unwrap(getIntent().getParcelableExtra(KEY_BUILD));
project = Parcels.unwrap(getIntent().getParcelableExtra(KEY_PROJECT));
build = Parcels.unwrap(getIntent().getParcelableExtra(KEY_BUILD));
 
mToolbar.setTitle(getString(R.string.build_number) + mBuild.getId());
mToolbar.setNavigationIcon(R.drawable.ic_back_24dp);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
toolbar.setTitle(getString(R.string.build_number) + build.getId());
toolbar.setNavigationIcon(R.drawable.ic_back_24dp);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
mToolbar.setSubtitle(mProject.getNameWithNamespace());
mToolbar.inflateMenu(R.menu.menu_build);
mToolbar.setOnMenuItemClickListener(mOnMenuItemClickListener);
mMenuItemDownload = mToolbar.getMenu().findItem(R.id.action_download);
mMenuItemDownload.setVisible(mBuild.getArtifactsFile() != null);
toolbar.setSubtitle(project.getNameWithNamespace());
toolbar.inflateMenu(R.menu.menu_build);
toolbar.setOnMenuItemClickListener(mOnMenuItemClickListener);
menuItemDownload = toolbar.getMenu().findItem(R.id.action_download);
menuItemDownload.setVisible(build.getArtifactsFile() != null);
setupTabs();
}
 
Loading
Loading
@@ -195,11 +195,11 @@ public class BuildActivity extends BaseActivity {
BuildSectionsPagerAdapter sectionsPagerAdapter = new BuildSectionsPagerAdapter(
this,
getSupportFragmentManager(),
mProject,
mBuild);
project,
build);
 
mViewPager.setAdapter(sectionsPagerAdapter);
mTabLayout.setupWithViewPager(mViewPager);
viewPager.setAdapter(sectionsPagerAdapter);
tabLayout.setupWithViewPager(viewPager);
}
 
@TargetApi(23)
Loading
Loading
@@ -213,8 +213,8 @@ public class BuildActivity extends BaseActivity {
 
private void downloadBuild() {
Account account = App.get().getAccount();
String downloadUrl = BuildUtil.getDownloadBuildUrl(App.get().getAccount().getServerUrl(), mProject, mBuild);
String downloadUrl = BuildUtil.getDownloadBuildUrl(App.get().getAccount().getServerUrl(), project, build);
Timber.d("Downloading build: " + downloadUrl);
DownloadUtil.download(BuildActivity.this, account, downloadUrl, mBuild.getArtifactsFile().getFileName());
DownloadUtil.download(BuildActivity.this, account, downloadUrl, build.getArtifactsFile().getFileName());
}
}
Loading
Loading
@@ -44,15 +44,21 @@ public class DiffActivity extends BaseActivity {
return intent;
}
 
@BindView(R.id.root) ViewGroup mRoot;
@BindView(R.id.toolbar) Toolbar mToolbar;
@BindView(R.id.swipe_layout) SwipeRefreshLayout mSwipeRefreshLayout;
@BindView(R.id.list) RecyclerView mDiffRecyclerView;
DiffAdapter mDiffAdapter;
@BindView(R.id.message_text) TextView mMessageText;
private Project mProject;
private RepositoryCommit mCommit;
@BindView(R.id.root)
ViewGroup root;
@BindView(R.id.toolbar)
Toolbar toolbar;
@BindView(R.id.swipe_layout)
SwipeRefreshLayout swipeRefreshLayout;
@BindView(R.id.list)
RecyclerView listDiff;
@BindView(R.id.message_text)
TextView textMessage;
DiffAdapter adapterDiff;
private Project project;
private RepositoryCommit commit;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
Loading
Loading
@@ -60,27 +66,27 @@ public class DiffActivity extends BaseActivity {
setContentView(R.layout.activity_diff);
ButterKnife.bind(this);
 
mProject = Parcels.unwrap(getIntent().getParcelableExtra(EXTRA_PROJECT));
mCommit = Parcels.unwrap(getIntent().getParcelableExtra(EXTRA_COMMIT));
project = Parcels.unwrap(getIntent().getParcelableExtra(EXTRA_PROJECT));
commit = Parcels.unwrap(getIntent().getParcelableExtra(EXTRA_COMMIT));
 
mToolbar.setNavigationIcon(R.drawable.ic_back_24dp);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
toolbar.setNavigationIcon(R.drawable.ic_back_24dp);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
mToolbar.setTitle(mCommit.getShortId());
toolbar.setTitle(commit.getShortId());
 
mDiffAdapter = new DiffAdapter(mCommit, new DiffAdapter.Listener() {
adapterDiff = new DiffAdapter(commit, new DiffAdapter.Listener() {
@Override
public void onDiffClicked(Diff diff) {
 
}
});
mDiffRecyclerView.setAdapter(mDiffAdapter);
mDiffRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
listDiff.setAdapter(adapterDiff);
listDiff.setLayoutManager(new LinearLayoutManager(this));
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
loadData();
Loading
Loading
@@ -91,16 +97,16 @@ public class DiffActivity extends BaseActivity {
}
 
private void loadData() {
mMessageText.setVisibility(View.GONE);
mSwipeRefreshLayout.post(new Runnable() {
textMessage.setVisibility(View.GONE);
swipeRefreshLayout.post(new Runnable() {
@Override
public void run() {
if (mSwipeRefreshLayout != null) {
mSwipeRefreshLayout.setRefreshing(true);
}
if (swipeRefreshLayout != null) {
swipeRefreshLayout.setRefreshing(true);
}
}
});
App.get().getGitLab().getCommitDiff(mProject.getId(), mCommit.getId())
App.get().getGitLab().getCommitDiff(project.getId(), commit.getId())
.compose(this.<List<Diff>>bindToLifecycle())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
Loading
Loading
@@ -108,16 +114,16 @@ public class DiffActivity extends BaseActivity {
 
@Override
public void error(Throwable t) {
mSwipeRefreshLayout.setRefreshing(false);
swipeRefreshLayout.setRefreshing(false);
Timber.e(t);
mMessageText.setText(R.string.connection_error);
mMessageText.setVisibility(View.VISIBLE);
textMessage.setText(R.string.connection_error);
textMessage.setVisibility(View.VISIBLE);
}
 
@Override
public void success(List<Diff> diffs) {
mSwipeRefreshLayout.setRefreshing(false);
mDiffAdapter.setData(diffs);
swipeRefreshLayout.setRefreshing(false);
adapterDiff.setData(diffs);
}
});
}
Loading
Loading
Loading
Loading
@@ -66,23 +66,22 @@ public class FileActivity extends BaseActivity {
}
 
@BindView(R.id.root)
ViewGroup mRoot;
ViewGroup root;
@BindView(R.id.toolbar)
Toolbar mToolbar;
Toolbar toolbar;
@BindView(R.id.file_blob)
WebView mFileBlobView;
WebView webViewFileBlob;
@BindView(R.id.progress)
View mProgressView;
private long mProjectId;
private String mPath;
private String mRef;
private RepositoryFile mRepositoryFile;
private String mFileName;
private byte[] mBlob;
private
View progress;
private long projectId;
private String path;
private String ref;
private RepositoryFile repositoryFile;
private String fileName;
private byte[] blob;
@Option
int mOption;
private int option;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
Loading
Loading
@@ -90,27 +89,27 @@ public class FileActivity extends BaseActivity {
setContentView(R.layout.activity_file);
ButterKnife.bind(this);
 
mProjectId = getIntent().getLongExtra(EXTRA_PROJECT_ID, -1);
mPath = getIntent().getStringExtra(EXTRA_PATH);
mRef = getIntent().getStringExtra(EXTRA_REF);
projectId = getIntent().getLongExtra(EXTRA_PROJECT_ID, -1);
path = getIntent().getStringExtra(EXTRA_PATH);
ref = getIntent().getStringExtra(EXTRA_REF);
 
mToolbar.setNavigationIcon(R.drawable.ic_back_24dp);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
toolbar.setNavigationIcon(R.drawable.ic_back_24dp);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_open:
mOption = OPTION_OPEN;
option = OPTION_OPEN;
checkAccountPermission();
return true;
case R.id.action_save:
mOption = OPTION_SAVE;
option = OPTION_SAVE;
checkAccountPermission();
return true;
}
Loading
Loading
@@ -122,8 +121,8 @@ public class FileActivity extends BaseActivity {
}
 
private void loadData() {
mProgressView.setVisibility(View.VISIBLE);
App.get().getGitLab().getFile(mProjectId, mPath, mRef)
progress.setVisibility(View.VISIBLE);
App.get().getGitLab().getFile(projectId, path, ref)
.compose(this.<RepositoryFile>bindToLifecycle())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
Loading
Loading
@@ -132,25 +131,25 @@ public class FileActivity extends BaseActivity {
@Override
public void error(Throwable t) {
Timber.e(t);
mProgressView.setVisibility(View.GONE);
Snackbar.make(mRoot, R.string.file_load_error, Snackbar.LENGTH_SHORT)
progress.setVisibility(View.GONE);
Snackbar.make(root, R.string.file_load_error, Snackbar.LENGTH_SHORT)
.show();
}
 
@Override
public void success(RepositoryFile repositoryFile) {
mProgressView.setVisibility(View.GONE);
progress.setVisibility(View.GONE);
bindFile(repositoryFile);
}
});
}
 
private void bindFile(RepositoryFile repositoryFile) {
mRepositoryFile = repositoryFile;
mFileName = repositoryFile.getFileName();
mToolbar.setTitle(mFileName);
this.repositoryFile = repositoryFile;
fileName = repositoryFile.getFileName();
toolbar.setTitle(fileName);
if (repositoryFile.getSize() > MAX_FILE_SIZE) {
Snackbar.make(mRoot, R.string.file_too_big, Snackbar.LENGTH_SHORT)
Snackbar.make(root, R.string.file_too_big, Snackbar.LENGTH_SHORT)
.show();
} else {
loadBlob(repositoryFile);
Loading
Loading
@@ -166,7 +165,7 @@ public class FileActivity extends BaseActivity {
 
@Override
public void error(Throwable t) {
Snackbar.make(mRoot, R.string.failed_to_load, Snackbar.LENGTH_SHORT)
Snackbar.make(root, R.string.failed_to_load, Snackbar.LENGTH_SHORT)
.show();
}
 
Loading
Loading
@@ -178,10 +177,10 @@ public class FileActivity extends BaseActivity {
}
 
private void bindBlob(byte[] blob) {
mBlob = blob;
this.blob = blob;
String content;
String mimeType = null;
String extension = fileExt(mFileName);
String extension = fileExt(fileName);
if (extension != null) {
mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
if (mimeType != null) {
Loading
Loading
@@ -190,7 +189,7 @@ public class FileActivity extends BaseActivity {
}
 
if (mimeType != null && mimeType.startsWith("image/")) {
String imageURL = "data:" + mimeType + ";base64," + mRepositoryFile.getContent();
String imageURL = "data:" + mimeType + ";base64," + repositoryFile.getContent();
 
content = "<!DOCTYPE html>" +
"<html>" +
Loading
Loading
@@ -199,7 +198,7 @@ public class FileActivity extends BaseActivity {
"</body>" +
"</html>";
} else {
String text = new String(mBlob, Charset.forName("UTF-8"));
String text = new String(this.blob, Charset.forName("UTF-8"));
 
content = "<!DOCTYPE html>" +
"<html>" +
Loading
Loading
@@ -216,14 +215,14 @@ public class FileActivity extends BaseActivity {
"</html>";
}
 
mFileBlobView.loadDataWithBaseURL("file:///android_asset/", content, "text/html", "utf8", null);
mToolbar.inflateMenu(R.menu.menu_file);
webViewFileBlob.loadDataWithBaseURL("file:///android_asset/", content, "text/html", "utf8", null);
toolbar.inflateMenu(R.menu.menu_file);
}
 
@TargetApi(23)
private void checkAccountPermission() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
if (mOption == OPTION_SAVE) {
if (option == OPTION_SAVE) {
saveBlob();
} else {
openFile();
Loading
Loading
@@ -238,7 +237,7 @@ public class FileActivity extends BaseActivity {
switch (requestCode) {
case REQUEST_PERMISSION_WRITE_STORAGE: {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if (mOption == OPTION_SAVE) {
if (option == OPTION_SAVE) {
saveBlob();
} else {
openFile();
Loading
Loading
@@ -251,21 +250,21 @@ public class FileActivity extends BaseActivity {
private File saveBlob() {
String state = Environment.getExternalStorageState();
 
if (Environment.MEDIA_MOUNTED.equals(state) && mBlob != null) {
File targetFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), mFileName);
if (Environment.MEDIA_MOUNTED.equals(state) && blob != null) {
File targetFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), fileName);
 
FileOutputStream outputStream = null;
try {
outputStream = new FileOutputStream(targetFile);
outputStream.write(mBlob);
outputStream.write(blob);
 
Snackbar.make(mRoot, getString(R.string.file_saved), Snackbar.LENGTH_SHORT)
Snackbar.make(root, getString(R.string.file_saved), Snackbar.LENGTH_SHORT)
.show();
 
return targetFile;
} catch (IOException e) {
Timber.e(e);
Snackbar.make(mRoot, getString(R.string.save_error), Snackbar.LENGTH_SHORT)
Snackbar.make(root, getString(R.string.save_error), Snackbar.LENGTH_SHORT)
.show();
} finally {
if (outputStream != null) {
Loading
Loading
@@ -277,7 +276,7 @@ public class FileActivity extends BaseActivity {
}
}
} else {
Snackbar.make(mRoot, getString(R.string.save_error), Snackbar.LENGTH_SHORT)
Snackbar.make(root, getString(R.string.save_error), Snackbar.LENGTH_SHORT)
.show();
}
 
Loading
Loading
@@ -287,7 +286,7 @@ public class FileActivity extends BaseActivity {
private void openFile() {
File file = saveBlob();
if (file == null) {
Snackbar.make(mRoot, getString(R.string.open_error), Snackbar.LENGTH_SHORT)
Snackbar.make(root, getString(R.string.open_error), Snackbar.LENGTH_SHORT)
.show();
return;
}
Loading
Loading
@@ -305,7 +304,7 @@ public class FileActivity extends BaseActivity {
startActivity(intent);
} catch (ActivityNotFoundException | SecurityException e) {
Timber.e(e);
Snackbar.make(mRoot, getString(R.string.open_error), Snackbar.LENGTH_SHORT)
Snackbar.make(root, getString(R.string.open_error), Snackbar.LENGTH_SHORT)
.show();
}
}
Loading
Loading
Loading
Loading
@@ -55,19 +55,19 @@ public class GroupActivity extends BaseActivity {
}
 
@BindView(R.id.root)
View mRoot;
View root;
@BindView(R.id.toolbar)
Toolbar mToolbar;
Toolbar toolbar;
@BindView(R.id.collapsing_toolbar)
CollapsingToolbarLayout mCollapsingToolbarLayout;
CollapsingToolbarLayout collapsingToolbarLayout;
@BindView(R.id.viewpager)
ViewPager mViewPager;
ViewPager viewPager;
@BindView(R.id.tabs)
TabLayout mTabLayout;
TabLayout tabLayout;
@BindView(R.id.backdrop)
ImageView mBackdrop;
ImageView backdrop;
@BindView(R.id.progress)
View mProgress;
View progress;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
Loading
Loading
@@ -77,8 +77,8 @@ public class GroupActivity extends BaseActivity {
 
// Default content and scrim colors
 
mToolbar.setNavigationIcon(R.drawable.ic_back_24dp);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
toolbar.setNavigationIcon(R.drawable.ic_back_24dp);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
Loading
Loading
@@ -89,7 +89,7 @@ public class GroupActivity extends BaseActivity {
Group group = Parcels.unwrap(getIntent().getParcelableExtra(KEY_GROUP));
bind(group);
} else {
mProgress.setVisibility(View.VISIBLE);
progress.setVisibility(View.VISIBLE);
long groupId = getIntent().getLongExtra(KEY_GROUP_ID, -1);
App.get().getGitLab().getGroup(groupId)
.compose(this.<GroupDetail>bindToLifecycle())
Loading
Loading
@@ -100,13 +100,13 @@ public class GroupActivity extends BaseActivity {
@Override
public void error(Throwable t) {
Timber.e(t);
mProgress.setVisibility(View.GONE);
progress.setVisibility(View.GONE);
showError();
}
 
@Override
public void success(GroupDetail groupDetail) {
mProgress.setVisibility(View.GONE);
progress.setVisibility(View.GONE);
bind(groupDetail);
}
});
Loading
Loading
@@ -122,7 +122,7 @@ public class GroupActivity extends BaseActivity {
App.get().getPicasso()
.load(group.getAvatarUrl())
.transform(PaletteTransformation.instance())
.into(mBackdrop, new PaletteTransformation.PaletteCallback(mBackdrop) {
.into(backdrop, new PaletteTransformation.PaletteCallback(backdrop) {
@Override
protected void onSuccess(Palette palette) {
bindPalette(palette);
Loading
Loading
@@ -133,8 +133,8 @@ public class GroupActivity extends BaseActivity {
}
});
 
mViewPager.setAdapter(new GroupPagerAdapter(this, getSupportFragmentManager(), group));
mTabLayout.setupWithViewPager(mViewPager);
viewPager.setAdapter(new GroupPagerAdapter(this, getSupportFragmentManager(), group));
tabLayout.setupWithViewPager(viewPager);
}
 
private void bindPalette(Palette palette) {
Loading
Loading
@@ -148,24 +148,24 @@ public class GroupActivity extends BaseActivity {
.start();
}
 
ObjectAnimator.ofObject(mCollapsingToolbarLayout, "contentScrimColor", new ArgbEvaluator(),
ObjectAnimator.ofObject(collapsingToolbarLayout, "contentScrimColor", new ArgbEvaluator(),
Easel.getThemeAttrColor(this, R.attr.colorPrimary), vibrantColor)
.setDuration(animationTime)
.start();
 
ObjectAnimator.ofObject(mCollapsingToolbarLayout, "statusBarScrimColor", new ArgbEvaluator(),
ObjectAnimator.ofObject(collapsingToolbarLayout, "statusBarScrimColor", new ArgbEvaluator(),
Easel.getThemeAttrColor(this, R.attr.colorPrimaryDark), darkerColor)
.setDuration(animationTime)
.start();
 
ObjectAnimator.ofObject(mToolbar, "titleTextColor", new ArgbEvaluator(),
ObjectAnimator.ofObject(toolbar, "titleTextColor", new ArgbEvaluator(),
Color.WHITE, palette.getDarkMutedColor(Color.BLACK))
.setDuration(animationTime)
.start();
}
 
private void showError() {
Snackbar.make(mRoot, R.string.connection_error, Snackbar.LENGTH_SHORT)
Snackbar.make(root, R.string.connection_error, Snackbar.LENGTH_SHORT)
.show();
}
}
Loading
Loading
@@ -45,32 +45,37 @@ public class GroupsActivity extends BaseActivity {
return intent;
}
 
@BindView(R.id.drawer_layout) DrawerLayout mDrawerLayout;
@BindView(R.id.toolbar) Toolbar mToolbar;
@BindView(R.id.swipe_layout) SwipeRefreshLayout mSwipeRefreshLayout;
@BindView(R.id.list) RecyclerView mGroupRecyclerView;
@BindView(R.id.message_text) TextView mMessageText;
GroupAdapter mGroupAdapter;
DynamicGridLayoutManager mGroupLayoutManager;
private Uri mNextPageUrl;
private boolean mLoading = false;
EventReceiver mEventReceiver;
private final RecyclerView.OnScrollListener mOnScrollListener = new RecyclerView.OnScrollListener() {
@BindView(R.id.drawer_layout)
DrawerLayout drawerLayout;
@BindView(R.id.toolbar)
Toolbar toolbar;
@BindView(R.id.swipe_layout)
SwipeRefreshLayout swipeRefreshLayout;
@BindView(R.id.list)
RecyclerView listGroups;
@BindView(R.id.message_text)
TextView textMessage;
GroupAdapter adapterGroup;
DynamicGridLayoutManager layoutManager;
private Uri nextPageUrl;
private boolean loading = false;
private final RecyclerView.OnScrollListener onScrollListener = new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int visibleItemCount = mGroupLayoutManager.getChildCount();
int totalItemCount = mGroupLayoutManager.getItemCount();
int firstVisibleItem = mGroupLayoutManager.findFirstVisibleItemPosition();
if (firstVisibleItem + visibleItemCount >= totalItemCount && !mLoading && mNextPageUrl != null) {
int visibleItemCount = layoutManager.getChildCount();
int totalItemCount = layoutManager.getItemCount();
int firstVisibleItem = layoutManager.findFirstVisibleItemPosition();
if (firstVisibleItem + visibleItemCount >= totalItemCount && !loading && nextPageUrl != null) {
loadMore();
}
}
};
 
private final GroupAdapter.Listener mGroupAdapterListener = new GroupAdapter.Listener() {
private final GroupAdapter.Listener groupAdapterListener = new GroupAdapter.Listener() {
@Override
public void onGroupClicked(Group group, GroupViewHolder groupViewHolder) {
Navigator.navigateToGroup(GroupsActivity.this, groupViewHolder.mImageView, group);
Loading
Loading
@@ -82,57 +87,56 @@ public class GroupsActivity extends BaseActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_groups);
ButterKnife.bind(this);
mEventReceiver = new EventReceiver();
App.bus().register(mEventReceiver);
App.bus().register(this);
 
mToolbar.setTitle(R.string.nav_groups);
mToolbar.setNavigationIcon(R.drawable.ic_menu_24dp);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
toolbar.setTitle(R.string.nav_groups);
toolbar.setNavigationIcon(R.drawable.ic_menu_24dp);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDrawerLayout.openDrawer(GravityCompat.START);
drawerLayout.openDrawer(GravityCompat.START);
}
});
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
load();
}
});
mMessageText.setOnClickListener(new View.OnClickListener() {
textMessage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
load();
}
});
mGroupLayoutManager = new DynamicGridLayoutManager(this);
mGroupLayoutManager.setMinimumWidthDimension(R.dimen.user_list_image_size);
mGroupRecyclerView.setLayoutManager(mGroupLayoutManager);
mGroupAdapter = new GroupAdapter(mGroupAdapterListener);
mGroupRecyclerView.setAdapter(mGroupAdapter);
mGroupRecyclerView.addOnScrollListener(mOnScrollListener);
layoutManager = new DynamicGridLayoutManager(this);
layoutManager.setMinimumWidthDimension(R.dimen.user_list_image_size);
listGroups.setLayoutManager(layoutManager);
adapterGroup = new GroupAdapter(groupAdapterListener);
listGroups.setAdapter(adapterGroup);
listGroups.addOnScrollListener(onScrollListener);
load();
}
 
@Override
protected void onDestroy() {
super.onDestroy();
App.bus().unregister(mEventReceiver);
App.bus().unregister(this);
}
 
private void load() {
mMessageText.setVisibility(View.GONE);
mSwipeRefreshLayout.post(new Runnable() {
textMessage.setVisibility(View.GONE);
swipeRefreshLayout.post(new Runnable() {
@Override
public void run() {
if (mSwipeRefreshLayout != null) {
mSwipeRefreshLayout.setRefreshing(true);
if (swipeRefreshLayout != null) {
swipeRefreshLayout.setRefreshing(true);
}
}
});
 
mNextPageUrl = null;
mLoading = true;
nextPageUrl = null;
loading = true;
 
App.get().getGitLab().getGroups()
.compose(this.<Response<List<Group>>>bindToLifecycle())
Loading
Loading
@@ -143,48 +147,48 @@ public class GroupsActivity extends BaseActivity {
@Override
public void error(Throwable e) {
Timber.e(e);
mSwipeRefreshLayout.setRefreshing(false);
mLoading = false;
mMessageText.setVisibility(View.VISIBLE);
mMessageText.setText(R.string.connection_error);
swipeRefreshLayout.setRefreshing(false);
loading = false;
textMessage.setVisibility(View.VISIBLE);
textMessage.setText(R.string.connection_error);
}
 
@Override
public void responseSuccess(List<Group> groups) {
mLoading = false;
mSwipeRefreshLayout.setRefreshing(false);
loading = false;
swipeRefreshLayout.setRefreshing(false);
if (groups.isEmpty()) {
mMessageText.setText(R.string.no_groups);
mMessageText.setVisibility(View.VISIBLE);
mGroupRecyclerView.setVisibility(View.GONE);
textMessage.setText(R.string.no_groups);
textMessage.setVisibility(View.VISIBLE);
listGroups.setVisibility(View.GONE);
} else {
mGroupAdapter.setGroups(groups);
mMessageText.setVisibility(View.GONE);
mGroupRecyclerView.setVisibility(View.VISIBLE);
mNextPageUrl = LinkHeaderParser.parse(response()).getNext();
adapterGroup.setGroups(groups);
textMessage.setVisibility(View.GONE);
listGroups.setVisibility(View.VISIBLE);
nextPageUrl = LinkHeaderParser.parse(response()).getNext();
}
}
});
}
 
private void loadMore() {
if (mNextPageUrl == null) {
if (nextPageUrl == null) {
return;
}
 
mSwipeRefreshLayout.post(new Runnable() {
swipeRefreshLayout.post(new Runnable() {
@Override
public void run() {
if (mSwipeRefreshLayout != null) {
mSwipeRefreshLayout.setRefreshing(true);
if (swipeRefreshLayout != null) {
swipeRefreshLayout.setRefreshing(true);
}
}
});
 
mLoading = true;
loading = true;
 
Timber.d("loadMore called for %s", mNextPageUrl);
App.get().getGitLab().getGroups(mNextPageUrl.toString())
Timber.d("loadMore called for %s", nextPageUrl);
App.get().getGitLab().getGroups(nextPageUrl.toString())
.compose(this.<Response<List<Group>>>bindToLifecycle())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
Loading
Loading
@@ -193,28 +197,26 @@ public class GroupsActivity extends BaseActivity {
@Override
public void error(Throwable e) {
Timber.e(e);
mLoading = false;
loading = false;
}
 
@Override
public void responseSuccess(List<Group> groups) {
mLoading = false;
mGroupAdapter.addGroups(groups);
mNextPageUrl = LinkHeaderParser.parse(response()).getNext();
loading = false;
adapterGroup.addGroups(groups);
nextPageUrl = LinkHeaderParser.parse(response()).getNext();
}
});
}
 
private class EventReceiver {
@Subscribe
public void onCloseDrawerEvent(CloseDrawerEvent event) {
mDrawerLayout.closeDrawers();
}
@Subscribe
public void onCloseDrawerEvent(CloseDrawerEvent event) {
drawerLayout.closeDrawers();
}
 
@Subscribe
public void onReloadData(ReloadDataEvent event) {
load();
}
@Subscribe
public void onReloadData(ReloadDataEvent event) {
load();
}
}
Loading
Loading
@@ -25,6 +25,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import timber.log.Timber;
 
/**
* Intermediate activity when deep linking to another activity and things need to load
*/
Loading
Loading
@@ -80,11 +81,11 @@ public class LoadSomeInfoActivity extends BaseActivity {
}
 
@BindView(R.id.progress)
View mProgress;
View progress;
 
private int mLoadType;
private int loadType;
 
private Project mProject;
private Project project;
 
@OnClick(R.id.root)
void onRootClicked() {
Loading
Loading
@@ -96,11 +97,11 @@ public class LoadSomeInfoActivity extends BaseActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loading);
ButterKnife.bind(this);
mProgress.setVisibility(View.VISIBLE);
mLoadType = getIntent().getIntExtra(EXTRA_LOAD_TYPE, -1);
Timber.d("Loading some info type: %d", mLoadType);
progress.setVisibility(View.VISIBLE);
loadType = getIntent().getIntExtra(EXTRA_LOAD_TYPE, -1);
Timber.d("Loading some info type: %d", loadType);
 
switch (mLoadType) {
switch (loadType) {
case LOAD_TYPE_DIFF:
case LOAD_TYPE_MERGE_REQUEST:
case LOAD_TYPE_BUILD:
Loading
Loading
@@ -128,8 +129,8 @@ public class LoadSomeInfoActivity extends BaseActivity {
}
 
private void loadNextPart(Project response) {
mProject = response;
switch (mLoadType) {
project = response;
switch (loadType) {
case LOAD_TYPE_DIFF:
String sha = getIntent().getStringExtra(EXTRA_COMMIT_SHA);
App.get().getGitLab().getCommit(response.getId(), sha)
Loading
Loading
@@ -146,7 +147,7 @@ public class LoadSomeInfoActivity extends BaseActivity {
 
@Override
public void success(RepositoryCommit repositoryCommit) {
Navigator.navigateToDiffActivity(LoadSomeInfoActivity.this, mProject, repositoryCommit);
Navigator.navigateToDiffActivity(LoadSomeInfoActivity.this, project, repositoryCommit);
finish();
}
});
Loading
Loading
@@ -168,7 +169,7 @@ public class LoadSomeInfoActivity extends BaseActivity {
@Override
public void success(List<MergeRequest> mergeRequests) {
if (!mergeRequests.isEmpty()) {
Navigator.navigateToMergeRequest(LoadSomeInfoActivity.this, mProject, mergeRequests.get(0));
Navigator.navigateToMergeRequest(LoadSomeInfoActivity.this, project, mergeRequests.get(0));
finish();
} else {
LoadSomeInfoActivity.this.onError();
Loading
Loading
@@ -192,7 +193,7 @@ public class LoadSomeInfoActivity extends BaseActivity {
 
@Override
public void success(Build build) {
Navigator.navigateToBuild(LoadSomeInfoActivity.this, mProject, build);
Navigator.navigateToBuild(LoadSomeInfoActivity.this, project, build);
finish();
}
});
Loading
Loading
@@ -214,7 +215,7 @@ public class LoadSomeInfoActivity extends BaseActivity {
@Override
public void success(List<Milestone> milestones) {
if (!milestones.isEmpty()) {
Navigator.navigateToMilestone(LoadSomeInfoActivity.this, mProject, milestones.get(0));
Navigator.navigateToMilestone(LoadSomeInfoActivity.this, project, milestones.get(0));
finish();
} else {
LoadSomeInfoActivity.this.onError();
Loading
Loading
Loading
Loading
@@ -45,26 +45,26 @@ public class MergeRequestActivity extends BaseActivity {
}
 
@BindView(R.id.root)
ViewGroup mRoot;
ViewGroup root;
@BindView(R.id.toolbar)
Toolbar mToolbar;
Toolbar toolbar;
@BindView(R.id.tabs)
TabLayout mTabLayout;
TabLayout tabLayout;
@BindView(R.id.pager)
ViewPager mViewPager;
ViewPager viewPager;
@BindView(R.id.progress)
View mProgress;
View progress;
 
Project mProject;
MergeRequest mMergeRequest;
Project project;
MergeRequest mergeRequest;
 
private final Toolbar.OnMenuItemClickListener mOnMenuItemClickListener = new Toolbar.OnMenuItemClickListener() {
private final Toolbar.OnMenuItemClickListener onMenuItemClickListener = new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_merge:
mProgress.setVisibility(View.VISIBLE);
App.get().getGitLab().acceptMergeRequest(mProject.getId(), mMergeRequest.getId())
progress.setVisibility(View.VISIBLE);
App.get().getGitLab().acceptMergeRequest(project.getId(), mergeRequest.getId())
.compose(MergeRequestActivity.this.<Response<MergeRequest>>bindToLifecycle())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
Loading
Loading
@@ -73,7 +73,7 @@ public class MergeRequestActivity extends BaseActivity {
@Override
public void error(Throwable e) {
Timber.e(e);
mProgress.setVisibility(View.GONE);
progress.setVisibility(View.GONE);
String message = getString(R.string.unable_to_merge);
if (e instanceof HttpException) {
int code = ((HttpException) e).response().code();
Loading
Loading
@@ -81,14 +81,14 @@ public class MergeRequestActivity extends BaseActivity {
message = getString(R.string.merge_request_already_merged_or_closed);
}
}
Snackbar.make(mRoot, message, Snackbar.LENGTH_LONG)
Snackbar.make(root, message, Snackbar.LENGTH_LONG)
.show();
}
 
@Override
public void responseSuccess(MergeRequest mergeRequest) {
mProgress.setVisibility(View.GONE);
Snackbar.make(mRoot, R.string.merge_request_accepted, Snackbar.LENGTH_LONG)
progress.setVisibility(View.GONE);
Snackbar.make(root, R.string.merge_request_accepted, Snackbar.LENGTH_LONG)
.show();
App.bus().post(new MergeRequestChangedEvent(mergeRequest));
}
Loading
Loading
@@ -105,20 +105,20 @@ public class MergeRequestActivity extends BaseActivity {
setContentView(R.layout.activity_merge_request);
ButterKnife.bind(this);
 
mProject = Parcels.unwrap(getIntent().getParcelableExtra(KEY_PROJECT));
mMergeRequest = Parcels.unwrap(getIntent().getParcelableExtra(KEY_MERGE_REQUEST));
project = Parcels.unwrap(getIntent().getParcelableExtra(KEY_PROJECT));
mergeRequest = Parcels.unwrap(getIntent().getParcelableExtra(KEY_MERGE_REQUEST));
 
mToolbar.setTitle(getString(R.string.merge_request_number) + mMergeRequest.getIid());
mToolbar.setNavigationIcon(R.drawable.ic_back_24dp);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
toolbar.setTitle(getString(R.string.merge_request_number) + mergeRequest.getIid());
toolbar.setNavigationIcon(R.drawable.ic_back_24dp);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
mToolbar.setSubtitle(mProject.getNameWithNamespace());
mToolbar.inflateMenu(R.menu.menu_merge_request);
mToolbar.setOnMenuItemClickListener(mOnMenuItemClickListener);
toolbar.setSubtitle(project.getNameWithNamespace());
toolbar.inflateMenu(R.menu.menu_merge_request);
toolbar.setOnMenuItemClickListener(onMenuItemClickListener);
setupTabs();
}
 
Loading
Loading
@@ -126,10 +126,10 @@ public class MergeRequestActivity extends BaseActivity {
MergeRequestSectionsPagerAdapter sectionsPagerAdapter = new MergeRequestSectionsPagerAdapter(
this,
getSupportFragmentManager(),
mProject,
mMergeRequest);
project,
mergeRequest);
 
mViewPager.setAdapter(sectionsPagerAdapter);
mTabLayout.setupWithViewPager(mViewPager);
viewPager.setAdapter(sectionsPagerAdapter);
tabLayout.setupWithViewPager(viewPager);
}
}
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