diff options
42 files changed, 919 insertions, 542 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index e705bf6d..b92b8da0 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.fox.ttrss" - android:versionCode="194" - android:versionName="1.8.13" > + android:versionCode="200" + android:versionName="1.13" > <uses-sdk android:minSdkVersion="8" diff --git a/res/drawable-hdpi/arrowhead_dark.png b/res/drawable-hdpi/arrowhead_dark.png Binary files differdeleted file mode 100644 index ad263895..00000000 --- a/res/drawable-hdpi/arrowhead_dark.png +++ /dev/null diff --git a/res/drawable-hdpi/arrowhead_light.png b/res/drawable-hdpi/arrowhead_light.png Binary files differdeleted file mode 100644 index 2c113ae1..00000000 --- a/res/drawable-hdpi/arrowhead_light.png +++ /dev/null diff --git a/res/drawable-hdpi/arrowhead_sepia.png b/res/drawable-hdpi/arrowhead_sepia.png Binary files differdeleted file mode 100644 index 78e276a0..00000000 --- a/res/drawable-hdpi/arrowhead_sepia.png +++ /dev/null diff --git a/res/drawable-hdpi/ic_action_overflow.png b/res/drawable-hdpi/ic_action_overflow.png Binary files differnew file mode 100644 index 00000000..0612f431 --- /dev/null +++ b/res/drawable-hdpi/ic_action_overflow.png diff --git a/res/drawable-hdpi/ic_mailbox_collapsed_holo_dark.png b/res/drawable-hdpi/ic_mailbox_collapsed_holo_dark.png Binary files differdeleted file mode 100644 index eb1a7bd8..00000000 --- a/res/drawable-hdpi/ic_mailbox_collapsed_holo_dark.png +++ /dev/null diff --git a/res/drawable-hdpi/ic_mailbox_collapsed_holo_light.png b/res/drawable-hdpi/ic_mailbox_collapsed_holo_light.png Binary files differdeleted file mode 100644 index 2c395b80..00000000 --- a/res/drawable-hdpi/ic_mailbox_collapsed_holo_light.png +++ /dev/null diff --git a/res/drawable-xxhdpi/icon.png b/res/drawable-xxhdpi/icon.png Binary files differnew file mode 100644 index 00000000..30baa7a5 --- /dev/null +++ b/res/drawable-xxhdpi/icon.png diff --git a/res/drawable/headline_row.xml b/res/drawable/headline_row.xml new file mode 100644 index 00000000..c928013e --- /dev/null +++ b/res/drawable/headline_row.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <item>
+ <shape android:shape="rectangle" >
+ <solid android:color="#e0e0e0" />
+ <corners android:radius="2dp"/>
+ </shape>
+ </item>
+
+ <item
+ android:bottom="2dp">
+ <shape android:shape="rectangle" >
+ <solid android:color="#f5f5f5" />
+ <corners android:radius="2dp"/>
+ </shape>
+ </item>
+
+</layer-list>
\ No newline at end of file diff --git a/res/drawable/headline_row_selected.xml b/res/drawable/headline_row_selected.xml new file mode 100644 index 00000000..1f30f42f --- /dev/null +++ b/res/drawable/headline_row_selected.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <item>
+ <shape android:shape="rectangle" >
+ <solid android:color="#e0e0e0" />
+ <corners android:radius="2dp"/>
+ </shape>
+ </item>
+
+ <item
+ android:bottom="2dp">
+ <shape android:shape="rectangle" >
+ <solid android:color="#88b0f0" />
+ <corners android:radius="2dp"/>
+ </shape>
+ </item>
+
+</layer-list>
\ No newline at end of file diff --git a/res/drawable/headline_row_selected_dark.xml b/res/drawable/headline_row_selected_dark.xml deleted file mode 100644 index 75c79a11..00000000 --- a/res/drawable/headline_row_selected_dark.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <item android:drawable="@color/ics_cyan"/>
-
- <item android:drawable="@drawable/shadow"/>
-
- <item><bitmap
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/arrowhead_dark"
- android:gravity="center_vertical|right" /></item>
-
-</layer-list>
\ No newline at end of file diff --git a/res/drawable/headline_row_selected_gray.xml b/res/drawable/headline_row_selected_gray.xml deleted file mode 100644 index 17c6dce2..00000000 --- a/res/drawable/headline_row_selected_gray.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <item android:drawable="@color/headline_row_selected_gray"/>
- <item android:drawable="@drawable/shadow"/>
-
-</layer-list>
\ No newline at end of file diff --git a/res/drawable/headline_row_selected_light.xml b/res/drawable/headline_row_selected_light.xml deleted file mode 100644 index 55e4bc54..00000000 --- a/res/drawable/headline_row_selected_light.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <item android:drawable="@color/headline_row_selected_light"/>
- <item android:drawable="@drawable/shadow"/>
- <item><bitmap
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/arrowhead_light"
- android:gravity="center_vertical|right" /></item>
-
-</layer-list>
\ No newline at end of file diff --git a/res/drawable/headline_row_selected_sepia.xml b/res/drawable/headline_row_selected_sepia.xml index 04d82723..0ed5da7a 100644 --- a/res/drawable/headline_row_selected_sepia.xml +++ b/res/drawable/headline_row_selected_sepia.xml @@ -1,11 +1,19 @@ <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
- <item android:drawable="@color/headline_row_selected_sepia"/>
- <item android:drawable="@drawable/shadow"/>
- <item><bitmap
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/arrowhead_sepia"
- android:gravity="center_vertical|right" /></item>
-
+ <item>
+ <shape android:shape="rectangle" >
+ <solid android:color="#d0d0d0" />
+ <corners android:radius="2dp"/>
+ </shape>
+ </item>
+
+ <item
+ android:bottom="2dp">
+ <shape android:shape="rectangle" >
+ <solid android:color="#E5B0A0" />
+ <corners android:radius="2dp"/>
+ </shape>
+ </item>
+
</layer-list>
\ No newline at end of file diff --git a/res/drawable/headline_row_sepia.xml b/res/drawable/headline_row_sepia.xml new file mode 100644 index 00000000..5fcb7aa1 --- /dev/null +++ b/res/drawable/headline_row_sepia.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <item>
+ <shape android:shape="rectangle" >
+ <solid android:color="#d0d0d0" />
+ <corners android:radius="2dp"/>
+ </shape>
+ </item>
+
+ <item
+ android:bottom="2dp">
+ <shape android:shape="rectangle" >
+ <solid android:color="#f5f5f5" />
+ <corners android:radius="2dp"/>
+ </shape>
+ </item>
+
+</layer-list>
\ No newline at end of file diff --git a/res/drawable/headline_row_unread.xml b/res/drawable/headline_row_unread.xml new file mode 100644 index 00000000..14840998 --- /dev/null +++ b/res/drawable/headline_row_unread.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <item>
+ <shape android:shape="rectangle" >
+ <solid android:color="#e0e0e0" />
+ <corners android:radius="2dp"/>
+ </shape>
+ </item>
+
+ <item
+ android:bottom="2dp">
+ <shape android:shape="rectangle" >
+ <solid android:color="#ffffff" />
+ <corners android:radius="2dp"/>
+ </shape>
+ </item>
+
+</layer-list>
\ No newline at end of file diff --git a/res/drawable/headline_row_unread_gray.xml b/res/drawable/headline_row_unread_gray.xml deleted file mode 100644 index cbaaed86..00000000 --- a/res/drawable/headline_row_unread_gray.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <item android:drawable="@color/headline_row_unread_gray"/>
- <item android:drawable="@drawable/shadow"/>
-
-</layer-list>
\ No newline at end of file diff --git a/res/drawable/headline_row_unread_light.xml b/res/drawable/headline_row_unread_light.xml deleted file mode 100644 index d64bd7be..00000000 --- a/res/drawable/headline_row_unread_light.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <item android:drawable="@color/headline_row_unread_light"/>
- <item android:drawable="@drawable/shadow"/>
-
-</layer-list>
\ No newline at end of file diff --git a/res/drawable/headline_row_unread_sepia.xml b/res/drawable/headline_row_unread_sepia.xml index a19a9559..f062fb7e 100644 --- a/res/drawable/headline_row_unread_sepia.xml +++ b/res/drawable/headline_row_unread_sepia.xml @@ -1,7 +1,19 @@ <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
- <item android:drawable="@color/headline_row_unread_sepia"/>
- <item android:drawable="@drawable/shadow"/>
-
+ <item>
+ <shape android:shape="rectangle" >
+ <solid android:color="#d0d0d0" />
+ <corners android:radius="2dp"/>
+ </shape>
+ </item>
+
+ <item
+ android:bottom="2dp">
+ <shape android:shape="rectangle" >
+ <solid android:color="#ffffff" />
+ <corners android:radius="2dp"/>
+ </shape>
+ </item>
+
</layer-list>
\ No newline at end of file diff --git a/res/drawable/s_icon.svg b/res/drawable/s_icon.svg index 5e9bb07c..82cd4812 100644 --- a/res/drawable/s_icon.svg +++ b/res/drawable/s_icon.svg @@ -14,10 +14,10 @@ height="72" id="svg2985" version="1.1" - inkscape:version="0.48.1 " - inkscape:export-filename="C:\Users\fox\workspace\org.fox.ttrss\res\drawable-xhdpi\icon.png" - inkscape:export-xdpi="120" - inkscape:export-ydpi="120" + inkscape:version="0.48.4 r9939" + inkscape:export-filename="C:\Users\Andrew\workspace\Tiny-Tiny-RSS-for-Honeycomb\res\drawable-xxhdpi\icon.png" + inkscape:export-xdpi="180.02" + inkscape:export-ydpi="180.02" sodipodi:docname="s_icon.svg"> <defs id="defs2987"> @@ -712,7 +712,7 @@ inkscape:grid-bbox="true" inkscape:snap-page="false" inkscape:window-width="1920" - inkscape:window-height="1138" + inkscape:window-height="1137" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" /> diff --git a/res/layout/feeds_row.xml b/res/layout/feeds_row.xml index e52de2c2..35cef732 100644 --- a/res/layout/feeds_row.xml +++ b/res/layout/feeds_row.xml @@ -58,9 +58,6 @@ android:layout_height="wrap_content" android:layout_weight="0" android:background="@null" - android:paddingLeft="6dp" - android:paddingTop="6dp" - android:visibility="gone" - android:src="@drawable/ic_mailbox_collapsed_holo_light" /> + android:src="@drawable/ic_action_overflow" /> </LinearLayout>
\ No newline at end of file diff --git a/res/layout/feeds_row_selected.xml b/res/layout/feeds_row_selected.xml index 7876d150..0d145b23 100644 --- a/res/layout/feeds_row_selected.xml +++ b/res/layout/feeds_row_selected.xml @@ -58,9 +58,6 @@ android:layout_height="wrap_content" android:layout_weight="0" android:background="@null" - android:paddingLeft="6dp" - android:paddingTop="6dp" - android:visibility="gone" - android:src="@drawable/ic_mailbox_collapsed_holo_light" /> + android:src="@drawable/ic_action_overflow" /> </LinearLayout>
\ No newline at end of file diff --git a/res/layout/headlines_fragment.xml b/res/layout/headlines_fragment.xml index 58fa6694..5df36557 100644 --- a/res/layout/headlines_fragment.xml +++ b/res/layout/headlines_fragment.xml @@ -2,13 +2,15 @@ <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/headlines_fragment"
android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:paddingLeft="5dp" >
+ android:layout_height="fill_parent">
<ListView
android:id="@+id/headlines"
android:layout_width="match_parent"
android:layoutAnimation="@anim/layout_headline"
+ android:dividerHeight="0dp"
+ android:divider="@null"
+ android:paddingTop="3dp"
android:layout_height="match_parent" >
</ListView>
diff --git a/res/layout/headlines_row.xml b/res/layout/headlines_row.xml index c8a9a0e7..92b0d3cc 100644 --- a/res/layout/headlines_row.xml +++ b/res/layout/headlines_row.xml @@ -1,126 +1,137 @@ <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/headlines_row"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:background="?headlineNormalBackground"
- android:orientation="vertical"
- android:paddingLeft="0dp"
+ android:paddingBottom="3dp"
+ android:paddingLeft="6dp"
android:paddingRight="6dp"
- android:paddingTop="6dp" >
+ android:paddingTop="3dp"
+ tools:ignore="HardcodedText" >
<LinearLayout
- android:id="@+id/linearLayout6"
+ android:id="@+id/inner_row"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_vertical"
- android:orientation="horizontal"
- android:paddingLeft="6dp" >
+ android:layout_height="match_parent"
+ android:background="?headlineNormalBackground"
+ android:orientation="vertical"
+ android:paddingBottom="2dp"
+ android:paddingLeft="6dp"
+ android:paddingRight="6dp"
+ android:paddingTop="6dp" >
- <TextView
- android:id="@+id/title"
+ <LinearLayout
+ android:id="@+id/linearLayout6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="1"
- android:ellipsize="end"
android:gravity="center_vertical"
- android:singleLine="false"
- android:text="Sample entry title"
- android:textColor="?headlineTextColor"
- android:textSize="16sp" />
- </LinearLayout>
+ android:orientation="horizontal" >
- <LinearLayout
- android:id="@+id/linearLayout1"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:gravity="center_vertical"
- android:orientation="horizontal" >
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:singleLine="false"
+ android:text="Sample entry title"
+ android:textColor="?headlineTextColor"
+ android:textSize="16sp" />
+ </LinearLayout>
- <CheckBox
- android:id="@+id/selected"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:focusable="false" />
-
- <TextView
- android:id="@+id/feed_title"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:id="@+id/linearLayout1"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:ellipsize="end"
android:gravity="center_vertical"
- android:singleLine="true"
- android:text="Example Feed"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp" />
-
- <TextView
- android:id="@+id/date"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:gravity="right|center_vertical"
- android:text="Jan 01, 12:00"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp" />
- </LinearLayout>
+ android:orientation="horizontal"
+ android:paddingTop="3dp" >
- <TextView
- android:id="@+id/excerpt"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingLeft="6dp"
- android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
- android:textColor="?headlineExcerptTextColor"
- android:textSize="13sp" />
+ <TextView
+ android:id="@+id/feed_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:singleLine="true"
+ android:text="Example Feed"
+ android:textColor="?headlineSecondaryTextColor"
+ android:textSize="12sp" />
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_vertical"
- android:paddingLeft="6dp" >
+ <TextView
+ android:id="@+id/date"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:gravity="right|center_vertical"
+ android:text="Jan 01, 12:00"
+ android:textColor="?headlineSecondaryTextColor"
+ android:textSize="12sp" />
+ </LinearLayout>
<TextView
- android:id="@+id/author"
- android:layout_width="wrap_content"
+ android:id="@+id/excerpt"
+ android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_weight="1"
- android:ellipsize="end"
- android:gravity="center_vertical"
- android:singleLine="true"
- android:text="by Author"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp" />
+ android:paddingTop="3dp"
+ android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
+ android:textColor="?headlineExcerptTextColor"
+ android:textSize="13sp" />
- <ImageView
- android:id="@+id/marked"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="0"
- android:clickable="true"
- android:paddingRight="6dp"
- android:src="@android:drawable/star_off" />
+ android:gravity="center_vertical" >
- <ImageView
- android:id="@+id/published"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:clickable="true"
- android:src="@drawable/ic_rss_bw" />
+ <CheckBox
+ android:id="@+id/selected"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="-6dp"
+ android:layout_weight="0"
+ android:focusable="false" />
- <ImageButton
- android:id="@+id/article_menu_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:background="@null"
- android:paddingLeft="10dp"
- android:paddingTop="6dp"
- android:src="@drawable/ic_mailbox_collapsed_holo_light" />
+ <TextView
+ android:id="@+id/author"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:singleLine="true"
+ android:text="by Author"
+ android:textColor="?headlineSecondaryTextColor"
+ android:textSize="12sp" />
+
+ <ImageView
+ android:id="@+id/marked"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:paddingRight="6dp"
+ android:src="@android:drawable/star_off" />
+
+ <ImageView
+ android:id="@+id/published"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:paddingRight="6dp"
+ android:src="@drawable/ic_rss_bw" />
+
+ <ImageView
+ android:id="@+id/article_menu_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:src="@drawable/ic_action_overflow" />
+ </LinearLayout>
</LinearLayout>
-</LinearLayout>
\ No newline at end of file +</FrameLayout>
\ No newline at end of file diff --git a/res/layout/headlines_row_selected.xml b/res/layout/headlines_row_selected.xml index 34be5023..c88c0a83 100644 --- a/res/layout/headlines_row_selected.xml +++ b/res/layout/headlines_row_selected.xml @@ -1,127 +1,132 @@ <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/headlines_row"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:background="?headlineSelectedBackground"
- android:orientation="vertical"
- android:paddingLeft="0dp"
+ android:paddingBottom="3dp"
+ android:paddingLeft="6dp"
android:paddingRight="6dp"
- android:paddingTop="6dp" >
+ android:paddingTop="3dp" >
<LinearLayout
- android:id="@+id/linearLayout6"
+ android:id="@+id/inner_row"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_vertical"
- android:orientation="horizontal"
- android:paddingLeft="6dp" >
+ android:layout_height="match_parent"
+ android:background="?headlineSelectedBackground"
+ android:orientation="vertical"
+ android:paddingTop="6dp" android:paddingLeft="6dp" android:paddingRight="6dp" android:paddingBottom="2dp" >
- <TextView
- android:id="@+id/title"
+ <LinearLayout
+ android:id="@+id/linearLayout6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="1"
- android:ellipsize="end"
android:gravity="center_vertical"
- android:singleLine="false"
- android:text="Sample entry title"
- android:textColor="?attr/headlineSelectedTextColor"
- android:textSize="16sp"
- android:textStyle="bold" />
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/linearLayout1"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:gravity="center_vertical"
- android:orientation="horizontal" >
+ android:orientation="horizontal" >
- <CheckBox
- android:id="@+id/selected"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:focusable="false" />
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:singleLine="false"
+ android:text="Sample entry title"
+ android:textColor="?attr/headlineSelectedTextColor"
+ android:textSize="16sp" />
+ </LinearLayout>
- <TextView
- android:id="@+id/feed_title"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:id="@+id/linearLayout1"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:ellipsize="end"
android:gravity="center_vertical"
- android:singleLine="true"
- android:text="Example Feed"
- android:textColor="?headlineSelectedSecondaryTextColor"
- android:textSize="12sp" />
-
- <TextView
- android:id="@+id/date"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:gravity="right|center_vertical"
- android:text="Jan 01, 12:00"
- android:textColor="?headlineSelectedSecondaryTextColor"
- android:textSize="12sp" />
- </LinearLayout>
+ android:orientation="horizontal"
+ android:paddingTop="3dp" >
- <TextView
- android:id="@+id/excerpt"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingLeft="6dp"
- android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
- android:textColor="?headlineSelectedExcerptTextColor"
- android:textSize="13sp" />
+ <TextView
+ android:id="@+id/feed_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:singleLine="true"
+ android:text="Example Feed"
+ android:textColor="?headlineSelectedSecondaryTextColor"
+ android:textSize="12sp" />
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_vertical"
- android:paddingLeft="6dp" >
+ <TextView
+ android:id="@+id/date"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:gravity="right|center_vertical"
+ android:text="Jan 01, 12:00"
+ android:textColor="?headlineSelectedSecondaryTextColor"
+ android:textSize="12sp" />
+ </LinearLayout>
<TextView
- android:id="@+id/author"
- android:layout_width="wrap_content"
+ android:id="@+id/excerpt"
+ android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_weight="1"
- android:ellipsize="end"
- android:gravity="center_vertical"
- android:singleLine="true"
- android:text="by Author"
- android:textColor="?headlineSelectedSecondaryTextColor"
- android:textSize="12sp" />
+ android:paddingTop="3dp"
+ android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
+ android:textColor="?headlineSelectedExcerptTextColor"
+ android:textSize="13sp" />
- <ImageView
- android:id="@+id/marked"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="0"
- android:clickable="true"
- android:paddingRight="6dp"
- android:src="@android:drawable/star_off" />
+ android:gravity="center_vertical" >
- <ImageView
- android:id="@+id/published"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:clickable="true"
- android:src="@drawable/ic_rss_bw" />
+ <CheckBox
+ android:id="@+id/selected"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="-6dp"
+ android:layout_weight="0"
+ android:focusable="false" />
- <ImageButton
- android:id="@+id/article_menu_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:background="@null"
- android:paddingLeft="10dp"
- android:paddingTop="6dp"
- android:src="@drawable/ic_mailbox_collapsed_holo_light" />
+ <TextView
+ android:id="@+id/author"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:singleLine="true"
+ android:text="by Author"
+ android:textColor="?headlineSelectedSecondaryTextColor"
+ android:textSize="12sp" />
+
+ <ImageView
+ android:id="@+id/marked"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:paddingRight="6dp"
+ android:src="@android:drawable/star_off" />
+
+ <ImageView
+ android:id="@+id/published"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:paddingRight="6dp"
+ android:src="@drawable/ic_rss_bw" />
+
+ <ImageView
+ android:id="@+id/article_menu_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:src="@drawable/ic_action_overflow" />
+ </LinearLayout>
</LinearLayout>
-</LinearLayout>
\ No newline at end of file +</FrameLayout>
\ No newline at end of file diff --git a/res/layout/headlines_row_selected_unread.xml b/res/layout/headlines_row_selected_unread.xml index 506fcbba..764571d4 100644 --- a/res/layout/headlines_row_selected_unread.xml +++ b/res/layout/headlines_row_selected_unread.xml @@ -1,127 +1,133 @@ <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/headlines_row"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:background="?headlineSelectedBackground"
- android:orientation="vertical"
- android:paddingLeft="0dp"
+ android:paddingBottom="3dp"
+ android:paddingLeft="6dp"
android:paddingRight="6dp"
- android:paddingTop="6dp" >
+ android:paddingTop="3dp" >
<LinearLayout
- android:id="@+id/linearLayout6"
+ android:id="@+id/inner_row"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_vertical"
- android:orientation="horizontal"
- android:paddingLeft="6dp" >
+ android:layout_height="match_parent"
+ android:background="?headlineSelectedBackground"
+ android:orientation="vertical"
+ android:paddingTop="6dp" android:paddingLeft="6dp" android:paddingRight="6dp" android:paddingBottom="2dp" >
- <TextView
- android:id="@+id/title"
+ <LinearLayout
+ android:id="@+id/linearLayout6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="1"
- android:ellipsize="end"
android:gravity="center_vertical"
- android:singleLine="false"
- android:text="Sample entry title"
- android:textColor="?headlineSelectedTextColor"
- android:textSize="16sp"
- android:textStyle="bold" />
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/linearLayout1"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:gravity="center_vertical"
- android:orientation="horizontal" >
+ android:orientation="horizontal" >
- <CheckBox
- android:id="@+id/selected"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:focusable="false" />
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:singleLine="false"
+ android:text="Sample entry title"
+ android:textColor="?headlineSelectedTextColor"
+ android:textSize="16sp"
+ android:textStyle="bold" />
+ </LinearLayout>
- <TextView
- android:id="@+id/feed_title"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:id="@+id/linearLayout1"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:ellipsize="end"
android:gravity="center_vertical"
- android:singleLine="true"
- android:text="Example Feed"
- android:textColor="?headlineSelectedSecondaryTextColor"
- android:textSize="12sp" />
-
- <TextView
- android:id="@+id/date"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:gravity="right|center_vertical"
- android:text="Jan 01, 12:00"
- android:textColor="?headlineSelectedSecondaryTextColor"
- android:textSize="12sp" />
- </LinearLayout>
+ android:orientation="horizontal"
+ android:paddingTop="3dp" >
- <TextView
- android:id="@+id/excerpt"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingLeft="6dp"
- android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
- android:textColor="?headlineSelectedExcerptTextColor"
- android:textSize="13sp" />
+ <TextView
+ android:id="@+id/feed_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:singleLine="true"
+ android:text="Example Feed"
+ android:textColor="?headlineSelectedSecondaryTextColor"
+ android:textSize="12sp" />
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_vertical"
- android:paddingLeft="6dp" >
+ <TextView
+ android:id="@+id/date"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:gravity="right|center_vertical"
+ android:text="Jan 01, 12:00"
+ android:textColor="?headlineSelectedSecondaryTextColor"
+ android:textSize="12sp" />
+ </LinearLayout>
<TextView
- android:id="@+id/author"
- android:layout_width="wrap_content"
+ android:id="@+id/excerpt"
+ android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_weight="1"
- android:ellipsize="end"
- android:gravity="center_vertical"
- android:singleLine="true"
- android:text="by Author"
- android:textColor="?headlineSelectedSecondaryTextColor"
- android:textSize="12sp" />
+ android:paddingTop="3dp"
+ android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
+ android:textColor="?headlineSelectedExcerptTextColor"
+ android:textSize="13sp" />
- <ImageView
- android:id="@+id/marked"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="0"
- android:clickable="true"
- android:paddingRight="6dp"
- android:src="@android:drawable/star_off" />
+ android:gravity="center_vertical" >
- <ImageView
- android:id="@+id/published"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:clickable="true"
- android:src="@drawable/ic_rss_bw" />
+ <CheckBox
+ android:id="@+id/selected"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="-6dp"
+ android:layout_weight="0"
+ android:focusable="false" />
- <ImageButton
- android:id="@+id/article_menu_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:background="@null"
- android:paddingLeft="10dp"
- android:paddingTop="6dp"
- android:src="@drawable/ic_mailbox_collapsed_holo_light" />
+ <TextView
+ android:id="@+id/author"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:singleLine="true"
+ android:text="by Author"
+ android:textColor="?headlineSelectedSecondaryTextColor"
+ android:textSize="12sp" />
+
+ <ImageView
+ android:id="@+id/marked"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:paddingRight="6dp"
+ android:src="@android:drawable/star_off" />
+
+ <ImageView
+ android:id="@+id/published"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:paddingRight="6dp"
+ android:src="@drawable/ic_rss_bw" />
+
+ <ImageView
+ android:id="@+id/article_menu_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:src="@drawable/ic_action_overflow" />
+ </LinearLayout>
</LinearLayout>
-</LinearLayout>
\ No newline at end of file +</FrameLayout>
\ No newline at end of file diff --git a/res/layout/headlines_row_unread.xml b/res/layout/headlines_row_unread.xml index 89537907..141b1736 100644 --- a/res/layout/headlines_row_unread.xml +++ b/res/layout/headlines_row_unread.xml @@ -1,127 +1,133 @@ <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/headlines_row"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:background="?headlineUnreadBackground"
- android:orientation="vertical"
- android:paddingLeft="0dp"
+ android:paddingBottom="3dp"
+ android:paddingLeft="6dp"
android:paddingRight="6dp"
- android:paddingTop="6dp" >
+ android:paddingTop="3dp" >
<LinearLayout
- android:id="@+id/linearLayout6"
+ android:id="@+id/inner_row"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_vertical"
- android:orientation="horizontal"
- android:paddingLeft="6dp" >
+ android:layout_height="match_parent"
+ android:background="?headlineUnreadBackground"
+ android:orientation="vertical"
+ android:paddingTop="6dp" android:paddingLeft="6dp" android:paddingRight="6dp" android:paddingBottom="2dp" > >
- <TextView
- android:id="@+id/title"
+ <LinearLayout
+ android:id="@+id/linearLayout6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="1"
- android:ellipsize="end"
android:gravity="center_vertical"
- android:singleLine="false"
- android:text="Sample entry title"
- android:textColor="?headlineUnreadTextColor"
- android:textSize="16sp"
- android:textStyle="bold" />
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/linearLayout1"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:gravity="center_vertical"
- android:orientation="horizontal" >
+ android:orientation="horizontal" >
- <CheckBox
- android:id="@+id/selected"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:focusable="false" />
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:singleLine="false"
+ android:text="Sample entry title"
+ android:textColor="?headlineUnreadTextColor"
+ android:textSize="16sp"
+ android:textStyle="bold" />
+ </LinearLayout>
- <TextView
- android:id="@+id/feed_title"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:id="@+id/linearLayout1"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:ellipsize="end"
android:gravity="center_vertical"
- android:singleLine="true"
- android:text="Example Feed"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp" />
-
- <TextView
- android:id="@+id/date"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:gravity="right|center_vertical"
- android:text="Jan 01, 12:00"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp" />
- </LinearLayout>
+ android:orientation="horizontal"
+ android:paddingTop="3dp" >
- <TextView
- android:id="@+id/excerpt"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingLeft="6dp"
- android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
- android:textColor="?headlineExcerptTextColor"
- android:textSize="13sp" />
+ <TextView
+ android:id="@+id/feed_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:singleLine="true"
+ android:text="Example Feed"
+ android:textColor="?headlineSecondaryTextColor"
+ android:textSize="12sp" />
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_vertical"
- android:paddingLeft="6dp" >
+ <TextView
+ android:id="@+id/date"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:gravity="right|center_vertical"
+ android:text="Jan 01, 12:00"
+ android:textColor="?headlineSecondaryTextColor"
+ android:textSize="12sp" />
+ </LinearLayout>
<TextView
- android:id="@+id/author"
- android:layout_width="wrap_content"
+ android:id="@+id/excerpt"
+ android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_weight="1"
- android:ellipsize="end"
- android:gravity="center_vertical"
- android:singleLine="true"
- android:text="by Author"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp" />
+ android:paddingTop="3dp"
+ android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
+ android:textColor="?headlineExcerptTextColor"
+ android:textSize="13sp" />
- <ImageView
- android:id="@+id/marked"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="0"
- android:clickable="true"
- android:paddingRight="6dp"
- android:src="@android:drawable/star_off" />
+ android:gravity="center_vertical" >
- <ImageView
- android:id="@+id/published"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:clickable="true"
- android:src="@drawable/ic_rss_bw" />
+ <CheckBox
+ android:id="@+id/selected"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="-6dp"
+ android:layout_weight="0"
+ android:focusable="false" />
- <ImageButton
- android:id="@+id/article_menu_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:background="@null"
- android:paddingLeft="10dp"
- android:paddingTop="6dp"
- android:src="@drawable/ic_mailbox_collapsed_holo_light" />
+ <TextView
+ android:id="@+id/author"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:singleLine="true"
+ android:text="by Author"
+ android:textColor="?headlineSecondaryTextColor"
+ android:textSize="12sp" />
+
+ <ImageView
+ android:id="@+id/marked"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:paddingRight="6dp"
+ android:src="@android:drawable/star_off" />
+
+ <ImageView
+ android:id="@+id/published"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:paddingRight="6dp"
+ android:src="@drawable/ic_rss_bw" />
+
+ <ImageView
+ android:id="@+id/article_menu_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:src="@drawable/ic_action_overflow" />
+ </LinearLayout>
</LinearLayout>
-</LinearLayout>
\ No newline at end of file +</FrameLayout>
\ No newline at end of file diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml new file mode 100644 index 00000000..6a111fea --- /dev/null +++ b/res/values-es/strings.xml @@ -0,0 +1,204 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string name="login_in_progress">Iniciando sesión…</string> + <string name="app_name">Tiny Tiny RSS</string> + <string name="login_need_configure">Por favor, configure primero la aplicación.</string> + <string name="login_ready">Listo para iniciar sesión.</string> + <string name="login_login">Iniciar sesión</string> + <string name="logout">Cerrar sesión</string> + <string name="login">Credenciales</string> + <string name="debugging">Debugging</string> + <string name="password">Contraseña</string> + <string name="default_url">http://example.domain/tt-rss/</string> + <string name="look_and_feel">Apariencia</string> + <string name="pref_theme">Tema</string> + <string name="pref_theme_long">Cambiar el tema de colores de la aplicación</string> + <string name="ttrss_url">URL do Tiny Tiny RSS</string> + <string name="theme_dark">Oscuro</string> + <string name="preferences">Preferencias</string> + <string name="theme_light">Claro</string> + <string name="connection">Conexión</string> + <string name="headline_context_multiple">Artículos seleccionados</string> + <string name="http_authentication">Autenticación HTTP</string> + <string name="loading_message">Cargando, espere por favor…</string> + <string name="menu_unread_feeds">Mostrar fuentes sin leer</string> + <string name="menu_all_feeds">Mostrar todas las fuentes</string> + <string name="update_feeds">Actualizar</string> + <string name="share_article">Compartir artículo</string> + <string name="catchup">Marcar como leído</string> + <string name="sort_feeds_by_unread">Ordenar fuentes por número de artículos sin leer</string> + <string name="ssl_trust_any">Aceptar cualquier certificado</string> + <string name="category_browse_feeds">Ver fuentes</string> + <string name="category_browse_articles">Ver artículos</string> + <string name="blank"></string> + <string name="transport_debugging">Registrar datos enviados y recibidos</string> + <string name="article_toggle_marked">Marcar/desmarcar como favorito</string> + <string name="article_toggle_published">Marcar/desmarcar como publicado</string> + <string name="headlines_select">Seleccionar artículos</string> + <string name="headlines_select_dialog">Seleccionar artículos</string> + <string name="headlines_select_all">Todo</string> + <string name="headlines_select_unread">Sin leer</string> + <string name="headlines_select_none">Deseleccionar todo</string> + <string name="selection_toggle_marked">Marcar/desmarcar como favorito</string> + <string name="selection_toggle_published">Marcar/desmarcar como publicado</string> + <string name="selection_toggle_unread">Marcar/desmarcar como leído</string> + <string name="selection_select_none">Deseleccionar todo</string> + <string name="context_selection_toggle_marked">Marcar/desmarcar como favorito</string> + <string name="context_selection_toggle_published">Marcar/desmarcar como publicado</string> + <string name="context_selection_toggle_unread">Marcar/desmarcar como leído</string> + <string name="article_set_unread">Artículo marcado como no leído</string> + <string name="article_mark_read_above">Marcar artículos anteriores como leídos</string> + <string name="http_login_summary">Opcional. Complete este campo si su instalación de Tiny Tiny RSS usa autenticación básica por HTTP</string> + <string name="login_summary">Sus credenciales para Tiny Tiny RSS. No son necesarias en modo de usuario único</string> + <string name="ttrss_url_summary">URL de su instalación de Tiny Tiny RSS, por ejemplo http://site.com/tt-rss/</string> + <string name="download_feed_icons">Habilitar iconos de las fuentes</string> + <string name="enable_cats">Habilitar categorías de fuentes</string> + <string name="no_feeds_to_display">Ninguna fuente para mostrar</string> + <string name="no_headlines_to_display">Ningún titular para mostrar</string> + <string name="no_caption_to_display">Ninguna leyenda para mostrar</string> + <string name="browse_cats_like_feeds">Ver categorías como si fuesen fuentes</string> + <string name="browse_cats_like_feeds_summary">Use el menú contextual de categoría para reemplazar esta preferencia</string> + <string name="headlines_mark_as_read">Marcar como leído</string> + <string name="error_unknown">Error: Error desconocido (ver log)</string> + <string name="error_http_unauthorized">Error: 401 No autorizado</string> + <string name="error_http_forbidden">Error: 403 Acceso denegado</string> + <string name="error_http_not_found">Error: 404 No encontrado</string> + <string name="error_http_server_error">Error: 500 Error del servidor</string> + <string name="error_http_other_error">Error: Otro error HTTP (ver log)</string> + <string name="error_ssl_rejected">Error: Certificado SSL rechazado</string> + <string name="error_parse_error">Error: Fallo al interpretar JSON</string> + <string name="error_io_error">Error: Fallo de I/O (¿servidor caído?)</string> + <string name="error_other_error">Error: Error desconocido (ver log)</string> + <string name="error_api_disabled">Error: Habilite el acceso por API externa en las preferencias avanzadas de Tiny Tiny RSS</string> + <string name="error_api_unknown">Error: Error desconocido de la API (ver log)</string> + <string name="error_api_incorrect_usage">Error: Uso incorrecto da API</string> + <string name="error_login_failed">Error: Usuario o contraseña incorrectos</string> + <string name="error_invalid_api_url">Error: URL de la API inválida</string> + <string name="combined_mode_summary">Mostrar texto del artículo con el titular, en vez de usar un panel separado</string> + <string name="combined_mode">Modo combinado</string> + <string name="go_offline">Entrar en modo offline</string> + <string name="go_online">Entrar en modo online</string> + <string name="offline_switch_error">Fallo al preparar el modo offline (ver log)</string> + <string name="no_feeds">Ninguna fuente para mostrar</string> + <string name="no_headlines">Ningún artículo para mostrar</string> + <string name="dialog_offline_prompt">El inicio de sesión ha fallado, pero tiene datos offline almacenados. ¿Quiere entrar en modo offline?</string> + <string name="dialog_offline_success">Modo offline está listo</string> + <string name="dialog_offline_go">Entrar en modo offline</string> + <string name="dialog_cancel">Cancelar</string> + <string name="dialog_offline_switch_prompt">¿Descargar artículos sin leer y entrar a modo offline?</string> + <string name="notify_downloading_articles">Descargando artículos (%1$d)…</string> + <string name="notify_downloading_init">Iniciando descarga…</string> + <string name="notify_downloading_feeds">Descargando fuentes…</string> + <string name="notify_uploading_sending_data">Enviando datos al servidor…</string> + <string name="notify_downloading_title">Preparando modo offline</string> + <string name="notify_uploading_title">Sincronizando datos offline</string> + <string name="offline_sync_success">Sincronización de datos offline completa</string> + <string name="offline_mode">Modo offline</string> + <string name="offline_image_cache_enabled">Guardar imágenes en caché</string> + <string name="offline_image_cache_enabled_summary">Descargar imágenes a la tarjeta SD. Esto podría prolongar significativamente la espera para entrar al modo offline.</string> + <string name="notify_downloading_images">Descargando imágenes (%1$d)…</string> + <string name="article_set_labels">Definir marcadores</string> + <string name="search">Buscar</string> + <string name="cancel">Cancelar</string> + <string name="font_size_small">Pequeño</string> + <string name="font_size_medium">Medio</string> + <string name="font_size_large">Grande</string> + <string name="pref_font_size">Tamaño de texto de los artículos</string> + <string name="donate">Donar</string> + <string name="dialog_close">Cerrar</string> + <string name="donate_select">Por favor, seleccione la donación</string> + <string name="donate_do">¡Donar!</string> + <string name="tablet_article_swipe">Deslizar el dedo para moverse entre artículos</string> + <string name="article_link_copy">Copiar enlace al portapapeles</string> + <string name="text_copied_to_clipboard">Texto copiado al portapapeles</string> + <string name="attachments_prompt">Seleccione adjunto</string> + <string name="attachment_view">Ver</string> + <string name="attachment_copy">Copiar URL</string> + <string name="justify_article_text">Justificar texto de artículos</string> + <string name="dialog_offline_sync_in_progress">Sincronización offline en progreso</string> + <string name="dialog_offline_sync_stop">Detener sincronización</string> + <string name="dialog_offline_sync_continue">Continuar</string> + <string name="article_set_note">Publicar con anotación</string> + <string name="close_feed">Cerrar fuente</string> + <string name="close_article">Cerrar artículo</string> + <string name="dialog_open_preferences">Preferencias</string> + <string name="dialog_need_configure_prompt">Por favor, complete la información de su servidor de Tiny Tiny RSS, como URL, nombre de usuario y contraseña.</string> + <string name="notify_article_marked">Artículo favorito</string> + <string name="notify_article_unmarked">Artículo no favorito</string> + <string name="notify_article_published">Artículo publicado</string> + <string name="notify_article_unpublished">Artículo no publicado</string> + <string name="notify_article_note_set">Nota del artículo guardada</string> + <string name="update_headlines">Actualizar</string> + <string name="attachment_share">Compartir</string> + <string name="error_network_unavailable">Error: Red no disponible</string> + <string name="category_browse_headlines">Ver titulares</string> + <string name="pref_default_view_mode">Vista de fuentes por defecto</string> + <string name="pref_default_view_mode_long">Qué vista de fuentes abrir por defecto en smartphones</string> + <string name="donate_thanks">Donación encontrada, ¡gracias por su apoyo!</string> + <string name="use_volume_keys">Usar los botones de volumen</string> + <string name="use_volume_keys_long">Moverse entre artículos usando los botones de volumen</string> + <string name="ssl_trust_any_host">No verificar hostname</string> + <string name="error_api_unknown_method">Error: método API desconocido</string> + <string name="ssl_trust_any_long">Aceptar cualquier certificado SSL sin verificación</string> + <string name="ssl_trust_any_host_long">No verificar el nombre del servidor</string> + <string name="ssl">SSL</string> + <string name="error_ssl_hostname_rejected">Error: Hostname SSL no verificado</string> + <string name="offline_oldest_first">Mostrar artículos más antiguos primero</string> + <string name="prefs_dim_status_bar">Oscurecer barra de estado</string> + <string name="prefs_dim_status_bar_long">Oscurecer barra de estado durante lectura</string> + <string name="article_comments">%1$d comentarios</string> + <string name="trial_mode_prompt">Período de prueba, queda(n) %1$d día(s).</string> + <string name="trial_purchase">Desbloquear versión completa</string> + <string name="trial_expired">Período de prueba expirado</string> + <string name="trial_expired_message">Para continuar usando Tiny Tiny RSS, por favor desbloquee la versión completa adquiriendo una clave.</string> + <string name="theme_sepia">Sepia</string> + <string name="trial_thanks">Versión completa, ¡gracias por su apoyo!</string> + <string name="prefs_fullscreen_mode">Modo de pantalla completa</string> + <string name="reading">Leyendo</string> + <string name="theme_dark_gray">Gris oscuro</string> + <string name="offline_articles_to_download">Número de artículos a descargar</string> + <string name="offline_articles_to_download_long">Número de artículos a descargar para modo offline (primero los más recientes).</string> + <string name="pref_headlines_show_content_long">Previsualizar texto de los artículos en la lista de titulares</string> + <string name="pref_headlines_show_content">Previsualización de artículos</string> + <string name="api_too_low">Esta acción requiere una versión más reciente de Tiny Tiny RSS</string> + <string name="share_url_prompt">URL:</string> + <string name="share_url_hint">URL del artículo</string> + <string name="share_content_hint">Contenido del artículo</string> + <string name="share_title_prompt">Título:</string> + <string name="share_title_hint">Título del artículo</string> + <string name="share_share_button">Compartir</string> + <string name="share_article_posted">Artículo compartido.</string> + <string name="subscribe_name">Suscribirse con Tiny Tiny RSS</string> + <string name="feed_url">URL de la fuente</string> + <string name="subscribe_to_feed">Suscribirse a fuente</string> + <string name="error_while_subscribing">Error al suscribirse.</string> + <string name="category_list_updated">Lista de categorías actualizada</string> + <string name="subscribed_to_feed">Fuente suscrita</string> + <string name="error_feed_already_exists_">Error: la fuente ya existe.</string> + <string name="error_invalid_url">Error: URL inválida.</string> + <string name="error_url_is_an_html_page_no_feeds_found">Error: la URL es de una página HTML, no se han encontrado fuentes.</string> + <string name="error_url_contains_multiple_feeds">Error: la URL contiene múltiples fuentes</string> + <string name="error_could_not_download_url">Error: no se pudo descargar la URL</string> + <string name="headlines_view_mode">Definir modo de vista</string> + <string name="headlines_set_view_mode">Definir modo de vista</string> + <string name="headlines_adaptive">Adaptable</string> + <string name="headlines_all_articles">Todos los artículos</string> + <string name="headlines_starred">Favoritos</string> + <string name="headlines_published">Publicados</string> + <string name="headlines_unread">Sin leer</string> + <string name="article_img_open">Abrir imagen</string> + <string name="article_img_share">Compartir imagen</string> + <string name="requires_api5">Requiere la versión 1.7.6</string> + <string name="labels">Marcadores</string> + <string name="article_img_view_caption">Ver leyenda</string> + <string name="light_theme_is_not_supported_on_honeycomb">Tema claro no está soportado en Honeycomb</string> + <string name="pref_headlines_mark_read_scroll">Marcar como leído al desplazarse por titulares</string> + <string name="pref_headlines_mark_read_scroll_long">Los artículos se marcarán como leídos al desplazarse por la lista de titulares</string> + <string name="mark_num_headlines_as_read">Marcar %1$d artículo(s) como leído(s)?</string> + <string name="prefs_confirm_headlines_catchup">Confirme para marcar artículos como leídos</string> + <string name="author_formatted">por %1$s</string> + <string name="n_unread_articles">%1$d artículos sin leer</string> + <string name="pref_headline_font_size">Tamaño de texto para los titulares</string> + <string name="context_confirm_catchup">¿Marcar todos los artículos en %1$s como leídos?</string> +</resources> diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 5cd5bc28..8f1e4c9a 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -195,9 +195,10 @@ <string name="light_theme_is_not_supported_on_honeycomb">ライトテーマはHoneycombではサポートされていません</string>
<string name="pref_headlines_mark_read_scroll">スクロールしたら既読にする</string>
<string name="pref_headlines_mark_read_scroll_long">ヘッドラインをスクロールしたら既読にする</string>
- <string name="mark_num_headlines_as_read"> %1$d 件の記事を既読にしますか?</string>
+ <string name="mark_num_headlines_as_read">%1$d 件の記事を既読にしますか?</string>
<string name="prefs_confirm_headlines_catchup">記事を既読にする際に確認する</string>
<string name="author_formatted">by %1$s</string>
<string name="n_unread_articles">%1$d 件の未読記事</string>
<string name="pref_headline_font_size">ヘッドラインの文字サイズ</string>
+ <string name="context_confirm_catchup">%1$s の全ての記事を既読にしますか?</string>
</resources>
diff --git a/res/values-v11/style.xml b/res/values-v11/style.xml index 6d5bde71..d2adf334 100644 --- a/res/values-v11/style.xml +++ b/res/values-v11/style.xml @@ -7,10 +7,10 @@ <item name="headlinesBackground"><!-- #f0f0f0 -->@drawable/shadow_headlines</item> <item name="headlinesBackgroundSolid">#f0f0f0</item> <item name="articleBackground">@android:color/transparent</item> - <item name="headlineSelectedBackground">@drawable/headline_row_selected_light</item> - <item name="headlineUnreadBackground">@drawable/headline_row_unread_light</item> - <item name="headlineNormalBackground">@android:color/transparent</item> - <item name="feedsSelectedBackground">@drawable/headline_row_selected_light</item> + <item name="headlineSelectedBackground">@drawable/headline_row_selected</item> + <item name="headlineUnreadBackground">@drawable/headline_row_unread</item> + <item name="headlineNormalBackground">@drawable/headline_row</item> + <item name="feedsSelectedBackground">#88b0f0</item> <item name="feedlistTextColor">@android:color/primary_text_light</item> <item name="feedlistSelectedTextColor">#ffffff</item> <item name="headlineTextColor">@android:color/secondary_text_light</item> @@ -33,8 +33,9 @@ <item name="headlinesBackground">@drawable/shadow_headlines_sepia</item> <item name="headlinesBackgroundSolid">@drawable/paper_sepia</item> <item name="headlineUnreadBackground">@drawable/headline_row_unread_sepia</item> <!-- #F2EAE8 --> - <item name="headlineSelectedBackground">@drawable/headline_row_selected_sepia</item> - <item name="feedsSelectedBackground">@drawable/headline_row_selected_sepia</item> + <item name="headlineNormalBackground">@drawable/headline_row_sepia</item> + <item name="headlineSelectedBackground">@drawable/headline_row_selected_sepia</item> <!-- #E5B0A0 --> + <item name="feedsSelectedBackground">#E5B0A0</item> <item name="articleBackground">@drawable/paper_sepia</item> <item name="unreadCounterBackground">@drawable/counter_background_sepia</item> <item name="unreadSelectedCounterBackground">@drawable/counter_background_sepia</item> @@ -51,10 +52,10 @@ <item name="headlinesBackground">@android:color/black</item> <item name="headlinesBackgroundSolid">@android:color/black</item> <item name="articleBackground">@android:color/black</item> - <item name="headlineSelectedBackground">@drawable/headline_row_selected_dark</item> + <item name="headlineSelectedBackground">@color/ics_cyan</item> <item name="headlineUnreadBackground">#202020</item> - <item name="headlineNormalBackground">@android:color/transparent</item> - <item name="feedsSelectedBackground">@drawable/headline_row_selected_dark</item> + <item name="headlineNormalBackground">#151515</item> + <item name="feedsSelectedBackground">@color/ics_cyan</item> <item name="feedlistTextColor">@android:color/primary_text_dark</item> <item name="feedlistSelectedTextColor">@android:color/black</item> <item name="headlineTextColor">@android:color/secondary_text_dark</item> @@ -78,9 +79,9 @@ <item name="headlinesBackground">@drawable/shadow_headlines_gray</item> <item name="headlinesBackgroundSolid">@color/feeds_dark_gray</item> <item name="articleBackground">@color/feeds_dark_gray</item> - <item name="headlineSelectedBackground">@drawable/headline_row_selected_gray</item> - <item name="headlineUnreadBackground">@drawable/headline_row_unread_gray</item> - <item name="feedsSelectedBackground">@drawable/headline_row_selected_gray</item> + <item name="headlineSelectedBackground">#22667f</item> + <item name="headlineUnreadBackground">#383c42</item> + <item name="feedsSelectedBackground">#22667f</item> <item name="feedlistSelectedTextColor">@android:color/primary_text_dark</item> <item name="headlineSelectedExcerptTextColor">@android:color/secondary_text_dark</item> <item name="headlineTextColor">@android:color/secondary_text_dark</item> diff --git a/res/values/resources.xml b/res/values/resources.xml index 134f7960..7e1b097e 100644 --- a/res/values/resources.xml +++ b/res/values/resources.xml @@ -5,16 +5,10 @@ <color name="headlines_light">#ffffff</color>
<color name="headlines_sepia">#EAE2DC</color>
<color name="feeds_sepia">#D3C6BA</color>
- <color name="headline_row_selected_light">#88b0f0</color>
- <color name="headline_row_selected_sepia">#E5B0A0</color>
<color name="ics_cyan">#33b5e5</color>
- <color name="feeds_dark_gray">#1c1d1e</color>
- <color name="headline_row_selected_gray">#22667f</color>
- <color name="headline_row_unread_gray">#383c42</color>
- <color name="headline_row_unread_light">#f0f0f0</color>
- <color name="headline_row_unread_sepia">#F2EAE8</color>
<color name="unread_counter_background">#88b0f0</color>
<color name="unread_counter_background_dark">#303030</color>
<color name="unread_counter_background_sepia">#C46262</color>
<color name="unread_counter_background_selected_light">#4684ff</color>
+ <color name="feeds_dark_gray">#1c1d1e</color>
</resources>
\ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index a05188d8..e4ef4831 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -200,4 +200,5 @@ <string name="author_formatted">by %1$s</string> <string name="n_unread_articles">%1$d unread articles</string> <string name="pref_headline_font_size">Headline text size</string> + <string name="context_confirm_catchup">Mark all articles in %1$s as read?</string> </resources> diff --git a/res/values/style.xml b/res/values/style.xml index d1123515..4a8e93ba 100644 --- a/res/values/style.xml +++ b/res/values/style.xml @@ -7,10 +7,10 @@ <item name="headlinesBackground"><!-- #f0f0f0 -->@drawable/shadow_headlines</item> <item name="headlinesBackgroundSolid">#f0f0f0</item> <item name="articleBackground">@android:color/transparent</item> - <item name="headlineSelectedBackground">@drawable/headline_row_selected_light</item> - <item name="headlineUnreadBackground">@drawable/headline_row_unread_light</item> - <item name="headlineNormalBackground">@android:color/transparent</item> - <item name="feedsSelectedBackground">@drawable/headline_row_selected_light</item> + <item name="headlineSelectedBackground">#88b0f0</item> + <item name="headlineUnreadBackground">#ffffff</item> + <item name="headlineNormalBackground">#f0f0f0</item> + <item name="feedsSelectedBackground">#88b0f0</item> <item name="feedlistTextColor">@android:color/primary_text_light</item> <item name="feedlistSelectedTextColor">#ffffff</item> <item name="headlineTextColor">@android:color/secondary_text_light</item> @@ -24,7 +24,7 @@ <item name="linkColor">#4684ff</item> <item name="loadingBackground">@android:color/white</item> <item name="unreadCounterBackground">@drawable/counter_background</item> - <item name="unreadSelectedCounterBackground">@drawable/counter_background</item> + <item name="unreadSelectedCounterBackground">@drawable/counter_background_selected_light</item> </style> <style name="SepiaTheme" parent="LightTheme"> @@ -32,9 +32,9 @@ <item name="feedlistBackground">@drawable/shadow_feeds_sepia</item> <item name="headlinesBackground">@drawable/shadow_headlines_sepia</item> <item name="headlinesBackgroundSolid">@drawable/paper_sepia</item> - <item name="headlineUnreadBackground">@drawable/headline_row_unread_sepia</item> <!-- #F2EAE8 --> - <item name="headlineSelectedBackground">@drawable/headline_row_selected_sepia</item> - <item name="feedsSelectedBackground">@drawable/headline_row_selected_sepia</item> + <item name="headlineUnreadBackground">#f2eae8</item> <!-- #F2EAE8 --> + <item name="headlineSelectedBackground">#E5B0A0</item> + <item name="feedsSelectedBackground">#E5B0A0</item> <item name="articleBackground">@drawable/paper_sepia</item> <item name="unreadCounterBackground">@drawable/counter_background_sepia</item> <item name="unreadSelectedCounterBackground">@drawable/counter_background_sepia</item> @@ -51,10 +51,10 @@ <item name="headlinesBackground">@android:color/black</item> <item name="headlinesBackgroundSolid">@android:color/black</item> <item name="articleBackground">@android:color/black</item> - <item name="headlineSelectedBackground">@drawable/headline_row_selected_dark</item> + <item name="headlineSelectedBackground">@color/ics_cyan</item> <item name="headlineUnreadBackground">#202020</item> - <item name="headlineNormalBackground">@android:color/transparent</item> - <item name="feedsSelectedBackground">@drawable/headline_row_selected_dark</item> + <item name="headlineNormalBackground">#151515</item> + <item name="feedsSelectedBackground">@color/ics_cyan</item> <item name="feedlistTextColor">@android:color/primary_text_dark</item> <item name="feedlistSelectedTextColor">@android:color/black</item> <item name="headlineTextColor">@android:color/secondary_text_dark</item> @@ -78,9 +78,9 @@ <item name="headlinesBackground">@drawable/shadow_headlines_gray</item> <item name="headlinesBackgroundSolid">@color/feeds_dark_gray</item> <item name="articleBackground">@color/feeds_dark_gray</item> - <item name="headlineSelectedBackground">@drawable/headline_row_selected_gray</item> - <item name="headlineUnreadBackground">@drawable/headline_row_unread_gray</item> - <item name="feedsSelectedBackground">@drawable/headline_row_selected_gray</item> + <item name="headlineSelectedBackground">#22667f</item> + <item name="headlineUnreadBackground">#383c42</item> + <item name="feedsSelectedBackground">#22667f</item> <item name="feedlistSelectedTextColor">@android:color/primary_text_dark</item> <item name="headlineSelectedExcerptTextColor">@android:color/secondary_text_dark</item> <item name="headlineTextColor">@android:color/secondary_text_dark</item> diff --git a/src/org/fox/ttrss/ArticlePager.java b/src/org/fox/ttrss/ArticlePager.java index 9caa72d1..f7e5a13f 100644 --- a/src/org/fox/ttrss/ArticlePager.java +++ b/src/org/fox/ttrss/ArticlePager.java @@ -175,10 +175,12 @@ public class ArticlePager extends Fragment { } } - if (m_article.id == 0 || m_articles.indexOf(m_article) == -1) { - if (m_articles.size() > 0) { - m_article = m_articles.get(0); - m_listener.onArticleSelected(m_article, false); + if (m_article != null) { + if (m_article.id == 0 || m_articles.indexOf(m_article) == -1) { + if (m_articles.size() > 0) { + m_article = m_articles.get(0); + m_listener.onArticleSelected(m_article, false); + } } } @@ -199,11 +201,28 @@ public class ArticlePager extends Fragment { int skip = 0; if (append) { + // adaptive, all_articles, marked, published, unread + String viewMode = m_activity.getViewMode(); + int numUnread = 0; + int numAll = m_articles.size(); + for (Article a : m_articles) { - if (a.unread) ++skip; + if (a.unread) ++numUnread; } - if (skip == 0) skip = m_articles.size(); + if ("marked".equals(viewMode)) { + skip = numAll; + } else if ("published".equals(viewMode)) { + skip = numAll; + } else if ("unread".equals(viewMode)) { + skip = numUnread; + } else if (m_searchQuery != null && m_searchQuery.length() > 0) { + skip = numAll; + } else if ("adaptive".equals(viewMode)) { + skip = numUnread > 0 ? numUnread : numAll; + } else { + skip = numAll; + } } final int fskip = skip; diff --git a/src/org/fox/ttrss/FeedCategoriesFragment.java b/src/org/fox/ttrss/FeedCategoriesFragment.java index 34b21922..f2c6d522 100644 --- a/src/org/fox/ttrss/FeedCategoriesFragment.java +++ b/src/org/fox/ttrss/FeedCategoriesFragment.java @@ -13,7 +13,10 @@ import org.fox.ttrss.types.FeedCategoryList; import android.annotation.SuppressLint; import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; import android.content.Context; +import android.content.DialogInterface; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; @@ -125,9 +128,36 @@ public class FeedCategoriesFragment extends Fragment implements OnItemClickListe return true; case R.id.catchup_category: if (true) { - FeedCategory cat = getCategoryAtPosition(info.position); + final FeedCategory cat = getCategoryAtPosition(info.position); if (cat != null) { - m_activity.catchupFeed(new Feed(cat.id, cat.title, true)); + + if (m_prefs.getBoolean("confirm_headlines_catchup", true)) { + AlertDialog.Builder builder = new AlertDialog.Builder( + m_activity) + .setMessage(getString(R.string.context_confirm_catchup, cat.title)) + .setPositiveButton(R.string.catchup, + new Dialog.OnClickListener() { + public void onClick(DialogInterface dialog, + int which) { + + m_activity.catchupFeed(new Feed(cat.id, cat.title, true)); + + } + }) + .setNegativeButton(R.string.dialog_cancel, + new Dialog.OnClickListener() { + public void onClick(DialogInterface dialog, + int which) { + + } + }); + + AlertDialog dlg = builder.create(); + dlg.show(); + } else { + m_activity.catchupFeed(new Feed(cat.id, cat.title, true)); + } + } } return true; @@ -415,9 +445,6 @@ public class FeedCategoriesFragment extends Fragment implements OnItemClickListe ImageButton ib = (ImageButton) v.findViewById(R.id.feed_menu_button); if (ib != null) { - if (m_activity.isDarkTheme()) - ib.setImageResource(R.drawable.ic_mailbox_collapsed_holo_dark); - ib.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { diff --git a/src/org/fox/ttrss/FeedsFragment.java b/src/org/fox/ttrss/FeedsFragment.java index 9eae321b..cc851cd4 100644 --- a/src/org/fox/ttrss/FeedsFragment.java +++ b/src/org/fox/ttrss/FeedsFragment.java @@ -19,7 +19,10 @@ import org.fox.ttrss.types.FeedList; import android.annotation.SuppressLint; import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; import android.content.Context; +import android.content.DialogInterface; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.graphics.Bitmap; @@ -156,9 +159,35 @@ public class FeedsFragment extends Fragment implements OnItemClickListener, OnSh return true; case R.id.catchup_feed: if (true) { - Feed feed = getFeedAtPosition(info.position); + final Feed feed = getFeedAtPosition(info.position); + if (feed != null) { - m_activity.catchupFeed(feed); + if (m_prefs.getBoolean("confirm_headlines_catchup", true)) { + AlertDialog.Builder builder = new AlertDialog.Builder( + m_activity) + .setMessage(getString(R.string.context_confirm_catchup, feed.title)) + .setPositiveButton(R.string.catchup, + new Dialog.OnClickListener() { + public void onClick(DialogInterface dialog, + int which) { + + m_activity.catchupFeed(feed); + + } + }) + .setNegativeButton(R.string.dialog_cancel, + new Dialog.OnClickListener() { + public void onClick(DialogInterface dialog, + int which) { + + } + }); + + AlertDialog dlg = builder.create(); + dlg.show(); + } else { + m_activity.catchupFeed(feed); + } } } return true; @@ -542,9 +571,6 @@ public class FeedsFragment extends Fragment implements OnItemClickListener, OnSh ImageButton ib = (ImageButton) v.findViewById(R.id.feed_menu_button); if (ib != null) { - if (m_activity.isDarkTheme()) - ib.setImageResource(R.drawable.ic_mailbox_collapsed_holo_dark); - ib.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { diff --git a/src/org/fox/ttrss/HeadlinesFragment.java b/src/org/fox/ttrss/HeadlinesFragment.java index d2ba40cc..0b5bc1ca 100644 --- a/src/org/fox/ttrss/HeadlinesFragment.java +++ b/src/org/fox/ttrss/HeadlinesFragment.java @@ -65,6 +65,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, private Article m_activeArticle; private String m_searchQuery = ""; private boolean m_refreshInProgress = false; + private boolean m_autoCatchupDisabled = false; private SharedPreferences m_prefs; @@ -298,8 +299,8 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, //list.setEmptyView(view.findViewById(R.id.no_headlines)); registerForContextMenu(list); - if (m_activity.isSmallScreen()) - view.findViewById(R.id.headlines_fragment).setPadding(0, 0, 0, 0); + //if (m_activity.isSmallScreen()) + //view.findViewById(R.id.headlines_fragment).setPadding(0, 0, 0, 0); Log.d(TAG, "onCreateView, feed=" + m_feed); @@ -371,6 +372,20 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, append = false; } + // new stuff may appear on top, scroll back to show it + if (!append) { + if (getView() != null) { + Log.d(TAG, "scroll hack"); + ListView list = (ListView)getView().findViewById(R.id.headlines); + m_autoCatchupDisabled = true; + list.setSelection(0); + m_autoCatchupDisabled = false; + list.setEmptyView(null); + m_adapter.clear(); + m_adapter.notifyDataSetChanged(); + } + } + final boolean fappend = append; final String sessionId = m_activity.getSessionId(); final boolean isCat = m_feed.is_cat; @@ -418,11 +433,29 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, int skip = 0; if (append) { + // adaptive, all_articles, marked, published, unread + String viewMode = m_activity.getViewMode(); + int numUnread = 0; + int numAll = m_articles.size(); + for (Article a : m_articles) { - if (a.unread) ++skip; + if (a.unread) ++numUnread; + } + + if ("marked".equals(viewMode)) { + skip = numAll; + } else if ("published".equals(viewMode)) { + skip = numAll; + } else if ("unread".equals(viewMode)) { + skip = numUnread; + } else if (m_searchQuery != null && m_searchQuery.length() > 0) { + skip = numAll; + } else if ("adaptive".equals(viewMode)) { + skip = numUnread > 0 ? numUnread : numAll; + } else { + skip = numAll; } - if (skip == 0) skip = m_articles.size(); } else { m_activity.setLoadingStatus(R.string.blank, true); } @@ -765,13 +798,13 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, }); } - ImageButton ib = (ImageButton) v.findViewById(R.id.article_menu_button); + ImageView iv = (ImageView) v.findViewById(R.id.article_menu_button); - if (ib != null) { - if (m_activity.isDarkTheme()) - ib.setImageResource(R.drawable.ic_mailbox_collapsed_holo_dark); + if (iv != null) { + //if (m_activity.isDarkTheme()) + // ib.setImageResource(R.drawable.ic_mailbox_collapsed_holo_dark); - ib.setOnClickListener(new OnClickListener() { + iv.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { getActivity().openContextMenu(v); @@ -869,7 +902,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, refresh(true); } - if (m_prefs.getBoolean("headlines_mark_read_scroll", false) && firstVisibleItem > 0) { + if (m_prefs.getBoolean("headlines_mark_read_scroll", false) && firstVisibleItem > 0 && !m_autoCatchupDisabled) { Article a = m_articles.get(firstVisibleItem - 1); if (a != null && a.unread) { diff --git a/src/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java b/src/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java index ad229919..682cf3e6 100644 --- a/src/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java +++ b/src/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java @@ -288,9 +288,6 @@ public class OfflineFeedCategoriesFragment extends Fragment implements OnItemCli ImageButton ib = (ImageButton) v.findViewById(R.id.feed_menu_button); if (ib != null) { - if (m_activity.isDarkTheme()) - ib.setImageResource(R.drawable.ic_mailbox_collapsed_holo_dark); - ib.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { diff --git a/src/org/fox/ttrss/offline/OfflineFeedsActivity.java b/src/org/fox/ttrss/offline/OfflineFeedsActivity.java index 2511d266..1ca965b7 100644 --- a/src/org/fox/ttrss/offline/OfflineFeedsActivity.java +++ b/src/org/fox/ttrss/offline/OfflineFeedsActivity.java @@ -65,9 +65,10 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead m_actionbarUpEnabled = false; m_feedIsSelected = false; getSupportActionBar().setDisplayHomeAsUpEnabled(false); - initMenu(); refresh(); } + + initMenu(); } }); } diff --git a/src/org/fox/ttrss/offline/OfflineFeedsFragment.java b/src/org/fox/ttrss/offline/OfflineFeedsFragment.java index 98996858..69a07595 100644 --- a/src/org/fox/ttrss/offline/OfflineFeedsFragment.java +++ b/src/org/fox/ttrss/offline/OfflineFeedsFragment.java @@ -322,9 +322,6 @@ public class OfflineFeedsFragment extends Fragment implements OnItemClickListene ImageButton ib = (ImageButton) v.findViewById(R.id.feed_menu_button); if (ib != null) { - if (m_activity.isDarkTheme()) - ib.setImageResource(R.drawable.ic_mailbox_collapsed_holo_dark); - ib.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { diff --git a/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java b/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java index 1953c671..afa08b40 100644 --- a/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java +++ b/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java @@ -317,8 +317,8 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis list.setEmptyView(view.findViewById(R.id.no_headlines)); registerForContextMenu(list); - if (m_activity.isSmallScreen()) - view.findViewById(R.id.headlines_fragment).setPadding(0, 0, 0, 0); + //if (m_activity.isSmallScreen()) + // view.findViewById(R.id.headlines_fragment).setPadding(0, 0, 0, 0); getActivity().setProgressBarIndeterminateVisibility(false); @@ -645,11 +645,11 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis }); } - ImageButton ib = (ImageButton) v.findViewById(R.id.article_menu_button); + ImageView ib = (ImageView) v.findViewById(R.id.article_menu_button); if (ib != null) { - if (m_activity.isDarkTheme()) - ib.setImageResource(R.drawable.ic_mailbox_collapsed_holo_dark); + //if (m_activity.isDarkTheme()) + // ib.setImageResource(R.drawable.ic_mailbox_collapsed_holo_dark); ib.setOnClickListener(new OnClickListener() { @Override diff --git a/src/org/fox/ttrss/share/SubscribeActivity.java b/src/org/fox/ttrss/share/SubscribeActivity.java index d37e8818..bed173a2 100644 --- a/src/org/fox/ttrss/share/SubscribeActivity.java +++ b/src/org/fox/ttrss/share/SubscribeActivity.java @@ -224,8 +224,7 @@ public class SubscribeActivity extends CommonShareActivity { final List<FeedCategory> cats = new Gson().fromJson(content, listType); m_cats.clear(); - m_cats.add(new FeedCategory(0, "Uncategorized", 0)); - + for (FeedCategory c : cats) { if (c.id > 0) m_cats.add(c); @@ -233,8 +232,10 @@ public class SubscribeActivity extends CommonShareActivity { sortCats(); - m_adapter.notifyDataSetChanged(); + m_cats.add(0, new FeedCategory(0, "Uncategorized", 0)); + m_adapter.notifyDataSetChanged(); + toast(R.string.category_list_updated); } } |