From 1fe01350a51152f0f596f3e2c6eaadb36f940b57 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 24 Nov 2011 14:51:23 +0300 Subject: more interface stuff, allow marking headlines as checked --- src/org/fox/ttrss/Article.java | 1 + src/org/fox/ttrss/HeadlinesFragment.java | 43 ++++++++++++++++++++++++++++++-- src/org/fox/ttrss/MainActivity.java | 13 +++------- 3 files changed, 45 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/org/fox/ttrss/Article.java b/src/org/fox/ttrss/Article.java index 0e156af8..c4989d7a 100644 --- a/src/org/fox/ttrss/Article.java +++ b/src/org/fox/ttrss/Article.java @@ -14,4 +14,5 @@ public class Article { int feed_id; List tags; String content; + boolean _selected; } diff --git a/src/org/fox/ttrss/HeadlinesFragment.java b/src/org/fox/ttrss/HeadlinesFragment.java index 00e1448e..953bed54 100644 --- a/src/org/fox/ttrss/HeadlinesFragment.java +++ b/src/org/fox/ttrss/HeadlinesFragment.java @@ -16,12 +16,16 @@ import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; 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.ListView; import android.widget.TextView; @@ -210,7 +214,20 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener { public static final int VIEW_SELECTED = 2; public static final int VIEW_COUNT = VIEW_SELECTED+1; + + private ArrayList
m_selectedArticles = new ArrayList
(); + + /* private class ArticleCheckListener implements OnCheckedChangeListener { + + @Override + public void onCheckedChanged(CompoundButton buttonView, + boolean isChecked) { + + Log.d(TAG, "onCheckedChanged: " + buttonView + "/" + getContext()); + } + } */ + public ArticleListAdapter(Context context, int textViewResourceId, ArrayList
items) { super(context, textViewResourceId, items); this.items = items; @@ -238,8 +255,8 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener { View v = convertView; - Article article = items.get(position); - + final Article article = items.get(position); + if (v == null) { int layoutId = R.layout.headlines_row; @@ -281,6 +298,28 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener { dv.setText(df.format(d)); } + CheckBox cb = (CheckBox) v.findViewById(R.id.selected); + + if (cb != null) { + cb.setChecked(m_selectedArticles.contains(article)); + + cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, + boolean isChecked) { + + if (isChecked) { + m_selectedArticles.add(article); + } else { + m_selectedArticles.remove(article); + } + + Log.d(TAG, "num selected: " + m_selectedArticles.size()); + + } + }); + } + return v; } } diff --git a/src/org/fox/ttrss/MainActivity.java b/src/org/fox/ttrss/MainActivity.java index 35309338..44625ad4 100644 --- a/src/org/fox/ttrss/MainActivity.java +++ b/src/org/fox/ttrss/MainActivity.java @@ -103,12 +103,9 @@ public class MainActivity extends Activity implements FeedsFragment.OnFeedSelect ft.replace(R.id.feeds_fragment, new FeedsFragment()); ft.replace(R.id.headlines_fragment, hf); ft.replace(R.id.article_fragment, af); - //ft.hide(hf); - //ft.hide(af); ft.commit(); findViewById(R.id.article_fragment).setVisibility(View.GONE); - //findViewById(R.id.headlines_fragment).setVisibility(View.GONE); LoginRequest ar = new LoginRequest(); ar.setApi(m_prefs.getString("ttrss_url", null)); @@ -232,9 +229,6 @@ public class MainActivity extends Activity implements FeedsFragment.OnFeedSelect setLoadingStatus(R.string.loading_message, true); - //FragmentManager fm = getFragmentManager(); - //FeedsFragment ff = (FeedsFragment) fm.findFragmentById(R.id.feeds_fragment); - ViewFlipper vf = (ViewFlipper) findViewById(R.id.main_flipper); if (vf != null) { @@ -245,6 +239,7 @@ public class MainActivity extends Activity implements FeedsFragment.OnFeedSelect FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(R.id.feeds_fragment, frag); + ft.show(frag); ft.commit(); if (m_refreshTask != null) { @@ -293,7 +288,6 @@ public class MainActivity extends Activity implements FeedsFragment.OnFeedSelect m_activeFeed = feed; HeadlinesFragment hf = new HeadlinesFragment(); - //hf.initialize(m_sessionId, feed.id, m_prefs); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out); @@ -301,8 +295,6 @@ public class MainActivity extends Activity implements FeedsFragment.OnFeedSelect ft.replace(R.id.headlines_fragment, hf); ft.addToBackStack(null); ft.commit(); - - findViewById(R.id.headlines_fragment).setVisibility(View.VISIBLE); } public Article getSelectedArticle() { @@ -319,13 +311,14 @@ public class MainActivity extends Activity implements FeedsFragment.OnFeedSelect FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out); + //ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right); ft.show(getFragmentManager().findFragmentById(R.id.article_fragment)); - //ft.hide(getFragmentManager().findFragmentById(R.id.feeds_fragment)); ft.replace(R.id.article_fragment, frag); ft.addToBackStack(null); ft.commit(); findViewById(R.id.article_fragment).setVisibility(View.VISIBLE); + } public Feed getActiveFeed() { -- cgit v1.2.3-54-g00ecf