summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java5
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/SwipeActionsDialog.java7
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java1
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java12
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java20
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java1
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/InboxFragment.java119
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java7
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java86
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java6
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/preferences/SwipePreferencesFragment.java6
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/swipeactions/RemoveFromInboxSwipeAction.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/swipeactions/SwipeActions.java7
-rw-r--r--app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java6
-rw-r--r--app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java10
16 files changed, 172 insertions, 127 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
index b23e22c9f..63a6003e3 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
@@ -56,6 +56,7 @@ import de.danoeh.antennapod.fragment.AddFeedFragment;
import de.danoeh.antennapod.fragment.AudioPlayerFragment;
import de.danoeh.antennapod.fragment.DownloadsFragment;
import de.danoeh.antennapod.fragment.EpisodesFragment;
+import de.danoeh.antennapod.fragment.InboxFragment;
import de.danoeh.antennapod.fragment.FeedItemlistFragment;
import de.danoeh.antennapod.fragment.NavDrawerFragment;
import de.danoeh.antennapod.fragment.PlaybackHistoryFragment;
@@ -267,6 +268,9 @@ public class MainActivity extends CastEnabledActivity {
case QueueFragment.TAG:
fragment = new QueueFragment();
break;
+ case InboxFragment.TAG:
+ fragment = new InboxFragment();
+ break;
case EpisodesFragment.TAG:
fragment = new EpisodesFragment();
break;
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java
index 51fc63f86..6a3758358 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java
@@ -25,6 +25,7 @@ import com.joanzapata.iconify.Iconify;
import com.joanzapata.iconify.widget.IconTextView;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.PreferenceActivity;
+import de.danoeh.antennapod.fragment.InboxFragment;
import de.danoeh.antennapod.model.feed.Feed;
import de.danoeh.antennapod.core.glide.ApGlideSettings;
import de.danoeh.antennapod.core.preferences.UserPreferences;
@@ -114,6 +115,8 @@ public class NavListAdapter extends RecyclerView.Adapter<NavListAdapter.Holder>
switch (tag) {
case QueueFragment.TAG:
return R.drawable.ic_playlist;
+ case InboxFragment.TAG:
+ return R.drawable.ic_inbox;
case EpisodesFragment.TAG:
return R.drawable.ic_feed;
case DownloadsFragment.TAG:
@@ -242,7 +245,7 @@ public class NavListAdapter extends RecyclerView.Adapter<NavListAdapter.Holder>
holder.count.setText(NumberFormat.getInstance().format(queueSize));
holder.count.setVisibility(View.VISIBLE);
}
- } else if (tag.equals(EpisodesFragment.TAG)) {
+ } else if (tag.equals(InboxFragment.TAG)) {
int unreadItems = itemAccess.getNumberOfNewItems();
if (unreadItems > 0) {
holder.count.setText(NumberFormat.getInstance().format(unreadItems));
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/SwipeActionsDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/SwipeActionsDialog.java
index d2f1c243d..31034d5d0 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/SwipeActionsDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/SwipeActionsDialog.java
@@ -24,6 +24,7 @@ import de.danoeh.antennapod.databinding.SwipeactionsPickerItemBinding;
import de.danoeh.antennapod.databinding.SwipeactionsRowBinding;
import de.danoeh.antennapod.fragment.EpisodesFragment;
import de.danoeh.antennapod.fragment.FeedItemlistFragment;
+import de.danoeh.antennapod.fragment.InboxFragment;
import de.danoeh.antennapod.fragment.QueueFragment;
import de.danoeh.antennapod.fragment.swipeactions.SwipeAction;
import de.danoeh.antennapod.fragment.swipeactions.SwipeActions;
@@ -56,9 +57,9 @@ public class SwipeActionsDialog {
String forFragment = "";
switch (tag) {
- /*case InboxFragment.TAG:
+ case InboxFragment.TAG:
forFragment = context.getString(R.string.inbox_label);
- break;*/
+ break;
case EpisodesFragment.TAG:
forFragment = context.getString(R.string.episodes_label);
break;
@@ -168,7 +169,7 @@ public class SwipeActionsDialog {
view.container.setAlpha(0.3f);
view.secondaryActionButton.secondaryActionButton.setVisibility(View.GONE);
view.dragHandle.setVisibility(View.GONE);
- view.statusUnread.setText("███");
+ view.statusInbox.setVisibility(View.GONE);
view.txtvTitle.setText("███████");
view.txtvPosition.setText("█████");
}
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 cbae077cb..853e7d6f7 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
@@ -67,7 +67,6 @@ public class AllEpisodesFragment extends EpisodesListFragment {
super.onPrepareOptionsMenu(menu);
menu.findItem(R.id.filter_items).setVisible(true);
menu.findItem(R.id.mark_all_read_item).setVisible(true);
- menu.findItem(R.id.remove_all_new_flags_item).setVisible(false);
}
@Override
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java
index bb987666e..951d42d73 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesFragment.java
@@ -26,10 +26,9 @@ public class EpisodesFragment extends PagedToolbarFragment {
private static final String PREF_LAST_TAB_POSITION = "tab_position";
private static final String KEY_UP_ARROW = "up_arrow";
- private static final int POS_NEW_EPISODES = 0;
- private static final int POS_ALL_EPISODES = 1;
- private static final int POS_FAV_EPISODES = 2;
- private static final int TOTAL_COUNT = 3;
+ private static final int POS_ALL_EPISODES = 0;
+ private static final int POS_FAV_EPISODES = 1;
+ private static final int TOTAL_COUNT = 2;
private TabLayout tabLayout;
private boolean displayUpArrow;
@@ -61,9 +60,6 @@ public class EpisodesFragment extends PagedToolbarFragment {
new TabLayoutMediator(tabLayout, viewPager, (tab, position) -> {
switch (position) {
- case POS_NEW_EPISODES:
- tab.setText(R.string.new_episodes_label);
- break;
case POS_ALL_EPISODES:
tab.setText(R.string.all_episodes_short_label);
break;
@@ -109,8 +105,6 @@ public class EpisodesFragment extends PagedToolbarFragment {
@Override
public Fragment createFragment(int position) {
switch (position) {
- case POS_NEW_EPISODES:
- return new NewEpisodesFragment();
case POS_ALL_EPISODES:
return new AllEpisodesFragment();
default:
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
index b78b777f9..b658e5f08 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
@@ -145,17 +145,17 @@ public abstract class EpisodesListFragment extends Fragment {
};
markAllReadConfirmationDialog.createNewDialog().show();
return true;
- } else if (itemId == R.id.remove_all_new_flags_item) {
+ } else if (itemId == R.id.remove_all_inbox_item) {
ConfirmationDialog removeAllNewFlagsConfirmationDialog = new ConfirmationDialog(getActivity(),
- R.string.remove_all_new_flags_label,
- R.string.remove_all_new_flags_confirmation_msg) {
+ R.string.remove_all_inbox_label,
+ R.string.remove_all_inbox_confirmation_msg) {
@Override
public void onConfirmButtonPressed(DialogInterface dialog) {
dialog.dismiss();
DBWriter.removeAllNewFlags();
((MainActivity) getActivity()).showSnackbarAbovePlayer(
- R.string.removed_all_new_flags_msg, Toast.LENGTH_SHORT);
+ R.string.removed_all_inbox_msg, Toast.LENGTH_SHORT);
}
};
removeAllNewFlagsConfirmationDialog.createNewDialog().show();
@@ -276,7 +276,8 @@ public abstract class EpisodesListFragment extends Fragment {
if (restoreScrollPosition) {
recyclerView.restoreScrollPosition(getPrefName());
}
- if (isUpdatingFeeds != updateRefreshMenuItemChecker.isRefreshing()) {
+ if (isUpdatingFeeds != updateRefreshMenuItemChecker.isRefreshing()
+ && getParentFragment() instanceof PagedToolbarFragment) {
((PagedToolbarFragment) getParentFragment()).invalidateOptionsMenuIfActive(this);
}
}
@@ -354,7 +355,7 @@ public abstract class EpisodesListFragment extends Fragment {
public void onEventMainThread(DownloadEvent event) {
Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]");
DownloaderUpdate update = event.update;
- if (event.hasChangedFeedUpdateStatus(isUpdatingFeeds)) {
+ if (event.hasChangedFeedUpdateStatus(isUpdatingFeeds) && getParentFragment() instanceof PagedToolbarFragment) {
((PagedToolbarFragment) getParentFragment()).invalidateOptionsMenuIfActive(this);
}
if (update.mediaIds.length > 0) {
@@ -369,7 +370,8 @@ public abstract class EpisodesListFragment extends Fragment {
private void updateUi() {
loadItems();
- if (isUpdatingFeeds != updateRefreshMenuItemChecker.isRefreshing()) {
+ if (isUpdatingFeeds != updateRefreshMenuItemChecker.isRefreshing()
+ && getParentFragment() instanceof PagedToolbarFragment) {
((PagedToolbarFragment) getParentFragment()).invalidateOptionsMenuIfActive(this);
}
}
@@ -402,7 +404,9 @@ public abstract class EpisodesListFragment extends Fragment {
hasMoreItems = true;
episodes = data;
onFragmentLoaded(episodes);
- ((PagedToolbarFragment) getParentFragment()).invalidateOptionsMenuIfActive(this);
+ if (getParentFragment() instanceof PagedToolbarFragment) {
+ ((PagedToolbarFragment) getParentFragment()).invalidateOptionsMenuIfActive(this);
+ }
}, error -> Log.e(TAG, Log.getStackTraceString(error)));
}
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 d7bfd404d..33aba3b54 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/FavoriteEpisodesFragment.java
@@ -48,7 +48,6 @@ public class FavoriteEpisodesFragment extends EpisodesListFragment {
super.onPrepareOptionsMenu(menu);
menu.findItem(R.id.filter_items).setVisible(false);
menu.findItem(R.id.mark_all_read_item).setVisible(false);
- menu.findItem(R.id.remove_all_new_flags_item).setVisible(false);
}
@NonNull
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/InboxFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/InboxFragment.java
new file mode 100644
index 000000000..abb04b2f3
--- /dev/null
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/InboxFragment.java
@@ -0,0 +1,119 @@
+package de.danoeh.antennapod.fragment;
+
+import android.os.Bundle;
+import android.view.MenuItem;
+import android.widget.FrameLayout;
+import androidx.annotation.NonNull;
+import androidx.appcompat.widget.Toolbar;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import java.util.List;
+
+import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.activity.MainActivity;
+import de.danoeh.antennapod.core.event.DownloadEvent;
+import de.danoeh.antennapod.core.menuhandler.MenuItemUtils;
+import de.danoeh.antennapod.core.service.download.DownloadService;
+import de.danoeh.antennapod.fragment.swipeactions.SwipeActions;
+import de.danoeh.antennapod.model.feed.FeedItem;
+import de.danoeh.antennapod.core.storage.DBReader;
+import de.danoeh.antennapod.model.feed.FeedItemFilter;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+/**
+ * Like 'EpisodesFragment' except that it only shows new episodes and
+ * supports swiping to mark as read.
+ */
+public class InboxFragment extends EpisodesListFragment implements Toolbar.OnMenuItemClickListener {
+ public static final String TAG = "NewEpisodesFragment";
+ private static final String PREF_NAME = "PrefNewEpisodesFragment";
+ private static final String KEY_UP_ARROW = "up_arrow";
+
+ private Toolbar toolbar;
+ private boolean displayUpArrow;
+ private volatile boolean isUpdatingFeeds;
+
+ @Override
+ protected String getPrefName() {
+ return PREF_NAME;
+ }
+
+ @Override
+ protected boolean shouldUpdatedItemRemainInList(FeedItem item) {
+ return item.isNew();
+ }
+
+ @NonNull
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View inboxContainer = View.inflate(getContext(), R.layout.inbox_fragment, null);
+ View root = super.onCreateView(inflater, container, savedInstanceState);
+ ((FrameLayout) inboxContainer.findViewById(R.id.inboxContent)).addView(root);
+ emptyView.setTitle(R.string.no_inbox_head_label);
+ emptyView.setMessage(R.string.no_inbox_label);
+
+ toolbar = inboxContainer.findViewById(R.id.toolbar);
+ toolbar.setOnMenuItemClickListener(this);
+ toolbar.inflateMenu(R.menu.inbox);
+ displayUpArrow = getParentFragmentManager().getBackStackEntryCount() != 0;
+ if (savedInstanceState != null) {
+ displayUpArrow = savedInstanceState.getBoolean(KEY_UP_ARROW);
+ }
+ ((MainActivity) getActivity()).setupToolbarToggle(toolbar, displayUpArrow);
+
+ SwipeActions swipeActions = new SwipeActions(this, TAG).attachTo(recyclerView);
+ swipeActions.setFilter(new FeedItemFilter(FeedItemFilter.NEW));
+
+ return inboxContainer;
+ }
+
+ private final MenuItemUtils.UpdateRefreshMenuItemChecker updateRefreshMenuItemChecker =
+ () -> DownloadService.isRunning && DownloadService.isDownloadingFeeds();
+
+ private void updateToolbar() {
+ isUpdatingFeeds = MenuItemUtils.updateRefreshMenuItem(toolbar.getMenu(),
+ R.id.refresh_item, updateRefreshMenuItemChecker);
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ if (isUpdatingFeeds != updateRefreshMenuItemChecker.isRefreshing()) {
+ updateToolbar();
+ }
+ }
+
+ @Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
+ public void onEventMainThread(DownloadEvent event) {
+ super.onEventMainThread(event);
+ if (event.hasChangedFeedUpdateStatus(isUpdatingFeeds)) {
+ updateToolbar();
+ }
+ }
+
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ return super.onOptionsItemSelected(item);
+ }
+
+ @Override
+ public void onSaveInstanceState(@NonNull Bundle outState) {
+ outState.putBoolean(KEY_UP_ARROW, displayUpArrow);
+ super.onSaveInstanceState(outState);
+ }
+
+ @NonNull
+ @Override
+ protected List<FeedItem> loadData() {
+ return DBReader.getNewItemsList(0, page * EPISODES_PER_PAGE);
+ }
+
+ @NonNull
+ @Override
+ protected List<FeedItem> loadMoreData() {
+ return DBReader.getNewItemsList((page - 1) * EPISODES_PER_PAGE, EPISODES_PER_PAGE);
+ }
+}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java
index bd4f3dd21..5f9276c04 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java
@@ -66,6 +66,7 @@ public class NavDrawerFragment extends Fragment implements SharedPreferences.OnS
public static final String[] NAV_DRAWER_TAGS = {
QueueFragment.TAG,
+ InboxFragment.TAG,
EpisodesFragment.TAG,
SubscriptionFragment.TAG,
DownloadsFragment.TAG,
@@ -152,10 +153,10 @@ public class NavDrawerFragment extends Fragment implements SharedPreferences.OnS
private boolean onFeedContextMenuClicked(Feed feed, MenuItem item) {
final int itemId = item.getItemId();
- if (itemId == R.id.remove_all_new_flags_item) {
+ if (itemId == R.id.remove_all_inbox_item) {
ConfirmationDialog removeAllNewFlagsConfirmationDialog = new ConfirmationDialog(getContext(),
- R.string.remove_all_new_flags_label,
- R.string.remove_all_new_flags_confirmation_msg) {
+ R.string.remove_all_inbox_label,
+ R.string.remove_all_inbox_confirmation_msg) {
@Override
public void onConfirmButtonPressed(DialogInterface dialog) {
dialog.dismiss();
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java
deleted file mode 100644
index 44b82ee19..000000000
--- a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package de.danoeh.antennapod.fragment;
-
-import android.os.Bundle;
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-import androidx.recyclerview.widget.ItemTouchHelper;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.View;
-import android.view.ViewGroup;
-
-import java.util.List;
-
-import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.model.feed.FeedItem;
-import de.danoeh.antennapod.core.storage.DBReader;
-import de.danoeh.antennapod.menuhandler.FeedItemMenuHandler;
-import de.danoeh.antennapod.view.viewholder.EpisodeItemViewHolder;
-
-/**
- * Like 'EpisodesFragment' except that it only shows new episodes and
- * supports swiping to mark as read.
- */
-public class NewEpisodesFragment extends EpisodesListFragment {
-
- public static final String TAG = "NewEpisodesFragment";
- private static final String PREF_NAME = "PrefNewEpisodesFragment";
-
- @Override
- protected String getPrefName() {
- return PREF_NAME;
- }
-
- @Override
- protected boolean shouldUpdatedItemRemainInList(FeedItem item) {
- return item.isNew();
- }
-
- @Override
- public void onPrepareOptionsMenu(@NonNull Menu menu) {
- super.onPrepareOptionsMenu(menu);
- menu.findItem(R.id.filter_items).setVisible(false);
- menu.findItem(R.id.mark_all_read_item).setVisible(false);
- menu.findItem(R.id.remove_all_new_flags_item).setVisible(true);
- }
-
- @NonNull
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View root = super.onCreateView(inflater, container, savedInstanceState);
- emptyView.setTitle(R.string.no_new_episodes_head_label);
- emptyView.setMessage(R.string.no_new_episodes_label);
-
- ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0,
- ItemTouchHelper.RIGHT) {
- @Override
- public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
- RecyclerView.ViewHolder target) {
- return false;
- }
-
- @Override
- public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) {
- EpisodeItemViewHolder holder = (EpisodeItemViewHolder) viewHolder;
- FeedItemMenuHandler.removeNewFlagWithUndo(NewEpisodesFragment.this, holder.getFeedItem());
- }
- };
-
- ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
- itemTouchHelper.attachToRecyclerView(recyclerView);
-
- return root;
- }
-
- @NonNull
- @Override
- protected List<FeedItem> loadData() {
- return DBReader.getNewItemsList(0, page * EPISODES_PER_PAGE);
- }
-
- @NonNull
- @Override
- protected List<FeedItem> loadMoreData() {
- return DBReader.getNewItemsList((page - 1) * EPISODES_PER_PAGE, EPISODES_PER_PAGE);
- }
-}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
index ec3240496..94c0b0a41 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
@@ -355,10 +355,10 @@ public class SubscriptionFragment extends Fragment
}
Feed feed = ((NavDrawerData.FeedDrawerItem) drawerItem).feed;
- if (itemId == R.id.remove_all_new_flags_item) {
+ if (itemId == R.id.remove_all_inbox_item) {
displayConfirmationDialog(
- R.string.remove_all_new_flags_label,
- R.string.remove_all_new_flags_confirmation_msg,
+ R.string.remove_all_inbox_label,
+ R.string.remove_all_inbox_confirmation_msg,
() -> DBWriter.removeFeedNewFlag(feed.getId()));
return true;
} else if (itemId == R.id.edit_tags) {
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/SwipePreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/SwipePreferencesFragment.java
index 19099a380..1786fe0bf 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/SwipePreferencesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/SwipePreferencesFragment.java
@@ -6,11 +6,13 @@ import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.dialog.SwipeActionsDialog;
import de.danoeh.antennapod.fragment.FeedItemlistFragment;
+import de.danoeh.antennapod.fragment.InboxFragment;
import de.danoeh.antennapod.fragment.QueueFragment;
public class SwipePreferencesFragment extends PreferenceFragmentCompat {
private static final String PREF_SWIPE_FEED = "prefSwipeFeed";
private static final String PREF_SWIPE_QUEUE = "prefSwipeQueue";
+ private static final String PREF_SWIPE_INBOX = "prefSwipeInbox";
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
@@ -24,6 +26,10 @@ public class SwipePreferencesFragment extends PreferenceFragmentCompat {
new SwipeActionsDialog(requireContext(), QueueFragment.TAG).show(() -> { });
return true;
});
+ findPreference(PREF_SWIPE_INBOX).setOnPreferenceClickListener(preference -> {
+ new SwipeActionsDialog(requireContext(), InboxFragment.TAG).show(() -> { });
+ return true;
+ });
}
@Override
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/swipeactions/RemoveFromInboxSwipeAction.java b/app/src/main/java/de/danoeh/antennapod/fragment/swipeactions/RemoveFromInboxSwipeAction.java
index 4344e4d85..df1ef42c1 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/swipeactions/RemoveFromInboxSwipeAction.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/swipeactions/RemoveFromInboxSwipeAction.java
@@ -28,7 +28,7 @@ public class RemoveFromInboxSwipeAction implements SwipeAction {
@Override
public String getTitle(Context context) {
- return context.getString(R.string.remove_new_flag_label);
+ return context.getString(R.string.remove_inbox_label);
}
@Override
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/swipeactions/SwipeActions.java b/app/src/main/java/de/danoeh/antennapod/fragment/swipeactions/SwipeActions.java
index adf133856..5262592aa 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/swipeactions/SwipeActions.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/swipeactions/SwipeActions.java
@@ -22,6 +22,7 @@ import java.util.List;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.dialog.SwipeActionsDialog;
import de.danoeh.antennapod.fragment.EpisodesFragment;
+import de.danoeh.antennapod.fragment.InboxFragment;
import de.danoeh.antennapod.fragment.QueueFragment;
import de.danoeh.antennapod.model.feed.FeedItem;
import de.danoeh.antennapod.model.feed.FeedItemFilter;
@@ -93,9 +94,9 @@ public class SwipeActions extends ItemTouchHelper.SimpleCallback implements Life
public static Actions getPrefsWithDefaults(Context context, String tag) {
String defaultActions;
switch (tag) {
- /*case InboxFragment.TAG:
- defaultActions = new int[] {ADD_TO_QUEUE, MARK_UNPLAYED};
- break;*/
+ case InboxFragment.TAG:
+ defaultActions = SwipeAction.ADD_TO_QUEUE + "," + SwipeAction.REMOVE_FROM_INBOX;
+ break;
case QueueFragment.TAG:
defaultActions = SwipeAction.REMOVE_FROM_QUEUE + "," + SwipeAction.REMOVE_FROM_QUEUE;
break;
diff --git a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
index d9558d20f..5bbda2980 100644
--- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
+++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
@@ -61,7 +61,7 @@ public class FeedItemMenuHandler {
setItemVisibility(menu, R.id.visit_website_item, !selectedItem.getFeed().isLocalFeed()
&& ShareUtils.hasLinkToShare(selectedItem));
setItemVisibility(menu, R.id.share_item, !selectedItem.getFeed().isLocalFeed());
- setItemVisibility(menu, R.id.remove_new_flag_item, selectedItem.isNew());
+ setItemVisibility(menu, R.id.remove_inbox_item, selectedItem.isNew());
setItemVisibility(menu, R.id.mark_read_item, !selectedItem.isPlayed());
setItemVisibility(menu, R.id.mark_unread_item, selectedItem.isPlayed());
setItemVisibility(menu, R.id.reset_position, hasMedia && selectedItem.getMedia().getPosition() != 0);
@@ -146,7 +146,7 @@ public class FeedItemMenuHandler {
IntentUtils.sendLocalBroadcast(context, PlaybackService.ACTION_SKIP_CURRENT_EPISODE);
} else if (menuItemId == R.id.remove_item) {
DBWriter.deleteFeedMediaOfItem(context, selectedItem.getMedia().getId());
- } else if (menuItemId == R.id.remove_new_flag_item) {
+ } else if (menuItemId == R.id.remove_inbox_item) {
removeNewFlagWithUndo(fragment, selectedItem);
} else if (menuItemId == R.id.mark_read_item) {
selectedItem.setPlayed(true);
@@ -233,7 +233,7 @@ public class FeedItemMenuHandler {
case FeedItem.UNPLAYED:
if (item.getPlayState() == FeedItem.NEW) {
//was new
- playStateStringRes = R.string.removed_new_flag_label;
+ playStateStringRes = R.string.removed_inbox_label;
} else {
//was played
playStateStringRes = R.string.marked_as_unplayed_label;
diff --git a/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java b/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java
index c1ab3a7a6..3839241d7 100644
--- a/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java
+++ b/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java
@@ -52,7 +52,7 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder {
private final TextView position;
private final TextView duration;
private final TextView size;
- public final TextView isNew;
+ public final ImageView isInbox;
public final ImageView isInQueue;
private final ImageView isVideo;
public final ImageView isFavorite;
@@ -85,7 +85,7 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder {
progressBar = itemView.findViewById(R.id.progressBar);
isInQueue = itemView.findViewById(R.id.ivInPlaylist);
isVideo = itemView.findViewById(R.id.ivIsVideo);
- isNew = itemView.findViewById(R.id.statusUnread);
+ isInbox = itemView.findViewById(R.id.statusInbox);
isFavorite = itemView.findViewById(R.id.isFavorite);
size = itemView.findViewById(R.id.size);
separatorIcons = itemView.findViewById(R.id.separatorIcons);
@@ -105,7 +105,7 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder {
leftPadding.setContentDescription(item.getTitle());
pubDate.setText(DateFormatter.formatAbbrev(activity, item.getPubDate()));
pubDate.setContentDescription(DateFormatter.formatForAccessibility(item.getPubDate()));
- isNew.setVisibility(item.isNew() ? View.VISIBLE : View.GONE);
+ isInbox.setVisibility(item.isNew() ? View.VISIBLE : View.GONE);
isFavorite.setVisibility(item.isTagged(FeedItem.TAG_FAVORITE) ? View.VISIBLE : View.GONE);
isInQueue.setVisibility(item.isTagged(FeedItem.TAG_QUEUE) ? View.VISIBLE : View.GONE);
container.setAlpha(item.isPlayed() ? 0.5f : 1.0f);
@@ -233,11 +233,11 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder {
* Hides the separator dot between icons and text if there are no icons.
*/
public void hideSeparatorIfNecessary() {
- boolean hasIcons = isNew.getVisibility() == View.VISIBLE
+ boolean hasIcons = isInbox.getVisibility() == View.VISIBLE
|| isInQueue.getVisibility() == View.VISIBLE
|| isVideo.getVisibility() == View.VISIBLE
|| isFavorite.getVisibility() == View.VISIBLE
- || isNew.getVisibility() == View.VISIBLE;
+ || isInbox.getVisibility() == View.VISIBLE;
separatorIcons.setVisibility(hasIcons ? View.VISIBLE : View.GONE);
}
}