diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/adapters/TaskAdapter.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/adapters/TaskAdapter.java index ef55ff4..220c73d 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/adapters/TaskAdapter.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/adapters/TaskAdapter.java @@ -16,7 +16,7 @@ import java.util.List; * {@link RecyclerView.Adapter} that can display a {@link Task} and makes a call to the * specified {@link OnListFragmentInteractionListener}. */ -public class TaskAdapter extends RecyclerView.Adapter implements View.OnClickListener { +public class TaskAdapter extends RecyclerView.Adapter { private final List mValues; private final OnListFragmentInteractionListener mListener; @@ -32,13 +32,13 @@ public class TaskAdapter extends RecyclerView.Adapter im .inflate(R.layout.fragment_task, parent, false); ViewHolder holder = new ViewHolder(view); - holder.mTitleView.setOnClickListener(TaskAdapter.this); return holder; } @Override public void onBindViewHolder(final ViewHolder holder, int position) { holder.mItem = mValues.get(position); + holder.mIdView.setText(String.valueOf(holder.mItem.getId())); holder.mCycleView.setText(String.valueOf(holder.mItem.getCycle())); holder.mTitleView.setText(holder.mItem.getName()); @@ -59,13 +59,6 @@ public class TaskAdapter extends RecyclerView.Adapter im return mValues.size(); } - @Override - public void onClick(View view) { - /*ViewHolder holder = (ViewHolder) view.getTag(); - if (view.getId() == holder.mTitleView.getId()) { - Toast.makeText(view.getContext(), holder.mTitleView.getText(), Toast.LENGTH_SHORT).show(); - }*/ - } public void add(Task item, int position) { mValues.add(position, item); notifyItemInserted(position); @@ -79,6 +72,7 @@ public class TaskAdapter extends RecyclerView.Adapter im public class ViewHolder extends RecyclerView.ViewHolder { public final View mView; + public final TextView mIdView; public final TextView mCycleView; public final TextView mTitleView; public Task mItem; @@ -86,6 +80,8 @@ public class TaskAdapter extends RecyclerView.Adapter im public ViewHolder(View view) { super(view); mView = view; + + mIdView = (TextView) view.findViewById(R.id.task_id); mCycleView = (TextView) view.findViewById(R.id.task_cycle); mTitleView = (TextView) view.findViewById(R.id.task_name); } diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/database/TaskDataAccess.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/database/TaskDataAccess.java index 266dac4..33a3389 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/database/TaskDataAccess.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/database/TaskDataAccess.java @@ -66,6 +66,16 @@ public class TaskDataAccess { return getAllTasksCursor(); }*/ + public Task getTask(long id) + { + Cursor cursor = getTaskCursor(id); + + cursor.moveToFirst(); + Task task = cursorToTask(cursor); + cursor.close(); + return task; + } + public List getAllTasks(long id) { List tasks = new ArrayList<>(); @@ -105,6 +115,10 @@ public class TaskDataAccess { return totalCycles; } + public Cursor getTaskCursor(long id) { + return database.query(DatabaseHelper.TASKS_TABLE_NAME, + taskColumns, DatabaseHelper.COLUMN_ID + " = " + id, null, null, null, null); + } public Cursor getAllTasksCursor(long id) { return database.query(DatabaseHelper.TASKS_TABLE_NAME, taskColumns, DatabaseHelper.TASKS_COLUMN_LIST + " = " + id, null, null, null, null); diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java index 8448e62..813da10 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java @@ -9,11 +9,13 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import android.widget.Toast; import com.wismna.geoffroy.donext.R; import com.wismna.geoffroy.donext.adapters.TaskAdapter; import com.wismna.geoffroy.donext.dao.Task; import com.wismna.geoffroy.donext.database.TaskDataAccess; +import com.wismna.geoffroy.donext.listeners.RecyclerItemClickListener; /** * A fragment representing a list of Items. @@ -59,10 +61,22 @@ public class TasksFragment extends Fragment { View view = inflater.inflate(R.layout.fragment_task_list, container, false); // Set the adapter - Context context = view.getContext(); + final Context context = view.getContext(); RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.task_list_view); + final Toast mToast = Toast.makeText(getActivity(), "", Toast.LENGTH_SHORT); recyclerView.setLayoutManager(new LinearLayoutManager(context)); + recyclerView.addOnItemTouchListener( + new RecyclerItemClickListener(context, new RecyclerItemClickListener.OnItemClickListener() { + @Override + public void onItemClick(View view, int position) { + // TODO: implement on item click event + TextView editText = (TextView) view.findViewById(R.id.task_id); + mToast.setText("Item " + editText.getText() + " clicked!"); + mToast.show(); + } + }) + ); taskDataAccess = new TaskDataAccess(view.getContext()); taskDataAccess.open(); diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/listeners/RecyclerItemClickListener.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/listeners/RecyclerItemClickListener.java new file mode 100644 index 0000000..18246d8 --- /dev/null +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/listeners/RecyclerItemClickListener.java @@ -0,0 +1,48 @@ +package com.wismna.geoffroy.donext.listeners; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.GestureDetector; +import android.view.MotionEvent; +import android.view.View; + +/** + * Created by geoffroy on 15-12-02. + */ +public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener { + private OnItemClickListener mListener; + + public interface OnItemClickListener { + void onItemClick(View view, int position); + } + + GestureDetector mGestureDetector; + + public RecyclerItemClickListener(Context context, OnItemClickListener listener) { + mListener = listener; + mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { + @Override + public boolean onSingleTapUp(MotionEvent e) { + return true; + } + }); + } + + @Override + public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) { + View childView = view.findChildViewUnder(e.getX(), e.getY()); + if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) { + mListener.onItemClick(childView, view.getChildAdapterPosition(childView)); + } + return false; + } + + @Override + public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) { + } + + @Override + public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { + + } +} \ No newline at end of file diff --git a/DoNExt/app/src/main/res/layout/fragment_task.xml b/DoNExt/app/src/main/res/layout/fragment_task.xml index 486a69a..b1b0e59 100644 --- a/DoNExt/app/src/main/res/layout/fragment_task.xml +++ b/DoNExt/app/src/main/res/layout/fragment_task.xml @@ -3,13 +3,17 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > + -