summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
diff options
context:
space:
mode:
authororionlee <orionlee@yahoo.com>2019-03-18 17:08:13 -0700
committerorionlee <orionlee@yahoo.com>2019-04-02 11:47:57 -0700
commit737f7571abff032ab914d7b59e68f7851f52d664 (patch)
tree6ec704ebc74793dcdef3108e014d032725e2cc54 /app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
parent56de034c7c6cb419c72b1d4d218b33f74ab5e0d0 (diff)
downloadAntennaPod-737f7571abff032ab914d7b59e68f7851f52d664.zip
UI Prototype for Batch Edit Episodes rework (from #1145)
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java43
1 files changed, 41 insertions, 2 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
index 07a64cde8..c456dc41a 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
@@ -7,17 +7,22 @@ import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.Fragment;
import android.support.v4.util.ArrayMap;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.AbsListView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
+import com.leinardi.android.speeddial.SpeedDialView;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -51,6 +56,7 @@ public class EpisodesApplyActionFragment extends Fragment {
private Button btnMarkAsUnplayed;
private Button btnDownload;
private Button btnDelete;
+ private SpeedDialView mSpeedDialView;
private final Map<Long,FeedItem> idMap = new ArrayMap<>();
private final List<FeedItem> episodes = new ArrayList<>();
@@ -118,15 +124,28 @@ public class EpisodesApplyActionFragment extends Fragment {
}).show();
return true;
});
+ mListView.setOnScrollListener(new AbsListView.OnScrollListener() {
+ @Override
+ public void onScrollStateChanged(AbsListView view, int scrollState) {
+ if (AbsListView.OnScrollListener.SCROLL_STATE_IDLE == scrollState) {
+ showSpeedDialIfAnyChecked();
+ } else {
+ hideSpeedDial();
+ }
+ }
+
+ @Override
+ public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {}
+ });
for(FeedItem episode : episodes) {
titles.add(episode.getTitle());
}
mAdapter = new ArrayAdapter<>(getActivity(),
- android.R.layout.simple_list_item_multiple_choice, titles);
+ R.layout.simple_list_item_multiple_choice_on_start, titles);
mListView.setAdapter(mAdapter);
- checkAll();
+ /// checkAll(); // TODO: no longer check all by default
int lastVisibleDiv = 0;
btnAddToQueue = view.findViewById(R.id.btnAddToQueue);
@@ -171,8 +190,21 @@ public class EpisodesApplyActionFragment extends Fragment {
}
}
+ // replacement for the buttons
+ mSpeedDialView = view.findViewById(R.id.fabSD);
+ mSpeedDialView.inflate(R.menu.episodes_apply_action_speeddial);
+ showSpeedDialIfAnyChecked();
+
return view;
}
+
+ private void showSpeedDialIfAnyChecked() {
+ mSpeedDialView.setVisibility(checkedIds.size() > 0 ? View.VISIBLE : View.GONE);
+ }
+
+ private void hideSpeedDial() {
+ mSpeedDialView.setVisibility(View.GONE);
+ }
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
@@ -410,6 +442,13 @@ public class EpisodesApplyActionFragment extends Fragment {
mListView.setItemChecked(i, checked);
}
ActivityCompat.invalidateOptionsMenu(EpisodesApplyActionFragment.this.getActivity());
+ showSpeedDialIfAnyChecked();
+
+ ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
+ if (actionBar != null) {
+ String title = checkedIds.size() > 0 ? checkedIds.size() + " selected" : ""; // TODO: restore to the original title
+ actionBar.setTitle(title);
+ }
}
private void queueChecked() {