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

When issue is added, update the main list too.

parent c7292473
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -4,26 +4,27 @@ import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
 
import com.commit451.gitlab.activities.IssueActivity;
import com.commit451.gitlab.R;
import com.commit451.gitlab.activities.IssueActivity;
import com.commit451.gitlab.model.Issue;
import com.commit451.gitlab.viewHolders.IssueViewHolder;
 
import java.util.List;
import java.util.ArrayList;
import java.util.Collection;
 
/**
* Created by Jawn on 7/28/2015.
*/
public class IssuesAdapter extends RecyclerView.Adapter<IssueViewHolder> {
 
private List<Issue> mValues;
private ArrayList<Issue> mValues;
 
public Issue getValueAt(int position) {
return mValues.get(position);
}
 
public IssuesAdapter(List<Issue> items) {
mValues = items;
public IssuesAdapter() {
mValues = new ArrayList<>();
}
 
private final View.OnClickListener onProjectClickListener = new View.OnClickListener() {
Loading
Loading
@@ -53,6 +54,14 @@ public class IssuesAdapter extends RecyclerView.Adapter<IssueViewHolder> {
return mValues.size();
}
 
public void setIssues(Collection<Issue> issues) {
mValues.clear();
if (issues != null) {
mValues.addAll(issues);
}
notifyDataSetChanged();
}
public void addIssue(Issue issue) {
mValues.add(0, issue);
notifyItemInserted(0);
Loading
Loading
Loading
Loading
@@ -12,6 +12,7 @@ import com.commit451.gitlab.GitLabApp;
import com.commit451.gitlab.activities.IssueActivity;
import com.commit451.gitlab.R;
import com.commit451.gitlab.api.GitLabClient;
import com.commit451.gitlab.events.IssueCreatedEvent;
import com.commit451.gitlab.model.Issue;
 
import butterknife.Bind;
Loading
Loading
@@ -63,6 +64,7 @@ public class NewIssueDialog extends AppCompatDialog {
@Override
public void success(Issue issue, Response resp) {
//TODO update the parent list when a new issue is created
GitLabApp.bus().post(new IssueCreatedEvent(issue));
getContext().startActivity(IssueActivity.newInstance(getContext(), issue));
dismiss();
}
Loading
Loading
package com.commit451.gitlab.events;
 
import com.commit451.gitlab.model.Issue;
/**
* Oh no! An Issue!
* Created by Jawn on 7/31/2015.
*/
public class IssueCreatedEvent {
public Issue issue;
public IssueCreatedEvent(Issue issue) {
this.issue = issue;
}
}
Loading
Loading
@@ -15,6 +15,7 @@ import com.commit451.gitlab.R;
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
@@ -35,6 +36,7 @@ public class IssuesFragment extends Fragment implements SwipeRefreshLayout.OnRef
@Bind(R.id.list) RecyclerView listView;
@Bind(R.id.swipe_layout) SwipeRefreshLayout swipeLayout;
 
IssuesAdapter issuesAdapter;
EventReceiver eventReceiver;
 
public IssuesFragment() {}
Loading
Loading
@@ -45,6 +47,8 @@ public class IssuesFragment extends Fragment implements SwipeRefreshLayout.OnRef
ButterKnife.bind(this, view);
 
listView.setLayoutManager(new LinearLayoutManager(getActivity()));
issuesAdapter = new IssuesAdapter();
listView.setAdapter(issuesAdapter);
swipeLayout.setOnRefreshListener(this);
 
if(GitLabApp.instance().getSelectedProject() != null) {
Loading
Loading
@@ -81,10 +85,10 @@ public class IssuesFragment extends Fragment implements SwipeRefreshLayout.OnRef
@Override
public void success(List<Issue> issues, Response resp) {
if(swipeLayout != null && swipeLayout.isRefreshing())
swipeLayout.setRefreshing(false);
listView.setAdapter(new IssuesAdapter(issues));
if(swipeLayout != null && swipeLayout.isRefreshing()) {
swipeLayout.setRefreshing(false);
}
issuesAdapter.setIssues(issues);
 
addIssueButton.setEnabled(true);
}
Loading
Loading
@@ -116,5 +120,10 @@ public class IssuesFragment extends Fragment implements SwipeRefreshLayout.OnRef
public void onProjectChanged(ProjectChangedEvent event) {
loadData();
}
@Subscribe
public void onIssueAdded(IssueCreatedEvent event) {
issuesAdapter.addIssue(event.issue);
}
}
}
\ No newline at end of file
Loading
Loading
@@ -55,7 +55,7 @@
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:hint="@string/new_note_hint"
android:inputType="text|textCapWords|textAutoComplete" />
android:inputType="text|textCapSentences|textAutoComplete" />
 
<ImageButton
android:id="@+id/new_note_button"
Loading
Loading
Loading
Loading
@@ -10,6 +10,7 @@
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/padding_normal"
tools:text="Title"
android:textAppearance="?android:attr/textAppearanceLarge" />
 
Loading
Loading
@@ -32,8 +33,7 @@
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginTop="16dp"
android:layout_margin="@dimen/padding_normal"
tools:text="Description"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
\ No newline at end of file
Loading
Loading
@@ -9,11 +9,12 @@
android:minHeight="?android:attr/listPreferredItemHeight"
android:orientation="horizontal">
 
<ImageView
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
android:layout_marginLeft="@dimen/padding_normal"
android:layout_gravity="center_vertical"
android:contentDescription="@null"/>
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment