From c478b49b1e95b71335e56e021df8a69306401c08 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sun, 18 Dec 2022 18:43:54 +0100 Subject: Revert back to showing progress bars while loading Dummies are slower on some devices, even when disabling their animations. --- .../antennapod/adapter/EpisodeItemListAdapter.java | 8 ------ .../adapter/SubscriptionsRecyclerAdapter.java | 32 +--------------------- .../fragment/CompletedDownloadsFragment.java | 14 ++++------ .../antennapod/fragment/EpisodesListFragment.java | 13 ++++----- .../antennapod/fragment/FeedItemlistFragment.java | 3 +- .../danoeh/antennapod/fragment/QueueFragment.java | 9 +++--- .../antennapod/fragment/SubscriptionFragment.java | 12 ++++---- 7 files changed, 25 insertions(+), 66 deletions(-) (limited to 'app/src/main/java') diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java index 8b591c1af..21aa1b3fa 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java @@ -39,7 +39,6 @@ public class EpisodeItemListAdapter extends SelectableAdapter items) { episodes = items; - wasEverUpdated = true; notifyDataSetChanged(); updateTitle(); } diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsRecyclerAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsRecyclerAdapter.java index fb98d6db3..7be417984 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsRecyclerAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsRecyclerAdapter.java @@ -52,8 +52,6 @@ public class SubscriptionsRecyclerAdapter extends SelectableAdapter listItems; private NavDrawerData.DrawerItem selectedItem = null; int longPressedPosition = 0; // used to init actionMode - private int dummyViews = 0; - private boolean wasEverUpdated = false; public SubscriptionsRecyclerAdapter(MainActivity mainActivity) { super(mainActivity); @@ -97,11 +95,6 @@ public class SubscriptionsRecyclerAdapter extends SelectableAdapter= listItems.size()) { - holder.selectView.setVisibility(View.GONE); - holder.bindDummy(); - return; - } NavDrawerData.DrawerItem drawerItem = listItems.get(position); boolean isFeed = drawerItem.type == NavDrawerData.DrawerItem.Type.FEED; holder.bind(drawerItem); @@ -164,7 +157,7 @@ public class SubscriptionsRecyclerAdapter extends SelectableAdapter listItems) { this.listItems = listItems; - wasEverUpdated = true; notifyDataSetChanged(); } @@ -293,17 +274,6 @@ public class SubscriptionsRecyclerAdapter extends SelectableAdapter items = new ArrayList<>(); @@ -69,6 +68,7 @@ public class CompletedDownloadsFragment extends Fragment private boolean displayUpArrow; private SpeedDialView speedDialView; private SwipeActions swipeActions; + private ProgressBar progressBar; @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @@ -93,14 +93,14 @@ public class CompletedDownloadsFragment extends Fragment recyclerView.setRecycledViewPool(((MainActivity) getActivity()).getRecycledViewPool()); adapter = new CompletedDownloadsListAdapter((MainActivity) getActivity()); adapter.setOnSelectModeListener(this); - int previousEpisodesCount = getContext().getSharedPreferences(TAG, Context.MODE_PRIVATE) - .getInt(PREF_PREVIOUS_EPISODE_COUNT, 5); - recyclerView.postDelayed(() -> adapter.showDummyViewsIfNeverUpdated(previousEpisodesCount), 250); recyclerView.setAdapter(adapter); recyclerView.addOnScrollListener(new LiftOnScrollListener(root.findViewById(R.id.appbar))); swipeActions = new SwipeActions(this, TAG).attachTo(recyclerView); swipeActions.setFilter(new FeedItemFilter(FeedItemFilter.DOWNLOADED)); + progressBar = root.findViewById(R.id.progLoading); + progressBar.setVisibility(View.VISIBLE); + speedDialView = root.findViewById(R.id.fabSD); speedDialView.setOverlayLayout(root.findViewById(R.id.fabSDOverlay)); speedDialView.inflate(R.menu.episodes_apply_action_speeddial); @@ -164,9 +164,6 @@ public class CompletedDownloadsFragment extends Fragment if (disposable != null) { disposable.dispose(); } - getContext().getSharedPreferences(TAG, Context.MODE_PRIVATE).edit() - .putInt(PREF_PREVIOUS_EPISODE_COUNT, adapter.getItemCount()) - .apply(); } @Override @@ -303,6 +300,7 @@ public class CompletedDownloadsFragment extends Fragment result -> { items = result; adapter.setDummyViews(0); + progressBar.setVisibility(View.GONE); adapter.updateItems(result); }, error -> { adapter.setDummyViews(0); 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 afde124ba..1384b5d78 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java @@ -1,6 +1,5 @@ package de.danoeh.antennapod.fragment; -import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.os.Handler; @@ -12,6 +11,7 @@ import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.widget.ProgressBar; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.appcompat.widget.Toolbar; @@ -68,7 +68,6 @@ public abstract class EpisodesListFragment extends Fragment implements EpisodeItemListAdapter.OnSelectModeListener, Toolbar.OnMenuItemClickListener { public static final String TAG = "EpisodesListFragment"; private static final String KEY_UP_ARROW = "up_arrow"; - private static final String PREF_PREVIOUS_EPISODE_COUNT = "episodeCount"; protected static final int EPISODES_PER_PAGE = 150; protected int page = 1; protected boolean isLoadingMore = false; @@ -81,6 +80,7 @@ public abstract class EpisodesListFragment extends Fragment SpeedDialView speedDialView; MaterialToolbar toolbar; SwipeActions swipeActions; + private ProgressBar progressBar; @NonNull List episodes = new ArrayList<>(); @@ -115,9 +115,6 @@ public abstract class EpisodesListFragment extends Fragment if (disposable != null) { disposable.dispose(); } - getContext().getSharedPreferences(getPrefName(), Context.MODE_PRIVATE).edit() - .putInt(PREF_PREVIOUS_EPISODE_COUNT, episodes.size()) - .apply(); } @Override @@ -204,10 +201,9 @@ public abstract class EpisodesListFragment extends Fragment } }; listAdapter.setOnSelectModeListener(this); - int previousEpisodesCount = getContext().getSharedPreferences(getPrefName(), Context.MODE_PRIVATE) - .getInt(PREF_PREVIOUS_EPISODE_COUNT, 5); - recyclerView.postDelayed(() -> listAdapter.showDummyViewsIfNeverUpdated(previousEpisodesCount), 250); recyclerView.setAdapter(listAdapter); + progressBar = root.findViewById(R.id.progressBar); + progressBar.setVisibility(View.VISIBLE); emptyView = new EmptyViewHandler(getContext()); emptyView.attachToRecyclerView(recyclerView); @@ -432,6 +428,7 @@ public abstract class EpisodesListFragment extends Fragment data -> { episodes = data.first; hasMoreItems = !(page == 1 && episodes.size() < EPISODES_PER_PAGE); + progressBar.setVisibility(View.GONE); listAdapter.setDummyViews(0); listAdapter.updateItems(episodes); listAdapter.setTotalNumberOfItems(data.second); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java index 775c683c7..0b264b5a3 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java @@ -144,9 +144,9 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem viewBinding.recyclerView.setRecycledViewPool(((MainActivity) getActivity()).getRecycledViewPool()); adapter = new FeedItemListAdapter((MainActivity) getActivity()); adapter.setOnSelectModeListener(this); - viewBinding.recyclerView.postDelayed(() -> adapter.showDummyViewsIfNeverUpdated(10), 250); viewBinding.recyclerView.setAdapter(adapter); swipeActions = new SwipeActions(this, TAG).attachTo(viewBinding.recyclerView); + viewBinding.progressBar.setVisibility(View.VISIBLE); ToolbarIconTintManager iconTintManager = new ToolbarIconTintManager( getContext(), viewBinding.toolbar, viewBinding.collapsingToolbar) { @@ -530,6 +530,7 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem feed = result; swipeActions.setFilter(feed.getItemFilter()); refreshHeaderView(); + viewBinding.progressBar.setVisibility(View.GONE); adapter.setDummyViews(0); adapter.updateItems(feed.getItems()); updateToolbar(); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java index 94727e4b1..12fa20d05 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -14,6 +14,7 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; +import android.widget.ProgressBar; import android.widget.TextView; import androidx.annotation.NonNull; import com.google.android.material.dialog.MaterialAlertDialogBuilder; @@ -86,13 +87,13 @@ public class QueueFragment extends Fragment implements MaterialToolbar.OnMenuIte private static final String PREFS = "QueueFragment"; private static final String PREF_SHOW_LOCK_WARNING = "show_lock_warning"; - private static final String PREF_PREVIOUS_EPISODE_COUNT = "episodeCount"; private Disposable disposable; private SwipeActions swipeActions; private SharedPreferences prefs; private SpeedDialView speedDialView; + private ProgressBar progressBar; @Override public void onCreate(Bundle savedInstanceState) { @@ -124,7 +125,6 @@ public class QueueFragment extends Fragment implements MaterialToolbar.OnMenuIte if (disposable != null) { disposable.dispose(); } - prefs.edit().putInt(PREF_PREVIOUS_EPISODE_COUNT, queue == null ? 0 : queue.size()).apply(); } @Subscribe(threadMode = ThreadMode.MAIN) @@ -445,6 +445,8 @@ public class QueueFragment extends Fragment implements MaterialToolbar.OnMenuIte ((MainActivity) getActivity()).setupToolbarToggle(toolbar, displayUpArrow); toolbar.inflateMenu(R.menu.queue); refreshToolbarState(); + progressBar = root.findViewById(R.id.progressBar); + progressBar.setVisibility(View.VISIBLE); infoBar = root.findViewById(R.id.info_bar); recyclerView = root.findViewById(R.id.recyclerView); @@ -468,8 +470,6 @@ public class QueueFragment extends Fragment implements MaterialToolbar.OnMenuIte } }; recyclerAdapter.setOnSelectModeListener(this); - int previousEpisodes = Math.max(1, prefs.getInt(PREF_PREVIOUS_EPISODE_COUNT, 5)); - recyclerView.postDelayed(() -> recyclerAdapter.showDummyViewsIfNeverUpdated(previousEpisodes), 250); recyclerView.setAdapter(recyclerAdapter); SwipeRefreshLayout swipeRefreshLayout = root.findViewById(R.id.swipeRefresh); @@ -559,6 +559,7 @@ public class QueueFragment extends Fragment implements MaterialToolbar.OnMenuIte .observeOn(AndroidSchedulers.mainThread()) .subscribe(items -> { queue = items; + progressBar.setVisibility(View.GONE); recyclerAdapter.setDummyViews(0); recyclerAdapter.updateItems(queue); if (restoreScrollPosition) { 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 843ef6e49..2800537e2 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java @@ -13,6 +13,7 @@ import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.widget.ProgressBar; import android.widget.TextView; import androidx.annotation.NonNull; @@ -75,7 +76,6 @@ public class SubscriptionFragment extends Fragment public static final String TAG = "SubscriptionFragment"; private static final String PREFS = "SubscriptionFragment"; private static final String PREF_NUM_COLUMNS = "columns"; - private static final String PREF_PREVIOUS_EPISODE_COUNT = "episodeCount"; private static final String KEY_UP_ARROW = "up_arrow"; private static final String ARGUMENT_FOLDER = "folder"; @@ -91,6 +91,7 @@ public class SubscriptionFragment extends Fragment private EmptyViewHandler emptyView; private TextView feedsFilteredMsg; private MaterialToolbar toolbar; + private ProgressBar progressBar; private String displayedFolder = null; private boolean displayUpArrow; @@ -161,11 +162,12 @@ public class SubscriptionFragment extends Fragment } }; subscriptionAdapter.setOnSelectModeListener(this); - int previousEpisodes = Math.max(1, prefs.getInt(PREF_PREVIOUS_EPISODE_COUNT, 5)); - subscriptionRecycler.postDelayed(() -> subscriptionAdapter.showDummyViewsIfNeverUpdated(previousEpisodes), 250); subscriptionRecycler.setAdapter(subscriptionAdapter); setupEmptyView(); + progressBar = root.findViewById(R.id.progressBar); + progressBar.setVisibility(View.VISIBLE); + FloatingActionButton subscriptionAddButton = root.findViewById(R.id.subscriptions_add); subscriptionAddButton.setOnClickListener(view -> { if (getActivity() instanceof MainActivity) { @@ -284,8 +286,6 @@ public class SubscriptionFragment extends Fragment if (disposable != null) { disposable.dispose(); } - prefs.edit().putInt(PREF_PREVIOUS_EPISODE_COUNT, subscriptionAdapter.getItemCount()).apply(); - if (subscriptionAdapter != null) { subscriptionAdapter.endSelectMode(); } @@ -317,7 +317,7 @@ public class SubscriptionFragment extends Fragment subscriptionAdapter.endSelectMode(); } listItems = result; - subscriptionAdapter.setDummyViews(0); + progressBar.setVisibility(View.GONE); subscriptionAdapter.setItems(result); emptyView.updateVisibility(); }, error -> { -- cgit v1.2.3