From fb7054eb18d45ea641bf1e7177ad4ae41a7d52d2 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 9 Sep 2011 15:58:11 +0400 Subject: experimental animation stuff --- res/anim/test.xml | 8 +++++ res/layout/article_fragment.xml | 7 +++++ res/layout/headlines_fragment.xml | 6 +--- res/layout/headlines_row.xml | 9 ++++-- res/layout/main.xml | 12 ++++++-- src/org/fox/ttrss/ArticleFragment.java | 49 ++++++++++++++++++++++++++++++ src/org/fox/ttrss/HeadlinesFragment.java | 52 ++++++++++++++++++++++++++++++-- 7 files changed, 129 insertions(+), 14 deletions(-) create mode 100644 res/anim/test.xml create mode 100644 res/layout/article_fragment.xml create mode 100644 src/org/fox/ttrss/ArticleFragment.java diff --git a/res/anim/test.xml b/res/anim/test.xml new file mode 100644 index 00000000..6e2f38f5 --- /dev/null +++ b/res/anim/test.xml @@ -0,0 +1,8 @@ + + + + diff --git a/res/layout/article_fragment.xml b/res/layout/article_fragment.xml new file mode 100644 index 00000000..cc65deff --- /dev/null +++ b/res/layout/article_fragment.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/res/layout/headlines_fragment.xml b/res/layout/headlines_fragment.xml index abe5076c..588e1404 100644 --- a/res/layout/headlines_fragment.xml +++ b/res/layout/headlines_fragment.xml @@ -4,12 +4,8 @@ android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/headlines_fragment"> - - diff --git a/res/layout/headlines_row.xml b/res/layout/headlines_row.xml index e586a7f3..91b81a30 100644 --- a/res/layout/headlines_row.xml +++ b/res/layout/headlines_row.xml @@ -1,10 +1,13 @@ - - + android:padding="3dip" android:id="@+id/headlines_row" android:orientation="horizontal"> + + + diff --git a/res/layout/main.xml b/res/layout/main.xml index 63cdbda7..8a8b4b16 100644 --- a/res/layout/main.xml +++ b/res/layout/main.xml @@ -18,14 +18,20 @@ android:paddingLeft="2dip" android:paddingRight="2dip" android:layout_width="wrap_content" android:layout_height="match_parent"> - - - + + + + + + \ No newline at end of file diff --git a/src/org/fox/ttrss/ArticleFragment.java b/src/org/fox/ttrss/ArticleFragment.java new file mode 100644 index 00000000..ebd573ad --- /dev/null +++ b/src/org/fox/ttrss/ArticleFragment.java @@ -0,0 +1,49 @@ +package org.fox.ttrss; + +import java.util.Timer; + +import org.fox.ttrss.FeedsFragment.FeedsListAdapter; + +import android.app.Activity; +import android.app.Fragment; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AbsListView; +import android.widget.ListView; + +public class ArticleFragment extends Fragment { + SharedPreferences m_prefs; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + + if (savedInstanceState != null) { + // + } + + View view = inflater.inflate(R.layout.article_fragment, container, false); + + return view; + } + + @Override + public void onDestroy() { + super.onDestroy(); + } + + @Override + public void onSaveInstanceState (Bundle out) { + super.onSaveInstanceState(out); + } + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + m_prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext()); + } + +} diff --git a/src/org/fox/ttrss/HeadlinesFragment.java b/src/org/fox/ttrss/HeadlinesFragment.java index cc1b0aac..367cda4d 100644 --- a/src/org/fox/ttrss/HeadlinesFragment.java +++ b/src/org/fox/ttrss/HeadlinesFragment.java @@ -2,19 +2,25 @@ package org.fox.ttrss; import android.app.Activity; import android.app.Fragment; +import android.app.FragmentTransaction; import android.content.SharedPreferences; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; 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.view.animation.Animation; +import android.view.animation.AnimationUtils; import android.widget.AbsListView; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import android.widget.SimpleCursorAdapter; -public class HeadlinesFragment extends Fragment { +public class HeadlinesFragment extends Fragment implements OnItemClickListener { private final String TAG = this.getClass().getSimpleName(); protected int m_feedId; protected SharedPreferences m_prefs; @@ -39,9 +45,9 @@ public class HeadlinesFragment extends Fragment { if (list != null) { list.setAdapter(m_adapter); - //list.setOnItemClickListener(this); + list.setOnItemClickListener(this); list.setEmptyView(view.findViewById(R.id.no_headlines)); - //list.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE); + list.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE); } return view; @@ -66,4 +72,44 @@ public class HeadlinesFragment extends Fragment { m_feedId = feedId; } + @Override + public void onItemClick(AdapterView av, View view, int position, long id) { + ListView list = (ListView)getActivity().findViewById(R.id.headlines); + + if (list != null) { + Cursor cursor = (Cursor) list.getItemAtPosition(position); + + if (cursor != null) { + int articleId = (int) cursor.getLong(0); + + Log.d(TAG, "clicked on article " + articleId); + + viewArticle(articleId); + + } + } + + } + + private void viewArticle(int articleId) { + FragmentTransaction ft = getFragmentManager().beginTransaction(); + ArticleFragment frag = new ArticleFragment(); + + //frag.initialize(articleId); + + Animation a = AnimationUtils.loadAnimation(getActivity(), R.anim.test); + a.reset(); + View v = getView().findViewById(R.id.headlines_container); + v.clearAnimation(); + v.startAnimation(a); + + + ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out); + ft.replace(R.id.article_container, frag); + ft.commit(); + + //m_adapter.notifyDataSetChanged(); + + } + } -- cgit v1.2.3-54-g00ecf