Hide info views in multi-select (#7095)
Still not perfect because the toolbar is visible behind the action menu. However, it fixes the jumping when entering multi-select mode.
This commit is contained in:
parent
f3bca9d9e4
commit
d6b2a49caa
@ -33,14 +33,9 @@ public abstract class SelectableAdapter<T extends RecyclerView.ViewHolder> exten
|
|||||||
endSelectMode();
|
endSelectMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (onSelectModeListener != null) {
|
|
||||||
onSelectModeListener.onStartSelectMode();
|
|
||||||
}
|
|
||||||
|
|
||||||
shouldSelectLazyLoadedItems = false;
|
shouldSelectLazyLoadedItems = false;
|
||||||
selectedIds.clear();
|
selectedIds.clear();
|
||||||
selectedIds.add(getItemId(pos));
|
selectedIds.add(getItemId(pos));
|
||||||
notifyDataSetChanged();
|
|
||||||
|
|
||||||
actionMode = activity.startActionMode(new ActionMode.Callback() {
|
actionMode = activity.startActionMode(new ActionMode.Callback() {
|
||||||
@Override
|
@Override
|
||||||
@ -72,14 +67,19 @@ public abstract class SelectableAdapter<T extends RecyclerView.ViewHolder> exten
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroyActionMode(ActionMode mode) {
|
public void onDestroyActionMode(ActionMode mode) {
|
||||||
callOnEndSelectMode();
|
|
||||||
actionMode = null;
|
actionMode = null;
|
||||||
shouldSelectLazyLoadedItems = false;
|
shouldSelectLazyLoadedItems = false;
|
||||||
selectedIds.clear();
|
selectedIds.clear();
|
||||||
|
callOnEndSelectMode();
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
updateTitle();
|
updateTitle();
|
||||||
|
|
||||||
|
if (onSelectModeListener != null) {
|
||||||
|
onSelectModeListener.onStartSelectMode();
|
||||||
|
}
|
||||||
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -87,8 +87,9 @@ public abstract class SelectableAdapter<T extends RecyclerView.ViewHolder> exten
|
|||||||
*/
|
*/
|
||||||
public void endSelectMode() {
|
public void endSelectMode() {
|
||||||
if (inActionMode()) {
|
if (inActionMode()) {
|
||||||
callOnEndSelectMode();
|
|
||||||
actionMode.finish();
|
actionMode.finish();
|
||||||
|
actionMode = null;
|
||||||
|
callOnEndSelectMode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -130,7 +131,7 @@ public abstract class SelectableAdapter<T extends RecyclerView.ViewHolder> exten
|
|||||||
setSelected(pos, !isSelected(pos));
|
setSelected(pos, !isSelected(pos));
|
||||||
notifyItemChanged(pos);
|
notifyItemChanged(pos);
|
||||||
|
|
||||||
if (selectedIds.size() == 0) {
|
if (selectedIds.isEmpty()) {
|
||||||
endSelectMode();
|
endSelectMode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -113,7 +113,9 @@ public class AllEpisodesFragment extends EpisodesListFragment {
|
|||||||
|
|
||||||
private void updateFilterUi() {
|
private void updateFilterUi() {
|
||||||
swipeActions.setFilter(getFilter());
|
swipeActions.setFilter(getFilter());
|
||||||
if (getFilter().getValues().length > 0) {
|
if (listAdapter.inActionMode()) {
|
||||||
|
txtvInformation.setVisibility(View.INVISIBLE);
|
||||||
|
} else if (getFilter().getValues().length > 0) {
|
||||||
txtvInformation.setVisibility(View.VISIBLE);
|
txtvInformation.setVisibility(View.VISIBLE);
|
||||||
emptyView.setMessage(R.string.no_all_episodes_filtered_label);
|
emptyView.setMessage(R.string.no_all_episodes_filtered_label);
|
||||||
} else {
|
} else {
|
||||||
@ -124,6 +126,18 @@ public class AllEpisodesFragment extends EpisodesListFragment {
|
|||||||
getFilter().showIsFavorite ? R.drawable.ic_star : R.drawable.ic_star_border);
|
getFilter().showIsFavorite ? R.drawable.ic_star : R.drawable.ic_star_border);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStartSelectMode() {
|
||||||
|
super.onStartSelectMode();
|
||||||
|
updateFilterUi();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEndSelectMode() {
|
||||||
|
super.onEndSelectMode();
|
||||||
|
updateFilterUi();
|
||||||
|
}
|
||||||
|
|
||||||
public static class AllEpisodesSortDialog extends ItemSortDialog {
|
public static class AllEpisodesSortDialog extends ItemSortDialog {
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
|
@ -492,6 +492,14 @@ public class QueueFragment extends Fragment implements MaterialToolbar.OnMenuIte
|
|||||||
info += Converter.getDurationStringLocalized(getResources(), timeLeft, false);
|
info += Converter.getDurationStringLocalized(getResources(), timeLeft, false);
|
||||||
}
|
}
|
||||||
infoBar.setText(info);
|
infoBar.setText(info);
|
||||||
|
|
||||||
|
if (recyclerAdapter.inActionMode()) {
|
||||||
|
infoBar.setVisibility(View.INVISIBLE);
|
||||||
|
} else if (UserPreferences.getSubscriptionsFilter().isEnabled()) {
|
||||||
|
infoBar.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
infoBar.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadItems(final boolean restoreScrollPosition) {
|
private void loadItems(final boolean restoreScrollPosition) {
|
||||||
@ -522,15 +530,15 @@ public class QueueFragment extends Fragment implements MaterialToolbar.OnMenuIte
|
|||||||
swipeActions.detach();
|
swipeActions.detach();
|
||||||
speedDialView.setVisibility(View.VISIBLE);
|
speedDialView.setVisibility(View.VISIBLE);
|
||||||
refreshToolbarState();
|
refreshToolbarState();
|
||||||
infoBar.setVisibility(View.GONE);
|
refreshInfoBar();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEndSelectMode() {
|
public void onEndSelectMode() {
|
||||||
speedDialView.close();
|
speedDialView.close();
|
||||||
speedDialView.setVisibility(View.GONE);
|
speedDialView.setVisibility(View.GONE);
|
||||||
infoBar.setVisibility(View.VISIBLE);
|
|
||||||
swipeActions.attachTo(recyclerView);
|
swipeActions.attachTo(recyclerView);
|
||||||
|
refreshInfoBar();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class QueueSortDialog extends ItemSortDialog {
|
public static class QueueSortDialog extends ItemSortDialog {
|
||||||
|
@ -301,7 +301,13 @@ public class SubscriptionFragment extends Fragment
|
|||||||
Log.e(TAG, Log.getStackTraceString(error));
|
Log.e(TAG, Log.getStackTraceString(error));
|
||||||
});
|
});
|
||||||
|
|
||||||
if (UserPreferences.getSubscriptionsFilter().isEnabled()) {
|
updateFilterVisibility();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateFilterVisibility() {
|
||||||
|
if (subscriptionAdapter.inActionMode()) {
|
||||||
|
feedsFilteredMsg.setVisibility(View.INVISIBLE);
|
||||||
|
} else if (UserPreferences.getSubscriptionsFilter().isEnabled()) {
|
||||||
feedsFilteredMsg.setVisibility(View.VISIBLE);
|
feedsFilteredMsg.setVisibility(View.VISIBLE);
|
||||||
} else {
|
} else {
|
||||||
feedsFilteredMsg.setVisibility(View.GONE);
|
feedsFilteredMsg.setVisibility(View.GONE);
|
||||||
@ -347,6 +353,7 @@ public class SubscriptionFragment extends Fragment
|
|||||||
speedDialView.setVisibility(View.GONE);
|
speedDialView.setVisibility(View.GONE);
|
||||||
subscriptionAddButton.setVisibility(View.VISIBLE);
|
subscriptionAddButton.setVisibility(View.VISIBLE);
|
||||||
subscriptionAdapter.setItems(listItems);
|
subscriptionAdapter.setItems(listItems);
|
||||||
|
updateFilterVisibility();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -360,5 +367,6 @@ public class SubscriptionFragment extends Fragment
|
|||||||
subscriptionAdapter.setItems(feedsOnly);
|
subscriptionAdapter.setItems(feedsOnly);
|
||||||
speedDialView.setVisibility(View.VISIBLE);
|
speedDialView.setVisibility(View.VISIBLE);
|
||||||
subscriptionAddButton.setVisibility(View.GONE);
|
subscriptionAddButton.setVisibility(View.GONE);
|
||||||
|
updateFilterVisibility();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user