diff options
| author | Andrew Dolgov <fox@madoka.volgo-balt.ru> | 2011-11-29 14:09:27 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@madoka.volgo-balt.ru> | 2011-11-29 14:09:27 +0300 |
| commit | c8f79f546557bb624740c59ac44b8ed814c944db (patch) | |
| tree | 29900f624e89b27c0773fda0fc8033a6d96d2474 /src/org/fox/ttrss/HeadlinesFragment.java | |
| parent | 980b5696e34b7025cd62d829fa9032bc864c2ab6 (diff) | |
implement batch actions on selected articles
Diffstat (limited to 'src/org/fox/ttrss/HeadlinesFragment.java')
| -rw-r--r-- | src/org/fox/ttrss/HeadlinesFragment.java | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/src/org/fox/ttrss/HeadlinesFragment.java b/src/org/fox/ttrss/HeadlinesFragment.java index 63fa52f9..3e183c95 100644 --- a/src/org/fox/ttrss/HeadlinesFragment.java +++ b/src/org/fox/ttrss/HeadlinesFragment.java @@ -25,8 +25,6 @@ import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
-import android.widget.CompoundButton;
-import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
@@ -37,6 +35,8 @@ import com.google.gson.JsonElement; import com.google.gson.reflect.TypeToken;
public class HeadlinesFragment extends Fragment implements OnItemClickListener {
+ public static enum ArticlesSelection { ALL, NONE, UNREAD };
+
private final String TAG = this.getClass().getSimpleName();
private Feed m_feed;
@@ -345,20 +345,20 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener { if (cb != null) {
cb.setChecked(m_selectedArticles.contains(article));
-
- cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
+ cb.setOnClickListener(new OnClickListener() {
+
@Override
- public void onCheckedChanged(CompoundButton buttonView,
- boolean isChecked) {
-
- if (isChecked) {
- m_selectedArticles.add(article);
+ public void onClick(View view) {
+ CheckBox cb = (CheckBox)view;
+
+ if (cb.isChecked()) {
+ if (!m_selectedArticles.contains(article))
+ m_selectedArticles.add(article);
} else {
m_selectedArticles.remove(article);
}
Log.d(TAG, "num selected: " + m_selectedArticles.size());
-
}
});
}
@@ -389,4 +389,18 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener { }
}
+ public void setSelection(ArticlesSelection select) {
+ m_selectedArticles.clear();
+
+ if (select != ArticlesSelection.NONE) {
+ for (Article a : m_articles) {
+ if (select == ArticlesSelection.ALL || select == ArticlesSelection.UNREAD && a.unread) {
+ m_selectedArticles.add(a);
+ }
+ }
+ }
+
+ m_adapter.notifyDataSetChanged();
+ }
+
}
|