diff options
author | Tom Hennen <tom.hennen@gmail.com> | 2015-11-03 22:22:27 -0500 |
---|---|---|
committer | Tom Hennen <tom.hennen@gmail.com> | 2015-11-03 22:22:27 -0500 |
commit | 910363c3e4ea8ceae28542880ae17a3d15a1656d (patch) | |
tree | fc6ba9f5ab219ce4d36491e90ed21d873777e503 /app/src/main/java/de/danoeh/antennapod/fragment | |
parent | 358a96ef6e49a9453b513f2b4ff3f8a14a70bd6d (diff) | |
download | AntennaPod-910363c3e4ea8ceae28542880ae17a3d15a1656d.zip |
switched to snackbar
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment')
3 files changed, 29 insertions, 57 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java index 26cd43fb4..854c390be 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java @@ -32,7 +32,6 @@ import java.util.concurrent.atomic.AtomicReference; import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MainActivity; -import de.danoeh.antennapod.adapter.AllEpisodesListAdapter; import de.danoeh.antennapod.adapter.AllEpisodesRecycleAdapter; import de.danoeh.antennapod.adapter.DefaultActionButtonCallback; import de.danoeh.antennapod.core.asynctask.DownloadObserver; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java index 20b4efd7c..d679e5dd3 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java @@ -2,6 +2,7 @@ package de.danoeh.antennapod.fragment; import android.content.Context; import android.os.Bundle; +import android.support.design.widget.Snackbar; import android.support.v4.util.Pair; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.helper.ItemTouchHelper; @@ -35,8 +36,6 @@ public class FavoriteEpisodesFragment extends AllEpisodesFragment { private static final String PREF_NAME = "PrefFavoriteEpisodesFragment"; - private UndoBarController undoBarController; - public FavoriteEpisodesFragment() { super(false, PREF_NAME); } @@ -61,13 +60,12 @@ public class FavoriteEpisodesFragment extends AllEpisodesFragment { @Override protected void resetViewState() { super.resetViewState(); - undoBarController = null; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = super.onCreateViewHelper(inflater, container, savedInstanceState, - R.layout.episodes_fragment_with_undo); + R.layout.all_episodes_fragment); ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) { @Override @@ -87,34 +85,18 @@ public class FavoriteEpisodesFragment extends AllEpisodesFragment { if (item != null) { DBWriter.removeFavoriteItem(item); - undoBarController.showUndoBar(false, - getString(R.string.removed_item), new FeedItemUndoToken(item, - holder.getItemPosition()) - ); + Snackbar snackbar = Snackbar.make(root, getString(R.string.removed_item), + Snackbar.LENGTH_LONG); + snackbar.setAction(getString(R.string.undo), v -> { + DBWriter.addFavoriteItem(item); + }); + snackbar.show(); } } }; ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback); itemTouchHelper.attachToRecyclerView(listView); - - undoBarController = new UndoBarController<>(root.findViewById(R.id.undobar), new UndoBarController.UndoListener<FeedItemUndoToken>() { - - private final Context context = getActivity(); - - @Override - public void onUndo(FeedItemUndoToken token) { - if (token != null) { - long itemId = token.getFeedItemId(); - DBWriter.addFavoriteItemById(itemId); - } - } - - @Override - public void onHide(FeedItemUndoToken token) { - // nothing to do - } - }); return root; } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java index 0b9e469d6..5c021b70a 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java @@ -2,6 +2,8 @@ package de.danoeh.antennapod.fragment; import android.content.Context; import android.os.Bundle; +import android.os.Handler; +import android.support.design.widget.Snackbar; import android.support.v4.util.Pair; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.helper.ItemTouchHelper; @@ -19,6 +21,7 @@ import de.danoeh.antennapod.adapter.AllEpisodesRecycleAdapter; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; import de.danoeh.antennapod.core.event.QueueEvent; +import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.util.LongList; @@ -38,8 +41,6 @@ public class NewEpisodesFragment extends AllEpisodesFragment { private static final String PREF_NAME = "PrefNewEpisodesFragment"; - private UndoBarController undoBarController; - public NewEpisodesFragment() { super(true, PREF_NAME); } @@ -64,13 +65,12 @@ public class NewEpisodesFragment extends AllEpisodesFragment { @Override protected void resetViewState() { super.resetViewState(); - undoBarController = null; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = super.onCreateViewHelper(inflater, container, savedInstanceState, - R.layout.episodes_fragment_with_undo); + R.layout.all_episodes_fragment); ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) { @Override @@ -81,6 +81,7 @@ public class NewEpisodesFragment extends AllEpisodesFragment { @Override public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) { AllEpisodesRecycleAdapter.Holder holder = (AllEpisodesRecycleAdapter.Holder)viewHolder; + Log.d(TAG, "remove(" + holder.getItemId() + ")"); if (subscription != null) { subscription.unsubscribe(); @@ -89,38 +90,28 @@ public class NewEpisodesFragment extends AllEpisodesFragment { // we're marking it as unplayed since the user didn't actually play it // but they don't want it considered 'NEW' anymore DBWriter.markItemPlayed(FeedItem.UNPLAYED, item.getId()); - undoBarController.showUndoBar(false, - getString(R.string.marked_as_read_label), new FeedItemUndoToken(item, - holder.getItemPosition())); + + final Handler h = new Handler(getActivity().getMainLooper()); + final Runnable r = () -> { + FeedMedia media = item.getMedia(); + if (media != null && media.hasAlmostEnded() && UserPreferences.isAutoDelete()) { + DBWriter.deleteFeedMediaOfItem(getActivity(), media.getId()); + } + }; + + Snackbar snackbar = Snackbar.make(root, getString(R.string.marked_as_read_label), + Snackbar.LENGTH_LONG); + snackbar.setAction(getString(R.string.undo), v -> { + DBWriter.markItemPlayed(FeedItem.NEW, item.getId()); + }); + snackbar.show(); + h.postDelayed(r, (int)Math.ceil(snackbar.getDuration() * 1.05f)); } }; ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback); itemTouchHelper.attachToRecyclerView(listView); - undoBarController = new UndoBarController<FeedItemUndoToken>(root.findViewById(R.id.undobar), new UndoBarController.UndoListener<FeedItemUndoToken>() { - - private final Context context = getActivity(); - - @Override - public void onUndo(FeedItemUndoToken token) { - if (token != null) { - long itemId = token.getFeedItemId(); - DBWriter.markItemPlayed(FeedItem.NEW, itemId); - } - } - @Override - public void onHide(FeedItemUndoToken token) { - if (token != null && context != null) { - long itemId = token.getFeedItemId(); - FeedItem item = DBReader.getFeedItem(itemId); - FeedMedia media = item.getMedia(); - if(media != null && media.hasAlmostEnded() && item.getFeed().getPreferences().getCurrentAutoDelete()) { - DBWriter.deleteFeedMediaOfItem(context, media.getId()); - } - } - } - }); return root; } |