summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.classpath13
-rw-r--r--.gitignore13
-rw-r--r--.idea/.name1
-rw-r--r--.idea/compiler.xml23
-rw-r--r--.idea/copyright/profiles_settings.xml3
-rw-r--r--.idea/encodings.xml5
-rw-r--r--.idea/gradle.xml19
-rw-r--r--.idea/misc.xml26
-rw-r--r--.idea/modules.xml11
-rw-r--r--.idea/scopes/scope_settings.xml5
-rw-r--r--.idea/vcs.xml7
-rw-r--r--.project33
-rw-r--r--.settings/org.eclipse.core.resources.prefs2
-rw-r--r--.settings/org.eclipse.jdt.core.prefs11
-rw-r--r--README.md24
-rw-r--r--Tiny-Tiny-RSS-for-Honeycomb.iml19
-rw-r--r--build.gradle17
-rw-r--r--default.properties2
-rw-r--r--feature_graphic.pngbin80284 -> 0 bytes
-rw-r--r--gradle/wrapper/gradle-wrapper.jarbin0 -> 49896 bytes
-rw-r--r--gradle/wrapper/gradle-wrapper.properties6
-rw-r--r--gradlew164
-rw-r--r--gradlew.bat90
-rw-r--r--ic_launcher-web.pngbin60810 -> 0 bytes
-rw-r--r--libs/android-support-v4.jarbin758727 -> 0 bytes
-rw-r--r--libs/gson-1.7.1.jarbin173590 -> 0 bytes
-rw-r--r--lint.xml3
-rw-r--r--orgfoxttrss/build.gradle32
-rw-r--r--orgfoxttrss/libs/dashclock-api-r1.1.jar (renamed from libs/dashclock-api-r1.1.jar)bin16279 -> 16279 bytes
-rw-r--r--orgfoxttrss/libs/jsoup-1.6.1.jar (renamed from libs/jsoup-1.6.1.jar)bin281579 -> 281579 bytes
-rw-r--r--orgfoxttrss/libs/universal-image-loader-1.9.3.jar (renamed from libs/universal-image-loader-1.9.3.jar)bin160443 -> 160443 bytes
-rw-r--r--orgfoxttrss/lint.xml3
-rw-r--r--orgfoxttrss/orgfoxttrss.iml94
-rw-r--r--orgfoxttrss/src/main/AndroidManifest.xml (renamed from AndroidManifest.xml)0
-rw-r--r--orgfoxttrss/src/main/java/android/support/v4/app/ClassloaderWorkaroundFragmentStatePagerAdapter.java (renamed from src/android/support/v4/app/ClassloaderWorkaroundFragmentStatePagerAdapter.java)78
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/ApiRequest.java (renamed from src/org/fox/ttrss/ApiRequest.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/ArticleFragment.java (renamed from src/org/fox/ttrss/ArticleFragment.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/ArticlePager.java (renamed from src/org/fox/ttrss/ArticlePager.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/CommonActivity.java (renamed from src/org/fox/ttrss/CommonActivity.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/DashClock.java (renamed from src/org/fox/ttrss/DashClock.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/DummyFragment.java (renamed from src/org/fox/ttrss/DummyFragment.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java (renamed from src/org/fox/ttrss/FeedCategoriesFragment.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/FeedsActivity.java (renamed from src/org/fox/ttrss/FeedsActivity.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/FeedsFragment.java (renamed from src/org/fox/ttrss/FeedsFragment.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/GlobalState.java (renamed from src/org/fox/ttrss/GlobalState.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/HeadlinesActivity.java (renamed from src/org/fox/ttrss/HeadlinesActivity.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/HeadlinesEventListener.java (renamed from src/org/fox/ttrss/HeadlinesEventListener.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java (renamed from src/org/fox/ttrss/HeadlinesFragment.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/LoadingFragment.java (renamed from src/org/fox/ttrss/LoadingFragment.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/OnlineActivity.java (renamed from src/org/fox/ttrss/OnlineActivity.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/PreferencesActivity.java (renamed from src/org/fox/ttrss/PreferencesActivity.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineActivity.java (renamed from src/org/fox/ttrss/offline/OfflineActivity.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java (renamed from src/org/fox/ttrss/offline/OfflineArticleFragment.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineArticlePager.java (renamed from src/org/fox/ttrss/offline/OfflineArticlePager.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineDownloadService.java (renamed from src/org/fox/ttrss/offline/OfflineDownloadService.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java (renamed from src/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsActivity.java (renamed from src/org/fox/ttrss/offline/OfflineFeedsActivity.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsFragment.java (renamed from src/org/fox/ttrss/offline/OfflineFeedsFragment.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesActivity.java (renamed from src/org/fox/ttrss/offline/OfflineHeadlinesActivity.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesEventListener.java (renamed from src/org/fox/ttrss/offline/OfflineHeadlinesEventListener.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java (renamed from src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineUploadService.java (renamed from src/org/fox/ttrss/offline/OfflineUploadService.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/share/CommonActivity.java (renamed from src/org/fox/ttrss/share/CommonActivity.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/share/CommonShareActivity.java (renamed from src/org/fox/ttrss/share/CommonShareActivity.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/share/ShareActivity.java (renamed from src/org/fox/ttrss/share/ShareActivity.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/share/SubscribeActivity.java (renamed from src/org/fox/ttrss/share/SubscribeActivity.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/tasker/TaskerReceiver.java (renamed from src/org/fox/ttrss/tasker/TaskerReceiver.java)186
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/tasker/TaskerSettingsActivity.java (renamed from src/org/fox/ttrss/tasker/TaskerSettingsActivity.java)192
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/types/Article.java (renamed from src/org/fox/ttrss/types/Article.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/types/ArticleList.java (renamed from src/org/fox/ttrss/types/ArticleList.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/types/Attachment.java (renamed from src/org/fox/ttrss/types/Attachment.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/types/Feed.java (renamed from src/org/fox/ttrss/types/Feed.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/types/FeedCategory.java (renamed from src/org/fox/ttrss/types/FeedCategory.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/types/FeedCategoryList.java (renamed from src/org/fox/ttrss/types/FeedCategoryList.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/types/FeedList.java (renamed from src/org/fox/ttrss/types/FeedList.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/types/Label.java (renamed from src/org/fox/ttrss/types/Label.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/util/AppRater.java (renamed from src/org/fox/ttrss/util/AppRater.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/util/DatabaseHelper.java (renamed from src/org/fox/ttrss/util/DatabaseHelper.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/util/EnlargingImageView.java (renamed from src/org/fox/ttrss/util/EnlargingImageView.java)502
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/util/FontSizeDialogPreference.java (renamed from src/org/fox/ttrss/util/FontSizeDialogPreference.java)446
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/util/HeadlinesRequest.java (renamed from src/org/fox/ttrss/util/HeadlinesRequest.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/util/ImageCacheService.java (renamed from src/org/fox/ttrss/util/ImageCacheService.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/util/LessBrokenWebView.java (renamed from src/org/fox/ttrss/util/LessBrokenWebView.java)74
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/util/NoChildFocusScrollView.java (renamed from src/org/fox/ttrss/util/NoChildFocusScrollView.java)68
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/util/PrefsBackupAgent.java (renamed from src/org/fox/ttrss/util/PrefsBackupAgent.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/util/SimpleLoginManager.java (renamed from src/org/fox/ttrss/util/SimpleLoginManager.java)210
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/util/TitleWebView.java (renamed from src/org/fox/ttrss/util/TitleWebView.java)0
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/util/TypefaceCache.java (renamed from src/org/fox/ttrss/util/TypefaceCache.java)56
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/widget/SmallWidgetProvider.java (renamed from src/org/fox/ttrss/widget/SmallWidgetProvider.java)130
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/widget/WidgetUpdateService.java (renamed from src/org/fox/ttrss/widget/WidgetUpdateService.java)282
-rw-r--r--orgfoxttrss/src/main/res/anim/feed_item.xml (renamed from res/anim/feed_item.xml)18
-rw-r--r--orgfoxttrss/src/main/res/anim/headline_item.xml (renamed from res/anim/headline_item.xml)28
-rw-r--r--orgfoxttrss/src/main/res/anim/layout_feeds.xml (renamed from res/anim/layout_feeds.xml)8
-rw-r--r--orgfoxttrss/src/main/res/anim/layout_headline.xml (renamed from res/anim/layout_headline.xml)8
-rw-r--r--orgfoxttrss/src/main/res/anim/right_slide_in.xml (renamed from res/anim/right_slide_in.xml)0
-rw-r--r--orgfoxttrss/src/main/res/anim/right_slide_out.xml (renamed from res/anim/right_slide_out.xml)0
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/dashclock.png (renamed from res/drawable-hdpi/dashclock.png)bin3054 -> 3054 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_accept_light.png (renamed from res/drawable-hdpi/ic_accept_light.png)bin1335 -> 1335 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_action_overflow.png (renamed from res/drawable-hdpi/ic_action_overflow.png)bin2863 -> 2863 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_cloud_light.png (renamed from res/drawable-hdpi/ic_cloud_light.png)bin1405 -> 1405 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_important_light.png (renamed from res/drawable-hdpi/ic_important_light.png)bin1725 -> 1725 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_labels_light.png (renamed from res/drawable-hdpi/ic_labels_light.png)bin1734 -> 1734 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_list_light.png (renamed from res/drawable-hdpi/ic_list_light.png)bin1386 -> 1386 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_menu_attaches_light.png (renamed from res/drawable-hdpi/ic_menu_attaches_light.png)bin1461 -> 1461 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_menu_published_light.png (renamed from res/drawable-hdpi/ic_menu_published_light.png)bin977 -> 977 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_menu_unpublished_light.png (renamed from res/drawable-hdpi/ic_menu_unpublished_light.png)bin1169 -> 1169 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_new_light.png (renamed from res/drawable-hdpi/ic_new_light.png)bin1142 -> 1142 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_published.png (renamed from res/drawable-hdpi/ic_published.png)bin1248 -> 1248 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_read_light.png (renamed from res/drawable-hdpi/ic_read_light.png)bin1636 -> 1636 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_refresh_light.png (renamed from res/drawable-hdpi/ic_refresh_light.png)bin3138 -> 3138 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_rotate_left_light.png (renamed from res/drawable-hdpi/ic_rotate_left_light.png)bin1968 -> 1968 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_search_light.png (renamed from res/drawable-hdpi/ic_search_light.png)bin1764 -> 1764 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_select_all_light.png (renamed from res/drawable-hdpi/ic_select_all_light.png)bin1455 -> 1455 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_share_light.png (renamed from res/drawable-hdpi/ic_share_light.png)bin1606 -> 1606 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_star_empty.png (renamed from res/drawable-hdpi/ic_star_empty.png)bin1103 -> 1103 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_star_full.png (renamed from res/drawable-hdpi/ic_star_full.png)bin744 -> 744 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_undo_light.png (renamed from res/drawable-hdpi/ic_undo_light.png)bin1642 -> 1642 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_unimportant_light.png (renamed from res/drawable-hdpi/ic_unimportant_light.png)bin1768 -> 1768 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_unpublished.png (renamed from res/drawable-hdpi/ic_unpublished.png)bin1069 -> 1069 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ic_unread_light.png (renamed from res/drawable-hdpi/ic_unread_light.png)bin1599 -> 1599 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/icon.png (renamed from res/drawable-hdpi/icon.png)bin5468 -> 5468 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/ics_divider_vertical_bitmap.png (renamed from res/drawable-hdpi/ics_divider_vertical_bitmap.png)bin936 -> 936 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/paper_sepia_bitmap.png (renamed from res/drawable-hdpi/paper_sepia_bitmap.png)bin35569 -> 35569 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-hdpi/shadow_bitmap.png (renamed from res/drawable-hdpi/shadow_bitmap.png)bin299 -> 299 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/dashclock.png (renamed from res/drawable-xhdpi/dashclock.png)bin3482 -> 3482 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_accept_light.png (renamed from res/drawable-xhdpi/ic_accept_light.png)bin1599 -> 1599 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_cloud_light.png (renamed from res/drawable-xhdpi/ic_cloud_light.png)bin1593 -> 1593 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_important_light.png (renamed from res/drawable-xhdpi/ic_important_light.png)bin2045 -> 2045 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_labels_light.png (renamed from res/drawable-xhdpi/ic_labels_light.png)bin2169 -> 2169 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_list_light.png (renamed from res/drawable-xhdpi/ic_list_light.png)bin1446 -> 1446 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_menu_attaches_light.png (renamed from res/drawable-xhdpi/ic_menu_attaches_light.png)bin1873 -> 1873 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_menu_published_light.png (renamed from res/drawable-xhdpi/ic_menu_published_light.png)bin1266 -> 1266 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_menu_unpublished_light.png (renamed from res/drawable-xhdpi/ic_menu_unpublished_light.png)bin1546 -> 1546 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_new_light.png (renamed from res/drawable-xhdpi/ic_new_light.png)bin1221 -> 1221 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_read_light.png (renamed from res/drawable-xhdpi/ic_read_light.png)bin1923 -> 1923 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_refresh_light.png (renamed from res/drawable-xhdpi/ic_refresh_light.png)bin3219 -> 3219 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_rotate_left_light.png (renamed from res/drawable-xhdpi/ic_rotate_left_light.png)bin2406 -> 2406 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_search_light.png (renamed from res/drawable-xhdpi/ic_search_light.png)bin2127 -> 2127 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_select_all_light.png (renamed from res/drawable-xhdpi/ic_select_all_light.png)bin1583 -> 1583 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_share_light.png (renamed from res/drawable-xhdpi/ic_share_light.png)bin1780 -> 1780 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_undo_light.png (renamed from res/drawable-xhdpi/ic_undo_light.png)bin1914 -> 1914 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_unimportant_light.png (renamed from res/drawable-xhdpi/ic_unimportant_light.png)bin2279 -> 2279 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/ic_unread_light.png (renamed from res/drawable-xhdpi/ic_unread_light.png)bin1809 -> 1809 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xhdpi/icon.png (renamed from res/drawable-xhdpi/icon.png)bin7729 -> 7729 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable-xxhdpi/icon.png (renamed from res/drawable-xxhdpi/icon.png)bin12760 -> 12760 bytes
-rw-r--r--orgfoxttrss/src/main/res/drawable/counter_background.xml (renamed from res/drawable/counter_background.xml)22
-rw-r--r--orgfoxttrss/src/main/res/drawable/counter_background_dark.xml (renamed from res/drawable/counter_background_dark.xml)22
-rw-r--r--orgfoxttrss/src/main/res/drawable/counter_background_selected_light.xml (renamed from res/drawable/counter_background_selected_light.xml)22
-rw-r--r--orgfoxttrss/src/main/res/drawable/counter_background_sepia.xml (renamed from res/drawable/counter_background_sepia.xml)22
-rw-r--r--orgfoxttrss/src/main/res/drawable/flavor_image_border.xml (renamed from res/drawable/flavor_image_border.xml)20
-rw-r--r--orgfoxttrss/src/main/res/drawable/headline_row.xml (renamed from res/drawable/headline_row.xml)36
-rw-r--r--orgfoxttrss/src/main/res/drawable/headline_row_selected.xml (renamed from res/drawable/headline_row_selected.xml)36
-rw-r--r--orgfoxttrss/src/main/res/drawable/headline_row_selected_sepia.xml (renamed from res/drawable/headline_row_selected_sepia.xml)36
-rw-r--r--orgfoxttrss/src/main/res/drawable/headline_row_sepia.xml (renamed from res/drawable/headline_row_sepia.xml)36
-rw-r--r--orgfoxttrss/src/main/res/drawable/headline_row_unread.xml (renamed from res/drawable/headline_row_unread.xml)36
-rw-r--r--orgfoxttrss/src/main/res/drawable/headline_row_unread_sepia.xml (renamed from res/drawable/headline_row_unread_sepia.xml)36
-rw-r--r--orgfoxttrss/src/main/res/drawable/ics_divider_vertical.xml (renamed from res/drawable/ics_divider_vertical.xml)10
-rw-r--r--orgfoxttrss/src/main/res/drawable/ics_divider_vertical_gray.xml (renamed from res/drawable/ics_divider_vertical_gray.xml)10
-rw-r--r--orgfoxttrss/src/main/res/drawable/paper_sepia.xml (renamed from res/drawable/paper_sepia.xml)6
-rw-r--r--orgfoxttrss/src/main/res/drawable/s_dashclock.svg (renamed from res/drawable/s_dashclock.svg)0
-rw-r--r--orgfoxttrss/src/main/res/drawable/s_headline_published.svg (renamed from res/drawable/s_headline_published.svg)0
-rw-r--r--orgfoxttrss/src/main/res/drawable/s_headline_unpublished.svg (renamed from res/drawable/s_headline_unpublished.svg)0
-rw-r--r--orgfoxttrss/src/main/res/drawable/s_icon.svg (renamed from res/drawable/s_icon.svg)0
-rw-r--r--orgfoxttrss/src/main/res/drawable/s_marked.svg (renamed from res/drawable/s_marked.svg)0
-rw-r--r--orgfoxttrss/src/main/res/drawable/s_marked_bw.svg (renamed from res/drawable/s_marked_bw.svg)0
-rw-r--r--orgfoxttrss/src/main/res/drawable/s_marked_bw_full.svg (renamed from res/drawable/s_marked_bw_full.svg)0
-rw-r--r--orgfoxttrss/src/main/res/drawable/s_menu_attaches_light.svg (renamed from res/drawable/s_menu_attaches_light.svg)0
-rw-r--r--orgfoxttrss/src/main/res/drawable/s_menu_marked.svg (renamed from res/drawable/s_menu_marked.svg)0
-rw-r--r--orgfoxttrss/src/main/res/drawable/s_menu_published_light.svg (renamed from res/drawable/s_menu_published_light.svg)0
-rw-r--r--orgfoxttrss/src/main/res/drawable/s_menu_unpublished_light.svg (renamed from res/drawable/s_menu_unpublished_light.svg)0
-rw-r--r--orgfoxttrss/src/main/res/drawable/s_prev_article.svg (renamed from res/drawable/s_prev_article.svg)0
-rw-r--r--orgfoxttrss/src/main/res/drawable/shadow.xml (renamed from res/drawable/shadow.xml)10
-rw-r--r--orgfoxttrss/src/main/res/drawable/shadow_feeds.xml (renamed from res/drawable/shadow_feeds.xml)12
-rw-r--r--orgfoxttrss/src/main/res/drawable/shadow_feeds_gray.xml (renamed from res/drawable/shadow_feeds_gray.xml)12
-rw-r--r--orgfoxttrss/src/main/res/drawable/shadow_feeds_sepia.xml (renamed from res/drawable/shadow_feeds_sepia.xml)12
-rw-r--r--orgfoxttrss/src/main/res/drawable/shadow_headlines.xml (renamed from res/drawable/shadow_headlines.xml)12
-rw-r--r--orgfoxttrss/src/main/res/drawable/shadow_headlines_gray.xml (renamed from res/drawable/shadow_headlines_gray.xml)12
-rw-r--r--orgfoxttrss/src/main/res/drawable/shadow_headlines_sepia.xml (renamed from res/drawable/shadow_headlines_sepia.xml)12
-rw-r--r--orgfoxttrss/src/main/res/layout-sw600dp-land/headlines.xml (renamed from res/layout-sw700dp/headlines.xml)108
-rw-r--r--orgfoxttrss/src/main/res/layout-sw600dp-land/headlines_articles.xml (renamed from res/layout-sw600dp-land/headlines_articles.xml)112
-rw-r--r--orgfoxttrss/src/main/res/layout-sw600dp-port/headlines.xml (renamed from res/layout-sw600dp-port/headlines.xml)68
-rw-r--r--orgfoxttrss/src/main/res/layout-sw600dp-port/headlines_articles.xml (renamed from res/layout-sw600dp-port/headlines_articles.xml)110
-rw-r--r--orgfoxttrss/src/main/res/layout-sw700dp/headlines.xml (renamed from res/layout-sw600dp-land/headlines.xml)108
-rw-r--r--orgfoxttrss/src/main/res/layout-sw700dp/headlines_articles.xml (renamed from res/layout-sw700dp/headlines_articles.xml)112
-rw-r--r--orgfoxttrss/src/main/res/layout/article_fragment.xml (renamed from res/layout/article_fragment.xml)204
-rw-r--r--orgfoxttrss/src/main/res/layout/article_fragment_compat.xml (renamed from res/layout/article_fragment_compat.xml)0
-rw-r--r--orgfoxttrss/src/main/res/layout/article_pager.xml (renamed from res/layout/article_pager.xml)42
-rw-r--r--orgfoxttrss/src/main/res/layout/cats_fragment.xml (renamed from res/layout/cats_fragment.xml)86
-rw-r--r--orgfoxttrss/src/main/res/layout/dummy_fragment.xml (renamed from res/layout/dummy_fragment.xml)12
-rw-r--r--orgfoxttrss/src/main/res/layout/feeds.xml (renamed from res/layout/feeds.xml)56
-rw-r--r--orgfoxttrss/src/main/res/layout/feeds_fragment.xml (renamed from res/layout/feeds_fragment.xml)86
-rw-r--r--orgfoxttrss/src/main/res/layout/feeds_row.xml (renamed from res/layout/feeds_row.xml)0
-rw-r--r--orgfoxttrss/src/main/res/layout/feeds_row_selected.xml (renamed from res/layout/feeds_row_selected.xml)0
-rw-r--r--orgfoxttrss/src/main/res/layout/headlines.xml (renamed from res/layout/headlines.xml)56
-rw-r--r--orgfoxttrss/src/main/res/layout/headlines_articles.xml (renamed from res/layout/headlines_articles.xml)98
-rw-r--r--orgfoxttrss/src/main/res/layout/headlines_fragment.xml (renamed from res/layout/headlines_fragment.xml)92
-rw-r--r--orgfoxttrss/src/main/res/layout/headlines_row.xml (renamed from res/layout/headlines_row.xml)322
-rw-r--r--orgfoxttrss/src/main/res/layout/headlines_row_loadmore.xml (renamed from res/layout/headlines_row_loadmore.xml)48
-rw-r--r--orgfoxttrss/src/main/res/layout/headlines_row_selected.xml (renamed from res/layout/headlines_row_selected.xml)318
-rw-r--r--orgfoxttrss/src/main/res/layout/headlines_row_selected_unread.xml (renamed from res/layout/headlines_row_selected_unread.xml)322
-rw-r--r--orgfoxttrss/src/main/res/layout/headlines_row_unread.xml (renamed from res/layout/headlines_row_unread.xml)318
-rw-r--r--orgfoxttrss/src/main/res/layout/loading_fragment.xml (renamed from res/layout/loading_fragment.xml)28
-rw-r--r--orgfoxttrss/src/main/res/layout/login.xml (renamed from res/layout/login.xml)28
-rw-r--r--orgfoxttrss/src/main/res/layout/select_font_size_dialog.xml (renamed from res/layout/select_font_size_dialog.xml)42
-rw-r--r--orgfoxttrss/src/main/res/layout/share.xml (renamed from res/layout/share.xml)108
-rw-r--r--orgfoxttrss/src/main/res/layout/subscribe.xml (renamed from res/layout/subscribe.xml)100
-rw-r--r--orgfoxttrss/src/main/res/layout/tasker_settings.xml (renamed from res/layout/tasker_settings.xml)70
-rw-r--r--orgfoxttrss/src/main/res/layout/widget_small.xml (renamed from res/layout/widget_small.xml)82
-rw-r--r--orgfoxttrss/src/main/res/menu/article_content_img_context_menu.xml (renamed from res/menu/article_content_img_context_menu.xml)0
-rw-r--r--orgfoxttrss/src/main/res/menu/article_link_context_menu.xml (renamed from res/menu/article_link_context_menu.xml)0
-rw-r--r--orgfoxttrss/src/main/res/menu/category_menu.xml (renamed from res/menu/category_menu.xml)0
-rw-r--r--orgfoxttrss/src/main/res/menu/feed_menu.xml (renamed from res/menu/feed_menu.xml)0
-rw-r--r--orgfoxttrss/src/main/res/menu/headlines_action_menu.xml (renamed from res/menu/headlines_action_menu.xml)0
-rw-r--r--orgfoxttrss/src/main/res/menu/headlines_context_menu.xml (renamed from res/menu/headlines_context_menu.xml)0
-rw-r--r--orgfoxttrss/src/main/res/menu/main_menu.xml (renamed from res/menu/main_menu.xml)0
-rw-r--r--orgfoxttrss/src/main/res/menu/offline_menu.xml (renamed from res/menu/offline_menu.xml)0
-rw-r--r--orgfoxttrss/src/main/res/menu/share_menu.xml (renamed from res/menu/share_menu.xml)0
-rw-r--r--orgfoxttrss/src/main/res/values-cs/strings.xml (renamed from res/values-cs/strings.xml)0
-rw-r--r--orgfoxttrss/src/main/res/values-de/strings.xml (renamed from res/values-de/strings.xml)2
-rw-r--r--orgfoxttrss/src/main/res/values-es/strings.xml (renamed from res/values-es/strings.xml)0
-rw-r--r--orgfoxttrss/src/main/res/values-fr/strings.xml (renamed from res/values-fr/strings.xml)0
-rw-r--r--orgfoxttrss/src/main/res/values-it/strings.xml (renamed from res/values-it/strings.xml)0
-rw-r--r--orgfoxttrss/src/main/res/values-ja/strings.xml (renamed from res/values-ja/strings.xml)440
-rw-r--r--orgfoxttrss/src/main/res/values-pl/strings.xml (renamed from res/values-pl/strings.xml)0
-rw-r--r--orgfoxttrss/src/main/res/values-pt-rBR/strings.xml (renamed from res/values-pt-rBR/strings.xml)0
-rw-r--r--orgfoxttrss/src/main/res/values-v11/style.xml (renamed from res/values-v11/style.xml)0
-rw-r--r--orgfoxttrss/src/main/res/values-v19/style.xml (renamed from res/values-v19/style.xml)44
-rw-r--r--orgfoxttrss/src/main/res/values/arrays.xml (renamed from res/values/arrays.xml)0
-rw-r--r--orgfoxttrss/src/main/res/values/attrs.xml (renamed from res/values/attrs.xml)60
-rw-r--r--orgfoxttrss/src/main/res/values/resources.xml (renamed from res/values/resources.xml)26
-rw-r--r--orgfoxttrss/src/main/res/values/strings.xml (renamed from res/values/strings.xml)0
-rw-r--r--orgfoxttrss/src/main/res/values/style.xml (renamed from res/values/style.xml)0
-rw-r--r--orgfoxttrss/src/main/res/xml/preferences.xml (renamed from res/xml/preferences.xml)392
-rw-r--r--orgfoxttrss/src/main/res/xml/widget_small.xml (renamed from res/xml/widget_small.xml)14
-rw-r--r--proguard.cfg40
-rw-r--r--project.properties16
-rw-r--r--settings.gradle2
-rw-r--r--taskerlocaleapi/build.gradle19
-rw-r--r--taskerlocaleapi/lint.xml3
-rw-r--r--taskerlocaleapi/src/main/AndroidManifest.xml13
-rw-r--r--taskerlocaleapi/src/main/java/com/twofortyfouram/locale/BreadCrumber.java90
-rw-r--r--taskerlocaleapi/src/main/java/com/twofortyfouram/locale/Constants.java48
-rw-r--r--taskerlocaleapi/src/main/java/com/twofortyfouram/locale/Intent.java195
-rw-r--r--taskerlocaleapi/src/main/java/com/twofortyfouram/locale/PackageUtilities.java123
-rw-r--r--taskerlocaleapi/src/main/res/drawable-hdpi-v14/twofortyfouram_locale_ic_menu_dontsave.pngbin0 -> 243 bytes
-rw-r--r--taskerlocaleapi/src/main/res/drawable-hdpi-v14/twofortyfouram_locale_ic_menu_help.pngbin0 -> 314 bytes
-rw-r--r--taskerlocaleapi/src/main/res/drawable-hdpi-v14/twofortyfouram_locale_ic_menu_save.pngbin0 -> 953 bytes
-rw-r--r--taskerlocaleapi/src/main/res/drawable-ldpi-v14/twofortyfouram_locale_ic_menu_dontsave.pngbin0 -> 162 bytes
-rw-r--r--taskerlocaleapi/src/main/res/drawable-ldpi-v14/twofortyfouram_locale_ic_menu_help.pngbin0 -> 208 bytes
-rw-r--r--taskerlocaleapi/src/main/res/drawable-ldpi-v14/twofortyfouram_locale_ic_menu_save.pngbin0 -> 512 bytes
-rw-r--r--taskerlocaleapi/src/main/res/drawable-mdpi-v14/twofortyfouram_locale_ic_menu_dontsave.pngbin0 -> 195 bytes
-rw-r--r--taskerlocaleapi/src/main/res/drawable-mdpi-v14/twofortyfouram_locale_ic_menu_help.pngbin0 -> 248 bytes
-rw-r--r--taskerlocaleapi/src/main/res/drawable-mdpi-v14/twofortyfouram_locale_ic_menu_save.pngbin0 -> 707 bytes
-rw-r--r--taskerlocaleapi/src/main/res/drawable-xhdpi-v14/twofortyfouram_locale_ic_menu_dontsave.pngbin0 -> 282 bytes
-rw-r--r--taskerlocaleapi/src/main/res/drawable-xhdpi-v14/twofortyfouram_locale_ic_menu_help.pngbin0 -> 373 bytes
-rw-r--r--taskerlocaleapi/src/main/res/drawable-xhdpi-v14/twofortyfouram_locale_ic_menu_save.pngbin0 -> 1242 bytes
-rw-r--r--taskerlocaleapi/src/main/res/drawable/twofortyfouram_locale_ic_menu_dontsave.xml17
-rw-r--r--taskerlocaleapi/src/main/res/drawable/twofortyfouram_locale_ic_menu_help.xml17
-rw-r--r--taskerlocaleapi/src/main/res/drawable/twofortyfouram_locale_ic_menu_save.xml17
-rw-r--r--taskerlocaleapi/src/main/res/menu/twofortyfouram_locale_help_save_dontsave.xml48
-rw-r--r--taskerlocaleapi/src/main/res/values-cs/strings-cs.xml23
-rw-r--r--taskerlocaleapi/src/main/res/values-de/strings-de.xml23
-rw-r--r--taskerlocaleapi/src/main/res/values-es/strings-es.xml23
-rw-r--r--taskerlocaleapi/src/main/res/values-fr/strings-fr.xml23
-rw-r--r--taskerlocaleapi/src/main/res/values-hdpi/integers.xml19
-rw-r--r--taskerlocaleapi/src/main/res/values-it/strings-it.xml23
-rw-r--r--taskerlocaleapi/src/main/res/values-ja/strings-ja.xml23
-rw-r--r--taskerlocaleapi/src/main/res/values-ko/strings-ko.xml23
-rw-r--r--taskerlocaleapi/src/main/res/values-ldpi/integers.xml19
-rw-r--r--taskerlocaleapi/src/main/res/values-mdpi/integers.xml20
-rw-r--r--taskerlocaleapi/src/main/res/values-nb/strings-nb.xml23
-rw-r--r--taskerlocaleapi/src/main/res/values-nl/strings-nl.xml23
-rw-r--r--taskerlocaleapi/src/main/res/values-pt-rBR/strings-pt-rBR.xml23
-rw-r--r--taskerlocaleapi/src/main/res/values-ru/strings-ru.xml23
-rw-r--r--taskerlocaleapi/src/main/res/values-sv/strings-sv.xml23
-rw-r--r--taskerlocaleapi/src/main/res/values-v11/styles.xml23
-rw-r--r--taskerlocaleapi/src/main/res/values-v14/styles.xml23
-rw-r--r--taskerlocaleapi/src/main/res/values-v9/styles.xml26
-rw-r--r--taskerlocaleapi/src/main/res/values-vi/strings-vi.xml23
-rw-r--r--taskerlocaleapi/src/main/res/values/id.xml27
-rw-r--r--taskerlocaleapi/src/main/res/values/strings-en.xml32
-rw-r--r--taskerlocaleapi/src/main/res/values/styles.xml26
-rw-r--r--taskerlocaleapi/taskerlocaleapi.iml87
283 files changed, 5145 insertions, 3562 deletions
diff --git a/.classpath b/.classpath
deleted file mode 100644
index aa361afe..00000000
--- a/.classpath
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" path="gen"/>
- <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
- <classpathentry kind="lib" path="libs/gson-1.7.1.jar"/>
- <classpathentry kind="lib" path="libs/jsoup-1.6.1.jar"/>
- <classpathentry kind="lib" path="libs/android-support-v4.jar"/>
- <classpathentry kind="lib" path="libs/dashclock-api-r1.1.jar"/>
- <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
- <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
- <classpathentry kind="output" path="bin/classes"/>
-</classpath>
diff --git a/.gitignore b/.gitignore
index ac468d1a..eca7ace6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,12 @@
-/gen
-/bin
+bin/
+gen/
+.gradle/
+build/
+local.properties
+import-summary.txt
Thumbs.db
+.idea/workspace.xml
+.idea/tasks.xml
+.idea/datasources.xml
+.idea/dataSources.ids
+.idea/libraries
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 00000000..4dbe2d86
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+Tiny-Tiny-RSS-for-Honeycomb \ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 00000000..217af471
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="CompilerConfiguration">
+ <option name="DEFAULT_COMPILER" value="Javac" />
+ <resourceExtensions />
+ <wildcardResourcePatterns>
+ <entry name="!?*.java" />
+ <entry name="!?*.form" />
+ <entry name="!?*.class" />
+ <entry name="!?*.groovy" />
+ <entry name="!?*.scala" />
+ <entry name="!?*.flex" />
+ <entry name="!?*.kt" />
+ <entry name="!?*.clj" />
+ </wildcardResourcePatterns>
+ <annotationProcessing>
+ <profile default="true" name="Default" enabled="false">
+ <processorPath useClasspath="true" />
+ </profile>
+ </annotationProcessing>
+ </component>
+</project>
+
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
new file mode 100644
index 00000000..e7bedf33
--- /dev/null
+++ b/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+<component name="CopyrightManager">
+ <settings default="" />
+</component> \ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 00000000..e206d70d
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
+</project>
+
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 00000000..99d0e7b4
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="GradleSettings">
+ <option name="linkedExternalProjectsSettings">
+ <GradleProjectSettings>
+ <option name="distributionType" value="DEFAULT_WRAPPED" />
+ <option name="externalProjectPath" value="$PROJECT_DIR$" />
+ <option name="modules">
+ <set>
+ <option value="$PROJECT_DIR$" />
+ <option value="$PROJECT_DIR$/orgfoxttrss" />
+ <option value="$PROJECT_DIR$/taskerlocaleapi" />
+ </set>
+ </option>
+ </GradleProjectSettings>
+ </option>
+ </component>
+</project>
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 00000000..671eadea
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="EntryPointsManager">
+ <entry_points version="2.0" />
+ </component>
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
+ <output url="file://$PROJECT_DIR$/build/classes" />
+ </component>
+ <component name="masterDetails">
+ <states>
+ <state key="ProjectJDKs.UI">
+ <settings>
+ <last-edited>Android API 19 Platform</last-edited>
+ <splitter-proportions>
+ <option name="proportions">
+ <list>
+ <option value="0.2" />
+ </list>
+ </option>
+ </splitter-proportions>
+ </settings>
+ </state>
+ </states>
+ </component>
+</project>
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 00000000..d3fd72d4
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectModuleManager">
+ <modules>
+ <module fileurl="file://$PROJECT_DIR$/Tiny-Tiny-RSS-for-Honeycomb.iml" filepath="$PROJECT_DIR$/Tiny-Tiny-RSS-for-Honeycomb.iml" />
+ <module fileurl="file://$PROJECT_DIR$/orgfoxttrss/orgfoxttrss.iml" filepath="$PROJECT_DIR$/orgfoxttrss/orgfoxttrss.iml" />
+ <module fileurl="file://$PROJECT_DIR$/taskerlocaleapi/taskerlocaleapi.iml" filepath="$PROJECT_DIR$/taskerlocaleapi/taskerlocaleapi.iml" />
+ </modules>
+ </component>
+</project>
+
diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml
new file mode 100644
index 00000000..922003b8
--- /dev/null
+++ b/.idea/scopes/scope_settings.xml
@@ -0,0 +1,5 @@
+<component name="DependencyValidationManager">
+ <state>
+ <option name="SKIP_IMPORT_STATEMENTS" value="false" />
+ </state>
+</component> \ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 00000000..def6a6a1
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="" vcs="" />
+ </component>
+</project>
+
diff --git a/.project b/.project
deleted file mode 100644
index 4a90fe22..00000000
--- a/.project
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.fox.ttrss</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.android.ide.eclipse.adt.ApkBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index ef1b5552..00000000
--- a/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/org/fox/ttrss/util/EnlargingImageView.java=UTF-8
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 54e493c0..00000000
--- a/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,11 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/README.md b/README.md
deleted file mode 100644
index 29693349..00000000
--- a/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-Tiny Tiny RSS client for Android
-================================
-
-http://tt-rss.org/tt-rss-android
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-Copyright (c) 2011 Andrew Dolgov (unless explicitly stated otherwise).
-
-## See also
-
-* FAQ: http://tt-rss.org/redmine/projects/tt-rss-android/wiki/#FAQ
-* Forum: http://tt-rss.org/forum
diff --git a/Tiny-Tiny-RSS-for-Honeycomb.iml b/Tiny-Tiny-RSS-for-Honeycomb.iml
new file mode 100644
index 00000000..0bb6048a
--- /dev/null
+++ b/Tiny-Tiny-RSS-for-Honeycomb.iml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
+ <component name="FacetManager">
+ <facet type="java-gradle" name="Java-Gradle">
+ <configuration>
+ <option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
+ </configuration>
+ </facet>
+ </component>
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <excludeFolder url="file://$MODULE_DIR$/.gradle" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+</module>
+
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 00000000..aa6500ab
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,17 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+buildscript {
+ repositories {
+ jcenter()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:0.12.2'
+ }
+}
+
+allprojects {
+ repositories {
+ maven { url "http://dl.bintray.com/populov/maven" }
+ maven { url "http://jzaccone.github.io/SlidingMenu-aar" }
+ jcenter()
+ }
+}
diff --git a/default.properties b/default.properties
deleted file mode 100644
index ede6e6b8..00000000
--- a/default.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-# Project target.
-target=android-14
diff --git a/feature_graphic.png b/feature_graphic.png
deleted file mode 100644
index ba9f4ae1..00000000
--- a/feature_graphic.png
+++ /dev/null
Binary files differ
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 00000000..8c0fb64a
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 00000000..1e61d1fd
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Apr 10 15:27:10 PDT 2013
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
diff --git a/gradlew b/gradlew
new file mode 100644
index 00000000..91a7e269
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 00000000..8a0b282a
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/ic_launcher-web.png b/ic_launcher-web.png
deleted file mode 100644
index 9da5905c..00000000
--- a/ic_launcher-web.png
+++ /dev/null
Binary files differ
diff --git a/libs/android-support-v4.jar b/libs/android-support-v4.jar
deleted file mode 100644
index c31cede4..00000000
--- a/libs/android-support-v4.jar
+++ /dev/null
Binary files differ
diff --git a/libs/gson-1.7.1.jar b/libs/gson-1.7.1.jar
deleted file mode 100644
index acd16c06..00000000
--- a/libs/gson-1.7.1.jar
+++ /dev/null
Binary files differ
diff --git a/lint.xml b/lint.xml
deleted file mode 100644
index ee0eead5..00000000
--- a/lint.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<lint>
-</lint> \ No newline at end of file
diff --git a/orgfoxttrss/build.gradle b/orgfoxttrss/build.gradle
new file mode 100644
index 00000000..82b24493
--- /dev/null
+++ b/orgfoxttrss/build.gradle
@@ -0,0 +1,32 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 19
+ buildToolsVersion "20.0.0"
+
+ defaultConfig {
+ applicationId "org.fox.ttrss"
+ minSdkVersion 8
+ targetSdkVersion 19
+ }
+
+ buildTypes {
+ release {
+ runProguard false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+ }
+ }
+}
+
+dependencies {
+ //compile project(':slidingMenulibrary')
+ compile 'com.jeremyfeinstein.slidingmenu:library:1.3@aar'
+ compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'
+ compile 'com.viewpagerindicator:library:2.4.1'
+ compile 'com.android.support:support-v4:19.1.0'
+ compile 'com.google.code.gson:gson:1.7.1'
+ compile 'com.android.support:appcompat-v7:18.0.0'
+ compile files('libs/dashclock-api-r1.1.jar')
+ compile files('libs/jsoup-1.6.1.jar')
+ compile files('libs/universal-image-loader-1.9.3.jar')
+}
diff --git a/libs/dashclock-api-r1.1.jar b/orgfoxttrss/libs/dashclock-api-r1.1.jar
index 3a4e00d0..3a4e00d0 100644
--- a/libs/dashclock-api-r1.1.jar
+++ b/orgfoxttrss/libs/dashclock-api-r1.1.jar
Binary files differ
diff --git a/libs/jsoup-1.6.1.jar b/orgfoxttrss/libs/jsoup-1.6.1.jar
index 87126a49..87126a49 100644
--- a/libs/jsoup-1.6.1.jar
+++ b/orgfoxttrss/libs/jsoup-1.6.1.jar
Binary files differ
diff --git a/libs/universal-image-loader-1.9.3.jar b/orgfoxttrss/libs/universal-image-loader-1.9.3.jar
index e8ca33b7..e8ca33b7 100644
--- a/libs/universal-image-loader-1.9.3.jar
+++ b/orgfoxttrss/libs/universal-image-loader-1.9.3.jar
Binary files differ
diff --git a/orgfoxttrss/lint.xml b/orgfoxttrss/lint.xml
new file mode 100644
index 00000000..8423c0ef
--- /dev/null
+++ b/orgfoxttrss/lint.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<lint>
+</lint> \ No newline at end of file
diff --git a/orgfoxttrss/orgfoxttrss.iml b/orgfoxttrss/orgfoxttrss.iml
new file mode 100644
index 00000000..0a72db93
--- /dev/null
+++ b/orgfoxttrss/orgfoxttrss.iml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="Tiny-Tiny-RSS-for-Honeycomb" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
+ <component name="FacetManager">
+ <facet type="android-gradle" name="Android-Gradle">
+ <configuration>
+ <option name="GRADLE_PROJECT_PATH" value=":orgfoxttrss" />
+ </configuration>
+ </facet>
+ <facet type="android" name="Android">
+ <configuration>
+ <option name="SELECTED_BUILD_VARIANT" value="debug" />
+ <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
+ <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugJava" />
+ <option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" />
+ <option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" />
+ <option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugTestSources" />
+ <option name="ALLOW_USER_CONFIGURATION" value="false" />
+ <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
+ <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
+ <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
+ <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
+ </configuration>
+ </facet>
+ </component>
+ <component name="NewModuleRootManager" inherit-compiler-output="false">
+ <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/test/debug" isTestSource="true" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/test/debug" isTestSource="true" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/test/debug" isTestSource="true" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/test/debug" isTestSource="true" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/test/debug" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/coverage-instrumented-classes" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/libs" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/ndk" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
+ <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
+ </content>
+ <orderEntry type="jdk" jdkName="Android API 19 Platform" jdkType="Android SDK" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" exported="" name="dashclock-api-r1.1" level="project" />
+ <orderEntry type="library" exported="" name="systembartint-1.0.3" level="project" />
+ <orderEntry type="library" exported="" name="jsoup-1.6.1" level="project" />
+ <orderEntry type="library" exported="" name="support-v4-19.1.0" level="project" />
+ <orderEntry type="library" exported="" name="library-1.3" level="project" />
+ <orderEntry type="library" exported="" name="appcompat-v7-18.0.0" level="project" />
+ <orderEntry type="library" exported="" name="gson-1.7.1" level="project" />
+ <orderEntry type="library" exported="" name="library-2.4.1" level="project" />
+ <orderEntry type="library" exported="" name="universal-image-loader-1.9.3" level="project" />
+ </component>
+</module>
+
diff --git a/AndroidManifest.xml b/orgfoxttrss/src/main/AndroidManifest.xml
index 684cc438..684cc438 100644
--- a/AndroidManifest.xml
+++ b/orgfoxttrss/src/main/AndroidManifest.xml
diff --git a/src/android/support/v4/app/ClassloaderWorkaroundFragmentStatePagerAdapter.java b/orgfoxttrss/src/main/java/android/support/v4/app/ClassloaderWorkaroundFragmentStatePagerAdapter.java
index c86e16d7..dd67d599 100644
--- a/src/android/support/v4/app/ClassloaderWorkaroundFragmentStatePagerAdapter.java
+++ b/orgfoxttrss/src/main/java/android/support/v4/app/ClassloaderWorkaroundFragmentStatePagerAdapter.java
@@ -1,39 +1,39 @@
-package android.support.v4.app;
-
-// http://code.google.com/p/android/issues/detail?id=37484
-// Thanks for your amazing code quality, Google.
-
-import android.os.Bundle;
-import android.view.ViewGroup;
-
-public class ClassloaderWorkaroundFragmentStatePagerAdapter extends
- FragmentStatePagerAdapter {
-
- public ClassloaderWorkaroundFragmentStatePagerAdapter(FragmentManager fm) {
- super(fm);
- // TODO Auto-generated constructor stub
- }
-
- @Override
- public Fragment getItem(int arg0) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Object instantiateItem(ViewGroup container, int position) {
- Fragment f = (Fragment) super.instantiateItem(container, position);
- Bundle savedFragmentState = f.mSavedFragmentState;
- if (savedFragmentState != null) {
- savedFragmentState.setClassLoader(f.getClass().getClassLoader());
- }
- return f;
- }
-
- @Override
- public int getCount() {
- // TODO Auto-generated method stub
- return 0;
- }
-
-}
+package android.support.v4.app;
+
+// http://code.google.com/p/android/issues/detail?id=37484
+// Thanks for your amazing code quality, Google.
+
+import android.os.Bundle;
+import android.view.ViewGroup;
+
+public class ClassloaderWorkaroundFragmentStatePagerAdapter extends
+ FragmentStatePagerAdapter {
+
+ public ClassloaderWorkaroundFragmentStatePagerAdapter(FragmentManager fm) {
+ super(fm);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public Fragment getItem(int arg0) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Object instantiateItem(ViewGroup container, int position) {
+ Fragment f = (Fragment) super.instantiateItem(container, position);
+ Bundle savedFragmentState = f.mSavedFragmentState;
+ if (savedFragmentState != null) {
+ savedFragmentState.setClassLoader(f.getClass().getClassLoader());
+ }
+ return f;
+ }
+
+ @Override
+ public int getCount() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+}
diff --git a/src/org/fox/ttrss/ApiRequest.java b/orgfoxttrss/src/main/java/org/fox/ttrss/ApiRequest.java
index 65e97e8e..65e97e8e 100644
--- a/src/org/fox/ttrss/ApiRequest.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/ApiRequest.java
diff --git a/src/org/fox/ttrss/ArticleFragment.java b/orgfoxttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
index 4a568d3c..4a568d3c 100644
--- a/src/org/fox/ttrss/ArticleFragment.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
diff --git a/src/org/fox/ttrss/ArticlePager.java b/orgfoxttrss/src/main/java/org/fox/ttrss/ArticlePager.java
index ee940e79..ee940e79 100644
--- a/src/org/fox/ttrss/ArticlePager.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/ArticlePager.java
diff --git a/src/org/fox/ttrss/CommonActivity.java b/orgfoxttrss/src/main/java/org/fox/ttrss/CommonActivity.java
index 5a64ae57..5a64ae57 100644
--- a/src/org/fox/ttrss/CommonActivity.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/CommonActivity.java
diff --git a/src/org/fox/ttrss/DashClock.java b/orgfoxttrss/src/main/java/org/fox/ttrss/DashClock.java
index b3491972..b3491972 100644
--- a/src/org/fox/ttrss/DashClock.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/DashClock.java
diff --git a/src/org/fox/ttrss/DummyFragment.java b/orgfoxttrss/src/main/java/org/fox/ttrss/DummyFragment.java
index 7bf799a9..7bf799a9 100644
--- a/src/org/fox/ttrss/DummyFragment.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/DummyFragment.java
diff --git a/src/org/fox/ttrss/FeedCategoriesFragment.java b/orgfoxttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java
index 4439a943..4439a943 100644
--- a/src/org/fox/ttrss/FeedCategoriesFragment.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java
diff --git a/src/org/fox/ttrss/FeedsActivity.java b/orgfoxttrss/src/main/java/org/fox/ttrss/FeedsActivity.java
index 90e2c118..90e2c118 100644
--- a/src/org/fox/ttrss/FeedsActivity.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/FeedsActivity.java
diff --git a/src/org/fox/ttrss/FeedsFragment.java b/orgfoxttrss/src/main/java/org/fox/ttrss/FeedsFragment.java
index 7c974809..7c974809 100644
--- a/src/org/fox/ttrss/FeedsFragment.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/FeedsFragment.java
diff --git a/src/org/fox/ttrss/GlobalState.java b/orgfoxttrss/src/main/java/org/fox/ttrss/GlobalState.java
index 6f81fc5d..6f81fc5d 100644
--- a/src/org/fox/ttrss/GlobalState.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/GlobalState.java
diff --git a/src/org/fox/ttrss/HeadlinesActivity.java b/orgfoxttrss/src/main/java/org/fox/ttrss/HeadlinesActivity.java
index c4e0f0cc..c4e0f0cc 100644
--- a/src/org/fox/ttrss/HeadlinesActivity.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/HeadlinesActivity.java
diff --git a/src/org/fox/ttrss/HeadlinesEventListener.java b/orgfoxttrss/src/main/java/org/fox/ttrss/HeadlinesEventListener.java
index 5494bb2b..5494bb2b 100644
--- a/src/org/fox/ttrss/HeadlinesEventListener.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/HeadlinesEventListener.java
diff --git a/src/org/fox/ttrss/HeadlinesFragment.java b/orgfoxttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
index 32670252..32670252 100644
--- a/src/org/fox/ttrss/HeadlinesFragment.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
diff --git a/src/org/fox/ttrss/LoadingFragment.java b/orgfoxttrss/src/main/java/org/fox/ttrss/LoadingFragment.java
index f0802b0a..f0802b0a 100644
--- a/src/org/fox/ttrss/LoadingFragment.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/LoadingFragment.java
diff --git a/src/org/fox/ttrss/OnlineActivity.java b/orgfoxttrss/src/main/java/org/fox/ttrss/OnlineActivity.java
index e33a02b7..e33a02b7 100644
--- a/src/org/fox/ttrss/OnlineActivity.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/OnlineActivity.java
diff --git a/src/org/fox/ttrss/PreferencesActivity.java b/orgfoxttrss/src/main/java/org/fox/ttrss/PreferencesActivity.java
index f42154a7..f42154a7 100644
--- a/src/org/fox/ttrss/PreferencesActivity.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/PreferencesActivity.java
diff --git a/src/org/fox/ttrss/offline/OfflineActivity.java b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineActivity.java
index fd05b596..fd05b596 100644
--- a/src/org/fox/ttrss/offline/OfflineActivity.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineActivity.java
diff --git a/src/org/fox/ttrss/offline/OfflineArticleFragment.java b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java
index 985150a9..985150a9 100644
--- a/src/org/fox/ttrss/offline/OfflineArticleFragment.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java
diff --git a/src/org/fox/ttrss/offline/OfflineArticlePager.java b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineArticlePager.java
index 510ab97b..510ab97b 100644
--- a/src/org/fox/ttrss/offline/OfflineArticlePager.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineArticlePager.java
diff --git a/src/org/fox/ttrss/offline/OfflineDownloadService.java b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineDownloadService.java
index 2d65c890..2d65c890 100644
--- a/src/org/fox/ttrss/offline/OfflineDownloadService.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineDownloadService.java
diff --git a/src/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java
index 8fde8176..8fde8176 100644
--- a/src/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java
diff --git a/src/org/fox/ttrss/offline/OfflineFeedsActivity.java b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsActivity.java
index f7263fe0..f7263fe0 100644
--- a/src/org/fox/ttrss/offline/OfflineFeedsActivity.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsActivity.java
diff --git a/src/org/fox/ttrss/offline/OfflineFeedsFragment.java b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsFragment.java
index 8c04d0cd..8c04d0cd 100644
--- a/src/org/fox/ttrss/offline/OfflineFeedsFragment.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsFragment.java
diff --git a/src/org/fox/ttrss/offline/OfflineHeadlinesActivity.java b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesActivity.java
index de57c985..de57c985 100644
--- a/src/org/fox/ttrss/offline/OfflineHeadlinesActivity.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesActivity.java
diff --git a/src/org/fox/ttrss/offline/OfflineHeadlinesEventListener.java b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesEventListener.java
index 0818a66b..0818a66b 100644
--- a/src/org/fox/ttrss/offline/OfflineHeadlinesEventListener.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesEventListener.java
diff --git a/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
index 7f9d73f7..7f9d73f7 100644
--- a/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
diff --git a/src/org/fox/ttrss/offline/OfflineUploadService.java b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineUploadService.java
index 4c3349d4..4c3349d4 100644
--- a/src/org/fox/ttrss/offline/OfflineUploadService.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/offline/OfflineUploadService.java
diff --git a/src/org/fox/ttrss/share/CommonActivity.java b/orgfoxttrss/src/main/java/org/fox/ttrss/share/CommonActivity.java
index 63458532..63458532 100644
--- a/src/org/fox/ttrss/share/CommonActivity.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/share/CommonActivity.java
diff --git a/src/org/fox/ttrss/share/CommonShareActivity.java b/orgfoxttrss/src/main/java/org/fox/ttrss/share/CommonShareActivity.java
index 165d38f7..165d38f7 100644
--- a/src/org/fox/ttrss/share/CommonShareActivity.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/share/CommonShareActivity.java
diff --git a/src/org/fox/ttrss/share/ShareActivity.java b/orgfoxttrss/src/main/java/org/fox/ttrss/share/ShareActivity.java
index dff48502..dff48502 100644
--- a/src/org/fox/ttrss/share/ShareActivity.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/share/ShareActivity.java
diff --git a/src/org/fox/ttrss/share/SubscribeActivity.java b/orgfoxttrss/src/main/java/org/fox/ttrss/share/SubscribeActivity.java
index bd7e964f..bd7e964f 100644
--- a/src/org/fox/ttrss/share/SubscribeActivity.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/share/SubscribeActivity.java
diff --git a/src/org/fox/ttrss/tasker/TaskerReceiver.java b/orgfoxttrss/src/main/java/org/fox/ttrss/tasker/TaskerReceiver.java
index 3981af7c..1b1351cb 100644
--- a/src/org/fox/ttrss/tasker/TaskerReceiver.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/tasker/TaskerReceiver.java
@@ -1,93 +1,93 @@
-package org.fox.ttrss.tasker;
-
-import org.fox.ttrss.ApiRequest;
-import org.fox.ttrss.CommonActivity;
-import org.fox.ttrss.OnlineActivity;
-import org.fox.ttrss.offline.OfflineDownloadService;
-import org.fox.ttrss.offline.OfflineUploadService;
-import org.fox.ttrss.util.SimpleLoginManager;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-import android.preference.PreferenceManager;
-import android.util.Log;
-import android.widget.Toast;
-
-public class TaskerReceiver extends BroadcastReceiver {
- private final String TAG = this.getClass().getSimpleName();
-
- @Override
- public void onReceive(Context context, Intent intent) {
- Log.d(TAG, "Got action: " + intent.getAction());
-
- final Context fContext = context;
-
- if (com.twofortyfouram.locale.Intent.ACTION_FIRE_SETTING.equals(intent.getAction())) {
-
- final Bundle settings = intent.getBundleExtra(com.twofortyfouram.locale.Intent.EXTRA_BUNDLE);
- final int actionId = settings != null ? settings.getInt("actionId", -1) : -1;
-
- Log.d(TAG, "received action id=" + actionId);
-
- SimpleLoginManager loginMgr = new SimpleLoginManager() {
-
- @Override
- protected void onLoginSuccess(int requestId, String sessionId, int apiLevel) {
-
- switch (actionId) {
- case TaskerSettingsActivity.ACTION_DOWNLOAD:
- if (true) {
- Intent intent = new Intent(fContext,
- OfflineDownloadService.class);
- intent.putExtra("sessionId", sessionId);
- intent.putExtra("batchMode", true);
-
- fContext.startService(intent);
- }
- break;
- case TaskerSettingsActivity.ACTION_UPLOAD:
- if (true) {
- Intent intent = new Intent(fContext,
- OfflineUploadService.class);
- intent.putExtra("sessionId", sessionId);
- intent.putExtra("batchMode", true);
-
- fContext.startService(intent);
- }
- break;
- default:
- Log.d(TAG, "unknown action id=" + actionId);
- }
- }
-
- @Override
- protected void onLoginFailed(int requestId, ApiRequest ar) {
- Toast toast = Toast.makeText(fContext, fContext.getString(ar.getErrorMessage()), Toast.LENGTH_SHORT);
- toast.show();
- }
-
- @Override
- protected void onLoggingIn(int requestId) {
- //
- }
- };
-
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
-
- String login = prefs.getString("login", "").trim();
- String password = prefs.getString("password", "").trim();
- String ttrssUrl = prefs.getString("ttrss_url", "").trim();
-
- if (ttrssUrl.equals("")) {
- Toast toast = Toast.makeText(fContext, "Could not download articles: not configured?", Toast.LENGTH_SHORT);
- toast.show();
- } else {
- loginMgr.logIn(context, 1, login, password);
- }
- }
- }
-
-}
+package org.fox.ttrss.tasker;
+
+import org.fox.ttrss.ApiRequest;
+import org.fox.ttrss.CommonActivity;
+import org.fox.ttrss.OnlineActivity;
+import org.fox.ttrss.offline.OfflineDownloadService;
+import org.fox.ttrss.offline.OfflineUploadService;
+import org.fox.ttrss.util.SimpleLoginManager;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.util.Log;
+import android.widget.Toast;
+
+public class TaskerReceiver extends BroadcastReceiver {
+ private final String TAG = this.getClass().getSimpleName();
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ Log.d(TAG, "Got action: " + intent.getAction());
+
+ final Context fContext = context;
+
+ if (com.twofortyfouram.locale.Intent.ACTION_FIRE_SETTING.equals(intent.getAction())) {
+
+ final Bundle settings = intent.getBundleExtra(com.twofortyfouram.locale.Intent.EXTRA_BUNDLE);
+ final int actionId = settings != null ? settings.getInt("actionId", -1) : -1;
+
+ Log.d(TAG, "received action id=" + actionId);
+
+ SimpleLoginManager loginMgr = new SimpleLoginManager() {
+
+ @Override
+ protected void onLoginSuccess(int requestId, String sessionId, int apiLevel) {
+
+ switch (actionId) {
+ case TaskerSettingsActivity.ACTION_DOWNLOAD:
+ if (true) {
+ Intent intent = new Intent(fContext,
+ OfflineDownloadService.class);
+ intent.putExtra("sessionId", sessionId);
+ intent.putExtra("batchMode", true);
+
+ fContext.startService(intent);
+ }
+ break;
+ case TaskerSettingsActivity.ACTION_UPLOAD:
+ if (true) {
+ Intent intent = new Intent(fContext,
+ OfflineUploadService.class);
+ intent.putExtra("sessionId", sessionId);
+ intent.putExtra("batchMode", true);
+
+ fContext.startService(intent);
+ }
+ break;
+ default:
+ Log.d(TAG, "unknown action id=" + actionId);
+ }
+ }
+
+ @Override
+ protected void onLoginFailed(int requestId, ApiRequest ar) {
+ Toast toast = Toast.makeText(fContext, fContext.getString(ar.getErrorMessage()), Toast.LENGTH_SHORT);
+ toast.show();
+ }
+
+ @Override
+ protected void onLoggingIn(int requestId) {
+ //
+ }
+ };
+
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+
+ String login = prefs.getString("login", "").trim();
+ String password = prefs.getString("password", "").trim();
+ String ttrssUrl = prefs.getString("ttrss_url", "").trim();
+
+ if (ttrssUrl.equals("")) {
+ Toast toast = Toast.makeText(fContext, "Could not download articles: not configured?", Toast.LENGTH_SHORT);
+ toast.show();
+ } else {
+ loginMgr.logIn(context, 1, login, password);
+ }
+ }
+ }
+
+}
diff --git a/src/org/fox/ttrss/tasker/TaskerSettingsActivity.java b/orgfoxttrss/src/main/java/org/fox/ttrss/tasker/TaskerSettingsActivity.java
index ff56ad1a..0770fc00 100644
--- a/src/org/fox/ttrss/tasker/TaskerSettingsActivity.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/tasker/TaskerSettingsActivity.java
@@ -1,96 +1,96 @@
-package org.fox.ttrss.tasker;
-
-import org.fox.ttrss.R;
-import org.fox.ttrss.offline.OfflineDownloadService;
-import org.fox.ttrss.offline.OfflineUploadService;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.RadioGroup;
-import android.widget.RadioGroup.OnCheckedChangeListener;
-
-public class TaskerSettingsActivity extends Activity {
- protected static final int ACTION_DOWNLOAD = 0;
- protected static final int ACTION_UPLOAD = 1;
-
- private final String TAG = this.getClass().getSimpleName();
-
- protected Bundle m_settings = new Bundle();
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- Bundle settings = getIntent().getBundleExtra(com.twofortyfouram.locale.Intent.EXTRA_BUNDLE);
-
- int actionId = settings != null ? settings.getInt("actionId", -1) : -1;
-
- setContentView(R.layout.tasker_settings);
-
- RadioGroup radioGroup = (RadioGroup) findViewById(R.id.taskerActions);
-
- switch (actionId) {
- case TaskerSettingsActivity.ACTION_DOWNLOAD:
- radioGroup.check(R.id.actionDownload);
- break;
- case TaskerSettingsActivity.ACTION_UPLOAD:
- radioGroup.check(R.id.actionUpload);
- break;
- default:
- Log.d(TAG, "unknown action id=" + actionId);
- }
-
- radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(RadioGroup group, int checkedId) {
- switch (checkedId) {
- case R.id.actionDownload:
- m_settings.putInt("actionId", ACTION_DOWNLOAD);
- break;
- case R.id.actionUpload:
- m_settings.putInt("actionId", ACTION_UPLOAD);
- break;
- }
- }
- });
-
- Button button = (Button)findViewById(R.id.close_button);
-
- button.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- finish();
- }
- });
- }
-
- @Override
- public void finish() {
- final Intent intent = new Intent();
-
- intent.putExtra(com.twofortyfouram.locale.Intent.EXTRA_BUNDLE, m_settings);
-
- String blurb = "?";
-
- switch (m_settings.getInt("actionId")) {
- case TaskerSettingsActivity.ACTION_DOWNLOAD:
- blurb = getString(R.string.download_articles_and_go_offline);
- break;
- case TaskerSettingsActivity.ACTION_UPLOAD:
- blurb = getString(R.string.synchronize_read_articles_and_go_online);
- break;
- }
-
- intent.putExtra(com.twofortyfouram.locale.Intent.EXTRA_STRING_BLURB, blurb);
-
- setResult(RESULT_OK, intent);
-
- super.finish();
-
- }
-}
+package org.fox.ttrss.tasker;
+
+import org.fox.ttrss.R;
+import org.fox.ttrss.offline.OfflineDownloadService;
+import org.fox.ttrss.offline.OfflineUploadService;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.Button;
+import android.widget.RadioGroup;
+import android.widget.RadioGroup.OnCheckedChangeListener;
+
+public class TaskerSettingsActivity extends Activity {
+ protected static final int ACTION_DOWNLOAD = 0;
+ protected static final int ACTION_UPLOAD = 1;
+
+ private final String TAG = this.getClass().getSimpleName();
+
+ protected Bundle m_settings = new Bundle();
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ Bundle settings = getIntent().getBundleExtra(com.twofortyfouram.locale.Intent.EXTRA_BUNDLE);
+
+ int actionId = settings != null ? settings.getInt("actionId", -1) : -1;
+
+ setContentView(R.layout.tasker_settings);
+
+ RadioGroup radioGroup = (RadioGroup) findViewById(R.id.taskerActions);
+
+ switch (actionId) {
+ case TaskerSettingsActivity.ACTION_DOWNLOAD:
+ radioGroup.check(R.id.actionDownload);
+ break;
+ case TaskerSettingsActivity.ACTION_UPLOAD:
+ radioGroup.check(R.id.actionUpload);
+ break;
+ default:
+ Log.d(TAG, "unknown action id=" + actionId);
+ }
+
+ radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(RadioGroup group, int checkedId) {
+ switch (checkedId) {
+ case R.id.actionDownload:
+ m_settings.putInt("actionId", ACTION_DOWNLOAD);
+ break;
+ case R.id.actionUpload:
+ m_settings.putInt("actionId", ACTION_UPLOAD);
+ break;
+ }
+ }
+ });
+
+ Button button = (Button)findViewById(R.id.close_button);
+
+ button.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void finish() {
+ final Intent intent = new Intent();
+
+ intent.putExtra(com.twofortyfouram.locale.Intent.EXTRA_BUNDLE, m_settings);
+
+ String blurb = "?";
+
+ switch (m_settings.getInt("actionId")) {
+ case TaskerSettingsActivity.ACTION_DOWNLOAD:
+ blurb = getString(R.string.download_articles_and_go_offline);
+ break;
+ case TaskerSettingsActivity.ACTION_UPLOAD:
+ blurb = getString(R.string.synchronize_read_articles_and_go_online);
+ break;
+ }
+
+ intent.putExtra(com.twofortyfouram.locale.Intent.EXTRA_STRING_BLURB, blurb);
+
+ setResult(RESULT_OK, intent);
+
+ super.finish();
+
+ }
+}
diff --git a/src/org/fox/ttrss/types/Article.java b/orgfoxttrss/src/main/java/org/fox/ttrss/types/Article.java
index 9beea81a..9beea81a 100644
--- a/src/org/fox/ttrss/types/Article.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/types/Article.java
diff --git a/src/org/fox/ttrss/types/ArticleList.java b/orgfoxttrss/src/main/java/org/fox/ttrss/types/ArticleList.java
index c9b491ee..c9b491ee 100644
--- a/src/org/fox/ttrss/types/ArticleList.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/types/ArticleList.java
diff --git a/src/org/fox/ttrss/types/Attachment.java b/orgfoxttrss/src/main/java/org/fox/ttrss/types/Attachment.java
index 9e363dba..9e363dba 100644
--- a/src/org/fox/ttrss/types/Attachment.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/types/Attachment.java
diff --git a/src/org/fox/ttrss/types/Feed.java b/orgfoxttrss/src/main/java/org/fox/ttrss/types/Feed.java
index 6cf4a1b1..6cf4a1b1 100644
--- a/src/org/fox/ttrss/types/Feed.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/types/Feed.java
diff --git a/src/org/fox/ttrss/types/FeedCategory.java b/orgfoxttrss/src/main/java/org/fox/ttrss/types/FeedCategory.java
index c8193f94..c8193f94 100644
--- a/src/org/fox/ttrss/types/FeedCategory.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/types/FeedCategory.java
diff --git a/src/org/fox/ttrss/types/FeedCategoryList.java b/orgfoxttrss/src/main/java/org/fox/ttrss/types/FeedCategoryList.java
index eb5331bc..eb5331bc 100644
--- a/src/org/fox/ttrss/types/FeedCategoryList.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/types/FeedCategoryList.java
diff --git a/src/org/fox/ttrss/types/FeedList.java b/orgfoxttrss/src/main/java/org/fox/ttrss/types/FeedList.java
index 350f45ad..350f45ad 100644
--- a/src/org/fox/ttrss/types/FeedList.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/types/FeedList.java
diff --git a/src/org/fox/ttrss/types/Label.java b/orgfoxttrss/src/main/java/org/fox/ttrss/types/Label.java
index 0d4f3699..0d4f3699 100644
--- a/src/org/fox/ttrss/types/Label.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/types/Label.java
diff --git a/src/org/fox/ttrss/util/AppRater.java b/orgfoxttrss/src/main/java/org/fox/ttrss/util/AppRater.java
index 21dccdff..21dccdff 100644
--- a/src/org/fox/ttrss/util/AppRater.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/util/AppRater.java
diff --git a/src/org/fox/ttrss/util/DatabaseHelper.java b/orgfoxttrss/src/main/java/org/fox/ttrss/util/DatabaseHelper.java
index 572ff62e..572ff62e 100644
--- a/src/org/fox/ttrss/util/DatabaseHelper.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/util/DatabaseHelper.java
diff --git a/src/org/fox/ttrss/util/EnlargingImageView.java b/orgfoxttrss/src/main/java/org/fox/ttrss/util/EnlargingImageView.java
index b6f9bce9..e3f1e6f6 100644
--- a/src/org/fox/ttrss/util/EnlargingImageView.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/util/EnlargingImageView.java
@@ -1,252 +1,252 @@
-package org.fox.ttrss.util;
-
-/*
- * Copyright (C) 2013 Tomáš Procházka
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.lang.reflect.Field;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.View;
-
-/**
- * Special version of ImageView which allow enlarge width of image if android:adjustViewBounds is true.
- *
- * <p>It simulate HTML behaviour &lt;img src="" widh="100" /&gt;</p>
- * <p><a href="http://stackoverflow.com/questions/6202000/imageview-one-dimension-to-fit-free-space-and-second-evaluate-to-keep-aspect-rati">Stackoverflow question link</a></p>
- *
- * <p>It also allow set related view which will be used as reference for size measure.</p>
- *
- * @author Tomáš Procházka &lt;<a href="mailto:[email protected]">[email protected]</a>&gt;
- * @version $Revision: 0$ ($Date: 6.6.2011 18:16:52$)
- */
-public class EnlargingImageView extends android.widget.ImageView {
-
- private int mDrawableWidth;
- private int mDrawableHeight;
- private boolean mAdjustViewBoundsL;
- private int mMaxWidthL = Integer.MAX_VALUE;
- private int mMaxHeightL = Integer.MAX_VALUE;
- private View relatedView;
-
- public EnlargingImageView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
-
- // hack for acces some private field of parent :-(
- Field f;
- try {
- f = android.widget.ImageView.class.getDeclaredField("mAdjustViewBounds");
- f.setAccessible(true);
- setAdjustViewBounds((Boolean) f.get(this));
-
- f = android.widget.ImageView.class.getDeclaredField("mMaxWidth");
- f.setAccessible(true);
- setMaxWidth((Integer) f.get(this));
-
- f = android.widget.ImageView.class.getDeclaredField("mMaxHeight");
- f.setAccessible(true);
- setMaxHeight((Integer) f.get(this));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public EnlargingImageView(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public EnlargingImageView(Context context) {
- super(context);
- }
-
- public void setAdjustViewBounds(boolean adjustViewBounds) {
- super.setAdjustViewBounds(adjustViewBounds);
- mAdjustViewBoundsL = adjustViewBounds;
- }
-
- public void setMaxWidth(int maxWidth) {
- super.setMaxWidth(maxWidth);
- mMaxWidthL = maxWidth;
- }
-
- public void setMaxHeight(int maxHeight) {
- super.setMaxHeight(maxHeight);
- mMaxHeightL = maxHeight;
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-
- if (getDrawable() == null) {
- setMeasuredDimension(0, 0);
- return;
- }
-
- mDrawableWidth = getDrawable().getIntrinsicWidth();
- mDrawableHeight = getDrawable().getIntrinsicHeight();
-
- int w = 0;
- int h = 0;
-
- // Desired aspect ratio of the view's contents (not including padding)
- float desiredAspect = 0.0f;
-
- // We are allowed to change the view's width
- boolean resizeWidth = false;
-
- // We are allowed to change the view's height
- boolean resizeHeight = false;
-
- if (mDrawableWidth > 0) {
- w = mDrawableWidth;
- h = mDrawableHeight;
- if (w <= 0) w = 1;
- if (h <= 0) h = 1;
-
- // We are supposed to adjust view bounds to match the aspect
- // ratio of our drawable. See if that is possible.
- if (mAdjustViewBoundsL) {
-
- int widthSpecMode = MeasureSpec.getMode(widthMeasureSpec);
- int heightSpecMode = MeasureSpec.getMode(heightMeasureSpec);
-
- resizeWidth = widthSpecMode != MeasureSpec.EXACTLY;
- resizeHeight = heightSpecMode != MeasureSpec.EXACTLY;
-
- desiredAspect = (float) w / (float) h;
- }
- }
-
- int pleft = getPaddingLeft();
- int pright = getPaddingRight();
- int ptop = getPaddingTop();
- int pbottom = getPaddingBottom();
-
- int widthSize;
- int heightSize;
-
- if (resizeWidth || resizeHeight) {
- /* If we get here, it means we want to resize to match the
- drawables aspect ratio, and we have the freedom to change at
- least one dimension.
- */
-
- // Get the max possible width given our constraints
- widthSize = resolveAdjustedSize(w + pleft + pright,
- mMaxWidthL, widthMeasureSpec);
-
- // Get the max possible height given our constraints
- heightSize = resolveAdjustedSize(h + ptop + pbottom,
- mMaxHeightL, heightMeasureSpec);
-
- if (desiredAspect != 0.0f) {
- // See what our actual aspect ratio is
- float actualAspect = (float) (widthSize - pleft - pright) /
- (heightSize - ptop - pbottom);
-
- if (Math.abs(actualAspect - desiredAspect) > 0.0000001) {
-
- // Try adjusting width to be proportional to height
- if (resizeWidth) {
- int newWidth = (int) (desiredAspect * (heightSize - ptop - pbottom)) + pleft + pright;
- if (/*newWidth <= widthSize &&*/newWidth > 0) {
- widthSize = Math.min(newWidth, mMaxWidthL);
- heightSize = (int) ((widthSize - pleft - pright) / desiredAspect) + ptop + pbottom;
- }
- }
-
- // Try adjusting height to be proportional to width
- if (resizeHeight) {
- int newHeight = (int) ((widthSize - pleft - pright) / desiredAspect) + ptop + pbottom;
- if (/*newHeight <= heightSize && */newHeight > 0) {
- heightSize = Math.min(newHeight, mMaxHeightL);
- widthSize = (int) (desiredAspect * (heightSize - ptop - pbottom)) + pleft + pright;
- }
- }
- }
- }
- } else {
- /* We are either don't want to preserve the drawables aspect ratio,
- or we are not allowed to change view dimensions. Just measure in
- the normal way.
- */
- w += pleft + pright;
- h += ptop + pbottom;
-
- w = Math.max(w, getSuggestedMinimumWidth());
- h = Math.max(h, getSuggestedMinimumHeight());
-
- widthSize = resolveSize(w, widthMeasureSpec);
- heightSize = resolveSize(h, heightMeasureSpec);
- }
-
- //Log.d(Constants.LOGTAG, mDrawableWidth + ":" + mDrawableHeight + " to " + widthSize + ":" + heightSize);
-
- setMeasuredDimension(widthSize, heightSize);
-
- if (relatedView != null) {
- //Log.i(Constants.LOGTAG, getTag() + " onMeasure:" + widthSize + ", " + heightSize + " update size of related view!");
- relatedView.getLayoutParams().width = widthSize;
- relatedView.getLayoutParams().height = heightSize;
- }
-
- }
-
- @Override
- protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
- super.onLayout(changed, left, top, right, bottom);
- //Log.d(Constants.LOGTAG, getTag() + " onLayout:" + left + ", " + top + ", " + right + ", " + bottom);
- }
-
- /**
- * Experimental. This view will be set to the same size as this image.
- */
- public void setRelatedView(View view) {
- relatedView = view;
- }
-
- @Override
- protected void onSizeChanged(int w, int h, int oldw, int oldh) {
- super.onSizeChanged(w, h, oldw, oldh);
- //Log.d(Constants.LOGTAG, getTag() + " onSizeChanged:" + w + ", " + h + ", " + oldw + ", " + oldh);
- }
-
- private int resolveAdjustedSize(int desiredSize, int maxSize, int measureSpec) {
- int result = desiredSize;
- int specMode = MeasureSpec.getMode(measureSpec);
- int specSize = MeasureSpec.getSize(measureSpec);
- switch (specMode) {
- case MeasureSpec.UNSPECIFIED:
- /* Parent says we can be as big as we want. Just don't be larger
- than max size imposed on ourselves.
- */
- result = Math.min(desiredSize, maxSize);
- break;
- case MeasureSpec.AT_MOST:
- // Parent says we can be as big as we want, up to specSize.
- // Don't be larger than specSize, and don't be larger than
- // the max size imposed on ourselves.
- result = Math.min(Math.min(desiredSize, specSize), maxSize);
- break;
- case MeasureSpec.EXACTLY:
- // No choice. Do what we are told.
- result = specSize;
- break;
- }
- return result;
- }
+package org.fox.ttrss.util;
+
+/*
+ * Copyright (C) 2013 Tomáš Procházka
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.lang.reflect.Field;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+
+/**
+ * Special version of ImageView which allow enlarge width of image if android:adjustViewBounds is true.
+ *
+ * <p>It simulate HTML behaviour &lt;img src="" widh="100" /&gt;</p>
+ * <p><a href="http://stackoverflow.com/questions/6202000/imageview-one-dimension-to-fit-free-space-and-second-evaluate-to-keep-aspect-rati">Stackoverflow question link</a></p>
+ *
+ * <p>It also allow set related view which will be used as reference for size measure.</p>
+ *
+ * @author Tomáš Procházka &lt;<a href="mailto:[email protected]">[email protected]</a>&gt;
+ * @version $Revision: 0$ ($Date: 6.6.2011 18:16:52$)
+ */
+public class EnlargingImageView extends android.widget.ImageView {
+
+ private int mDrawableWidth;
+ private int mDrawableHeight;
+ private boolean mAdjustViewBoundsL;
+ private int mMaxWidthL = Integer.MAX_VALUE;
+ private int mMaxHeightL = Integer.MAX_VALUE;
+ private View relatedView;
+
+ public EnlargingImageView(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+
+ // hack for acces some private field of parent :-(
+ Field f;
+ try {
+ f = android.widget.ImageView.class.getDeclaredField("mAdjustViewBounds");
+ f.setAccessible(true);
+ setAdjustViewBounds((Boolean) f.get(this));
+
+ f = android.widget.ImageView.class.getDeclaredField("mMaxWidth");
+ f.setAccessible(true);
+ setMaxWidth((Integer) f.get(this));
+
+ f = android.widget.ImageView.class.getDeclaredField("mMaxHeight");
+ f.setAccessible(true);
+ setMaxHeight((Integer) f.get(this));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public EnlargingImageView(Context context, AttributeSet attrs) {
+ this(context, attrs, 0);
+ }
+
+ public EnlargingImageView(Context context) {
+ super(context);
+ }
+
+ public void setAdjustViewBounds(boolean adjustViewBounds) {
+ super.setAdjustViewBounds(adjustViewBounds);
+ mAdjustViewBoundsL = adjustViewBounds;
+ }
+
+ public void setMaxWidth(int maxWidth) {
+ super.setMaxWidth(maxWidth);
+ mMaxWidthL = maxWidth;
+ }
+
+ public void setMaxHeight(int maxHeight) {
+ super.setMaxHeight(maxHeight);
+ mMaxHeightL = maxHeight;
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+
+ if (getDrawable() == null) {
+ setMeasuredDimension(0, 0);
+ return;
+ }
+
+ mDrawableWidth = getDrawable().getIntrinsicWidth();
+ mDrawableHeight = getDrawable().getIntrinsicHeight();
+
+ int w = 0;
+ int h = 0;
+
+ // Desired aspect ratio of the view's contents (not including padding)
+ float desiredAspect = 0.0f;
+
+ // We are allowed to change the view's width
+ boolean resizeWidth = false;
+
+ // We are allowed to change the view's height
+ boolean resizeHeight = false;
+
+ if (mDrawableWidth > 0) {
+ w = mDrawableWidth;
+ h = mDrawableHeight;
+ if (w <= 0) w = 1;
+ if (h <= 0) h = 1;
+
+ // We are supposed to adjust view bounds to match the aspect
+ // ratio of our drawable. See if that is possible.
+ if (mAdjustViewBoundsL) {
+
+ int widthSpecMode = MeasureSpec.getMode(widthMeasureSpec);
+ int heightSpecMode = MeasureSpec.getMode(heightMeasureSpec);
+
+ resizeWidth = widthSpecMode != MeasureSpec.EXACTLY;
+ resizeHeight = heightSpecMode != MeasureSpec.EXACTLY;
+
+ desiredAspect = (float) w / (float) h;
+ }
+ }
+
+ int pleft = getPaddingLeft();
+ int pright = getPaddingRight();
+ int ptop = getPaddingTop();
+ int pbottom = getPaddingBottom();
+
+ int widthSize;
+ int heightSize;
+
+ if (resizeWidth || resizeHeight) {
+ /* If we get here, it means we want to resize to match the
+ drawables aspect ratio, and we have the freedom to change at
+ least one dimension.
+ */
+
+ // Get the max possible width given our constraints
+ widthSize = resolveAdjustedSize(w + pleft + pright,
+ mMaxWidthL, widthMeasureSpec);
+
+ // Get the max possible height given our constraints
+ heightSize = resolveAdjustedSize(h + ptop + pbottom,
+ mMaxHeightL, heightMeasureSpec);
+
+ if (desiredAspect != 0.0f) {
+ // See what our actual aspect ratio is
+ float actualAspect = (float) (widthSize - pleft - pright) /
+ (heightSize - ptop - pbottom);
+
+ if (Math.abs(actualAspect - desiredAspect) > 0.0000001) {
+
+ // Try adjusting width to be proportional to height
+ if (resizeWidth) {
+ int newWidth = (int) (desiredAspect * (heightSize - ptop - pbottom)) + pleft + pright;
+ if (/*newWidth <= widthSize &&*/newWidth > 0) {
+ widthSize = Math.min(newWidth, mMaxWidthL);
+ heightSize = (int) ((widthSize - pleft - pright) / desiredAspect) + ptop + pbottom;
+ }
+ }
+
+ // Try adjusting height to be proportional to width
+ if (resizeHeight) {
+ int newHeight = (int) ((widthSize - pleft - pright) / desiredAspect) + ptop + pbottom;
+ if (/*newHeight <= heightSize && */newHeight > 0) {
+ heightSize = Math.min(newHeight, mMaxHeightL);
+ widthSize = (int) (desiredAspect * (heightSize - ptop - pbottom)) + pleft + pright;
+ }
+ }
+ }
+ }
+ } else {
+ /* We are either don't want to preserve the drawables aspect ratio,
+ or we are not allowed to change view dimensions. Just measure in
+ the normal way.
+ */
+ w += pleft + pright;
+ h += ptop + pbottom;
+
+ w = Math.max(w, getSuggestedMinimumWidth());
+ h = Math.max(h, getSuggestedMinimumHeight());
+
+ widthSize = resolveSize(w, widthMeasureSpec);
+ heightSize = resolveSize(h, heightMeasureSpec);
+ }
+
+ //Log.d(Constants.LOGTAG, mDrawableWidth + ":" + mDrawableHeight + " to " + widthSize + ":" + heightSize);
+
+ setMeasuredDimension(widthSize, heightSize);
+
+ if (relatedView != null) {
+ //Log.i(Constants.LOGTAG, getTag() + " onMeasure:" + widthSize + ", " + heightSize + " update size of related view!");
+ relatedView.getLayoutParams().width = widthSize;
+ relatedView.getLayoutParams().height = heightSize;
+ }
+
+ }
+
+ @Override
+ protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+ super.onLayout(changed, left, top, right, bottom);
+ //Log.d(Constants.LOGTAG, getTag() + " onLayout:" + left + ", " + top + ", " + right + ", " + bottom);
+ }
+
+ /**
+ * Experimental. This view will be set to the same size as this image.
+ */
+ public void setRelatedView(View view) {
+ relatedView = view;
+ }
+
+ @Override
+ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+ super.onSizeChanged(w, h, oldw, oldh);
+ //Log.d(Constants.LOGTAG, getTag() + " onSizeChanged:" + w + ", " + h + ", " + oldw + ", " + oldh);
+ }
+
+ private int resolveAdjustedSize(int desiredSize, int maxSize, int measureSpec) {
+ int result = desiredSize;
+ int specMode = MeasureSpec.getMode(measureSpec);
+ int specSize = MeasureSpec.getSize(measureSpec);
+ switch (specMode) {
+ case MeasureSpec.UNSPECIFIED:
+ /* Parent says we can be as big as we want. Just don't be larger
+ than max size imposed on ourselves.
+ */
+ result = Math.min(desiredSize, maxSize);
+ break;
+ case MeasureSpec.AT_MOST:
+ // Parent says we can be as big as we want, up to specSize.
+ // Don't be larger than specSize, and don't be larger than
+ // the max size imposed on ourselves.
+ result = Math.min(Math.min(desiredSize, specSize), maxSize);
+ break;
+ case MeasureSpec.EXACTLY:
+ // No choice. Do what we are told.
+ result = specSize;
+ break;
+ }
+ return result;
+ }
} \ No newline at end of file
diff --git a/src/org/fox/ttrss/util/FontSizeDialogPreference.java b/orgfoxttrss/src/main/java/org/fox/ttrss/util/FontSizeDialogPreference.java
index a4220fd1..ec7af2e5 100644
--- a/src/org/fox/ttrss/util/FontSizeDialogPreference.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/util/FontSizeDialogPreference.java
@@ -1,224 +1,224 @@
-package org.fox.ttrss.util;
-
-// http://www.lukehorvat.com/blog/android-seekbardialogpreference/
-
-import org.fox.ttrss.R;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.preference.DialogPreference;
-import android.util.AttributeSet;
-import android.util.TypedValue;
-import android.view.View;
-import android.widget.SeekBar;
-import android.widget.SeekBar.OnSeekBarChangeListener;
-import android.widget.TextView;
-
-/**
- * A {@link DialogPreference} that provides a user with the means to select an
- * integer from a {@link SeekBar}, and persist it.
- *
- * @author lukehorvat
- *
- */
-public class FontSizeDialogPreference extends DialogPreference {
- private static final int DEFAULT_MIN_PROGRESS = 9;
- private static final int DEFAULT_MAX_PROGRESS = 24;
- private static final String DEFAULT_PROGRESS = "0";
-
- private int mMinProgress = DEFAULT_MIN_PROGRESS;
- private int mMaxProgress = DEFAULT_MAX_PROGRESS;
- private int mProgress;
- private CharSequence mProgressTextSuffix;
- private TextView mProgressText;
- private SeekBar mSeekBar;
-
- public FontSizeDialogPreference(Context context) {
- this(context, null);
- }
-
- public FontSizeDialogPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
-
- setProgressTextSuffix(" " + context.getString(R.string.font_size_dialog_suffix));
-
- // set layout
- setDialogLayoutResource(R.layout.select_font_size_dialog);
- setPositiveButtonText(android.R.string.ok);
- setNegativeButtonText(android.R.string.cancel);
- setDialogIcon(null);
- }
-
- @Override
- protected void onSetInitialValue(boolean restore, Object defaultValue) {
- setProgress(restore ? Integer.valueOf(getPersistedString(DEFAULT_PROGRESS))
- : Integer.valueOf((String)defaultValue));
- }
-
- @Override
- protected Object onGetDefaultValue(TypedArray a, int index) {
- return a.getString(index);
- }
-
- @Override
- protected void onBindDialogView(View view) {
- super.onBindDialogView(view);
-
- mProgressText = (TextView) view.findViewById(R.id.text_progress);
-
- mSeekBar = (SeekBar) view.findViewById(R.id.seek_bar);
- mSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- }
-
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {
- }
-
- @Override
- public void onProgressChanged(SeekBar seekBar, int progress,
- boolean fromUser) {
- // update text that displays the current SeekBar progress value
- // note: this does not persist the progress value. that is only
- // ever done in setProgress()
- String progressStr = String.valueOf(progress + mMinProgress);
- mProgressText.setText(mProgressTextSuffix == null ? progressStr
- : progressStr.concat(mProgressTextSuffix.toString()));
- mProgressText.setTextSize(TypedValue.COMPLEX_UNIT_SP, progress + mMinProgress);
- }
- });
-
- mSeekBar.setMax(mMaxProgress - mMinProgress);
- mSeekBar.setProgress(mProgress - mMinProgress);
- }
-
- public int getMinProgress() {
- return mMinProgress;
- }
-
- public void setMinProgress(int minProgress) {
- mMinProgress = minProgress;
- setProgress(Math.max(mProgress, mMinProgress));
- }
-
- public int getMaxProgress() {
- return mMaxProgress;
- }
-
- public void setMaxProgress(int maxProgress) {
- mMaxProgress = maxProgress;
- setProgress(Math.min(mProgress, mMaxProgress));
- }
-
- public int getProgress() {
- return mProgress;
- }
-
- public void setProgress(int progress) {
- progress = Math.max(Math.min(progress, mMaxProgress), mMinProgress);
-
- if (progress != mProgress) {
- mProgress = progress;
- persistString(String.valueOf(progress));
- notifyChanged();
- }
- }
-
- public CharSequence getProgressTextSuffix() {
- return mProgressTextSuffix;
- }
-
- public void setProgressTextSuffix(CharSequence progressTextSuffix) {
- mProgressTextSuffix = progressTextSuffix;
- }
-
- @Override
- protected void onDialogClosed(boolean positiveResult) {
- super.onDialogClosed(positiveResult);
-
- // when the user selects "OK", persist the new value
- if (positiveResult) {
- int seekBarProgress = mSeekBar.getProgress() + mMinProgress;
- if (callChangeListener(seekBarProgress)) {
- setProgress(seekBarProgress);
- }
- }
- }
-
- @Override
- protected Parcelable onSaveInstanceState() {
- // save the instance state so that it will survive screen orientation
- // changes and other events that may temporarily destroy it
- final Parcelable superState = super.onSaveInstanceState();
-
- // set the state's value with the class member that holds current
- // setting value
- final SavedState myState = new SavedState(superState);
- myState.minProgress = getMinProgress();
- myState.maxProgress = getMaxProgress();
- myState.progress = getProgress();
-
- return myState;
- }
-
- @Override
- protected void onRestoreInstanceState(Parcelable state) {
- // check whether we saved the state in onSaveInstanceState()
- if (state == null || !state.getClass().equals(SavedState.class)) {
- // didn't save the state, so call superclass
- super.onRestoreInstanceState(state);
- return;
- }
-
- // restore the state
- SavedState myState = (SavedState) state;
- setMinProgress(myState.minProgress);
- setMaxProgress(myState.maxProgress);
- setProgress(myState.progress);
-
- super.onRestoreInstanceState(myState.getSuperState());
- }
-
- private static class SavedState extends BaseSavedState {
- int minProgress;
- int maxProgress;
- int progress;
-
- public SavedState(Parcelable superState) {
- super(superState);
- }
-
- public SavedState(Parcel source) {
- super(source);
-
- minProgress = source.readInt();
- maxProgress = source.readInt();
- progress = source.readInt();
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- super.writeToParcel(dest, flags);
-
- dest.writeInt(minProgress);
- dest.writeInt(maxProgress);
- dest.writeInt(progress);
- }
-
- @SuppressWarnings("unused")
- public static final Parcelable.Creator<SavedState> CREATOR = new Parcelable.Creator<SavedState>() {
- @Override
- public SavedState createFromParcel(Parcel in) {
- return new SavedState(in);
- }
-
- @Override
- public SavedState[] newArray(int size) {
- return new SavedState[size];
- }
- };
- }
+package org.fox.ttrss.util;
+
+// http://www.lukehorvat.com/blog/android-seekbardialogpreference/
+
+import org.fox.ttrss.R;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.preference.DialogPreference;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.view.View;
+import android.widget.SeekBar;
+import android.widget.SeekBar.OnSeekBarChangeListener;
+import android.widget.TextView;
+
+/**
+ * A {@link DialogPreference} that provides a user with the means to select an
+ * integer from a {@link SeekBar}, and persist it.
+ *
+ * @author lukehorvat
+ *
+ */
+public class FontSizeDialogPreference extends DialogPreference {
+ private static final int DEFAULT_MIN_PROGRESS = 9;
+ private static final int DEFAULT_MAX_PROGRESS = 24;
+ private static final String DEFAULT_PROGRESS = "0";
+
+ private int mMinProgress = DEFAULT_MIN_PROGRESS;
+ private int mMaxProgress = DEFAULT_MAX_PROGRESS;
+ private int mProgress;
+ private CharSequence mProgressTextSuffix;
+ private TextView mProgressText;
+ private SeekBar mSeekBar;
+
+ public FontSizeDialogPreference(Context context) {
+ this(context, null);
+ }
+
+ public FontSizeDialogPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+
+ setProgressTextSuffix(" " + context.getString(R.string.font_size_dialog_suffix));
+
+ // set layout
+ setDialogLayoutResource(R.layout.select_font_size_dialog);
+ setPositiveButtonText(android.R.string.ok);
+ setNegativeButtonText(android.R.string.cancel);
+ setDialogIcon(null);
+ }
+
+ @Override
+ protected void onSetInitialValue(boolean restore, Object defaultValue) {
+ setProgress(restore ? Integer.valueOf(getPersistedString(DEFAULT_PROGRESS))
+ : Integer.valueOf((String)defaultValue));
+ }
+
+ @Override
+ protected Object onGetDefaultValue(TypedArray a, int index) {
+ return a.getString(index);
+ }
+
+ @Override
+ protected void onBindDialogView(View view) {
+ super.onBindDialogView(view);
+
+ mProgressText = (TextView) view.findViewById(R.id.text_progress);
+
+ mSeekBar = (SeekBar) view.findViewById(R.id.seek_bar);
+ mSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
+ @Override
+ public void onStopTrackingTouch(SeekBar seekBar) {
+ }
+
+ @Override
+ public void onStartTrackingTouch(SeekBar seekBar) {
+ }
+
+ @Override
+ public void onProgressChanged(SeekBar seekBar, int progress,
+ boolean fromUser) {
+ // update text that displays the current SeekBar progress value
+ // note: this does not persist the progress value. that is only
+ // ever done in setProgress()
+ String progressStr = String.valueOf(progress + mMinProgress);
+ mProgressText.setText(mProgressTextSuffix == null ? progressStr
+ : progressStr.concat(mProgressTextSuffix.toString()));
+ mProgressText.setTextSize(TypedValue.COMPLEX_UNIT_SP, progress + mMinProgress);
+ }
+ });
+
+ mSeekBar.setMax(mMaxProgress - mMinProgress);
+ mSeekBar.setProgress(mProgress - mMinProgress);
+ }
+
+ public int getMinProgress() {
+ return mMinProgress;
+ }
+
+ public void setMinProgress(int minProgress) {
+ mMinProgress = minProgress;
+ setProgress(Math.max(mProgress, mMinProgress));
+ }
+
+ public int getMaxProgress() {
+ return mMaxProgress;
+ }
+
+ public void setMaxProgress(int maxProgress) {
+ mMaxProgress = maxProgress;
+ setProgress(Math.min(mProgress, mMaxProgress));
+ }
+
+ public int getProgress() {
+ return mProgress;
+ }
+
+ public void setProgress(int progress) {
+ progress = Math.max(Math.min(progress, mMaxProgress), mMinProgress);
+
+ if (progress != mProgress) {
+ mProgress = progress;
+ persistString(String.valueOf(progress));
+ notifyChanged();
+ }
+ }
+
+ public CharSequence getProgressTextSuffix() {
+ return mProgressTextSuffix;
+ }
+
+ public void setProgressTextSuffix(CharSequence progressTextSuffix) {
+ mProgressTextSuffix = progressTextSuffix;
+ }
+
+ @Override
+ protected void onDialogClosed(boolean positiveResult) {
+ super.onDialogClosed(positiveResult);
+
+ // when the user selects "OK", persist the new value
+ if (positiveResult) {
+ int seekBarProgress = mSeekBar.getProgress() + mMinProgress;
+ if (callChangeListener(seekBarProgress)) {
+ setProgress(seekBarProgress);
+ }
+ }
+ }
+
+ @Override
+ protected Parcelable onSaveInstanceState() {
+ // save the instance state so that it will survive screen orientation
+ // changes and other events that may temporarily destroy it
+ final Parcelable superState = super.onSaveInstanceState();
+
+ // set the state's value with the class member that holds current
+ // setting value
+ final SavedState myState = new SavedState(superState);
+ myState.minProgress = getMinProgress();
+ myState.maxProgress = getMaxProgress();
+ myState.progress = getProgress();
+
+ return myState;
+ }
+
+ @Override
+ protected void onRestoreInstanceState(Parcelable state) {
+ // check whether we saved the state in onSaveInstanceState()
+ if (state == null || !state.getClass().equals(SavedState.class)) {
+ // didn't save the state, so call superclass
+ super.onRestoreInstanceState(state);
+ return;
+ }
+
+ // restore the state
+ SavedState myState = (SavedState) state;
+ setMinProgress(myState.minProgress);
+ setMaxProgress(myState.maxProgress);
+ setProgress(myState.progress);
+
+ super.onRestoreInstanceState(myState.getSuperState());
+ }
+
+ private static class SavedState extends BaseSavedState {
+ int minProgress;
+ int maxProgress;
+ int progress;
+
+ public SavedState(Parcelable superState) {
+ super(superState);
+ }
+
+ public SavedState(Parcel source) {
+ super(source);
+
+ minProgress = source.readInt();
+ maxProgress = source.readInt();
+ progress = source.readInt();
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ super.writeToParcel(dest, flags);
+
+ dest.writeInt(minProgress);
+ dest.writeInt(maxProgress);
+ dest.writeInt(progress);
+ }
+
+ @SuppressWarnings("unused")
+ public static final Parcelable.Creator<SavedState> CREATOR = new Parcelable.Creator<SavedState>() {
+ @Override
+ public SavedState createFromParcel(Parcel in) {
+ return new SavedState(in);
+ }
+
+ @Override
+ public SavedState[] newArray(int size) {
+ return new SavedState[size];
+ }
+ };
+ }
} \ No newline at end of file
diff --git a/src/org/fox/ttrss/util/HeadlinesRequest.java b/orgfoxttrss/src/main/java/org/fox/ttrss/util/HeadlinesRequest.java
index 551c0add..551c0add 100644
--- a/src/org/fox/ttrss/util/HeadlinesRequest.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/util/HeadlinesRequest.java
diff --git a/src/org/fox/ttrss/util/ImageCacheService.java b/orgfoxttrss/src/main/java/org/fox/ttrss/util/ImageCacheService.java
index 5b029fc6..5b029fc6 100644
--- a/src/org/fox/ttrss/util/ImageCacheService.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/util/ImageCacheService.java
diff --git a/src/org/fox/ttrss/util/LessBrokenWebView.java b/orgfoxttrss/src/main/java/org/fox/ttrss/util/LessBrokenWebView.java
index c6cab513..4a3ea826 100644
--- a/src/org/fox/ttrss/util/LessBrokenWebView.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/util/LessBrokenWebView.java
@@ -1,37 +1,37 @@
-package org.fox.ttrss.util;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.webkit.WebView;
-
-public class LessBrokenWebView extends WebView {
-
- public LessBrokenWebView(Context context) {
- super(context);
- // TODO Auto-generated constructor stub
- }
-
- public LessBrokenWebView(Context context, AttributeSet attrs) {
- super(context, attrs);
- // TODO Auto-generated constructor stub
- }
-
- public LessBrokenWebView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- // TODO Auto-generated constructor stub
- }
-
- @Override
- public boolean onTouchEvent(MotionEvent event) {
-
- if (event.getAction() == MotionEvent.ACTION_DOWN) {
- int temp_ScrollY = getScrollY();
- scrollTo(getScrollX(), getScrollY() + 1);
- scrollTo(getScrollX(), temp_ScrollY);
- }
-
- return super.onTouchEvent(event);
- }
-
-}
+package org.fox.ttrss.util;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.webkit.WebView;
+
+public class LessBrokenWebView extends WebView {
+
+ public LessBrokenWebView(Context context) {
+ super(context);
+ // TODO Auto-generated constructor stub
+ }
+
+ public LessBrokenWebView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ // TODO Auto-generated constructor stub
+ }
+
+ public LessBrokenWebView(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent event) {
+
+ if (event.getAction() == MotionEvent.ACTION_DOWN) {
+ int temp_ScrollY = getScrollY();
+ scrollTo(getScrollX(), getScrollY() + 1);
+ scrollTo(getScrollX(), temp_ScrollY);
+ }
+
+ return super.onTouchEvent(event);
+ }
+
+}
diff --git a/src/org/fox/ttrss/util/NoChildFocusScrollView.java b/orgfoxttrss/src/main/java/org/fox/ttrss/util/NoChildFocusScrollView.java
index 3dea82a4..b5ec23c5 100644
--- a/src/org/fox/ttrss/util/NoChildFocusScrollView.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/util/NoChildFocusScrollView.java
@@ -1,34 +1,34 @@
-package org.fox.ttrss.util;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.View;
-import android.webkit.WebView;
-import android.widget.ScrollView;
-
-public class NoChildFocusScrollView extends ScrollView {
-
- public NoChildFocusScrollView(Context context) {
- super(context);
- // TODO Auto-generated constructor stub
- }
-
-
- public NoChildFocusScrollView(Context context, AttributeSet attrs) {
- super(context, attrs);
- // TODO Auto-generated constructor stub
- }
-
- public NoChildFocusScrollView(Context context, AttributeSet attrs,
- int defStyle) {
- super(context, attrs, defStyle);
- // TODO Auto-generated constructor stub
- }
-
- @Override
- public void requestChildFocus(View child, View focused) {
- if (focused instanceof WebView )
- return;
- super.requestChildFocus(child, focused);
- }
-}
+package org.fox.ttrss.util;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+import android.webkit.WebView;
+import android.widget.ScrollView;
+
+public class NoChildFocusScrollView extends ScrollView {
+
+ public NoChildFocusScrollView(Context context) {
+ super(context);
+ // TODO Auto-generated constructor stub
+ }
+
+
+ public NoChildFocusScrollView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ // TODO Auto-generated constructor stub
+ }
+
+ public NoChildFocusScrollView(Context context, AttributeSet attrs,
+ int defStyle) {
+ super(context, attrs, defStyle);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void requestChildFocus(View child, View focused) {
+ if (focused instanceof WebView )
+ return;
+ super.requestChildFocus(child, focused);
+ }
+}
diff --git a/src/org/fox/ttrss/util/PrefsBackupAgent.java b/orgfoxttrss/src/main/java/org/fox/ttrss/util/PrefsBackupAgent.java
index 2b33615f..2b33615f 100644
--- a/src/org/fox/ttrss/util/PrefsBackupAgent.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/util/PrefsBackupAgent.java
diff --git a/src/org/fox/ttrss/util/SimpleLoginManager.java b/orgfoxttrss/src/main/java/org/fox/ttrss/util/SimpleLoginManager.java
index 072c0062..e11e574d 100644
--- a/src/org/fox/ttrss/util/SimpleLoginManager.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/util/SimpleLoginManager.java
@@ -1,105 +1,105 @@
-package org.fox.ttrss.util;
-
-import java.util.HashMap;
-
-import org.fox.ttrss.ApiRequest;
-
-import android.content.Context;
-import android.util.Log;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-
-public abstract class SimpleLoginManager {
- private final String TAG = this.getClass().getSimpleName();
-
- protected class LoginRequest extends ApiRequest {
- private int m_requestId;
- protected String m_sessionId;
- protected int m_apiLevel;
- protected Context m_context;
-
- public LoginRequest(Context context, int requestId) {
- super(context);
- m_context = context;
- m_requestId = requestId;
- }
-
- protected void onPostExecute(JsonElement result) {
- Log.d(TAG, "onPostExecute");
-
- if (result != null) {
- try {
- JsonObject content = result.getAsJsonObject();
- if (content != null) {
- m_sessionId = content.get("session_id").getAsString();
-
- Log.d(TAG, "[SLM] Authenticated!");
-
- ApiRequest req = new ApiRequest(m_context) {
- protected void onPostExecute(JsonElement result) {
- m_apiLevel = 0;
-
- if (result != null) {
- try {
- m_apiLevel = result.getAsJsonObject()
- .get("level").getAsInt();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- Log.d(TAG, "[SLM] Received API level: " + m_apiLevel);
-
- onLoginSuccess(m_requestId, m_sessionId, m_apiLevel);
- }
- };
-
- @SuppressWarnings("serial")
- HashMap<String, String> map = new HashMap<String, String>() {
- {
- put("sid", m_sessionId);
- put("op", "getApiLevel");
- }
- };
-
- req.execute(map);
-
- return;
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- m_sessionId = null;
-
- onLoginFailed(m_requestId, this);
- }
-
- }
-
- public void logIn(Context context, int requestId, final String login, final String password) {
- LoginRequest ar = new LoginRequest(context, requestId);
-
- HashMap<String, String> map = new HashMap<String, String>() {
- {
- put("op", "login");
- put("user", login.trim());
- put("password", password.trim());
- }
- };
-
- onLoggingIn(requestId);
-
- ar.execute(map);
- }
-
- protected abstract void onLoggingIn(int requestId);
-
- protected abstract void onLoginSuccess(int requestId, String sessionId, int apiLevel);
-
- protected abstract void onLoginFailed(int requestId, ApiRequest ar);
-
-}
+package org.fox.ttrss.util;
+
+import java.util.HashMap;
+
+import org.fox.ttrss.ApiRequest;
+
+import android.content.Context;
+import android.util.Log;
+
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+
+public abstract class SimpleLoginManager {
+ private final String TAG = this.getClass().getSimpleName();
+
+ protected class LoginRequest extends ApiRequest {
+ private int m_requestId;
+ protected String m_sessionId;
+ protected int m_apiLevel;
+ protected Context m_context;
+
+ public LoginRequest(Context context, int requestId) {
+ super(context);
+ m_context = context;
+ m_requestId = requestId;
+ }
+
+ protected void onPostExecute(JsonElement result) {
+ Log.d(TAG, "onPostExecute");
+
+ if (result != null) {
+ try {
+ JsonObject content = result.getAsJsonObject();
+ if (content != null) {
+ m_sessionId = content.get("session_id").getAsString();
+
+ Log.d(TAG, "[SLM] Authenticated!");
+
+ ApiRequest req = new ApiRequest(m_context) {
+ protected void onPostExecute(JsonElement result) {
+ m_apiLevel = 0;
+
+ if (result != null) {
+ try {
+ m_apiLevel = result.getAsJsonObject()
+ .get("level").getAsInt();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ Log.d(TAG, "[SLM] Received API level: " + m_apiLevel);
+
+ onLoginSuccess(m_requestId, m_sessionId, m_apiLevel);
+ }
+ };
+
+ @SuppressWarnings("serial")
+ HashMap<String, String> map = new HashMap<String, String>() {
+ {
+ put("sid", m_sessionId);
+ put("op", "getApiLevel");
+ }
+ };
+
+ req.execute(map);
+
+ return;
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ m_sessionId = null;
+
+ onLoginFailed(m_requestId, this);
+ }
+
+ }
+
+ public void logIn(Context context, int requestId, final String login, final String password) {
+ LoginRequest ar = new LoginRequest(context, requestId);
+
+ HashMap<String, String> map = new HashMap<String, String>() {
+ {
+ put("op", "login");
+ put("user", login.trim());
+ put("password", password.trim());
+ }
+ };
+
+ onLoggingIn(requestId);
+
+ ar.execute(map);
+ }
+
+ protected abstract void onLoggingIn(int requestId);
+
+ protected abstract void onLoginSuccess(int requestId, String sessionId, int apiLevel);
+
+ protected abstract void onLoginFailed(int requestId, ApiRequest ar);
+
+}
diff --git a/src/org/fox/ttrss/util/TitleWebView.java b/orgfoxttrss/src/main/java/org/fox/ttrss/util/TitleWebView.java
index 4d97918e..4d97918e 100644
--- a/src/org/fox/ttrss/util/TitleWebView.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/util/TitleWebView.java
diff --git a/src/org/fox/ttrss/util/TypefaceCache.java b/orgfoxttrss/src/main/java/org/fox/ttrss/util/TypefaceCache.java
index 150d3d83..752304ca 100644
--- a/src/org/fox/ttrss/util/TypefaceCache.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/util/TypefaceCache.java
@@ -1,29 +1,29 @@
-package org.fox.ttrss.util;
-
-import java.util.Hashtable;
-
-import android.content.Context;
-import android.graphics.Typeface;
-import android.util.Log;
-
-public class TypefaceCache {
- private static final String TAG = "TypefaceCache";
- private static final Hashtable<String, Typeface> cache = new Hashtable<String, Typeface>();
-
- public static Typeface get(Context c, String typefaceName, int style) {
- synchronized (cache) {
- String key = typefaceName + ":" + style;
-
- if (!cache.containsKey(key)) {
- try {
- Typeface t = Typeface.create(typefaceName, style);
- cache.put(key, t);
- } catch (Exception e) {
- Log.e(TAG, "Could not get typeface '" + typefaceName + "' because " + e.getMessage());
- return null;
- }
- }
- return cache.get(key);
- }
- }
+package org.fox.ttrss.util;
+
+import java.util.Hashtable;
+
+import android.content.Context;
+import android.graphics.Typeface;
+import android.util.Log;
+
+public class TypefaceCache {
+ private static final String TAG = "TypefaceCache";
+ private static final Hashtable<String, Typeface> cache = new Hashtable<String, Typeface>();
+
+ public static Typeface get(Context c, String typefaceName, int style) {
+ synchronized (cache) {
+ String key = typefaceName + ":" + style;
+
+ if (!cache.containsKey(key)) {
+ try {
+ Typeface t = Typeface.create(typefaceName, style);
+ cache.put(key, t);
+ } catch (Exception e) {
+ Log.e(TAG, "Could not get typeface '" + typefaceName + "' because " + e.getMessage());
+ return null;
+ }
+ }
+ return cache.get(key);
+ }
+ }
} \ No newline at end of file
diff --git a/src/org/fox/ttrss/widget/SmallWidgetProvider.java b/orgfoxttrss/src/main/java/org/fox/ttrss/widget/SmallWidgetProvider.java
index dbbe718c..6162abab 100644
--- a/src/org/fox/ttrss/widget/SmallWidgetProvider.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/widget/SmallWidgetProvider.java
@@ -1,65 +1,65 @@
-package org.fox.ttrss.widget;
-
-import org.fox.ttrss.R;
-
-import android.app.PendingIntent;
-import android.app.PendingIntent.CanceledException;
-import android.app.Service;
-import android.appwidget.AppWidgetManager;
-import android.appwidget.AppWidgetProvider;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.util.Log;
-import android.widget.RemoteViews;
-
-public class SmallWidgetProvider extends AppWidgetProvider {
- private final String TAG = this.getClass().getSimpleName();
-
- public static final String FORCE_UPDATE_ACTION = "org.fox.ttrss.WIDGET_FORCE_UPDATE";
-
- @Override
- public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
- //RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_small);
-
- final int N = appWidgetIds.length;
-
- for (int i=0; i < N; i++) {
- int appWidgetId = appWidgetIds[i];
-
- Intent updateIntent = new Intent(context, org.fox.ttrss.widget.WidgetUpdateService.class);
- PendingIntent updatePendingIntent = PendingIntent.getService(context, 0, updateIntent, 0);
-
- Intent intent = new Intent(context, org.fox.ttrss.OnlineActivity.class);
- PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
-
- RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_small);
- views.setOnClickPendingIntent(R.id.widget_main, pendingIntent);
-
- appWidgetManager.updateAppWidget(appWidgetId, views);
-
- try {
- updatePendingIntent.send();
- } catch (CanceledException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- }
-
- @Override
- public void onReceive(Context context, Intent intent) {
- super.onReceive(context, intent);
-
- if (FORCE_UPDATE_ACTION.equals(intent.getAction())) {
-
- AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
- ComponentName thisAppWidget = new ComponentName(context.getPackageName(), SmallWidgetProvider.class.getName());
- int[] appWidgetIds = appWidgetManager.getAppWidgetIds(thisAppWidget);
-
- onUpdate(context, appWidgetManager, appWidgetIds);
- }
- }
-
-}
+package org.fox.ttrss.widget;
+
+import org.fox.ttrss.R;
+
+import android.app.PendingIntent;
+import android.app.PendingIntent.CanceledException;
+import android.app.Service;
+import android.appwidget.AppWidgetManager;
+import android.appwidget.AppWidgetProvider;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+import android.widget.RemoteViews;
+
+public class SmallWidgetProvider extends AppWidgetProvider {
+ private final String TAG = this.getClass().getSimpleName();
+
+ public static final String FORCE_UPDATE_ACTION = "org.fox.ttrss.WIDGET_FORCE_UPDATE";
+
+ @Override
+ public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
+ //RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_small);
+
+ final int N = appWidgetIds.length;
+
+ for (int i=0; i < N; i++) {
+ int appWidgetId = appWidgetIds[i];
+
+ Intent updateIntent = new Intent(context, org.fox.ttrss.widget.WidgetUpdateService.class);
+ PendingIntent updatePendingIntent = PendingIntent.getService(context, 0, updateIntent, 0);
+
+ Intent intent = new Intent(context, org.fox.ttrss.OnlineActivity.class);
+ PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
+
+ RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_small);
+ views.setOnClickPendingIntent(R.id.widget_main, pendingIntent);
+
+ appWidgetManager.updateAppWidget(appWidgetId, views);
+
+ try {
+ updatePendingIntent.send();
+ } catch (CanceledException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ }
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ super.onReceive(context, intent);
+
+ if (FORCE_UPDATE_ACTION.equals(intent.getAction())) {
+
+ AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
+ ComponentName thisAppWidget = new ComponentName(context.getPackageName(), SmallWidgetProvider.class.getName());
+ int[] appWidgetIds = appWidgetManager.getAppWidgetIds(thisAppWidget);
+
+ onUpdate(context, appWidgetManager, appWidgetIds);
+ }
+ }
+
+}
diff --git a/src/org/fox/ttrss/widget/WidgetUpdateService.java b/orgfoxttrss/src/main/java/org/fox/ttrss/widget/WidgetUpdateService.java
index 00c8002f..e45bd301 100644
--- a/src/org/fox/ttrss/widget/WidgetUpdateService.java
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/widget/WidgetUpdateService.java
@@ -1,141 +1,141 @@
-package org.fox.ttrss.widget;
-
-import java.util.HashMap;
-
-import org.fox.ttrss.ApiRequest;
-import org.fox.ttrss.R;
-import org.fox.ttrss.util.SimpleLoginManager;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-
-import android.app.Service;
-import android.appwidget.AppWidgetManager;
-import android.content.ComponentName;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.IBinder;
-import android.preference.PreferenceManager;
-import android.util.Log;
-import android.view.View;
-import android.widget.RemoteViews;
-
-public class WidgetUpdateService extends Service {
- private final String TAG = this.getClass().getSimpleName();
-
- @Override
- public IBinder onBind(Intent intent) {
- Log.d(TAG, "onBind");
-
- // TODO Auto-generated method stub
- return null;
- }
-
- /* @Override
- public int onStartCommand(Intent intent, int flags, int startId) {
- Log.d(TAG, "onStartCommand");
-
- return super.onStartCommand(intent, flags, startId);
- } */
-
- public void update() {
-
-
- }
-
- @Override
- public void onStart(Intent intent, int startId) {
- final RemoteViews view = new RemoteViews(getPackageName(), R.layout.widget_small);
-
- final ComponentName thisWidget = new ComponentName(this, SmallWidgetProvider.class);
- final AppWidgetManager manager = AppWidgetManager.getInstance(this);
-
- try {
- view.setTextViewText(R.id.counter, String.valueOf(""));
- view.setViewVisibility(R.id.progress, View.VISIBLE);
-
- manager.updateAppWidget(thisWidget, view);
-
- final SharedPreferences m_prefs = PreferenceManager
- .getDefaultSharedPreferences(getApplicationContext());
-
- if (m_prefs.getString("ttrss_url", "").trim().length() == 0) {
-
- // Toast: need configure
-
- } else {
-
- SimpleLoginManager loginManager = new SimpleLoginManager() {
-
- @Override
- protected void onLoginSuccess(int requestId, String sessionId, int apiLevel) {
-
- ApiRequest aru = new ApiRequest(getApplicationContext()) {
- @Override
- protected void onPostExecute(JsonElement result) {
- if (result != null) {
- try {
- JsonObject content = result.getAsJsonObject();
-
- if (content != null) {
- int unread = content.get("unread").getAsInt();
-
- view.setViewVisibility(R.id.progress, View.GONE);
- view.setTextViewText(R.id.counter, String.valueOf(unread));
- manager.updateAppWidget(thisWidget, view);
-
- return;
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- view.setViewVisibility(R.id.progress, View.GONE);
- view.setTextViewText(R.id.counter, "?");
- manager.updateAppWidget(thisWidget, view);
- }
- };
-
- final String fSessionId = sessionId;
-
- HashMap<String, String> umap = new HashMap<String, String>() {
- {
- put("op", "getUnread");
- put("sid", fSessionId);
- }
- };
-
- aru.execute(umap);
- }
-
- @Override
- protected void onLoginFailed(int requestId, ApiRequest ar) {
-
- view.setViewVisibility(R.id.progress, View.GONE);
- view.setTextViewText(R.id.counter, "?");
- manager.updateAppWidget(thisWidget, view);
- }
-
- @Override
- protected void onLoggingIn(int requestId) {
-
-
- }
- };
-
- String login = m_prefs.getString("login", "").trim();
- String password = m_prefs.getString("password", "").trim();
-
- loginManager.logIn(getApplicationContext(), 1, login, password);
- }
- } catch (Exception e) {
- e.printStackTrace();
-
- view.setViewVisibility(R.id.progress, View.GONE);
- view.setTextViewText(R.id.counter, getString(R.string.app_name));
- manager.updateAppWidget(thisWidget, view);
-
- }
- }
-}
+package org.fox.ttrss.widget;
+
+import java.util.HashMap;
+
+import org.fox.ttrss.ApiRequest;
+import org.fox.ttrss.R;
+import org.fox.ttrss.util.SimpleLoginManager;
+
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+
+import android.app.Service;
+import android.appwidget.AppWidgetManager;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.IBinder;
+import android.preference.PreferenceManager;
+import android.util.Log;
+import android.view.View;
+import android.widget.RemoteViews;
+
+public class WidgetUpdateService extends Service {
+ private final String TAG = this.getClass().getSimpleName();
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ Log.d(TAG, "onBind");
+
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ Log.d(TAG, "onStartCommand");
+
+ return super.onStartCommand(intent, flags, startId);
+ } */
+
+ public void update() {
+
+
+ }
+
+ @Override
+ public void onStart(Intent intent, int startId) {
+ final RemoteViews view = new RemoteViews(getPackageName(), R.layout.widget_small);
+
+ final ComponentName thisWidget = new ComponentName(this, SmallWidgetProvider.class);
+ final AppWidgetManager manager = AppWidgetManager.getInstance(this);
+
+ try {
+ view.setTextViewText(R.id.counter, String.valueOf(""));
+ view.setViewVisibility(R.id.progress, View.VISIBLE);
+
+ manager.updateAppWidget(thisWidget, view);
+
+ final SharedPreferences m_prefs = PreferenceManager
+ .getDefaultSharedPreferences(getApplicationContext());
+
+ if (m_prefs.getString("ttrss_url", "").trim().length() == 0) {
+
+ // Toast: need configure
+
+ } else {
+
+ SimpleLoginManager loginManager = new SimpleLoginManager() {
+
+ @Override
+ protected void onLoginSuccess(int requestId, String sessionId, int apiLevel) {
+
+ ApiRequest aru = new ApiRequest(getApplicationContext()) {
+ @Override
+ protected void onPostExecute(JsonElement result) {
+ if (result != null) {
+ try {
+ JsonObject content = result.getAsJsonObject();
+
+ if (content != null) {
+ int unread = content.get("unread").getAsInt();
+
+ view.setViewVisibility(R.id.progress, View.GONE);
+ view.setTextViewText(R.id.counter, String.valueOf(unread));
+ manager.updateAppWidget(thisWidget, view);
+
+ return;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ view.setViewVisibility(R.id.progress, View.GONE);
+ view.setTextViewText(R.id.counter, "?");
+ manager.updateAppWidget(thisWidget, view);
+ }
+ };
+
+ final String fSessionId = sessionId;
+
+ HashMap<String, String> umap = new HashMap<String, String>() {
+ {
+ put("op", "getUnread");
+ put("sid", fSessionId);
+ }
+ };
+
+ aru.execute(umap);
+ }
+
+ @Override
+ protected void onLoginFailed(int requestId, ApiRequest ar) {
+
+ view.setViewVisibility(R.id.progress, View.GONE);
+ view.setTextViewText(R.id.counter, "?");
+ manager.updateAppWidget(thisWidget, view);
+ }
+
+ @Override
+ protected void onLoggingIn(int requestId) {
+
+
+ }
+ };
+
+ String login = m_prefs.getString("login", "").trim();
+ String password = m_prefs.getString("password", "").trim();
+
+ loginManager.logIn(getApplicationContext(), 1, login, password);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+
+ view.setViewVisibility(R.id.progress, View.GONE);
+ view.setTextViewText(R.id.counter, getString(R.string.app_name));
+ manager.updateAppWidget(thisWidget, view);
+
+ }
+ }
+}
diff --git a/res/anim/feed_item.xml b/orgfoxttrss/src/main/res/anim/feed_item.xml
index a60e0556..9f445523 100644
--- a/res/anim/feed_item.xml
+++ b/orgfoxttrss/src/main/res/anim/feed_item.xml
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8"?>
-<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
- <alpha
- android:fromAlpha="0"
- android:toAlpha="1"
- android:duration="150"
- />
-</set>
-
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
+ <alpha
+ android:fromAlpha="0"
+ android:toAlpha="1"
+ android:duration="150"
+ />
+</set>
+
diff --git a/res/anim/headline_item.xml b/orgfoxttrss/src/main/res/anim/headline_item.xml
index dbb60d23..97c6d40f 100644
--- a/res/anim/headline_item.xml
+++ b/orgfoxttrss/src/main/res/anim/headline_item.xml
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
- <alpha
- android:fromAlpha="0"
- android:toAlpha="1"
- android:duration="250"
- />
- <translate
- android:fromXDelta="100%p"
- android:toXDelta="0"
- android:duration="250"
- />
-</set>
-
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
+ <alpha
+ android:fromAlpha="0"
+ android:toAlpha="1"
+ android:duration="250"
+ />
+ <translate
+ android:fromXDelta="100%p"
+ android:toXDelta="0"
+ android:duration="250"
+ />
+</set>
+
diff --git a/res/anim/layout_feeds.xml b/orgfoxttrss/src/main/res/anim/layout_feeds.xml
index 3e7c5003..379508c3 100644
--- a/res/anim/layout_feeds.xml
+++ b/orgfoxttrss/src/main/res/anim/layout_feeds.xml
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
- android:delay="20%"
- android:animation="@anim/feed_item"
+<?xml version="1.0" encoding="utf-8"?>
+<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
+ android:delay="20%"
+ android:animation="@anim/feed_item"
/> \ No newline at end of file
diff --git a/res/anim/layout_headline.xml b/orgfoxttrss/src/main/res/anim/layout_headline.xml
index 07b84d11..ae937110 100644
--- a/res/anim/layout_headline.xml
+++ b/orgfoxttrss/src/main/res/anim/layout_headline.xml
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
- android:delay="20%"
- android:animation="@anim/headline_item"
+<?xml version="1.0" encoding="utf-8"?>
+<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
+ android:delay="20%"
+ android:animation="@anim/headline_item"
/> \ No newline at end of file
diff --git a/res/anim/right_slide_in.xml b/orgfoxttrss/src/main/res/anim/right_slide_in.xml
index 2bb5acc1..2bb5acc1 100644
--- a/res/anim/right_slide_in.xml
+++ b/orgfoxttrss/src/main/res/anim/right_slide_in.xml
diff --git a/res/anim/right_slide_out.xml b/orgfoxttrss/src/main/res/anim/right_slide_out.xml
index 134467f5..134467f5 100644
--- a/res/anim/right_slide_out.xml
+++ b/orgfoxttrss/src/main/res/anim/right_slide_out.xml
diff --git a/res/drawable-hdpi/dashclock.png b/orgfoxttrss/src/main/res/drawable-hdpi/dashclock.png
index 99ffa932..99ffa932 100644
--- a/res/drawable-hdpi/dashclock.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/dashclock.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_accept_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_accept_light.png
index 53cf6877..53cf6877 100644
--- a/res/drawable-hdpi/ic_accept_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_accept_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_action_overflow.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_action_overflow.png
index 5845b648..5845b648 100644
--- a/res/drawable-hdpi/ic_action_overflow.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_action_overflow.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_cloud_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_cloud_light.png
index a1d27cec..a1d27cec 100644
--- a/res/drawable-hdpi/ic_cloud_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_cloud_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_important_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_important_light.png
index 11f86414..11f86414 100644
--- a/res/drawable-hdpi/ic_important_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_important_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_labels_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_labels_light.png
index 432e7c00..432e7c00 100644
--- a/res/drawable-hdpi/ic_labels_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_labels_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_list_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_list_light.png
index e45ea1fd..e45ea1fd 100644
--- a/res/drawable-hdpi/ic_list_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_list_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_attaches_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_menu_attaches_light.png
index 8bf8cb78..8bf8cb78 100644
--- a/res/drawable-hdpi/ic_menu_attaches_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_menu_attaches_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_published_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_menu_published_light.png
index 599ca764..599ca764 100644
--- a/res/drawable-hdpi/ic_menu_published_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_menu_published_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_unpublished_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_menu_unpublished_light.png
index 6d10cb92..6d10cb92 100644
--- a/res/drawable-hdpi/ic_menu_unpublished_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_menu_unpublished_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_new_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_new_light.png
index ad8ada6b..ad8ada6b 100644
--- a/res/drawable-hdpi/ic_new_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_new_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_published.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_published.png
index 6f790827..6f790827 100644
--- a/res/drawable-hdpi/ic_published.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_published.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_read_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_read_light.png
index 9ef52959..9ef52959 100644
--- a/res/drawable-hdpi/ic_read_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_read_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_refresh_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_refresh_light.png
index bb9d855f..bb9d855f 100644
--- a/res/drawable-hdpi/ic_refresh_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_refresh_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_rotate_left_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_rotate_left_light.png
index 97ab27f0..97ab27f0 100644
--- a/res/drawable-hdpi/ic_rotate_left_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_rotate_left_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_search_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_search_light.png
index f12e005e..f12e005e 100644
--- a/res/drawable-hdpi/ic_search_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_search_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_select_all_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_select_all_light.png
index 26a270b3..26a270b3 100644
--- a/res/drawable-hdpi/ic_select_all_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_select_all_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_share_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_share_light.png
index c329f58d..c329f58d 100644
--- a/res/drawable-hdpi/ic_share_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_share_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_star_empty.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_star_empty.png
index 057c6c66..057c6c66 100644
--- a/res/drawable-hdpi/ic_star_empty.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_star_empty.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_star_full.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_star_full.png
index 2ad21203..2ad21203 100644
--- a/res/drawable-hdpi/ic_star_full.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_star_full.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_undo_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_undo_light.png
index 9e719c9c..9e719c9c 100644
--- a/res/drawable-hdpi/ic_undo_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_undo_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_unimportant_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_unimportant_light.png
index 7259b06b..7259b06b 100644
--- a/res/drawable-hdpi/ic_unimportant_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_unimportant_light.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_unpublished.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_unpublished.png
index 5d84ec52..5d84ec52 100644
--- a/res/drawable-hdpi/ic_unpublished.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_unpublished.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_unread_light.png b/orgfoxttrss/src/main/res/drawable-hdpi/ic_unread_light.png
index d516f770..d516f770 100644
--- a/res/drawable-hdpi/ic_unread_light.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ic_unread_light.png
Binary files differ
diff --git a/res/drawable-hdpi/icon.png b/orgfoxttrss/src/main/res/drawable-hdpi/icon.png
index ac0388e9..ac0388e9 100644
--- a/res/drawable-hdpi/icon.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/icon.png
Binary files differ
diff --git a/res/drawable-hdpi/ics_divider_vertical_bitmap.png b/orgfoxttrss/src/main/res/drawable-hdpi/ics_divider_vertical_bitmap.png
index 3391f40c..3391f40c 100644
--- a/res/drawable-hdpi/ics_divider_vertical_bitmap.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/ics_divider_vertical_bitmap.png
Binary files differ
diff --git a/res/drawable-hdpi/paper_sepia_bitmap.png b/orgfoxttrss/src/main/res/drawable-hdpi/paper_sepia_bitmap.png
index 68ff3d66..68ff3d66 100644
--- a/res/drawable-hdpi/paper_sepia_bitmap.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/paper_sepia_bitmap.png
Binary files differ
diff --git a/res/drawable-hdpi/shadow_bitmap.png b/orgfoxttrss/src/main/res/drawable-hdpi/shadow_bitmap.png
index 6fb8a250..6fb8a250 100644
--- a/res/drawable-hdpi/shadow_bitmap.png
+++ b/orgfoxttrss/src/main/res/drawable-hdpi/shadow_bitmap.png
Binary files differ
diff --git a/res/drawable-xhdpi/dashclock.png b/orgfoxttrss/src/main/res/drawable-xhdpi/dashclock.png
index 65ebe3c1..65ebe3c1 100644
--- a/res/drawable-xhdpi/dashclock.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/dashclock.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_accept_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_accept_light.png
index b52dc370..b52dc370 100644
--- a/res/drawable-xhdpi/ic_accept_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_accept_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_cloud_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_cloud_light.png
index 37d98e5d..37d98e5d 100644
--- a/res/drawable-xhdpi/ic_cloud_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_cloud_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_important_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_important_light.png
index 7576cc1e..7576cc1e 100644
--- a/res/drawable-xhdpi/ic_important_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_important_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_labels_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_labels_light.png
index 8fdcd1a2..8fdcd1a2 100644
--- a/res/drawable-xhdpi/ic_labels_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_labels_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_list_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_list_light.png
index 95708234..95708234 100644
--- a/res/drawable-xhdpi/ic_list_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_list_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_attaches_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_menu_attaches_light.png
index a3e253fa..a3e253fa 100644
--- a/res/drawable-xhdpi/ic_menu_attaches_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_menu_attaches_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_published_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_menu_published_light.png
index 938ec3e3..938ec3e3 100644
--- a/res/drawable-xhdpi/ic_menu_published_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_menu_published_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_unpublished_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_menu_unpublished_light.png
index 7b32106b..7b32106b 100644
--- a/res/drawable-xhdpi/ic_menu_unpublished_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_menu_unpublished_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_new_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_new_light.png
index 23b9a1c1..23b9a1c1 100644
--- a/res/drawable-xhdpi/ic_new_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_new_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_read_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_read_light.png
index 62e3d1ad..62e3d1ad 100644
--- a/res/drawable-xhdpi/ic_read_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_read_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_refresh_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_refresh_light.png
index a7fdc0df..a7fdc0df 100644
--- a/res/drawable-xhdpi/ic_refresh_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_refresh_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_rotate_left_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_rotate_left_light.png
index 46d04a53..46d04a53 100644
--- a/res/drawable-xhdpi/ic_rotate_left_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_rotate_left_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_search_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_search_light.png
index 3549f84d..3549f84d 100644
--- a/res/drawable-xhdpi/ic_search_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_search_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_select_all_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_select_all_light.png
index 52d1155d..52d1155d 100644
--- a/res/drawable-xhdpi/ic_select_all_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_select_all_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_share_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_share_light.png
index 15549b04..15549b04 100644
--- a/res/drawable-xhdpi/ic_share_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_share_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_undo_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_undo_light.png
index 99967f2f..99967f2f 100644
--- a/res/drawable-xhdpi/ic_undo_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_undo_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_unimportant_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_unimportant_light.png
index 3c618a12..3c618a12 100644
--- a/res/drawable-xhdpi/ic_unimportant_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_unimportant_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_unread_light.png b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_unread_light.png
index 606c902c..606c902c 100644
--- a/res/drawable-xhdpi/ic_unread_light.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/ic_unread_light.png
Binary files differ
diff --git a/res/drawable-xhdpi/icon.png b/orgfoxttrss/src/main/res/drawable-xhdpi/icon.png
index c39421b8..c39421b8 100644
--- a/res/drawable-xhdpi/icon.png
+++ b/orgfoxttrss/src/main/res/drawable-xhdpi/icon.png
Binary files differ
diff --git a/res/drawable-xxhdpi/icon.png b/orgfoxttrss/src/main/res/drawable-xxhdpi/icon.png
index 30baa7a5..30baa7a5 100644
--- a/res/drawable-xxhdpi/icon.png
+++ b/orgfoxttrss/src/main/res/drawable-xxhdpi/icon.png
Binary files differ
diff --git a/res/drawable/counter_background.xml b/orgfoxttrss/src/main/res/drawable/counter_background.xml
index 15c48553..1c2c4094 100644
--- a/res/drawable/counter_background.xml
+++ b/orgfoxttrss/src/main/res/drawable/counter_background.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <solid android:color="@color/unread_counter_background" />
-
- <corners
- android:bottomLeftRadius="4dp"
- android:bottomRightRadius="4dp"
- android:topLeftRadius="4dp"
- android:topRightRadius="4dp" />
-
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <solid android:color="@color/unread_counter_background" />
+
+ <corners
+ android:bottomLeftRadius="4dp"
+ android:bottomRightRadius="4dp"
+ android:topLeftRadius="4dp"
+ android:topRightRadius="4dp" />
+
</shape> \ No newline at end of file
diff --git a/res/drawable/counter_background_dark.xml b/orgfoxttrss/src/main/res/drawable/counter_background_dark.xml
index 9dab2d06..3cc971c6 100644
--- a/res/drawable/counter_background_dark.xml
+++ b/orgfoxttrss/src/main/res/drawable/counter_background_dark.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <solid android:color="@color/unread_counter_background_dark" />
-
- <corners
- android:bottomLeftRadius="4dp"
- android:bottomRightRadius="4dp"
- android:topLeftRadius="4dp"
- android:topRightRadius="4dp" />
-
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <solid android:color="@color/unread_counter_background_dark" />
+
+ <corners
+ android:bottomLeftRadius="4dp"
+ android:bottomRightRadius="4dp"
+ android:topLeftRadius="4dp"
+ android:topRightRadius="4dp" />
+
</shape> \ No newline at end of file
diff --git a/res/drawable/counter_background_selected_light.xml b/orgfoxttrss/src/main/res/drawable/counter_background_selected_light.xml
index ca0c37da..7485ea00 100644
--- a/res/drawable/counter_background_selected_light.xml
+++ b/orgfoxttrss/src/main/res/drawable/counter_background_selected_light.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <solid android:color="@color/unread_counter_background_selected_light" />
-
- <corners
- android:bottomLeftRadius="4dp"
- android:bottomRightRadius="4dp"
- android:topLeftRadius="4dp"
- android:topRightRadius="4dp" />
-
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <solid android:color="@color/unread_counter_background_selected_light" />
+
+ <corners
+ android:bottomLeftRadius="4dp"
+ android:bottomRightRadius="4dp"
+ android:topLeftRadius="4dp"
+ android:topRightRadius="4dp" />
+
</shape> \ No newline at end of file
diff --git a/res/drawable/counter_background_sepia.xml b/orgfoxttrss/src/main/res/drawable/counter_background_sepia.xml
index 478d3cce..daebd494 100644
--- a/res/drawable/counter_background_sepia.xml
+++ b/orgfoxttrss/src/main/res/drawable/counter_background_sepia.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <solid android:color="@color/unread_counter_background_sepia" />
-
- <corners
- android:bottomLeftRadius="4dp"
- android:bottomRightRadius="4dp"
- android:topLeftRadius="4dp"
- android:topRightRadius="4dp" />
-
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <solid android:color="@color/unread_counter_background_sepia" />
+
+ <corners
+ android:bottomLeftRadius="4dp"
+ android:bottomRightRadius="4dp"
+ android:topLeftRadius="4dp"
+ android:topRightRadius="4dp" />
+
</shape> \ No newline at end of file
diff --git a/res/drawable/flavor_image_border.xml b/orgfoxttrss/src/main/res/drawable/flavor_image_border.xml
index 3dea012b..f59d75d8 100644
--- a/res/drawable/flavor_image_border.xml
+++ b/orgfoxttrss/src/main/res/drawable/flavor_image_border.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle" >
-
- <corners android:radius="0dp" />
-
- <stroke
- android:width="1dp"
- android:color="#cccccc" />
-
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle" >
+
+ <corners android:radius="0dp" />
+
+ <stroke
+ android:width="1dp"
+ android:color="#cccccc" />
+
</shape> \ No newline at end of file
diff --git a/res/drawable/headline_row.xml b/orgfoxttrss/src/main/res/drawable/headline_row.xml
index c928013e..ccfb8703 100644
--- a/res/drawable/headline_row.xml
+++ b/orgfoxttrss/src/main/res/drawable/headline_row.xml
@@ -1,19 +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>
-
+<?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/orgfoxttrss/src/main/res/drawable/headline_row_selected.xml
index 1f30f42f..3f005c8a 100644
--- a/res/drawable/headline_row_selected.xml
+++ b/orgfoxttrss/src/main/res/drawable/headline_row_selected.xml
@@ -1,19 +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>
-
+<?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_sepia.xml b/orgfoxttrss/src/main/res/drawable/headline_row_selected_sepia.xml
index 0ed5da7a..17d096e1 100644
--- a/res/drawable/headline_row_selected_sepia.xml
+++ b/orgfoxttrss/src/main/res/drawable/headline_row_selected_sepia.xml
@@ -1,19 +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="#E5B0A0" />
- <corners android:radius="2dp"/>
- </shape>
- </item>
-
+<?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="#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/orgfoxttrss/src/main/res/drawable/headline_row_sepia.xml
index 5fcb7aa1..facd2b6a 100644
--- a/res/drawable/headline_row_sepia.xml
+++ b/orgfoxttrss/src/main/res/drawable/headline_row_sepia.xml
@@ -1,19 +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>
-
+<?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/orgfoxttrss/src/main/res/drawable/headline_row_unread.xml
index 14840998..6813164f 100644
--- a/res/drawable/headline_row_unread.xml
+++ b/orgfoxttrss/src/main/res/drawable/headline_row_unread.xml
@@ -1,19 +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>
-
+<?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_sepia.xml b/orgfoxttrss/src/main/res/drawable/headline_row_unread_sepia.xml
index f062fb7e..6c649257 100644
--- a/res/drawable/headline_row_unread_sepia.xml
+++ b/orgfoxttrss/src/main/res/drawable/headline_row_unread_sepia.xml
@@ -1,19 +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="#ffffff" />
- <corners android:radius="2dp"/>
- </shape>
- </item>
-
+<?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="#ffffff" />
+ <corners android:radius="2dp"/>
+ </shape>
+ </item>
+
</layer-list> \ No newline at end of file
diff --git a/res/drawable/ics_divider_vertical.xml b/orgfoxttrss/src/main/res/drawable/ics_divider_vertical.xml
index 9967aa1f..14c1f642 100644
--- a/res/drawable/ics_divider_vertical.xml
+++ b/orgfoxttrss/src/main/res/drawable/ics_divider_vertical.xml
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<bitmap
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/ics_divider_vertical_bitmap"
- android:gravity="fill_vertical|right" />
+<?xml version="1.0" encoding="utf-8"?>
+<bitmap
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/ics_divider_vertical_bitmap"
+ android:gravity="fill_vertical|right" />
diff --git a/res/drawable/ics_divider_vertical_gray.xml b/orgfoxttrss/src/main/res/drawable/ics_divider_vertical_gray.xml
index 9967aa1f..14c1f642 100644
--- a/res/drawable/ics_divider_vertical_gray.xml
+++ b/orgfoxttrss/src/main/res/drawable/ics_divider_vertical_gray.xml
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<bitmap
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/ics_divider_vertical_bitmap"
- android:gravity="fill_vertical|right" />
+<?xml version="1.0" encoding="utf-8"?>
+<bitmap
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/ics_divider_vertical_bitmap"
+ android:gravity="fill_vertical|right" />
diff --git a/res/drawable/paper_sepia.xml b/orgfoxttrss/src/main/res/drawable/paper_sepia.xml
index cbb02489..3951b4c8 100644
--- a/res/drawable/paper_sepia.xml
+++ b/orgfoxttrss/src/main/res/drawable/paper_sepia.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
- <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/paper_sepia_bitmap"
+<?xml version="1.0" encoding="utf-8"?>
+ <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/paper_sepia_bitmap"
android:tileMode="repeat" /> \ No newline at end of file
diff --git a/res/drawable/s_dashclock.svg b/orgfoxttrss/src/main/res/drawable/s_dashclock.svg
index f4be84f9..f4be84f9 100644
--- a/res/drawable/s_dashclock.svg
+++ b/orgfoxttrss/src/main/res/drawable/s_dashclock.svg
diff --git a/res/drawable/s_headline_published.svg b/orgfoxttrss/src/main/res/drawable/s_headline_published.svg
index b07448a0..b07448a0 100644
--- a/res/drawable/s_headline_published.svg
+++ b/orgfoxttrss/src/main/res/drawable/s_headline_published.svg
diff --git a/res/drawable/s_headline_unpublished.svg b/orgfoxttrss/src/main/res/drawable/s_headline_unpublished.svg
index 3bcbf2a6..3bcbf2a6 100644
--- a/res/drawable/s_headline_unpublished.svg
+++ b/orgfoxttrss/src/main/res/drawable/s_headline_unpublished.svg
diff --git a/res/drawable/s_icon.svg b/orgfoxttrss/src/main/res/drawable/s_icon.svg
index 82cd4812..82cd4812 100644
--- a/res/drawable/s_icon.svg
+++ b/orgfoxttrss/src/main/res/drawable/s_icon.svg
diff --git a/res/drawable/s_marked.svg b/orgfoxttrss/src/main/res/drawable/s_marked.svg
index 326c9691..326c9691 100644
--- a/res/drawable/s_marked.svg
+++ b/orgfoxttrss/src/main/res/drawable/s_marked.svg
diff --git a/res/drawable/s_marked_bw.svg b/orgfoxttrss/src/main/res/drawable/s_marked_bw.svg
index df88f4a5..df88f4a5 100644
--- a/res/drawable/s_marked_bw.svg
+++ b/orgfoxttrss/src/main/res/drawable/s_marked_bw.svg
diff --git a/res/drawable/s_marked_bw_full.svg b/orgfoxttrss/src/main/res/drawable/s_marked_bw_full.svg
index 3ccf34c1..3ccf34c1 100644
--- a/res/drawable/s_marked_bw_full.svg
+++ b/orgfoxttrss/src/main/res/drawable/s_marked_bw_full.svg
diff --git a/res/drawable/s_menu_attaches_light.svg b/orgfoxttrss/src/main/res/drawable/s_menu_attaches_light.svg
index 0396f73f..0396f73f 100644
--- a/res/drawable/s_menu_attaches_light.svg
+++ b/orgfoxttrss/src/main/res/drawable/s_menu_attaches_light.svg
diff --git a/res/drawable/s_menu_marked.svg b/orgfoxttrss/src/main/res/drawable/s_menu_marked.svg
index 1be0b7f9..1be0b7f9 100644
--- a/res/drawable/s_menu_marked.svg
+++ b/orgfoxttrss/src/main/res/drawable/s_menu_marked.svg
diff --git a/res/drawable/s_menu_published_light.svg b/orgfoxttrss/src/main/res/drawable/s_menu_published_light.svg
index 752fe0f6..752fe0f6 100644
--- a/res/drawable/s_menu_published_light.svg
+++ b/orgfoxttrss/src/main/res/drawable/s_menu_published_light.svg
diff --git a/res/drawable/s_menu_unpublished_light.svg b/orgfoxttrss/src/main/res/drawable/s_menu_unpublished_light.svg
index 6981beaf..6981beaf 100644
--- a/res/drawable/s_menu_unpublished_light.svg
+++ b/orgfoxttrss/src/main/res/drawable/s_menu_unpublished_light.svg
diff --git a/res/drawable/s_prev_article.svg b/orgfoxttrss/src/main/res/drawable/s_prev_article.svg
index 5c83a6b5..5c83a6b5 100644
--- a/res/drawable/s_prev_article.svg
+++ b/orgfoxttrss/src/main/res/drawable/s_prev_article.svg
diff --git a/res/drawable/shadow.xml b/orgfoxttrss/src/main/res/drawable/shadow.xml
index 51670851..a293378f 100644
--- a/res/drawable/shadow.xml
+++ b/orgfoxttrss/src/main/res/drawable/shadow.xml
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<bitmap
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/shadow_bitmap"
- android:gravity="fill_vertical|right" />
+<?xml version="1.0" encoding="utf-8"?>
+<bitmap
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/shadow_bitmap"
+ android:gravity="fill_vertical|right" />
diff --git a/res/drawable/shadow_feeds.xml b/orgfoxttrss/src/main/res/drawable/shadow_feeds.xml
index f43427c4..ab71b98d 100644
--- a/res/drawable/shadow_feeds.xml
+++ b/orgfoxttrss/src/main/res/drawable/shadow_feeds.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <item android:drawable="@color/feeds_light"/>
- <item android:drawable="@drawable/shadow"/>
-
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <item android:drawable="@color/feeds_light"/>
+ <item android:drawable="@drawable/shadow"/>
+
</layer-list> \ No newline at end of file
diff --git a/res/drawable/shadow_feeds_gray.xml b/orgfoxttrss/src/main/res/drawable/shadow_feeds_gray.xml
index b350c5f7..35167a92 100644
--- a/res/drawable/shadow_feeds_gray.xml
+++ b/orgfoxttrss/src/main/res/drawable/shadow_feeds_gray.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <item android:drawable="@color/feeds_dark_gray"/>
- <item android:drawable="@drawable/shadow"/>
-
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <item android:drawable="@color/feeds_dark_gray"/>
+ <item android:drawable="@drawable/shadow"/>
+
</layer-list> \ No newline at end of file
diff --git a/res/drawable/shadow_feeds_sepia.xml b/orgfoxttrss/src/main/res/drawable/shadow_feeds_sepia.xml
index 8f0ebbbb..30424e15 100644
--- a/res/drawable/shadow_feeds_sepia.xml
+++ b/orgfoxttrss/src/main/res/drawable/shadow_feeds_sepia.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <item android:drawable="@color/feeds_sepia"/>
- <item android:drawable="@drawable/shadow"/>
-
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <item android:drawable="@color/feeds_sepia"/>
+ <item android:drawable="@drawable/shadow"/>
+
</layer-list> \ No newline at end of file
diff --git a/res/drawable/shadow_headlines.xml b/orgfoxttrss/src/main/res/drawable/shadow_headlines.xml
index 7c31ab34..899a8687 100644
--- a/res/drawable/shadow_headlines.xml
+++ b/orgfoxttrss/src/main/res/drawable/shadow_headlines.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <!-- <item android:drawable="@color/headlines_light"/> -->
- <item android:drawable="@drawable/shadow"/>
-
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <!-- <item android:drawable="@color/headlines_light"/> -->
+ <item android:drawable="@drawable/shadow"/>
+
</layer-list> \ No newline at end of file
diff --git a/res/drawable/shadow_headlines_gray.xml b/orgfoxttrss/src/main/res/drawable/shadow_headlines_gray.xml
index b350c5f7..35167a92 100644
--- a/res/drawable/shadow_headlines_gray.xml
+++ b/orgfoxttrss/src/main/res/drawable/shadow_headlines_gray.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <item android:drawable="@color/feeds_dark_gray"/>
- <item android:drawable="@drawable/shadow"/>
-
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <item android:drawable="@color/feeds_dark_gray"/>
+ <item android:drawable="@drawable/shadow"/>
+
</layer-list> \ No newline at end of file
diff --git a/res/drawable/shadow_headlines_sepia.xml b/orgfoxttrss/src/main/res/drawable/shadow_headlines_sepia.xml
index 88093571..be7d496c 100644
--- a/res/drawable/shadow_headlines_sepia.xml
+++ b/orgfoxttrss/src/main/res/drawable/shadow_headlines_sepia.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <item android:drawable="@drawable/paper_sepia"/>
- <item android:drawable="@drawable/shadow"/>
-
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <item android:drawable="@drawable/paper_sepia"/>
+ <item android:drawable="@drawable/shadow"/>
+
</layer-list> \ No newline at end of file
diff --git a/res/layout-sw700dp/headlines.xml b/orgfoxttrss/src/main/res/layout-sw600dp-land/headlines.xml
index a7cc2c0d..2162232e 100644
--- a/res/layout-sw700dp/headlines.xml
+++ b/orgfoxttrss/src/main/res/layout-sw600dp-land/headlines.xml
@@ -1,55 +1,55 @@
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/main"
- android:fitsSystemWindows="true"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
-
- <FrameLayout
- android:id="@+id/sw600dp_anchor"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:visibility="gone" >
-
- </FrameLayout>
-
- <LinearLayout
- android:id="@+id/loading_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center"
- android:visibility="gone" >
-
- <TextView
- android:id="@+id/loading_message"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceLarge" />
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/fragment_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:baselineAligned="false"
- android:weightSum="1.1"
- android:orientation="horizontal" >
-
- <FrameLayout
- android:id="@+id/feeds_fragment"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:background="?feedlistBackground" >
- </FrameLayout>
-
- <FrameLayout
- android:id="@+id/headlines_fragment"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="2"
- android:background="?headlinesBackground" >
- </FrameLayout>
- </LinearLayout>
-
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/main"
+ android:fitsSystemWindows="true"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <FrameLayout
+ android:id="@+id/sw600dp_anchor"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:visibility="gone" >
+
+ </FrameLayout>
+
+ <LinearLayout
+ android:id="@+id/loading_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:visibility="gone" >
+
+ <TextView
+ android:id="@+id/loading_message"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceLarge" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/fragment_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:baselineAligned="false"
+ android:weightSum="1.1"
+ android:orientation="horizontal" >
+
+ <FrameLayout
+ android:id="@+id/feeds_fragment"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:background="?feedlistBackground" >
+ </FrameLayout>
+
+ <FrameLayout
+ android:id="@+id/headlines_fragment"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="2"
+ android:background="?headlinesBackground" >
+ </FrameLayout>
+ </LinearLayout>
+
</LinearLayout> \ No newline at end of file
diff --git a/res/layout-sw600dp-land/headlines_articles.xml b/orgfoxttrss/src/main/res/layout-sw600dp-land/headlines_articles.xml
index aa786015..367f492a 100644
--- a/res/layout-sw600dp-land/headlines_articles.xml
+++ b/orgfoxttrss/src/main/res/layout-sw600dp-land/headlines_articles.xml
@@ -1,57 +1,57 @@
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/headlines"
- android:fitsSystemWindows="true"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
-
- <FrameLayout
- android:id="@+id/sw600dp_anchor"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:visibility="gone" >
- </FrameLayout>
-
- <LinearLayout
- android:id="@+id/loading_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="?loadingBackground"
- android:gravity="center"
- android:orientation="vertical"
- android:visibility="visible" >
-
- <TextView
- android:id="@+id/loading_message"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_horizontal"
- android:text="@string/loading_message"
- android:textAppearance="?android:attr/textAppearanceLarge" />
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/fragment_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:baselineAligned="false"
- android:orientation="horizontal" >
-
- <FrameLayout
- android:id="@+id/headlines_fragment"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="0.4"
- android:background="?feedlistBackground" >
- </FrameLayout>
-
- <FrameLayout
- android:id="@+id/article_fragment"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="0.6"
- android:background="?articleBackground" >
- </FrameLayout>
- </LinearLayout>
-
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/headlines"
+ android:fitsSystemWindows="true"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <FrameLayout
+ android:id="@+id/sw600dp_anchor"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:visibility="gone" >
+ </FrameLayout>
+
+ <LinearLayout
+ android:id="@+id/loading_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="?loadingBackground"
+ android:gravity="center"
+ android:orientation="vertical"
+ android:visibility="visible" >
+
+ <TextView
+ android:id="@+id/loading_message"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
+ android:text="@string/loading_message"
+ android:textAppearance="?android:attr/textAppearanceLarge" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/fragment_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:baselineAligned="false"
+ android:orientation="horizontal" >
+
+ <FrameLayout
+ android:id="@+id/headlines_fragment"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="0.4"
+ android:background="?feedlistBackground" >
+ </FrameLayout>
+
+ <FrameLayout
+ android:id="@+id/article_fragment"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="0.6"
+ android:background="?articleBackground" >
+ </FrameLayout>
+ </LinearLayout>
+
</LinearLayout> \ No newline at end of file
diff --git a/res/layout-sw600dp-port/headlines.xml b/orgfoxttrss/src/main/res/layout-sw600dp-port/headlines.xml
index 5193fab0..e6daa46c 100644
--- a/res/layout-sw600dp-port/headlines.xml
+++ b/orgfoxttrss/src/main/res/layout-sw600dp-port/headlines.xml
@@ -1,35 +1,35 @@
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/headlines"
- android:fitsSystemWindows="true"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" >
-
- <FrameLayout
- android:id="@+id/sw600dp_port_anchor"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" >
-
- </FrameLayout>
-
- <LinearLayout
- android:id="@+id/loading_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center"
- android:visibility="gone" >
-
- <TextView
- android:id="@+id/loading_message"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceLarge" />
- </LinearLayout>
-
- <FrameLayout
- android:id="@+id/headlines_fragment"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
- </FrameLayout>
-
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/headlines"
+ android:fitsSystemWindows="true"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent" >
+
+ <FrameLayout
+ android:id="@+id/sw600dp_port_anchor"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" >
+
+ </FrameLayout>
+
+ <LinearLayout
+ android:id="@+id/loading_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:visibility="gone" >
+
+ <TextView
+ android:id="@+id/loading_message"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceLarge" />
+ </LinearLayout>
+
+ <FrameLayout
+ android:id="@+id/headlines_fragment"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" >
+ </FrameLayout>
+
</LinearLayout> \ No newline at end of file
diff --git a/res/layout-sw600dp-port/headlines_articles.xml b/orgfoxttrss/src/main/res/layout-sw600dp-port/headlines_articles.xml
index c864d100..36b29751 100644
--- a/res/layout-sw600dp-port/headlines_articles.xml
+++ b/orgfoxttrss/src/main/res/layout-sw600dp-port/headlines_articles.xml
@@ -1,56 +1,56 @@
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/main"
- android:fitsSystemWindows="true"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical">
-
- <FrameLayout
- android:id="@+id/sw600dp_anchor"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:visibility="gone" >
- </FrameLayout>
-
- <LinearLayout
- android:id="@+id/loading_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="?loadingBackground"
- android:gravity="center"
- android:orientation="vertical"
- android:visibility="visible" >
-
- <TextView
- android:id="@+id/loading_message"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_horizontal"
- android:text="@string/loading_message"
- android:textAppearance="?android:attr/textAppearanceLarge" />
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/fragment_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
-
- <FrameLayout
- android:id="@+id/headlines_fragment"
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="0.3"
- android:background="?headlinesBackgroundSolid" >
- </FrameLayout>
-
- <FrameLayout
- android:id="@+id/article_fragment"
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="0.7"
- android:background="?articleBackground" >
- </FrameLayout>
- </LinearLayout>
-
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/main"
+ android:fitsSystemWindows="true"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical">
+
+ <FrameLayout
+ android:id="@+id/sw600dp_anchor"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:visibility="gone" >
+ </FrameLayout>
+
+ <LinearLayout
+ android:id="@+id/loading_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="?loadingBackground"
+ android:gravity="center"
+ android:orientation="vertical"
+ android:visibility="visible" >
+
+ <TextView
+ android:id="@+id/loading_message"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
+ android:text="@string/loading_message"
+ android:textAppearance="?android:attr/textAppearanceLarge" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/fragment_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical" >
+
+ <FrameLayout
+ android:id="@+id/headlines_fragment"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="0.3"
+ android:background="?headlinesBackgroundSolid" >
+ </FrameLayout>
+
+ <FrameLayout
+ android:id="@+id/article_fragment"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="0.7"
+ android:background="?articleBackground" >
+ </FrameLayout>
+ </LinearLayout>
+
</LinearLayout> \ No newline at end of file
diff --git a/res/layout-sw600dp-land/headlines.xml b/orgfoxttrss/src/main/res/layout-sw700dp/headlines.xml
index a7cc2c0d..2162232e 100644
--- a/res/layout-sw600dp-land/headlines.xml
+++ b/orgfoxttrss/src/main/res/layout-sw700dp/headlines.xml
@@ -1,55 +1,55 @@
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/main"
- android:fitsSystemWindows="true"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
-
- <FrameLayout
- android:id="@+id/sw600dp_anchor"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:visibility="gone" >
-
- </FrameLayout>
-
- <LinearLayout
- android:id="@+id/loading_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center"
- android:visibility="gone" >
-
- <TextView
- android:id="@+id/loading_message"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceLarge" />
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/fragment_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:baselineAligned="false"
- android:weightSum="1.1"
- android:orientation="horizontal" >
-
- <FrameLayout
- android:id="@+id/feeds_fragment"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:background="?feedlistBackground" >
- </FrameLayout>
-
- <FrameLayout
- android:id="@+id/headlines_fragment"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="2"
- android:background="?headlinesBackground" >
- </FrameLayout>
- </LinearLayout>
-
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/main"
+ android:fitsSystemWindows="true"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <FrameLayout
+ android:id="@+id/sw600dp_anchor"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:visibility="gone" >
+
+ </FrameLayout>
+
+ <LinearLayout
+ android:id="@+id/loading_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:visibility="gone" >
+
+ <TextView
+ android:id="@+id/loading_message"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceLarge" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/fragment_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:baselineAligned="false"
+ android:weightSum="1.1"
+ android:orientation="horizontal" >
+
+ <FrameLayout
+ android:id="@+id/feeds_fragment"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:background="?feedlistBackground" >
+ </FrameLayout>
+
+ <FrameLayout
+ android:id="@+id/headlines_fragment"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="2"
+ android:background="?headlinesBackground" >
+ </FrameLayout>
+ </LinearLayout>
+
</LinearLayout> \ No newline at end of file
diff --git a/res/layout-sw700dp/headlines_articles.xml b/orgfoxttrss/src/main/res/layout-sw700dp/headlines_articles.xml
index aa786015..367f492a 100644
--- a/res/layout-sw700dp/headlines_articles.xml
+++ b/orgfoxttrss/src/main/res/layout-sw700dp/headlines_articles.xml
@@ -1,57 +1,57 @@
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/headlines"
- android:fitsSystemWindows="true"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
-
- <FrameLayout
- android:id="@+id/sw600dp_anchor"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:visibility="gone" >
- </FrameLayout>
-
- <LinearLayout
- android:id="@+id/loading_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="?loadingBackground"
- android:gravity="center"
- android:orientation="vertical"
- android:visibility="visible" >
-
- <TextView
- android:id="@+id/loading_message"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_horizontal"
- android:text="@string/loading_message"
- android:textAppearance="?android:attr/textAppearanceLarge" />
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/fragment_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:baselineAligned="false"
- android:orientation="horizontal" >
-
- <FrameLayout
- android:id="@+id/headlines_fragment"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="0.4"
- android:background="?feedlistBackground" >
- </FrameLayout>
-
- <FrameLayout
- android:id="@+id/article_fragment"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="0.6"
- android:background="?articleBackground" >
- </FrameLayout>
- </LinearLayout>
-
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/headlines"
+ android:fitsSystemWindows="true"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <FrameLayout
+ android:id="@+id/sw600dp_anchor"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:visibility="gone" >
+ </FrameLayout>
+
+ <LinearLayout
+ android:id="@+id/loading_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="?loadingBackground"
+ android:gravity="center"
+ android:orientation="vertical"
+ android:visibility="visible" >
+
+ <TextView
+ android:id="@+id/loading_message"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
+ android:text="@string/loading_message"
+ android:textAppearance="?android:attr/textAppearanceLarge" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/fragment_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:baselineAligned="false"
+ android:orientation="horizontal" >
+
+ <FrameLayout
+ android:id="@+id/headlines_fragment"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="0.4"
+ android:background="?feedlistBackground" >
+ </FrameLayout>
+
+ <FrameLayout
+ android:id="@+id/article_fragment"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="0.6"
+ android:background="?articleBackground" >
+ </FrameLayout>
+ </LinearLayout>
+
</LinearLayout> \ No newline at end of file
diff --git a/res/layout/article_fragment.xml b/orgfoxttrss/src/main/res/layout/article_fragment.xml
index fde7c106..56d42d89 100644
--- a/res/layout/article_fragment.xml
+++ b/orgfoxttrss/src/main/res/layout/article_fragment.xml
@@ -1,103 +1,103 @@
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/article_fragment"
- android:layout_width="fill_parent"
- android:layout_height="match_parent"
- android:background="?articleBackground">
-
- <org.fox.ttrss.util.NoChildFocusScrollView
- android:id="@+id/article_scrollview"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:fillViewport="false" >
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
-
- <LinearLayout
- android:id="@+id/article_header"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- android:paddingBottom="6dp" >
-
- <TextView
- android:id="@+id/title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:paddingTop="4dp"
- android:text="My simple headline"
- android:textColor="?linkColor"
- android:textSize="18sp" />
-
- <TextView
- android:id="@+id/comments"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:fontFamily="sans-serif-light"
- android:paddingTop="4dp"
- android:text="24 comments"
- android:textColor="?linkColor"
- android:textSize="12sp" />
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:paddingTop="4dp"
- android:paddingBottom="4dp" >
-
- <TextView
- android:id="@+id/tags"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:ellipsize="middle"
- android:singleLine="true"
- android:fontFamily="sans-serif-light"
- 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="0"
- android:gravity="right"
- android:layout_marginLeft="10dp"
- android:fontFamily="sans-serif-light"
- android:text="Jan 01, 12:00"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp" />
-
- </LinearLayout>
-
- </LinearLayout>
-
- <TextView
- android:id="@+id/note"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:background="?articleNoteBackground"
- android:textColor="?articleNoteTextColor"
- android:textSize="13sp"
- android:padding="2dp"
- android:layout_marginBottom="6dp"
- android:text="[Article note]" />
-
- <org.fox.ttrss.util.LessBrokenWebView
- android:id="@+id/content"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
-
- </LinearLayout>
- </org.fox.ttrss.util.NoChildFocusScrollView>
-
-
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/article_fragment"
+ android:layout_width="fill_parent"
+ android:layout_height="match_parent"
+ android:background="?articleBackground">
+
+ <org.fox.ttrss.util.NoChildFocusScrollView
+ android:id="@+id/article_scrollview"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:fillViewport="false" >
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical" >
+
+ <LinearLayout
+ android:id="@+id/article_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingBottom="6dp" >
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingTop="4dp"
+ android:text="My simple headline"
+ android:textColor="?linkColor"
+ android:textSize="18sp" />
+
+ <TextView
+ android:id="@+id/comments"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:fontFamily="sans-serif-light"
+ android:paddingTop="4dp"
+ android:text="24 comments"
+ android:textColor="?linkColor"
+ android:textSize="12sp" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingTop="4dp"
+ android:paddingBottom="4dp" >
+
+ <TextView
+ android:id="@+id/tags"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:ellipsize="middle"
+ android:singleLine="true"
+ android:fontFamily="sans-serif-light"
+ 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="0"
+ android:gravity="right"
+ android:layout_marginLeft="10dp"
+ android:fontFamily="sans-serif-light"
+ android:text="Jan 01, 12:00"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="?headlineSecondaryTextColor"
+ android:textSize="12sp" />
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/note"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:background="?articleNoteBackground"
+ android:textColor="?articleNoteTextColor"
+ android:textSize="13sp"
+ android:padding="2dp"
+ android:layout_marginBottom="6dp"
+ android:text="[Article note]" />
+
+ <org.fox.ttrss.util.LessBrokenWebView
+ android:id="@+id/content"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ </LinearLayout>
+ </org.fox.ttrss.util.NoChildFocusScrollView>
+
+
</RelativeLayout> \ No newline at end of file
diff --git a/res/layout/article_fragment_compat.xml b/orgfoxttrss/src/main/res/layout/article_fragment_compat.xml
index 01264703..01264703 100644
--- a/res/layout/article_fragment_compat.xml
+++ b/orgfoxttrss/src/main/res/layout/article_fragment_compat.xml
diff --git a/res/layout/article_pager.xml b/orgfoxttrss/src/main/res/layout/article_pager.xml
index 495eac4b..fd5fa057 100644
--- a/res/layout/article_pager.xml
+++ b/orgfoxttrss/src/main/res/layout/article_pager.xml
@@ -1,22 +1,22 @@
-<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/article_pager_container"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" >
-
- <android.support.v4.view.ViewPager
- android:id="@+id/article_pager"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_alignParentTop="true" >
-
- </android.support.v4.view.ViewPager>
-
- <com.viewpagerindicator.UnderlinePageIndicator
- android:id="@+id/article_titles"
- android:layout_width="fill_parent"
- android:layout_height="2dp"
- android:layout_alignParentBottom="true"
- android:layout_alignParentLeft="true" />
-
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/article_pager_container"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent" >
+
+ <android.support.v4.view.ViewPager
+ android:id="@+id/article_pager"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:layout_alignParentTop="true" >
+
+ </android.support.v4.view.ViewPager>
+
+ <com.viewpagerindicator.UnderlinePageIndicator
+ android:id="@+id/article_titles"
+ android:layout_width="fill_parent"
+ android:layout_height="2dp"
+ android:layout_alignParentBottom="true"
+ android:layout_alignParentLeft="true" />
+
</RelativeLayout> \ No newline at end of file
diff --git a/res/layout/cats_fragment.xml b/orgfoxttrss/src/main/res/layout/cats_fragment.xml
index cc295e1c..4216ebb2 100644
--- a/res/layout/cats_fragment.xml
+++ b/orgfoxttrss/src/main/res/layout/cats_fragment.xml
@@ -1,44 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/cats_fragment.xml"
- android:layout_width="match_parent"
- android:layout_height="fill_parent" >
-
- <LinearLayout
- android:id="@+id/loading_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center" >
-
- <TextView
- android:id="@+id/loading_message"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceLarge" >
- </TextView>
- </LinearLayout>
-
- <android.support.v4.widget.SwipeRefreshLayout
- android:id="@+id/feeds_swipe_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
-
- <ListView
- android:id="@+id/feeds"
- android:layoutAnimation="@anim/layout_feeds"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
- </ListView>
- </android.support.v4.widget.SwipeRefreshLayout>
-
- <TextView
- android:id="@+id/no_feeds"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:text="@string/no_feeds"
- android:textAppearance="?android:attr/textAppearanceLarge"
- android:visibility="invisible" >
- </TextView>
-
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/cats_fragment.xml"
+ android:layout_width="match_parent"
+ android:layout_height="fill_parent" >
+
+ <LinearLayout
+ android:id="@+id/loading_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center" >
+
+ <TextView
+ android:id="@+id/loading_message"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceLarge" >
+ </TextView>
+ </LinearLayout>
+
+ <android.support.v4.widget.SwipeRefreshLayout
+ android:id="@+id/feeds_swipe_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" >
+
+ <ListView
+ android:id="@+id/feeds"
+ android:layoutAnimation="@anim/layout_feeds"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" >
+ </ListView>
+ </android.support.v4.widget.SwipeRefreshLayout>
+
+ <TextView
+ android:id="@+id/no_feeds"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:text="@string/no_feeds"
+ android:textAppearance="?android:attr/textAppearanceLarge"
+ android:visibility="invisible" >
+ </TextView>
+
</FrameLayout> \ No newline at end of file
diff --git a/res/layout/dummy_fragment.xml b/orgfoxttrss/src/main/res/layout/dummy_fragment.xml
index 665e60db..dd1e9876 100644
--- a/res/layout/dummy_fragment.xml
+++ b/orgfoxttrss/src/main/res/layout/dummy_fragment.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/dummy_fragment"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" >
-
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/dummy_fragment"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent" >
+
</FrameLayout> \ No newline at end of file
diff --git a/res/layout/feeds.xml b/orgfoxttrss/src/main/res/layout/feeds.xml
index ce021004..8af9c50d 100644
--- a/res/layout/feeds.xml
+++ b/orgfoxttrss/src/main/res/layout/feeds.xml
@@ -1,29 +1,29 @@
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/main"
- android:fitsSystemWindows="true"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" >
-
- <LinearLayout
- android:id="@+id/loading_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center"
- android:visibility="gone" >
-
- <TextView
- android:id="@+id/loading_message"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceLarge" />
- </LinearLayout>
-
- <FrameLayout
- android:id="@+id/feeds_fragment"
- android:background="?smallScreenBackground"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
- </FrameLayout>
-
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/main"
+ android:fitsSystemWindows="true"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent" >
+
+ <LinearLayout
+ android:id="@+id/loading_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:visibility="gone" >
+
+ <TextView
+ android:id="@+id/loading_message"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceLarge" />
+ </LinearLayout>
+
+ <FrameLayout
+ android:id="@+id/feeds_fragment"
+ android:background="?smallScreenBackground"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" >
+ </FrameLayout>
+
</LinearLayout> \ No newline at end of file
diff --git a/res/layout/feeds_fragment.xml b/orgfoxttrss/src/main/res/layout/feeds_fragment.xml
index 91648b22..b57f0bac 100644
--- a/res/layout/feeds_fragment.xml
+++ b/orgfoxttrss/src/main/res/layout/feeds_fragment.xml
@@ -1,44 +1,44 @@
-<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/feeds_fragment"
- android:layout_width="match_parent"
- android:layout_height="fill_parent" >
-
- <LinearLayout
- android:id="@+id/loading_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center" >
-
- <TextView
- android:id="@+id/loading_message"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceLarge" >
- </TextView>
- </LinearLayout>
-
- <android.support.v4.widget.SwipeRefreshLayout
- android:id="@+id/feeds_swipe_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
-
- <ListView
- android:id="@+id/feeds"
- android:layoutAnimation="@anim/layout_feeds"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
- </ListView>
- </android.support.v4.widget.SwipeRefreshLayout>
-
- <TextView
- android:id="@+id/no_feeds"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:text="@string/no_feeds"
- android:textAppearance="?android:attr/textAppearanceLarge"
- android:visibility="invisible" >
- </TextView>
-
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/feeds_fragment"
+ android:layout_width="match_parent"
+ android:layout_height="fill_parent" >
+
+ <LinearLayout
+ android:id="@+id/loading_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center" >
+
+ <TextView
+ android:id="@+id/loading_message"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceLarge" >
+ </TextView>
+ </LinearLayout>
+
+ <android.support.v4.widget.SwipeRefreshLayout
+ android:id="@+id/feeds_swipe_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" >
+
+ <ListView
+ android:id="@+id/feeds"
+ android:layoutAnimation="@anim/layout_feeds"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" >
+ </ListView>
+ </android.support.v4.widget.SwipeRefreshLayout>
+
+ <TextView
+ android:id="@+id/no_feeds"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:text="@string/no_feeds"
+ android:textAppearance="?android:attr/textAppearanceLarge"
+ android:visibility="invisible" >
+ </TextView>
+
</FrameLayout> \ No newline at end of file
diff --git a/res/layout/feeds_row.xml b/orgfoxttrss/src/main/res/layout/feeds_row.xml
index 9424fde8..9424fde8 100644
--- a/res/layout/feeds_row.xml
+++ b/orgfoxttrss/src/main/res/layout/feeds_row.xml
diff --git a/res/layout/feeds_row_selected.xml b/orgfoxttrss/src/main/res/layout/feeds_row_selected.xml
index 674e9f23..674e9f23 100644
--- a/res/layout/feeds_row_selected.xml
+++ b/orgfoxttrss/src/main/res/layout/feeds_row_selected.xml
diff --git a/res/layout/headlines.xml b/orgfoxttrss/src/main/res/layout/headlines.xml
index 66eeb0fb..4e9bb566 100644
--- a/res/layout/headlines.xml
+++ b/orgfoxttrss/src/main/res/layout/headlines.xml
@@ -1,29 +1,29 @@
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/headlines"
- android:fitsSystemWindows="true"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" >
-
- <LinearLayout
- android:id="@+id/loading_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center"
- android:visibility="gone" >
-
- <TextView
- android:id="@+id/loading_message"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceLarge" />
- </LinearLayout>
-
- <FrameLayout
- android:id="@+id/headlines_fragment"
- android:background="?smallScreenBackground"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
- </FrameLayout>
-
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/headlines"
+ android:fitsSystemWindows="true"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent" >
+
+ <LinearLayout
+ android:id="@+id/loading_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:visibility="gone" >
+
+ <TextView
+ android:id="@+id/loading_message"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceLarge" />
+ </LinearLayout>
+
+ <FrameLayout
+ android:id="@+id/headlines_fragment"
+ android:background="?smallScreenBackground"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" >
+ </FrameLayout>
+
</LinearLayout> \ No newline at end of file
diff --git a/res/layout/headlines_articles.xml b/orgfoxttrss/src/main/res/layout/headlines_articles.xml
index 9f477e8a..27895b38 100644
--- a/res/layout/headlines_articles.xml
+++ b/orgfoxttrss/src/main/res/layout/headlines_articles.xml
@@ -1,50 +1,50 @@
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/headlines"
- android:fitsSystemWindows="true"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
-
- <LinearLayout
- android:id="@+id/loading_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="?loadingBackground"
- android:gravity="center"
- android:orientation="vertical"
- android:visibility="visible" >
-
- <TextView
- android:id="@+id/loading_message"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_horizontal"
- android:text="@string/loading_message"
- android:textAppearance="?android:attr/textAppearanceLarge" />
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/fragment_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:baselineAligned="false"
- android:orientation="horizontal" >
-
- <FrameLayout
- android:id="@+id/headlines_fragment"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="0"
- android:background="?feedlistBackground" >
- </FrameLayout>
-
- <FrameLayout
- android:id="@+id/article_fragment"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:background="?articleBackground" >
- </FrameLayout>
- </LinearLayout>
-
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/headlines"
+ android:fitsSystemWindows="true"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical" >
+
+ <LinearLayout
+ android:id="@+id/loading_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="?loadingBackground"
+ android:gravity="center"
+ android:orientation="vertical"
+ android:visibility="visible" >
+
+ <TextView
+ android:id="@+id/loading_message"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
+ android:text="@string/loading_message"
+ android:textAppearance="?android:attr/textAppearanceLarge" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/fragment_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:baselineAligned="false"
+ android:orientation="horizontal" >
+
+ <FrameLayout
+ android:id="@+id/headlines_fragment"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="0"
+ android:background="?feedlistBackground" >
+ </FrameLayout>
+
+ <FrameLayout
+ android:id="@+id/article_fragment"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:background="?articleBackground" >
+ </FrameLayout>
+ </LinearLayout>
+
</LinearLayout> \ No newline at end of file
diff --git a/res/layout/headlines_fragment.xml b/orgfoxttrss/src/main/res/layout/headlines_fragment.xml
index 712da85e..63f7f856 100644
--- a/res/layout/headlines_fragment.xml
+++ b/orgfoxttrss/src/main/res/layout/headlines_fragment.xml
@@ -1,47 +1,47 @@
-<?xml version="1.0" encoding="utf-8"?>
-<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.support.v4.widget.SwipeRefreshLayout
- android:id="@+id/headlines_swipe_container"
- android:layout_width="match_parent"
- android:layout_height="match_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>
- </android.support.v4.widget.SwipeRefreshLayout>
-
- <LinearLayout
- android:id="@+id/loading_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center" >
-
- <TextView
- android:id="@+id/loading_message"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceLarge" >
- </TextView>
- </LinearLayout>
-
- <TextView
- android:id="@+id/no_headlines"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:text="@string/no_headlines"
- android:textAppearance="?android:attr/textAppearanceLarge"
- android:visibility="invisible" >
- </TextView>
-
+<?xml version="1.0" encoding="utf-8"?>
+<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.support.v4.widget.SwipeRefreshLayout
+ android:id="@+id/headlines_swipe_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_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>
+ </android.support.v4.widget.SwipeRefreshLayout>
+
+ <LinearLayout
+ android:id="@+id/loading_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center" >
+
+ <TextView
+ android:id="@+id/loading_message"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceLarge" >
+ </TextView>
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/no_headlines"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:text="@string/no_headlines"
+ android:textAppearance="?android:attr/textAppearanceLarge"
+ android:visibility="invisible" >
+ </TextView>
+
</FrameLayout> \ No newline at end of file
diff --git a/res/layout/headlines_row.xml b/orgfoxttrss/src/main/res/layout/headlines_row.xml
index 77233430..52f17ba3 100644
--- a/res/layout/headlines_row.xml
+++ b/orgfoxttrss/src/main/res/layout/headlines_row.xml
@@ -1,162 +1,162 @@
-<?xml version="1.0" encoding="utf-8"?>
-<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:paddingBottom="3dp"
- android:paddingLeft="6dp"
- android:paddingRight="6dp"
- android:paddingTop="3dp"
- tools:ignore="HardcodedText" >
-
- <LinearLayout
- android:id="@+id/inner_row"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="?headlineNormalBackground"
- android:orientation="vertical"
- android:paddingBottom="2dp"
- android:paddingLeft="6dp"
- android:paddingRight="6dp"
- android:paddingTop="6dp" >
-
- <LinearLayout
- android:id="@+id/linearLayout6"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- 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:gravity="center_vertical"
- android:singleLine="false"
- android:text="Sample entry title"
- android:textColor="?headlineTextColor"
- android:textSize="18sp" />
- </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:paddingTop="3dp" >
-
- <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:fontFamily="sans-serif-light"
- 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:fontFamily="sans-serif-light"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp" />
- </LinearLayout>
-
- <FrameLayout
- android:paddingTop="3dp"
- android:id="@+id/flavorImageHolder"
- android:layout_width="match_parent"
- android:layout_gravity="center"
- android:layout_height="wrap_content" >
-
- <org.fox.ttrss.util.EnlargingImageView
- android:id="@+id/flavor_image"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:adjustViewBounds="true"
- android:background="@drawable/flavor_image_border"
- android:scaleType="fitCenter"
- android:cropToPadding="true"
- android:padding="2dp"
- android:visibility="gone" />
- </FrameLayout>
-
- <TextView
- android:id="@+id/excerpt"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingTop="3dp"
- android:lineSpacingExtra="2sp"
- 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" />
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_vertical" >
-
- <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/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:fontFamily="sans-serif-light"
- android:textStyle="italic"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp" />
-
- <ImageView
- android:id="@+id/marked"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="8dp"
- android:layout_weight="0"
- android:clickable="true"
- android:src="@drawable/ic_star_empty" />
-
- <ImageView
- android:id="@+id/published"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="6dp"
- android:layout_weight="0"
- android:clickable="true"
- android:src="@drawable/ic_unpublished" />
-
- <ImageView
- android:id="@+id/article_menu_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:paddingLeft="6dp"
- android:paddingRight="6dp"
- android:src="@drawable/ic_action_overflow" />
- </LinearLayout>
- </LinearLayout>
-
+<?xml version="1.0" encoding="utf-8"?>
+<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:paddingBottom="3dp"
+ android:paddingLeft="6dp"
+ android:paddingRight="6dp"
+ android:paddingTop="3dp"
+ tools:ignore="HardcodedText" >
+
+ <LinearLayout
+ android:id="@+id/inner_row"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="?headlineNormalBackground"
+ android:orientation="vertical"
+ android:paddingBottom="2dp"
+ android:paddingLeft="6dp"
+ android:paddingRight="6dp"
+ android:paddingTop="6dp" >
+
+ <LinearLayout
+ android:id="@+id/linearLayout6"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ 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:gravity="center_vertical"
+ android:singleLine="false"
+ android:text="Sample entry title"
+ android:textColor="?headlineTextColor"
+ android:textSize="18sp" />
+ </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:paddingTop="3dp" >
+
+ <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:fontFamily="sans-serif-light"
+ 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:fontFamily="sans-serif-light"
+ android:textColor="?headlineSecondaryTextColor"
+ android:textSize="12sp" />
+ </LinearLayout>
+
+ <FrameLayout
+ android:paddingTop="3dp"
+ android:id="@+id/flavorImageHolder"
+ android:layout_width="match_parent"
+ android:layout_gravity="center"
+ android:layout_height="wrap_content" >
+
+ <org.fox.ttrss.util.EnlargingImageView
+ android:id="@+id/flavor_image"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:adjustViewBounds="true"
+ android:background="@drawable/flavor_image_border"
+ android:scaleType="fitCenter"
+ android:cropToPadding="true"
+ android:padding="2dp"
+ android:visibility="gone" />
+ </FrameLayout>
+
+ <TextView
+ android:id="@+id/excerpt"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingTop="3dp"
+ android:lineSpacingExtra="2sp"
+ 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" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical" >
+
+ <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/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:fontFamily="sans-serif-light"
+ android:textStyle="italic"
+ android:textColor="?headlineSecondaryTextColor"
+ android:textSize="12sp" />
+
+ <ImageView
+ android:id="@+id/marked"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginRight="8dp"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:src="@drawable/ic_star_empty" />
+
+ <ImageView
+ android:id="@+id/published"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginRight="6dp"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:src="@drawable/ic_unpublished" />
+
+ <ImageView
+ android:id="@+id/article_menu_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:paddingLeft="6dp"
+ android:paddingRight="6dp"
+ android:src="@drawable/ic_action_overflow" />
+ </LinearLayout>
+ </LinearLayout>
+
</FrameLayout> \ No newline at end of file
diff --git a/res/layout/headlines_row_loadmore.xml b/orgfoxttrss/src/main/res/layout/headlines_row_loadmore.xml
index 053186bd..c8f41688 100644
--- a/res/layout/headlines_row_loadmore.xml
+++ b/orgfoxttrss/src/main/res/layout/headlines_row_loadmore.xml
@@ -1,26 +1,26 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/headlines_row_loadmore"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:background="?headlineNormalBackground"
- android:gravity="center"
- android:padding="5dp"
- android:orientation="horizontal" >
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/headlines_row_loadmore"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:background="?headlineNormalBackground"
+ android:gravity="center"
+ android:padding="5dp"
+ android:orientation="horizontal" >
+
+
+ <ProgressBar
+ android:id="@+id/loadmore_progress"
+ style="?android:attr/progressBarStyleSmall"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
+ <TextView
+ android:paddingLeft="6dp"
+ android:id="@+id/loadmore_label"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="?headlineTextColor"
+ android:text="@string/loading_message" />
-
- <ProgressBar
- android:id="@+id/loadmore_progress"
- style="?android:attr/progressBarStyleSmall"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <TextView
- android:paddingLeft="6dp"
- android:id="@+id/loadmore_label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textColor="?headlineTextColor"
- android:text="@string/loading_message" />
-
</LinearLayout> \ No newline at end of file
diff --git a/res/layout/headlines_row_selected.xml b/orgfoxttrss/src/main/res/layout/headlines_row_selected.xml
index b8c4516a..149ff555 100644
--- a/res/layout/headlines_row_selected.xml
+++ b/orgfoxttrss/src/main/res/layout/headlines_row_selected.xml
@@ -1,160 +1,160 @@
-<?xml version="1.0" encoding="utf-8"?>
-<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:paddingBottom="3dp"
- android:paddingLeft="6dp"
- android:paddingRight="6dp"
- android:paddingTop="3dp" >
-
- <LinearLayout
- android:id="@+id/inner_row"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="?headlineSelectedBackground"
- android:orientation="vertical"
- android:paddingBottom="2dp"
- android:paddingLeft="6dp"
- android:paddingRight="6dp"
- android:paddingTop="6dp" >
-
- <LinearLayout
- android:id="@+id/linearLayout6"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- 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:gravity="center_vertical"
- android:singleLine="false"
- android:text="Sample entry title"
- android:textColor="?attr/headlineSelectedTextColor"
- android:textSize="18sp" />
- </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:paddingTop="3dp" >
-
- <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:fontFamily="sans-serif-light"
- 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:fontFamily="sans-serif-light"
- android:textColor="?headlineSelectedSecondaryTextColor"
- android:textSize="12sp" />
- </LinearLayout>
-
- <FrameLayout
- android:paddingTop="3dp"
- android:id="@+id/flavorImageHolder"
- android:layout_width="match_parent"
- android:layout_gravity="center"
- android:layout_height="wrap_content" >
-
- <org.fox.ttrss.util.EnlargingImageView
- android:id="@+id/flavor_image"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:adjustViewBounds="true"
- android:background="@drawable/flavor_image_border"
- android:scaleType="fitCenter"
- android:cropToPadding="true"
- android:padding="2dp"
- android:visibility="gone" />
- </FrameLayout>
-
- <TextView
- android:id="@+id/excerpt"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingTop="3dp"
- android:lineSpacingExtra="2sp"
- 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" />
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_vertical" >
-
- <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/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:fontFamily="sans-serif-light"
- android:textStyle="italic"
- android:textColor="?headlineSelectedSecondaryTextColor"
- android:textSize="12sp" />
-
- <ImageView
- android:id="@+id/marked"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="8dp"
- android:layout_weight="0"
- android:clickable="true"
- android:src="@drawable/ic_star_empty" />
-
- <ImageView
- android:id="@+id/published"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="6dp"
- android:layout_weight="0"
- android:clickable="true"
- android:src="@drawable/ic_unpublished" />
-
- <ImageView
- android:id="@+id/article_menu_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:paddingLeft="6dp"
- android:paddingRight="6dp"
- android:src="@drawable/ic_action_overflow" />
- </LinearLayout>
- </LinearLayout>
-
+<?xml version="1.0" encoding="utf-8"?>
+<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:paddingBottom="3dp"
+ android:paddingLeft="6dp"
+ android:paddingRight="6dp"
+ android:paddingTop="3dp" >
+
+ <LinearLayout
+ android:id="@+id/inner_row"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="?headlineSelectedBackground"
+ android:orientation="vertical"
+ android:paddingBottom="2dp"
+ android:paddingLeft="6dp"
+ android:paddingRight="6dp"
+ android:paddingTop="6dp" >
+
+ <LinearLayout
+ android:id="@+id/linearLayout6"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ 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:gravity="center_vertical"
+ android:singleLine="false"
+ android:text="Sample entry title"
+ android:textColor="?attr/headlineSelectedTextColor"
+ android:textSize="18sp" />
+ </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:paddingTop="3dp" >
+
+ <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:fontFamily="sans-serif-light"
+ 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:fontFamily="sans-serif-light"
+ android:textColor="?headlineSelectedSecondaryTextColor"
+ android:textSize="12sp" />
+ </LinearLayout>
+
+ <FrameLayout
+ android:paddingTop="3dp"
+ android:id="@+id/flavorImageHolder"
+ android:layout_width="match_parent"
+ android:layout_gravity="center"
+ android:layout_height="wrap_content" >
+
+ <org.fox.ttrss.util.EnlargingImageView
+ android:id="@+id/flavor_image"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:adjustViewBounds="true"
+ android:background="@drawable/flavor_image_border"
+ android:scaleType="fitCenter"
+ android:cropToPadding="true"
+ android:padding="2dp"
+ android:visibility="gone" />
+ </FrameLayout>
+
+ <TextView
+ android:id="@+id/excerpt"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingTop="3dp"
+ android:lineSpacingExtra="2sp"
+ 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" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical" >
+
+ <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/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:fontFamily="sans-serif-light"
+ android:textStyle="italic"
+ android:textColor="?headlineSelectedSecondaryTextColor"
+ android:textSize="12sp" />
+
+ <ImageView
+ android:id="@+id/marked"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginRight="8dp"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:src="@drawable/ic_star_empty" />
+
+ <ImageView
+ android:id="@+id/published"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginRight="6dp"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:src="@drawable/ic_unpublished" />
+
+ <ImageView
+ android:id="@+id/article_menu_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:paddingLeft="6dp"
+ android:paddingRight="6dp"
+ android:src="@drawable/ic_action_overflow" />
+ </LinearLayout>
+ </LinearLayout>
+
</FrameLayout> \ No newline at end of file
diff --git a/res/layout/headlines_row_selected_unread.xml b/orgfoxttrss/src/main/res/layout/headlines_row_selected_unread.xml
index 927793c8..833c09e2 100644
--- a/res/layout/headlines_row_selected_unread.xml
+++ b/orgfoxttrss/src/main/res/layout/headlines_row_selected_unread.xml
@@ -1,161 +1,161 @@
-<?xml version="1.0" encoding="utf-8"?>
-<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:paddingBottom="3dp"
- android:paddingLeft="6dp"
- android:paddingRight="6dp"
- android:paddingTop="3dp" >
-
- <LinearLayout
- android:id="@+id/inner_row"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="?headlineSelectedBackground"
- android:orientation="vertical"
- android:paddingBottom="2dp"
- android:paddingLeft="6dp"
- android:paddingRight="6dp"
- android:paddingTop="6dp" >
-
- <LinearLayout
- android:id="@+id/linearLayout6"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- 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:gravity="center_vertical"
- android:singleLine="false"
- android:text="Sample entry title"
- android:textColor="?headlineSelectedTextColor"
- android:textSize="18sp"
- 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:paddingTop="3dp" >
-
- <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:fontFamily="sans-serif-light"
- 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:fontFamily="sans-serif-light"
- android:text="Jan 01, 12:00"
- android:textColor="?headlineSelectedSecondaryTextColor"
- android:textSize="12sp" />
- </LinearLayout>
-
- <FrameLayout
- android:paddingTop="3dp"
- android:id="@+id/flavorImageHolder"
- android:layout_width="match_parent"
- android:layout_gravity="center"
- android:layout_height="wrap_content" >
-
- <org.fox.ttrss.util.EnlargingImageView
- android:id="@+id/flavor_image"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:adjustViewBounds="true"
- android:background="@drawable/flavor_image_border"
- android:scaleType="fitCenter"
- android:cropToPadding="true"
- android:padding="2dp"
- android:visibility="gone" />
- </FrameLayout>
-
- <TextView
- android:id="@+id/excerpt"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingTop="3dp"
- android:lineSpacingExtra="2sp"
- 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" />
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_vertical" >
-
- <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/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:fontFamily="sans-serif-light"
- android:textStyle="italic"
- android:textColor="?headlineSelectedSecondaryTextColor"
- android:textSize="12sp" />
-
- <ImageView
- android:id="@+id/marked"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="8dp"
- android:layout_weight="0"
- android:clickable="true"
- android:src="@drawable/ic_star_empty" />
-
- <ImageView
- android:id="@+id/published"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="6dp"
- android:layout_weight="0"
- android:clickable="true"
- android:src="@drawable/ic_unpublished" />
-
- <ImageView
- android:id="@+id/article_menu_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:paddingLeft="6dp"
- android:paddingRight="6dp"
- android:src="@drawable/ic_action_overflow" />
- </LinearLayout>
- </LinearLayout>
-
-</FrameLayout>
+<?xml version="1.0" encoding="utf-8"?>
+<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:paddingBottom="3dp"
+ android:paddingLeft="6dp"
+ android:paddingRight="6dp"
+ android:paddingTop="3dp" >
+
+ <LinearLayout
+ android:id="@+id/inner_row"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="?headlineSelectedBackground"
+ android:orientation="vertical"
+ android:paddingBottom="2dp"
+ android:paddingLeft="6dp"
+ android:paddingRight="6dp"
+ android:paddingTop="6dp" >
+
+ <LinearLayout
+ android:id="@+id/linearLayout6"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ 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:gravity="center_vertical"
+ android:singleLine="false"
+ android:text="Sample entry title"
+ android:textColor="?headlineSelectedTextColor"
+ android:textSize="18sp"
+ 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:paddingTop="3dp" >
+
+ <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:fontFamily="sans-serif-light"
+ 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:fontFamily="sans-serif-light"
+ android:text="Jan 01, 12:00"
+ android:textColor="?headlineSelectedSecondaryTextColor"
+ android:textSize="12sp" />
+ </LinearLayout>
+
+ <FrameLayout
+ android:paddingTop="3dp"
+ android:id="@+id/flavorImageHolder"
+ android:layout_width="match_parent"
+ android:layout_gravity="center"
+ android:layout_height="wrap_content" >
+
+ <org.fox.ttrss.util.EnlargingImageView
+ android:id="@+id/flavor_image"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:adjustViewBounds="true"
+ android:background="@drawable/flavor_image_border"
+ android:scaleType="fitCenter"
+ android:cropToPadding="true"
+ android:padding="2dp"
+ android:visibility="gone" />
+ </FrameLayout>
+
+ <TextView
+ android:id="@+id/excerpt"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingTop="3dp"
+ android:lineSpacingExtra="2sp"
+ 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" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical" >
+
+ <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/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:fontFamily="sans-serif-light"
+ android:textStyle="italic"
+ android:textColor="?headlineSelectedSecondaryTextColor"
+ android:textSize="12sp" />
+
+ <ImageView
+ android:id="@+id/marked"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginRight="8dp"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:src="@drawable/ic_star_empty" />
+
+ <ImageView
+ android:id="@+id/published"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginRight="6dp"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:src="@drawable/ic_unpublished" />
+
+ <ImageView
+ android:id="@+id/article_menu_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:paddingLeft="6dp"
+ android:paddingRight="6dp"
+ android:src="@drawable/ic_action_overflow" />
+ </LinearLayout>
+ </LinearLayout>
+
+</FrameLayout>
diff --git a/res/layout/headlines_row_unread.xml b/orgfoxttrss/src/main/res/layout/headlines_row_unread.xml
index 107056b9..b5e9d3f6 100644
--- a/res/layout/headlines_row_unread.xml
+++ b/orgfoxttrss/src/main/res/layout/headlines_row_unread.xml
@@ -1,160 +1,160 @@
-<?xml version="1.0" encoding="utf-8"?>
-<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:paddingBottom="3dp"
- android:paddingLeft="6dp"
- android:paddingRight="6dp"
- android:paddingTop="3dp" >
-
- <LinearLayout
- android:id="@+id/inner_row"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="?headlineUnreadBackground"
- android:orientation="vertical"
- android:paddingBottom="2dp"
- android:paddingLeft="6dp"
- android:paddingRight="6dp"
- android:paddingTop="6dp" >
-
- <LinearLayout
- android:id="@+id/linearLayout6"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- 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:gravity="center_vertical"
- android:singleLine="false"
- android:text="Sample entry title"
- android:textColor="?headlineUnreadTextColor"
- android:textSize="18sp"
- 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:paddingTop="3dp" >
-
- <TextView
- android:id="@+id/feed_title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:ellipsize="end"
- android:fontFamily="sans-serif-light"
- 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:fontFamily="sans-serif-light"
- android:gravity="right|center_vertical"
- android:text="Jan 01, 12:00"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp" />
- </LinearLayout>
-
- <FrameLayout
- android:id="@+id/flavorImageHolder"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:padding="10dp" >
-
- <org.fox.ttrss.util.EnlargingImageView
- android:id="@+id/flavor_image"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:adjustViewBounds="true"
- android:background="@drawable/flavor_image_border"
- android:scaleType="fitCenter"
- android:cropToPadding="true"
- android:padding="2dp"
- android:visibility="gone" />
- </FrameLayout>
-
- <TextView
- android:id="@+id/excerpt"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:lineSpacingExtra="2sp"
- 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" />
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_vertical" >
-
- <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/author"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:ellipsize="end"
- android:fontFamily="sans-serif-light"
- android:gravity="center_vertical"
- android:singleLine="true"
- android:text="by Author"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp"
- android:textStyle="italic" />
-
- <ImageView
- android:id="@+id/marked"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="8dp"
- android:layout_weight="0"
- android:clickable="true"
- android:src="@drawable/ic_star_empty" />
-
- <ImageView
- android:id="@+id/published"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="6dp"
- android:layout_weight="0"
- android:clickable="true"
- android:src="@drawable/ic_unpublished" />
-
- <ImageView
- android:id="@+id/article_menu_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:paddingLeft="6dp"
- android:paddingRight="6dp"
- android:src="@drawable/ic_action_overflow" />
- </LinearLayout>
- </LinearLayout>
-
+<?xml version="1.0" encoding="utf-8"?>
+<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:paddingBottom="3dp"
+ android:paddingLeft="6dp"
+ android:paddingRight="6dp"
+ android:paddingTop="3dp" >
+
+ <LinearLayout
+ android:id="@+id/inner_row"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="?headlineUnreadBackground"
+ android:orientation="vertical"
+ android:paddingBottom="2dp"
+ android:paddingLeft="6dp"
+ android:paddingRight="6dp"
+ android:paddingTop="6dp" >
+
+ <LinearLayout
+ android:id="@+id/linearLayout6"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ 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:gravity="center_vertical"
+ android:singleLine="false"
+ android:text="Sample entry title"
+ android:textColor="?headlineUnreadTextColor"
+ android:textSize="18sp"
+ 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:paddingTop="3dp" >
+
+ <TextView
+ android:id="@+id/feed_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:ellipsize="end"
+ android:fontFamily="sans-serif-light"
+ 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:fontFamily="sans-serif-light"
+ android:gravity="right|center_vertical"
+ android:text="Jan 01, 12:00"
+ android:textColor="?headlineSecondaryTextColor"
+ android:textSize="12sp" />
+ </LinearLayout>
+
+ <FrameLayout
+ android:id="@+id/flavorImageHolder"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="10dp" >
+
+ <org.fox.ttrss.util.EnlargingImageView
+ android:id="@+id/flavor_image"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:adjustViewBounds="true"
+ android:background="@drawable/flavor_image_border"
+ android:scaleType="fitCenter"
+ android:cropToPadding="true"
+ android:padding="2dp"
+ android:visibility="gone" />
+ </FrameLayout>
+
+ <TextView
+ android:id="@+id/excerpt"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:lineSpacingExtra="2sp"
+ 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" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical" >
+
+ <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/author"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:ellipsize="end"
+ android:fontFamily="sans-serif-light"
+ android:gravity="center_vertical"
+ android:singleLine="true"
+ android:text="by Author"
+ android:textColor="?headlineSecondaryTextColor"
+ android:textSize="12sp"
+ android:textStyle="italic" />
+
+ <ImageView
+ android:id="@+id/marked"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginRight="8dp"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:src="@drawable/ic_star_empty" />
+
+ <ImageView
+ android:id="@+id/published"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginRight="6dp"
+ android:layout_weight="0"
+ android:clickable="true"
+ android:src="@drawable/ic_unpublished" />
+
+ <ImageView
+ android:id="@+id/article_menu_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:paddingLeft="6dp"
+ android:paddingRight="6dp"
+ android:src="@drawable/ic_action_overflow" />
+ </LinearLayout>
+ </LinearLayout>
+
</FrameLayout> \ No newline at end of file
diff --git a/res/layout/loading_fragment.xml b/orgfoxttrss/src/main/res/layout/loading_fragment.xml
index bc1fd10d..b9b3e977 100644
--- a/res/layout/loading_fragment.xml
+++ b/orgfoxttrss/src/main/res/layout/loading_fragment.xml
@@ -1,14 +1,14 @@
-
- <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" >
-
-
- <ProgressBar
- android:id="@+id/progress"
- style="?android:attr/progressBarStyleLarge"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center" />
-
- </FrameLayout>
+
+ <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent" >
+
+
+ <ProgressBar
+ android:id="@+id/progress"
+ style="?android:attr/progressBarStyleLarge"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center" />
+
+ </FrameLayout>
diff --git a/res/layout/login.xml b/orgfoxttrss/src/main/res/layout/login.xml
index ef6cbcf6..2cfc44b1 100644
--- a/res/layout/login.xml
+++ b/orgfoxttrss/src/main/res/layout/login.xml
@@ -1,15 +1,15 @@
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/loading_container"
- android:layout_width="fill_parent"
- android:fitsSystemWindows="true"
- android:gravity="center"
- android:layout_height="fill_parent" >
-
- <TextView
- android:id="@+id/loading_message"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_horizontal"
- android:text="@string/loading_message" />
-
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/loading_container"
+ android:layout_width="fill_parent"
+ android:fitsSystemWindows="true"
+ android:gravity="center"
+ android:layout_height="fill_parent" >
+
+ <TextView
+ android:id="@+id/loading_message"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
+ android:text="@string/loading_message" />
+
</LinearLayout> \ No newline at end of file
diff --git a/res/layout/select_font_size_dialog.xml b/orgfoxttrss/src/main/res/layout/select_font_size_dialog.xml
index 23a05a8b..f77cc151 100644
--- a/res/layout/select_font_size_dialog.xml
+++ b/orgfoxttrss/src/main/res/layout/select_font_size_dialog.xml
@@ -1,22 +1,22 @@
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
-
- <TextView
- android:id="@+id/text_progress"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="6dip"
- android:gravity="center_horizontal" >
- </TextView>
-
- <SeekBar
- android:id="@+id/seek_bar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="6dip"
- android:layout_marginTop="6dip" />
-
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical" >
+
+ <TextView
+ android:id="@+id/text_progress"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="6dip"
+ android:gravity="center_horizontal" >
+ </TextView>
+
+ <SeekBar
+ android:id="@+id/seek_bar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="6dip"
+ android:layout_marginTop="6dip" />
+
</LinearLayout> \ No newline at end of file
diff --git a/res/layout/share.xml b/orgfoxttrss/src/main/res/layout/share.xml
index 3b0dd682..dfd09003 100644
--- a/res/layout/share.xml
+++ b/orgfoxttrss/src/main/res/layout/share.xml
@@ -1,55 +1,55 @@
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/main"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:padding="5dp" >
-
- <EditText
- android:id="@+id/title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentLeft="true"
- android:layout_alignParentRight="true"
- android:layout_alignParentTop="true"
- android:ems="10"
- android:hint="@string/share_title_hint"
- android:singleLine="true" />
-
- <EditText
- android:id="@+id/url"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignLeft="@+id/title"
- android:layout_alignParentRight="true"
- android:layout_below="@+id/title"
- android:ems="10"
- android:hint="@string/share_url_hint"
- android:singleLine="true" />
-
-
- <EditText
- android:id="@+id/content"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentLeft="true"
- android:layout_alignRight="@+id/url"
- android:layout_below="@+id/url"
- android:ems="10"
- android:hint="@string/share_content_hint"
- android:inputType="textMultiLine"
- android:maxLines="3" >
-
- <requestFocus />
- </EditText>
-
-
- <Button
- android:id="@+id/share_button"
- android:layout_width="100dp"
- android:layout_height="wrap_content"
- android:layout_alignParentLeft="true"
- android:layout_alignRight="@+id/content"
- android:layout_below="@+id/content"
- android:text="@string/share_share_button" />
-
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/main"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:padding="5dp" >
+
+ <EditText
+ android:id="@+id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentTop="true"
+ android:ems="10"
+ android:hint="@string/share_title_hint"
+ android:singleLine="true" />
+
+ <EditText
+ android:id="@+id/url"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignLeft="@+id/title"
+ android:layout_alignParentRight="true"
+ android:layout_below="@+id/title"
+ android:ems="10"
+ android:hint="@string/share_url_hint"
+ android:singleLine="true" />
+
+
+ <EditText
+ android:id="@+id/content"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_alignRight="@+id/url"
+ android:layout_below="@+id/url"
+ android:ems="10"
+ android:hint="@string/share_content_hint"
+ android:inputType="textMultiLine"
+ android:maxLines="3" >
+
+ <requestFocus />
+ </EditText>
+
+
+ <Button
+ android:id="@+id/share_button"
+ android:layout_width="100dp"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_alignRight="@+id/content"
+ android:layout_below="@+id/content"
+ android:text="@string/share_share_button" />
+
</RelativeLayout> \ No newline at end of file
diff --git a/res/layout/subscribe.xml b/orgfoxttrss/src/main/res/layout/subscribe.xml
index 3b61424a..8daa1169 100644
--- a/res/layout/subscribe.xml
+++ b/orgfoxttrss/src/main/res/layout/subscribe.xml
@@ -1,51 +1,51 @@
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/main"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:padding="5dp" >
-
- <EditText
- android:id="@+id/feed_url"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentLeft="true"
- android:layout_alignParentRight="true"
- android:ems="10"
- android:hint="@string/feed_url"
- android:inputType="textUri"
- android:maxLines="3" >
-
- <requestFocus />
- </EditText>
-
- <Spinner
- android:id="@+id/category_spinner"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignLeft="@+id/feed_url"
- android:layout_alignParentRight="true"
- android:layout_below="@+id/feed_url" />
-
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignLeft="@+id/category_spinner"
- android:layout_alignRight="@+id/category_spinner"
- android:layout_below="@+id/category_spinner" >
-
- <Button
- android:id="@+id/cats_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0.5"
- android:text="Update categories" />
-
- <Button
- android:id="@+id/subscribe_button"
- android:layout_width="wrap_content"
- android:layout_weight="0.5"
- android:layout_height="wrap_content"
- android:text="@string/subscribe_to_feed" />
- </LinearLayout>
-
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/main"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:padding="5dp" >
+
+ <EditText
+ android:id="@+id/feed_url"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentRight="true"
+ android:ems="10"
+ android:hint="@string/feed_url"
+ android:inputType="textUri"
+ android:maxLines="3" >
+
+ <requestFocus />
+ </EditText>
+
+ <Spinner
+ android:id="@+id/category_spinner"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignLeft="@+id/feed_url"
+ android:layout_alignParentRight="true"
+ android:layout_below="@+id/feed_url" />
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignLeft="@+id/category_spinner"
+ android:layout_alignRight="@+id/category_spinner"
+ android:layout_below="@+id/category_spinner" >
+
+ <Button
+ android:id="@+id/cats_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0.5"
+ android:text="Update categories" />
+
+ <Button
+ android:id="@+id/subscribe_button"
+ android:layout_width="wrap_content"
+ android:layout_weight="0.5"
+ android:layout_height="wrap_content"
+ android:text="@string/subscribe_to_feed" />
+ </LinearLayout>
+
</RelativeLayout> \ No newline at end of file
diff --git a/res/layout/tasker_settings.xml b/orgfoxttrss/src/main/res/layout/tasker_settings.xml
index b50f3c3c..efdd76ab 100644
--- a/res/layout/tasker_settings.xml
+++ b/orgfoxttrss/src/main/res/layout/tasker_settings.xml
@@ -1,36 +1,36 @@
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/main"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:padding="5dp" >
-
- <Button
- android:id="@+id/close_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_centerHorizontal="true"
- android:text="@string/tasker_save_and_close" />
-
- <RadioGroup
- android:id="@+id/taskerActions"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentRight="true"
- android:layout_alignParentTop="true" >
-
- <RadioButton
- android:id="@+id/actionDownload"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:checked="true"
- android:text="@string/download_articles_and_go_offline" />
-
- <RadioButton
- android:id="@+id/actionUpload"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="@string/synchronize_read_articles_and_go_online" />
- </RadioGroup>
-
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/main"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:padding="5dp" >
+
+ <Button
+ android:id="@+id/close_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:layout_centerHorizontal="true"
+ android:text="@string/tasker_save_and_close" />
+
+ <RadioGroup
+ android:id="@+id/taskerActions"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentTop="true" >
+
+ <RadioButton
+ android:id="@+id/actionDownload"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:checked="true"
+ android:text="@string/download_articles_and_go_offline" />
+
+ <RadioButton
+ android:id="@+id/actionUpload"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/synchronize_read_articles_and_go_online" />
+ </RadioGroup>
+
</RelativeLayout> \ No newline at end of file
diff --git a/res/layout/widget_small.xml b/orgfoxttrss/src/main/res/layout/widget_small.xml
index 552625c0..e8e68a4e 100644
--- a/res/layout/widget_small.xml
+++ b/orgfoxttrss/src/main/res/layout/widget_small.xml
@@ -1,42 +1,42 @@
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/widget_main"
- android:layout_width="match_parent"
- android:layout_height="fill_parent" >
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
-
- <ImageView
- android:id="@+id/imageView1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
- android:paddingTop="2dp"
- android:src="@drawable/icon" />
-
- <TextView
- android:id="@+id/counter"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
- android:gravity="center"
- android:text="-1"
- android:shadowColor="#cc000000"
- android:shadowDx="0"
- android:shadowDy="3"
- android:shadowRadius="3"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:textColor="@android:color/primary_text_dark" />
-
- </LinearLayout>
-
- <ProgressBar
- android:id="@+id/progress"
- style="?android:attr/progressBarStyleLarge"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:visibility="gone" />
-
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/widget_main"
+ android:layout_width="match_parent"
+ android:layout_height="fill_parent" >
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical" >
+
+ <ImageView
+ android:id="@+id/imageView1"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ android:paddingTop="2dp"
+ android:src="@drawable/icon" />
+
+ <TextView
+ android:id="@+id/counter"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ android:gravity="center"
+ android:text="-1"
+ android:shadowColor="#cc000000"
+ android:shadowDx="0"
+ android:shadowDy="3"
+ android:shadowRadius="3"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="@android:color/primary_text_dark" />
+
+ </LinearLayout>
+
+ <ProgressBar
+ android:id="@+id/progress"
+ style="?android:attr/progressBarStyleLarge"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:visibility="gone" />
+
</FrameLayout> \ No newline at end of file
diff --git a/res/menu/article_content_img_context_menu.xml b/orgfoxttrss/src/main/res/menu/article_content_img_context_menu.xml
index 691a1401..691a1401 100644
--- a/res/menu/article_content_img_context_menu.xml
+++ b/orgfoxttrss/src/main/res/menu/article_content_img_context_menu.xml
diff --git a/res/menu/article_link_context_menu.xml b/orgfoxttrss/src/main/res/menu/article_link_context_menu.xml
index 8317d5e0..8317d5e0 100644
--- a/res/menu/article_link_context_menu.xml
+++ b/orgfoxttrss/src/main/res/menu/article_link_context_menu.xml
diff --git a/res/menu/category_menu.xml b/orgfoxttrss/src/main/res/menu/category_menu.xml
index 28216d41..28216d41 100644
--- a/res/menu/category_menu.xml
+++ b/orgfoxttrss/src/main/res/menu/category_menu.xml
diff --git a/res/menu/feed_menu.xml b/orgfoxttrss/src/main/res/menu/feed_menu.xml
index fa7dac1f..fa7dac1f 100644
--- a/res/menu/feed_menu.xml
+++ b/orgfoxttrss/src/main/res/menu/feed_menu.xml
diff --git a/res/menu/headlines_action_menu.xml b/orgfoxttrss/src/main/res/menu/headlines_action_menu.xml
index 462fac40..462fac40 100644
--- a/res/menu/headlines_action_menu.xml
+++ b/orgfoxttrss/src/main/res/menu/headlines_action_menu.xml
diff --git a/res/menu/headlines_context_menu.xml b/orgfoxttrss/src/main/res/menu/headlines_context_menu.xml
index de930a23..de930a23 100644
--- a/res/menu/headlines_context_menu.xml
+++ b/orgfoxttrss/src/main/res/menu/headlines_context_menu.xml
diff --git a/res/menu/main_menu.xml b/orgfoxttrss/src/main/res/menu/main_menu.xml
index e4a9776b..e4a9776b 100644
--- a/res/menu/main_menu.xml
+++ b/orgfoxttrss/src/main/res/menu/main_menu.xml
diff --git a/res/menu/offline_menu.xml b/orgfoxttrss/src/main/res/menu/offline_menu.xml
index a1bbf222..a1bbf222 100644
--- a/res/menu/offline_menu.xml
+++ b/orgfoxttrss/src/main/res/menu/offline_menu.xml
diff --git a/res/menu/share_menu.xml b/orgfoxttrss/src/main/res/menu/share_menu.xml
index f2cb8145..f2cb8145 100644
--- a/res/menu/share_menu.xml
+++ b/orgfoxttrss/src/main/res/menu/share_menu.xml
diff --git a/res/values-cs/strings.xml b/orgfoxttrss/src/main/res/values-cs/strings.xml
index fcaf790e..fcaf790e 100644
--- a/res/values-cs/strings.xml
+++ b/orgfoxttrss/src/main/res/values-cs/strings.xml
diff --git a/res/values-de/strings.xml b/orgfoxttrss/src/main/res/values-de/strings.xml
index 7bd2eec3..7e8c2992 100644
--- a/res/values-de/strings.xml
+++ b/orgfoxttrss/src/main/res/values-de/strings.xml
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="login_in_progress">Anmelden…</string>
<string name="app_name">Tiny Tiny RSS</string>
diff --git a/res/values-es/strings.xml b/orgfoxttrss/src/main/res/values-es/strings.xml
index 6a111fea..6a111fea 100644
--- a/res/values-es/strings.xml
+++ b/orgfoxttrss/src/main/res/values-es/strings.xml
diff --git a/res/values-fr/strings.xml b/orgfoxttrss/src/main/res/values-fr/strings.xml
index 25e24927..25e24927 100644
--- a/res/values-fr/strings.xml
+++ b/orgfoxttrss/src/main/res/values-fr/strings.xml
diff --git a/res/values-it/strings.xml b/orgfoxttrss/src/main/res/values-it/strings.xml
index 4fa8945c..4fa8945c 100644
--- a/res/values-it/strings.xml
+++ b/orgfoxttrss/src/main/res/values-it/strings.xml
diff --git a/res/values-ja/strings.xml b/orgfoxttrss/src/main/res/values-ja/strings.xml
index 75f69390..cd965fb6 100644
--- a/res/values-ja/strings.xml
+++ b/orgfoxttrss/src/main/res/values-ja/strings.xml
@@ -1,220 +1,220 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
- <string name="login_in_progress">ログイン中…</string>
- <string name="app_name">Tiny Tiny RSS</string>
- <string name="login_need_configure">まずはじめにアプリケーションの設定をしてください。</string>
- <string name="login_ready">Ready to login.</string>
- <string name="login_login">ログイン</string>
- <string name="logout">ログアウト</string>
- <string name="login">ログイン</string>
- <string name="debugging">デバッグ</string>
- <string name="password">パスワード</string>
- <string name="default_url">http://example.domain/tt-rss/</string>
- <string name="look_and_feel">インタフェース</string>
- <string name="pref_theme">テーマ</string>
- <string name="pref_theme_long">アプリケーションのテーマ色を変更する</string>
- <string name="ttrss_url">Tiny Tiny RSS URL</string>
- <string name="theme_dark">ダーク</string>
- <string name="preferences">設定</string>
- <string name="theme_light">ライト</string>
- <string name="connection">接続</string>
- <string name="headline_context_multiple">選択した記事</string>
- <string name="http_authentication">HTTP認証</string>
- <string name="loading_message">読込中, お待ちください…</string>
- <string name="menu_unread_feeds">未読フィードを表示</string>
- <string name="menu_all_feeds">すべてのフィードを表示</string>
- <string name="update_feeds">更新</string>
- <string name="share_article">記事をシェア</string>
- <string name="catchup">全て既読にする</string>
- <string name="sort_feeds_by_unread">フィードを未読記事数順に並びかえ</string>
- <string name="ssl_trust_any">すべての証明書を受け入れる</string>
- <string name="category_browse_feeds">フィードを表示</string>
- <string name="category_browse_articles">記事を表示</string>
- <string name="blank"></string>
- <string name="transport_debugging">送受信データをロギングする</string>
- <string name="article_toggle_marked">スターを付ける/外す</string>
- <string name="article_toggle_published">配信/解除</string>
- <string name="headlines_select">記事を選択</string>
- <string name="headlines_select_dialog">記事を選択</string>
- <string name="headlines_select_all">全て選択</string>
- <string name="headlines_select_unread">未読記事を選択</string>
- <string name="headlines_select_none">全て選択解除</string>
- <string name="selection_toggle_marked">スターを付ける/外す</string>
- <string name="selection_toggle_published">配信/解除</string>
- <string name="selection_toggle_unread">既読/未読にする</string>
- <string name="selection_select_none">全て選択解除</string>
- <string name="context_selection_toggle_marked">スターを付ける/外す</string>
- <string name="context_selection_toggle_published">配信/解除</string>
- <string name="context_selection_toggle_unread">既読/未読にする</string>
- <string name="article_set_unread">記事を未読にする</string>
- <string name="article_mark_read_above">これより上を既読にする</string>
- <string name="http_login_summary">tt-rssサーバにBasic認証を使用している場合は記入してください。(オプション)</string>
- <string name="login_summary">tt-rssサーバのログイン名。 シングルユーザモードの場合は不要。</string>
- <string name="ttrss_url_summary">tt-rssサーバのURL。例 http://site.com/tt-rss/</string>
- <string name="download_feed_icons">フィードアイコンを表示する</string>
- <string name="enable_cats">フィードのカテゴリを有効にする</string>
- <string name="no_feeds_to_display">表示するフィードがありません</string>
- <string name="no_headlines_to_display">表示するヘッドラインがありません</string>
- <string name="no_caption_to_display">表示するキャプションがありません</string>
- <string name="browse_cats_like_feeds">カテゴリをフィードのように扱う</string>
- <string name="browse_cats_like_feeds_summary">カテゴリ内のフィードをまとめて表示する</string>
- <string name="headlines_mark_as_read">全て既読にする</string>
- <string name="error_unknown">エラー: 不明なエラー(ログを確認)</string>
- <string name="error_http_unauthorized">エラー: 401 unauthorized</string>
- <string name="error_http_forbidden">エラー: 403 forbidden</string>
- <string name="error_http_not_found">エラー: 404 not found</string>
- <string name="error_http_server_error">エラー: 500 server error</string>
- <string name="error_http_other_error">エラー: その他のHTTPエラー(ログを確認)</string>
- <string name="error_ssl_rejected">エラー: SSL証明書が拒否されました</string>
- <string name="error_parse_error">エラー: JSONのパースに失敗しました</string>
- <string name="error_io_error">エラー: I/O失敗(サーバダウン?)</string>
- <string name="error_other_error">エラー: 不明なエラー(ログを確認)</string>
- <string name="error_api_disabled">エラー: tt-rssサーバ側の設定で外部APIアクセスを有効にしてください</string>
- <string name="error_api_unknown">エラー: 不明なAPIエラー(ログを確認)</string>
- <string name="error_api_incorrect_usage">エラー: APIの使い方が違います</string>
- <string name="error_login_failed">エラー: ユーザー名またはパスワードが違います</string>
- <string name="error_invalid_api_url">エラー: APIのURLが無効です</string>
- <string name="combined_mode_summary">記事全文を別パネルに表示せずインライン表示します</string>
- <string name="combined_mode">コンバインモード</string>
- <string name="go_offline">オフラインにする</string>
- <string name="go_online">オンラインにする</string>
- <string name="offline_switch_error">オフラインモードの準備に失敗しました(ログを確認)</string>
- <string name="no_feeds">表示するフィードがありません</string>
- <string name="no_headlines">表示するヘッドラインがありません</string>
- <string name="dialog_offline_prompt">ログインに失敗しましたが端末内にオフラインデータがあります。オフラインにしますか?</string>
- <string name="dialog_offline_success">オフライン準備完了</string>
- <string name="dialog_offline_go">オフラインにする</string>
- <string name="dialog_cancel">キャンセル</string>
- <string name="dialog_offline_switch_prompt">未読記事をダウンロードしてオフラインにしますか?</string>
- <string name="notify_downloading_articles">記事をダウンロード中 (%1$d)…</string>
- <string name="notify_downloading_init">ダウンロード開始…</string>
- <string name="notify_downloading_feeds">フィードをダウンロード中…</string>
- <string name="notify_uploading_sending_data">サーバにデータを送信中…</string>
- <string name="notify_downloading_title">オフライン準備中</string>
- <string name="notify_uploading_title">オフラインデータを同期中</string>
- <string name="offline_sync_success">オフラインデータ同期完了</string>
- <string name="offline_mode">オフラインモード</string>
- <string name="offline_image_cache_enabled">イメージをキャッシュする</string>
- <string name="offline_image_cache_enabled_summary">イメージをSDカードにダウンロードします。有効にするとオフライン準備時間が長くなる可能性があります。</string>
- <string name="notify_downloading_images">イメージをダウンロード中 (%1$d)…</string>
- <string name="article_set_labels">ラベルをセットする</string>
- <string name="search">検索</string>
- <string name="cancel">キャンセル</string>
- <string name="font_size_small">小</string>
- <string name="font_size_medium">中</string>
- <string name="font_size_large">大</string>
- <string name="pref_font_size">記事内容の文字サイズ</string>
- <string name="donate">寄付</string>
- <string name="dialog_close">閉じる</string>
- <string name="donate_select">寄付金額を選択してください。</string>
- <string name="donate_do">寄付完了!</string>
- <string name="tablet_article_swipe">記事をスワイプで切り替える</string>
- <string name="article_link_copy">リンクをクリップボードにコピー</string>
- <string name="text_copied_to_clipboard">テキストをクリップボードにコピー</string>
- <string name="attachments_prompt">Select attachment</string>
- <string name="attachment_view">View</string>
- <string name="attachment_copy">Copy URL</string>
- <string name="justify_article_text">記事の文字を均等割り付けする</string>
- <string name="dialog_offline_sync_in_progress">オフライン同期中</string>
- <string name="dialog_offline_sync_stop">同期の停止</string>
- <string name="dialog_offline_sync_continue">同期の継続</string>
- <string name="article_set_note">注釈を付けて配信</string>
- <string name="close_feed">フィードを閉じる</string>
- <string name="close_article">記事を閉じる</string>
- <string name="dialog_open_preferences">設定</string>
- <string name="dialog_need_configure_prompt">URL、ユーザー名、パスワードなどのtt-rssサーバ情報を設定してください。</string>
- <string name="notify_article_marked">スターを付けました</string>
- <string name="notify_article_unmarked">スターを外しました</string>
- <string name="notify_article_published">配信しました</string>
- <string name="notify_article_unpublished">配信を解除しました</string>
- <string name="notify_article_note_set">注釈を保存しました</string>
- <string name="update_headlines">更新</string>
- <string name="attachment_share">シェア</string>
- <string name="error_network_unavailable">エラー: ネットワークが利用できません</string>
- <string name="category_browse_headlines">ヘッドラインを表示</string>
- <string name="pref_default_view_mode">フィードの表示方法</string>
- <string name="pref_default_view_mode_long">フィードの表示方法</string>
- <string name="donate_thanks">寄付を確認。あなたの支援に感謝します!</string>
- <string name="use_volume_keys">ボリュームボタンを使う</string>
- <string name="use_volume_keys_long">ボリュームボタンで記事を切り替える</string>
- <string name="ssl_trust_any_host">ホスト名の確認をしない</string>
- <string name="error_api_unknown_method">エラー: 不明なAPIメソッド</string>
- <string name="ssl_trust_any_long">証明書を確認せずに受け入れる</string>
- <string name="ssl_trust_any_host_long">ホスト名の確認をしない</string>
- <string name="ssl">SSL</string>
- <string name="error_ssl_hostname_rejected">エラー: SSLホスト名が確認できません</string>
- <string name="offline_oldest_first">古い記事を先頭に表示する</string>
- <string name="prefs_dim_status_bar">下部ソフトキーをぼかす</string>
- <string name="prefs_dim_status_bar_long">記事表示中は下部ソフトキーをぼかす</string>
- <string name="article_comments">%1$d 件のコメント</string>
- <string name="trial_mode_prompt">試用期間中。残り %1$d 日間。</string>
- <string name="trial_purchase">フルバージョンを購入</string>
- <string name="trial_expired">試用期限終了</string>
- <string name="trial_expired_message">Tiny Tiny RSSを継続して使用する場合はTiny Tiny RSS Unlockerを購入してください。</string>
- <string name="theme_sepia">セピア</string>
- <string name="trial_thanks">フルバージョン。あなたの支援に感謝します!</string>
- <string name="prefs_fullscreen_mode">フルスクリーンモード</string>
- <string name="reading">Reading</string>
- <string name="theme_dark_gray">ダークグレイ</string>
- <string name="offline_articles_to_download">ダウンロードする記事数</string>
- <string name="offline_articles_to_download_long">オフラインモードにする際にダウンロードする記事数(新しい記事から)</string>
- <string name="pref_headlines_show_content_long">記事内容をヘッドライン一覧に表示する</string>
- <string name="pref_headlines_show_content">記事内容をプレビュー</string>
- <string name="api_too_low">この動作には新しいバージョンのTiny Tiny RSSが必要です。</string>
- <string name="share_url_prompt">URL:</string>
- <string name="share_url_hint">記事URL</string>
- <string name="share_content_hint">記事内容</string>
- <string name="share_title_prompt">タイトル:</string>
- <string name="share_title_hint">記事タイトル</string>
- <string name="share_share_button">シェア</string>
- <string name="share_article_posted">記事を投稿しました。</string>
- <string name="subscribe_name">フィードを購読する</string>
- <string name="feed_url">フィードのURL</string>
- <string name="subscribe_to_feed">フィードを購読する</string>
- <string name="error_while_subscribing">購読に失敗しました</string>
- <string name="category_list_updated">カテゴリ一覧を更新しました</string>
- <string name="subscribed_to_feed">フィードを購読しました</string>
- <string name="error_feed_already_exists_">エラー: フィードがすでに存在します</string>
- <string name="error_invalid_url">エラー: 無効なURL.</string>
- <string name="error_url_is_an_html_page_no_feeds_found">エラー: URLはHTMLページです。フィードが見つかりません。</string>
- <string name="error_url_contains_multiple_feeds">エラー: URLに複数のフィードが含まれています</string>
- <string name="error_could_not_download_url">エラー: URLをダウンロードできませんでした</string>
- <string name="headlines_view_mode">表示モード設定</string>
- <string name="headlines_set_view_mode">表示モード設定</string>
- <string name="headlines_adaptive">最適</string>
- <string name="headlines_all_articles">すべての記事</string>
- <string name="headlines_starred">スター付きの記事</string>
- <string name="headlines_published">配信した記事</string>
- <string name="headlines_unread">未読記事</string>
- <string name="article_img_open">イメージを開く</string>
- <string name="article_img_share">イメージをシェア</string>
- <string name="requires_api5">tt-rss1.7.6以上が必要です</string>
- <string name="labels">ラベル</string>
- <string name="article_img_view_caption">キャプションを表示</string>
- <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="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>
- <string name="theme_system">端末のデフォルト</string>
- <string name="accel_webview_summary">ちらつきや表示化けが起こる場合は無効にしてください。</string>
- <string name="accel_webview_title">WebViewのハードウェアアクセラレーション(Android3.0以降)</string>
- <string name="place_shortcut">ショートカットの配置</string>
- <string name="shortcut_has_been_placed_on_the_home_screen">ショートカットがホームスクリーンに配置されました</string>
- <string name="download_articles_and_go_offline">記事をダウンロードしてオフラインにする</string>
- <string name="tasker_save_and_close">保存して閉じる</string>
- <string name="synchronize_read_articles_and_go_online">既読記事を同期してオフラインにする</string>
- <string name="prefs_compatible_article_layout">記事レイアウトの互換表示</string>
- <string name="prefs_compatible_layout_summary">記事表示が崩れる場合は有効にしてください。</string>
- <string name="font_size_dialog_suffix">sp</string>
- <string name="server_function_not_available">接続中のtt-rssサーバのバージョンではこの機能を使用できません。</string>
- <string name="unsubscribe">購読解除</string>
- <string name="unsubscribe_from_prompt">%1$s の購読を解除しますか?</string>
- <string name="toggle_sidebar">サイドバーの表示/非表示</string>
- <string name="open_article_in_web_browser">Webブラウザで開く</string>
-</resources>
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="login_in_progress">ログイン中…</string>
+ <string name="app_name">Tiny Tiny RSS</string>
+ <string name="login_need_configure">まずはじめにアプリケーションの設定をしてください。</string>
+ <string name="login_ready">Ready to login.</string>
+ <string name="login_login">ログイン</string>
+ <string name="logout">ログアウト</string>
+ <string name="login">ログイン</string>
+ <string name="debugging">デバッグ</string>
+ <string name="password">パスワード</string>
+ <string name="default_url">http://example.domain/tt-rss/</string>
+ <string name="look_and_feel">インタフェース</string>
+ <string name="pref_theme">テーマ</string>
+ <string name="pref_theme_long">アプリケーションのテーマ色を変更する</string>
+ <string name="ttrss_url">Tiny Tiny RSS URL</string>
+ <string name="theme_dark">ダーク</string>
+ <string name="preferences">設定</string>
+ <string name="theme_light">ライト</string>
+ <string name="connection">接続</string>
+ <string name="headline_context_multiple">選択した記事</string>
+ <string name="http_authentication">HTTP認証</string>
+ <string name="loading_message">読込中, お待ちください…</string>
+ <string name="menu_unread_feeds">未読フィードを表示</string>
+ <string name="menu_all_feeds">すべてのフィードを表示</string>
+ <string name="update_feeds">更新</string>
+ <string name="share_article">記事をシェア</string>
+ <string name="catchup">全て既読にする</string>
+ <string name="sort_feeds_by_unread">フィードを未読記事数順に並びかえ</string>
+ <string name="ssl_trust_any">すべての証明書を受け入れる</string>
+ <string name="category_browse_feeds">フィードを表示</string>
+ <string name="category_browse_articles">記事を表示</string>
+ <string name="blank"></string>
+ <string name="transport_debugging">送受信データをロギングする</string>
+ <string name="article_toggle_marked">スターを付ける/外す</string>
+ <string name="article_toggle_published">配信/解除</string>
+ <string name="headlines_select">記事を選択</string>
+ <string name="headlines_select_dialog">記事を選択</string>
+ <string name="headlines_select_all">全て選択</string>
+ <string name="headlines_select_unread">未読記事を選択</string>
+ <string name="headlines_select_none">全て選択解除</string>
+ <string name="selection_toggle_marked">スターを付ける/外す</string>
+ <string name="selection_toggle_published">配信/解除</string>
+ <string name="selection_toggle_unread">既読/未読にする</string>
+ <string name="selection_select_none">全て選択解除</string>
+ <string name="context_selection_toggle_marked">スターを付ける/外す</string>
+ <string name="context_selection_toggle_published">配信/解除</string>
+ <string name="context_selection_toggle_unread">既読/未読にする</string>
+ <string name="article_set_unread">記事を未読にする</string>
+ <string name="article_mark_read_above">これより上を既読にする</string>
+ <string name="http_login_summary">tt-rssサーバにBasic認証を使用している場合は記入してください。(オプション)</string>
+ <string name="login_summary">tt-rssサーバのログイン名。 シングルユーザモードの場合は不要。</string>
+ <string name="ttrss_url_summary">tt-rssサーバのURL。例 http://site.com/tt-rss/</string>
+ <string name="download_feed_icons">フィードアイコンを表示する</string>
+ <string name="enable_cats">フィードのカテゴリを有効にする</string>
+ <string name="no_feeds_to_display">表示するフィードがありません</string>
+ <string name="no_headlines_to_display">表示するヘッドラインがありません</string>
+ <string name="no_caption_to_display">表示するキャプションがありません</string>
+ <string name="browse_cats_like_feeds">カテゴリをフィードのように扱う</string>
+ <string name="browse_cats_like_feeds_summary">カテゴリ内のフィードをまとめて表示する</string>
+ <string name="headlines_mark_as_read">全て既読にする</string>
+ <string name="error_unknown">エラー: 不明なエラー(ログを確認)</string>
+ <string name="error_http_unauthorized">エラー: 401 unauthorized</string>
+ <string name="error_http_forbidden">エラー: 403 forbidden</string>
+ <string name="error_http_not_found">エラー: 404 not found</string>
+ <string name="error_http_server_error">エラー: 500 server error</string>
+ <string name="error_http_other_error">エラー: その他のHTTPエラー(ログを確認)</string>
+ <string name="error_ssl_rejected">エラー: SSL証明書が拒否されました</string>
+ <string name="error_parse_error">エラー: JSONのパースに失敗しました</string>
+ <string name="error_io_error">エラー: I/O失敗(サーバダウン?)</string>
+ <string name="error_other_error">エラー: 不明なエラー(ログを確認)</string>
+ <string name="error_api_disabled">エラー: tt-rssサーバ側の設定で外部APIアクセスを有効にしてください</string>
+ <string name="error_api_unknown">エラー: 不明なAPIエラー(ログを確認)</string>
+ <string name="error_api_incorrect_usage">エラー: APIの使い方が違います</string>
+ <string name="error_login_failed">エラー: ユーザー名またはパスワードが違います</string>
+ <string name="error_invalid_api_url">エラー: APIのURLが無効です</string>
+ <string name="combined_mode_summary">記事全文を別パネルに表示せずインライン表示します</string>
+ <string name="combined_mode">コンバインモード</string>
+ <string name="go_offline">オフラインにする</string>
+ <string name="go_online">オンラインにする</string>
+ <string name="offline_switch_error">オフラインモードの準備に失敗しました(ログを確認)</string>
+ <string name="no_feeds">表示するフィードがありません</string>
+ <string name="no_headlines">表示するヘッドラインがありません</string>
+ <string name="dialog_offline_prompt">ログインに失敗しましたが端末内にオフラインデータがあります。オフラインにしますか?</string>
+ <string name="dialog_offline_success">オフライン準備完了</string>
+ <string name="dialog_offline_go">オフラインにする</string>
+ <string name="dialog_cancel">キャンセル</string>
+ <string name="dialog_offline_switch_prompt">未読記事をダウンロードしてオフラインにしますか?</string>
+ <string name="notify_downloading_articles">記事をダウンロード中 (%1$d)…</string>
+ <string name="notify_downloading_init">ダウンロード開始…</string>
+ <string name="notify_downloading_feeds">フィードをダウンロード中…</string>
+ <string name="notify_uploading_sending_data">サーバにデータを送信中…</string>
+ <string name="notify_downloading_title">オフライン準備中</string>
+ <string name="notify_uploading_title">オフラインデータを同期中</string>
+ <string name="offline_sync_success">オフラインデータ同期完了</string>
+ <string name="offline_mode">オフラインモード</string>
+ <string name="offline_image_cache_enabled">イメージをキャッシュする</string>
+ <string name="offline_image_cache_enabled_summary">イメージをSDカードにダウンロードします。有効にするとオフライン準備時間が長くなる可能性があります。</string>
+ <string name="notify_downloading_images">イメージをダウンロード中 (%1$d)…</string>
+ <string name="article_set_labels">ラベルをセットする</string>
+ <string name="search">検索</string>
+ <string name="cancel">キャンセル</string>
+ <string name="font_size_small">小</string>
+ <string name="font_size_medium">中</string>
+ <string name="font_size_large">大</string>
+ <string name="pref_font_size">記事内容の文字サイズ</string>
+ <string name="donate">寄付</string>
+ <string name="dialog_close">閉じる</string>
+ <string name="donate_select">寄付金額を選択してください。</string>
+ <string name="donate_do">寄付完了!</string>
+ <string name="tablet_article_swipe">記事をスワイプで切り替える</string>
+ <string name="article_link_copy">リンクをクリップボードにコピー</string>
+ <string name="text_copied_to_clipboard">テキストをクリップボードにコピー</string>
+ <string name="attachments_prompt">Select attachment</string>
+ <string name="attachment_view">View</string>
+ <string name="attachment_copy">Copy URL</string>
+ <string name="justify_article_text">記事の文字を均等割り付けする</string>
+ <string name="dialog_offline_sync_in_progress">オフライン同期中</string>
+ <string name="dialog_offline_sync_stop">同期の停止</string>
+ <string name="dialog_offline_sync_continue">同期の継続</string>
+ <string name="article_set_note">注釈を付けて配信</string>
+ <string name="close_feed">フィードを閉じる</string>
+ <string name="close_article">記事を閉じる</string>
+ <string name="dialog_open_preferences">設定</string>
+ <string name="dialog_need_configure_prompt">URL、ユーザー名、パスワードなどのtt-rssサーバ情報を設定してください。</string>
+ <string name="notify_article_marked">スターを付けました</string>
+ <string name="notify_article_unmarked">スターを外しました</string>
+ <string name="notify_article_published">配信しました</string>
+ <string name="notify_article_unpublished">配信を解除しました</string>
+ <string name="notify_article_note_set">注釈を保存しました</string>
+ <string name="update_headlines">更新</string>
+ <string name="attachment_share">シェア</string>
+ <string name="error_network_unavailable">エラー: ネットワークが利用できません</string>
+ <string name="category_browse_headlines">ヘッドラインを表示</string>
+ <string name="pref_default_view_mode">フィードの表示方法</string>
+ <string name="pref_default_view_mode_long">フィードの表示方法</string>
+ <string name="donate_thanks">寄付を確認。あなたの支援に感謝します!</string>
+ <string name="use_volume_keys">ボリュームボタンを使う</string>
+ <string name="use_volume_keys_long">ボリュームボタンで記事を切り替える</string>
+ <string name="ssl_trust_any_host">ホスト名の確認をしない</string>
+ <string name="error_api_unknown_method">エラー: 不明なAPIメソッド</string>
+ <string name="ssl_trust_any_long">証明書を確認せずに受け入れる</string>
+ <string name="ssl_trust_any_host_long">ホスト名の確認をしない</string>
+ <string name="ssl">SSL</string>
+ <string name="error_ssl_hostname_rejected">エラー: SSLホスト名が確認できません</string>
+ <string name="offline_oldest_first">古い記事を先頭に表示する</string>
+ <string name="prefs_dim_status_bar">下部ソフトキーをぼかす</string>
+ <string name="prefs_dim_status_bar_long">記事表示中は下部ソフトキーをぼかす</string>
+ <string name="article_comments">%1$d 件のコメント</string>
+ <string name="trial_mode_prompt">試用期間中。残り %1$d 日間。</string>
+ <string name="trial_purchase">フルバージョンを購入</string>
+ <string name="trial_expired">試用期限終了</string>
+ <string name="trial_expired_message">Tiny Tiny RSSを継続して使用する場合はTiny Tiny RSS Unlockerを購入してください。</string>
+ <string name="theme_sepia">セピア</string>
+ <string name="trial_thanks">フルバージョン。あなたの支援に感謝します!</string>
+ <string name="prefs_fullscreen_mode">フルスクリーンモード</string>
+ <string name="reading">Reading</string>
+ <string name="theme_dark_gray">ダークグレイ</string>
+ <string name="offline_articles_to_download">ダウンロードする記事数</string>
+ <string name="offline_articles_to_download_long">オフラインモードにする際にダウンロードする記事数(新しい記事から)</string>
+ <string name="pref_headlines_show_content_long">記事内容をヘッドライン一覧に表示する</string>
+ <string name="pref_headlines_show_content">記事内容をプレビュー</string>
+ <string name="api_too_low">この動作には新しいバージョンのTiny Tiny RSSが必要です。</string>
+ <string name="share_url_prompt">URL:</string>
+ <string name="share_url_hint">記事URL</string>
+ <string name="share_content_hint">記事内容</string>
+ <string name="share_title_prompt">タイトル:</string>
+ <string name="share_title_hint">記事タイトル</string>
+ <string name="share_share_button">シェア</string>
+ <string name="share_article_posted">記事を投稿しました。</string>
+ <string name="subscribe_name">フィードを購読する</string>
+ <string name="feed_url">フィードのURL</string>
+ <string name="subscribe_to_feed">フィードを購読する</string>
+ <string name="error_while_subscribing">購読に失敗しました</string>
+ <string name="category_list_updated">カテゴリ一覧を更新しました</string>
+ <string name="subscribed_to_feed">フィードを購読しました</string>
+ <string name="error_feed_already_exists_">エラー: フィードがすでに存在します</string>
+ <string name="error_invalid_url">エラー: 無効なURL.</string>
+ <string name="error_url_is_an_html_page_no_feeds_found">エラー: URLはHTMLページです。フィードが見つかりません。</string>
+ <string name="error_url_contains_multiple_feeds">エラー: URLに複数のフィードが含まれています</string>
+ <string name="error_could_not_download_url">エラー: URLをダウンロードできませんでした</string>
+ <string name="headlines_view_mode">表示モード設定</string>
+ <string name="headlines_set_view_mode">表示モード設定</string>
+ <string name="headlines_adaptive">最適</string>
+ <string name="headlines_all_articles">すべての記事</string>
+ <string name="headlines_starred">スター付きの記事</string>
+ <string name="headlines_published">配信した記事</string>
+ <string name="headlines_unread">未読記事</string>
+ <string name="article_img_open">イメージを開く</string>
+ <string name="article_img_share">イメージをシェア</string>
+ <string name="requires_api5">tt-rss1.7.6以上が必要です</string>
+ <string name="labels">ラベル</string>
+ <string name="article_img_view_caption">キャプションを表示</string>
+ <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="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>
+ <string name="theme_system">端末のデフォルト</string>
+ <string name="accel_webview_summary">ちらつきや表示化けが起こる場合は無効にしてください。</string>
+ <string name="accel_webview_title">WebViewのハードウェアアクセラレーション(Android3.0以降)</string>
+ <string name="place_shortcut">ショートカットの配置</string>
+ <string name="shortcut_has_been_placed_on_the_home_screen">ショートカットがホームスクリーンに配置されました</string>
+ <string name="download_articles_and_go_offline">記事をダウンロードしてオフラインにする</string>
+ <string name="tasker_save_and_close">保存して閉じる</string>
+ <string name="synchronize_read_articles_and_go_online">既読記事を同期してオフラインにする</string>
+ <string name="prefs_compatible_article_layout">記事レイアウトの互換表示</string>
+ <string name="prefs_compatible_layout_summary">記事表示が崩れる場合は有効にしてください。</string>
+ <string name="font_size_dialog_suffix">sp</string>
+ <string name="server_function_not_available">接続中のtt-rssサーバのバージョンではこの機能を使用できません。</string>
+ <string name="unsubscribe">購読解除</string>
+ <string name="unsubscribe_from_prompt">%1$s の購読を解除しますか?</string>
+ <string name="toggle_sidebar">サイドバーの表示/非表示</string>
+ <string name="open_article_in_web_browser">Webブラウザで開く</string>
+</resources>
diff --git a/res/values-pl/strings.xml b/orgfoxttrss/src/main/res/values-pl/strings.xml
index 9e60b96f..9e60b96f 100644
--- a/res/values-pl/strings.xml
+++ b/orgfoxttrss/src/main/res/values-pl/strings.xml
diff --git a/res/values-pt-rBR/strings.xml b/orgfoxttrss/src/main/res/values-pt-rBR/strings.xml
index ee55cdda..ee55cdda 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/orgfoxttrss/src/main/res/values-pt-rBR/strings.xml
diff --git a/res/values-v11/style.xml b/orgfoxttrss/src/main/res/values-v11/style.xml
index d09304cd..d09304cd 100644
--- a/res/values-v11/style.xml
+++ b/orgfoxttrss/src/main/res/values-v11/style.xml
diff --git a/res/values-v19/style.xml b/orgfoxttrss/src/main/res/values-v19/style.xml
index 1576cc89..67781339 100644
--- a/res/values-v19/style.xml
+++ b/orgfoxttrss/src/main/res/values-v19/style.xml
@@ -1,23 +1,23 @@
-<resources xmlns:android="http://schemas.android.com/apk/res/android">
-
- <style name="LightTheme" parent="LightThemeBase">
- <item name="android:windowTranslucentStatus">true</item>
- <item name="android:windowTranslucentNavigation">false</item>
- </style>
-
- <style name="SepiaTheme" parent="SepiaThemeBase">
- <item name="android:windowTranslucentStatus">true</item>
- <item name="android:windowTranslucentNavigation">false</item>
- </style>
-
- <style name="HoloTheme" parent="HoloThemeBase">
- <item name="android:windowTranslucentStatus">true</item>
- <item name="android:windowTranslucentNavigation">false</item>
- </style>
-
- <style name="DarkTheme" parent="DarkThemeBase">
- <item name="android:windowTranslucentStatus">true</item>
- <item name="android:windowTranslucentNavigation">false</item>
- </style>
-
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <style name="LightTheme" parent="LightThemeBase">
+ <item name="android:windowTranslucentStatus">true</item>
+ <item name="android:windowTranslucentNavigation">false</item>
+ </style>
+
+ <style name="SepiaTheme" parent="SepiaThemeBase">
+ <item name="android:windowTranslucentStatus">true</item>
+ <item name="android:windowTranslucentNavigation">false</item>
+ </style>
+
+ <style name="HoloTheme" parent="HoloThemeBase">
+ <item name="android:windowTranslucentStatus">true</item>
+ <item name="android:windowTranslucentNavigation">false</item>
+ </style>
+
+ <style name="DarkTheme" parent="DarkThemeBase">
+ <item name="android:windowTranslucentStatus">true</item>
+ <item name="android:windowTranslucentNavigation">false</item>
+ </style>
+
</resources> \ No newline at end of file
diff --git a/res/values/arrays.xml b/orgfoxttrss/src/main/res/values/arrays.xml
index 79d9a4d3..79d9a4d3 100644
--- a/res/values/arrays.xml
+++ b/orgfoxttrss/src/main/res/values/arrays.xml
diff --git a/res/values/attrs.xml b/orgfoxttrss/src/main/res/values/attrs.xml
index 1e5d0599..3558beb6 100644
--- a/res/values/attrs.xml
+++ b/orgfoxttrss/src/main/res/values/attrs.xml
@@ -1,31 +1,31 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <attr name="ttrssHorizontalDivider" format="reference|color" />
- <attr name="feedlistBackground" format="reference|color" />
- <attr name="smallScreenBackground" format="reference|color" />
- <attr name="unreadCounterColor" format="reference|color" />
- <attr name="headlinesBackground" format="reference|color" />
- <attr name="headlinesBackgroundSolid" format="reference|color" />
- <attr name="articleBackground" format="reference|color" />
- <attr name="headlineSelectedBackground" format="reference|color" />
- <attr name="headlineUnreadBackground" format="reference|color" />
- <attr name="headlineNormalBackground" format="reference|color" />
- <attr name="feedsSelectedBackground" format="reference|color" />
- <attr name="feedlistTextColor" format="reference|color" />
- <attr name="feedlistSelectedTextColor" format="reference|color" />
- <attr name="headlineTextColor" format="reference|color" />
- <attr name="headlineUnreadTextColor" format="reference|color" />
- <attr name="headlineSelectedTextColor" format="reference|color" />
- <attr name="headlineExcerptTextColor" format="reference|color" />
- <attr name="headlineSecondaryTextColor" format="reference|color" />
- <attr name="headlineSelectedSecondaryTextColor" format="reference|color" />
- <attr name="headlineSelectedExcerptTextColor" format="reference|color" />
- <attr name="headlineTitleHighScoreUnreadTextColor" format="reference|color" />
- <attr name="linkColor" format="reference|color" />
- <attr name="loadingBackground" format="reference|color" />
- <attr name="unreadCounterBackground" format="reference|color" />
- <attr name="unreadSelectedCounterBackground" format="reference|color" />
- <attr name="articleNoteBackground" format="reference|color" />
- <attr name="articleNoteTextColor" format="reference|color" />
- <attr name="statusBarHintColor" format="reference|color" />
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <attr name="ttrssHorizontalDivider" format="reference|color" />
+ <attr name="feedlistBackground" format="reference|color" />
+ <attr name="smallScreenBackground" format="reference|color" />
+ <attr name="unreadCounterColor" format="reference|color" />
+ <attr name="headlinesBackground" format="reference|color" />
+ <attr name="headlinesBackgroundSolid" format="reference|color" />
+ <attr name="articleBackground" format="reference|color" />
+ <attr name="headlineSelectedBackground" format="reference|color" />
+ <attr name="headlineUnreadBackground" format="reference|color" />
+ <attr name="headlineNormalBackground" format="reference|color" />
+ <attr name="feedsSelectedBackground" format="reference|color" />
+ <attr name="feedlistTextColor" format="reference|color" />
+ <attr name="feedlistSelectedTextColor" format="reference|color" />
+ <attr name="headlineTextColor" format="reference|color" />
+ <attr name="headlineUnreadTextColor" format="reference|color" />
+ <attr name="headlineSelectedTextColor" format="reference|color" />
+ <attr name="headlineExcerptTextColor" format="reference|color" />
+ <attr name="headlineSecondaryTextColor" format="reference|color" />
+ <attr name="headlineSelectedSecondaryTextColor" format="reference|color" />
+ <attr name="headlineSelectedExcerptTextColor" format="reference|color" />
+ <attr name="headlineTitleHighScoreUnreadTextColor" format="reference|color" />
+ <attr name="linkColor" format="reference|color" />
+ <attr name="loadingBackground" format="reference|color" />
+ <attr name="unreadCounterBackground" format="reference|color" />
+ <attr name="unreadSelectedCounterBackground" format="reference|color" />
+ <attr name="articleNoteBackground" format="reference|color" />
+ <attr name="articleNoteTextColor" format="reference|color" />
+ <attr name="statusBarHintColor" format="reference|color" />
</resources> \ No newline at end of file
diff --git a/res/values/resources.xml b/orgfoxttrss/src/main/res/values/resources.xml
index 0c62d5c7..a3c4151c 100644
--- a/res/values/resources.xml
+++ b/orgfoxttrss/src/main/res/values/resources.xml
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
- <color name="feeds_light">#e0e0e0</color>
- <color name="headlines_light">#ffffff</color>
- <color name="headlines_sepia">#EAE2DC</color>
- <color name="feeds_sepia">#D3C6BA</color>
- <color name="ics_cyan">#33b5e5</color>
- <color name="unread_counter_background">#88b0f0</color>
- <color name="unread_counter_background_dark">#63758E</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>
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <color name="feeds_light">#e0e0e0</color>
+ <color name="headlines_light">#ffffff</color>
+ <color name="headlines_sepia">#EAE2DC</color>
+ <color name="feeds_sepia">#D3C6BA</color>
+ <color name="ics_cyan">#33b5e5</color>
+ <color name="unread_counter_background">#88b0f0</color>
+ <color name="unread_counter_background_dark">#63758E</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/orgfoxttrss/src/main/res/values/strings.xml
index d5653d49..d5653d49 100644
--- a/res/values/strings.xml
+++ b/orgfoxttrss/src/main/res/values/strings.xml
diff --git a/res/values/style.xml b/orgfoxttrss/src/main/res/values/style.xml
index 8c1fb98f..8c1fb98f 100644
--- a/res/values/style.xml
+++ b/orgfoxttrss/src/main/res/values/style.xml
diff --git a/res/xml/preferences.xml b/orgfoxttrss/src/main/res/xml/preferences.xml
index 3a2166b9..7ee21f84 100644
--- a/res/xml/preferences.xml
+++ b/orgfoxttrss/src/main/res/xml/preferences.xml
@@ -1,196 +1,196 @@
-<?xml version="1.0" encoding="utf-8"?>
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
-
- <PreferenceCategory android:title="@string/connection" >
- <EditTextPreference
- android:key="login"
- android:singleLine="true"
- android:summary="@string/login_summary"
- android:title="@string/login" >
- </EditTextPreference>
- <EditTextPreference
- android:key="password"
- android:password="true"
- android:singleLine="true"
- android:title="@string/password" >
- </EditTextPreference>
- <EditTextPreference
- android:hint="@string/default_url"
- android:inputType="textUri"
- android:key="ttrss_url"
- android:singleLine="true"
- android:summary="@string/ttrss_url_summary"
- android:title="@string/ttrss_url" >
- </EditTextPreference>
- </PreferenceCategory>
- <PreferenceCategory android:title="@string/ssl" >
- <CheckBoxPreference
- android:defaultValue="false"
- android:key="ssl_trust_any"
- android:summary="@string/ssl_trust_any_long"
- android:title="@string/ssl_trust_any" />
- <CheckBoxPreference
- android:defaultValue="false"
- android:key="ssl_trust_any_host"
- android:summary="@string/ssl_trust_any_host_long"
- android:title="@string/ssl_trust_any_host" />
- </PreferenceCategory>
- <PreferenceCategory android:title="@string/http_authentication" >
- <EditTextPreference
- android:key="http_login"
- android:singleLine="true"
- android:summary="@string/http_login_summary"
- android:title="@string/login" >
- </EditTextPreference>
- <EditTextPreference
- android:key="http_password"
- android:password="true"
- android:singleLine="true"
- android:title="@string/password" >
- </EditTextPreference>
- </PreferenceCategory>
- <PreferenceCategory
- android:key="category_look_and_feel"
- android:title="@string/look_and_feel" >
- <ListPreference
- android:defaultValue="THEME_LIGHT"
- android:entries="@array/pref_theme_names"
- android:entryValues="@array/pref_theme_values"
- android:key="theme"
- android:summary="@string/pref_theme_long"
- android:title="@string/pref_theme" />
-
- <CheckBoxPreference
- android:defaultValue="false"
- android:key="sort_feeds_by_unread"
- android:title="@string/sort_feeds_by_unread" />
- <CheckBoxPreference
- android:defaultValue="false"
- android:key="download_feed_icons"
- android:title="@string/download_feed_icons" />
- <CheckBoxPreference
- android:defaultValue="false"
- android:key="enable_cats"
- android:title="@string/enable_cats" />
- <CheckBoxPreference
- android:defaultValue="false"
- android:dependency="enable_cats"
- android:key="browse_cats_like_feeds"
- android:summary="@string/browse_cats_like_feeds_summary"
- android:title="@string/browse_cats_like_feeds" />
-
- <ListPreference
- android:defaultValue="HEADLINES"
- android:entries="@array/pref_view_mode_names"
- android:entryValues="@array/pref_view_mode_values"
- android:key="default_view_mode"
- android:summary="@string/pref_default_view_mode_long"
- android:title="@string/pref_default_view_mode" />
-
- <CheckBoxPreference
- android:defaultValue="true"
- android:key="headlines_show_content"
- android:summary="@string/pref_headlines_show_content_long"
- android:title="@string/pref_headlines_show_content" />
-
- <CheckBoxPreference
- android:defaultValue="true"
- android:key="headlines_show_flavor_image"
- android:title="@string/prefs_headlines_show_flavor_image" />
-
- <!-- <CheckBoxPreference
- android:defaultValue="false"
- android:key="headlines_full_content"
- android:summary="@string/pref_headlines_full_content_long"
- android:title="@string/pref_headlines_full_content" /> -->
-
- <CheckBoxPreference
- android:defaultValue="false"
- android:key="oldest_first"
- android:summary="@string/requires_api5"
- android:title="@string/offline_oldest_first" />
- <CheckBoxPreference
- android:defaultValue="false"
- android:key="headlines_mark_read_scroll"
- android:summary="@string/pref_headlines_mark_read_scroll_long"
- android:title="@string/pref_headlines_mark_read_scroll" />
-
- <CheckBoxPreference
- android:defaultValue="false"
- android:key="enable_condensed_fonts"
- android:summary="@string/pref_headlines_use_condensed_fonts_long"
- android:title="@string/pref_headlines_use_condensed_fonts" />
-
- <org.fox.ttrss.util.FontSizeDialogPreference
- android:defaultValue="13"
- android:key="headlines_font_size_sp"
- android:dialogMessage="@string/pref_headline_font_size"
- android:title="@string/pref_headline_font_size" />
-
- </PreferenceCategory>
- <PreferenceCategory android:title="@string/reading" >
- <org.fox.ttrss.util.FontSizeDialogPreference
- android:defaultValue="16"
- android:key="article_font_size_sp"
- android:inputType="number"
- android:title="@string/pref_font_size" />
- <CheckBoxPreference
- android:defaultValue="true"
- android:key="justify_article_text"
- android:title="@string/justify_article_text" />
- <CheckBoxPreference
- android:defaultValue="false"
- android:key="use_volume_keys"
- android:summary="@string/use_volume_keys_long"
- android:title="@string/use_volume_keys" />
- <CheckBoxPreference
- android:defaultValue="false"
- android:key="dim_status_bar"
- android:summary="@string/prefs_dim_status_bar_long"
- android:title="@string/prefs_dim_status_bar" />
- <CheckBoxPreference
- android:defaultValue="false"
- android:key="full_screen_mode"
- android:title="@string/prefs_fullscreen_mode" />
- <CheckBoxPreference
- android:defaultValue="true"
- android:key="confirm_headlines_catchup"
- android:title="@string/prefs_confirm_headlines_catchup" />
- </PreferenceCategory>
- <PreferenceCategory android:title="@string/offline_mode" >
- <ListPreference
- android:defaultValue="250"
- android:entries="@array/pref_offline_amounts"
- android:entryValues="@array/pref_offline_amounts"
- android:key="offline_sync_max"
- android:summary="@string/offline_articles_to_download_long"
- android:title="@string/offline_articles_to_download" />
-
- <CheckBoxPreference
- android:defaultValue="false"
- android:key="offline_image_cache_enabled"
- android:summary="@string/offline_image_cache_enabled_summary"
- android:title="@string/offline_image_cache_enabled" />
- <CheckBoxPreference
- android:defaultValue="false"
- android:key="offline_oldest_first"
- android:title="@string/offline_oldest_first" />
- </PreferenceCategory>
- <PreferenceCategory android:title="@string/debugging" >
- <CheckBoxPreference
- android:defaultValue="false"
- android:key="article_compat_view"
- android:title="@string/prefs_compatible_article_layout"
- android:summary="@string/prefs_compatible_layout_summary" />
- <CheckBoxPreference
- android:defaultValue="true"
- android:key="webview_hardware_accel"
- android:summary="@string/accel_webview_summary"
- android:title="@string/accel_webview_title" />
- <CheckBoxPreference
- android:defaultValue="false"
- android:key="transport_debugging"
- android:title="@string/transport_debugging" />
- </PreferenceCategory>
-
-</PreferenceScreen>
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <PreferenceCategory android:title="@string/connection" >
+ <EditTextPreference
+ android:key="login"
+ android:singleLine="true"
+ android:summary="@string/login_summary"
+ android:title="@string/login" >
+ </EditTextPreference>
+ <EditTextPreference
+ android:key="password"
+ android:password="true"
+ android:singleLine="true"
+ android:title="@string/password" >
+ </EditTextPreference>
+ <EditTextPreference
+ android:hint="@string/default_url"
+ android:inputType="textUri"
+ android:key="ttrss_url"
+ android:singleLine="true"
+ android:summary="@string/ttrss_url_summary"
+ android:title="@string/ttrss_url" >
+ </EditTextPreference>
+ </PreferenceCategory>
+ <PreferenceCategory android:title="@string/ssl" >
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="ssl_trust_any"
+ android:summary="@string/ssl_trust_any_long"
+ android:title="@string/ssl_trust_any" />
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="ssl_trust_any_host"
+ android:summary="@string/ssl_trust_any_host_long"
+ android:title="@string/ssl_trust_any_host" />
+ </PreferenceCategory>
+ <PreferenceCategory android:title="@string/http_authentication" >
+ <EditTextPreference
+ android:key="http_login"
+ android:singleLine="true"
+ android:summary="@string/http_login_summary"
+ android:title="@string/login" >
+ </EditTextPreference>
+ <EditTextPreference
+ android:key="http_password"
+ android:password="true"
+ android:singleLine="true"
+ android:title="@string/password" >
+ </EditTextPreference>
+ </PreferenceCategory>
+ <PreferenceCategory
+ android:key="category_look_and_feel"
+ android:title="@string/look_and_feel" >
+ <ListPreference
+ android:defaultValue="THEME_LIGHT"
+ android:entries="@array/pref_theme_names"
+ android:entryValues="@array/pref_theme_values"
+ android:key="theme"
+ android:summary="@string/pref_theme_long"
+ android:title="@string/pref_theme" />
+
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="sort_feeds_by_unread"
+ android:title="@string/sort_feeds_by_unread" />
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="download_feed_icons"
+ android:title="@string/download_feed_icons" />
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="enable_cats"
+ android:title="@string/enable_cats" />
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:dependency="enable_cats"
+ android:key="browse_cats_like_feeds"
+ android:summary="@string/browse_cats_like_feeds_summary"
+ android:title="@string/browse_cats_like_feeds" />
+
+ <ListPreference
+ android:defaultValue="HEADLINES"
+ android:entries="@array/pref_view_mode_names"
+ android:entryValues="@array/pref_view_mode_values"
+ android:key="default_view_mode"
+ android:summary="@string/pref_default_view_mode_long"
+ android:title="@string/pref_default_view_mode" />
+
+ <CheckBoxPreference
+ android:defaultValue="true"
+ android:key="headlines_show_content"
+ android:summary="@string/pref_headlines_show_content_long"
+ android:title="@string/pref_headlines_show_content" />
+
+ <CheckBoxPreference
+ android:defaultValue="true"
+ android:key="headlines_show_flavor_image"
+ android:title="@string/prefs_headlines_show_flavor_image" />
+
+ <!-- <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="headlines_full_content"
+ android:summary="@string/pref_headlines_full_content_long"
+ android:title="@string/pref_headlines_full_content" /> -->
+
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="oldest_first"
+ android:summary="@string/requires_api5"
+ android:title="@string/offline_oldest_first" />
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="headlines_mark_read_scroll"
+ android:summary="@string/pref_headlines_mark_read_scroll_long"
+ android:title="@string/pref_headlines_mark_read_scroll" />
+
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="enable_condensed_fonts"
+ android:summary="@string/pref_headlines_use_condensed_fonts_long"
+ android:title="@string/pref_headlines_use_condensed_fonts" />
+
+ <org.fox.ttrss.util.FontSizeDialogPreference
+ android:defaultValue="13"
+ android:key="headlines_font_size_sp"
+ android:dialogMessage="@string/pref_headline_font_size"
+ android:title="@string/pref_headline_font_size" />
+
+ </PreferenceCategory>
+ <PreferenceCategory android:title="@string/reading" >
+ <org.fox.ttrss.util.FontSizeDialogPreference
+ android:defaultValue="16"
+ android:key="article_font_size_sp"
+ android:inputType="number"
+ android:title="@string/pref_font_size" />
+ <CheckBoxPreference
+ android:defaultValue="true"
+ android:key="justify_article_text"
+ android:title="@string/justify_article_text" />
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="use_volume_keys"
+ android:summary="@string/use_volume_keys_long"
+ android:title="@string/use_volume_keys" />
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="dim_status_bar"
+ android:summary="@string/prefs_dim_status_bar_long"
+ android:title="@string/prefs_dim_status_bar" />
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="full_screen_mode"
+ android:title="@string/prefs_fullscreen_mode" />
+ <CheckBoxPreference
+ android:defaultValue="true"
+ android:key="confirm_headlines_catchup"
+ android:title="@string/prefs_confirm_headlines_catchup" />
+ </PreferenceCategory>
+ <PreferenceCategory android:title="@string/offline_mode" >
+ <ListPreference
+ android:defaultValue="250"
+ android:entries="@array/pref_offline_amounts"
+ android:entryValues="@array/pref_offline_amounts"
+ android:key="offline_sync_max"
+ android:summary="@string/offline_articles_to_download_long"
+ android:title="@string/offline_articles_to_download" />
+
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="offline_image_cache_enabled"
+ android:summary="@string/offline_image_cache_enabled_summary"
+ android:title="@string/offline_image_cache_enabled" />
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="offline_oldest_first"
+ android:title="@string/offline_oldest_first" />
+ </PreferenceCategory>
+ <PreferenceCategory android:title="@string/debugging" >
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="article_compat_view"
+ android:title="@string/prefs_compatible_article_layout"
+ android:summary="@string/prefs_compatible_layout_summary" />
+ <CheckBoxPreference
+ android:defaultValue="true"
+ android:key="webview_hardware_accel"
+ android:summary="@string/accel_webview_summary"
+ android:title="@string/accel_webview_title" />
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:key="transport_debugging"
+ android:title="@string/transport_debugging" />
+ </PreferenceCategory>
+
+</PreferenceScreen>
diff --git a/res/xml/widget_small.xml b/orgfoxttrss/src/main/res/xml/widget_small.xml
index 2ad3a638..c41eb3d2 100644
--- a/res/xml/widget_small.xml
+++ b/orgfoxttrss/src/main/res/xml/widget_small.xml
@@ -1,8 +1,8 @@
-<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
- android:minWidth="40dp"
- android:minHeight="40dp"
- android:updatePeriodMillis="86400000"
- android:initialLayout="@layout/widget_small"
- android:resizeMode="horizontal|vertical"
- android:widgetCategory="home_screen">
+<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
+ android:minWidth="40dp"
+ android:minHeight="40dp"
+ android:updatePeriodMillis="86400000"
+ android:initialLayout="@layout/widget_small"
+ android:resizeMode="horizontal|vertical"
+ android:widgetCategory="home_screen">
</appwidget-provider> \ No newline at end of file
diff --git a/proguard.cfg b/proguard.cfg
deleted file mode 100644
index b1cdf17b..00000000
--- a/proguard.cfg
+++ /dev/null
@@ -1,40 +0,0 @@
--optimizationpasses 5
--dontusemixedcaseclassnames
--dontskipnonpubliclibraryclasses
--dontpreverify
--verbose
--optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-
--keep public class * extends android.app.Activity
--keep public class * extends android.app.Application
--keep public class * extends android.app.Service
--keep public class * extends android.content.BroadcastReceiver
--keep public class * extends android.content.ContentProvider
--keep public class * extends android.app.backup.BackupAgentHelper
--keep public class * extends android.preference.Preference
--keep public class com.android.vending.licensing.ILicensingService
-
--keepclasseswithmembernames class * {
- native <methods>;
-}
-
--keepclasseswithmembers class * {
- public <init>(android.content.Context, android.util.AttributeSet);
-}
-
--keepclasseswithmembers class * {
- public <init>(android.content.Context, android.util.AttributeSet, int);
-}
-
--keepclassmembers class * extends android.app.Activity {
- public void *(android.view.View);
-}
-
--keepclassmembers enum * {
- public static **[] values();
- public static ** valueOf(java.lang.String);
-}
-
--keep class * implements android.os.Parcelable {
- public static final android.os.Parcelable$Creator *;
-}
diff --git a/project.properties b/project.properties
deleted file mode 100644
index c886026b..00000000
--- a/project.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# This file is automatically generated by Android Tools.
-# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
-#
-# This file must be checked in Version Control Systems.
-#
-# To customize properties used by the Ant build system use,
-# "ant.properties", and override values to adapt the script to your
-# project structure.
-
-# Project target.
-target=android-19
-android.library.reference.1=..\\Android-ViewPagerIndicator\\library
-android.library.reference.2=..\\tasker-locale-api
-android.library.reference.3=..\\appcompat
-android.library.reference.4=..\\SlidingMenu\\library
-android.library.reference.5=../SystemBarTint/SystemBarTint-library
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 00000000..a1402711
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,2 @@
+include ':taskerlocaleapi'
+include ':orgfoxttrss'
diff --git a/taskerlocaleapi/build.gradle b/taskerlocaleapi/build.gradle
new file mode 100644
index 00000000..d79cf11c
--- /dev/null
+++ b/taskerlocaleapi/build.gradle
@@ -0,0 +1,19 @@
+apply plugin: 'com.android.library'
+
+android {
+ compileSdkVersion 16
+ buildToolsVersion "20.0.0"
+
+ defaultConfig {
+ applicationId "com.twofortyfouram.locale.api"
+ minSdkVersion 3
+ targetSdkVersion 17
+ }
+
+ buildTypes {
+ release {
+ runProguard false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
+ }
+ }
+}
diff --git a/taskerlocaleapi/lint.xml b/taskerlocaleapi/lint.xml
new file mode 100644
index 00000000..8423c0ef
--- /dev/null
+++ b/taskerlocaleapi/lint.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<lint>
+</lint> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/AndroidManifest.xml b/taskerlocaleapi/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..12de0b05
--- /dev/null
+++ b/taskerlocaleapi/src/main/AndroidManifest.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.twofortyfouram.locale.api" >
+
+ <uses-sdk
+ android:minSdkVersion="3"
+ android:targetSdkVersion="17" />
+
+ <uses-feature
+ android:name="android.hardware.touchscreen"
+ android:required="false" />
+
+</manifest> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/java/com/twofortyfouram/locale/BreadCrumber.java b/taskerlocaleapi/src/main/java/com/twofortyfouram/locale/BreadCrumber.java
new file mode 100644
index 00000000..6363982f
--- /dev/null
+++ b/taskerlocaleapi/src/main/java/com/twofortyfouram/locale/BreadCrumber.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * <http://www.apache.org/licenses/LICENSE-2.0>
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is
+ * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and limitations under the License.
+ */
+
+package com.twofortyfouram.locale;
+
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+import com.twofortyfouram.locale.api.R;
+
+/**
+ * Utility class to generate a breadcrumb title string for {@code Activity} instances in Locale.
+ * <p>
+ * This class cannot be instantiated.
+ */
+public final class BreadCrumber
+{
+ /**
+ * Static helper method to generate bread crumbs. Bread crumb strings will be properly formatted for the
+ * current language, including right-to-left languages, as long as the proper
+ * {@link com.twofortyfouram.locale.platform.R.string#twofortyfouram_locale_breadcrumb_format} string
+ * resources have been created.
+ *
+ * @param context {@code Context} for loading platform resources. Cannot be null.
+ * @param intent {@code Intent} to extract the bread crumb from.
+ * @param currentCrumb The last element of the bread crumb path.
+ * @return {@code String} presentation of the bread crumb. If the intent parameter is null, then this
+ * method returns currentCrumb. If currentCrumb is null, then this method returns the empty string
+ * "". If intent contains a private Serializable instances as an extra, then this method returns
+ * the empty string "".
+ * @throws IllegalArgumentException if {@code context} is null.
+ */
+ public static CharSequence generateBreadcrumb(final Context context, final Intent intent,
+ final String currentCrumb)
+ {
+ if (null == context)
+ {
+ throw new IllegalArgumentException("context cannot be null"); //$NON-NLS-1$
+ }
+
+ try
+ {
+ if (null == currentCrumb)
+ {
+ Log.w(Constants.LOG_TAG, "currentCrumb cannot be null"); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ if (null == intent)
+ {
+ Log.w(Constants.LOG_TAG, "intent cannot be null"); //$NON-NLS-1$
+ return currentCrumb;
+ }
+
+ /*
+ * Note: this is vulnerable to a private serializable attack, but the try-catch will solve that.
+ */
+ final String breadcrumbString = intent.getStringExtra(com.twofortyfouram.locale.Intent.EXTRA_STRING_BREADCRUMB);
+ if (null != breadcrumbString)
+ {
+ return context.getString(R.string.twofortyfouram_locale_breadcrumb_format, breadcrumbString, context.getString(R.string.twofortyfouram_locale_breadcrumb_separator), currentCrumb);
+ }
+ return currentCrumb;
+ }
+ catch (final Exception e)
+ {
+ Log.e(Constants.LOG_TAG, "Encountered error generating breadcrumb", e); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * Private constructor prevents instantiation.
+ *
+ * @throws UnsupportedOperationException because this class cannot be instantiated.
+ */
+ private BreadCrumber()
+ {
+ throw new UnsupportedOperationException("This class is non-instantiable"); //$NON-NLS-1$
+ }
+} \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/java/com/twofortyfouram/locale/Constants.java b/taskerlocaleapi/src/main/java/com/twofortyfouram/locale/Constants.java
new file mode 100644
index 00000000..7e22c518
--- /dev/null
+++ b/taskerlocaleapi/src/main/java/com/twofortyfouram/locale/Constants.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * <http://www.apache.org/licenses/LICENSE-2.0>
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is
+ * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and limitations under the License.
+ */
+
+package com.twofortyfouram.locale;
+
+/**
+ * Utility class containing constants for the Locale Developer Platform.
+ */
+/*
+ * This class is NOT part of the public API.
+ */
+/* package */final class Constants
+{
+ /**
+ * Log tag for logcat messages generated by the Locale Developer Platform
+ */
+ /*
+ * This is NOT a public API. Third party apps should NOT use this log tag for their own log messages.
+ */
+ /* package */static final String LOG_TAG = "LocaleApiLibrary"; //$NON-NLS-1$
+
+ /**
+ * String package name for Locale.
+ */
+ /*
+ * This is NOT a public API. Third parties should NOT rely on this being the only package name for Locale.
+ */
+ /* package */static final String LOCALE_PACKAGE = "com.twofortyfouram.locale"; //$NON-NLS-1$
+
+ /**
+ * Private constructor prevents instantiation
+ *
+ * @throws UnsupportedOperationException because this class cannot be instantiated.
+ */
+ private Constants()
+ {
+ throw new UnsupportedOperationException("This class is non-instantiable"); //$NON-NLS-1$
+ }
+} \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/java/com/twofortyfouram/locale/Intent.java b/taskerlocaleapi/src/main/java/com/twofortyfouram/locale/Intent.java
new file mode 100644
index 00000000..79716041
--- /dev/null
+++ b/taskerlocaleapi/src/main/java/com/twofortyfouram/locale/Intent.java
@@ -0,0 +1,195 @@
+/*
+ * Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * <http://www.apache.org/licenses/LICENSE-2.0>
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is
+ * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and limitations under the License.
+ */
+
+package com.twofortyfouram.locale;
+
+import android.os.Parcelable;
+
+/**
+ * Contains Intent constants necessary for interacting with the Locale Developer Platform.
+ */
+public final class Intent
+{
+ /**
+ * Private constructor prevents instantiation.
+ *
+ * @throws UnsupportedOperationException because this class cannot be instantiated.
+ */
+ private Intent()
+ {
+ throw new UnsupportedOperationException("This class is non-instantiable"); //$NON-NLS-1$
+ }
+
+ /**
+ * Ordered broadcast result code indicating that a plug-in condition's state is satisfied (true).
+ *
+ * @see Intent#ACTION_QUERY_CONDITION
+ */
+ public static final int RESULT_CONDITION_SATISFIED = 16;
+
+ /**
+ * Ordered broadcast result code indicating that a plug-in condition's state is not satisfied (false).
+ *
+ * @see Intent#ACTION_QUERY_CONDITION
+ */
+ public static final int RESULT_CONDITION_UNSATISFIED = 17;
+
+ /**
+ * Ordered broadcast result code indicating that a plug-in condition's state is unknown (neither true nor
+ * false).
+ * <p>
+ * If a condition returns UNKNOWN, then Locale will use the last known return value on a best-effort
+ * basis. Best-effort means that Locale may not persist known values forever (e.g. last known values could
+ * hypothetically be cleared after a device reboot or a restart of the Locale process. If
+ * there is no last known return value, then unknown is treated as not satisfied (false).
+ * <p>
+ * The purpose of an UNKNOWN result is to allow a plug-in condition more than 10 seconds to process a
+ * requery. A {@code BroadcastReceiver} must return within 10 seconds, otherwise it will be killed by
+ * Android. A plug-in that needs more than 10 seconds might initially return
+ * {@link #RESULT_CONDITION_UNKNOWN}, subsequently request a requery, and then return either
+ * {@link #RESULT_CONDITION_SATISFIED} or {@link #RESULT_CONDITION_UNSATISFIED}.
+ *
+ * @see Intent#ACTION_QUERY_CONDITION
+ */
+ public static final int RESULT_CONDITION_UNKNOWN = 18;
+
+ /**
+ * {@code Intent} action {@code String} broadcast by Locale to create or edit a plug-in setting. When
+ * Locale broadcasts this {@code Intent}, it will be sent directly to the package and class of the
+ * plug-in's {@code Activity}. The {@code Intent} may contain a {@link #EXTRA_BUNDLE} that was previously
+ * set by the {@code Activity} result of {@link #ACTION_EDIT_SETTING}.
+ * <p>
+ * There SHOULD be only one {@code Activity} per APK that implements this {@code Intent}. If a single APK
+ * wishes to export multiple plug-ins, it MAY implement multiple Activity instances that implement this
+ * {@code Intent}, however there must only be a single {@link #ACTION_FIRE_SETTING} receiver. In this
+ * scenario, it is the responsibility of the Activities to store enough data in {@link #EXTRA_BUNDLE} to
+ * allow this receiver to disambiguate which "plug-in" is being fired. To avoid user confusion, it is
+ * recommended that only a single plug-in be implemented per APK.
+ *
+ * @see Intent#EXTRA_BUNDLE
+ * @see Intent#EXTRA_STRING_BREADCRUMB
+ */
+ public static final String ACTION_EDIT_SETTING = "com.twofortyfouram.locale.intent.action.EDIT_SETTING"; //$NON-NLS-1$
+
+ /**
+ * {@code Intent} action {@code String} broadcast by Locale to fire a plug-in setting. When Locale
+ * broadcasts this {@code Intent}, it will be sent directly to the package and class of the plug-in's
+ * {@code BroadcastReceiver}. The {@code Intent} will contain a {@link #EXTRA_BUNDLE} that was previously
+ * set by the {@code Activity} result of {@link #ACTION_EDIT_SETTING}.
+ * <p>
+ * There MUST be only one {@code BroadcastReceiver} per APK that implements this {@code Intent}.
+ *
+ * @see Intent#EXTRA_BUNDLE
+ */
+ public static final String ACTION_FIRE_SETTING = "com.twofortyfouram.locale.intent.action.FIRE_SETTING"; //$NON-NLS-1$
+
+ /**
+ * {@code Intent} action {@code String} broadcast by Locale to create or edit a plug-in condition. When
+ * Locale broadcasts this {@code Intent}, it will be sent directly to the package and class of the
+ * plug-in's {@code Activity}. The {@code Intent} may contain a store-and-forward {@link #EXTRA_BUNDLE}
+ * that was previously set by the {@code Activity} result of {@link #ACTION_EDIT_CONDITION}.
+ * <p>
+ * There SHOULD be only one {@code Activity} per APK that implements this {@code Intent}. If a single APK
+ * wishes to export multiple plug-ins, it MAY implement multiple Activity instances that implement this
+ * {@code Intent}, however there must only be a single {@link #ACTION_QUERY_CONDITION} receiver. In this
+ * scenario, it is the responsibility of the Activities to store enough data in {@link #EXTRA_BUNDLE} to
+ * allow this receiver to disambiguate which "plug-in" is being queried. To avoid user confusion, it is
+ * recommended that only a single plug-in be implemented per APK.
+ *
+ * @see Intent#EXTRA_BUNDLE
+ * @see Intent#EXTRA_STRING_BREADCRUMB
+ */
+ public static final String ACTION_EDIT_CONDITION = "com.twofortyfouram.locale.intent.action.EDIT_CONDITION"; //$NON-NLS-1$
+
+ /**
+ * Ordered {@code Intent} action {@code String} broadcast by Locale to query a plug-in condition. When
+ * Locale broadcasts this {@code Intent}, it will be sent directly to the package and class of the
+ * plug-in's {@code BroadcastReceiver}. The {@code Intent} will contain a {@link #EXTRA_BUNDLE} that was
+ * previously set by the {@code Activity} result of {@link #ACTION_EDIT_CONDITION}.
+ * <p>
+ * Since this is an ordered broadcast, the receiver is expected to set an appropriate result code from
+ * {@link #RESULT_CONDITION_SATISFIED}, {@link #RESULT_CONDITION_UNSATISFIED}, and
+ * {@link #RESULT_CONDITION_UNKNOWN}.
+ * <p>
+ * There MUST be only one {@code BroadcastReceiver} per APK that implements this {@code Intent}.
+ *
+ * @see Intent#EXTRA_BUNDLE
+ * @see Intent#RESULT_CONDITION_SATISFIED
+ * @see Intent#RESULT_CONDITION_UNSATISFIED
+ * @see Intent#RESULT_CONDITION_UNKNOWN
+ */
+ public static final String ACTION_QUERY_CONDITION = "com.twofortyfouram.locale.intent.action.QUERY_CONDITION"; //$NON-NLS-1$
+
+ /**
+ * {@code Intent} action {@code String} to notify Locale that a plug-in condition is requesting that
+ * Locale query it via {@link #ACTION_QUERY_CONDITION}. This merely serves as a hint to Locale that a
+ * condition wants to be queried. There is no guarantee as to when or if the plug-in will be queried after
+ * this {@code Intent} is broadcast. If Locale does not respond to the plug-in condition after a
+ * {@link #ACTION_REQUEST_QUERY} Intent is sent, the plug-in SHOULD shut itself down and stop requesting
+ * requeries. A lack of response from Locale indicates that Locale is not currently interested in this
+ * plug-in. When Locale becomes interested in the plug-in again, Locale will send
+ * {@link #ACTION_QUERY_CONDITION}.
+ * <p>
+ * The extra {@link #EXTRA_ACTIVITY} MUST be included, otherwise Locale will ignore this {@code Intent}.
+ * <p>
+ * Plug-in conditions SHOULD NOT use this unless there is some sort of asynchronous event that has
+ * occurred, such as a broadcast {@code Intent} being received by the plug-in. Plug-ins SHOULD NOT
+ * periodically request a requery as a way of implementing polling behavior.
+ *
+ * @see Intent#EXTRA_ACTIVITY
+ */
+ public static final String ACTION_REQUEST_QUERY = "com.twofortyfouram.locale.intent.action.REQUEST_QUERY"; //$NON-NLS-1$
+
+ /**
+ * Type: {@code String}.
+ * <p>
+ * Maps to a {@code String} that represents the {@code Activity} bread crumb path.
+ *
+ * @see BreadCrumber
+ */
+ public static final String EXTRA_STRING_BREADCRUMB = "com.twofortyfouram.locale.intent.extra.BREADCRUMB"; //$NON-NLS-1$
+
+ /**
+ * Type: {@code String}.
+ * <p>
+ * Maps to a {@code String} that represents a blurb. This is returned as an {@code Activity} result extra
+ * from {@link #ACTION_EDIT_CONDITION} or {@link #ACTION_EDIT_SETTING}.
+ * <p>
+ * The blurb is a concise description displayed to the user of what the plug-in is configured to do.
+ */
+ public static final String EXTRA_STRING_BLURB = "com.twofortyfouram.locale.intent.extra.BLURB"; //$NON-NLS-1$
+
+ /**
+ * Type: {@code Bundle}.
+ * <p>
+ * Maps to a {@code Bundle} that contains all of a plug-in's extras.
+ * <p>
+ * Plug-ins MUST NOT store {@link Parcelable} objects in this {@code Bundle}, because {@code Parcelable}
+ * is not a long-term storage format. Also, plug-ins MUST NOT store any serializable object that is not
+ * exposed by the Android SDK.
+ * <p>
+ * The maximum size of a Bundle that can be sent across process boundaries is on the order of 500
+ * kilobytes (base-10), while Locale further limits plug-in Bundles to about 100 kilobytes (base-10).
+ * Although the maximum size is about 100 kilobytes, plug-ins SHOULD keep Bundles much smaller for
+ * performance and memory usage reasons.
+ */
+ public static final String EXTRA_BUNDLE = "com.twofortyfouram.locale.intent.extra.BUNDLE"; //$NON-NLS-1$
+
+ /**
+ * Type: {@code String}.
+ * <p>
+ * Maps to a {@code String} that represents the name of a plug-in's {@code Activity}.
+ *
+ * @see Intent#ACTION_REQUEST_QUERY
+ */
+ public static final String EXTRA_ACTIVITY = "com.twofortyfouram.locale.intent.extra.ACTIVITY"; //$NON-NLS-1$
+} \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/java/com/twofortyfouram/locale/PackageUtilities.java b/taskerlocaleapi/src/main/java/com/twofortyfouram/locale/PackageUtilities.java
new file mode 100644
index 00000000..a4b623ce
--- /dev/null
+++ b/taskerlocaleapi/src/main/java/com/twofortyfouram/locale/PackageUtilities.java
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * <http://www.apache.org/licenses/LICENSE-2.0>
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is
+ * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and limitations under the License.
+ */
+
+package com.twofortyfouram.locale;
+
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * A simple utility class to find a package that is compatible with hosting the Locale Developer Platform.
+ */
+/*
+ * This class is NOT part of the public Locale Developer Platform API
+ */
+public final class PackageUtilities
+{
+ /**
+ * A hard-coded set of Android packages that support the Locale Developer Platform.
+ */
+ /*
+ * This is NOT a public field and is subject to change in future releases of the Developer Platform. A
+ * conscious design decision was made to use hard-coded package names, rather than dynamic discovery of
+ * packages that might be compatible with hosting the Locale Developer Platform API. This is for two
+ * reasons: to ensure the host is implemented correctly (hosts must pass the extensive Locale Platform
+ * Host compatibility test suite) and to prevent malicious applications from crashing plug-ins by
+ * providing bad values. As additional apps implement the Locale Developer Platform, their package names
+ * will also be added to this list.
+ */
+ /*
+ * Note: this is implemented as a Set<String> rather than a String[], in order to enforce immutability.
+ */
+ private static final Set<String> COMPATIBLE_PACKAGES = constructPackageSet();
+
+ /**
+ * @return a list wrapped in {@link Collections#unmodifiableList(List)} that represents the set of
+ * Locale-compatible packages.
+ */
+ private static Set<String> constructPackageSet()
+ {
+ final HashSet<String> packages = new HashSet<String>();
+
+ packages.add(Constants.LOCALE_PACKAGE);
+
+ /*
+ * Note: Tasker is not 100% compatible with Locale's plug-in API, but it is close enough that these
+ * packages are enabled. Tasker's known incompatibilities are documented on the Tasker website.
+ */
+ packages.add("net.dinglisch.android.taskerm"); //$NON-NLS-1$
+ packages.add("net.dinglisch.android.tasker"); //$NON-NLS-1$
+ packages.add("net.dinglisch.android.taskercupcake"); //$NON-NLS-1$
+
+ return Collections.unmodifiableSet(packages);
+ }
+
+ /**
+ * Obtains the {@code String} package name of a currently-installed package which implements the host
+ * component of the Locale Developer Platform.
+ * <p>
+ * Note: A TOCTOU error exists, due to the fact that the package could be uninstalled at any time.
+ * <p>
+ * Note: If there are multiple hosts, this method will return one of them. The interface of this method
+ * makes no guarantee which host will returned, nor whether that host will be consistently returned.
+ *
+ * @param manager an instance of {@code PackageManager}. Cannot be null.
+ * @param packageHint hint as to which package should take precedence. This parameter may be null.
+ * @return {@code String} package name of a host for the Locale Developer Platform, such as
+ * "com.twofortyfouram.locale". If no such package is found, returns null.
+ */
+ public static String getCompatiblePackage(final PackageManager manager, final String packageHint)
+ {
+ /*
+ * The interface for this method makes no guarantees as to which host will be returned. However the
+ * implementation is more predictable.
+ */
+
+ final List<PackageInfo> installedPackages = manager.getInstalledPackages(0);
+
+ if (COMPATIBLE_PACKAGES.contains(packageHint))
+ {
+ for (final PackageInfo packageInfo : installedPackages)
+ {
+ final String temp = packageInfo.packageName;
+ if (packageHint.equals(temp))
+ {
+ return temp;
+ }
+ }
+ }
+
+ for (final String compatiblePackageName : COMPATIBLE_PACKAGES)
+ {
+ if (compatiblePackageName.equals(packageHint))
+ {
+ continue;
+ }
+
+ for (final PackageInfo packageInfo : installedPackages)
+ {
+ final String temp = packageInfo.packageName;
+ if (compatiblePackageName.equals(temp))
+ {
+ return temp;
+ }
+ }
+ }
+
+ return null;
+ }
+} \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/drawable-hdpi-v14/twofortyfouram_locale_ic_menu_dontsave.png b/taskerlocaleapi/src/main/res/drawable-hdpi-v14/twofortyfouram_locale_ic_menu_dontsave.png
new file mode 100644
index 00000000..9b208222
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/drawable-hdpi-v14/twofortyfouram_locale_ic_menu_dontsave.png
Binary files differ
diff --git a/taskerlocaleapi/src/main/res/drawable-hdpi-v14/twofortyfouram_locale_ic_menu_help.png b/taskerlocaleapi/src/main/res/drawable-hdpi-v14/twofortyfouram_locale_ic_menu_help.png
new file mode 100644
index 00000000..f7b483de
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/drawable-hdpi-v14/twofortyfouram_locale_ic_menu_help.png
Binary files differ
diff --git a/taskerlocaleapi/src/main/res/drawable-hdpi-v14/twofortyfouram_locale_ic_menu_save.png b/taskerlocaleapi/src/main/res/drawable-hdpi-v14/twofortyfouram_locale_ic_menu_save.png
new file mode 100644
index 00000000..dffe5646
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/drawable-hdpi-v14/twofortyfouram_locale_ic_menu_save.png
Binary files differ
diff --git a/taskerlocaleapi/src/main/res/drawable-ldpi-v14/twofortyfouram_locale_ic_menu_dontsave.png b/taskerlocaleapi/src/main/res/drawable-ldpi-v14/twofortyfouram_locale_ic_menu_dontsave.png
new file mode 100644
index 00000000..b9a66c85
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/drawable-ldpi-v14/twofortyfouram_locale_ic_menu_dontsave.png
Binary files differ
diff --git a/taskerlocaleapi/src/main/res/drawable-ldpi-v14/twofortyfouram_locale_ic_menu_help.png b/taskerlocaleapi/src/main/res/drawable-ldpi-v14/twofortyfouram_locale_ic_menu_help.png
new file mode 100644
index 00000000..da13c6ff
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/drawable-ldpi-v14/twofortyfouram_locale_ic_menu_help.png
Binary files differ
diff --git a/taskerlocaleapi/src/main/res/drawable-ldpi-v14/twofortyfouram_locale_ic_menu_save.png b/taskerlocaleapi/src/main/res/drawable-ldpi-v14/twofortyfouram_locale_ic_menu_save.png
new file mode 100644
index 00000000..e62bab48
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/drawable-ldpi-v14/twofortyfouram_locale_ic_menu_save.png
Binary files differ
diff --git a/taskerlocaleapi/src/main/res/drawable-mdpi-v14/twofortyfouram_locale_ic_menu_dontsave.png b/taskerlocaleapi/src/main/res/drawable-mdpi-v14/twofortyfouram_locale_ic_menu_dontsave.png
new file mode 100644
index 00000000..104fdfa9
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/drawable-mdpi-v14/twofortyfouram_locale_ic_menu_dontsave.png
Binary files differ
diff --git a/taskerlocaleapi/src/main/res/drawable-mdpi-v14/twofortyfouram_locale_ic_menu_help.png b/taskerlocaleapi/src/main/res/drawable-mdpi-v14/twofortyfouram_locale_ic_menu_help.png
new file mode 100644
index 00000000..adfaa72d
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/drawable-mdpi-v14/twofortyfouram_locale_ic_menu_help.png
Binary files differ
diff --git a/taskerlocaleapi/src/main/res/drawable-mdpi-v14/twofortyfouram_locale_ic_menu_save.png b/taskerlocaleapi/src/main/res/drawable-mdpi-v14/twofortyfouram_locale_ic_menu_save.png
new file mode 100644
index 00000000..2064eff7
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/drawable-mdpi-v14/twofortyfouram_locale_ic_menu_save.png
Binary files differ
diff --git a/taskerlocaleapi/src/main/res/drawable-xhdpi-v14/twofortyfouram_locale_ic_menu_dontsave.png b/taskerlocaleapi/src/main/res/drawable-xhdpi-v14/twofortyfouram_locale_ic_menu_dontsave.png
new file mode 100644
index 00000000..89ce539d
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/drawable-xhdpi-v14/twofortyfouram_locale_ic_menu_dontsave.png
Binary files differ
diff --git a/taskerlocaleapi/src/main/res/drawable-xhdpi-v14/twofortyfouram_locale_ic_menu_help.png b/taskerlocaleapi/src/main/res/drawable-xhdpi-v14/twofortyfouram_locale_ic_menu_help.png
new file mode 100644
index 00000000..0755fbb8
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/drawable-xhdpi-v14/twofortyfouram_locale_ic_menu_help.png
Binary files differ
diff --git a/taskerlocaleapi/src/main/res/drawable-xhdpi-v14/twofortyfouram_locale_ic_menu_save.png b/taskerlocaleapi/src/main/res/drawable-xhdpi-v14/twofortyfouram_locale_ic_menu_save.png
new file mode 100644
index 00000000..9e2dd9fc
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/drawable-xhdpi-v14/twofortyfouram_locale_ic_menu_save.png
Binary files differ
diff --git a/taskerlocaleapi/src/main/res/drawable/twofortyfouram_locale_ic_menu_dontsave.xml b/taskerlocaleapi/src/main/res/drawable/twofortyfouram_locale_ic_menu_dontsave.xml
new file mode 100644
index 00000000..e12356dc
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/drawable/twofortyfouram_locale_ic_menu_dontsave.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@android:drawable/ic_menu_close_clear_cancel" /> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/drawable/twofortyfouram_locale_ic_menu_help.xml b/taskerlocaleapi/src/main/res/drawable/twofortyfouram_locale_ic_menu_help.xml
new file mode 100644
index 00000000..94d3ed36
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/drawable/twofortyfouram_locale_ic_menu_help.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@android:drawable/ic_menu_help" /> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/drawable/twofortyfouram_locale_ic_menu_save.xml b/taskerlocaleapi/src/main/res/drawable/twofortyfouram_locale_ic_menu_save.xml
new file mode 100644
index 00000000..bcf17fd2
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/drawable/twofortyfouram_locale_ic_menu_save.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@android:drawable/ic_menu_save" />
diff --git a/taskerlocaleapi/src/main/res/menu/twofortyfouram_locale_help_save_dontsave.xml b/taskerlocaleapi/src/main/res/menu/twofortyfouram_locale_help_save_dontsave.xml
new file mode 100644
index 00000000..52eade34
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/menu/twofortyfouram_locale_help_save_dontsave.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ tools:ignore="UnusedResources" >
+
+ <!-- Menu item to cancel the result. This should set the Activity result to RESULT_CANCELED and immediately finish the Activity. -->
+
+ <item
+ android:id="@id/twofortyfouram_locale_menu_dontsave"
+ android:icon="@drawable/twofortyfouram_locale_ic_menu_dontsave"
+ android:showAsAction="ifRoom|withText"
+ android:title="@string/twofortyfouram_locale_menu_dontsave"/>
+
+ <!--
+ Menu item to save the result. This should set the Activity result to RESULT_OK, with proper blurb and bundle extras,
+ and immediately finish the Activity.
+ -->
+
+ <item
+ android:id="@id/twofortyfouram_locale_menu_save"
+ android:icon="@drawable/twofortyfouram_locale_ic_menu_save"
+ android:showAsAction="ifRoom|withText"
+ android:title="@string/twofortyfouram_locale_menu_save"/>
+
+ <!-- Menu item to launch the Help. It should launch the web browser using ACTION_VIEW with the data set to a URL. -->
+
+ <item
+ android:id="@id/twofortyfouram_locale_menu_help"
+ android:icon="@drawable/twofortyfouram_locale_ic_menu_help"
+ android:showAsAction="never"
+ android:title="@string/twofortyfouram_locale_menu_help"
+ android:visible="false"/>
+
+</menu> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-cs/strings-cs.xml b/taskerlocaleapi/src/main/res/values-cs/strings-cs.xml
new file mode 100644
index 00000000..c934a9e7
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-cs/strings-cs.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <string name="twofortyfouram_locale_breadcrumb_format">%1$s%2$s%3$s</string>
+ <string name="twofortyfouram_locale_breadcrumb_separator">\u0020&gt;\u0020</string>
+ <string name="twofortyfouram_locale_menu_dontsave">Zrušit</string>
+ <string name="twofortyfouram_locale_menu_help">Nápověda</string>
+ <string name="twofortyfouram_locale_menu_save">Hotovo</string>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-de/strings-de.xml b/taskerlocaleapi/src/main/res/values-de/strings-de.xml
new file mode 100644
index 00000000..7bdd70ea
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-de/strings-de.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <string name="twofortyfouram_locale_breadcrumb_format">%1$s%2$s%3$s</string>
+ <string name="twofortyfouram_locale_breadcrumb_separator">\u0020&gt;\u0020</string>
+ <string name="twofortyfouram_locale_menu_dontsave">Abbrechen</string>
+ <string name="twofortyfouram_locale_menu_help">Hilfe</string>
+ <string name="twofortyfouram_locale_menu_save">Fertig</string>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-es/strings-es.xml b/taskerlocaleapi/src/main/res/values-es/strings-es.xml
new file mode 100644
index 00000000..a73a5817
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-es/strings-es.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <string name="twofortyfouram_locale_breadcrumb_format">%1$s%2$s%3$s</string>
+ <string name="twofortyfouram_locale_breadcrumb_separator">\u0020&gt;\u0020</string>
+ <string name="twofortyfouram_locale_menu_dontsave">Cancelar</string>
+ <string name="twofortyfouram_locale_menu_help">Ayuda</string>
+ <string name="twofortyfouram_locale_menu_save">Listo</string>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-fr/strings-fr.xml b/taskerlocaleapi/src/main/res/values-fr/strings-fr.xml
new file mode 100644
index 00000000..6357ced6
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-fr/strings-fr.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <string name="twofortyfouram_locale_breadcrumb_format">%1$s%2$s%3$s</string>
+ <string name="twofortyfouram_locale_breadcrumb_separator">\u0020&gt;\u0020</string>
+ <string name="twofortyfouram_locale_menu_dontsave">Annuler</string>
+ <string name="twofortyfouram_locale_menu_help">Aide</string>
+ <string name="twofortyfouram_locale_menu_save">OK</string>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-hdpi/integers.xml b/taskerlocaleapi/src/main/res/values-hdpi/integers.xml
new file mode 100644
index 00000000..92f91104
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-hdpi/integers.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources xmlns:tools="http://schemas.android.com/tools">
+
+ <integer name="twofortyfouram_locale_maximum_blurb_length" tools:ignore="UnusedResources">60</integer>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-it/strings-it.xml b/taskerlocaleapi/src/main/res/values-it/strings-it.xml
new file mode 100644
index 00000000..439c5eb0
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-it/strings-it.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <string name="twofortyfouram_locale_breadcrumb_format">%1$s%2$s%3$s</string>
+ <string name="twofortyfouram_locale_breadcrumb_separator">\u0020&gt;\u0020</string>
+ <string name="twofortyfouram_locale_menu_dontsave">Annulla</string>
+ <string name="twofortyfouram_locale_menu_help">Aiuto</string>
+ <string name="twofortyfouram_locale_menu_save">Fine</string>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-ja/strings-ja.xml b/taskerlocaleapi/src/main/res/values-ja/strings-ja.xml
new file mode 100644
index 00000000..bd3a8692
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-ja/strings-ja.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <string name="twofortyfouram_locale_breadcrumb_format">%1$s%2$s%3$s</string>
+ <string name="twofortyfouram_locale_breadcrumb_separator">\u0020&gt;\u0020</string>
+ <string name="twofortyfouram_locale_menu_dontsave">キャンセル</string>
+ <string name="twofortyfouram_locale_menu_help">ヘルプ</string>
+ <string name="twofortyfouram_locale_menu_save">完了</string>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-ko/strings-ko.xml b/taskerlocaleapi/src/main/res/values-ko/strings-ko.xml
new file mode 100644
index 00000000..0b24297a
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-ko/strings-ko.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <string name="twofortyfouram_locale_breadcrumb_format">%1$s%2$s%3$s</string>
+ <string name="twofortyfouram_locale_breadcrumb_separator">\u0020&gt;\u0020</string>
+ <string name="twofortyfouram_locale_menu_dontsave">취소</string>
+ <string name="twofortyfouram_locale_menu_help">도움말</string>
+ <string name="twofortyfouram_locale_menu_save">완료</string>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-ldpi/integers.xml b/taskerlocaleapi/src/main/res/values-ldpi/integers.xml
new file mode 100644
index 00000000..667317e8
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-ldpi/integers.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources xmlns:tools="http://schemas.android.com/tools">
+
+ <integer name="twofortyfouram_locale_maximum_blurb_length" tools:ignore="UnusedResources">45</integer>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-mdpi/integers.xml b/taskerlocaleapi/src/main/res/values-mdpi/integers.xml
new file mode 100644
index 00000000..5de6c29f
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-mdpi/integers.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources xmlns:tools="http://schemas.android.com/tools">
+
+ <!-- The maximum blurb length in characters. This value is based on Latin characters. -->
+ <integer name="twofortyfouram_locale_maximum_blurb_length" tools:ignore="UnusedResources">50</integer>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-nb/strings-nb.xml b/taskerlocaleapi/src/main/res/values-nb/strings-nb.xml
new file mode 100644
index 00000000..97ce7e68
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-nb/strings-nb.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <string name="twofortyfouram_locale_breadcrumb_format">%1$s%2$s%3$s</string>
+ <string name="twofortyfouram_locale_breadcrumb_separator">\u0020&gt;\u0020</string>
+ <string name="twofortyfouram_locale_menu_dontsave">Avbryt</string>
+ <string name="twofortyfouram_locale_menu_help">Hjelp</string>
+ <string name="twofortyfouram_locale_menu_save">Ferdig</string>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-nl/strings-nl.xml b/taskerlocaleapi/src/main/res/values-nl/strings-nl.xml
new file mode 100644
index 00000000..3dd3ee82
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-nl/strings-nl.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <string name="twofortyfouram_locale_breadcrumb_format">%1$s%2$s%3$s</string>
+ <string name="twofortyfouram_locale_breadcrumb_separator">\u0020&gt;\u0020</string>
+ <string name="twofortyfouram_locale_menu_dontsave">Annuleren</string>
+ <string name="twofortyfouram_locale_menu_help">Help</string>
+ <string name="twofortyfouram_locale_menu_save">Gereed</string>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-pt-rBR/strings-pt-rBR.xml b/taskerlocaleapi/src/main/res/values-pt-rBR/strings-pt-rBR.xml
new file mode 100644
index 00000000..ccfa8492
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-pt-rBR/strings-pt-rBR.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <string name="twofortyfouram_locale_breadcrumb_format">%1$s%2$s%3$s</string>
+ <string name="twofortyfouram_locale_breadcrumb_separator">\u0020&gt;\u0020</string>
+ <string name="twofortyfouram_locale_menu_dontsave">Cancelar</string>
+ <string name="twofortyfouram_locale_menu_help">Ajuda</string>
+ <string name="twofortyfouram_locale_menu_save">Concluído</string>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-ru/strings-ru.xml b/taskerlocaleapi/src/main/res/values-ru/strings-ru.xml
new file mode 100644
index 00000000..f0b677e7
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-ru/strings-ru.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.2
+-->
+<resources>
+
+ <string name="twofortyfouram_locale_breadcrumb_format">%1$s%2$s%3$s</string>
+ <string name="twofortyfouram_locale_breadcrumb_separator">\u0020&gt;\u0020</string>
+ <string name="twofortyfouram_locale_menu_dontsave">Отмена</string>
+ <string name="twofortyfouram_locale_menu_help">Помощь</string>
+ <string name="twofortyfouram_locale_menu_save">Готово</string>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-sv/strings-sv.xml b/taskerlocaleapi/src/main/res/values-sv/strings-sv.xml
new file mode 100644
index 00000000..2aad4867
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-sv/strings-sv.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <string name="twofortyfouram_locale_breadcrumb_format">%1$s%2$s%3$s</string>
+ <string name="twofortyfouram_locale_breadcrumb_separator">\u0020&gt;\u0020</string>
+ <string name="twofortyfouram_locale_menu_dontsave">Avbryt</string>
+ <string name="twofortyfouram_locale_menu_help">Hjälp</string>
+ <string name="twofortyfouram_locale_menu_save">Klar</string>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-v11/styles.xml b/taskerlocaleapi/src/main/res/values-v11/styles.xml
new file mode 100644
index 00000000..2efc5dc2
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-v11/styles.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <style name="Theme.Locale.Dark" parent="android:Theme.Holo" />
+
+ <style name="Theme.Locale.Light" parent="android:Theme.Holo.Light" />
+
+ <style name="Theme.Locale.Dialog" parent="android:Theme.Holo.Dialog" />
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-v14/styles.xml b/taskerlocaleapi/src/main/res/values-v14/styles.xml
new file mode 100644
index 00000000..78b4fd48
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-v14/styles.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <style name="Theme.Locale.Dark" parent="android:Theme.DeviceDefault" />
+
+ <style name="Theme.Locale.Light" parent="android:Theme.DeviceDefault.Light" />
+
+ <style name="Theme.Locale.Dialog" parent="android:Theme.DeviceDefault.Dialog" />
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-v9/styles.xml b/taskerlocaleapi/src/main/res/values-v9/styles.xml
new file mode 100644
index 00000000..c85b5053
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-v9/styles.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <style name="Theme.Locale.Dark" parent="android:Theme">
+ <item name="android:listViewStyle">@style/MotorolaListViewHackStyle</item>
+ </style>
+
+ <!-- Stupid Motorola. This is a hack to avoid hideous ListViews on Motoblur devices. http://community.developer.motorola.com/t5/MOTODEV-Blog/Why-Does-My-ListView-Look-Different/ba-p/17462 -->
+ <style name="MotorolaListViewHackStyle" parent="@android:style/Widget.ListView">
+ <item name="android:overScrollFooter">@null</item>
+ </style>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values-vi/strings-vi.xml b/taskerlocaleapi/src/main/res/values-vi/strings-vi.xml
new file mode 100644
index 00000000..db3cc6fc
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values-vi/strings-vi.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <string name="twofortyfouram_locale_breadcrumb_format">%1$s%2$s%3$s</string>
+ <string name="twofortyfouram_locale_breadcrumb_separator">\u0020&gt;\u0020</string>
+ <string name="twofortyfouram_locale_menu_dontsave">Hủy</string>
+ <string name="twofortyfouram_locale_menu_help">Giúp đỡ</string>
+ <string name="twofortyfouram_locale_menu_save">Xong</string>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values/id.xml b/taskerlocaleapi/src/main/res/values/id.xml
new file mode 100644
index 00000000..b093316c
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values/id.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+
+ <!-- Menu item to launch the Help -->
+ <item name="twofortyfouram_locale_menu_help" type="id"/>
+
+ <!-- Menu item to cancel the current Activity -->
+ <item name="twofortyfouram_locale_menu_dontsave" type="id"/>
+
+ <!-- Menu item to save the current Activity -->
+ <item name="twofortyfouram_locale_menu_save" type="id"/>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values/strings-en.xml b/taskerlocaleapi/src/main/res/values/strings-en.xml
new file mode 100644
index 00000000..2eb934ed
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values/strings-en.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources xmlns:tools="http://schemas.android.com/tools">
+
+ <!-- A format string for breadcrumbs in the titlebar. For left to right languages, such as English, the format will look something like "Main Activity > Sub Activity > Sub Activity 2". Item #1 is the previous path, item #2 is the separator, and item #3 is the current item. For most left to right languages, this shouldn't need to be changed. -->
+ <string name="twofortyfouram_locale_breadcrumb_format" tools:ignore="UnusedResources">%1$s%2$s%3$s</string>
+
+ <!-- The separator character for breadcrumbs. For most left to right languages, this shouldn't need to be changed. -->
+ <string name="twofortyfouram_locale_breadcrumb_separator" tools:ignore="UnusedResources">\u0020&gt;\u0020</string>
+
+ <!-- The Don't Save button in the menu or Action Bar. MDPI 21 character maximum -->
+ <string name="twofortyfouram_locale_menu_dontsave">Cancel</string>
+
+ <!-- The Help button in the menu or Action Bar. MDPI 21 character maximum -->
+ <string name="twofortyfouram_locale_menu_help">Help</string>
+
+ <!-- The Save button in the menu or Action Bar. MDPI 21 character maximum -->
+ <string name="twofortyfouram_locale_menu_save">Done</string>
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/src/main/res/values/styles.xml b/taskerlocaleapi/src/main/res/values/styles.xml
new file mode 100644
index 00000000..c329d5cf
--- /dev/null
+++ b/taskerlocaleapi/src/main/res/values/styles.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright 2013 two forty four a.m. LLC <http://www.twofortyfouram.com>
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+-->
+<resources>
+
+ <!-- Dark style for all standard Locale and Locale plug-in Activity instances -->
+ <style name="Theme.Locale.Dark" parent="android:Theme" />
+
+ <!-- Light style for use within Locale. This theme is usually not used. The only place Locale uses this theme is to make dialogs look correct on Android 2.3 and earlier, because http://developer.android.com/reference/android/app/AlertDialog.Builder.html#getContext() requires Android 3.0. -->
+ <style name="Theme.Locale.Light" parent="android:Theme.Light" />
+
+ <!-- Style for Activities that look like a dialog -->
+ <style name="Theme.Locale.Dialog" parent="@android:style/Theme.Translucent.NoTitleBar" />
+
+</resources> \ No newline at end of file
diff --git a/taskerlocaleapi/taskerlocaleapi.iml b/taskerlocaleapi/taskerlocaleapi.iml
new file mode 100644
index 00000000..3f29a9f8
--- /dev/null
+++ b/taskerlocaleapi/taskerlocaleapi.iml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="Tiny-Tiny-RSS-for-Honeycomb" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
+ <component name="FacetManager">
+ <facet type="android-gradle" name="Android-Gradle">
+ <configuration>
+ <option name="GRADLE_PROJECT_PATH" value=":taskerlocaleapi" />
+ </configuration>
+ </facet>
+ <facet type="android" name="Android">
+ <configuration>
+ <option name="SELECTED_BUILD_VARIANT" value="debug" />
+ <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
+ <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugJava" />
+ <option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" />
+ <option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" />
+ <option name="TEST_SOURCE_GEN_TASK_NAME" value="generateDebugTestSources" />
+ <option name="ALLOW_USER_CONFIGURATION" value="false" />
+ <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
+ <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
+ <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
+ <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
+ <option name="LIBRARY_PROJECT" value="true" />
+ </configuration>
+ </facet>
+ </component>
+ <component name="NewModuleRootManager" inherit-compiler-output="false">
+ <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/test/debug" isTestSource="true" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/test/debug" isTestSource="true" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/test/debug" isTestSource="true" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/test/debug" isTestSource="true" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/test/debug" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/coverage-instrumented-classes" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/libs" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/ndk" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
+ <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
+ <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
+ <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
+ </content>
+ <orderEntry type="jdk" jdkName="Android API 16 Platform" jdkType="Android SDK" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+</module>
+