diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java
index bf9030b71..1d5124a46 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java
@@ -5,6 +5,7 @@
import android.app.SearchManager;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.graphics.Canvas;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
@@ -319,6 +320,20 @@ public void onClick(View v) {
.show();
}
}
+
+ @Override
+ public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
+ ItemAdapter.NoteViewHolder noteViewHolder = (ItemAdapter.NoteViewHolder) viewHolder;
+ // show delete icon on the right side
+ noteViewHolder.showSwipeDelete(dX>0);
+ // move only swipeable part of item (not leave-behind)
+ getDefaultUIUtil().onDraw(c, recyclerView, noteViewHolder.noteSwipeable, dX, dY, actionState, isCurrentlyActive);
+ }
+
+ @Override
+ public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
+ getDefaultUIUtil().clearView(((ItemAdapter.NoteViewHolder) viewHolder).noteSwipeable);
+ }
});
touchHelper.attachToRecyclerView(listView);
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/model/ItemAdapter.java b/app/src/main/java/it/niedermann/owncloud/notes/model/ItemAdapter.java
index af67882a2..44238e641 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/model/ItemAdapter.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/model/ItemAdapter.java
@@ -156,7 +156,8 @@ public interface NoteClickListener {
}
public class NoteViewHolder extends RecyclerView.ViewHolder implements View.OnLongClickListener, View.OnClickListener {
- // each data item is just a string in this case
+ public View noteSwipeable;
+ public ImageView noteDeleteLeft, noteDeleteRight;
public TextView noteTitle;
public TextView noteCategory;
public TextView noteExcerpt;
@@ -166,6 +167,9 @@ public class NoteViewHolder extends RecyclerView.ViewHolder implements View.OnLo
private NoteViewHolder(View v) {
super(v);
+ this.noteSwipeable = v.findViewById(R.id.noteSwipeable);
+ this.noteDeleteLeft = (ImageView) v.findViewById(R.id.noteDeleteLeft);
+ this.noteDeleteRight = (ImageView) v.findViewById(R.id.noteDeleteRight);
this.noteTitle = (TextView) v.findViewById(R.id.noteTitle);
this.noteCategory = (TextView) v.findViewById(R.id.noteCategory);
this.noteExcerpt = (TextView) v.findViewById(R.id.noteExcerpt);
@@ -188,6 +192,11 @@ public void onClick(View v) {
public boolean onLongClick(View v) {
return noteClickListener.onNoteLongClick(position, v);
}
+
+ public void showSwipeDelete(boolean left) {
+ noteDeleteLeft.setVisibility(left ? View.VISIBLE : View.INVISIBLE);
+ noteDeleteRight.setVisibility(left ? View.INVISIBLE : View.VISIBLE);
+ }
}
public static class SectionViewHolder extends RecyclerView.ViewHolder {
diff --git a/app/src/main/res/layout/fragment_notes_list_note_item.xml b/app/src/main/res/layout/fragment_notes_list_note_item.xml
index d86c31057..9a0f26c81 100644
--- a/app/src/main/res/layout/fragment_notes_list_note_item.xml
+++ b/app/src/main/res/layout/fragment_notes_list_note_item.xml
@@ -1,87 +1,113 @@
-
+ android:background="@color/bg_attention">
-
-
-
-
-
+ android:layout_height="fill_parent"
+ android:src="@drawable/ic_action_delete"
+ android:layout_gravity="left"
+ />
-
+ android:background="@drawable/list_item_background_selector"
+ android:id="@+id/noteSwipeable"
+ >
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+