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

Sorry for huge commit.

-Changed to gradle dependency for Bypass
-Moved global state into app
-Use event bus for state related things
-Add about screen
-Add Fabric for tracking crashes
-Update to new build tools and Android 23
parent eb17aecd
No related branches found
No related tags found
No related merge requests found
Showing
with 368 additions and 140 deletions
Loading
Loading
@@ -7,10 +7,10 @@ android:
- tools
 
# The BuildTools version used by your project
- build-tools-22.0.1
- build-tools-23.0.1
 
# The SDK version used to compile your project
- android-22
- android-23
 
# Additional components
# - extra-google-google_play_services
Loading
Loading
@@ -19,5 +19,6 @@ android:
 
before_script:
- chmod +x gradlew
- printf "GITLAB_FABRIC_KEY = \"\"\n" > gradle.properties
 
script: "./gradlew build"
script: "./gradlew build -x fabricGenerateResourcesRelease"
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
apply plugin: 'com.neenbedankt.android-apt'
 
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
compileSdkVersion 23
buildToolsVersion "23.0.1"
 
defaultConfig {
applicationId "com.commit451.gitlab"
minSdkVersion 16
targetSdkVersion 22
targetSdkVersion 23
versionCode 100
versionName "1.0.0"
}
Loading
Loading
@@ -16,6 +31,14 @@ android {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ext.enableCrashlytics = true
manifestPlaceholders = [fabric_key: project.GITLAB_FABRIC_KEY]
}
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ext.enableCrashlytics = false
manifestPlaceholders = [fabric_key: ""]
}
}
packagingOptions {
Loading
Loading
@@ -45,9 +68,14 @@ dependencies {
compile 'com.jakewharton.timber:timber:3.1.0'
compile 'de.hdodenhof:circleimageview:1.3.0'
compile 'com.pnikosis:materialish-progress:1.5'
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:design:22.2.1'
compile 'com.android.support:recyclerview-v7:22.2.1'
compile 'com.jawnnypoo:physicslayout:1.0.0'
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
compile 'com.android.support:recyclerview-v7:23.0.1'
compile "org.parceler:parceler-api:1.0.3"
apt "org.parceler:parceler:1.0.3"
compile 'com.commit451:bypasses:1.0.0'
compile('com.crashlytics.sdk.android:crashlytics:2.5.2@aar') {
transitive = true;
}
}
File deleted
File deleted
File deleted
File deleted
Loading
Loading
@@ -48,6 +48,11 @@
android:value=".activities.MainActivity" />
</activity>
 
<activity android:name=".activities.AboutActivity"/>
<meta-data
android:name="io.fabric.ApiKey"
android:value="${fabric_key}" />
</application>
 
</manifest>
\ No newline at end of file
Loading
Loading
@@ -6,10 +6,12 @@ import com.commit451.gitlab.model.Branch;
import com.commit451.gitlab.model.Project;
import com.commit451.gitlab.model.User;
import com.commit451.gitlab.tools.Repository;
import com.crashlytics.android.Crashlytics;
import com.squareup.otto.Bus;
 
import net.danlew.android.joda.JodaTimeAndroid;
 
import io.fabric.sdk.android.Fabric;
import timber.log.Timber;
 
/**
Loading
Loading
@@ -65,6 +67,8 @@ public class GitLabApp extends Application {
instance = this;
if (BuildConfig.DEBUG) {
Timber.plant(new Timber.DebugTree());
} else {
Fabric.with(this, new Crashlytics());
}
Repository.init();
JodaTimeAndroid.init(this);
Loading
Loading
package com.commit451.gitlab.activities;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.TextView;
import com.commit451.gitlab.R;
import com.commit451.gitlab.github.Contributor;
import com.commit451.gitlab.github.GithubClient;
import com.commit451.gitlab.tools.IntentUtil;
import com.commit451.gitlab.tools.WindowUtil;
import com.jawnnypoo.physicslayout.Physics;
import com.jawnnypoo.physicslayout.PhysicsConfig;
import com.jawnnypoo.physicslayout.PhysicsFrameLayout;
import com.squareup.picasso.Picasso;
import org.jbox2d.common.Vec2;
import java.util.List;
import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.OnClick;
import de.hdodenhof.circleimageview.CircleImageView;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
import timber.log.Timber;
/**
* Created by Jawn on 8/25/2015.
*/
public class AboutActivity extends BaseActivity {
private static final String REPO_USER = "Jawnnypoo";
private static final String REPO_NAME = "open-meh";
public static Intent newInstance(Context context) {
Intent intent = new Intent(context, AboutActivity.class);
return intent;
}
@Bind(R.id.root)
View root;
@Bind(R.id.toolbar)
Toolbar toolbar;
@Bind(R.id.toolbar_title)
TextView toolbarTitle;
@Bind(R.id.contributors)
TextView contributors;
@Bind(R.id.physics_layout)
PhysicsFrameLayout physicsLayout;
@OnClick(R.id.sauce)
void onSauceClick() {
IntentUtil.openPage(root, getString(R.string.source_url));
}
SensorManager sensorManager;
Sensor gravitySensor;
private final SensorEventListener sensorEventListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_GRAVITY) {
if (physicsLayout.getPhysics().getWorld() != null) {
WindowUtil.normalizeForOrientation(getWindow(), event);
physicsLayout.getPhysics().getWorld().setGravity(new Vec2(-event.values[0], event.values[1]));
}
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) { }
};
private final Callback<List<Contributor>> contributorResponseCallback = new Callback<List<Contributor>>() {
@Override
public void success(List<Contributor> contributorList, Response response) {
addContributors(contributorList);
}
@Override
public void failure(RetrofitError error) {
Snackbar.make(getWindow().getDecorView(), R.string.failed_to_load_contributors, Snackbar.LENGTH_SHORT)
.show();
Timber.e(error.toString());
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WindowUtil.lockToCurrentOrientation(this);
setContentView(R.layout.activity_about);
ButterKnife.bind(this);
toolbar.setNavigationIcon(R.drawable.ic_back);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
toolbarTitle.setText(R.string.about);
physicsLayout.getPhysics().enableFling();
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
gravitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);
GithubClient.instance().contributors(REPO_USER, REPO_NAME, contributorResponseCallback);
}
@Override
protected void onResume() {
super.onResume();
sensorManager.registerListener(sensorEventListener, gravitySensor, SensorManager.SENSOR_DELAY_GAME);
}
@Override
protected void onPause() {
super.onPause();
sensorManager.unregisterListener(sensorEventListener);
}
private void addContributors(List<Contributor> contributors) {
PhysicsConfig config = new PhysicsConfig.Builder()
.setShapeType(PhysicsConfig.ShapeType.CIRCLE)
.setDensity(1.0f)
.setFriction(0.0f)
.setRestitution(0.0f)
.build();
int borderSize = getResources().getDimensionPixelSize(R.dimen.border_size);
int x = 0;
int y = 0;
int imageSize = getResources().getDimensionPixelSize(R.dimen.circle_size);
for (int i=0; i<contributors.size(); i++) {
Contributor contributor = contributors.get(i);
CircleImageView imageView = new CircleImageView(this);
FrameLayout.LayoutParams llp = new FrameLayout.LayoutParams(
imageSize,
imageSize);
imageView.setLayoutParams(llp);
imageView.setBorderWidth(borderSize);
imageView.setBorderColor(Color.BLACK);
Physics.setPhysicsConfig(imageView, config);
physicsLayout.addView(imageView);
imageView.setX(x);
imageView.setY(y);
x = (x + imageSize);
if (x > physicsLayout.getWidth()) {
x = 0;
y = (y + imageSize) % physicsLayout.getHeight();
}
Picasso.with(this)
.load(contributor.avatarUrl)
.into(imageView);
}
physicsLayout.getPhysics().onLayout(true);
}
}
Loading
Loading
@@ -19,7 +19,6 @@ import com.commit451.gitlab.R;
import com.commit451.gitlab.adapter.NotesAdapter;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.model.Issue;
import com.commit451.gitlab.model.Milestone;
import com.commit451.gitlab.model.Note;
import com.commit451.gitlab.model.User;
 
Loading
Loading
@@ -81,12 +80,12 @@ public class IssueActivity extends BaseActivity {
listView.setAdapter(notesAdapter);
 
newNoteEdit.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
postNote();
return true;
}
});
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
postNote();
return true;
}
});
 
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
Loading
Loading
@@ -99,10 +98,7 @@ public class IssueActivity extends BaseActivity {
 
private void load() {
swipeRefreshLayout.setRefreshing(true);
//TODO chain these
GitLabClient.instance().getIssueNotes(GitLabApp.instance().getSelectedProject().getId(), issue.getId(), notesCallback);
GitLabClient.instance().getMilestones(GitLabApp.instance().getSelectedProject().getId(), milestonesCallback);
GitLabClient.instance().getUsersFallback(GitLabApp.instance().getSelectedProject().getId(), usersCallback);
}
 
private void postNote() {
Loading
Loading
@@ -122,24 +118,6 @@ public class IssueActivity extends BaseActivity {
 
GitLabClient.instance().postIssueNote(GitLabApp.instance().getSelectedProject().getId(), issue.getId(), body, "", noteCallback);
}
private void changeStatus() {
// String selection = stateSpinner.getSelectedItem().toString();
// String value = "";
// if(selection.equals("closed") && (Repository.selectedIssue.getState().equals("opened") || Repository.selectedIssue.getState().equals("reopened"))) {
// value = "close";
// }
// if((selection.equals("reopened") || selection.equals("opened")) && Repository.selectedIssue.getState().equals("closed")) {
// value = "reopen";
// }
//
// GitLabClient.instance().editIssue(
// Repository.selectedProject.getId(),
// Repository.selectedIssue.getId(),
// value,
// "",
// issueCallback);
}
private Callback<List<Note>> notesCallback = new Callback<List<Note>>() {
Loading
Loading
@@ -180,36 +158,12 @@ public class IssueActivity extends BaseActivity {
}
};
private Callback<Issue> issueCallback = new Callback<Issue>() {
@Override
public void success(Issue issue, Response resp) {
progress.setVisibility(View.GONE);
// Repository.selectedIssue.setState(stateSpinner.getSelectedItem().toString());
// Repository.selectedIssue.setAssignee((User) assigneeSpinner.getSelectedItem());
// Repository.selectedIssue.setMilestone((Milestone) milestoneSpinner.getSelectedItem());
//TODO notify the main activity when a issue changes so it will update in the list
}
@Override
public void failure(RetrofitError e) {
Timber.e(e.toString());
progress.setVisibility(View.GONE);
Snackbar.make(getWindow().getDecorView(), getString(R.string.connection_error), Snackbar.LENGTH_SHORT)
.show();
}
};
private Callback<List<User>> usersCallback = new Callback<List<User>>() {
@Override
public void success(List<User> users, Response resp) {
swipeRefreshLayout.setRefreshing(false);
notesAdapter.addUsers(users);
// UserAdapter ua = new UserAdapter(IssueActivity.this, users);
// assigneeSpinner.setAdapter(ua);
// assigneeSpinner.setSelection(ua.getPosition(Repository.selectedIssue.getAssignee()), true);
}
@Override
Loading
Loading
@@ -220,28 +174,4 @@ public class IssueActivity extends BaseActivity {
.show();
}
};
private Callback<List<Milestone>> milestonesCallback = new Callback<List<Milestone>>() {
@Override
public void success(List<Milestone> milestones, Response resp) {
swipeRefreshLayout.setRefreshing(false);
notesAdapter.addMilestones(milestones);
// MilestonesAdapter ma = new MilestonesAdapter(IssueActivity.this, milestones);
// milestoneSpinner.setAdapter(ma);
// milestoneSpinner.setSelection(ma.getPosition(Repository.selectedIssue.getMilestone()), true);
// if (milestones.isEmpty()) {
// milestoneSpinner.setVisibility(View.GONE);
// }
}
@Override
public void failure(RetrofitError e) {
Timber.e(e.toString());
swipeRefreshLayout.setRefreshing(false);
Snackbar.make(getWindow().getDecorView(), getString(R.string.connection_error), Snackbar.LENGTH_SHORT)
.show();
}
};
}
Loading
Loading
@@ -12,6 +12,7 @@ import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.widget.Toolbar;
import android.text.TextUtils;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
Loading
Loading
@@ -22,6 +23,7 @@ import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.events.CloseDrawerEvent;
import com.commit451.gitlab.events.ProjectChangedEvent;
import com.commit451.gitlab.events.ReloadDataEvent;
import com.commit451.gitlab.fragments.CommitsFragment;
import com.commit451.gitlab.fragments.FilesFragment;
import com.commit451.gitlab.fragments.IssuesFragment;
Loading
Loading
@@ -61,13 +63,25 @@ public class MainActivity extends BaseActivity {
Branch selectedBranch = Repository.branches.get(position);
GitLabApp.instance().setSelectedBranch(selectedBranch);
Prefs.setLastBranch(MainActivity.this, selectedBranch.getName());
loadData();
broadcastLoad();
}
 
@Override
public void onNothingSelected(AdapterView<?> parent) { }
};
 
private final Toolbar.OnMenuItemClickListener mMenuItemClickListener = new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.action_about:
startActivity(AboutActivity.newInstance(MainActivity.this));
return true;
}
return false;
}
};
EventReceiver eventReceiver;
@Override
Loading
Loading
@@ -86,6 +100,8 @@ public class MainActivity extends BaseActivity {
drawerLayout.openDrawer(GravityCompat.START);
}
});
toolbar.inflateMenu(R.menu.main);
toolbar.setOnMenuItemClickListener(mMenuItemClickListener);
if(!Prefs.isLoggedIn(this)) {
startActivity(new Intent(this, LoginActivity.class));
Loading
Loading
@@ -137,24 +153,10 @@ public class MainActivity extends BaseActivity {
if(!handled)
finish();
}
private void loadData() {
if(GitLabApp.instance().getSelectedProject() == null) {
return;
}
CommitsFragment commitsFragment = (CommitsFragment) getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pager + ":0");
commitsFragment.loadData();
IssuesFragment issuesFragment = (IssuesFragment) getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pager + ":1");
issuesFragment.loadData();
FilesFragment filesFragment = (FilesFragment) getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pager + ":2");
filesFragment.loadData();
UsersFragment usersFragment = (UsersFragment) getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pager + ":3");
usersFragment.loadData();
}
private void broadcastLoad() {
GitLabApp.bus().post(new ReloadDataEvent());
}
/**
* A {@link FragmentPagerAdapter} that returns a fragment corresponding to
Loading
Loading
@@ -325,7 +327,7 @@ public class MainActivity extends BaseActivity {
if(branches.isEmpty()) {
GitLabApp.instance().setSelectedBranch(null);
loadData();
broadcastLoad();
}
}
Loading
Loading
@@ -335,7 +337,7 @@ public class MainActivity extends BaseActivity {
 
if(e.getResponse() != null && e.getResponse().getStatus() == 500) {
GitLabApp.instance().setSelectedBranch(null);
loadData();
broadcastLoad();
return;
}
 
Loading
Loading
Loading
Loading
@@ -4,26 +4,36 @@ import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
 
import com.commit451.gitlab.activities.DiffActivity;
import com.commit451.gitlab.R;
import com.commit451.gitlab.activities.DiffActivity;
import com.commit451.gitlab.model.DiffLine;
import com.commit451.gitlab.viewHolders.CommitViewHolder;
 
import java.util.List;
import java.util.ArrayList;
import java.util.Collection;
 
/**
* Created by Jawn on 7/28/2015.
*/
public class CommitsAdapter extends RecyclerView.Adapter<CommitViewHolder> {
 
private List<DiffLine> mValues;
private ArrayList<DiffLine> mValues;
 
public DiffLine getValueAt(int position) {
return mValues.get(position);
}
 
public CommitsAdapter(List<DiffLine> items) {
mValues = items;
public CommitsAdapter() {
mValues = new ArrayList<>();
}
public void setData(Collection<DiffLine> commits) {
mValues.clear();
if (commits != null) {
mValues.addAll(commits);
notifyItemRangeInserted(0, commits.size());
}
notifyDataSetChanged();
}
 
private final View.OnClickListener onProjectClickListener = new View.OnClickListener() {
Loading
Loading
Loading
Loading
@@ -8,19 +8,22 @@ import com.commit451.gitlab.GitLabApp;
import com.commit451.gitlab.R;
import com.commit451.gitlab.events.CloseDrawerEvent;
import com.commit451.gitlab.events.ProjectChangedEvent;
import com.commit451.gitlab.model.NavItem;
import com.commit451.gitlab.model.Project;
import com.commit451.gitlab.tools.Prefs;
import com.commit451.gitlab.tools.Repository;
import com.commit451.gitlab.viewHolders.ProjectViewHolder;
 
import java.util.ArrayList;
import java.util.List;
 
/**
* Created by Jawn on 7/28/2015.
*/
public class ProjectsAdapter extends RecyclerView.Adapter<ProjectViewHolder> {
public class ProjectsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
 
private List<Project> mValues;
private List<NavItem> mNavItems;
 
public Project getValueAt(int position) {
return mValues.get(position);
Loading
Loading
@@ -28,6 +31,8 @@ public class ProjectsAdapter extends RecyclerView.Adapter<ProjectViewHolder> {
 
public ProjectsAdapter(List<Project> items) {
mValues = items;
mNavItems = new ArrayList<>();
}
 
private final View.OnClickListener onProjectClickListener = new View.OnClickListener() {
Loading
Loading
@@ -46,17 +51,19 @@ public class ProjectsAdapter extends RecyclerView.Adapter<ProjectViewHolder> {
};
 
@Override
public ProjectViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
ProjectViewHolder holder = ProjectViewHolder.create(parent);
holder.itemView.setOnClickListener(onProjectClickListener);
return holder;
}
 
@Override
public void onBindViewHolder(final ProjectViewHolder holder, int position) {
Project project = getValueAt(position);
holder.bind(project);
holder.itemView.setTag(R.id.list_position, position);
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
if (holder instanceof ProjectViewHolder) {
Project project = getValueAt(position);
((ProjectViewHolder) holder).bind(project);
holder.itemView.setTag(R.id.list_position, position);
}
}
 
@Override
Loading
Loading
package com.commit451.gitlab.events;
/**
* Signifies that the fragments should reload their data
* Created by Jawn on 9/1/2015.
*/
public class ReloadDataEvent {
}
package com.commit451.gitlab.fragments;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.View;
import com.commit451.gitlab.GitLabApp;
import com.commit451.gitlab.events.ProjectChangedEvent;
import com.commit451.gitlab.events.ReloadDataEvent;
import com.squareup.otto.Subscribe;
/**
* Created by Jawn on 9/1/2015.
*/
public class BaseFragment extends Fragment{
EventReceiver mBaseEventReceiever;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBaseEventReceiever = new EventReceiver();
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
GitLabApp.bus().register(mBaseEventReceiever);
}
@Override
public void onDestroyView() {
super.onDestroyView();
GitLabApp.bus().unregister(mBaseEventReceiever);
}
protected void loadData() {
//Override this
}
private class EventReceiver {
@Subscribe
public void onReloadData(ReloadDataEvent event) {
loadData();
}
@Subscribe
public void onProjectChanged(ProjectChangedEvent event) {
loadData();
}
}
}
Loading
Loading
@@ -2,7 +2,6 @@ package com.commit451.gitlab.fragments;
 
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
Loading
Loading
@@ -25,18 +24,26 @@ import retrofit.RetrofitError;
import retrofit.client.Response;
import timber.log.Timber;
 
public class CommitsFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener {
public class CommitsFragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener {
 
@Bind(R.id.list) RecyclerView listView;
CommitsAdapter adapter;
@Bind(R.id.swipe_layout) SwipeRefreshLayout swipeLayout;
@Bind(R.id.message_text) View messageView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
adapter = new CommitsAdapter();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_commits, container, false);
ButterKnife.bind(this, view);
 
listView.setLayoutManager(new LinearLayoutManager(getActivity()));
listView.setAdapter(adapter);
swipeLayout.setOnRefreshListener(this);
 
if(GitLabApp.instance().getSelectedProject() != null) {
Loading
Loading
@@ -56,8 +63,9 @@ public class CommitsFragment extends Fragment implements SwipeRefreshLayout.OnRe
public void onRefresh() {
loadData();
}
public void loadData() {
@Override
protected void loadData() {
if(GitLabApp.instance().getSelectedProject() == null) {
return;
}
Loading
Loading
@@ -67,7 +75,7 @@ public class CommitsFragment extends Fragment implements SwipeRefreshLayout.OnRe
swipeLayout.setRefreshing(false);
}
 
listView.setAdapter(null);
adapter.setData(null);
return;
}
Loading
Loading
@@ -98,7 +106,7 @@ public class CommitsFragment extends Fragment implements SwipeRefreshLayout.OnRe
Timber.d("No commits have been made");
messageView.setVisibility(View.VISIBLE);
}
listView.setAdapter(new CommitsAdapter(commits));
adapter.setData(commits);
}
@Override
Loading
Loading
@@ -112,7 +120,7 @@ public class CommitsFragment extends Fragment implements SwipeRefreshLayout.OnRe
 
Snackbar.make(getActivity().getWindow().getDecorView(), getString(R.string.connection_error_commits), Snackbar.LENGTH_SHORT)
.show();
listView.setAdapter(null);
adapter.setData(null);
}
};
}
\ No newline at end of file
Loading
Loading
@@ -2,7 +2,6 @@ package com.commit451.gitlab.fragments;
 
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
Loading
Loading
@@ -11,9 +10,9 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
 
import com.commit451.gitlab.activities.FileActivity;
import com.commit451.gitlab.GitLabApp;
import com.commit451.gitlab.R;
import com.commit451.gitlab.activities.FileActivity;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.events.ProjectChangedEvent;
import com.commit451.gitlab.model.TreeItem;
Loading
Loading
@@ -30,7 +29,7 @@ import retrofit.RetrofitError;
import retrofit.client.Response;
import timber.log.Timber;
 
public class FilesFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener {
public class FilesFragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener {
 
private ArrayList<String> path;
 
Loading
Loading
@@ -67,8 +66,9 @@ public class FilesFragment extends Fragment implements SwipeRefreshLayout.OnRefr
ButterKnife.unbind(this);
GitLabApp.bus().unregister(eventReceiver);
}
public void loadData() {
@Override
protected void loadData() {
Timber.d("loadData");
path = new ArrayList<>();
loadFiles();
Loading
Loading
Loading
Loading
@@ -2,7 +2,6 @@ package com.commit451.gitlab.fragments;
 
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
Loading
Loading
@@ -16,7 +15,6 @@ import com.commit451.gitlab.adapter.IssuesAdapter;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.dialogs.NewIssueDialog;
import com.commit451.gitlab.events.IssueCreatedEvent;
import com.commit451.gitlab.events.ProjectChangedEvent;
import com.commit451.gitlab.model.Issue;
import com.squareup.otto.Subscribe;
 
Loading
Loading
@@ -30,7 +28,7 @@ import retrofit.RetrofitError;
import retrofit.client.Response;
import timber.log.Timber;
 
public class IssuesFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener {
public class IssuesFragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener {
 
@Bind(R.id.add_issue_button) View addIssueButton;
@Bind(R.id.list) RecyclerView listView;
Loading
Loading
@@ -116,11 +114,6 @@ public class IssuesFragment extends Fragment implements SwipeRefreshLayout.OnRef
 
private class EventReceiver {
 
@Subscribe
public void onProjectChanged(ProjectChangedEvent event) {
loadData();
}
@Subscribe
public void onIssueAdded(IssueCreatedEvent event) {
issuesAdapter.addIssue(event.issue);
Loading
Loading
Loading
Loading
@@ -2,7 +2,6 @@ package com.commit451.gitlab.fragments;
 
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
Loading
Loading
@@ -30,7 +29,7 @@ import retrofit.RetrofitError;
import retrofit.client.Response;
import timber.log.Timber;
 
public class UsersFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener {
public class UsersFragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener {
@Bind(R.id.add_user_button) View addUserButton;
@Bind(R.id.list) RecyclerView listView;
Loading
Loading
package com.commit451.gitlab.github;
import com.google.gson.annotations.SerializedName;
/**
* Created by Jawn on 6/14/2015.
*/
public class Contributor {
public String login;
public int contributions;
@SerializedName("avatar_url")
public String avatarUrl;
}
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