From b043d6acb726fc44180f6d8efee91490d0da03ce Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 1 Jun 2017 19:29:04 +0300 Subject: [PATCH] snackbar-based undo for swipe to dismiss --- org.fox.ttrss/build.gradle | 1 + .../java/org/fox/ttrss/HeadlinesFragment.java | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/org.fox.ttrss/build.gradle b/org.fox.ttrss/build.gradle index 9c072e14..7f48ed19 100755 --- a/org.fox.ttrss/build.gradle +++ b/org.fox.ttrss/build.gradle @@ -37,6 +37,7 @@ dependencies { compile 'com.android.support:support-v4:25.3.1' compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support:customtabs:25.3.1' + compile 'com.android.support:design:25.3.1' compile 'com.google.code.gson:gson:2.7' compile 'com.shamanland:fab:0.0.8' compile 'ch.acra:acra:4.9.1' diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java index d500b215..10690e43 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java @@ -16,7 +16,9 @@ import android.media.MediaPlayer; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.os.Handler; import android.preference.PreferenceManager; +import android.support.design.widget.Snackbar; import android.support.v4.app.ActivityCompat; import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.app.Fragment; @@ -366,10 +368,10 @@ public class HeadlinesFragment extends Fragment { @Override public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { - int position = viewHolder.getAdapterPosition() - m_adapter.getHeaderCount(); + final int position = viewHolder.getAdapterPosition() - m_adapter.getHeaderCount(); try { - Article article = getArticleAtPosition(position); + final Article article = getArticleAtPosition(position); if (article != null) { if (article.unread) { @@ -380,6 +382,16 @@ public class HeadlinesFragment extends Fragment { m_articles.remove(position); m_adapter.notifyDataSetChanged(); + + Snackbar.make(m_list, R.string.headline_undo_row_prompt, Snackbar.LENGTH_LONG) + .setAction(getString(R.string.headline_undo_row_button), new OnClickListener() { + @Override + public void onClick(View v) { + m_articles.add(position, article); + m_adapter.notifyDataSetChanged(); + } + }).show(); + } catch (Exception e) { e.printStackTrace(); }