summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2011-09-09 15:58:11 +0400
committerAndrew Dolgov <[email protected]>2011-09-09 15:58:11 +0400
commitfb7054eb18d45ea641bf1e7177ad4ae41a7d52d2 (patch)
tree5880d9c714e89da84f5ed5d50caee79f48168086
parentc7a583a116057ae06c0e0b9ba2e8536744a3479d (diff)
experimental animation stuff
-rw-r--r--res/anim/test.xml8
-rw-r--r--res/layout/article_fragment.xml7
-rw-r--r--res/layout/headlines_fragment.xml6
-rw-r--r--res/layout/headlines_row.xml9
-rw-r--r--res/layout/main.xml12
-rw-r--r--src/org/fox/ttrss/ArticleFragment.java49
-rw-r--r--src/org/fox/ttrss/HeadlinesFragment.java52
7 files changed, 129 insertions, 14 deletions
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 @@
+<?xml version="1.0" encoding="utf-8"?>
+<scale xmlns:android="http://schemas.android.com/apk/res/android"
+ android:interpolator="@android:anim/accelerate_decelerate_interpolator"
+ android:fromXScale="1"
+ android:toXScale="0.5"
+ android:duration="1000">
+
+</scale>
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 @@
+
+ <LinearLayout android:id="@+id/article_fragment" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
+ <ImageView android:paddingRight="2dip" android:layout_height="match_parent" android:background="?feedlistDivider" android:layout_width="wrap_content" android:paddingLeft="2dip"></ImageView>
+ <LinearLayout android:gravity="center" android:layout_height="match_parent" android:id="@+id/linearLayout1" android:layout_width="match_parent">
+ <TextView android:text="--- Article ---" android:id="@+id/textView1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge"></TextView>
+ </LinearLayout>
+ </LinearLayout>
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">
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
- <ListView android:layout_weight="1" android:background="?headlinesBackground"
+ <ListView android:layout_weight="1"
android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/headlines"></ListView>
</LinearLayout>
- <TextView android:id="@+id/no_headlines"
- android:visibility="invisible"
- android:layout_gravity="center"
- android:textAppearance="?android:attr/textAppearanceLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/no_headlines"></TextView>
</FrameLayout>
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 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
+ android:layout_height="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
- android:padding="3dip" android:id="@+id/headlines_row" android:orientation="horizontal" android:layout_height="match_parent">
- <CheckBox android:paddingLeft="6dip" android:paddingRight="6dip" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/selected"></CheckBox>
- <LinearLayout android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:orientation="vertical" android:layout_width="match_parent">
+ android:padding="3dip" android:id="@+id/headlines_row" android:orientation="horizontal">
+ <CheckBox android:focusable="false"
+ android:paddingLeft="6dip" android:paddingRight="6dip" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/selected"></CheckBox>
+
+ <LinearLayout android:layout_weight="1" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:orientation="vertical" android:layout_width="match_parent">
<TextView android:id="@+id/title" android:textSize="16sp" android:text="{Title...}" android:layout_width="match_parent" android:layout_height="match_parent"></TextView>
<TextView android:id="@+id/excerpt" android:textSize="13sp" android:textColor="#909090" android:text="{Content excerpt...}" android:layout_width="match_parent" android:layout_height="match_parent"></TextView>
</LinearLayout>
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"></ImageView>
- </LinearLayout>
-
- <LinearLayout android:layout_weight="0.5" android:layout_height="match_parent" android:id="@+id/headlines_container" android:layout_width="match_parent">
</LinearLayout>
+ <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/LinearLayout1" android:layout_weight="0.5">
+ <LinearLayout android:layout_width="match_parent" android:layout_weight="0" android:id="@+id/headlines_container" android:layout_height="match_parent"></LinearLayout>
+ <LinearLayout android:layout_width="match_parent" android:layout_weight="1" android:background="#f0f0ff" android:id="@+id/article_container" android:layout_height="match_parent"></LinearLayout>
+ </LinearLayout>
</LinearLayout>
<TextView android:layout_gravity="center" android:visibility="invisible"
android:textAppearance="?android:attr/textAppearanceLarge" android:text="@string/no_unread_feeds" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/no_unread_feeds"></TextView>
+ <TextView android:id="@+id/no_headlines"
+ android:visibility="invisible"
+ android:layout_gravity="center"
+ android:textAppearance="?android:attr/textAppearanceLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/no_headlines"></TextView>
+
</FrameLayout> \ 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();
+
+ }
+
}